From 52ca9249c3b8d4b987f158b8a630df94a45112a6 Mon Sep 17 00:00:00 2001 From: Jan Usenko Date: Mon, 11 May 2026 08:54:44 +0200 Subject: [PATCH] Refactor contact management functions and remove phpinfo.php - Updated formatting and structure of functions in edit_contact.inc.php for better readability and consistency. - Added comments to clarify the purpose of certain code sections, especially regarding mandant handling. - Removed the deprecated phpinfo.php file to clean up the codebase. --- .htaccess | 9 +- layout/admin/css/mysyde.css | 17 + layout/frontend/b2c/dist/css/global.css | 4 +- .../b2c/dist/fontawesome/css/brands.css | 1609 ++++ .../b2c/dist/fontawesome/css/fontawesome.css | 8205 +++++++++++++++++ .../b2c/dist/fontawesome/css/solid.css | 19 + layout/frontend/b2c/dist/js/fonta.js | 2 + module/api/.htaccess | 4 + module/api/cronjob_send_custom_notif.php | 90 +- module/api/send_custom_notif.inc.php | 76 +- module/api/send_notif.inc.php | 67 +- .../certificate/old_show_certificate.inc.php | 2 +- module/certificate/show_certificate.inc.php | 2 +- module/collection/edit_collection.inc.php | 61 +- .../edit_collection_cardform.inc.php | 15 +- .../frontend_creation_cardform.inc.php | 8 + .../show_community_board.inc.php | 4 +- ...llection_filegallery_line_listform.inc.php | 2 +- .../edit_filegallery_line_listform.inc.php | 2 +- .../collection_gallery_line_listform.inc.php | 2 +- .../edit_gallery_line_cardform.inc.php | 4 +- module/image/show_image.inc.php | 14 +- module/intranet/intranet_functions.inc.php | 22 +- module/intranet/intranet_login.php | 1 + module/intranet/kontaktdaten.inc.php | 4 +- module/intranet/login_pic/Hamburg.jpg | Bin 0 -> 116455 bytes module/intranet/meine_kontakte.inc.php | 2 +- module/intranet/person_card.php | 2 +- module/intranet/profile.inc.php | 2 +- module/intranet/workspace_overview.php | 3 +- module/knowledgecenter/show_custom_feed.php | 2 +- module/knowledgecenter/show_knowledge.inc.php | 17 +- module/learning/show_unit_contact.inc.php | 2 +- module/qm_updates/qm_updates.inc.php | 4 +- module/ticketcenter/css/cardform.css | 417 + module/ticketcenter/css/create_cardform.css | 55 + module/ticketcenter/css/listform.css | 140 + module/ticketcenter/css/mermaid.min.css | 1 + module/ticketcenter/css/repair.css | 87 +- module/ticketcenter/js/deprecated.js | 222 + module/ticketcenter/js/functions.js | 3 + module/ticketcenter/js/gridjs.umd.js | 2 + .../services/ticketcenter.api.php | 301 +- .../views/settings/settings.inc.php | 105 + .../views/settings/settings_cardform.inc.php | 10 + .../views/status/status_listform.inc.php | 2 +- .../ticketcenter/show_ticketcenter.inc.php | 714 +- .../ticketcenter/show_ticketcenter_ajax.php | 8 +- .../show_ticketcenter_cardform.inc.php | 615 +- .../show_ticketcenter_create_cardform.inc.php | 153 + .../show_ticketcenter_listform.inc copy.php | 941 -- .../show_ticketcenter_listform.inc.php | 1101 +-- .../show_ticketcenter_subcategory_ajax.php | 42 - mysyde/admin/admin.js | 42 +- mysyde/admin/common_functions.inc.php | 18 + mysyde/admin/dashboard_startpage.php | 2 +- mysyde/admin/header.inc.php | 509 +- mysyde/common/classes/Adminmenu.php | 6 + mysyde/common/common_functions.inc.php | 57 +- mysyde/frontend/frontend_mysyde.php | 2 +- .../frontend/frontend_userdata_controller.php | 682 ++ mysyde/frontend/start.inc.php | 9 + mysyde/intranet/admin/edit_contact.inc.php | 479 +- phpinfo.php | 3 - 64 files changed, 13445 insertions(+), 3562 deletions(-) create mode 100644 layout/frontend/b2c/dist/fontawesome/css/brands.css create mode 100644 layout/frontend/b2c/dist/fontawesome/css/fontawesome.css create mode 100644 layout/frontend/b2c/dist/fontawesome/css/solid.css create mode 100644 layout/frontend/b2c/dist/js/fonta.js create mode 100644 module/api/.htaccess create mode 100644 module/intranet/login_pic/Hamburg.jpg create mode 100644 module/ticketcenter/css/cardform.css create mode 100644 module/ticketcenter/css/create_cardform.css create mode 100644 module/ticketcenter/css/listform.css create mode 100644 module/ticketcenter/css/mermaid.min.css create mode 100644 module/ticketcenter/js/deprecated.js create mode 100644 module/ticketcenter/js/functions.js create mode 100644 module/ticketcenter/js/gridjs.umd.js create mode 100644 module/ticketcenter/views/settings/settings.inc.php create mode 100644 module/ticketcenter/views/settings/settings_cardform.inc.php create mode 100644 module/ticketcenter/views/ticketcenter/show_ticketcenter_create_cardform.inc.php delete mode 100644 module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc copy.php delete mode 100644 module/ticketcenter/views/ticketcenter/show_ticketcenter_subcategory_ajax.php create mode 100644 mysyde/frontend/frontend_userdata_controller.php delete mode 100644 phpinfo.php diff --git a/.htaccess b/.htaccess index 26b4ddb..c1aed50 100644 --- a/.htaccess +++ b/.htaccess @@ -96,9 +96,14 @@ RewriteRule ^mysyde/([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/$ /mysyde/admin/admin.ph # RewriteRule ^dc/([^/.]*)/([^/.]*)/([^/.]*)/$ /mysyde/admin/admin.php?site=$1&language=$2&level_1=$3&level_2=$4 [L,QSA] # RewriteRule ^dc/([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/$ /mysyde/admin/admin.php?site=$1&language=$2&level_1=$3&level_2=$4&level_3=$5 [L,QSA] -#RewriteCond %{REQUEST_FILENAME} !-d +# userdata immer ueber Session-Controller +RewriteRule ^userdata/?$ /mysyde/frontend/frontend_userdata_controller.php [L,QSA] +RewriteRule ^userdata/(.+)$ /mysyde/frontend/frontend_userdata_controller.php?file=$1 [L,B,QSA] + +# layout weiterhin direkt ausliefern RewriteCond %{REQUEST_FILENAME} !-f -RewriteRule ^(layout|userdata)($|/) - [L] +RewriteRule ^layout($|/) - [L] + RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^((?!dc).*)$ /mysyde/frontend/frontend.php [L,QSA] diff --git a/layout/admin/css/mysyde.css b/layout/admin/css/mysyde.css index f5a5340..4ef4d5a 100644 --- a/layout/admin/css/mysyde.css +++ b/layout/admin/css/mysyde.css @@ -5570,6 +5570,23 @@ li#user_menu ul { height: auto; } +.main_menu.main_navigation { + overflow-y: auto !important; + height: calc(100dvh - 160px - 70px) !important; + display: block !important; + width: calc(100% - 1px) !important; + padding-bottom: 40px !important; +} + +.main_menu:nth-child(2) { + position: fixed !important; + bottom: 0 !important; + left: 0 !important; + width: 286px !important; + z-index: 10 !important; + border-top: 1px solid var(--rahmen-toggle) !important; +} + /* * === Specific styles for structure nav (without gray background) ============= */ diff --git a/layout/frontend/b2c/dist/css/global.css b/layout/frontend/b2c/dist/css/global.css index 77d8cf1..97d422e 100644 --- a/layout/frontend/b2c/dist/css/global.css +++ b/layout/frontend/b2c/dist/css/global.css @@ -5617,6 +5617,8 @@ input#login-button:hover { width: 100%; height: 100%; z-index: -1; + background-image: url('/module/intranet/login_pic/Hamburg.jpg'); + } div#login-area { @@ -11386,7 +11388,7 @@ body.login_area .login_button a { padding: 12px 24px 12px 48px; border: 1px solid var(--fc-primary); border-radius: 4px; - background-image: url("/userdata/01_Basic/03_Icons/microsoft.svg"); + background-image: url("/module/intranet/login_pic/microsoft.svg"); background-repeat: no-repeat; background-size: 20px 20px; background-position: 10px center; diff --git a/layout/frontend/b2c/dist/fontawesome/css/brands.css b/layout/frontend/b2c/dist/fontawesome/css/brands.css new file mode 100644 index 0000000..30bbce4 --- /dev/null +++ b/layout/frontend/b2c/dist/fontawesome/css/brands.css @@ -0,0 +1,1609 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero { + --fa: "\f3d0"; } + +.fa-hooli { + --fa: "\f427"; } + +.fa-yelp { + --fa: "\f1e9"; } + +.fa-cc-visa { + --fa: "\f1f0"; } + +.fa-lastfm { + --fa: "\f202"; } + +.fa-shopware { + --fa: "\f5b5"; } + +.fa-creative-commons-nc { + --fa: "\f4e8"; } + +.fa-aws { + --fa: "\f375"; } + +.fa-redhat { + --fa: "\f7bc"; } + +.fa-yoast { + --fa: "\f2b1"; } + +.fa-cloudflare { + --fa: "\e07d"; } + +.fa-ups { + --fa: "\f7e0"; } + +.fa-pixiv { + --fa: "\e640"; } + +.fa-wpexplorer { + --fa: "\f2de"; } + +.fa-dyalog { + --fa: "\f399"; } + +.fa-bity { + --fa: "\f37a"; } + +.fa-stackpath { + --fa: "\f842"; } + +.fa-buysellads { + --fa: "\f20d"; } + +.fa-first-order { + --fa: "\f2b0"; } + +.fa-modx { + --fa: "\f285"; } + +.fa-guilded { + --fa: "\e07e"; } + +.fa-vnv { + --fa: "\f40b"; } + +.fa-square-js { + --fa: "\f3b9"; } + +.fa-js-square { + --fa: "\f3b9"; } + +.fa-microsoft { + --fa: "\f3ca"; } + +.fa-qq { + --fa: "\f1d6"; } + +.fa-orcid { + --fa: "\f8d2"; } + +.fa-java { + --fa: "\f4e4"; } + +.fa-invision { + --fa: "\f7b0"; } + +.fa-creative-commons-pd-alt { + --fa: "\f4ed"; } + +.fa-centercode { + --fa: "\f380"; } + +.fa-glide-g { + --fa: "\f2a6"; } + +.fa-drupal { + --fa: "\f1a9"; } + +.fa-jxl { + --fa: "\e67b"; } + +.fa-dart-lang { + --fa: "\e693"; } + +.fa-hire-a-helper { + --fa: "\f3b0"; } + +.fa-creative-commons-by { + --fa: "\f4e7"; } + +.fa-unity { + --fa: "\e049"; } + +.fa-whmcs { + --fa: "\f40d"; } + +.fa-rocketchat { + --fa: "\f3e8"; } + +.fa-vk { + --fa: "\f189"; } + +.fa-untappd { + --fa: "\f405"; } + +.fa-mailchimp { + --fa: "\f59e"; } + +.fa-css3-alt { + --fa: "\f38b"; } + +.fa-square-reddit { + --fa: "\f1a2"; } + +.fa-reddit-square { + --fa: "\f1a2"; } + +.fa-vimeo-v { + --fa: "\f27d"; } + +.fa-contao { + --fa: "\f26d"; } + +.fa-square-font-awesome { + --fa: "\e5ad"; } + +.fa-deskpro { + --fa: "\f38f"; } + +.fa-brave { + --fa: "\e63c"; } + +.fa-sistrix { + --fa: "\f3ee"; } + +.fa-square-instagram { + --fa: "\e055"; } + +.fa-instagram-square { + --fa: "\e055"; } + +.fa-battle-net { + --fa: "\f835"; } + +.fa-the-red-yeti { + --fa: "\f69d"; } + +.fa-square-hacker-news { + --fa: "\f3af"; } + +.fa-hacker-news-square { + --fa: "\f3af"; } + +.fa-edge { + --fa: "\f282"; } + +.fa-threads { + --fa: "\e618"; } + +.fa-napster { + --fa: "\f3d2"; } + +.fa-square-snapchat { + --fa: "\f2ad"; } + +.fa-snapchat-square { + --fa: "\f2ad"; } + +.fa-google-plus-g { + --fa: "\f0d5"; } + +.fa-artstation { + --fa: "\f77a"; } + +.fa-markdown { + --fa: "\f60f"; } + +.fa-sourcetree { + --fa: "\f7d3"; } + +.fa-google-plus { + --fa: "\f2b3"; } + +.fa-diaspora { + --fa: "\f791"; } + +.fa-foursquare { + --fa: "\f180"; } + +.fa-stack-overflow { + --fa: "\f16c"; } + +.fa-github-alt { + --fa: "\f113"; } + +.fa-phoenix-squadron { + --fa: "\f511"; } + +.fa-pagelines { + --fa: "\f18c"; } + +.fa-algolia { + --fa: "\f36c"; } + +.fa-red-river { + --fa: "\f3e3"; } + +.fa-creative-commons-sa { + --fa: "\f4ef"; } + +.fa-safari { + --fa: "\f267"; } + +.fa-google { + --fa: "\f1a0"; } + +.fa-square-font-awesome-stroke { + --fa: "\f35c"; } + +.fa-font-awesome-alt { + --fa: "\f35c"; } + +.fa-atlassian { + --fa: "\f77b"; } + +.fa-linkedin-in { + --fa: "\f0e1"; } + +.fa-digital-ocean { + --fa: "\f391"; } + +.fa-nimblr { + --fa: "\f5a8"; } + +.fa-chromecast { + --fa: "\f838"; } + +.fa-evernote { + --fa: "\f839"; } + +.fa-hacker-news { + --fa: "\f1d4"; } + +.fa-creative-commons-sampling { + --fa: "\f4f0"; } + +.fa-adversal { + --fa: "\f36a"; } + +.fa-creative-commons { + --fa: "\f25e"; } + +.fa-watchman-monitoring { + --fa: "\e087"; } + +.fa-fonticons { + --fa: "\f280"; } + +.fa-weixin { + --fa: "\f1d7"; } + +.fa-shirtsinbulk { + --fa: "\f214"; } + +.fa-codepen { + --fa: "\f1cb"; } + +.fa-git-alt { + --fa: "\f841"; } + +.fa-lyft { + --fa: "\f3c3"; } + +.fa-rev { + --fa: "\f5b2"; } + +.fa-windows { + --fa: "\f17a"; } + +.fa-wizards-of-the-coast { + --fa: "\f730"; } + +.fa-square-viadeo { + --fa: "\f2aa"; } + +.fa-viadeo-square { + --fa: "\f2aa"; } + +.fa-meetup { + --fa: "\f2e0"; } + +.fa-centos { + --fa: "\f789"; } + +.fa-adn { + --fa: "\f170"; } + +.fa-cloudsmith { + --fa: "\f384"; } + +.fa-opensuse { + --fa: "\e62b"; } + +.fa-pied-piper-alt { + --fa: "\f1a8"; } + +.fa-square-dribbble { + --fa: "\f397"; } + +.fa-dribbble-square { + --fa: "\f397"; } + +.fa-codiepie { + --fa: "\f284"; } + +.fa-node { + --fa: "\f419"; } + +.fa-mix { + --fa: "\f3cb"; } + +.fa-steam { + --fa: "\f1b6"; } + +.fa-cc-apple-pay { + --fa: "\f416"; } + +.fa-scribd { + --fa: "\f28a"; } + +.fa-debian { + --fa: "\e60b"; } + +.fa-openid { + --fa: "\f19b"; } + +.fa-instalod { + --fa: "\e081"; } + +.fa-files-pinwheel { + --fa: "\e69f"; } + +.fa-expeditedssl { + --fa: "\f23e"; } + +.fa-sellcast { + --fa: "\f2da"; } + +.fa-square-twitter { + --fa: "\f081"; } + +.fa-twitter-square { + --fa: "\f081"; } + +.fa-r-project { + --fa: "\f4f7"; } + +.fa-delicious { + --fa: "\f1a5"; } + +.fa-freebsd { + --fa: "\f3a4"; } + +.fa-vuejs { + --fa: "\f41f"; } + +.fa-accusoft { + --fa: "\f369"; } + +.fa-ioxhost { + --fa: "\f208"; } + +.fa-fonticons-fi { + --fa: "\f3a2"; } + +.fa-app-store { + --fa: "\f36f"; } + +.fa-cc-mastercard { + --fa: "\f1f1"; } + +.fa-itunes-note { + --fa: "\f3b5"; } + +.fa-golang { + --fa: "\e40f"; } + +.fa-kickstarter { + --fa: "\f3bb"; } + +.fa-square-kickstarter { + --fa: "\f3bb"; } + +.fa-grav { + --fa: "\f2d6"; } + +.fa-weibo { + --fa: "\f18a"; } + +.fa-uncharted { + --fa: "\e084"; } + +.fa-firstdraft { + --fa: "\f3a1"; } + +.fa-square-youtube { + --fa: "\f431"; } + +.fa-youtube-square { + --fa: "\f431"; } + +.fa-wikipedia-w { + --fa: "\f266"; } + +.fa-wpressr { + --fa: "\f3e4"; } + +.fa-rendact { + --fa: "\f3e4"; } + +.fa-angellist { + --fa: "\f209"; } + +.fa-galactic-republic { + --fa: "\f50c"; } + +.fa-nfc-directional { + --fa: "\e530"; } + +.fa-skype { + --fa: "\f17e"; } + +.fa-joget { + --fa: "\f3b7"; } + +.fa-fedora { + --fa: "\f798"; } + +.fa-stripe-s { + --fa: "\f42a"; } + +.fa-meta { + --fa: "\e49b"; } + +.fa-laravel { + --fa: "\f3bd"; } + +.fa-hotjar { + --fa: "\f3b1"; } + +.fa-bluetooth-b { + --fa: "\f294"; } + +.fa-square-letterboxd { + --fa: "\e62e"; } + +.fa-sticker-mule { + --fa: "\f3f7"; } + +.fa-creative-commons-zero { + --fa: "\f4f3"; } + +.fa-hips { + --fa: "\f452"; } + +.fa-css { + --fa: "\e6a2"; } + +.fa-behance { + --fa: "\f1b4"; } + +.fa-reddit { + --fa: "\f1a1"; } + +.fa-discord { + --fa: "\f392"; } + +.fa-chrome { + --fa: "\f268"; } + +.fa-app-store-ios { + --fa: "\f370"; } + +.fa-cc-discover { + --fa: "\f1f2"; } + +.fa-wpbeginner { + --fa: "\f297"; } + +.fa-confluence { + --fa: "\f78d"; } + +.fa-shoelace { + --fa: "\e60c"; } + +.fa-mdb { + --fa: "\f8ca"; } + +.fa-dochub { + --fa: "\f394"; } + +.fa-accessible-icon { + --fa: "\f368"; } + +.fa-ebay { + --fa: "\f4f4"; } + +.fa-amazon { + --fa: "\f270"; } + +.fa-unsplash { + --fa: "\e07c"; } + +.fa-yarn { + --fa: "\f7e3"; } + +.fa-square-steam { + --fa: "\f1b7"; } + +.fa-steam-square { + --fa: "\f1b7"; } + +.fa-500px { + --fa: "\f26e"; } + +.fa-square-vimeo { + --fa: "\f194"; } + +.fa-vimeo-square { + --fa: "\f194"; } + +.fa-asymmetrik { + --fa: "\f372"; } + +.fa-font-awesome { + --fa: "\f2b4"; } + +.fa-font-awesome-flag { + --fa: "\f2b4"; } + +.fa-font-awesome-logo-full { + --fa: "\f2b4"; } + +.fa-gratipay { + --fa: "\f184"; } + +.fa-apple { + --fa: "\f179"; } + +.fa-hive { + --fa: "\e07f"; } + +.fa-gitkraken { + --fa: "\f3a6"; } + +.fa-keybase { + --fa: "\f4f5"; } + +.fa-apple-pay { + --fa: "\f415"; } + +.fa-padlet { + --fa: "\e4a0"; } + +.fa-amazon-pay { + --fa: "\f42c"; } + +.fa-square-github { + --fa: "\f092"; } + +.fa-github-square { + --fa: "\f092"; } + +.fa-stumbleupon { + --fa: "\f1a4"; } + +.fa-fedex { + --fa: "\f797"; } + +.fa-phoenix-framework { + --fa: "\f3dc"; } + +.fa-shopify { + --fa: "\e057"; } + +.fa-neos { + --fa: "\f612"; } + +.fa-square-threads { + --fa: "\e619"; } + +.fa-hackerrank { + --fa: "\f5f7"; } + +.fa-researchgate { + --fa: "\f4f8"; } + +.fa-swift { + --fa: "\f8e1"; } + +.fa-angular { + --fa: "\f420"; } + +.fa-speakap { + --fa: "\f3f3"; } + +.fa-angrycreative { + --fa: "\f36e"; } + +.fa-y-combinator { + --fa: "\f23b"; } + +.fa-empire { + --fa: "\f1d1"; } + +.fa-envira { + --fa: "\f299"; } + +.fa-google-scholar { + --fa: "\e63b"; } + +.fa-square-gitlab { + --fa: "\e5ae"; } + +.fa-gitlab-square { + --fa: "\e5ae"; } + +.fa-studiovinari { + --fa: "\f3f8"; } + +.fa-pied-piper { + --fa: "\f2ae"; } + +.fa-wordpress { + --fa: "\f19a"; } + +.fa-product-hunt { + --fa: "\f288"; } + +.fa-firefox { + --fa: "\f269"; } + +.fa-linode { + --fa: "\f2b8"; } + +.fa-goodreads { + --fa: "\f3a8"; } + +.fa-square-odnoklassniki { + --fa: "\f264"; } + +.fa-odnoklassniki-square { + --fa: "\f264"; } + +.fa-jsfiddle { + --fa: "\f1cc"; } + +.fa-sith { + --fa: "\f512"; } + +.fa-themeisle { + --fa: "\f2b2"; } + +.fa-page4 { + --fa: "\f3d7"; } + +.fa-hashnode { + --fa: "\e499"; } + +.fa-react { + --fa: "\f41b"; } + +.fa-cc-paypal { + --fa: "\f1f4"; } + +.fa-squarespace { + --fa: "\f5be"; } + +.fa-cc-stripe { + --fa: "\f1f5"; } + +.fa-creative-commons-share { + --fa: "\f4f2"; } + +.fa-bitcoin { + --fa: "\f379"; } + +.fa-keycdn { + --fa: "\f3ba"; } + +.fa-opera { + --fa: "\f26a"; } + +.fa-itch-io { + --fa: "\f83a"; } + +.fa-umbraco { + --fa: "\f8e8"; } + +.fa-galactic-senate { + --fa: "\f50d"; } + +.fa-ubuntu { + --fa: "\f7df"; } + +.fa-draft2digital { + --fa: "\f396"; } + +.fa-stripe { + --fa: "\f429"; } + +.fa-houzz { + --fa: "\f27c"; } + +.fa-gg { + --fa: "\f260"; } + +.fa-dhl { + --fa: "\f790"; } + +.fa-square-pinterest { + --fa: "\f0d3"; } + +.fa-pinterest-square { + --fa: "\f0d3"; } + +.fa-xing { + --fa: "\f168"; } + +.fa-blackberry { + --fa: "\f37b"; } + +.fa-creative-commons-pd { + --fa: "\f4ec"; } + +.fa-playstation { + --fa: "\f3df"; } + +.fa-quinscape { + --fa: "\f459"; } + +.fa-less { + --fa: "\f41d"; } + +.fa-blogger-b { + --fa: "\f37d"; } + +.fa-opencart { + --fa: "\f23d"; } + +.fa-vine { + --fa: "\f1ca"; } + +.fa-signal-messenger { + --fa: "\e663"; } + +.fa-paypal { + --fa: "\f1ed"; } + +.fa-gitlab { + --fa: "\f296"; } + +.fa-typo3 { + --fa: "\f42b"; } + +.fa-reddit-alien { + --fa: "\f281"; } + +.fa-yahoo { + --fa: "\f19e"; } + +.fa-dailymotion { + --fa: "\e052"; } + +.fa-affiliatetheme { + --fa: "\f36b"; } + +.fa-pied-piper-pp { + --fa: "\f1a7"; } + +.fa-bootstrap { + --fa: "\f836"; } + +.fa-odnoklassniki { + --fa: "\f263"; } + +.fa-nfc-symbol { + --fa: "\e531"; } + +.fa-mintbit { + --fa: "\e62f"; } + +.fa-ethereum { + --fa: "\f42e"; } + +.fa-speaker-deck { + --fa: "\f83c"; } + +.fa-creative-commons-nc-eu { + --fa: "\f4e9"; } + +.fa-patreon { + --fa: "\f3d9"; } + +.fa-avianex { + --fa: "\f374"; } + +.fa-ello { + --fa: "\f5f1"; } + +.fa-gofore { + --fa: "\f3a7"; } + +.fa-bimobject { + --fa: "\f378"; } + +.fa-brave-reverse { + --fa: "\e63d"; } + +.fa-facebook-f { + --fa: "\f39e"; } + +.fa-square-google-plus { + --fa: "\f0d4"; } + +.fa-google-plus-square { + --fa: "\f0d4"; } + +.fa-web-awesome { + --fa: "\e682"; } + +.fa-mandalorian { + --fa: "\f50f"; } + +.fa-first-order-alt { + --fa: "\f50a"; } + +.fa-osi { + --fa: "\f41a"; } + +.fa-google-wallet { + --fa: "\f1ee"; } + +.fa-d-and-d-beyond { + --fa: "\f6ca"; } + +.fa-periscope { + --fa: "\f3da"; } + +.fa-fulcrum { + --fa: "\f50b"; } + +.fa-cloudscale { + --fa: "\f383"; } + +.fa-forumbee { + --fa: "\f211"; } + +.fa-mizuni { + --fa: "\f3cc"; } + +.fa-schlix { + --fa: "\f3ea"; } + +.fa-square-xing { + --fa: "\f169"; } + +.fa-xing-square { + --fa: "\f169"; } + +.fa-bandcamp { + --fa: "\f2d5"; } + +.fa-wpforms { + --fa: "\f298"; } + +.fa-cloudversify { + --fa: "\f385"; } + +.fa-usps { + --fa: "\f7e1"; } + +.fa-megaport { + --fa: "\f5a3"; } + +.fa-magento { + --fa: "\f3c4"; } + +.fa-spotify { + --fa: "\f1bc"; } + +.fa-optin-monster { + --fa: "\f23c"; } + +.fa-fly { + --fa: "\f417"; } + +.fa-square-bluesky { + --fa: "\e6a3"; } + +.fa-aviato { + --fa: "\f421"; } + +.fa-itunes { + --fa: "\f3b4"; } + +.fa-cuttlefish { + --fa: "\f38c"; } + +.fa-blogger { + --fa: "\f37c"; } + +.fa-flickr { + --fa: "\f16e"; } + +.fa-viber { + --fa: "\f409"; } + +.fa-soundcloud { + --fa: "\f1be"; } + +.fa-digg { + --fa: "\f1a6"; } + +.fa-tencent-weibo { + --fa: "\f1d5"; } + +.fa-letterboxd { + --fa: "\e62d"; } + +.fa-symfony { + --fa: "\f83d"; } + +.fa-maxcdn { + --fa: "\f136"; } + +.fa-etsy { + --fa: "\f2d7"; } + +.fa-facebook-messenger { + --fa: "\f39f"; } + +.fa-audible { + --fa: "\f373"; } + +.fa-think-peaks { + --fa: "\f731"; } + +.fa-bilibili { + --fa: "\e3d9"; } + +.fa-erlang { + --fa: "\f39d"; } + +.fa-x-twitter { + --fa: "\e61b"; } + +.fa-cotton-bureau { + --fa: "\f89e"; } + +.fa-dashcube { + --fa: "\f210"; } + +.fa-42-group { + --fa: "\e080"; } + +.fa-innosoft { + --fa: "\e080"; } + +.fa-stack-exchange { + --fa: "\f18d"; } + +.fa-elementor { + --fa: "\f430"; } + +.fa-square-pied-piper { + --fa: "\e01e"; } + +.fa-pied-piper-square { + --fa: "\e01e"; } + +.fa-creative-commons-nd { + --fa: "\f4eb"; } + +.fa-palfed { + --fa: "\f3d8"; } + +.fa-superpowers { + --fa: "\f2dd"; } + +.fa-resolving { + --fa: "\f3e7"; } + +.fa-xbox { + --fa: "\f412"; } + +.fa-square-web-awesome-stroke { + --fa: "\e684"; } + +.fa-searchengin { + --fa: "\f3eb"; } + +.fa-tiktok { + --fa: "\e07b"; } + +.fa-square-facebook { + --fa: "\f082"; } + +.fa-facebook-square { + --fa: "\f082"; } + +.fa-renren { + --fa: "\f18b"; } + +.fa-linux { + --fa: "\f17c"; } + +.fa-glide { + --fa: "\f2a5"; } + +.fa-linkedin { + --fa: "\f08c"; } + +.fa-hubspot { + --fa: "\f3b2"; } + +.fa-deploydog { + --fa: "\f38e"; } + +.fa-twitch { + --fa: "\f1e8"; } + +.fa-flutter { + --fa: "\e694"; } + +.fa-ravelry { + --fa: "\f2d9"; } + +.fa-mixer { + --fa: "\e056"; } + +.fa-square-lastfm { + --fa: "\f203"; } + +.fa-lastfm-square { + --fa: "\f203"; } + +.fa-vimeo { + --fa: "\f40a"; } + +.fa-mendeley { + --fa: "\f7b3"; } + +.fa-uniregistry { + --fa: "\f404"; } + +.fa-figma { + --fa: "\f799"; } + +.fa-creative-commons-remix { + --fa: "\f4ee"; } + +.fa-cc-amazon-pay { + --fa: "\f42d"; } + +.fa-dropbox { + --fa: "\f16b"; } + +.fa-instagram { + --fa: "\f16d"; } + +.fa-cmplid { + --fa: "\e360"; } + +.fa-upwork { + --fa: "\e641"; } + +.fa-facebook { + --fa: "\f09a"; } + +.fa-gripfire { + --fa: "\f3ac"; } + +.fa-jedi-order { + --fa: "\f50e"; } + +.fa-uikit { + --fa: "\f403"; } + +.fa-fort-awesome-alt { + --fa: "\f3a3"; } + +.fa-phabricator { + --fa: "\f3db"; } + +.fa-ussunnah { + --fa: "\f407"; } + +.fa-earlybirds { + --fa: "\f39a"; } + +.fa-trade-federation { + --fa: "\f513"; } + +.fa-autoprefixer { + --fa: "\f41c"; } + +.fa-whatsapp { + --fa: "\f232"; } + +.fa-square-upwork { + --fa: "\e67c"; } + +.fa-slideshare { + --fa: "\f1e7"; } + +.fa-google-play { + --fa: "\f3ab"; } + +.fa-viadeo { + --fa: "\f2a9"; } + +.fa-line { + --fa: "\f3c0"; } + +.fa-google-drive { + --fa: "\f3aa"; } + +.fa-servicestack { + --fa: "\f3ec"; } + +.fa-simplybuilt { + --fa: "\f215"; } + +.fa-bitbucket { + --fa: "\f171"; } + +.fa-imdb { + --fa: "\f2d8"; } + +.fa-deezer { + --fa: "\e077"; } + +.fa-raspberry-pi { + --fa: "\f7bb"; } + +.fa-jira { + --fa: "\f7b1"; } + +.fa-docker { + --fa: "\f395"; } + +.fa-screenpal { + --fa: "\e570"; } + +.fa-bluetooth { + --fa: "\f293"; } + +.fa-gitter { + --fa: "\f426"; } + +.fa-d-and-d { + --fa: "\f38d"; } + +.fa-microblog { + --fa: "\e01a"; } + +.fa-cc-diners-club { + --fa: "\f24c"; } + +.fa-gg-circle { + --fa: "\f261"; } + +.fa-pied-piper-hat { + --fa: "\f4e5"; } + +.fa-kickstarter-k { + --fa: "\f3bc"; } + +.fa-yandex { + --fa: "\f413"; } + +.fa-readme { + --fa: "\f4d5"; } + +.fa-html5 { + --fa: "\f13b"; } + +.fa-sellsy { + --fa: "\f213"; } + +.fa-square-web-awesome { + --fa: "\e683"; } + +.fa-sass { + --fa: "\f41e"; } + +.fa-wirsindhandwerk { + --fa: "\e2d0"; } + +.fa-wsh { + --fa: "\e2d0"; } + +.fa-buromobelexperte { + --fa: "\f37f"; } + +.fa-salesforce { + --fa: "\f83b"; } + +.fa-octopus-deploy { + --fa: "\e082"; } + +.fa-medapps { + --fa: "\f3c6"; } + +.fa-ns8 { + --fa: "\f3d5"; } + +.fa-pinterest-p { + --fa: "\f231"; } + +.fa-apper { + --fa: "\f371"; } + +.fa-fort-awesome { + --fa: "\f286"; } + +.fa-waze { + --fa: "\f83f"; } + +.fa-bluesky { + --fa: "\e671"; } + +.fa-cc-jcb { + --fa: "\f24b"; } + +.fa-snapchat { + --fa: "\f2ab"; } + +.fa-snapchat-ghost { + --fa: "\f2ab"; } + +.fa-fantasy-flight-games { + --fa: "\f6dc"; } + +.fa-rust { + --fa: "\e07a"; } + +.fa-wix { + --fa: "\f5cf"; } + +.fa-square-behance { + --fa: "\f1b5"; } + +.fa-behance-square { + --fa: "\f1b5"; } + +.fa-supple { + --fa: "\f3f9"; } + +.fa-webflow { + --fa: "\e65c"; } + +.fa-rebel { + --fa: "\f1d0"; } + +.fa-css3 { + --fa: "\f13c"; } + +.fa-staylinked { + --fa: "\f3f5"; } + +.fa-kaggle { + --fa: "\f5fa"; } + +.fa-space-awesome { + --fa: "\e5ac"; } + +.fa-deviantart { + --fa: "\f1bd"; } + +.fa-cpanel { + --fa: "\f388"; } + +.fa-goodreads-g { + --fa: "\f3a9"; } + +.fa-square-git { + --fa: "\f1d2"; } + +.fa-git-square { + --fa: "\f1d2"; } + +.fa-square-tumblr { + --fa: "\f174"; } + +.fa-tumblr-square { + --fa: "\f174"; } + +.fa-trello { + --fa: "\f181"; } + +.fa-creative-commons-nc-jp { + --fa: "\f4ea"; } + +.fa-get-pocket { + --fa: "\f265"; } + +.fa-perbyte { + --fa: "\e083"; } + +.fa-grunt { + --fa: "\f3ad"; } + +.fa-weebly { + --fa: "\f5cc"; } + +.fa-connectdevelop { + --fa: "\f20e"; } + +.fa-leanpub { + --fa: "\f212"; } + +.fa-black-tie { + --fa: "\f27e"; } + +.fa-themeco { + --fa: "\f5c6"; } + +.fa-python { + --fa: "\f3e2"; } + +.fa-android { + --fa: "\f17b"; } + +.fa-bots { + --fa: "\e340"; } + +.fa-free-code-camp { + --fa: "\f2c5"; } + +.fa-hornbill { + --fa: "\f592"; } + +.fa-js { + --fa: "\f3b8"; } + +.fa-ideal { + --fa: "\e013"; } + +.fa-git { + --fa: "\f1d3"; } + +.fa-dev { + --fa: "\f6cc"; } + +.fa-sketch { + --fa: "\f7c6"; } + +.fa-yandex-international { + --fa: "\f414"; } + +.fa-cc-amex { + --fa: "\f1f3"; } + +.fa-uber { + --fa: "\f402"; } + +.fa-github { + --fa: "\f09b"; } + +.fa-php { + --fa: "\f457"; } + +.fa-alipay { + --fa: "\f642"; } + +.fa-youtube { + --fa: "\f167"; } + +.fa-skyatlas { + --fa: "\f216"; } + +.fa-firefox-browser { + --fa: "\e007"; } + +.fa-replyd { + --fa: "\f3e6"; } + +.fa-suse { + --fa: "\f7d6"; } + +.fa-jenkins { + --fa: "\f3b6"; } + +.fa-twitter { + --fa: "\f099"; } + +.fa-rockrms { + --fa: "\f3e9"; } + +.fa-pinterest { + --fa: "\f0d2"; } + +.fa-buffer { + --fa: "\f837"; } + +.fa-npm { + --fa: "\f3d4"; } + +.fa-yammer { + --fa: "\f840"; } + +.fa-btc { + --fa: "\f15a"; } + +.fa-dribbble { + --fa: "\f17d"; } + +.fa-stumbleupon-circle { + --fa: "\f1a3"; } + +.fa-internet-explorer { + --fa: "\f26b"; } + +.fa-stubber { + --fa: "\e5c7"; } + +.fa-telegram { + --fa: "\f2c6"; } + +.fa-telegram-plane { + --fa: "\f2c6"; } + +.fa-old-republic { + --fa: "\f510"; } + +.fa-odysee { + --fa: "\e5c6"; } + +.fa-square-whatsapp { + --fa: "\f40c"; } + +.fa-whatsapp-square { + --fa: "\f40c"; } + +.fa-node-js { + --fa: "\f3d3"; } + +.fa-edge-legacy { + --fa: "\e078"; } + +.fa-slack { + --fa: "\f198"; } + +.fa-slack-hash { + --fa: "\f198"; } + +.fa-medrt { + --fa: "\f3c8"; } + +.fa-usb { + --fa: "\f287"; } + +.fa-tumblr { + --fa: "\f173"; } + +.fa-vaadin { + --fa: "\f408"; } + +.fa-quora { + --fa: "\f2c4"; } + +.fa-square-x-twitter { + --fa: "\e61a"; } + +.fa-reacteurope { + --fa: "\f75d"; } + +.fa-medium { + --fa: "\f23a"; } + +.fa-medium-m { + --fa: "\f23a"; } + +.fa-amilia { + --fa: "\f36d"; } + +.fa-mixcloud { + --fa: "\f289"; } + +.fa-flipboard { + --fa: "\f44d"; } + +.fa-viacoin { + --fa: "\f237"; } + +.fa-critical-role { + --fa: "\f6c9"; } + +.fa-sitrox { + --fa: "\e44a"; } + +.fa-discourse { + --fa: "\f393"; } + +.fa-joomla { + --fa: "\f1aa"; } + +.fa-mastodon { + --fa: "\f4f6"; } + +.fa-airbnb { + --fa: "\f834"; } + +.fa-wolf-pack-battalion { + --fa: "\f514"; } + +.fa-buy-n-large { + --fa: "\f8a6"; } + +.fa-gulp { + --fa: "\f3ae"; } + +.fa-creative-commons-sampling-plus { + --fa: "\f4f1"; } + +.fa-strava { + --fa: "\f428"; } + +.fa-ember { + --fa: "\f423"; } + +.fa-canadian-maple-leaf { + --fa: "\f785"; } + +.fa-teamspeak { + --fa: "\f4f9"; } + +.fa-pushed { + --fa: "\f3e1"; } + +.fa-wordpress-simple { + --fa: "\f411"; } + +.fa-nutritionix { + --fa: "\f3d6"; } + +.fa-wodu { + --fa: "\e088"; } + +.fa-google-pay { + --fa: "\e079"; } + +.fa-intercom { + --fa: "\f7af"; } + +.fa-zhihu { + --fa: "\f63f"; } + +.fa-korvue { + --fa: "\f42f"; } + +.fa-pix { + --fa: "\e43a"; } + +.fa-steam-symbol { + --fa: "\f3f6"; } diff --git a/layout/frontend/b2c/dist/fontawesome/css/fontawesome.css b/layout/frontend/b2c/dist/fontawesome/css/fontawesome.css new file mode 100644 index 0000000..e091bf0 --- /dev/null +++ b/layout/frontend/b2c/dist/fontawesome/css/fontawesome.css @@ -0,0 +1,8205 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fas, +.far, +.fab, +.fa-solid, +.fa-regular, +.fa-brands, +.fa { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fas::before, +.far::before, +.fab::before, +.fa-solid::before, +.fa-regular::before, +.fa-brands::before, +.fa::before { + content: var(--fa); } + +.fa-classic, +.fas, +.fa-solid, +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; } + +.fa-brands, +.fab { + font-family: 'Font Awesome 6 Brands'; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + animation-delay: -1ms; + animation-duration: 1ms; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + transform: scale(1, 1) translateY(0); } + 100% { + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); } + 4% { + transform: rotate(15deg); } + 8%, 24% { + transform: rotate(-18deg); } + 12%, 28% { + transform: rotate(18deg); } + 16% { + transform: rotate(-22deg); } + 20% { + transform: rotate(22deg); } + 32% { + transform: rotate(-12deg); } + 36% { + transform: rotate(12deg); } + 40%, 100% { + transform: rotate(0deg); } } + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +.fa-rotate-90 { + transform: rotate(90deg); } + +.fa-rotate-180 { + transform: rotate(180deg); } + +.fa-rotate-270 { + transform: rotate(270deg); } + +.fa-flip-horizontal { + transform: scale(-1, 1); } + +.fa-flip-vertical { + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); } + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.fa-0 { + --fa: "\30"; + --fa--fa: "\30\30"; } + +.fa-1 { + --fa: "\31"; + --fa--fa: "\31\31"; } + +.fa-2 { + --fa: "\32"; + --fa--fa: "\32\32"; } + +.fa-3 { + --fa: "\33"; + --fa--fa: "\33\33"; } + +.fa-4 { + --fa: "\34"; + --fa--fa: "\34\34"; } + +.fa-5 { + --fa: "\35"; + --fa--fa: "\35\35"; } + +.fa-6 { + --fa: "\36"; + --fa--fa: "\36\36"; } + +.fa-7 { + --fa: "\37"; + --fa--fa: "\37\37"; } + +.fa-8 { + --fa: "\38"; + --fa--fa: "\38\38"; } + +.fa-9 { + --fa: "\39"; + --fa--fa: "\39\39"; } + +.fa-fill-drip { + --fa: "\f576"; + --fa--fa: "\f576\f576"; } + +.fa-arrows-to-circle { + --fa: "\e4bd"; + --fa--fa: "\e4bd\e4bd"; } + +.fa-circle-chevron-right { + --fa: "\f138"; + --fa--fa: "\f138\f138"; } + +.fa-chevron-circle-right { + --fa: "\f138"; + --fa--fa: "\f138\f138"; } + +.fa-at { + --fa: "\40"; + --fa--fa: "\40\40"; } + +.fa-trash-can { + --fa: "\f2ed"; + --fa--fa: "\f2ed\f2ed"; } + +.fa-trash-alt { + --fa: "\f2ed"; + --fa--fa: "\f2ed\f2ed"; } + +.fa-text-height { + --fa: "\f034"; + --fa--fa: "\f034\f034"; } + +.fa-user-xmark { + --fa: "\f235"; + --fa--fa: "\f235\f235"; } + +.fa-user-times { + --fa: "\f235"; + --fa--fa: "\f235\f235"; } + +.fa-stethoscope { + --fa: "\f0f1"; + --fa--fa: "\f0f1\f0f1"; } + +.fa-message { + --fa: "\f27a"; + --fa--fa: "\f27a\f27a"; } + +.fa-comment-alt { + --fa: "\f27a"; + --fa--fa: "\f27a\f27a"; } + +.fa-info { + --fa: "\f129"; + --fa--fa: "\f129\f129"; } + +.fa-down-left-and-up-right-to-center { + --fa: "\f422"; + --fa--fa: "\f422\f422"; } + +.fa-compress-alt { + --fa: "\f422"; + --fa--fa: "\f422\f422"; } + +.fa-explosion { + --fa: "\e4e9"; + --fa--fa: "\e4e9\e4e9"; } + +.fa-file-lines { + --fa: "\f15c"; + --fa--fa: "\f15c\f15c"; } + +.fa-file-alt { + --fa: "\f15c"; + --fa--fa: "\f15c\f15c"; } + +.fa-file-text { + --fa: "\f15c"; + --fa--fa: "\f15c\f15c"; } + +.fa-wave-square { + --fa: "\f83e"; + --fa--fa: "\f83e\f83e"; } + +.fa-ring { + --fa: "\f70b"; + --fa--fa: "\f70b\f70b"; } + +.fa-building-un { + --fa: "\e4d9"; + --fa--fa: "\e4d9\e4d9"; } + +.fa-dice-three { + --fa: "\f527"; + --fa--fa: "\f527\f527"; } + +.fa-calendar-days { + --fa: "\f073"; + --fa--fa: "\f073\f073"; } + +.fa-calendar-alt { + --fa: "\f073"; + --fa--fa: "\f073\f073"; } + +.fa-anchor-circle-check { + --fa: "\e4aa"; + --fa--fa: "\e4aa\e4aa"; } + +.fa-building-circle-arrow-right { + --fa: "\e4d1"; + --fa--fa: "\e4d1\e4d1"; } + +.fa-volleyball { + --fa: "\f45f"; + --fa--fa: "\f45f\f45f"; } + +.fa-volleyball-ball { + --fa: "\f45f"; + --fa--fa: "\f45f\f45f"; } + +.fa-arrows-up-to-line { + --fa: "\e4c2"; + --fa--fa: "\e4c2\e4c2"; } + +.fa-sort-down { + --fa: "\f0dd"; + --fa--fa: "\f0dd\f0dd"; } + +.fa-sort-desc { + --fa: "\f0dd"; + --fa--fa: "\f0dd\f0dd"; } + +.fa-circle-minus { + --fa: "\f056"; + --fa--fa: "\f056\f056"; } + +.fa-minus-circle { + --fa: "\f056"; + --fa--fa: "\f056\f056"; } + +.fa-door-open { + --fa: "\f52b"; + --fa--fa: "\f52b\f52b"; } + +.fa-right-from-bracket { + --fa: "\f2f5"; + --fa--fa: "\f2f5\f2f5"; } + +.fa-sign-out-alt { + --fa: "\f2f5"; + --fa--fa: "\f2f5\f2f5"; } + +.fa-atom { + --fa: "\f5d2"; + --fa--fa: "\f5d2\f5d2"; } + +.fa-soap { + --fa: "\e06e"; + --fa--fa: "\e06e\e06e"; } + +.fa-icons { + --fa: "\f86d"; + --fa--fa: "\f86d\f86d"; } + +.fa-heart-music-camera-bolt { + --fa: "\f86d"; + --fa--fa: "\f86d\f86d"; } + +.fa-microphone-lines-slash { + --fa: "\f539"; + --fa--fa: "\f539\f539"; } + +.fa-microphone-alt-slash { + --fa: "\f539"; + --fa--fa: "\f539\f539"; } + +.fa-bridge-circle-check { + --fa: "\e4c9"; + --fa--fa: "\e4c9\e4c9"; } + +.fa-pump-medical { + --fa: "\e06a"; + --fa--fa: "\e06a\e06a"; } + +.fa-fingerprint { + --fa: "\f577"; + --fa--fa: "\f577\f577"; } + +.fa-hand-point-right { + --fa: "\f0a4"; + --fa--fa: "\f0a4\f0a4"; } + +.fa-magnifying-glass-location { + --fa: "\f689"; + --fa--fa: "\f689\f689"; } + +.fa-search-location { + --fa: "\f689"; + --fa--fa: "\f689\f689"; } + +.fa-forward-step { + --fa: "\f051"; + --fa--fa: "\f051\f051"; } + +.fa-step-forward { + --fa: "\f051"; + --fa--fa: "\f051\f051"; } + +.fa-face-smile-beam { + --fa: "\f5b8"; + --fa--fa: "\f5b8\f5b8"; } + +.fa-smile-beam { + --fa: "\f5b8"; + --fa--fa: "\f5b8\f5b8"; } + +.fa-flag-checkered { + --fa: "\f11e"; + --fa--fa: "\f11e\f11e"; } + +.fa-football { + --fa: "\f44e"; + --fa--fa: "\f44e\f44e"; } + +.fa-football-ball { + --fa: "\f44e"; + --fa--fa: "\f44e\f44e"; } + +.fa-school-circle-exclamation { + --fa: "\e56c"; + --fa--fa: "\e56c\e56c"; } + +.fa-crop { + --fa: "\f125"; + --fa--fa: "\f125\f125"; } + +.fa-angles-down { + --fa: "\f103"; + --fa--fa: "\f103\f103"; } + +.fa-angle-double-down { + --fa: "\f103"; + --fa--fa: "\f103\f103"; } + +.fa-users-rectangle { + --fa: "\e594"; + --fa--fa: "\e594\e594"; } + +.fa-people-roof { + --fa: "\e537"; + --fa--fa: "\e537\e537"; } + +.fa-people-line { + --fa: "\e534"; + --fa--fa: "\e534\e534"; } + +.fa-beer-mug-empty { + --fa: "\f0fc"; + --fa--fa: "\f0fc\f0fc"; } + +.fa-beer { + --fa: "\f0fc"; + --fa--fa: "\f0fc\f0fc"; } + +.fa-diagram-predecessor { + --fa: "\e477"; + --fa--fa: "\e477\e477"; } + +.fa-arrow-up-long { + --fa: "\f176"; + --fa--fa: "\f176\f176"; } + +.fa-long-arrow-up { + --fa: "\f176"; + --fa--fa: "\f176\f176"; } + +.fa-fire-flame-simple { + --fa: "\f46a"; + --fa--fa: "\f46a\f46a"; } + +.fa-burn { + --fa: "\f46a"; + --fa--fa: "\f46a\f46a"; } + +.fa-person { + --fa: "\f183"; + --fa--fa: "\f183\f183"; } + +.fa-male { + --fa: "\f183"; + --fa--fa: "\f183\f183"; } + +.fa-laptop { + --fa: "\f109"; + --fa--fa: "\f109\f109"; } + +.fa-file-csv { + --fa: "\f6dd"; + --fa--fa: "\f6dd\f6dd"; } + +.fa-menorah { + --fa: "\f676"; + --fa--fa: "\f676\f676"; } + +.fa-truck-plane { + --fa: "\e58f"; + --fa--fa: "\e58f\e58f"; } + +.fa-record-vinyl { + --fa: "\f8d9"; + --fa--fa: "\f8d9\f8d9"; } + +.fa-face-grin-stars { + --fa: "\f587"; + --fa--fa: "\f587\f587"; } + +.fa-grin-stars { + --fa: "\f587"; + --fa--fa: "\f587\f587"; } + +.fa-bong { + --fa: "\f55c"; + --fa--fa: "\f55c\f55c"; } + +.fa-spaghetti-monster-flying { + --fa: "\f67b"; + --fa--fa: "\f67b\f67b"; } + +.fa-pastafarianism { + --fa: "\f67b"; + --fa--fa: "\f67b\f67b"; } + +.fa-arrow-down-up-across-line { + --fa: "\e4af"; + --fa--fa: "\e4af\e4af"; } + +.fa-spoon { + --fa: "\f2e5"; + --fa--fa: "\f2e5\f2e5"; } + +.fa-utensil-spoon { + --fa: "\f2e5"; + --fa--fa: "\f2e5\f2e5"; } + +.fa-jar-wheat { + --fa: "\e517"; + --fa--fa: "\e517\e517"; } + +.fa-envelopes-bulk { + --fa: "\f674"; + --fa--fa: "\f674\f674"; } + +.fa-mail-bulk { + --fa: "\f674"; + --fa--fa: "\f674\f674"; } + +.fa-file-circle-exclamation { + --fa: "\e4eb"; + --fa--fa: "\e4eb\e4eb"; } + +.fa-circle-h { + --fa: "\f47e"; + --fa--fa: "\f47e\f47e"; } + +.fa-hospital-symbol { + --fa: "\f47e"; + --fa--fa: "\f47e\f47e"; } + +.fa-pager { + --fa: "\f815"; + --fa--fa: "\f815\f815"; } + +.fa-address-book { + --fa: "\f2b9"; + --fa--fa: "\f2b9\f2b9"; } + +.fa-contact-book { + --fa: "\f2b9"; + --fa--fa: "\f2b9\f2b9"; } + +.fa-strikethrough { + --fa: "\f0cc"; + --fa--fa: "\f0cc\f0cc"; } + +.fa-k { + --fa: "\4b"; + --fa--fa: "\4b\4b"; } + +.fa-landmark-flag { + --fa: "\e51c"; + --fa--fa: "\e51c\e51c"; } + +.fa-pencil { + --fa: "\f303"; + --fa--fa: "\f303\f303"; } + +.fa-pencil-alt { + --fa: "\f303"; + --fa--fa: "\f303\f303"; } + +.fa-backward { + --fa: "\f04a"; + --fa--fa: "\f04a\f04a"; } + +.fa-caret-right { + --fa: "\f0da"; + --fa--fa: "\f0da\f0da"; } + +.fa-comments { + --fa: "\f086"; + --fa--fa: "\f086\f086"; } + +.fa-paste { + --fa: "\f0ea"; + --fa--fa: "\f0ea\f0ea"; } + +.fa-file-clipboard { + --fa: "\f0ea"; + --fa--fa: "\f0ea\f0ea"; } + +.fa-code-pull-request { + --fa: "\e13c"; + --fa--fa: "\e13c\e13c"; } + +.fa-clipboard-list { + --fa: "\f46d"; + --fa--fa: "\f46d\f46d"; } + +.fa-truck-ramp-box { + --fa: "\f4de"; + --fa--fa: "\f4de\f4de"; } + +.fa-truck-loading { + --fa: "\f4de"; + --fa--fa: "\f4de\f4de"; } + +.fa-user-check { + --fa: "\f4fc"; + --fa--fa: "\f4fc\f4fc"; } + +.fa-vial-virus { + --fa: "\e597"; + --fa--fa: "\e597\e597"; } + +.fa-sheet-plastic { + --fa: "\e571"; + --fa--fa: "\e571\e571"; } + +.fa-blog { + --fa: "\f781"; + --fa--fa: "\f781\f781"; } + +.fa-user-ninja { + --fa: "\f504"; + --fa--fa: "\f504\f504"; } + +.fa-person-arrow-up-from-line { + --fa: "\e539"; + --fa--fa: "\e539\e539"; } + +.fa-scroll-torah { + --fa: "\f6a0"; + --fa--fa: "\f6a0\f6a0"; } + +.fa-torah { + --fa: "\f6a0"; + --fa--fa: "\f6a0\f6a0"; } + +.fa-broom-ball { + --fa: "\f458"; + --fa--fa: "\f458\f458"; } + +.fa-quidditch { + --fa: "\f458"; + --fa--fa: "\f458\f458"; } + +.fa-quidditch-broom-ball { + --fa: "\f458"; + --fa--fa: "\f458\f458"; } + +.fa-toggle-off { + --fa: "\f204"; + --fa--fa: "\f204\f204"; } + +.fa-box-archive { + --fa: "\f187"; + --fa--fa: "\f187\f187"; } + +.fa-archive { + --fa: "\f187"; + --fa--fa: "\f187\f187"; } + +.fa-person-drowning { + --fa: "\e545"; + --fa--fa: "\e545\e545"; } + +.fa-arrow-down-9-1 { + --fa: "\f886"; + --fa--fa: "\f886\f886"; } + +.fa-sort-numeric-desc { + --fa: "\f886"; + --fa--fa: "\f886\f886"; } + +.fa-sort-numeric-down-alt { + --fa: "\f886"; + --fa--fa: "\f886\f886"; } + +.fa-face-grin-tongue-squint { + --fa: "\f58a"; + --fa--fa: "\f58a\f58a"; } + +.fa-grin-tongue-squint { + --fa: "\f58a"; + --fa--fa: "\f58a\f58a"; } + +.fa-spray-can { + --fa: "\f5bd"; + --fa--fa: "\f5bd\f5bd"; } + +.fa-truck-monster { + --fa: "\f63b"; + --fa--fa: "\f63b\f63b"; } + +.fa-w { + --fa: "\57"; + --fa--fa: "\57\57"; } + +.fa-earth-africa { + --fa: "\f57c"; + --fa--fa: "\f57c\f57c"; } + +.fa-globe-africa { + --fa: "\f57c"; + --fa--fa: "\f57c\f57c"; } + +.fa-rainbow { + --fa: "\f75b"; + --fa--fa: "\f75b\f75b"; } + +.fa-circle-notch { + --fa: "\f1ce"; + --fa--fa: "\f1ce\f1ce"; } + +.fa-tablet-screen-button { + --fa: "\f3fa"; + --fa--fa: "\f3fa\f3fa"; } + +.fa-tablet-alt { + --fa: "\f3fa"; + --fa--fa: "\f3fa\f3fa"; } + +.fa-paw { + --fa: "\f1b0"; + --fa--fa: "\f1b0\f1b0"; } + +.fa-cloud { + --fa: "\f0c2"; + --fa--fa: "\f0c2\f0c2"; } + +.fa-trowel-bricks { + --fa: "\e58a"; + --fa--fa: "\e58a\e58a"; } + +.fa-face-flushed { + --fa: "\f579"; + --fa--fa: "\f579\f579"; } + +.fa-flushed { + --fa: "\f579"; + --fa--fa: "\f579\f579"; } + +.fa-hospital-user { + --fa: "\f80d"; + --fa--fa: "\f80d\f80d"; } + +.fa-tent-arrow-left-right { + --fa: "\e57f"; + --fa--fa: "\e57f\e57f"; } + +.fa-gavel { + --fa: "\f0e3"; + --fa--fa: "\f0e3\f0e3"; } + +.fa-legal { + --fa: "\f0e3"; + --fa--fa: "\f0e3\f0e3"; } + +.fa-binoculars { + --fa: "\f1e5"; + --fa--fa: "\f1e5\f1e5"; } + +.fa-microphone-slash { + --fa: "\f131"; + --fa--fa: "\f131\f131"; } + +.fa-box-tissue { + --fa: "\e05b"; + --fa--fa: "\e05b\e05b"; } + +.fa-motorcycle { + --fa: "\f21c"; + --fa--fa: "\f21c\f21c"; } + +.fa-bell-concierge { + --fa: "\f562"; + --fa--fa: "\f562\f562"; } + +.fa-concierge-bell { + --fa: "\f562"; + --fa--fa: "\f562\f562"; } + +.fa-pen-ruler { + --fa: "\f5ae"; + --fa--fa: "\f5ae\f5ae"; } + +.fa-pencil-ruler { + --fa: "\f5ae"; + --fa--fa: "\f5ae\f5ae"; } + +.fa-people-arrows { + --fa: "\e068"; + --fa--fa: "\e068\e068"; } + +.fa-people-arrows-left-right { + --fa: "\e068"; + --fa--fa: "\e068\e068"; } + +.fa-mars-and-venus-burst { + --fa: "\e523"; + --fa--fa: "\e523\e523"; } + +.fa-square-caret-right { + --fa: "\f152"; + --fa--fa: "\f152\f152"; } + +.fa-caret-square-right { + --fa: "\f152"; + --fa--fa: "\f152\f152"; } + +.fa-scissors { + --fa: "\f0c4"; + --fa--fa: "\f0c4\f0c4"; } + +.fa-cut { + --fa: "\f0c4"; + --fa--fa: "\f0c4\f0c4"; } + +.fa-sun-plant-wilt { + --fa: "\e57a"; + --fa--fa: "\e57a\e57a"; } + +.fa-toilets-portable { + --fa: "\e584"; + --fa--fa: "\e584\e584"; } + +.fa-hockey-puck { + --fa: "\f453"; + --fa--fa: "\f453\f453"; } + +.fa-table { + --fa: "\f0ce"; + --fa--fa: "\f0ce\f0ce"; } + +.fa-magnifying-glass-arrow-right { + --fa: "\e521"; + --fa--fa: "\e521\e521"; } + +.fa-tachograph-digital { + --fa: "\f566"; + --fa--fa: "\f566\f566"; } + +.fa-digital-tachograph { + --fa: "\f566"; + --fa--fa: "\f566\f566"; } + +.fa-users-slash { + --fa: "\e073"; + --fa--fa: "\e073\e073"; } + +.fa-clover { + --fa: "\e139"; + --fa--fa: "\e139\e139"; } + +.fa-reply { + --fa: "\f3e5"; + --fa--fa: "\f3e5\f3e5"; } + +.fa-mail-reply { + --fa: "\f3e5"; + --fa--fa: "\f3e5\f3e5"; } + +.fa-star-and-crescent { + --fa: "\f699"; + --fa--fa: "\f699\f699"; } + +.fa-house-fire { + --fa: "\e50c"; + --fa--fa: "\e50c\e50c"; } + +.fa-square-minus { + --fa: "\f146"; + --fa--fa: "\f146\f146"; } + +.fa-minus-square { + --fa: "\f146"; + --fa--fa: "\f146\f146"; } + +.fa-helicopter { + --fa: "\f533"; + --fa--fa: "\f533\f533"; } + +.fa-compass { + --fa: "\f14e"; + --fa--fa: "\f14e\f14e"; } + +.fa-square-caret-down { + --fa: "\f150"; + --fa--fa: "\f150\f150"; } + +.fa-caret-square-down { + --fa: "\f150"; + --fa--fa: "\f150\f150"; } + +.fa-file-circle-question { + --fa: "\e4ef"; + --fa--fa: "\e4ef\e4ef"; } + +.fa-laptop-code { + --fa: "\f5fc"; + --fa--fa: "\f5fc\f5fc"; } + +.fa-swatchbook { + --fa: "\f5c3"; + --fa--fa: "\f5c3\f5c3"; } + +.fa-prescription-bottle { + --fa: "\f485"; + --fa--fa: "\f485\f485"; } + +.fa-bars { + --fa: "\f0c9"; + --fa--fa: "\f0c9\f0c9"; } + +.fa-navicon { + --fa: "\f0c9"; + --fa--fa: "\f0c9\f0c9"; } + +.fa-people-group { + --fa: "\e533"; + --fa--fa: "\e533\e533"; } + +.fa-hourglass-end { + --fa: "\f253"; + --fa--fa: "\f253\f253"; } + +.fa-hourglass-3 { + --fa: "\f253"; + --fa--fa: "\f253\f253"; } + +.fa-heart-crack { + --fa: "\f7a9"; + --fa--fa: "\f7a9\f7a9"; } + +.fa-heart-broken { + --fa: "\f7a9"; + --fa--fa: "\f7a9\f7a9"; } + +.fa-square-up-right { + --fa: "\f360"; + --fa--fa: "\f360\f360"; } + +.fa-external-link-square-alt { + --fa: "\f360"; + --fa--fa: "\f360\f360"; } + +.fa-face-kiss-beam { + --fa: "\f597"; + --fa--fa: "\f597\f597"; } + +.fa-kiss-beam { + --fa: "\f597"; + --fa--fa: "\f597\f597"; } + +.fa-film { + --fa: "\f008"; + --fa--fa: "\f008\f008"; } + +.fa-ruler-horizontal { + --fa: "\f547"; + --fa--fa: "\f547\f547"; } + +.fa-people-robbery { + --fa: "\e536"; + --fa--fa: "\e536\e536"; } + +.fa-lightbulb { + --fa: "\f0eb"; + --fa--fa: "\f0eb\f0eb"; } + +.fa-caret-left { + --fa: "\f0d9"; + --fa--fa: "\f0d9\f0d9"; } + +.fa-circle-exclamation { + --fa: "\f06a"; + --fa--fa: "\f06a\f06a"; } + +.fa-exclamation-circle { + --fa: "\f06a"; + --fa--fa: "\f06a\f06a"; } + +.fa-school-circle-xmark { + --fa: "\e56d"; + --fa--fa: "\e56d\e56d"; } + +.fa-arrow-right-from-bracket { + --fa: "\f08b"; + --fa--fa: "\f08b\f08b"; } + +.fa-sign-out { + --fa: "\f08b"; + --fa--fa: "\f08b\f08b"; } + +.fa-circle-chevron-down { + --fa: "\f13a"; + --fa--fa: "\f13a\f13a"; } + +.fa-chevron-circle-down { + --fa: "\f13a"; + --fa--fa: "\f13a\f13a"; } + +.fa-unlock-keyhole { + --fa: "\f13e"; + --fa--fa: "\f13e\f13e"; } + +.fa-unlock-alt { + --fa: "\f13e"; + --fa--fa: "\f13e\f13e"; } + +.fa-cloud-showers-heavy { + --fa: "\f740"; + --fa--fa: "\f740\f740"; } + +.fa-headphones-simple { + --fa: "\f58f"; + --fa--fa: "\f58f\f58f"; } + +.fa-headphones-alt { + --fa: "\f58f"; + --fa--fa: "\f58f\f58f"; } + +.fa-sitemap { + --fa: "\f0e8"; + --fa--fa: "\f0e8\f0e8"; } + +.fa-circle-dollar-to-slot { + --fa: "\f4b9"; + --fa--fa: "\f4b9\f4b9"; } + +.fa-donate { + --fa: "\f4b9"; + --fa--fa: "\f4b9\f4b9"; } + +.fa-memory { + --fa: "\f538"; + --fa--fa: "\f538\f538"; } + +.fa-road-spikes { + --fa: "\e568"; + --fa--fa: "\e568\e568"; } + +.fa-fire-burner { + --fa: "\e4f1"; + --fa--fa: "\e4f1\e4f1"; } + +.fa-flag { + --fa: "\f024"; + --fa--fa: "\f024\f024"; } + +.fa-hanukiah { + --fa: "\f6e6"; + --fa--fa: "\f6e6\f6e6"; } + +.fa-feather { + --fa: "\f52d"; + --fa--fa: "\f52d\f52d"; } + +.fa-volume-low { + --fa: "\f027"; + --fa--fa: "\f027\f027"; } + +.fa-volume-down { + --fa: "\f027"; + --fa--fa: "\f027\f027"; } + +.fa-comment-slash { + --fa: "\f4b3"; + --fa--fa: "\f4b3\f4b3"; } + +.fa-cloud-sun-rain { + --fa: "\f743"; + --fa--fa: "\f743\f743"; } + +.fa-compress { + --fa: "\f066"; + --fa--fa: "\f066\f066"; } + +.fa-wheat-awn { + --fa: "\e2cd"; + --fa--fa: "\e2cd\e2cd"; } + +.fa-wheat-alt { + --fa: "\e2cd"; + --fa--fa: "\e2cd\e2cd"; } + +.fa-ankh { + --fa: "\f644"; + --fa--fa: "\f644\f644"; } + +.fa-hands-holding-child { + --fa: "\e4fa"; + --fa--fa: "\e4fa\e4fa"; } + +.fa-asterisk { + --fa: "\2a"; + --fa--fa: "\2a\2a"; } + +.fa-square-check { + --fa: "\f14a"; + --fa--fa: "\f14a\f14a"; } + +.fa-check-square { + --fa: "\f14a"; + --fa--fa: "\f14a\f14a"; } + +.fa-peseta-sign { + --fa: "\e221"; + --fa--fa: "\e221\e221"; } + +.fa-heading { + --fa: "\f1dc"; + --fa--fa: "\f1dc\f1dc"; } + +.fa-header { + --fa: "\f1dc"; + --fa--fa: "\f1dc\f1dc"; } + +.fa-ghost { + --fa: "\f6e2"; + --fa--fa: "\f6e2\f6e2"; } + +.fa-list { + --fa: "\f03a"; + --fa--fa: "\f03a\f03a"; } + +.fa-list-squares { + --fa: "\f03a"; + --fa--fa: "\f03a\f03a"; } + +.fa-square-phone-flip { + --fa: "\f87b"; + --fa--fa: "\f87b\f87b"; } + +.fa-phone-square-alt { + --fa: "\f87b"; + --fa--fa: "\f87b\f87b"; } + +.fa-cart-plus { + --fa: "\f217"; + --fa--fa: "\f217\f217"; } + +.fa-gamepad { + --fa: "\f11b"; + --fa--fa: "\f11b\f11b"; } + +.fa-circle-dot { + --fa: "\f192"; + --fa--fa: "\f192\f192"; } + +.fa-dot-circle { + --fa: "\f192"; + --fa--fa: "\f192\f192"; } + +.fa-face-dizzy { + --fa: "\f567"; + --fa--fa: "\f567\f567"; } + +.fa-dizzy { + --fa: "\f567"; + --fa--fa: "\f567\f567"; } + +.fa-egg { + --fa: "\f7fb"; + --fa--fa: "\f7fb\f7fb"; } + +.fa-house-medical-circle-xmark { + --fa: "\e513"; + --fa--fa: "\e513\e513"; } + +.fa-campground { + --fa: "\f6bb"; + --fa--fa: "\f6bb\f6bb"; } + +.fa-folder-plus { + --fa: "\f65e"; + --fa--fa: "\f65e\f65e"; } + +.fa-futbol { + --fa: "\f1e3"; + --fa--fa: "\f1e3\f1e3"; } + +.fa-futbol-ball { + --fa: "\f1e3"; + --fa--fa: "\f1e3\f1e3"; } + +.fa-soccer-ball { + --fa: "\f1e3"; + --fa--fa: "\f1e3\f1e3"; } + +.fa-paintbrush { + --fa: "\f1fc"; + --fa--fa: "\f1fc\f1fc"; } + +.fa-paint-brush { + --fa: "\f1fc"; + --fa--fa: "\f1fc\f1fc"; } + +.fa-lock { + --fa: "\f023"; + --fa--fa: "\f023\f023"; } + +.fa-gas-pump { + --fa: "\f52f"; + --fa--fa: "\f52f\f52f"; } + +.fa-hot-tub-person { + --fa: "\f593"; + --fa--fa: "\f593\f593"; } + +.fa-hot-tub { + --fa: "\f593"; + --fa--fa: "\f593\f593"; } + +.fa-map-location { + --fa: "\f59f"; + --fa--fa: "\f59f\f59f"; } + +.fa-map-marked { + --fa: "\f59f"; + --fa--fa: "\f59f\f59f"; } + +.fa-house-flood-water { + --fa: "\e50e"; + --fa--fa: "\e50e\e50e"; } + +.fa-tree { + --fa: "\f1bb"; + --fa--fa: "\f1bb\f1bb"; } + +.fa-bridge-lock { + --fa: "\e4cc"; + --fa--fa: "\e4cc\e4cc"; } + +.fa-sack-dollar { + --fa: "\f81d"; + --fa--fa: "\f81d\f81d"; } + +.fa-pen-to-square { + --fa: "\f044"; + --fa--fa: "\f044\f044"; } + +.fa-edit { + --fa: "\f044"; + --fa--fa: "\f044\f044"; } + +.fa-car-side { + --fa: "\f5e4"; + --fa--fa: "\f5e4\f5e4"; } + +.fa-share-nodes { + --fa: "\f1e0"; + --fa--fa: "\f1e0\f1e0"; } + +.fa-share-alt { + --fa: "\f1e0"; + --fa--fa: "\f1e0\f1e0"; } + +.fa-heart-circle-minus { + --fa: "\e4ff"; + --fa--fa: "\e4ff\e4ff"; } + +.fa-hourglass-half { + --fa: "\f252"; + --fa--fa: "\f252\f252"; } + +.fa-hourglass-2 { + --fa: "\f252"; + --fa--fa: "\f252\f252"; } + +.fa-microscope { + --fa: "\f610"; + --fa--fa: "\f610\f610"; } + +.fa-sink { + --fa: "\e06d"; + --fa--fa: "\e06d\e06d"; } + +.fa-bag-shopping { + --fa: "\f290"; + --fa--fa: "\f290\f290"; } + +.fa-shopping-bag { + --fa: "\f290"; + --fa--fa: "\f290\f290"; } + +.fa-arrow-down-z-a { + --fa: "\f881"; + --fa--fa: "\f881\f881"; } + +.fa-sort-alpha-desc { + --fa: "\f881"; + --fa--fa: "\f881\f881"; } + +.fa-sort-alpha-down-alt { + --fa: "\f881"; + --fa--fa: "\f881\f881"; } + +.fa-mitten { + --fa: "\f7b5"; + --fa--fa: "\f7b5\f7b5"; } + +.fa-person-rays { + --fa: "\e54d"; + --fa--fa: "\e54d\e54d"; } + +.fa-users { + --fa: "\f0c0"; + --fa--fa: "\f0c0\f0c0"; } + +.fa-eye-slash { + --fa: "\f070"; + --fa--fa: "\f070\f070"; } + +.fa-flask-vial { + --fa: "\e4f3"; + --fa--fa: "\e4f3\e4f3"; } + +.fa-hand { + --fa: "\f256"; + --fa--fa: "\f256\f256"; } + +.fa-hand-paper { + --fa: "\f256"; + --fa--fa: "\f256\f256"; } + +.fa-om { + --fa: "\f679"; + --fa--fa: "\f679\f679"; } + +.fa-worm { + --fa: "\e599"; + --fa--fa: "\e599\e599"; } + +.fa-house-circle-xmark { + --fa: "\e50b"; + --fa--fa: "\e50b\e50b"; } + +.fa-plug { + --fa: "\f1e6"; + --fa--fa: "\f1e6\f1e6"; } + +.fa-chevron-up { + --fa: "\f077"; + --fa--fa: "\f077\f077"; } + +.fa-hand-spock { + --fa: "\f259"; + --fa--fa: "\f259\f259"; } + +.fa-stopwatch { + --fa: "\f2f2"; + --fa--fa: "\f2f2\f2f2"; } + +.fa-face-kiss { + --fa: "\f596"; + --fa--fa: "\f596\f596"; } + +.fa-kiss { + --fa: "\f596"; + --fa--fa: "\f596\f596"; } + +.fa-bridge-circle-xmark { + --fa: "\e4cb"; + --fa--fa: "\e4cb\e4cb"; } + +.fa-face-grin-tongue { + --fa: "\f589"; + --fa--fa: "\f589\f589"; } + +.fa-grin-tongue { + --fa: "\f589"; + --fa--fa: "\f589\f589"; } + +.fa-chess-bishop { + --fa: "\f43a"; + --fa--fa: "\f43a\f43a"; } + +.fa-face-grin-wink { + --fa: "\f58c"; + --fa--fa: "\f58c\f58c"; } + +.fa-grin-wink { + --fa: "\f58c"; + --fa--fa: "\f58c\f58c"; } + +.fa-ear-deaf { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-deaf { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-deafness { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-hard-of-hearing { + --fa: "\f2a4"; + --fa--fa: "\f2a4\f2a4"; } + +.fa-road-circle-check { + --fa: "\e564"; + --fa--fa: "\e564\e564"; } + +.fa-dice-five { + --fa: "\f523"; + --fa--fa: "\f523\f523"; } + +.fa-square-rss { + --fa: "\f143"; + --fa--fa: "\f143\f143"; } + +.fa-rss-square { + --fa: "\f143"; + --fa--fa: "\f143\f143"; } + +.fa-land-mine-on { + --fa: "\e51b"; + --fa--fa: "\e51b\e51b"; } + +.fa-i-cursor { + --fa: "\f246"; + --fa--fa: "\f246\f246"; } + +.fa-stamp { + --fa: "\f5bf"; + --fa--fa: "\f5bf\f5bf"; } + +.fa-stairs { + --fa: "\e289"; + --fa--fa: "\e289\e289"; } + +.fa-i { + --fa: "\49"; + --fa--fa: "\49\49"; } + +.fa-hryvnia-sign { + --fa: "\f6f2"; + --fa--fa: "\f6f2\f6f2"; } + +.fa-hryvnia { + --fa: "\f6f2"; + --fa--fa: "\f6f2\f6f2"; } + +.fa-pills { + --fa: "\f484"; + --fa--fa: "\f484\f484"; } + +.fa-face-grin-wide { + --fa: "\f581"; + --fa--fa: "\f581\f581"; } + +.fa-grin-alt { + --fa: "\f581"; + --fa--fa: "\f581\f581"; } + +.fa-tooth { + --fa: "\f5c9"; + --fa--fa: "\f5c9\f5c9"; } + +.fa-v { + --fa: "\56"; + --fa--fa: "\56\56"; } + +.fa-bangladeshi-taka-sign { + --fa: "\e2e6"; + --fa--fa: "\e2e6\e2e6"; } + +.fa-bicycle { + --fa: "\f206"; + --fa--fa: "\f206\f206"; } + +.fa-staff-snake { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-rod-asclepius { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-rod-snake { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-staff-aesculapius { + --fa: "\e579"; + --fa--fa: "\e579\e579"; } + +.fa-head-side-cough-slash { + --fa: "\e062"; + --fa--fa: "\e062\e062"; } + +.fa-truck-medical { + --fa: "\f0f9"; + --fa--fa: "\f0f9\f0f9"; } + +.fa-ambulance { + --fa: "\f0f9"; + --fa--fa: "\f0f9\f0f9"; } + +.fa-wheat-awn-circle-exclamation { + --fa: "\e598"; + --fa--fa: "\e598\e598"; } + +.fa-snowman { + --fa: "\f7d0"; + --fa--fa: "\f7d0\f7d0"; } + +.fa-mortar-pestle { + --fa: "\f5a7"; + --fa--fa: "\f5a7\f5a7"; } + +.fa-road-barrier { + --fa: "\e562"; + --fa--fa: "\e562\e562"; } + +.fa-school { + --fa: "\f549"; + --fa--fa: "\f549\f549"; } + +.fa-igloo { + --fa: "\f7ae"; + --fa--fa: "\f7ae\f7ae"; } + +.fa-joint { + --fa: "\f595"; + --fa--fa: "\f595\f595"; } + +.fa-angle-right { + --fa: "\f105"; + --fa--fa: "\f105\f105"; } + +.fa-horse { + --fa: "\f6f0"; + --fa--fa: "\f6f0\f6f0"; } + +.fa-q { + --fa: "\51"; + --fa--fa: "\51\51"; } + +.fa-g { + --fa: "\47"; + --fa--fa: "\47\47"; } + +.fa-notes-medical { + --fa: "\f481"; + --fa--fa: "\f481\f481"; } + +.fa-temperature-half { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-temperature-2 { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-thermometer-2 { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-thermometer-half { + --fa: "\f2c9"; + --fa--fa: "\f2c9\f2c9"; } + +.fa-dong-sign { + --fa: "\e169"; + --fa--fa: "\e169\e169"; } + +.fa-capsules { + --fa: "\f46b"; + --fa--fa: "\f46b\f46b"; } + +.fa-poo-storm { + --fa: "\f75a"; + --fa--fa: "\f75a\f75a"; } + +.fa-poo-bolt { + --fa: "\f75a"; + --fa--fa: "\f75a\f75a"; } + +.fa-face-frown-open { + --fa: "\f57a"; + --fa--fa: "\f57a\f57a"; } + +.fa-frown-open { + --fa: "\f57a"; + --fa--fa: "\f57a\f57a"; } + +.fa-hand-point-up { + --fa: "\f0a6"; + --fa--fa: "\f0a6\f0a6"; } + +.fa-money-bill { + --fa: "\f0d6"; + --fa--fa: "\f0d6\f0d6"; } + +.fa-bookmark { + --fa: "\f02e"; + --fa--fa: "\f02e\f02e"; } + +.fa-align-justify { + --fa: "\f039"; + --fa--fa: "\f039\f039"; } + +.fa-umbrella-beach { + --fa: "\f5ca"; + --fa--fa: "\f5ca\f5ca"; } + +.fa-helmet-un { + --fa: "\e503"; + --fa--fa: "\e503\e503"; } + +.fa-bullseye { + --fa: "\f140"; + --fa--fa: "\f140\f140"; } + +.fa-bacon { + --fa: "\f7e5"; + --fa--fa: "\f7e5\f7e5"; } + +.fa-hand-point-down { + --fa: "\f0a7"; + --fa--fa: "\f0a7\f0a7"; } + +.fa-arrow-up-from-bracket { + --fa: "\e09a"; + --fa--fa: "\e09a\e09a"; } + +.fa-folder { + --fa: "\f07b"; + --fa--fa: "\f07b\f07b"; } + +.fa-folder-blank { + --fa: "\f07b"; + --fa--fa: "\f07b\f07b"; } + +.fa-file-waveform { + --fa: "\f478"; + --fa--fa: "\f478\f478"; } + +.fa-file-medical-alt { + --fa: "\f478"; + --fa--fa: "\f478\f478"; } + +.fa-radiation { + --fa: "\f7b9"; + --fa--fa: "\f7b9\f7b9"; } + +.fa-chart-simple { + --fa: "\e473"; + --fa--fa: "\e473\e473"; } + +.fa-mars-stroke { + --fa: "\f229"; + --fa--fa: "\f229\f229"; } + +.fa-vial { + --fa: "\f492"; + --fa--fa: "\f492\f492"; } + +.fa-gauge { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-dashboard { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-gauge-med { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-tachometer-alt-average { + --fa: "\f624"; + --fa--fa: "\f624\f624"; } + +.fa-wand-magic-sparkles { + --fa: "\e2ca"; + --fa--fa: "\e2ca\e2ca"; } + +.fa-magic-wand-sparkles { + --fa: "\e2ca"; + --fa--fa: "\e2ca\e2ca"; } + +.fa-e { + --fa: "\45"; + --fa--fa: "\45\45"; } + +.fa-pen-clip { + --fa: "\f305"; + --fa--fa: "\f305\f305"; } + +.fa-pen-alt { + --fa: "\f305"; + --fa--fa: "\f305\f305"; } + +.fa-bridge-circle-exclamation { + --fa: "\e4ca"; + --fa--fa: "\e4ca\e4ca"; } + +.fa-user { + --fa: "\f007"; + --fa--fa: "\f007\f007"; } + +.fa-school-circle-check { + --fa: "\e56b"; + --fa--fa: "\e56b\e56b"; } + +.fa-dumpster { + --fa: "\f793"; + --fa--fa: "\f793\f793"; } + +.fa-van-shuttle { + --fa: "\f5b6"; + --fa--fa: "\f5b6\f5b6"; } + +.fa-shuttle-van { + --fa: "\f5b6"; + --fa--fa: "\f5b6\f5b6"; } + +.fa-building-user { + --fa: "\e4da"; + --fa--fa: "\e4da\e4da"; } + +.fa-square-caret-left { + --fa: "\f191"; + --fa--fa: "\f191\f191"; } + +.fa-caret-square-left { + --fa: "\f191"; + --fa--fa: "\f191\f191"; } + +.fa-highlighter { + --fa: "\f591"; + --fa--fa: "\f591\f591"; } + +.fa-key { + --fa: "\f084"; + --fa--fa: "\f084\f084"; } + +.fa-bullhorn { + --fa: "\f0a1"; + --fa--fa: "\f0a1\f0a1"; } + +.fa-globe { + --fa: "\f0ac"; + --fa--fa: "\f0ac\f0ac"; } + +.fa-synagogue { + --fa: "\f69b"; + --fa--fa: "\f69b\f69b"; } + +.fa-person-half-dress { + --fa: "\e548"; + --fa--fa: "\e548\e548"; } + +.fa-road-bridge { + --fa: "\e563"; + --fa--fa: "\e563\e563"; } + +.fa-location-arrow { + --fa: "\f124"; + --fa--fa: "\f124\f124"; } + +.fa-c { + --fa: "\43"; + --fa--fa: "\43\43"; } + +.fa-tablet-button { + --fa: "\f10a"; + --fa--fa: "\f10a\f10a"; } + +.fa-building-lock { + --fa: "\e4d6"; + --fa--fa: "\e4d6\e4d6"; } + +.fa-pizza-slice { + --fa: "\f818"; + --fa--fa: "\f818\f818"; } + +.fa-money-bill-wave { + --fa: "\f53a"; + --fa--fa: "\f53a\f53a"; } + +.fa-chart-area { + --fa: "\f1fe"; + --fa--fa: "\f1fe\f1fe"; } + +.fa-area-chart { + --fa: "\f1fe"; + --fa--fa: "\f1fe\f1fe"; } + +.fa-house-flag { + --fa: "\e50d"; + --fa--fa: "\e50d\e50d"; } + +.fa-person-circle-minus { + --fa: "\e540"; + --fa--fa: "\e540\e540"; } + +.fa-ban { + --fa: "\f05e"; + --fa--fa: "\f05e\f05e"; } + +.fa-cancel { + --fa: "\f05e"; + --fa--fa: "\f05e\f05e"; } + +.fa-camera-rotate { + --fa: "\e0d8"; + --fa--fa: "\e0d8\e0d8"; } + +.fa-spray-can-sparkles { + --fa: "\f5d0"; + --fa--fa: "\f5d0\f5d0"; } + +.fa-air-freshener { + --fa: "\f5d0"; + --fa--fa: "\f5d0\f5d0"; } + +.fa-star { + --fa: "\f005"; + --fa--fa: "\f005\f005"; } + +.fa-repeat { + --fa: "\f363"; + --fa--fa: "\f363\f363"; } + +.fa-cross { + --fa: "\f654"; + --fa--fa: "\f654\f654"; } + +.fa-box { + --fa: "\f466"; + --fa--fa: "\f466\f466"; } + +.fa-venus-mars { + --fa: "\f228"; + --fa--fa: "\f228\f228"; } + +.fa-arrow-pointer { + --fa: "\f245"; + --fa--fa: "\f245\f245"; } + +.fa-mouse-pointer { + --fa: "\f245"; + --fa--fa: "\f245\f245"; } + +.fa-maximize { + --fa: "\f31e"; + --fa--fa: "\f31e\f31e"; } + +.fa-expand-arrows-alt { + --fa: "\f31e"; + --fa--fa: "\f31e\f31e"; } + +.fa-charging-station { + --fa: "\f5e7"; + --fa--fa: "\f5e7\f5e7"; } + +.fa-shapes { + --fa: "\f61f"; + --fa--fa: "\f61f\f61f"; } + +.fa-triangle-circle-square { + --fa: "\f61f"; + --fa--fa: "\f61f\f61f"; } + +.fa-shuffle { + --fa: "\f074"; + --fa--fa: "\f074\f074"; } + +.fa-random { + --fa: "\f074"; + --fa--fa: "\f074\f074"; } + +.fa-person-running { + --fa: "\f70c"; + --fa--fa: "\f70c\f70c"; } + +.fa-running { + --fa: "\f70c"; + --fa--fa: "\f70c\f70c"; } + +.fa-mobile-retro { + --fa: "\e527"; + --fa--fa: "\e527\e527"; } + +.fa-grip-lines-vertical { + --fa: "\f7a5"; + --fa--fa: "\f7a5\f7a5"; } + +.fa-spider { + --fa: "\f717"; + --fa--fa: "\f717\f717"; } + +.fa-hands-bound { + --fa: "\e4f9"; + --fa--fa: "\e4f9\e4f9"; } + +.fa-file-invoice-dollar { + --fa: "\f571"; + --fa--fa: "\f571\f571"; } + +.fa-plane-circle-exclamation { + --fa: "\e556"; + --fa--fa: "\e556\e556"; } + +.fa-x-ray { + --fa: "\f497"; + --fa--fa: "\f497\f497"; } + +.fa-spell-check { + --fa: "\f891"; + --fa--fa: "\f891\f891"; } + +.fa-slash { + --fa: "\f715"; + --fa--fa: "\f715\f715"; } + +.fa-computer-mouse { + --fa: "\f8cc"; + --fa--fa: "\f8cc\f8cc"; } + +.fa-mouse { + --fa: "\f8cc"; + --fa--fa: "\f8cc\f8cc"; } + +.fa-arrow-right-to-bracket { + --fa: "\f090"; + --fa--fa: "\f090\f090"; } + +.fa-sign-in { + --fa: "\f090"; + --fa--fa: "\f090\f090"; } + +.fa-shop-slash { + --fa: "\e070"; + --fa--fa: "\e070\e070"; } + +.fa-store-alt-slash { + --fa: "\e070"; + --fa--fa: "\e070\e070"; } + +.fa-server { + --fa: "\f233"; + --fa--fa: "\f233\f233"; } + +.fa-virus-covid-slash { + --fa: "\e4a9"; + --fa--fa: "\e4a9\e4a9"; } + +.fa-shop-lock { + --fa: "\e4a5"; + --fa--fa: "\e4a5\e4a5"; } + +.fa-hourglass-start { + --fa: "\f251"; + --fa--fa: "\f251\f251"; } + +.fa-hourglass-1 { + --fa: "\f251"; + --fa--fa: "\f251\f251"; } + +.fa-blender-phone { + --fa: "\f6b6"; + --fa--fa: "\f6b6\f6b6"; } + +.fa-building-wheat { + --fa: "\e4db"; + --fa--fa: "\e4db\e4db"; } + +.fa-person-breastfeeding { + --fa: "\e53a"; + --fa--fa: "\e53a\e53a"; } + +.fa-right-to-bracket { + --fa: "\f2f6"; + --fa--fa: "\f2f6\f2f6"; } + +.fa-sign-in-alt { + --fa: "\f2f6"; + --fa--fa: "\f2f6\f2f6"; } + +.fa-venus { + --fa: "\f221"; + --fa--fa: "\f221\f221"; } + +.fa-passport { + --fa: "\f5ab"; + --fa--fa: "\f5ab\f5ab"; } + +.fa-thumbtack-slash { + --fa: "\e68f"; + --fa--fa: "\e68f\e68f"; } + +.fa-thumb-tack-slash { + --fa: "\e68f"; + --fa--fa: "\e68f\e68f"; } + +.fa-heart-pulse { + --fa: "\f21e"; + --fa--fa: "\f21e\f21e"; } + +.fa-heartbeat { + --fa: "\f21e"; + --fa--fa: "\f21e\f21e"; } + +.fa-people-carry-box { + --fa: "\f4ce"; + --fa--fa: "\f4ce\f4ce"; } + +.fa-people-carry { + --fa: "\f4ce"; + --fa--fa: "\f4ce\f4ce"; } + +.fa-temperature-high { + --fa: "\f769"; + --fa--fa: "\f769\f769"; } + +.fa-microchip { + --fa: "\f2db"; + --fa--fa: "\f2db\f2db"; } + +.fa-crown { + --fa: "\f521"; + --fa--fa: "\f521\f521"; } + +.fa-weight-hanging { + --fa: "\f5cd"; + --fa--fa: "\f5cd\f5cd"; } + +.fa-xmarks-lines { + --fa: "\e59a"; + --fa--fa: "\e59a\e59a"; } + +.fa-file-prescription { + --fa: "\f572"; + --fa--fa: "\f572\f572"; } + +.fa-weight-scale { + --fa: "\f496"; + --fa--fa: "\f496\f496"; } + +.fa-weight { + --fa: "\f496"; + --fa--fa: "\f496\f496"; } + +.fa-user-group { + --fa: "\f500"; + --fa--fa: "\f500\f500"; } + +.fa-user-friends { + --fa: "\f500"; + --fa--fa: "\f500\f500"; } + +.fa-arrow-up-a-z { + --fa: "\f15e"; + --fa--fa: "\f15e\f15e"; } + +.fa-sort-alpha-up { + --fa: "\f15e"; + --fa--fa: "\f15e\f15e"; } + +.fa-chess-knight { + --fa: "\f441"; + --fa--fa: "\f441\f441"; } + +.fa-face-laugh-squint { + --fa: "\f59b"; + --fa--fa: "\f59b\f59b"; } + +.fa-laugh-squint { + --fa: "\f59b"; + --fa--fa: "\f59b\f59b"; } + +.fa-wheelchair { + --fa: "\f193"; + --fa--fa: "\f193\f193"; } + +.fa-circle-arrow-up { + --fa: "\f0aa"; + --fa--fa: "\f0aa\f0aa"; } + +.fa-arrow-circle-up { + --fa: "\f0aa"; + --fa--fa: "\f0aa\f0aa"; } + +.fa-toggle-on { + --fa: "\f205"; + --fa--fa: "\f205\f205"; } + +.fa-person-walking { + --fa: "\f554"; + --fa--fa: "\f554\f554"; } + +.fa-walking { + --fa: "\f554"; + --fa--fa: "\f554\f554"; } + +.fa-l { + --fa: "\4c"; + --fa--fa: "\4c\4c"; } + +.fa-fire { + --fa: "\f06d"; + --fa--fa: "\f06d\f06d"; } + +.fa-bed-pulse { + --fa: "\f487"; + --fa--fa: "\f487\f487"; } + +.fa-procedures { + --fa: "\f487"; + --fa--fa: "\f487\f487"; } + +.fa-shuttle-space { + --fa: "\f197"; + --fa--fa: "\f197\f197"; } + +.fa-space-shuttle { + --fa: "\f197"; + --fa--fa: "\f197\f197"; } + +.fa-face-laugh { + --fa: "\f599"; + --fa--fa: "\f599\f599"; } + +.fa-laugh { + --fa: "\f599"; + --fa--fa: "\f599\f599"; } + +.fa-folder-open { + --fa: "\f07c"; + --fa--fa: "\f07c\f07c"; } + +.fa-heart-circle-plus { + --fa: "\e500"; + --fa--fa: "\e500\e500"; } + +.fa-code-fork { + --fa: "\e13b"; + --fa--fa: "\e13b\e13b"; } + +.fa-city { + --fa: "\f64f"; + --fa--fa: "\f64f\f64f"; } + +.fa-microphone-lines { + --fa: "\f3c9"; + --fa--fa: "\f3c9\f3c9"; } + +.fa-microphone-alt { + --fa: "\f3c9"; + --fa--fa: "\f3c9\f3c9"; } + +.fa-pepper-hot { + --fa: "\f816"; + --fa--fa: "\f816\f816"; } + +.fa-unlock { + --fa: "\f09c"; + --fa--fa: "\f09c\f09c"; } + +.fa-colon-sign { + --fa: "\e140"; + --fa--fa: "\e140\e140"; } + +.fa-headset { + --fa: "\f590"; + --fa--fa: "\f590\f590"; } + +.fa-store-slash { + --fa: "\e071"; + --fa--fa: "\e071\e071"; } + +.fa-road-circle-xmark { + --fa: "\e566"; + --fa--fa: "\e566\e566"; } + +.fa-user-minus { + --fa: "\f503"; + --fa--fa: "\f503\f503"; } + +.fa-mars-stroke-up { + --fa: "\f22a"; + --fa--fa: "\f22a\f22a"; } + +.fa-mars-stroke-v { + --fa: "\f22a"; + --fa--fa: "\f22a\f22a"; } + +.fa-champagne-glasses { + --fa: "\f79f"; + --fa--fa: "\f79f\f79f"; } + +.fa-glass-cheers { + --fa: "\f79f"; + --fa--fa: "\f79f\f79f"; } + +.fa-clipboard { + --fa: "\f328"; + --fa--fa: "\f328\f328"; } + +.fa-house-circle-exclamation { + --fa: "\e50a"; + --fa--fa: "\e50a\e50a"; } + +.fa-file-arrow-up { + --fa: "\f574"; + --fa--fa: "\f574\f574"; } + +.fa-file-upload { + --fa: "\f574"; + --fa--fa: "\f574\f574"; } + +.fa-wifi { + --fa: "\f1eb"; + --fa--fa: "\f1eb\f1eb"; } + +.fa-wifi-3 { + --fa: "\f1eb"; + --fa--fa: "\f1eb\f1eb"; } + +.fa-wifi-strong { + --fa: "\f1eb"; + --fa--fa: "\f1eb\f1eb"; } + +.fa-bath { + --fa: "\f2cd"; + --fa--fa: "\f2cd\f2cd"; } + +.fa-bathtub { + --fa: "\f2cd"; + --fa--fa: "\f2cd\f2cd"; } + +.fa-underline { + --fa: "\f0cd"; + --fa--fa: "\f0cd\f0cd"; } + +.fa-user-pen { + --fa: "\f4ff"; + --fa--fa: "\f4ff\f4ff"; } + +.fa-user-edit { + --fa: "\f4ff"; + --fa--fa: "\f4ff\f4ff"; } + +.fa-signature { + --fa: "\f5b7"; + --fa--fa: "\f5b7\f5b7"; } + +.fa-stroopwafel { + --fa: "\f551"; + --fa--fa: "\f551\f551"; } + +.fa-bold { + --fa: "\f032"; + --fa--fa: "\f032\f032"; } + +.fa-anchor-lock { + --fa: "\e4ad"; + --fa--fa: "\e4ad\e4ad"; } + +.fa-building-ngo { + --fa: "\e4d7"; + --fa--fa: "\e4d7\e4d7"; } + +.fa-manat-sign { + --fa: "\e1d5"; + --fa--fa: "\e1d5\e1d5"; } + +.fa-not-equal { + --fa: "\f53e"; + --fa--fa: "\f53e\f53e"; } + +.fa-border-top-left { + --fa: "\f853"; + --fa--fa: "\f853\f853"; } + +.fa-border-style { + --fa: "\f853"; + --fa--fa: "\f853\f853"; } + +.fa-map-location-dot { + --fa: "\f5a0"; + --fa--fa: "\f5a0\f5a0"; } + +.fa-map-marked-alt { + --fa: "\f5a0"; + --fa--fa: "\f5a0\f5a0"; } + +.fa-jedi { + --fa: "\f669"; + --fa--fa: "\f669\f669"; } + +.fa-square-poll-vertical { + --fa: "\f681"; + --fa--fa: "\f681\f681"; } + +.fa-poll { + --fa: "\f681"; + --fa--fa: "\f681\f681"; } + +.fa-mug-hot { + --fa: "\f7b6"; + --fa--fa: "\f7b6\f7b6"; } + +.fa-car-battery { + --fa: "\f5df"; + --fa--fa: "\f5df\f5df"; } + +.fa-battery-car { + --fa: "\f5df"; + --fa--fa: "\f5df\f5df"; } + +.fa-gift { + --fa: "\f06b"; + --fa--fa: "\f06b\f06b"; } + +.fa-dice-two { + --fa: "\f528"; + --fa--fa: "\f528\f528"; } + +.fa-chess-queen { + --fa: "\f445"; + --fa--fa: "\f445\f445"; } + +.fa-glasses { + --fa: "\f530"; + --fa--fa: "\f530\f530"; } + +.fa-chess-board { + --fa: "\f43c"; + --fa--fa: "\f43c\f43c"; } + +.fa-building-circle-check { + --fa: "\e4d2"; + --fa--fa: "\e4d2\e4d2"; } + +.fa-person-chalkboard { + --fa: "\e53d"; + --fa--fa: "\e53d\e53d"; } + +.fa-mars-stroke-right { + --fa: "\f22b"; + --fa--fa: "\f22b\f22b"; } + +.fa-mars-stroke-h { + --fa: "\f22b"; + --fa--fa: "\f22b\f22b"; } + +.fa-hand-back-fist { + --fa: "\f255"; + --fa--fa: "\f255\f255"; } + +.fa-hand-rock { + --fa: "\f255"; + --fa--fa: "\f255\f255"; } + +.fa-square-caret-up { + --fa: "\f151"; + --fa--fa: "\f151\f151"; } + +.fa-caret-square-up { + --fa: "\f151"; + --fa--fa: "\f151\f151"; } + +.fa-cloud-showers-water { + --fa: "\e4e4"; + --fa--fa: "\e4e4\e4e4"; } + +.fa-chart-bar { + --fa: "\f080"; + --fa--fa: "\f080\f080"; } + +.fa-bar-chart { + --fa: "\f080"; + --fa--fa: "\f080\f080"; } + +.fa-hands-bubbles { + --fa: "\e05e"; + --fa--fa: "\e05e\e05e"; } + +.fa-hands-wash { + --fa: "\e05e"; + --fa--fa: "\e05e\e05e"; } + +.fa-less-than-equal { + --fa: "\f537"; + --fa--fa: "\f537\f537"; } + +.fa-train { + --fa: "\f238"; + --fa--fa: "\f238\f238"; } + +.fa-eye-low-vision { + --fa: "\f2a8"; + --fa--fa: "\f2a8\f2a8"; } + +.fa-low-vision { + --fa: "\f2a8"; + --fa--fa: "\f2a8\f2a8"; } + +.fa-crow { + --fa: "\f520"; + --fa--fa: "\f520\f520"; } + +.fa-sailboat { + --fa: "\e445"; + --fa--fa: "\e445\e445"; } + +.fa-window-restore { + --fa: "\f2d2"; + --fa--fa: "\f2d2\f2d2"; } + +.fa-square-plus { + --fa: "\f0fe"; + --fa--fa: "\f0fe\f0fe"; } + +.fa-plus-square { + --fa: "\f0fe"; + --fa--fa: "\f0fe\f0fe"; } + +.fa-torii-gate { + --fa: "\f6a1"; + --fa--fa: "\f6a1\f6a1"; } + +.fa-frog { + --fa: "\f52e"; + --fa--fa: "\f52e\f52e"; } + +.fa-bucket { + --fa: "\e4cf"; + --fa--fa: "\e4cf\e4cf"; } + +.fa-image { + --fa: "\f03e"; + --fa--fa: "\f03e\f03e"; } + +.fa-microphone { + --fa: "\f130"; + --fa--fa: "\f130\f130"; } + +.fa-cow { + --fa: "\f6c8"; + --fa--fa: "\f6c8\f6c8"; } + +.fa-caret-up { + --fa: "\f0d8"; + --fa--fa: "\f0d8\f0d8"; } + +.fa-screwdriver { + --fa: "\f54a"; + --fa--fa: "\f54a\f54a"; } + +.fa-folder-closed { + --fa: "\e185"; + --fa--fa: "\e185\e185"; } + +.fa-house-tsunami { + --fa: "\e515"; + --fa--fa: "\e515\e515"; } + +.fa-square-nfi { + --fa: "\e576"; + --fa--fa: "\e576\e576"; } + +.fa-arrow-up-from-ground-water { + --fa: "\e4b5"; + --fa--fa: "\e4b5\e4b5"; } + +.fa-martini-glass { + --fa: "\f57b"; + --fa--fa: "\f57b\f57b"; } + +.fa-glass-martini-alt { + --fa: "\f57b"; + --fa--fa: "\f57b\f57b"; } + +.fa-square-binary { + --fa: "\e69b"; + --fa--fa: "\e69b\e69b"; } + +.fa-rotate-left { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-rotate-back { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-rotate-backward { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-undo-alt { + --fa: "\f2ea"; + --fa--fa: "\f2ea\f2ea"; } + +.fa-table-columns { + --fa: "\f0db"; + --fa--fa: "\f0db\f0db"; } + +.fa-columns { + --fa: "\f0db"; + --fa--fa: "\f0db\f0db"; } + +.fa-lemon { + --fa: "\f094"; + --fa--fa: "\f094\f094"; } + +.fa-head-side-mask { + --fa: "\e063"; + --fa--fa: "\e063\e063"; } + +.fa-handshake { + --fa: "\f2b5"; + --fa--fa: "\f2b5\f2b5"; } + +.fa-gem { + --fa: "\f3a5"; + --fa--fa: "\f3a5\f3a5"; } + +.fa-dolly { + --fa: "\f472"; + --fa--fa: "\f472\f472"; } + +.fa-dolly-box { + --fa: "\f472"; + --fa--fa: "\f472\f472"; } + +.fa-smoking { + --fa: "\f48d"; + --fa--fa: "\f48d\f48d"; } + +.fa-minimize { + --fa: "\f78c"; + --fa--fa: "\f78c\f78c"; } + +.fa-compress-arrows-alt { + --fa: "\f78c"; + --fa--fa: "\f78c\f78c"; } + +.fa-monument { + --fa: "\f5a6"; + --fa--fa: "\f5a6\f5a6"; } + +.fa-snowplow { + --fa: "\f7d2"; + --fa--fa: "\f7d2\f7d2"; } + +.fa-angles-right { + --fa: "\f101"; + --fa--fa: "\f101\f101"; } + +.fa-angle-double-right { + --fa: "\f101"; + --fa--fa: "\f101\f101"; } + +.fa-cannabis { + --fa: "\f55f"; + --fa--fa: "\f55f\f55f"; } + +.fa-circle-play { + --fa: "\f144"; + --fa--fa: "\f144\f144"; } + +.fa-play-circle { + --fa: "\f144"; + --fa--fa: "\f144\f144"; } + +.fa-tablets { + --fa: "\f490"; + --fa--fa: "\f490\f490"; } + +.fa-ethernet { + --fa: "\f796"; + --fa--fa: "\f796\f796"; } + +.fa-euro-sign { + --fa: "\f153"; + --fa--fa: "\f153\f153"; } + +.fa-eur { + --fa: "\f153"; + --fa--fa: "\f153\f153"; } + +.fa-euro { + --fa: "\f153"; + --fa--fa: "\f153\f153"; } + +.fa-chair { + --fa: "\f6c0"; + --fa--fa: "\f6c0\f6c0"; } + +.fa-circle-check { + --fa: "\f058"; + --fa--fa: "\f058\f058"; } + +.fa-check-circle { + --fa: "\f058"; + --fa--fa: "\f058\f058"; } + +.fa-circle-stop { + --fa: "\f28d"; + --fa--fa: "\f28d\f28d"; } + +.fa-stop-circle { + --fa: "\f28d"; + --fa--fa: "\f28d\f28d"; } + +.fa-compass-drafting { + --fa: "\f568"; + --fa--fa: "\f568\f568"; } + +.fa-drafting-compass { + --fa: "\f568"; + --fa--fa: "\f568\f568"; } + +.fa-plate-wheat { + --fa: "\e55a"; + --fa--fa: "\e55a\e55a"; } + +.fa-icicles { + --fa: "\f7ad"; + --fa--fa: "\f7ad\f7ad"; } + +.fa-person-shelter { + --fa: "\e54f"; + --fa--fa: "\e54f\e54f"; } + +.fa-neuter { + --fa: "\f22c"; + --fa--fa: "\f22c\f22c"; } + +.fa-id-badge { + --fa: "\f2c1"; + --fa--fa: "\f2c1\f2c1"; } + +.fa-marker { + --fa: "\f5a1"; + --fa--fa: "\f5a1\f5a1"; } + +.fa-face-laugh-beam { + --fa: "\f59a"; + --fa--fa: "\f59a\f59a"; } + +.fa-laugh-beam { + --fa: "\f59a"; + --fa--fa: "\f59a\f59a"; } + +.fa-helicopter-symbol { + --fa: "\e502"; + --fa--fa: "\e502\e502"; } + +.fa-universal-access { + --fa: "\f29a"; + --fa--fa: "\f29a\f29a"; } + +.fa-circle-chevron-up { + --fa: "\f139"; + --fa--fa: "\f139\f139"; } + +.fa-chevron-circle-up { + --fa: "\f139"; + --fa--fa: "\f139\f139"; } + +.fa-lari-sign { + --fa: "\e1c8"; + --fa--fa: "\e1c8\e1c8"; } + +.fa-volcano { + --fa: "\f770"; + --fa--fa: "\f770\f770"; } + +.fa-person-walking-dashed-line-arrow-right { + --fa: "\e553"; + --fa--fa: "\e553\e553"; } + +.fa-sterling-sign { + --fa: "\f154"; + --fa--fa: "\f154\f154"; } + +.fa-gbp { + --fa: "\f154"; + --fa--fa: "\f154\f154"; } + +.fa-pound-sign { + --fa: "\f154"; + --fa--fa: "\f154\f154"; } + +.fa-viruses { + --fa: "\e076"; + --fa--fa: "\e076\e076"; } + +.fa-square-person-confined { + --fa: "\e577"; + --fa--fa: "\e577\e577"; } + +.fa-user-tie { + --fa: "\f508"; + --fa--fa: "\f508\f508"; } + +.fa-arrow-down-long { + --fa: "\f175"; + --fa--fa: "\f175\f175"; } + +.fa-long-arrow-down { + --fa: "\f175"; + --fa--fa: "\f175\f175"; } + +.fa-tent-arrow-down-to-line { + --fa: "\e57e"; + --fa--fa: "\e57e\e57e"; } + +.fa-certificate { + --fa: "\f0a3"; + --fa--fa: "\f0a3\f0a3"; } + +.fa-reply-all { + --fa: "\f122"; + --fa--fa: "\f122\f122"; } + +.fa-mail-reply-all { + --fa: "\f122"; + --fa--fa: "\f122\f122"; } + +.fa-suitcase { + --fa: "\f0f2"; + --fa--fa: "\f0f2\f0f2"; } + +.fa-person-skating { + --fa: "\f7c5"; + --fa--fa: "\f7c5\f7c5"; } + +.fa-skating { + --fa: "\f7c5"; + --fa--fa: "\f7c5\f7c5"; } + +.fa-filter-circle-dollar { + --fa: "\f662"; + --fa--fa: "\f662\f662"; } + +.fa-funnel-dollar { + --fa: "\f662"; + --fa--fa: "\f662\f662"; } + +.fa-camera-retro { + --fa: "\f083"; + --fa--fa: "\f083\f083"; } + +.fa-circle-arrow-down { + --fa: "\f0ab"; + --fa--fa: "\f0ab\f0ab"; } + +.fa-arrow-circle-down { + --fa: "\f0ab"; + --fa--fa: "\f0ab\f0ab"; } + +.fa-file-import { + --fa: "\f56f"; + --fa--fa: "\f56f\f56f"; } + +.fa-arrow-right-to-file { + --fa: "\f56f"; + --fa--fa: "\f56f\f56f"; } + +.fa-square-arrow-up-right { + --fa: "\f14c"; + --fa--fa: "\f14c\f14c"; } + +.fa-external-link-square { + --fa: "\f14c"; + --fa--fa: "\f14c\f14c"; } + +.fa-box-open { + --fa: "\f49e"; + --fa--fa: "\f49e\f49e"; } + +.fa-scroll { + --fa: "\f70e"; + --fa--fa: "\f70e\f70e"; } + +.fa-spa { + --fa: "\f5bb"; + --fa--fa: "\f5bb\f5bb"; } + +.fa-location-pin-lock { + --fa: "\e51f"; + --fa--fa: "\e51f\e51f"; } + +.fa-pause { + --fa: "\f04c"; + --fa--fa: "\f04c\f04c"; } + +.fa-hill-avalanche { + --fa: "\e507"; + --fa--fa: "\e507\e507"; } + +.fa-temperature-empty { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-temperature-0 { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-thermometer-0 { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-thermometer-empty { + --fa: "\f2cb"; + --fa--fa: "\f2cb\f2cb"; } + +.fa-bomb { + --fa: "\f1e2"; + --fa--fa: "\f1e2\f1e2"; } + +.fa-registered { + --fa: "\f25d"; + --fa--fa: "\f25d\f25d"; } + +.fa-address-card { + --fa: "\f2bb"; + --fa--fa: "\f2bb\f2bb"; } + +.fa-contact-card { + --fa: "\f2bb"; + --fa--fa: "\f2bb\f2bb"; } + +.fa-vcard { + --fa: "\f2bb"; + --fa--fa: "\f2bb\f2bb"; } + +.fa-scale-unbalanced-flip { + --fa: "\f516"; + --fa--fa: "\f516\f516"; } + +.fa-balance-scale-right { + --fa: "\f516"; + --fa--fa: "\f516\f516"; } + +.fa-subscript { + --fa: "\f12c"; + --fa--fa: "\f12c\f12c"; } + +.fa-diamond-turn-right { + --fa: "\f5eb"; + --fa--fa: "\f5eb\f5eb"; } + +.fa-directions { + --fa: "\f5eb"; + --fa--fa: "\f5eb\f5eb"; } + +.fa-burst { + --fa: "\e4dc"; + --fa--fa: "\e4dc\e4dc"; } + +.fa-house-laptop { + --fa: "\e066"; + --fa--fa: "\e066\e066"; } + +.fa-laptop-house { + --fa: "\e066"; + --fa--fa: "\e066\e066"; } + +.fa-face-tired { + --fa: "\f5c8"; + --fa--fa: "\f5c8\f5c8"; } + +.fa-tired { + --fa: "\f5c8"; + --fa--fa: "\f5c8\f5c8"; } + +.fa-money-bills { + --fa: "\e1f3"; + --fa--fa: "\e1f3\e1f3"; } + +.fa-smog { + --fa: "\f75f"; + --fa--fa: "\f75f\f75f"; } + +.fa-crutch { + --fa: "\f7f7"; + --fa--fa: "\f7f7\f7f7"; } + +.fa-cloud-arrow-up { + --fa: "\f0ee"; + --fa--fa: "\f0ee\f0ee"; } + +.fa-cloud-upload { + --fa: "\f0ee"; + --fa--fa: "\f0ee\f0ee"; } + +.fa-cloud-upload-alt { + --fa: "\f0ee"; + --fa--fa: "\f0ee\f0ee"; } + +.fa-palette { + --fa: "\f53f"; + --fa--fa: "\f53f\f53f"; } + +.fa-arrows-turn-right { + --fa: "\e4c0"; + --fa--fa: "\e4c0\e4c0"; } + +.fa-vest { + --fa: "\e085"; + --fa--fa: "\e085\e085"; } + +.fa-ferry { + --fa: "\e4ea"; + --fa--fa: "\e4ea\e4ea"; } + +.fa-arrows-down-to-people { + --fa: "\e4b9"; + --fa--fa: "\e4b9\e4b9"; } + +.fa-seedling { + --fa: "\f4d8"; + --fa--fa: "\f4d8\f4d8"; } + +.fa-sprout { + --fa: "\f4d8"; + --fa--fa: "\f4d8\f4d8"; } + +.fa-left-right { + --fa: "\f337"; + --fa--fa: "\f337\f337"; } + +.fa-arrows-alt-h { + --fa: "\f337"; + --fa--fa: "\f337\f337"; } + +.fa-boxes-packing { + --fa: "\e4c7"; + --fa--fa: "\e4c7\e4c7"; } + +.fa-circle-arrow-left { + --fa: "\f0a8"; + --fa--fa: "\f0a8\f0a8"; } + +.fa-arrow-circle-left { + --fa: "\f0a8"; + --fa--fa: "\f0a8\f0a8"; } + +.fa-group-arrows-rotate { + --fa: "\e4f6"; + --fa--fa: "\e4f6\e4f6"; } + +.fa-bowl-food { + --fa: "\e4c6"; + --fa--fa: "\e4c6\e4c6"; } + +.fa-candy-cane { + --fa: "\f786"; + --fa--fa: "\f786\f786"; } + +.fa-arrow-down-wide-short { + --fa: "\f160"; + --fa--fa: "\f160\f160"; } + +.fa-sort-amount-asc { + --fa: "\f160"; + --fa--fa: "\f160\f160"; } + +.fa-sort-amount-down { + --fa: "\f160"; + --fa--fa: "\f160\f160"; } + +.fa-cloud-bolt { + --fa: "\f76c"; + --fa--fa: "\f76c\f76c"; } + +.fa-thunderstorm { + --fa: "\f76c"; + --fa--fa: "\f76c\f76c"; } + +.fa-text-slash { + --fa: "\f87d"; + --fa--fa: "\f87d\f87d"; } + +.fa-remove-format { + --fa: "\f87d"; + --fa--fa: "\f87d\f87d"; } + +.fa-face-smile-wink { + --fa: "\f4da"; + --fa--fa: "\f4da\f4da"; } + +.fa-smile-wink { + --fa: "\f4da"; + --fa--fa: "\f4da\f4da"; } + +.fa-file-word { + --fa: "\f1c2"; + --fa--fa: "\f1c2\f1c2"; } + +.fa-file-powerpoint { + --fa: "\f1c4"; + --fa--fa: "\f1c4\f1c4"; } + +.fa-arrows-left-right { + --fa: "\f07e"; + --fa--fa: "\f07e\f07e"; } + +.fa-arrows-h { + --fa: "\f07e"; + --fa--fa: "\f07e\f07e"; } + +.fa-house-lock { + --fa: "\e510"; + --fa--fa: "\e510\e510"; } + +.fa-cloud-arrow-down { + --fa: "\f0ed"; + --fa--fa: "\f0ed\f0ed"; } + +.fa-cloud-download { + --fa: "\f0ed"; + --fa--fa: "\f0ed\f0ed"; } + +.fa-cloud-download-alt { + --fa: "\f0ed"; + --fa--fa: "\f0ed\f0ed"; } + +.fa-children { + --fa: "\e4e1"; + --fa--fa: "\e4e1\e4e1"; } + +.fa-chalkboard { + --fa: "\f51b"; + --fa--fa: "\f51b\f51b"; } + +.fa-blackboard { + --fa: "\f51b"; + --fa--fa: "\f51b\f51b"; } + +.fa-user-large-slash { + --fa: "\f4fa"; + --fa--fa: "\f4fa\f4fa"; } + +.fa-user-alt-slash { + --fa: "\f4fa"; + --fa--fa: "\f4fa\f4fa"; } + +.fa-envelope-open { + --fa: "\f2b6"; + --fa--fa: "\f2b6\f2b6"; } + +.fa-handshake-simple-slash { + --fa: "\e05f"; + --fa--fa: "\e05f\e05f"; } + +.fa-handshake-alt-slash { + --fa: "\e05f"; + --fa--fa: "\e05f\e05f"; } + +.fa-mattress-pillow { + --fa: "\e525"; + --fa--fa: "\e525\e525"; } + +.fa-guarani-sign { + --fa: "\e19a"; + --fa--fa: "\e19a\e19a"; } + +.fa-arrows-rotate { + --fa: "\f021"; + --fa--fa: "\f021\f021"; } + +.fa-refresh { + --fa: "\f021"; + --fa--fa: "\f021\f021"; } + +.fa-sync { + --fa: "\f021"; + --fa--fa: "\f021\f021"; } + +.fa-fire-extinguisher { + --fa: "\f134"; + --fa--fa: "\f134\f134"; } + +.fa-cruzeiro-sign { + --fa: "\e152"; + --fa--fa: "\e152\e152"; } + +.fa-greater-than-equal { + --fa: "\f532"; + --fa--fa: "\f532\f532"; } + +.fa-shield-halved { + --fa: "\f3ed"; + --fa--fa: "\f3ed\f3ed"; } + +.fa-shield-alt { + --fa: "\f3ed"; + --fa--fa: "\f3ed\f3ed"; } + +.fa-book-atlas { + --fa: "\f558"; + --fa--fa: "\f558\f558"; } + +.fa-atlas { + --fa: "\f558"; + --fa--fa: "\f558\f558"; } + +.fa-virus { + --fa: "\e074"; + --fa--fa: "\e074\e074"; } + +.fa-envelope-circle-check { + --fa: "\e4e8"; + --fa--fa: "\e4e8\e4e8"; } + +.fa-layer-group { + --fa: "\f5fd"; + --fa--fa: "\f5fd\f5fd"; } + +.fa-arrows-to-dot { + --fa: "\e4be"; + --fa--fa: "\e4be\e4be"; } + +.fa-archway { + --fa: "\f557"; + --fa--fa: "\f557\f557"; } + +.fa-heart-circle-check { + --fa: "\e4fd"; + --fa--fa: "\e4fd\e4fd"; } + +.fa-house-chimney-crack { + --fa: "\f6f1"; + --fa--fa: "\f6f1\f6f1"; } + +.fa-house-damage { + --fa: "\f6f1"; + --fa--fa: "\f6f1\f6f1"; } + +.fa-file-zipper { + --fa: "\f1c6"; + --fa--fa: "\f1c6\f1c6"; } + +.fa-file-archive { + --fa: "\f1c6"; + --fa--fa: "\f1c6\f1c6"; } + +.fa-square { + --fa: "\f0c8"; + --fa--fa: "\f0c8\f0c8"; } + +.fa-martini-glass-empty { + --fa: "\f000"; + --fa--fa: "\f000\f000"; } + +.fa-glass-martini { + --fa: "\f000"; + --fa--fa: "\f000\f000"; } + +.fa-couch { + --fa: "\f4b8"; + --fa--fa: "\f4b8\f4b8"; } + +.fa-cedi-sign { + --fa: "\e0df"; + --fa--fa: "\e0df\e0df"; } + +.fa-italic { + --fa: "\f033"; + --fa--fa: "\f033\f033"; } + +.fa-table-cells-column-lock { + --fa: "\e678"; + --fa--fa: "\e678\e678"; } + +.fa-church { + --fa: "\f51d"; + --fa--fa: "\f51d\f51d"; } + +.fa-comments-dollar { + --fa: "\f653"; + --fa--fa: "\f653\f653"; } + +.fa-democrat { + --fa: "\f747"; + --fa--fa: "\f747\f747"; } + +.fa-z { + --fa: "\5a"; + --fa--fa: "\5a\5a"; } + +.fa-person-skiing { + --fa: "\f7c9"; + --fa--fa: "\f7c9\f7c9"; } + +.fa-skiing { + --fa: "\f7c9"; + --fa--fa: "\f7c9\f7c9"; } + +.fa-road-lock { + --fa: "\e567"; + --fa--fa: "\e567\e567"; } + +.fa-a { + --fa: "\41"; + --fa--fa: "\41\41"; } + +.fa-temperature-arrow-down { + --fa: "\e03f"; + --fa--fa: "\e03f\e03f"; } + +.fa-temperature-down { + --fa: "\e03f"; + --fa--fa: "\e03f\e03f"; } + +.fa-feather-pointed { + --fa: "\f56b"; + --fa--fa: "\f56b\f56b"; } + +.fa-feather-alt { + --fa: "\f56b"; + --fa--fa: "\f56b\f56b"; } + +.fa-p { + --fa: "\50"; + --fa--fa: "\50\50"; } + +.fa-snowflake { + --fa: "\f2dc"; + --fa--fa: "\f2dc\f2dc"; } + +.fa-newspaper { + --fa: "\f1ea"; + --fa--fa: "\f1ea\f1ea"; } + +.fa-rectangle-ad { + --fa: "\f641"; + --fa--fa: "\f641\f641"; } + +.fa-ad { + --fa: "\f641"; + --fa--fa: "\f641\f641"; } + +.fa-circle-arrow-right { + --fa: "\f0a9"; + --fa--fa: "\f0a9\f0a9"; } + +.fa-arrow-circle-right { + --fa: "\f0a9"; + --fa--fa: "\f0a9\f0a9"; } + +.fa-filter-circle-xmark { + --fa: "\e17b"; + --fa--fa: "\e17b\e17b"; } + +.fa-locust { + --fa: "\e520"; + --fa--fa: "\e520\e520"; } + +.fa-sort { + --fa: "\f0dc"; + --fa--fa: "\f0dc\f0dc"; } + +.fa-unsorted { + --fa: "\f0dc"; + --fa--fa: "\f0dc\f0dc"; } + +.fa-list-ol { + --fa: "\f0cb"; + --fa--fa: "\f0cb\f0cb"; } + +.fa-list-1-2 { + --fa: "\f0cb"; + --fa--fa: "\f0cb\f0cb"; } + +.fa-list-numeric { + --fa: "\f0cb"; + --fa--fa: "\f0cb\f0cb"; } + +.fa-person-dress-burst { + --fa: "\e544"; + --fa--fa: "\e544\e544"; } + +.fa-money-check-dollar { + --fa: "\f53d"; + --fa--fa: "\f53d\f53d"; } + +.fa-money-check-alt { + --fa: "\f53d"; + --fa--fa: "\f53d\f53d"; } + +.fa-vector-square { + --fa: "\f5cb"; + --fa--fa: "\f5cb\f5cb"; } + +.fa-bread-slice { + --fa: "\f7ec"; + --fa--fa: "\f7ec\f7ec"; } + +.fa-language { + --fa: "\f1ab"; + --fa--fa: "\f1ab\f1ab"; } + +.fa-face-kiss-wink-heart { + --fa: "\f598"; + --fa--fa: "\f598\f598"; } + +.fa-kiss-wink-heart { + --fa: "\f598"; + --fa--fa: "\f598\f598"; } + +.fa-filter { + --fa: "\f0b0"; + --fa--fa: "\f0b0\f0b0"; } + +.fa-question { + --fa: "\3f"; + --fa--fa: "\3f\3f"; } + +.fa-file-signature { + --fa: "\f573"; + --fa--fa: "\f573\f573"; } + +.fa-up-down-left-right { + --fa: "\f0b2"; + --fa--fa: "\f0b2\f0b2"; } + +.fa-arrows-alt { + --fa: "\f0b2"; + --fa--fa: "\f0b2\f0b2"; } + +.fa-house-chimney-user { + --fa: "\e065"; + --fa--fa: "\e065\e065"; } + +.fa-hand-holding-heart { + --fa: "\f4be"; + --fa--fa: "\f4be\f4be"; } + +.fa-puzzle-piece { + --fa: "\f12e"; + --fa--fa: "\f12e\f12e"; } + +.fa-money-check { + --fa: "\f53c"; + --fa--fa: "\f53c\f53c"; } + +.fa-star-half-stroke { + --fa: "\f5c0"; + --fa--fa: "\f5c0\f5c0"; } + +.fa-star-half-alt { + --fa: "\f5c0"; + --fa--fa: "\f5c0\f5c0"; } + +.fa-code { + --fa: "\f121"; + --fa--fa: "\f121\f121"; } + +.fa-whiskey-glass { + --fa: "\f7a0"; + --fa--fa: "\f7a0\f7a0"; } + +.fa-glass-whiskey { + --fa: "\f7a0"; + --fa--fa: "\f7a0\f7a0"; } + +.fa-building-circle-exclamation { + --fa: "\e4d3"; + --fa--fa: "\e4d3\e4d3"; } + +.fa-magnifying-glass-chart { + --fa: "\e522"; + --fa--fa: "\e522\e522"; } + +.fa-arrow-up-right-from-square { + --fa: "\f08e"; + --fa--fa: "\f08e\f08e"; } + +.fa-external-link { + --fa: "\f08e"; + --fa--fa: "\f08e\f08e"; } + +.fa-cubes-stacked { + --fa: "\e4e6"; + --fa--fa: "\e4e6\e4e6"; } + +.fa-won-sign { + --fa: "\f159"; + --fa--fa: "\f159\f159"; } + +.fa-krw { + --fa: "\f159"; + --fa--fa: "\f159\f159"; } + +.fa-won { + --fa: "\f159"; + --fa--fa: "\f159\f159"; } + +.fa-virus-covid { + --fa: "\e4a8"; + --fa--fa: "\e4a8\e4a8"; } + +.fa-austral-sign { + --fa: "\e0a9"; + --fa--fa: "\e0a9\e0a9"; } + +.fa-f { + --fa: "\46"; + --fa--fa: "\46\46"; } + +.fa-leaf { + --fa: "\f06c"; + --fa--fa: "\f06c\f06c"; } + +.fa-road { + --fa: "\f018"; + --fa--fa: "\f018\f018"; } + +.fa-taxi { + --fa: "\f1ba"; + --fa--fa: "\f1ba\f1ba"; } + +.fa-cab { + --fa: "\f1ba"; + --fa--fa: "\f1ba\f1ba"; } + +.fa-person-circle-plus { + --fa: "\e541"; + --fa--fa: "\e541\e541"; } + +.fa-chart-pie { + --fa: "\f200"; + --fa--fa: "\f200\f200"; } + +.fa-pie-chart { + --fa: "\f200"; + --fa--fa: "\f200\f200"; } + +.fa-bolt-lightning { + --fa: "\e0b7"; + --fa--fa: "\e0b7\e0b7"; } + +.fa-sack-xmark { + --fa: "\e56a"; + --fa--fa: "\e56a\e56a"; } + +.fa-file-excel { + --fa: "\f1c3"; + --fa--fa: "\f1c3\f1c3"; } + +.fa-file-contract { + --fa: "\f56c"; + --fa--fa: "\f56c\f56c"; } + +.fa-fish-fins { + --fa: "\e4f2"; + --fa--fa: "\e4f2\e4f2"; } + +.fa-building-flag { + --fa: "\e4d5"; + --fa--fa: "\e4d5\e4d5"; } + +.fa-face-grin-beam { + --fa: "\f582"; + --fa--fa: "\f582\f582"; } + +.fa-grin-beam { + --fa: "\f582"; + --fa--fa: "\f582\f582"; } + +.fa-object-ungroup { + --fa: "\f248"; + --fa--fa: "\f248\f248"; } + +.fa-poop { + --fa: "\f619"; + --fa--fa: "\f619\f619"; } + +.fa-location-pin { + --fa: "\f041"; + --fa--fa: "\f041\f041"; } + +.fa-map-marker { + --fa: "\f041"; + --fa--fa: "\f041\f041"; } + +.fa-kaaba { + --fa: "\f66b"; + --fa--fa: "\f66b\f66b"; } + +.fa-toilet-paper { + --fa: "\f71e"; + --fa--fa: "\f71e\f71e"; } + +.fa-helmet-safety { + --fa: "\f807"; + --fa--fa: "\f807\f807"; } + +.fa-hard-hat { + --fa: "\f807"; + --fa--fa: "\f807\f807"; } + +.fa-hat-hard { + --fa: "\f807"; + --fa--fa: "\f807\f807"; } + +.fa-eject { + --fa: "\f052"; + --fa--fa: "\f052\f052"; } + +.fa-circle-right { + --fa: "\f35a"; + --fa--fa: "\f35a\f35a"; } + +.fa-arrow-alt-circle-right { + --fa: "\f35a"; + --fa--fa: "\f35a\f35a"; } + +.fa-plane-circle-check { + --fa: "\e555"; + --fa--fa: "\e555\e555"; } + +.fa-face-rolling-eyes { + --fa: "\f5a5"; + --fa--fa: "\f5a5\f5a5"; } + +.fa-meh-rolling-eyes { + --fa: "\f5a5"; + --fa--fa: "\f5a5\f5a5"; } + +.fa-object-group { + --fa: "\f247"; + --fa--fa: "\f247\f247"; } + +.fa-chart-line { + --fa: "\f201"; + --fa--fa: "\f201\f201"; } + +.fa-line-chart { + --fa: "\f201"; + --fa--fa: "\f201\f201"; } + +.fa-mask-ventilator { + --fa: "\e524"; + --fa--fa: "\e524\e524"; } + +.fa-arrow-right { + --fa: "\f061"; + --fa--fa: "\f061\f061"; } + +.fa-signs-post { + --fa: "\f277"; + --fa--fa: "\f277\f277"; } + +.fa-map-signs { + --fa: "\f277"; + --fa--fa: "\f277\f277"; } + +.fa-cash-register { + --fa: "\f788"; + --fa--fa: "\f788\f788"; } + +.fa-person-circle-question { + --fa: "\e542"; + --fa--fa: "\e542\e542"; } + +.fa-h { + --fa: "\48"; + --fa--fa: "\48\48"; } + +.fa-tarp { + --fa: "\e57b"; + --fa--fa: "\e57b\e57b"; } + +.fa-screwdriver-wrench { + --fa: "\f7d9"; + --fa--fa: "\f7d9\f7d9"; } + +.fa-tools { + --fa: "\f7d9"; + --fa--fa: "\f7d9\f7d9"; } + +.fa-arrows-to-eye { + --fa: "\e4bf"; + --fa--fa: "\e4bf\e4bf"; } + +.fa-plug-circle-bolt { + --fa: "\e55b"; + --fa--fa: "\e55b\e55b"; } + +.fa-heart { + --fa: "\f004"; + --fa--fa: "\f004\f004"; } + +.fa-mars-and-venus { + --fa: "\f224"; + --fa--fa: "\f224\f224"; } + +.fa-house-user { + --fa: "\e1b0"; + --fa--fa: "\e1b0\e1b0"; } + +.fa-home-user { + --fa: "\e1b0"; + --fa--fa: "\e1b0\e1b0"; } + +.fa-dumpster-fire { + --fa: "\f794"; + --fa--fa: "\f794\f794"; } + +.fa-house-crack { + --fa: "\e3b1"; + --fa--fa: "\e3b1\e3b1"; } + +.fa-martini-glass-citrus { + --fa: "\f561"; + --fa--fa: "\f561\f561"; } + +.fa-cocktail { + --fa: "\f561"; + --fa--fa: "\f561\f561"; } + +.fa-face-surprise { + --fa: "\f5c2"; + --fa--fa: "\f5c2\f5c2"; } + +.fa-surprise { + --fa: "\f5c2"; + --fa--fa: "\f5c2\f5c2"; } + +.fa-bottle-water { + --fa: "\e4c5"; + --fa--fa: "\e4c5\e4c5"; } + +.fa-circle-pause { + --fa: "\f28b"; + --fa--fa: "\f28b\f28b"; } + +.fa-pause-circle { + --fa: "\f28b"; + --fa--fa: "\f28b\f28b"; } + +.fa-toilet-paper-slash { + --fa: "\e072"; + --fa--fa: "\e072\e072"; } + +.fa-apple-whole { + --fa: "\f5d1"; + --fa--fa: "\f5d1\f5d1"; } + +.fa-apple-alt { + --fa: "\f5d1"; + --fa--fa: "\f5d1\f5d1"; } + +.fa-kitchen-set { + --fa: "\e51a"; + --fa--fa: "\e51a\e51a"; } + +.fa-r { + --fa: "\52"; + --fa--fa: "\52\52"; } + +.fa-temperature-quarter { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-temperature-1 { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-thermometer-1 { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-thermometer-quarter { + --fa: "\f2ca"; + --fa--fa: "\f2ca\f2ca"; } + +.fa-cube { + --fa: "\f1b2"; + --fa--fa: "\f1b2\f1b2"; } + +.fa-bitcoin-sign { + --fa: "\e0b4"; + --fa--fa: "\e0b4\e0b4"; } + +.fa-shield-dog { + --fa: "\e573"; + --fa--fa: "\e573\e573"; } + +.fa-solar-panel { + --fa: "\f5ba"; + --fa--fa: "\f5ba\f5ba"; } + +.fa-lock-open { + --fa: "\f3c1"; + --fa--fa: "\f3c1\f3c1"; } + +.fa-elevator { + --fa: "\e16d"; + --fa--fa: "\e16d\e16d"; } + +.fa-money-bill-transfer { + --fa: "\e528"; + --fa--fa: "\e528\e528"; } + +.fa-money-bill-trend-up { + --fa: "\e529"; + --fa--fa: "\e529\e529"; } + +.fa-house-flood-water-circle-arrow-right { + --fa: "\e50f"; + --fa--fa: "\e50f\e50f"; } + +.fa-square-poll-horizontal { + --fa: "\f682"; + --fa--fa: "\f682\f682"; } + +.fa-poll-h { + --fa: "\f682"; + --fa--fa: "\f682\f682"; } + +.fa-circle { + --fa: "\f111"; + --fa--fa: "\f111\f111"; } + +.fa-backward-fast { + --fa: "\f049"; + --fa--fa: "\f049\f049"; } + +.fa-fast-backward { + --fa: "\f049"; + --fa--fa: "\f049\f049"; } + +.fa-recycle { + --fa: "\f1b8"; + --fa--fa: "\f1b8\f1b8"; } + +.fa-user-astronaut { + --fa: "\f4fb"; + --fa--fa: "\f4fb\f4fb"; } + +.fa-plane-slash { + --fa: "\e069"; + --fa--fa: "\e069\e069"; } + +.fa-trademark { + --fa: "\f25c"; + --fa--fa: "\f25c\f25c"; } + +.fa-basketball { + --fa: "\f434"; + --fa--fa: "\f434\f434"; } + +.fa-basketball-ball { + --fa: "\f434"; + --fa--fa: "\f434\f434"; } + +.fa-satellite-dish { + --fa: "\f7c0"; + --fa--fa: "\f7c0\f7c0"; } + +.fa-circle-up { + --fa: "\f35b"; + --fa--fa: "\f35b\f35b"; } + +.fa-arrow-alt-circle-up { + --fa: "\f35b"; + --fa--fa: "\f35b\f35b"; } + +.fa-mobile-screen-button { + --fa: "\f3cd"; + --fa--fa: "\f3cd\f3cd"; } + +.fa-mobile-alt { + --fa: "\f3cd"; + --fa--fa: "\f3cd\f3cd"; } + +.fa-volume-high { + --fa: "\f028"; + --fa--fa: "\f028\f028"; } + +.fa-volume-up { + --fa: "\f028"; + --fa--fa: "\f028\f028"; } + +.fa-users-rays { + --fa: "\e593"; + --fa--fa: "\e593\e593"; } + +.fa-wallet { + --fa: "\f555"; + --fa--fa: "\f555\f555"; } + +.fa-clipboard-check { + --fa: "\f46c"; + --fa--fa: "\f46c\f46c"; } + +.fa-file-audio { + --fa: "\f1c7"; + --fa--fa: "\f1c7\f1c7"; } + +.fa-burger { + --fa: "\f805"; + --fa--fa: "\f805\f805"; } + +.fa-hamburger { + --fa: "\f805"; + --fa--fa: "\f805\f805"; } + +.fa-wrench { + --fa: "\f0ad"; + --fa--fa: "\f0ad\f0ad"; } + +.fa-bugs { + --fa: "\e4d0"; + --fa--fa: "\e4d0\e4d0"; } + +.fa-rupee-sign { + --fa: "\f156"; + --fa--fa: "\f156\f156"; } + +.fa-rupee { + --fa: "\f156"; + --fa--fa: "\f156\f156"; } + +.fa-file-image { + --fa: "\f1c5"; + --fa--fa: "\f1c5\f1c5"; } + +.fa-circle-question { + --fa: "\f059"; + --fa--fa: "\f059\f059"; } + +.fa-question-circle { + --fa: "\f059"; + --fa--fa: "\f059\f059"; } + +.fa-plane-departure { + --fa: "\f5b0"; + --fa--fa: "\f5b0\f5b0"; } + +.fa-handshake-slash { + --fa: "\e060"; + --fa--fa: "\e060\e060"; } + +.fa-book-bookmark { + --fa: "\e0bb"; + --fa--fa: "\e0bb\e0bb"; } + +.fa-code-branch { + --fa: "\f126"; + --fa--fa: "\f126\f126"; } + +.fa-hat-cowboy { + --fa: "\f8c0"; + --fa--fa: "\f8c0\f8c0"; } + +.fa-bridge { + --fa: "\e4c8"; + --fa--fa: "\e4c8\e4c8"; } + +.fa-phone-flip { + --fa: "\f879"; + --fa--fa: "\f879\f879"; } + +.fa-phone-alt { + --fa: "\f879"; + --fa--fa: "\f879\f879"; } + +.fa-truck-front { + --fa: "\e2b7"; + --fa--fa: "\e2b7\e2b7"; } + +.fa-cat { + --fa: "\f6be"; + --fa--fa: "\f6be\f6be"; } + +.fa-anchor-circle-exclamation { + --fa: "\e4ab"; + --fa--fa: "\e4ab\e4ab"; } + +.fa-truck-field { + --fa: "\e58d"; + --fa--fa: "\e58d\e58d"; } + +.fa-route { + --fa: "\f4d7"; + --fa--fa: "\f4d7\f4d7"; } + +.fa-clipboard-question { + --fa: "\e4e3"; + --fa--fa: "\e4e3\e4e3"; } + +.fa-panorama { + --fa: "\e209"; + --fa--fa: "\e209\e209"; } + +.fa-comment-medical { + --fa: "\f7f5"; + --fa--fa: "\f7f5\f7f5"; } + +.fa-teeth-open { + --fa: "\f62f"; + --fa--fa: "\f62f\f62f"; } + +.fa-file-circle-minus { + --fa: "\e4ed"; + --fa--fa: "\e4ed\e4ed"; } + +.fa-tags { + --fa: "\f02c"; + --fa--fa: "\f02c\f02c"; } + +.fa-wine-glass { + --fa: "\f4e3"; + --fa--fa: "\f4e3\f4e3"; } + +.fa-forward-fast { + --fa: "\f050"; + --fa--fa: "\f050\f050"; } + +.fa-fast-forward { + --fa: "\f050"; + --fa--fa: "\f050\f050"; } + +.fa-face-meh-blank { + --fa: "\f5a4"; + --fa--fa: "\f5a4\f5a4"; } + +.fa-meh-blank { + --fa: "\f5a4"; + --fa--fa: "\f5a4\f5a4"; } + +.fa-square-parking { + --fa: "\f540"; + --fa--fa: "\f540\f540"; } + +.fa-parking { + --fa: "\f540"; + --fa--fa: "\f540\f540"; } + +.fa-house-signal { + --fa: "\e012"; + --fa--fa: "\e012\e012"; } + +.fa-bars-progress { + --fa: "\f828"; + --fa--fa: "\f828\f828"; } + +.fa-tasks-alt { + --fa: "\f828"; + --fa--fa: "\f828\f828"; } + +.fa-faucet-drip { + --fa: "\e006"; + --fa--fa: "\e006\e006"; } + +.fa-cart-flatbed { + --fa: "\f474"; + --fa--fa: "\f474\f474"; } + +.fa-dolly-flatbed { + --fa: "\f474"; + --fa--fa: "\f474\f474"; } + +.fa-ban-smoking { + --fa: "\f54d"; + --fa--fa: "\f54d\f54d"; } + +.fa-smoking-ban { + --fa: "\f54d"; + --fa--fa: "\f54d\f54d"; } + +.fa-terminal { + --fa: "\f120"; + --fa--fa: "\f120\f120"; } + +.fa-mobile-button { + --fa: "\f10b"; + --fa--fa: "\f10b\f10b"; } + +.fa-house-medical-flag { + --fa: "\e514"; + --fa--fa: "\e514\e514"; } + +.fa-basket-shopping { + --fa: "\f291"; + --fa--fa: "\f291\f291"; } + +.fa-shopping-basket { + --fa: "\f291"; + --fa--fa: "\f291\f291"; } + +.fa-tape { + --fa: "\f4db"; + --fa--fa: "\f4db\f4db"; } + +.fa-bus-simple { + --fa: "\f55e"; + --fa--fa: "\f55e\f55e"; } + +.fa-bus-alt { + --fa: "\f55e"; + --fa--fa: "\f55e\f55e"; } + +.fa-eye { + --fa: "\f06e"; + --fa--fa: "\f06e\f06e"; } + +.fa-face-sad-cry { + --fa: "\f5b3"; + --fa--fa: "\f5b3\f5b3"; } + +.fa-sad-cry { + --fa: "\f5b3"; + --fa--fa: "\f5b3\f5b3"; } + +.fa-audio-description { + --fa: "\f29e"; + --fa--fa: "\f29e\f29e"; } + +.fa-person-military-to-person { + --fa: "\e54c"; + --fa--fa: "\e54c\e54c"; } + +.fa-file-shield { + --fa: "\e4f0"; + --fa--fa: "\e4f0\e4f0"; } + +.fa-user-slash { + --fa: "\f506"; + --fa--fa: "\f506\f506"; } + +.fa-pen { + --fa: "\f304"; + --fa--fa: "\f304\f304"; } + +.fa-tower-observation { + --fa: "\e586"; + --fa--fa: "\e586\e586"; } + +.fa-file-code { + --fa: "\f1c9"; + --fa--fa: "\f1c9\f1c9"; } + +.fa-signal { + --fa: "\f012"; + --fa--fa: "\f012\f012"; } + +.fa-signal-5 { + --fa: "\f012"; + --fa--fa: "\f012\f012"; } + +.fa-signal-perfect { + --fa: "\f012"; + --fa--fa: "\f012\f012"; } + +.fa-bus { + --fa: "\f207"; + --fa--fa: "\f207\f207"; } + +.fa-heart-circle-xmark { + --fa: "\e501"; + --fa--fa: "\e501\e501"; } + +.fa-house-chimney { + --fa: "\e3af"; + --fa--fa: "\e3af\e3af"; } + +.fa-home-lg { + --fa: "\e3af"; + --fa--fa: "\e3af\e3af"; } + +.fa-window-maximize { + --fa: "\f2d0"; + --fa--fa: "\f2d0\f2d0"; } + +.fa-face-frown { + --fa: "\f119"; + --fa--fa: "\f119\f119"; } + +.fa-frown { + --fa: "\f119"; + --fa--fa: "\f119\f119"; } + +.fa-prescription { + --fa: "\f5b1"; + --fa--fa: "\f5b1\f5b1"; } + +.fa-shop { + --fa: "\f54f"; + --fa--fa: "\f54f\f54f"; } + +.fa-store-alt { + --fa: "\f54f"; + --fa--fa: "\f54f\f54f"; } + +.fa-floppy-disk { + --fa: "\f0c7"; + --fa--fa: "\f0c7\f0c7"; } + +.fa-save { + --fa: "\f0c7"; + --fa--fa: "\f0c7\f0c7"; } + +.fa-vihara { + --fa: "\f6a7"; + --fa--fa: "\f6a7\f6a7"; } + +.fa-scale-unbalanced { + --fa: "\f515"; + --fa--fa: "\f515\f515"; } + +.fa-balance-scale-left { + --fa: "\f515"; + --fa--fa: "\f515\f515"; } + +.fa-sort-up { + --fa: "\f0de"; + --fa--fa: "\f0de\f0de"; } + +.fa-sort-asc { + --fa: "\f0de"; + --fa--fa: "\f0de\f0de"; } + +.fa-comment-dots { + --fa: "\f4ad"; + --fa--fa: "\f4ad\f4ad"; } + +.fa-commenting { + --fa: "\f4ad"; + --fa--fa: "\f4ad\f4ad"; } + +.fa-plant-wilt { + --fa: "\e5aa"; + --fa--fa: "\e5aa\e5aa"; } + +.fa-diamond { + --fa: "\f219"; + --fa--fa: "\f219\f219"; } + +.fa-face-grin-squint { + --fa: "\f585"; + --fa--fa: "\f585\f585"; } + +.fa-grin-squint { + --fa: "\f585"; + --fa--fa: "\f585\f585"; } + +.fa-hand-holding-dollar { + --fa: "\f4c0"; + --fa--fa: "\f4c0\f4c0"; } + +.fa-hand-holding-usd { + --fa: "\f4c0"; + --fa--fa: "\f4c0\f4c0"; } + +.fa-chart-diagram { + --fa: "\e695"; + --fa--fa: "\e695\e695"; } + +.fa-bacterium { + --fa: "\e05a"; + --fa--fa: "\e05a\e05a"; } + +.fa-hand-pointer { + --fa: "\f25a"; + --fa--fa: "\f25a\f25a"; } + +.fa-drum-steelpan { + --fa: "\f56a"; + --fa--fa: "\f56a\f56a"; } + +.fa-hand-scissors { + --fa: "\f257"; + --fa--fa: "\f257\f257"; } + +.fa-hands-praying { + --fa: "\f684"; + --fa--fa: "\f684\f684"; } + +.fa-praying-hands { + --fa: "\f684"; + --fa--fa: "\f684\f684"; } + +.fa-arrow-rotate-right { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-arrow-right-rotate { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-arrow-rotate-forward { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-redo { + --fa: "\f01e"; + --fa--fa: "\f01e\f01e"; } + +.fa-biohazard { + --fa: "\f780"; + --fa--fa: "\f780\f780"; } + +.fa-location-crosshairs { + --fa: "\f601"; + --fa--fa: "\f601\f601"; } + +.fa-location { + --fa: "\f601"; + --fa--fa: "\f601\f601"; } + +.fa-mars-double { + --fa: "\f227"; + --fa--fa: "\f227\f227"; } + +.fa-child-dress { + --fa: "\e59c"; + --fa--fa: "\e59c\e59c"; } + +.fa-users-between-lines { + --fa: "\e591"; + --fa--fa: "\e591\e591"; } + +.fa-lungs-virus { + --fa: "\e067"; + --fa--fa: "\e067\e067"; } + +.fa-face-grin-tears { + --fa: "\f588"; + --fa--fa: "\f588\f588"; } + +.fa-grin-tears { + --fa: "\f588"; + --fa--fa: "\f588\f588"; } + +.fa-phone { + --fa: "\f095"; + --fa--fa: "\f095\f095"; } + +.fa-calendar-xmark { + --fa: "\f273"; + --fa--fa: "\f273\f273"; } + +.fa-calendar-times { + --fa: "\f273"; + --fa--fa: "\f273\f273"; } + +.fa-child-reaching { + --fa: "\e59d"; + --fa--fa: "\e59d\e59d"; } + +.fa-head-side-virus { + --fa: "\e064"; + --fa--fa: "\e064\e064"; } + +.fa-user-gear { + --fa: "\f4fe"; + --fa--fa: "\f4fe\f4fe"; } + +.fa-user-cog { + --fa: "\f4fe"; + --fa--fa: "\f4fe\f4fe"; } + +.fa-arrow-up-1-9 { + --fa: "\f163"; + --fa--fa: "\f163\f163"; } + +.fa-sort-numeric-up { + --fa: "\f163"; + --fa--fa: "\f163\f163"; } + +.fa-door-closed { + --fa: "\f52a"; + --fa--fa: "\f52a\f52a"; } + +.fa-shield-virus { + --fa: "\e06c"; + --fa--fa: "\e06c\e06c"; } + +.fa-dice-six { + --fa: "\f526"; + --fa--fa: "\f526\f526"; } + +.fa-mosquito-net { + --fa: "\e52c"; + --fa--fa: "\e52c\e52c"; } + +.fa-file-fragment { + --fa: "\e697"; + --fa--fa: "\e697\e697"; } + +.fa-bridge-water { + --fa: "\e4ce"; + --fa--fa: "\e4ce\e4ce"; } + +.fa-person-booth { + --fa: "\f756"; + --fa--fa: "\f756\f756"; } + +.fa-text-width { + --fa: "\f035"; + --fa--fa: "\f035\f035"; } + +.fa-hat-wizard { + --fa: "\f6e8"; + --fa--fa: "\f6e8\f6e8"; } + +.fa-pen-fancy { + --fa: "\f5ac"; + --fa--fa: "\f5ac\f5ac"; } + +.fa-person-digging { + --fa: "\f85e"; + --fa--fa: "\f85e\f85e"; } + +.fa-digging { + --fa: "\f85e"; + --fa--fa: "\f85e\f85e"; } + +.fa-trash { + --fa: "\f1f8"; + --fa--fa: "\f1f8\f1f8"; } + +.fa-gauge-simple { + --fa: "\f629"; + --fa--fa: "\f629\f629"; } + +.fa-gauge-simple-med { + --fa: "\f629"; + --fa--fa: "\f629\f629"; } + +.fa-tachometer-average { + --fa: "\f629"; + --fa--fa: "\f629\f629"; } + +.fa-book-medical { + --fa: "\f7e6"; + --fa--fa: "\f7e6\f7e6"; } + +.fa-poo { + --fa: "\f2fe"; + --fa--fa: "\f2fe\f2fe"; } + +.fa-quote-right { + --fa: "\f10e"; + --fa--fa: "\f10e\f10e"; } + +.fa-quote-right-alt { + --fa: "\f10e"; + --fa--fa: "\f10e\f10e"; } + +.fa-shirt { + --fa: "\f553"; + --fa--fa: "\f553\f553"; } + +.fa-t-shirt { + --fa: "\f553"; + --fa--fa: "\f553\f553"; } + +.fa-tshirt { + --fa: "\f553"; + --fa--fa: "\f553\f553"; } + +.fa-cubes { + --fa: "\f1b3"; + --fa--fa: "\f1b3\f1b3"; } + +.fa-divide { + --fa: "\f529"; + --fa--fa: "\f529\f529"; } + +.fa-tenge-sign { + --fa: "\f7d7"; + --fa--fa: "\f7d7\f7d7"; } + +.fa-tenge { + --fa: "\f7d7"; + --fa--fa: "\f7d7\f7d7"; } + +.fa-headphones { + --fa: "\f025"; + --fa--fa: "\f025\f025"; } + +.fa-hands-holding { + --fa: "\f4c2"; + --fa--fa: "\f4c2\f4c2"; } + +.fa-hands-clapping { + --fa: "\e1a8"; + --fa--fa: "\e1a8\e1a8"; } + +.fa-republican { + --fa: "\f75e"; + --fa--fa: "\f75e\f75e"; } + +.fa-arrow-left { + --fa: "\f060"; + --fa--fa: "\f060\f060"; } + +.fa-person-circle-xmark { + --fa: "\e543"; + --fa--fa: "\e543\e543"; } + +.fa-ruler { + --fa: "\f545"; + --fa--fa: "\f545\f545"; } + +.fa-align-left { + --fa: "\f036"; + --fa--fa: "\f036\f036"; } + +.fa-dice-d6 { + --fa: "\f6d1"; + --fa--fa: "\f6d1\f6d1"; } + +.fa-restroom { + --fa: "\f7bd"; + --fa--fa: "\f7bd\f7bd"; } + +.fa-j { + --fa: "\4a"; + --fa--fa: "\4a\4a"; } + +.fa-users-viewfinder { + --fa: "\e595"; + --fa--fa: "\e595\e595"; } + +.fa-file-video { + --fa: "\f1c8"; + --fa--fa: "\f1c8\f1c8"; } + +.fa-up-right-from-square { + --fa: "\f35d"; + --fa--fa: "\f35d\f35d"; } + +.fa-external-link-alt { + --fa: "\f35d"; + --fa--fa: "\f35d\f35d"; } + +.fa-table-cells { + --fa: "\f00a"; + --fa--fa: "\f00a\f00a"; } + +.fa-th { + --fa: "\f00a"; + --fa--fa: "\f00a\f00a"; } + +.fa-file-pdf { + --fa: "\f1c1"; + --fa--fa: "\f1c1\f1c1"; } + +.fa-book-bible { + --fa: "\f647"; + --fa--fa: "\f647\f647"; } + +.fa-bible { + --fa: "\f647"; + --fa--fa: "\f647\f647"; } + +.fa-o { + --fa: "\4f"; + --fa--fa: "\4f\4f"; } + +.fa-suitcase-medical { + --fa: "\f0fa"; + --fa--fa: "\f0fa\f0fa"; } + +.fa-medkit { + --fa: "\f0fa"; + --fa--fa: "\f0fa\f0fa"; } + +.fa-user-secret { + --fa: "\f21b"; + --fa--fa: "\f21b\f21b"; } + +.fa-otter { + --fa: "\f700"; + --fa--fa: "\f700\f700"; } + +.fa-person-dress { + --fa: "\f182"; + --fa--fa: "\f182\f182"; } + +.fa-female { + --fa: "\f182"; + --fa--fa: "\f182\f182"; } + +.fa-comment-dollar { + --fa: "\f651"; + --fa--fa: "\f651\f651"; } + +.fa-business-time { + --fa: "\f64a"; + --fa--fa: "\f64a\f64a"; } + +.fa-briefcase-clock { + --fa: "\f64a"; + --fa--fa: "\f64a\f64a"; } + +.fa-table-cells-large { + --fa: "\f009"; + --fa--fa: "\f009\f009"; } + +.fa-th-large { + --fa: "\f009"; + --fa--fa: "\f009\f009"; } + +.fa-book-tanakh { + --fa: "\f827"; + --fa--fa: "\f827\f827"; } + +.fa-tanakh { + --fa: "\f827"; + --fa--fa: "\f827\f827"; } + +.fa-phone-volume { + --fa: "\f2a0"; + --fa--fa: "\f2a0\f2a0"; } + +.fa-volume-control-phone { + --fa: "\f2a0"; + --fa--fa: "\f2a0\f2a0"; } + +.fa-hat-cowboy-side { + --fa: "\f8c1"; + --fa--fa: "\f8c1\f8c1"; } + +.fa-clipboard-user { + --fa: "\f7f3"; + --fa--fa: "\f7f3\f7f3"; } + +.fa-child { + --fa: "\f1ae"; + --fa--fa: "\f1ae\f1ae"; } + +.fa-lira-sign { + --fa: "\f195"; + --fa--fa: "\f195\f195"; } + +.fa-satellite { + --fa: "\f7bf"; + --fa--fa: "\f7bf\f7bf"; } + +.fa-plane-lock { + --fa: "\e558"; + --fa--fa: "\e558\e558"; } + +.fa-tag { + --fa: "\f02b"; + --fa--fa: "\f02b\f02b"; } + +.fa-comment { + --fa: "\f075"; + --fa--fa: "\f075\f075"; } + +.fa-cake-candles { + --fa: "\f1fd"; + --fa--fa: "\f1fd\f1fd"; } + +.fa-birthday-cake { + --fa: "\f1fd"; + --fa--fa: "\f1fd\f1fd"; } + +.fa-cake { + --fa: "\f1fd"; + --fa--fa: "\f1fd\f1fd"; } + +.fa-envelope { + --fa: "\f0e0"; + --fa--fa: "\f0e0\f0e0"; } + +.fa-angles-up { + --fa: "\f102"; + --fa--fa: "\f102\f102"; } + +.fa-angle-double-up { + --fa: "\f102"; + --fa--fa: "\f102\f102"; } + +.fa-paperclip { + --fa: "\f0c6"; + --fa--fa: "\f0c6\f0c6"; } + +.fa-arrow-right-to-city { + --fa: "\e4b3"; + --fa--fa: "\e4b3\e4b3"; } + +.fa-ribbon { + --fa: "\f4d6"; + --fa--fa: "\f4d6\f4d6"; } + +.fa-lungs { + --fa: "\f604"; + --fa--fa: "\f604\f604"; } + +.fa-arrow-up-9-1 { + --fa: "\f887"; + --fa--fa: "\f887\f887"; } + +.fa-sort-numeric-up-alt { + --fa: "\f887"; + --fa--fa: "\f887\f887"; } + +.fa-litecoin-sign { + --fa: "\e1d3"; + --fa--fa: "\e1d3\e1d3"; } + +.fa-border-none { + --fa: "\f850"; + --fa--fa: "\f850\f850"; } + +.fa-circle-nodes { + --fa: "\e4e2"; + --fa--fa: "\e4e2\e4e2"; } + +.fa-parachute-box { + --fa: "\f4cd"; + --fa--fa: "\f4cd\f4cd"; } + +.fa-indent { + --fa: "\f03c"; + --fa--fa: "\f03c\f03c"; } + +.fa-truck-field-un { + --fa: "\e58e"; + --fa--fa: "\e58e\e58e"; } + +.fa-hourglass { + --fa: "\f254"; + --fa--fa: "\f254\f254"; } + +.fa-hourglass-empty { + --fa: "\f254"; + --fa--fa: "\f254\f254"; } + +.fa-mountain { + --fa: "\f6fc"; + --fa--fa: "\f6fc\f6fc"; } + +.fa-user-doctor { + --fa: "\f0f0"; + --fa--fa: "\f0f0\f0f0"; } + +.fa-user-md { + --fa: "\f0f0"; + --fa--fa: "\f0f0\f0f0"; } + +.fa-circle-info { + --fa: "\f05a"; + --fa--fa: "\f05a\f05a"; } + +.fa-info-circle { + --fa: "\f05a"; + --fa--fa: "\f05a\f05a"; } + +.fa-cloud-meatball { + --fa: "\f73b"; + --fa--fa: "\f73b\f73b"; } + +.fa-camera { + --fa: "\f030"; + --fa--fa: "\f030\f030"; } + +.fa-camera-alt { + --fa: "\f030"; + --fa--fa: "\f030\f030"; } + +.fa-square-virus { + --fa: "\e578"; + --fa--fa: "\e578\e578"; } + +.fa-meteor { + --fa: "\f753"; + --fa--fa: "\f753\f753"; } + +.fa-car-on { + --fa: "\e4dd"; + --fa--fa: "\e4dd\e4dd"; } + +.fa-sleigh { + --fa: "\f7cc"; + --fa--fa: "\f7cc\f7cc"; } + +.fa-arrow-down-1-9 { + --fa: "\f162"; + --fa--fa: "\f162\f162"; } + +.fa-sort-numeric-asc { + --fa: "\f162"; + --fa--fa: "\f162\f162"; } + +.fa-sort-numeric-down { + --fa: "\f162"; + --fa--fa: "\f162\f162"; } + +.fa-hand-holding-droplet { + --fa: "\f4c1"; + --fa--fa: "\f4c1\f4c1"; } + +.fa-hand-holding-water { + --fa: "\f4c1"; + --fa--fa: "\f4c1\f4c1"; } + +.fa-water { + --fa: "\f773"; + --fa--fa: "\f773\f773"; } + +.fa-calendar-check { + --fa: "\f274"; + --fa--fa: "\f274\f274"; } + +.fa-braille { + --fa: "\f2a1"; + --fa--fa: "\f2a1\f2a1"; } + +.fa-prescription-bottle-medical { + --fa: "\f486"; + --fa--fa: "\f486\f486"; } + +.fa-prescription-bottle-alt { + --fa: "\f486"; + --fa--fa: "\f486\f486"; } + +.fa-landmark { + --fa: "\f66f"; + --fa--fa: "\f66f\f66f"; } + +.fa-truck { + --fa: "\f0d1"; + --fa--fa: "\f0d1\f0d1"; } + +.fa-crosshairs { + --fa: "\f05b"; + --fa--fa: "\f05b\f05b"; } + +.fa-person-cane { + --fa: "\e53c"; + --fa--fa: "\e53c\e53c"; } + +.fa-tent { + --fa: "\e57d"; + --fa--fa: "\e57d\e57d"; } + +.fa-vest-patches { + --fa: "\e086"; + --fa--fa: "\e086\e086"; } + +.fa-check-double { + --fa: "\f560"; + --fa--fa: "\f560\f560"; } + +.fa-arrow-down-a-z { + --fa: "\f15d"; + --fa--fa: "\f15d\f15d"; } + +.fa-sort-alpha-asc { + --fa: "\f15d"; + --fa--fa: "\f15d\f15d"; } + +.fa-sort-alpha-down { + --fa: "\f15d"; + --fa--fa: "\f15d\f15d"; } + +.fa-money-bill-wheat { + --fa: "\e52a"; + --fa--fa: "\e52a\e52a"; } + +.fa-cookie { + --fa: "\f563"; + --fa--fa: "\f563\f563"; } + +.fa-arrow-rotate-left { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-arrow-left-rotate { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-arrow-rotate-back { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-arrow-rotate-backward { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-undo { + --fa: "\f0e2"; + --fa--fa: "\f0e2\f0e2"; } + +.fa-hard-drive { + --fa: "\f0a0"; + --fa--fa: "\f0a0\f0a0"; } + +.fa-hdd { + --fa: "\f0a0"; + --fa--fa: "\f0a0\f0a0"; } + +.fa-face-grin-squint-tears { + --fa: "\f586"; + --fa--fa: "\f586\f586"; } + +.fa-grin-squint-tears { + --fa: "\f586"; + --fa--fa: "\f586\f586"; } + +.fa-dumbbell { + --fa: "\f44b"; + --fa--fa: "\f44b\f44b"; } + +.fa-rectangle-list { + --fa: "\f022"; + --fa--fa: "\f022\f022"; } + +.fa-list-alt { + --fa: "\f022"; + --fa--fa: "\f022\f022"; } + +.fa-tarp-droplet { + --fa: "\e57c"; + --fa--fa: "\e57c\e57c"; } + +.fa-house-medical-circle-check { + --fa: "\e511"; + --fa--fa: "\e511\e511"; } + +.fa-person-skiing-nordic { + --fa: "\f7ca"; + --fa--fa: "\f7ca\f7ca"; } + +.fa-skiing-nordic { + --fa: "\f7ca"; + --fa--fa: "\f7ca\f7ca"; } + +.fa-calendar-plus { + --fa: "\f271"; + --fa--fa: "\f271\f271"; } + +.fa-plane-arrival { + --fa: "\f5af"; + --fa--fa: "\f5af\f5af"; } + +.fa-circle-left { + --fa: "\f359"; + --fa--fa: "\f359\f359"; } + +.fa-arrow-alt-circle-left { + --fa: "\f359"; + --fa--fa: "\f359\f359"; } + +.fa-train-subway { + --fa: "\f239"; + --fa--fa: "\f239\f239"; } + +.fa-subway { + --fa: "\f239"; + --fa--fa: "\f239\f239"; } + +.fa-chart-gantt { + --fa: "\e0e4"; + --fa--fa: "\e0e4\e0e4"; } + +.fa-indian-rupee-sign { + --fa: "\e1bc"; + --fa--fa: "\e1bc\e1bc"; } + +.fa-indian-rupee { + --fa: "\e1bc"; + --fa--fa: "\e1bc\e1bc"; } + +.fa-inr { + --fa: "\e1bc"; + --fa--fa: "\e1bc\e1bc"; } + +.fa-crop-simple { + --fa: "\f565"; + --fa--fa: "\f565\f565"; } + +.fa-crop-alt { + --fa: "\f565"; + --fa--fa: "\f565\f565"; } + +.fa-money-bill-1 { + --fa: "\f3d1"; + --fa--fa: "\f3d1\f3d1"; } + +.fa-money-bill-alt { + --fa: "\f3d1"; + --fa--fa: "\f3d1\f3d1"; } + +.fa-left-long { + --fa: "\f30a"; + --fa--fa: "\f30a\f30a"; } + +.fa-long-arrow-alt-left { + --fa: "\f30a"; + --fa--fa: "\f30a\f30a"; } + +.fa-dna { + --fa: "\f471"; + --fa--fa: "\f471\f471"; } + +.fa-virus-slash { + --fa: "\e075"; + --fa--fa: "\e075\e075"; } + +.fa-minus { + --fa: "\f068"; + --fa--fa: "\f068\f068"; } + +.fa-subtract { + --fa: "\f068"; + --fa--fa: "\f068\f068"; } + +.fa-chess { + --fa: "\f439"; + --fa--fa: "\f439\f439"; } + +.fa-arrow-left-long { + --fa: "\f177"; + --fa--fa: "\f177\f177"; } + +.fa-long-arrow-left { + --fa: "\f177"; + --fa--fa: "\f177\f177"; } + +.fa-plug-circle-check { + --fa: "\e55c"; + --fa--fa: "\e55c\e55c"; } + +.fa-street-view { + --fa: "\f21d"; + --fa--fa: "\f21d\f21d"; } + +.fa-franc-sign { + --fa: "\e18f"; + --fa--fa: "\e18f\e18f"; } + +.fa-volume-off { + --fa: "\f026"; + --fa--fa: "\f026\f026"; } + +.fa-hands-asl-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-american-sign-language-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-asl-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-hands-american-sign-language-interpreting { + --fa: "\f2a3"; + --fa--fa: "\f2a3\f2a3"; } + +.fa-gear { + --fa: "\f013"; + --fa--fa: "\f013\f013"; } + +.fa-cog { + --fa: "\f013"; + --fa--fa: "\f013\f013"; } + +.fa-droplet-slash { + --fa: "\f5c7"; + --fa--fa: "\f5c7\f5c7"; } + +.fa-tint-slash { + --fa: "\f5c7"; + --fa--fa: "\f5c7\f5c7"; } + +.fa-mosque { + --fa: "\f678"; + --fa--fa: "\f678\f678"; } + +.fa-mosquito { + --fa: "\e52b"; + --fa--fa: "\e52b\e52b"; } + +.fa-star-of-david { + --fa: "\f69a"; + --fa--fa: "\f69a\f69a"; } + +.fa-person-military-rifle { + --fa: "\e54b"; + --fa--fa: "\e54b\e54b"; } + +.fa-cart-shopping { + --fa: "\f07a"; + --fa--fa: "\f07a\f07a"; } + +.fa-shopping-cart { + --fa: "\f07a"; + --fa--fa: "\f07a\f07a"; } + +.fa-vials { + --fa: "\f493"; + --fa--fa: "\f493\f493"; } + +.fa-plug-circle-plus { + --fa: "\e55f"; + --fa--fa: "\e55f\e55f"; } + +.fa-place-of-worship { + --fa: "\f67f"; + --fa--fa: "\f67f\f67f"; } + +.fa-grip-vertical { + --fa: "\f58e"; + --fa--fa: "\f58e\f58e"; } + +.fa-hexagon-nodes { + --fa: "\e699"; + --fa--fa: "\e699\e699"; } + +.fa-arrow-turn-up { + --fa: "\f148"; + --fa--fa: "\f148\f148"; } + +.fa-level-up { + --fa: "\f148"; + --fa--fa: "\f148\f148"; } + +.fa-u { + --fa: "\55"; + --fa--fa: "\55\55"; } + +.fa-square-root-variable { + --fa: "\f698"; + --fa--fa: "\f698\f698"; } + +.fa-square-root-alt { + --fa: "\f698"; + --fa--fa: "\f698\f698"; } + +.fa-clock { + --fa: "\f017"; + --fa--fa: "\f017\f017"; } + +.fa-clock-four { + --fa: "\f017"; + --fa--fa: "\f017\f017"; } + +.fa-backward-step { + --fa: "\f048"; + --fa--fa: "\f048\f048"; } + +.fa-step-backward { + --fa: "\f048"; + --fa--fa: "\f048\f048"; } + +.fa-pallet { + --fa: "\f482"; + --fa--fa: "\f482\f482"; } + +.fa-faucet { + --fa: "\e005"; + --fa--fa: "\e005\e005"; } + +.fa-baseball-bat-ball { + --fa: "\f432"; + --fa--fa: "\f432\f432"; } + +.fa-s { + --fa: "\53"; + --fa--fa: "\53\53"; } + +.fa-timeline { + --fa: "\e29c"; + --fa--fa: "\e29c\e29c"; } + +.fa-keyboard { + --fa: "\f11c"; + --fa--fa: "\f11c\f11c"; } + +.fa-caret-down { + --fa: "\f0d7"; + --fa--fa: "\f0d7\f0d7"; } + +.fa-house-chimney-medical { + --fa: "\f7f2"; + --fa--fa: "\f7f2\f7f2"; } + +.fa-clinic-medical { + --fa: "\f7f2"; + --fa--fa: "\f7f2\f7f2"; } + +.fa-temperature-three-quarters { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-temperature-3 { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-thermometer-3 { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-thermometer-three-quarters { + --fa: "\f2c8"; + --fa--fa: "\f2c8\f2c8"; } + +.fa-mobile-screen { + --fa: "\f3cf"; + --fa--fa: "\f3cf\f3cf"; } + +.fa-mobile-android-alt { + --fa: "\f3cf"; + --fa--fa: "\f3cf\f3cf"; } + +.fa-plane-up { + --fa: "\e22d"; + --fa--fa: "\e22d\e22d"; } + +.fa-piggy-bank { + --fa: "\f4d3"; + --fa--fa: "\f4d3\f4d3"; } + +.fa-battery-half { + --fa: "\f242"; + --fa--fa: "\f242\f242"; } + +.fa-battery-3 { + --fa: "\f242"; + --fa--fa: "\f242\f242"; } + +.fa-mountain-city { + --fa: "\e52e"; + --fa--fa: "\e52e\e52e"; } + +.fa-coins { + --fa: "\f51e"; + --fa--fa: "\f51e\f51e"; } + +.fa-khanda { + --fa: "\f66d"; + --fa--fa: "\f66d\f66d"; } + +.fa-sliders { + --fa: "\f1de"; + --fa--fa: "\f1de\f1de"; } + +.fa-sliders-h { + --fa: "\f1de"; + --fa--fa: "\f1de\f1de"; } + +.fa-folder-tree { + --fa: "\f802"; + --fa--fa: "\f802\f802"; } + +.fa-network-wired { + --fa: "\f6ff"; + --fa--fa: "\f6ff\f6ff"; } + +.fa-map-pin { + --fa: "\f276"; + --fa--fa: "\f276\f276"; } + +.fa-hamsa { + --fa: "\f665"; + --fa--fa: "\f665\f665"; } + +.fa-cent-sign { + --fa: "\e3f5"; + --fa--fa: "\e3f5\e3f5"; } + +.fa-flask { + --fa: "\f0c3"; + --fa--fa: "\f0c3\f0c3"; } + +.fa-person-pregnant { + --fa: "\e31e"; + --fa--fa: "\e31e\e31e"; } + +.fa-wand-sparkles { + --fa: "\f72b"; + --fa--fa: "\f72b\f72b"; } + +.fa-ellipsis-vertical { + --fa: "\f142"; + --fa--fa: "\f142\f142"; } + +.fa-ellipsis-v { + --fa: "\f142"; + --fa--fa: "\f142\f142"; } + +.fa-ticket { + --fa: "\f145"; + --fa--fa: "\f145\f145"; } + +.fa-power-off { + --fa: "\f011"; + --fa--fa: "\f011\f011"; } + +.fa-right-long { + --fa: "\f30b"; + --fa--fa: "\f30b\f30b"; } + +.fa-long-arrow-alt-right { + --fa: "\f30b"; + --fa--fa: "\f30b\f30b"; } + +.fa-flag-usa { + --fa: "\f74d"; + --fa--fa: "\f74d\f74d"; } + +.fa-laptop-file { + --fa: "\e51d"; + --fa--fa: "\e51d\e51d"; } + +.fa-tty { + --fa: "\f1e4"; + --fa--fa: "\f1e4\f1e4"; } + +.fa-teletype { + --fa: "\f1e4"; + --fa--fa: "\f1e4\f1e4"; } + +.fa-diagram-next { + --fa: "\e476"; + --fa--fa: "\e476\e476"; } + +.fa-person-rifle { + --fa: "\e54e"; + --fa--fa: "\e54e\e54e"; } + +.fa-house-medical-circle-exclamation { + --fa: "\e512"; + --fa--fa: "\e512\e512"; } + +.fa-closed-captioning { + --fa: "\f20a"; + --fa--fa: "\f20a\f20a"; } + +.fa-person-hiking { + --fa: "\f6ec"; + --fa--fa: "\f6ec\f6ec"; } + +.fa-hiking { + --fa: "\f6ec"; + --fa--fa: "\f6ec\f6ec"; } + +.fa-venus-double { + --fa: "\f226"; + --fa--fa: "\f226\f226"; } + +.fa-images { + --fa: "\f302"; + --fa--fa: "\f302\f302"; } + +.fa-calculator { + --fa: "\f1ec"; + --fa--fa: "\f1ec\f1ec"; } + +.fa-people-pulling { + --fa: "\e535"; + --fa--fa: "\e535\e535"; } + +.fa-n { + --fa: "\4e"; + --fa--fa: "\4e\4e"; } + +.fa-cable-car { + --fa: "\f7da"; + --fa--fa: "\f7da\f7da"; } + +.fa-tram { + --fa: "\f7da"; + --fa--fa: "\f7da\f7da"; } + +.fa-cloud-rain { + --fa: "\f73d"; + --fa--fa: "\f73d\f73d"; } + +.fa-building-circle-xmark { + --fa: "\e4d4"; + --fa--fa: "\e4d4\e4d4"; } + +.fa-ship { + --fa: "\f21a"; + --fa--fa: "\f21a\f21a"; } + +.fa-arrows-down-to-line { + --fa: "\e4b8"; + --fa--fa: "\e4b8\e4b8"; } + +.fa-download { + --fa: "\f019"; + --fa--fa: "\f019\f019"; } + +.fa-face-grin { + --fa: "\f580"; + --fa--fa: "\f580\f580"; } + +.fa-grin { + --fa: "\f580"; + --fa--fa: "\f580\f580"; } + +.fa-delete-left { + --fa: "\f55a"; + --fa--fa: "\f55a\f55a"; } + +.fa-backspace { + --fa: "\f55a"; + --fa--fa: "\f55a\f55a"; } + +.fa-eye-dropper { + --fa: "\f1fb"; + --fa--fa: "\f1fb\f1fb"; } + +.fa-eye-dropper-empty { + --fa: "\f1fb"; + --fa--fa: "\f1fb\f1fb"; } + +.fa-eyedropper { + --fa: "\f1fb"; + --fa--fa: "\f1fb\f1fb"; } + +.fa-file-circle-check { + --fa: "\e5a0"; + --fa--fa: "\e5a0\e5a0"; } + +.fa-forward { + --fa: "\f04e"; + --fa--fa: "\f04e\f04e"; } + +.fa-mobile { + --fa: "\f3ce"; + --fa--fa: "\f3ce\f3ce"; } + +.fa-mobile-android { + --fa: "\f3ce"; + --fa--fa: "\f3ce\f3ce"; } + +.fa-mobile-phone { + --fa: "\f3ce"; + --fa--fa: "\f3ce\f3ce"; } + +.fa-face-meh { + --fa: "\f11a"; + --fa--fa: "\f11a\f11a"; } + +.fa-meh { + --fa: "\f11a"; + --fa--fa: "\f11a\f11a"; } + +.fa-align-center { + --fa: "\f037"; + --fa--fa: "\f037\f037"; } + +.fa-book-skull { + --fa: "\f6b7"; + --fa--fa: "\f6b7\f6b7"; } + +.fa-book-dead { + --fa: "\f6b7"; + --fa--fa: "\f6b7\f6b7"; } + +.fa-id-card { + --fa: "\f2c2"; + --fa--fa: "\f2c2\f2c2"; } + +.fa-drivers-license { + --fa: "\f2c2"; + --fa--fa: "\f2c2\f2c2"; } + +.fa-outdent { + --fa: "\f03b"; + --fa--fa: "\f03b\f03b"; } + +.fa-dedent { + --fa: "\f03b"; + --fa--fa: "\f03b\f03b"; } + +.fa-heart-circle-exclamation { + --fa: "\e4fe"; + --fa--fa: "\e4fe\e4fe"; } + +.fa-house { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-home { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-home-alt { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-home-lg-alt { + --fa: "\f015"; + --fa--fa: "\f015\f015"; } + +.fa-calendar-week { + --fa: "\f784"; + --fa--fa: "\f784\f784"; } + +.fa-laptop-medical { + --fa: "\f812"; + --fa--fa: "\f812\f812"; } + +.fa-b { + --fa: "\42"; + --fa--fa: "\42\42"; } + +.fa-file-medical { + --fa: "\f477"; + --fa--fa: "\f477\f477"; } + +.fa-dice-one { + --fa: "\f525"; + --fa--fa: "\f525\f525"; } + +.fa-kiwi-bird { + --fa: "\f535"; + --fa--fa: "\f535\f535"; } + +.fa-arrow-right-arrow-left { + --fa: "\f0ec"; + --fa--fa: "\f0ec\f0ec"; } + +.fa-exchange { + --fa: "\f0ec"; + --fa--fa: "\f0ec\f0ec"; } + +.fa-rotate-right { + --fa: "\f2f9"; + --fa--fa: "\f2f9\f2f9"; } + +.fa-redo-alt { + --fa: "\f2f9"; + --fa--fa: "\f2f9\f2f9"; } + +.fa-rotate-forward { + --fa: "\f2f9"; + --fa--fa: "\f2f9\f2f9"; } + +.fa-utensils { + --fa: "\f2e7"; + --fa--fa: "\f2e7\f2e7"; } + +.fa-cutlery { + --fa: "\f2e7"; + --fa--fa: "\f2e7\f2e7"; } + +.fa-arrow-up-wide-short { + --fa: "\f161"; + --fa--fa: "\f161\f161"; } + +.fa-sort-amount-up { + --fa: "\f161"; + --fa--fa: "\f161\f161"; } + +.fa-mill-sign { + --fa: "\e1ed"; + --fa--fa: "\e1ed\e1ed"; } + +.fa-bowl-rice { + --fa: "\e2eb"; + --fa--fa: "\e2eb\e2eb"; } + +.fa-skull { + --fa: "\f54c"; + --fa--fa: "\f54c\f54c"; } + +.fa-tower-broadcast { + --fa: "\f519"; + --fa--fa: "\f519\f519"; } + +.fa-broadcast-tower { + --fa: "\f519"; + --fa--fa: "\f519\f519"; } + +.fa-truck-pickup { + --fa: "\f63c"; + --fa--fa: "\f63c\f63c"; } + +.fa-up-long { + --fa: "\f30c"; + --fa--fa: "\f30c\f30c"; } + +.fa-long-arrow-alt-up { + --fa: "\f30c"; + --fa--fa: "\f30c\f30c"; } + +.fa-stop { + --fa: "\f04d"; + --fa--fa: "\f04d\f04d"; } + +.fa-code-merge { + --fa: "\f387"; + --fa--fa: "\f387\f387"; } + +.fa-upload { + --fa: "\f093"; + --fa--fa: "\f093\f093"; } + +.fa-hurricane { + --fa: "\f751"; + --fa--fa: "\f751\f751"; } + +.fa-mound { + --fa: "\e52d"; + --fa--fa: "\e52d\e52d"; } + +.fa-toilet-portable { + --fa: "\e583"; + --fa--fa: "\e583\e583"; } + +.fa-compact-disc { + --fa: "\f51f"; + --fa--fa: "\f51f\f51f"; } + +.fa-file-arrow-down { + --fa: "\f56d"; + --fa--fa: "\f56d\f56d"; } + +.fa-file-download { + --fa: "\f56d"; + --fa--fa: "\f56d\f56d"; } + +.fa-caravan { + --fa: "\f8ff"; + --fa--fa: "\f8ff\f8ff"; } + +.fa-shield-cat { + --fa: "\e572"; + --fa--fa: "\e572\e572"; } + +.fa-bolt { + --fa: "\f0e7"; + --fa--fa: "\f0e7\f0e7"; } + +.fa-zap { + --fa: "\f0e7"; + --fa--fa: "\f0e7\f0e7"; } + +.fa-glass-water { + --fa: "\e4f4"; + --fa--fa: "\e4f4\e4f4"; } + +.fa-oil-well { + --fa: "\e532"; + --fa--fa: "\e532\e532"; } + +.fa-vault { + --fa: "\e2c5"; + --fa--fa: "\e2c5\e2c5"; } + +.fa-mars { + --fa: "\f222"; + --fa--fa: "\f222\f222"; } + +.fa-toilet { + --fa: "\f7d8"; + --fa--fa: "\f7d8\f7d8"; } + +.fa-plane-circle-xmark { + --fa: "\e557"; + --fa--fa: "\e557\e557"; } + +.fa-yen-sign { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-cny { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-jpy { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-rmb { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-yen { + --fa: "\f157"; + --fa--fa: "\f157\f157"; } + +.fa-ruble-sign { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-rouble { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-rub { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-ruble { + --fa: "\f158"; + --fa--fa: "\f158\f158"; } + +.fa-sun { + --fa: "\f185"; + --fa--fa: "\f185\f185"; } + +.fa-guitar { + --fa: "\f7a6"; + --fa--fa: "\f7a6\f7a6"; } + +.fa-face-laugh-wink { + --fa: "\f59c"; + --fa--fa: "\f59c\f59c"; } + +.fa-laugh-wink { + --fa: "\f59c"; + --fa--fa: "\f59c\f59c"; } + +.fa-horse-head { + --fa: "\f7ab"; + --fa--fa: "\f7ab\f7ab"; } + +.fa-bore-hole { + --fa: "\e4c3"; + --fa--fa: "\e4c3\e4c3"; } + +.fa-industry { + --fa: "\f275"; + --fa--fa: "\f275\f275"; } + +.fa-circle-down { + --fa: "\f358"; + --fa--fa: "\f358\f358"; } + +.fa-arrow-alt-circle-down { + --fa: "\f358"; + --fa--fa: "\f358\f358"; } + +.fa-arrows-turn-to-dots { + --fa: "\e4c1"; + --fa--fa: "\e4c1\e4c1"; } + +.fa-florin-sign { + --fa: "\e184"; + --fa--fa: "\e184\e184"; } + +.fa-arrow-down-short-wide { + --fa: "\f884"; + --fa--fa: "\f884\f884"; } + +.fa-sort-amount-desc { + --fa: "\f884"; + --fa--fa: "\f884\f884"; } + +.fa-sort-amount-down-alt { + --fa: "\f884"; + --fa--fa: "\f884\f884"; } + +.fa-less-than { + --fa: "\3c"; + --fa--fa: "\3c\3c"; } + +.fa-angle-down { + --fa: "\f107"; + --fa--fa: "\f107\f107"; } + +.fa-car-tunnel { + --fa: "\e4de"; + --fa--fa: "\e4de\e4de"; } + +.fa-head-side-cough { + --fa: "\e061"; + --fa--fa: "\e061\e061"; } + +.fa-grip-lines { + --fa: "\f7a4"; + --fa--fa: "\f7a4\f7a4"; } + +.fa-thumbs-down { + --fa: "\f165"; + --fa--fa: "\f165\f165"; } + +.fa-user-lock { + --fa: "\f502"; + --fa--fa: "\f502\f502"; } + +.fa-arrow-right-long { + --fa: "\f178"; + --fa--fa: "\f178\f178"; } + +.fa-long-arrow-right { + --fa: "\f178"; + --fa--fa: "\f178\f178"; } + +.fa-anchor-circle-xmark { + --fa: "\e4ac"; + --fa--fa: "\e4ac\e4ac"; } + +.fa-ellipsis { + --fa: "\f141"; + --fa--fa: "\f141\f141"; } + +.fa-ellipsis-h { + --fa: "\f141"; + --fa--fa: "\f141\f141"; } + +.fa-chess-pawn { + --fa: "\f443"; + --fa--fa: "\f443\f443"; } + +.fa-kit-medical { + --fa: "\f479"; + --fa--fa: "\f479\f479"; } + +.fa-first-aid { + --fa: "\f479"; + --fa--fa: "\f479\f479"; } + +.fa-person-through-window { + --fa: "\e5a9"; + --fa--fa: "\e5a9\e5a9"; } + +.fa-toolbox { + --fa: "\f552"; + --fa--fa: "\f552\f552"; } + +.fa-hands-holding-circle { + --fa: "\e4fb"; + --fa--fa: "\e4fb\e4fb"; } + +.fa-bug { + --fa: "\f188"; + --fa--fa: "\f188\f188"; } + +.fa-credit-card { + --fa: "\f09d"; + --fa--fa: "\f09d\f09d"; } + +.fa-credit-card-alt { + --fa: "\f09d"; + --fa--fa: "\f09d\f09d"; } + +.fa-car { + --fa: "\f1b9"; + --fa--fa: "\f1b9\f1b9"; } + +.fa-automobile { + --fa: "\f1b9"; + --fa--fa: "\f1b9\f1b9"; } + +.fa-hand-holding-hand { + --fa: "\e4f7"; + --fa--fa: "\e4f7\e4f7"; } + +.fa-book-open-reader { + --fa: "\f5da"; + --fa--fa: "\f5da\f5da"; } + +.fa-book-reader { + --fa: "\f5da"; + --fa--fa: "\f5da\f5da"; } + +.fa-mountain-sun { + --fa: "\e52f"; + --fa--fa: "\e52f\e52f"; } + +.fa-arrows-left-right-to-line { + --fa: "\e4ba"; + --fa--fa: "\e4ba\e4ba"; } + +.fa-dice-d20 { + --fa: "\f6cf"; + --fa--fa: "\f6cf\f6cf"; } + +.fa-truck-droplet { + --fa: "\e58c"; + --fa--fa: "\e58c\e58c"; } + +.fa-file-circle-xmark { + --fa: "\e5a1"; + --fa--fa: "\e5a1\e5a1"; } + +.fa-temperature-arrow-up { + --fa: "\e040"; + --fa--fa: "\e040\e040"; } + +.fa-temperature-up { + --fa: "\e040"; + --fa--fa: "\e040\e040"; } + +.fa-medal { + --fa: "\f5a2"; + --fa--fa: "\f5a2\f5a2"; } + +.fa-bed { + --fa: "\f236"; + --fa--fa: "\f236\f236"; } + +.fa-square-h { + --fa: "\f0fd"; + --fa--fa: "\f0fd\f0fd"; } + +.fa-h-square { + --fa: "\f0fd"; + --fa--fa: "\f0fd\f0fd"; } + +.fa-podcast { + --fa: "\f2ce"; + --fa--fa: "\f2ce\f2ce"; } + +.fa-temperature-full { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-temperature-4 { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-thermometer-4 { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-thermometer-full { + --fa: "\f2c7"; + --fa--fa: "\f2c7\f2c7"; } + +.fa-bell { + --fa: "\f0f3"; + --fa--fa: "\f0f3\f0f3"; } + +.fa-superscript { + --fa: "\f12b"; + --fa--fa: "\f12b\f12b"; } + +.fa-plug-circle-xmark { + --fa: "\e560"; + --fa--fa: "\e560\e560"; } + +.fa-star-of-life { + --fa: "\f621"; + --fa--fa: "\f621\f621"; } + +.fa-phone-slash { + --fa: "\f3dd"; + --fa--fa: "\f3dd\f3dd"; } + +.fa-paint-roller { + --fa: "\f5aa"; + --fa--fa: "\f5aa\f5aa"; } + +.fa-handshake-angle { + --fa: "\f4c4"; + --fa--fa: "\f4c4\f4c4"; } + +.fa-hands-helping { + --fa: "\f4c4"; + --fa--fa: "\f4c4\f4c4"; } + +.fa-location-dot { + --fa: "\f3c5"; + --fa--fa: "\f3c5\f3c5"; } + +.fa-map-marker-alt { + --fa: "\f3c5"; + --fa--fa: "\f3c5\f3c5"; } + +.fa-file { + --fa: "\f15b"; + --fa--fa: "\f15b\f15b"; } + +.fa-greater-than { + --fa: "\3e"; + --fa--fa: "\3e\3e"; } + +.fa-person-swimming { + --fa: "\f5c4"; + --fa--fa: "\f5c4\f5c4"; } + +.fa-swimmer { + --fa: "\f5c4"; + --fa--fa: "\f5c4\f5c4"; } + +.fa-arrow-down { + --fa: "\f063"; + --fa--fa: "\f063\f063"; } + +.fa-droplet { + --fa: "\f043"; + --fa--fa: "\f043\f043"; } + +.fa-tint { + --fa: "\f043"; + --fa--fa: "\f043\f043"; } + +.fa-eraser { + --fa: "\f12d"; + --fa--fa: "\f12d\f12d"; } + +.fa-earth-americas { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-earth { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-earth-america { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-globe-americas { + --fa: "\f57d"; + --fa--fa: "\f57d\f57d"; } + +.fa-person-burst { + --fa: "\e53b"; + --fa--fa: "\e53b\e53b"; } + +.fa-dove { + --fa: "\f4ba"; + --fa--fa: "\f4ba\f4ba"; } + +.fa-battery-empty { + --fa: "\f244"; + --fa--fa: "\f244\f244"; } + +.fa-battery-0 { + --fa: "\f244"; + --fa--fa: "\f244\f244"; } + +.fa-socks { + --fa: "\f696"; + --fa--fa: "\f696\f696"; } + +.fa-inbox { + --fa: "\f01c"; + --fa--fa: "\f01c\f01c"; } + +.fa-section { + --fa: "\e447"; + --fa--fa: "\e447\e447"; } + +.fa-gauge-high { + --fa: "\f625"; + --fa--fa: "\f625\f625"; } + +.fa-tachometer-alt { + --fa: "\f625"; + --fa--fa: "\f625\f625"; } + +.fa-tachometer-alt-fast { + --fa: "\f625"; + --fa--fa: "\f625\f625"; } + +.fa-envelope-open-text { + --fa: "\f658"; + --fa--fa: "\f658\f658"; } + +.fa-hospital { + --fa: "\f0f8"; + --fa--fa: "\f0f8\f0f8"; } + +.fa-hospital-alt { + --fa: "\f0f8"; + --fa--fa: "\f0f8\f0f8"; } + +.fa-hospital-wide { + --fa: "\f0f8"; + --fa--fa: "\f0f8\f0f8"; } + +.fa-wine-bottle { + --fa: "\f72f"; + --fa--fa: "\f72f\f72f"; } + +.fa-chess-rook { + --fa: "\f447"; + --fa--fa: "\f447\f447"; } + +.fa-bars-staggered { + --fa: "\f550"; + --fa--fa: "\f550\f550"; } + +.fa-reorder { + --fa: "\f550"; + --fa--fa: "\f550\f550"; } + +.fa-stream { + --fa: "\f550"; + --fa--fa: "\f550\f550"; } + +.fa-dharmachakra { + --fa: "\f655"; + --fa--fa: "\f655\f655"; } + +.fa-hotdog { + --fa: "\f80f"; + --fa--fa: "\f80f\f80f"; } + +.fa-person-walking-with-cane { + --fa: "\f29d"; + --fa--fa: "\f29d\f29d"; } + +.fa-blind { + --fa: "\f29d"; + --fa--fa: "\f29d\f29d"; } + +.fa-drum { + --fa: "\f569"; + --fa--fa: "\f569\f569"; } + +.fa-ice-cream { + --fa: "\f810"; + --fa--fa: "\f810\f810"; } + +.fa-heart-circle-bolt { + --fa: "\e4fc"; + --fa--fa: "\e4fc\e4fc"; } + +.fa-fax { + --fa: "\f1ac"; + --fa--fa: "\f1ac\f1ac"; } + +.fa-paragraph { + --fa: "\f1dd"; + --fa--fa: "\f1dd\f1dd"; } + +.fa-check-to-slot { + --fa: "\f772"; + --fa--fa: "\f772\f772"; } + +.fa-vote-yea { + --fa: "\f772"; + --fa--fa: "\f772\f772"; } + +.fa-star-half { + --fa: "\f089"; + --fa--fa: "\f089\f089"; } + +.fa-boxes-stacked { + --fa: "\f468"; + --fa--fa: "\f468\f468"; } + +.fa-boxes { + --fa: "\f468"; + --fa--fa: "\f468\f468"; } + +.fa-boxes-alt { + --fa: "\f468"; + --fa--fa: "\f468\f468"; } + +.fa-link { + --fa: "\f0c1"; + --fa--fa: "\f0c1\f0c1"; } + +.fa-chain { + --fa: "\f0c1"; + --fa--fa: "\f0c1\f0c1"; } + +.fa-ear-listen { + --fa: "\f2a2"; + --fa--fa: "\f2a2\f2a2"; } + +.fa-assistive-listening-systems { + --fa: "\f2a2"; + --fa--fa: "\f2a2\f2a2"; } + +.fa-tree-city { + --fa: "\e587"; + --fa--fa: "\e587\e587"; } + +.fa-play { + --fa: "\f04b"; + --fa--fa: "\f04b\f04b"; } + +.fa-font { + --fa: "\f031"; + --fa--fa: "\f031\f031"; } + +.fa-table-cells-row-lock { + --fa: "\e67a"; + --fa--fa: "\e67a\e67a"; } + +.fa-rupiah-sign { + --fa: "\e23d"; + --fa--fa: "\e23d\e23d"; } + +.fa-magnifying-glass { + --fa: "\f002"; + --fa--fa: "\f002\f002"; } + +.fa-search { + --fa: "\f002"; + --fa--fa: "\f002\f002"; } + +.fa-table-tennis-paddle-ball { + --fa: "\f45d"; + --fa--fa: "\f45d\f45d"; } + +.fa-ping-pong-paddle-ball { + --fa: "\f45d"; + --fa--fa: "\f45d\f45d"; } + +.fa-table-tennis { + --fa: "\f45d"; + --fa--fa: "\f45d\f45d"; } + +.fa-person-dots-from-line { + --fa: "\f470"; + --fa--fa: "\f470\f470"; } + +.fa-diagnoses { + --fa: "\f470"; + --fa--fa: "\f470\f470"; } + +.fa-trash-can-arrow-up { + --fa: "\f82a"; + --fa--fa: "\f82a\f82a"; } + +.fa-trash-restore-alt { + --fa: "\f82a"; + --fa--fa: "\f82a\f82a"; } + +.fa-naira-sign { + --fa: "\e1f6"; + --fa--fa: "\e1f6\e1f6"; } + +.fa-cart-arrow-down { + --fa: "\f218"; + --fa--fa: "\f218\f218"; } + +.fa-walkie-talkie { + --fa: "\f8ef"; + --fa--fa: "\f8ef\f8ef"; } + +.fa-file-pen { + --fa: "\f31c"; + --fa--fa: "\f31c\f31c"; } + +.fa-file-edit { + --fa: "\f31c"; + --fa--fa: "\f31c\f31c"; } + +.fa-receipt { + --fa: "\f543"; + --fa--fa: "\f543\f543"; } + +.fa-square-pen { + --fa: "\f14b"; + --fa--fa: "\f14b\f14b"; } + +.fa-pen-square { + --fa: "\f14b"; + --fa--fa: "\f14b\f14b"; } + +.fa-pencil-square { + --fa: "\f14b"; + --fa--fa: "\f14b\f14b"; } + +.fa-suitcase-rolling { + --fa: "\f5c1"; + --fa--fa: "\f5c1\f5c1"; } + +.fa-person-circle-exclamation { + --fa: "\e53f"; + --fa--fa: "\e53f\e53f"; } + +.fa-chevron-down { + --fa: "\f078"; + --fa--fa: "\f078\f078"; } + +.fa-battery-full { + --fa: "\f240"; + --fa--fa: "\f240\f240"; } + +.fa-battery { + --fa: "\f240"; + --fa--fa: "\f240\f240"; } + +.fa-battery-5 { + --fa: "\f240"; + --fa--fa: "\f240\f240"; } + +.fa-skull-crossbones { + --fa: "\f714"; + --fa--fa: "\f714\f714"; } + +.fa-code-compare { + --fa: "\e13a"; + --fa--fa: "\e13a\e13a"; } + +.fa-list-ul { + --fa: "\f0ca"; + --fa--fa: "\f0ca\f0ca"; } + +.fa-list-dots { + --fa: "\f0ca"; + --fa--fa: "\f0ca\f0ca"; } + +.fa-school-lock { + --fa: "\e56f"; + --fa--fa: "\e56f\e56f"; } + +.fa-tower-cell { + --fa: "\e585"; + --fa--fa: "\e585\e585"; } + +.fa-down-long { + --fa: "\f309"; + --fa--fa: "\f309\f309"; } + +.fa-long-arrow-alt-down { + --fa: "\f309"; + --fa--fa: "\f309\f309"; } + +.fa-ranking-star { + --fa: "\e561"; + --fa--fa: "\e561\e561"; } + +.fa-chess-king { + --fa: "\f43f"; + --fa--fa: "\f43f\f43f"; } + +.fa-person-harassing { + --fa: "\e549"; + --fa--fa: "\e549\e549"; } + +.fa-brazilian-real-sign { + --fa: "\e46c"; + --fa--fa: "\e46c\e46c"; } + +.fa-landmark-dome { + --fa: "\f752"; + --fa--fa: "\f752\f752"; } + +.fa-landmark-alt { + --fa: "\f752"; + --fa--fa: "\f752\f752"; } + +.fa-arrow-up { + --fa: "\f062"; + --fa--fa: "\f062\f062"; } + +.fa-tv { + --fa: "\f26c"; + --fa--fa: "\f26c\f26c"; } + +.fa-television { + --fa: "\f26c"; + --fa--fa: "\f26c\f26c"; } + +.fa-tv-alt { + --fa: "\f26c"; + --fa--fa: "\f26c\f26c"; } + +.fa-shrimp { + --fa: "\e448"; + --fa--fa: "\e448\e448"; } + +.fa-list-check { + --fa: "\f0ae"; + --fa--fa: "\f0ae\f0ae"; } + +.fa-tasks { + --fa: "\f0ae"; + --fa--fa: "\f0ae\f0ae"; } + +.fa-jug-detergent { + --fa: "\e519"; + --fa--fa: "\e519\e519"; } + +.fa-circle-user { + --fa: "\f2bd"; + --fa--fa: "\f2bd\f2bd"; } + +.fa-user-circle { + --fa: "\f2bd"; + --fa--fa: "\f2bd\f2bd"; } + +.fa-user-shield { + --fa: "\f505"; + --fa--fa: "\f505\f505"; } + +.fa-wind { + --fa: "\f72e"; + --fa--fa: "\f72e\f72e"; } + +.fa-car-burst { + --fa: "\f5e1"; + --fa--fa: "\f5e1\f5e1"; } + +.fa-car-crash { + --fa: "\f5e1"; + --fa--fa: "\f5e1\f5e1"; } + +.fa-y { + --fa: "\59"; + --fa--fa: "\59\59"; } + +.fa-person-snowboarding { + --fa: "\f7ce"; + --fa--fa: "\f7ce\f7ce"; } + +.fa-snowboarding { + --fa: "\f7ce"; + --fa--fa: "\f7ce\f7ce"; } + +.fa-truck-fast { + --fa: "\f48b"; + --fa--fa: "\f48b\f48b"; } + +.fa-shipping-fast { + --fa: "\f48b"; + --fa--fa: "\f48b\f48b"; } + +.fa-fish { + --fa: "\f578"; + --fa--fa: "\f578\f578"; } + +.fa-user-graduate { + --fa: "\f501"; + --fa--fa: "\f501\f501"; } + +.fa-circle-half-stroke { + --fa: "\f042"; + --fa--fa: "\f042\f042"; } + +.fa-adjust { + --fa: "\f042"; + --fa--fa: "\f042\f042"; } + +.fa-clapperboard { + --fa: "\e131"; + --fa--fa: "\e131\e131"; } + +.fa-circle-radiation { + --fa: "\f7ba"; + --fa--fa: "\f7ba\f7ba"; } + +.fa-radiation-alt { + --fa: "\f7ba"; + --fa--fa: "\f7ba\f7ba"; } + +.fa-baseball { + --fa: "\f433"; + --fa--fa: "\f433\f433"; } + +.fa-baseball-ball { + --fa: "\f433"; + --fa--fa: "\f433\f433"; } + +.fa-jet-fighter-up { + --fa: "\e518"; + --fa--fa: "\e518\e518"; } + +.fa-diagram-project { + --fa: "\f542"; + --fa--fa: "\f542\f542"; } + +.fa-project-diagram { + --fa: "\f542"; + --fa--fa: "\f542\f542"; } + +.fa-copy { + --fa: "\f0c5"; + --fa--fa: "\f0c5\f0c5"; } + +.fa-volume-xmark { + --fa: "\f6a9"; + --fa--fa: "\f6a9\f6a9"; } + +.fa-volume-mute { + --fa: "\f6a9"; + --fa--fa: "\f6a9\f6a9"; } + +.fa-volume-times { + --fa: "\f6a9"; + --fa--fa: "\f6a9\f6a9"; } + +.fa-hand-sparkles { + --fa: "\e05d"; + --fa--fa: "\e05d\e05d"; } + +.fa-grip { + --fa: "\f58d"; + --fa--fa: "\f58d\f58d"; } + +.fa-grip-horizontal { + --fa: "\f58d"; + --fa--fa: "\f58d\f58d"; } + +.fa-share-from-square { + --fa: "\f14d"; + --fa--fa: "\f14d\f14d"; } + +.fa-share-square { + --fa: "\f14d"; + --fa--fa: "\f14d\f14d"; } + +.fa-child-combatant { + --fa: "\e4e0"; + --fa--fa: "\e4e0\e4e0"; } + +.fa-child-rifle { + --fa: "\e4e0"; + --fa--fa: "\e4e0\e4e0"; } + +.fa-gun { + --fa: "\e19b"; + --fa--fa: "\e19b\e19b"; } + +.fa-square-phone { + --fa: "\f098"; + --fa--fa: "\f098\f098"; } + +.fa-phone-square { + --fa: "\f098"; + --fa--fa: "\f098\f098"; } + +.fa-plus { + --fa: "\2b"; + --fa--fa: "\2b\2b"; } + +.fa-add { + --fa: "\2b"; + --fa--fa: "\2b\2b"; } + +.fa-expand { + --fa: "\f065"; + --fa--fa: "\f065\f065"; } + +.fa-computer { + --fa: "\e4e5"; + --fa--fa: "\e4e5\e4e5"; } + +.fa-xmark { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-close { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-multiply { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-remove { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-times { + --fa: "\f00d"; + --fa--fa: "\f00d\f00d"; } + +.fa-arrows-up-down-left-right { + --fa: "\f047"; + --fa--fa: "\f047\f047"; } + +.fa-arrows { + --fa: "\f047"; + --fa--fa: "\f047\f047"; } + +.fa-chalkboard-user { + --fa: "\f51c"; + --fa--fa: "\f51c\f51c"; } + +.fa-chalkboard-teacher { + --fa: "\f51c"; + --fa--fa: "\f51c\f51c"; } + +.fa-peso-sign { + --fa: "\e222"; + --fa--fa: "\e222\e222"; } + +.fa-building-shield { + --fa: "\e4d8"; + --fa--fa: "\e4d8\e4d8"; } + +.fa-baby { + --fa: "\f77c"; + --fa--fa: "\f77c\f77c"; } + +.fa-users-line { + --fa: "\e592"; + --fa--fa: "\e592\e592"; } + +.fa-quote-left { + --fa: "\f10d"; + --fa--fa: "\f10d\f10d"; } + +.fa-quote-left-alt { + --fa: "\f10d"; + --fa--fa: "\f10d\f10d"; } + +.fa-tractor { + --fa: "\f722"; + --fa--fa: "\f722\f722"; } + +.fa-trash-arrow-up { + --fa: "\f829"; + --fa--fa: "\f829\f829"; } + +.fa-trash-restore { + --fa: "\f829"; + --fa--fa: "\f829\f829"; } + +.fa-arrow-down-up-lock { + --fa: "\e4b0"; + --fa--fa: "\e4b0\e4b0"; } + +.fa-lines-leaning { + --fa: "\e51e"; + --fa--fa: "\e51e\e51e"; } + +.fa-ruler-combined { + --fa: "\f546"; + --fa--fa: "\f546\f546"; } + +.fa-copyright { + --fa: "\f1f9"; + --fa--fa: "\f1f9\f1f9"; } + +.fa-equals { + --fa: "\3d"; + --fa--fa: "\3d\3d"; } + +.fa-blender { + --fa: "\f517"; + --fa--fa: "\f517\f517"; } + +.fa-teeth { + --fa: "\f62e"; + --fa--fa: "\f62e\f62e"; } + +.fa-shekel-sign { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-ils { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-shekel { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-sheqel { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-sheqel-sign { + --fa: "\f20b"; + --fa--fa: "\f20b\f20b"; } + +.fa-map { + --fa: "\f279"; + --fa--fa: "\f279\f279"; } + +.fa-rocket { + --fa: "\f135"; + --fa--fa: "\f135\f135"; } + +.fa-photo-film { + --fa: "\f87c"; + --fa--fa: "\f87c\f87c"; } + +.fa-photo-video { + --fa: "\f87c"; + --fa--fa: "\f87c\f87c"; } + +.fa-folder-minus { + --fa: "\f65d"; + --fa--fa: "\f65d\f65d"; } + +.fa-hexagon-nodes-bolt { + --fa: "\e69a"; + --fa--fa: "\e69a\e69a"; } + +.fa-store { + --fa: "\f54e"; + --fa--fa: "\f54e\f54e"; } + +.fa-arrow-trend-up { + --fa: "\e098"; + --fa--fa: "\e098\e098"; } + +.fa-plug-circle-minus { + --fa: "\e55e"; + --fa--fa: "\e55e\e55e"; } + +.fa-sign-hanging { + --fa: "\f4d9"; + --fa--fa: "\f4d9\f4d9"; } + +.fa-sign { + --fa: "\f4d9"; + --fa--fa: "\f4d9\f4d9"; } + +.fa-bezier-curve { + --fa: "\f55b"; + --fa--fa: "\f55b\f55b"; } + +.fa-bell-slash { + --fa: "\f1f6"; + --fa--fa: "\f1f6\f1f6"; } + +.fa-tablet { + --fa: "\f3fb"; + --fa--fa: "\f3fb\f3fb"; } + +.fa-tablet-android { + --fa: "\f3fb"; + --fa--fa: "\f3fb\f3fb"; } + +.fa-school-flag { + --fa: "\e56e"; + --fa--fa: "\e56e\e56e"; } + +.fa-fill { + --fa: "\f575"; + --fa--fa: "\f575\f575"; } + +.fa-angle-up { + --fa: "\f106"; + --fa--fa: "\f106\f106"; } + +.fa-drumstick-bite { + --fa: "\f6d7"; + --fa--fa: "\f6d7\f6d7"; } + +.fa-holly-berry { + --fa: "\f7aa"; + --fa--fa: "\f7aa\f7aa"; } + +.fa-chevron-left { + --fa: "\f053"; + --fa--fa: "\f053\f053"; } + +.fa-bacteria { + --fa: "\e059"; + --fa--fa: "\e059\e059"; } + +.fa-hand-lizard { + --fa: "\f258"; + --fa--fa: "\f258\f258"; } + +.fa-notdef { + --fa: "\e1fe"; + --fa--fa: "\e1fe\e1fe"; } + +.fa-disease { + --fa: "\f7fa"; + --fa--fa: "\f7fa\f7fa"; } + +.fa-briefcase-medical { + --fa: "\f469"; + --fa--fa: "\f469\f469"; } + +.fa-genderless { + --fa: "\f22d"; + --fa--fa: "\f22d\f22d"; } + +.fa-chevron-right { + --fa: "\f054"; + --fa--fa: "\f054\f054"; } + +.fa-retweet { + --fa: "\f079"; + --fa--fa: "\f079\f079"; } + +.fa-car-rear { + --fa: "\f5de"; + --fa--fa: "\f5de\f5de"; } + +.fa-car-alt { + --fa: "\f5de"; + --fa--fa: "\f5de\f5de"; } + +.fa-pump-soap { + --fa: "\e06b"; + --fa--fa: "\e06b\e06b"; } + +.fa-video-slash { + --fa: "\f4e2"; + --fa--fa: "\f4e2\f4e2"; } + +.fa-battery-quarter { + --fa: "\f243"; + --fa--fa: "\f243\f243"; } + +.fa-battery-2 { + --fa: "\f243"; + --fa--fa: "\f243\f243"; } + +.fa-radio { + --fa: "\f8d7"; + --fa--fa: "\f8d7\f8d7"; } + +.fa-baby-carriage { + --fa: "\f77d"; + --fa--fa: "\f77d\f77d"; } + +.fa-carriage-baby { + --fa: "\f77d"; + --fa--fa: "\f77d\f77d"; } + +.fa-traffic-light { + --fa: "\f637"; + --fa--fa: "\f637\f637"; } + +.fa-thermometer { + --fa: "\f491"; + --fa--fa: "\f491\f491"; } + +.fa-vr-cardboard { + --fa: "\f729"; + --fa--fa: "\f729\f729"; } + +.fa-hand-middle-finger { + --fa: "\f806"; + --fa--fa: "\f806\f806"; } + +.fa-percent { + --fa: "\25"; + --fa--fa: "\25\25"; } + +.fa-percentage { + --fa: "\25"; + --fa--fa: "\25\25"; } + +.fa-truck-moving { + --fa: "\f4df"; + --fa--fa: "\f4df\f4df"; } + +.fa-glass-water-droplet { + --fa: "\e4f5"; + --fa--fa: "\e4f5\e4f5"; } + +.fa-display { + --fa: "\e163"; + --fa--fa: "\e163\e163"; } + +.fa-face-smile { + --fa: "\f118"; + --fa--fa: "\f118\f118"; } + +.fa-smile { + --fa: "\f118"; + --fa--fa: "\f118\f118"; } + +.fa-thumbtack { + --fa: "\f08d"; + --fa--fa: "\f08d\f08d"; } + +.fa-thumb-tack { + --fa: "\f08d"; + --fa--fa: "\f08d\f08d"; } + +.fa-trophy { + --fa: "\f091"; + --fa--fa: "\f091\f091"; } + +.fa-person-praying { + --fa: "\f683"; + --fa--fa: "\f683\f683"; } + +.fa-pray { + --fa: "\f683"; + --fa--fa: "\f683\f683"; } + +.fa-hammer { + --fa: "\f6e3"; + --fa--fa: "\f6e3\f6e3"; } + +.fa-hand-peace { + --fa: "\f25b"; + --fa--fa: "\f25b\f25b"; } + +.fa-rotate { + --fa: "\f2f1"; + --fa--fa: "\f2f1\f2f1"; } + +.fa-sync-alt { + --fa: "\f2f1"; + --fa--fa: "\f2f1\f2f1"; } + +.fa-spinner { + --fa: "\f110"; + --fa--fa: "\f110\f110"; } + +.fa-robot { + --fa: "\f544"; + --fa--fa: "\f544\f544"; } + +.fa-peace { + --fa: "\f67c"; + --fa--fa: "\f67c\f67c"; } + +.fa-gears { + --fa: "\f085"; + --fa--fa: "\f085\f085"; } + +.fa-cogs { + --fa: "\f085"; + --fa--fa: "\f085\f085"; } + +.fa-warehouse { + --fa: "\f494"; + --fa--fa: "\f494\f494"; } + +.fa-arrow-up-right-dots { + --fa: "\e4b7"; + --fa--fa: "\e4b7\e4b7"; } + +.fa-splotch { + --fa: "\f5bc"; + --fa--fa: "\f5bc\f5bc"; } + +.fa-face-grin-hearts { + --fa: "\f584"; + --fa--fa: "\f584\f584"; } + +.fa-grin-hearts { + --fa: "\f584"; + --fa--fa: "\f584\f584"; } + +.fa-dice-four { + --fa: "\f524"; + --fa--fa: "\f524\f524"; } + +.fa-sim-card { + --fa: "\f7c4"; + --fa--fa: "\f7c4\f7c4"; } + +.fa-transgender { + --fa: "\f225"; + --fa--fa: "\f225\f225"; } + +.fa-transgender-alt { + --fa: "\f225"; + --fa--fa: "\f225\f225"; } + +.fa-mercury { + --fa: "\f223"; + --fa--fa: "\f223\f223"; } + +.fa-arrow-turn-down { + --fa: "\f149"; + --fa--fa: "\f149\f149"; } + +.fa-level-down { + --fa: "\f149"; + --fa--fa: "\f149\f149"; } + +.fa-person-falling-burst { + --fa: "\e547"; + --fa--fa: "\e547\e547"; } + +.fa-award { + --fa: "\f559"; + --fa--fa: "\f559\f559"; } + +.fa-ticket-simple { + --fa: "\f3ff"; + --fa--fa: "\f3ff\f3ff"; } + +.fa-ticket-alt { + --fa: "\f3ff"; + --fa--fa: "\f3ff\f3ff"; } + +.fa-building { + --fa: "\f1ad"; + --fa--fa: "\f1ad\f1ad"; } + +.fa-angles-left { + --fa: "\f100"; + --fa--fa: "\f100\f100"; } + +.fa-angle-double-left { + --fa: "\f100"; + --fa--fa: "\f100\f100"; } + +.fa-qrcode { + --fa: "\f029"; + --fa--fa: "\f029\f029"; } + +.fa-clock-rotate-left { + --fa: "\f1da"; + --fa--fa: "\f1da\f1da"; } + +.fa-history { + --fa: "\f1da"; + --fa--fa: "\f1da\f1da"; } + +.fa-face-grin-beam-sweat { + --fa: "\f583"; + --fa--fa: "\f583\f583"; } + +.fa-grin-beam-sweat { + --fa: "\f583"; + --fa--fa: "\f583\f583"; } + +.fa-file-export { + --fa: "\f56e"; + --fa--fa: "\f56e\f56e"; } + +.fa-arrow-right-from-file { + --fa: "\f56e"; + --fa--fa: "\f56e\f56e"; } + +.fa-shield { + --fa: "\f132"; + --fa--fa: "\f132\f132"; } + +.fa-shield-blank { + --fa: "\f132"; + --fa--fa: "\f132\f132"; } + +.fa-arrow-up-short-wide { + --fa: "\f885"; + --fa--fa: "\f885\f885"; } + +.fa-sort-amount-up-alt { + --fa: "\f885"; + --fa--fa: "\f885\f885"; } + +.fa-comment-nodes { + --fa: "\e696"; + --fa--fa: "\e696\e696"; } + +.fa-house-medical { + --fa: "\e3b2"; + --fa--fa: "\e3b2\e3b2"; } + +.fa-golf-ball-tee { + --fa: "\f450"; + --fa--fa: "\f450\f450"; } + +.fa-golf-ball { + --fa: "\f450"; + --fa--fa: "\f450\f450"; } + +.fa-circle-chevron-left { + --fa: "\f137"; + --fa--fa: "\f137\f137"; } + +.fa-chevron-circle-left { + --fa: "\f137"; + --fa--fa: "\f137\f137"; } + +.fa-house-chimney-window { + --fa: "\e00d"; + --fa--fa: "\e00d\e00d"; } + +.fa-pen-nib { + --fa: "\f5ad"; + --fa--fa: "\f5ad\f5ad"; } + +.fa-tent-arrow-turn-left { + --fa: "\e580"; + --fa--fa: "\e580\e580"; } + +.fa-tents { + --fa: "\e582"; + --fa--fa: "\e582\e582"; } + +.fa-wand-magic { + --fa: "\f0d0"; + --fa--fa: "\f0d0\f0d0"; } + +.fa-magic { + --fa: "\f0d0"; + --fa--fa: "\f0d0\f0d0"; } + +.fa-dog { + --fa: "\f6d3"; + --fa--fa: "\f6d3\f6d3"; } + +.fa-carrot { + --fa: "\f787"; + --fa--fa: "\f787\f787"; } + +.fa-moon { + --fa: "\f186"; + --fa--fa: "\f186\f186"; } + +.fa-wine-glass-empty { + --fa: "\f5ce"; + --fa--fa: "\f5ce\f5ce"; } + +.fa-wine-glass-alt { + --fa: "\f5ce"; + --fa--fa: "\f5ce\f5ce"; } + +.fa-cheese { + --fa: "\f7ef"; + --fa--fa: "\f7ef\f7ef"; } + +.fa-yin-yang { + --fa: "\f6ad"; + --fa--fa: "\f6ad\f6ad"; } + +.fa-music { + --fa: "\f001"; + --fa--fa: "\f001\f001"; } + +.fa-code-commit { + --fa: "\f386"; + --fa--fa: "\f386\f386"; } + +.fa-temperature-low { + --fa: "\f76b"; + --fa--fa: "\f76b\f76b"; } + +.fa-person-biking { + --fa: "\f84a"; + --fa--fa: "\f84a\f84a"; } + +.fa-biking { + --fa: "\f84a"; + --fa--fa: "\f84a\f84a"; } + +.fa-broom { + --fa: "\f51a"; + --fa--fa: "\f51a\f51a"; } + +.fa-shield-heart { + --fa: "\e574"; + --fa--fa: "\e574\e574"; } + +.fa-gopuram { + --fa: "\f664"; + --fa--fa: "\f664\f664"; } + +.fa-earth-oceania { + --fa: "\e47b"; + --fa--fa: "\e47b\e47b"; } + +.fa-globe-oceania { + --fa: "\e47b"; + --fa--fa: "\e47b\e47b"; } + +.fa-square-xmark { + --fa: "\f2d3"; + --fa--fa: "\f2d3\f2d3"; } + +.fa-times-square { + --fa: "\f2d3"; + --fa--fa: "\f2d3\f2d3"; } + +.fa-xmark-square { + --fa: "\f2d3"; + --fa--fa: "\f2d3\f2d3"; } + +.fa-hashtag { + --fa: "\23"; + --fa--fa: "\23\23"; } + +.fa-up-right-and-down-left-from-center { + --fa: "\f424"; + --fa--fa: "\f424\f424"; } + +.fa-expand-alt { + --fa: "\f424"; + --fa--fa: "\f424\f424"; } + +.fa-oil-can { + --fa: "\f613"; + --fa--fa: "\f613\f613"; } + +.fa-t { + --fa: "\54"; + --fa--fa: "\54\54"; } + +.fa-hippo { + --fa: "\f6ed"; + --fa--fa: "\f6ed\f6ed"; } + +.fa-chart-column { + --fa: "\e0e3"; + --fa--fa: "\e0e3\e0e3"; } + +.fa-infinity { + --fa: "\f534"; + --fa--fa: "\f534\f534"; } + +.fa-vial-circle-check { + --fa: "\e596"; + --fa--fa: "\e596\e596"; } + +.fa-person-arrow-down-to-line { + --fa: "\e538"; + --fa--fa: "\e538\e538"; } + +.fa-voicemail { + --fa: "\f897"; + --fa--fa: "\f897\f897"; } + +.fa-fan { + --fa: "\f863"; + --fa--fa: "\f863\f863"; } + +.fa-person-walking-luggage { + --fa: "\e554"; + --fa--fa: "\e554\e554"; } + +.fa-up-down { + --fa: "\f338"; + --fa--fa: "\f338\f338"; } + +.fa-arrows-alt-v { + --fa: "\f338"; + --fa--fa: "\f338\f338"; } + +.fa-cloud-moon-rain { + --fa: "\f73c"; + --fa--fa: "\f73c\f73c"; } + +.fa-calendar { + --fa: "\f133"; + --fa--fa: "\f133\f133"; } + +.fa-trailer { + --fa: "\e041"; + --fa--fa: "\e041\e041"; } + +.fa-bahai { + --fa: "\f666"; + --fa--fa: "\f666\f666"; } + +.fa-haykal { + --fa: "\f666"; + --fa--fa: "\f666\f666"; } + +.fa-sd-card { + --fa: "\f7c2"; + --fa--fa: "\f7c2\f7c2"; } + +.fa-dragon { + --fa: "\f6d5"; + --fa--fa: "\f6d5\f6d5"; } + +.fa-shoe-prints { + --fa: "\f54b"; + --fa--fa: "\f54b\f54b"; } + +.fa-circle-plus { + --fa: "\f055"; + --fa--fa: "\f055\f055"; } + +.fa-plus-circle { + --fa: "\f055"; + --fa--fa: "\f055\f055"; } + +.fa-face-grin-tongue-wink { + --fa: "\f58b"; + --fa--fa: "\f58b\f58b"; } + +.fa-grin-tongue-wink { + --fa: "\f58b"; + --fa--fa: "\f58b\f58b"; } + +.fa-hand-holding { + --fa: "\f4bd"; + --fa--fa: "\f4bd\f4bd"; } + +.fa-plug-circle-exclamation { + --fa: "\e55d"; + --fa--fa: "\e55d\e55d"; } + +.fa-link-slash { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-chain-broken { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-chain-slash { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-unlink { + --fa: "\f127"; + --fa--fa: "\f127\f127"; } + +.fa-clone { + --fa: "\f24d"; + --fa--fa: "\f24d\f24d"; } + +.fa-person-walking-arrow-loop-left { + --fa: "\e551"; + --fa--fa: "\e551\e551"; } + +.fa-arrow-up-z-a { + --fa: "\f882"; + --fa--fa: "\f882\f882"; } + +.fa-sort-alpha-up-alt { + --fa: "\f882"; + --fa--fa: "\f882\f882"; } + +.fa-fire-flame-curved { + --fa: "\f7e4"; + --fa--fa: "\f7e4\f7e4"; } + +.fa-fire-alt { + --fa: "\f7e4"; + --fa--fa: "\f7e4\f7e4"; } + +.fa-tornado { + --fa: "\f76f"; + --fa--fa: "\f76f\f76f"; } + +.fa-file-circle-plus { + --fa: "\e494"; + --fa--fa: "\e494\e494"; } + +.fa-book-quran { + --fa: "\f687"; + --fa--fa: "\f687\f687"; } + +.fa-quran { + --fa: "\f687"; + --fa--fa: "\f687\f687"; } + +.fa-anchor { + --fa: "\f13d"; + --fa--fa: "\f13d\f13d"; } + +.fa-border-all { + --fa: "\f84c"; + --fa--fa: "\f84c\f84c"; } + +.fa-face-angry { + --fa: "\f556"; + --fa--fa: "\f556\f556"; } + +.fa-angry { + --fa: "\f556"; + --fa--fa: "\f556\f556"; } + +.fa-cookie-bite { + --fa: "\f564"; + --fa--fa: "\f564\f564"; } + +.fa-arrow-trend-down { + --fa: "\e097"; + --fa--fa: "\e097\e097"; } + +.fa-rss { + --fa: "\f09e"; + --fa--fa: "\f09e\f09e"; } + +.fa-feed { + --fa: "\f09e"; + --fa--fa: "\f09e\f09e"; } + +.fa-draw-polygon { + --fa: "\f5ee"; + --fa--fa: "\f5ee\f5ee"; } + +.fa-scale-balanced { + --fa: "\f24e"; + --fa--fa: "\f24e\f24e"; } + +.fa-balance-scale { + --fa: "\f24e"; + --fa--fa: "\f24e\f24e"; } + +.fa-gauge-simple-high { + --fa: "\f62a"; + --fa--fa: "\f62a\f62a"; } + +.fa-tachometer { + --fa: "\f62a"; + --fa--fa: "\f62a\f62a"; } + +.fa-tachometer-fast { + --fa: "\f62a"; + --fa--fa: "\f62a\f62a"; } + +.fa-shower { + --fa: "\f2cc"; + --fa--fa: "\f2cc\f2cc"; } + +.fa-desktop { + --fa: "\f390"; + --fa--fa: "\f390\f390"; } + +.fa-desktop-alt { + --fa: "\f390"; + --fa--fa: "\f390\f390"; } + +.fa-m { + --fa: "\4d"; + --fa--fa: "\4d\4d"; } + +.fa-table-list { + --fa: "\f00b"; + --fa--fa: "\f00b\f00b"; } + +.fa-th-list { + --fa: "\f00b"; + --fa--fa: "\f00b\f00b"; } + +.fa-comment-sms { + --fa: "\f7cd"; + --fa--fa: "\f7cd\f7cd"; } + +.fa-sms { + --fa: "\f7cd"; + --fa--fa: "\f7cd\f7cd"; } + +.fa-book { + --fa: "\f02d"; + --fa--fa: "\f02d\f02d"; } + +.fa-user-plus { + --fa: "\f234"; + --fa--fa: "\f234\f234"; } + +.fa-check { + --fa: "\f00c"; + --fa--fa: "\f00c\f00c"; } + +.fa-battery-three-quarters { + --fa: "\f241"; + --fa--fa: "\f241\f241"; } + +.fa-battery-4 { + --fa: "\f241"; + --fa--fa: "\f241\f241"; } + +.fa-house-circle-check { + --fa: "\e509"; + --fa--fa: "\e509\e509"; } + +.fa-angle-left { + --fa: "\f104"; + --fa--fa: "\f104\f104"; } + +.fa-diagram-successor { + --fa: "\e47a"; + --fa--fa: "\e47a\e47a"; } + +.fa-truck-arrow-right { + --fa: "\e58b"; + --fa--fa: "\e58b\e58b"; } + +.fa-arrows-split-up-and-left { + --fa: "\e4bc"; + --fa--fa: "\e4bc\e4bc"; } + +.fa-hand-fist { + --fa: "\f6de"; + --fa--fa: "\f6de\f6de"; } + +.fa-fist-raised { + --fa: "\f6de"; + --fa--fa: "\f6de\f6de"; } + +.fa-cloud-moon { + --fa: "\f6c3"; + --fa--fa: "\f6c3\f6c3"; } + +.fa-briefcase { + --fa: "\f0b1"; + --fa--fa: "\f0b1\f0b1"; } + +.fa-person-falling { + --fa: "\e546"; + --fa--fa: "\e546\e546"; } + +.fa-image-portrait { + --fa: "\f3e0"; + --fa--fa: "\f3e0\f3e0"; } + +.fa-portrait { + --fa: "\f3e0"; + --fa--fa: "\f3e0\f3e0"; } + +.fa-user-tag { + --fa: "\f507"; + --fa--fa: "\f507\f507"; } + +.fa-rug { + --fa: "\e569"; + --fa--fa: "\e569\e569"; } + +.fa-earth-europe { + --fa: "\f7a2"; + --fa--fa: "\f7a2\f7a2"; } + +.fa-globe-europe { + --fa: "\f7a2"; + --fa--fa: "\f7a2\f7a2"; } + +.fa-cart-flatbed-suitcase { + --fa: "\f59d"; + --fa--fa: "\f59d\f59d"; } + +.fa-luggage-cart { + --fa: "\f59d"; + --fa--fa: "\f59d\f59d"; } + +.fa-rectangle-xmark { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-rectangle-times { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-times-rectangle { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-window-close { + --fa: "\f410"; + --fa--fa: "\f410\f410"; } + +.fa-baht-sign { + --fa: "\e0ac"; + --fa--fa: "\e0ac\e0ac"; } + +.fa-book-open { + --fa: "\f518"; + --fa--fa: "\f518\f518"; } + +.fa-book-journal-whills { + --fa: "\f66a"; + --fa--fa: "\f66a\f66a"; } + +.fa-journal-whills { + --fa: "\f66a"; + --fa--fa: "\f66a\f66a"; } + +.fa-handcuffs { + --fa: "\e4f8"; + --fa--fa: "\e4f8\e4f8"; } + +.fa-triangle-exclamation { + --fa: "\f071"; + --fa--fa: "\f071\f071"; } + +.fa-exclamation-triangle { + --fa: "\f071"; + --fa--fa: "\f071\f071"; } + +.fa-warning { + --fa: "\f071"; + --fa--fa: "\f071\f071"; } + +.fa-database { + --fa: "\f1c0"; + --fa--fa: "\f1c0\f1c0"; } + +.fa-share { + --fa: "\f064"; + --fa--fa: "\f064\f064"; } + +.fa-mail-forward { + --fa: "\f064"; + --fa--fa: "\f064\f064"; } + +.fa-bottle-droplet { + --fa: "\e4c4"; + --fa--fa: "\e4c4\e4c4"; } + +.fa-mask-face { + --fa: "\e1d7"; + --fa--fa: "\e1d7\e1d7"; } + +.fa-hill-rockslide { + --fa: "\e508"; + --fa--fa: "\e508\e508"; } + +.fa-right-left { + --fa: "\f362"; + --fa--fa: "\f362\f362"; } + +.fa-exchange-alt { + --fa: "\f362"; + --fa--fa: "\f362\f362"; } + +.fa-paper-plane { + --fa: "\f1d8"; + --fa--fa: "\f1d8\f1d8"; } + +.fa-road-circle-exclamation { + --fa: "\e565"; + --fa--fa: "\e565\e565"; } + +.fa-dungeon { + --fa: "\f6d9"; + --fa--fa: "\f6d9\f6d9"; } + +.fa-align-right { + --fa: "\f038"; + --fa--fa: "\f038\f038"; } + +.fa-money-bill-1-wave { + --fa: "\f53b"; + --fa--fa: "\f53b\f53b"; } + +.fa-money-bill-wave-alt { + --fa: "\f53b"; + --fa--fa: "\f53b\f53b"; } + +.fa-life-ring { + --fa: "\f1cd"; + --fa--fa: "\f1cd\f1cd"; } + +.fa-hands { + --fa: "\f2a7"; + --fa--fa: "\f2a7\f2a7"; } + +.fa-sign-language { + --fa: "\f2a7"; + --fa--fa: "\f2a7\f2a7"; } + +.fa-signing { + --fa: "\f2a7"; + --fa--fa: "\f2a7\f2a7"; } + +.fa-calendar-day { + --fa: "\f783"; + --fa--fa: "\f783\f783"; } + +.fa-water-ladder { + --fa: "\f5c5"; + --fa--fa: "\f5c5\f5c5"; } + +.fa-ladder-water { + --fa: "\f5c5"; + --fa--fa: "\f5c5\f5c5"; } + +.fa-swimming-pool { + --fa: "\f5c5"; + --fa--fa: "\f5c5\f5c5"; } + +.fa-arrows-up-down { + --fa: "\f07d"; + --fa--fa: "\f07d\f07d"; } + +.fa-arrows-v { + --fa: "\f07d"; + --fa--fa: "\f07d\f07d"; } + +.fa-face-grimace { + --fa: "\f57f"; + --fa--fa: "\f57f\f57f"; } + +.fa-grimace { + --fa: "\f57f"; + --fa--fa: "\f57f\f57f"; } + +.fa-wheelchair-move { + --fa: "\e2ce"; + --fa--fa: "\e2ce\e2ce"; } + +.fa-wheelchair-alt { + --fa: "\e2ce"; + --fa--fa: "\e2ce\e2ce"; } + +.fa-turn-down { + --fa: "\f3be"; + --fa--fa: "\f3be\f3be"; } + +.fa-level-down-alt { + --fa: "\f3be"; + --fa--fa: "\f3be\f3be"; } + +.fa-person-walking-arrow-right { + --fa: "\e552"; + --fa--fa: "\e552\e552"; } + +.fa-square-envelope { + --fa: "\f199"; + --fa--fa: "\f199\f199"; } + +.fa-envelope-square { + --fa: "\f199"; + --fa--fa: "\f199\f199"; } + +.fa-dice { + --fa: "\f522"; + --fa--fa: "\f522\f522"; } + +.fa-bowling-ball { + --fa: "\f436"; + --fa--fa: "\f436\f436"; } + +.fa-brain { + --fa: "\f5dc"; + --fa--fa: "\f5dc\f5dc"; } + +.fa-bandage { + --fa: "\f462"; + --fa--fa: "\f462\f462"; } + +.fa-band-aid { + --fa: "\f462"; + --fa--fa: "\f462\f462"; } + +.fa-calendar-minus { + --fa: "\f272"; + --fa--fa: "\f272\f272"; } + +.fa-circle-xmark { + --fa: "\f057"; + --fa--fa: "\f057\f057"; } + +.fa-times-circle { + --fa: "\f057"; + --fa--fa: "\f057\f057"; } + +.fa-xmark-circle { + --fa: "\f057"; + --fa--fa: "\f057\f057"; } + +.fa-gifts { + --fa: "\f79c"; + --fa--fa: "\f79c\f79c"; } + +.fa-hotel { + --fa: "\f594"; + --fa--fa: "\f594\f594"; } + +.fa-earth-asia { + --fa: "\f57e"; + --fa--fa: "\f57e\f57e"; } + +.fa-globe-asia { + --fa: "\f57e"; + --fa--fa: "\f57e\f57e"; } + +.fa-id-card-clip { + --fa: "\f47f"; + --fa--fa: "\f47f\f47f"; } + +.fa-id-card-alt { + --fa: "\f47f"; + --fa--fa: "\f47f\f47f"; } + +.fa-magnifying-glass-plus { + --fa: "\f00e"; + --fa--fa: "\f00e\f00e"; } + +.fa-search-plus { + --fa: "\f00e"; + --fa--fa: "\f00e\f00e"; } + +.fa-thumbs-up { + --fa: "\f164"; + --fa--fa: "\f164\f164"; } + +.fa-user-clock { + --fa: "\f4fd"; + --fa--fa: "\f4fd\f4fd"; } + +.fa-hand-dots { + --fa: "\f461"; + --fa--fa: "\f461\f461"; } + +.fa-allergies { + --fa: "\f461"; + --fa--fa: "\f461\f461"; } + +.fa-file-invoice { + --fa: "\f570"; + --fa--fa: "\f570\f570"; } + +.fa-window-minimize { + --fa: "\f2d1"; + --fa--fa: "\f2d1\f2d1"; } + +.fa-mug-saucer { + --fa: "\f0f4"; + --fa--fa: "\f0f4\f0f4"; } + +.fa-coffee { + --fa: "\f0f4"; + --fa--fa: "\f0f4\f0f4"; } + +.fa-brush { + --fa: "\f55d"; + --fa--fa: "\f55d\f55d"; } + +.fa-file-half-dashed { + --fa: "\e698"; + --fa--fa: "\e698\e698"; } + +.fa-mask { + --fa: "\f6fa"; + --fa--fa: "\f6fa\f6fa"; } + +.fa-magnifying-glass-minus { + --fa: "\f010"; + --fa--fa: "\f010\f010"; } + +.fa-search-minus { + --fa: "\f010"; + --fa--fa: "\f010\f010"; } + +.fa-ruler-vertical { + --fa: "\f548"; + --fa--fa: "\f548\f548"; } + +.fa-user-large { + --fa: "\f406"; + --fa--fa: "\f406\f406"; } + +.fa-user-alt { + --fa: "\f406"; + --fa--fa: "\f406\f406"; } + +.fa-train-tram { + --fa: "\e5b4"; + --fa--fa: "\e5b4\e5b4"; } + +.fa-user-nurse { + --fa: "\f82f"; + --fa--fa: "\f82f\f82f"; } + +.fa-syringe { + --fa: "\f48e"; + --fa--fa: "\f48e\f48e"; } + +.fa-cloud-sun { + --fa: "\f6c4"; + --fa--fa: "\f6c4\f6c4"; } + +.fa-stopwatch-20 { + --fa: "\e06f"; + --fa--fa: "\e06f\e06f"; } + +.fa-square-full { + --fa: "\f45c"; + --fa--fa: "\f45c\f45c"; } + +.fa-magnet { + --fa: "\f076"; + --fa--fa: "\f076\f076"; } + +.fa-jar { + --fa: "\e516"; + --fa--fa: "\e516\e516"; } + +.fa-note-sticky { + --fa: "\f249"; + --fa--fa: "\f249\f249"; } + +.fa-sticky-note { + --fa: "\f249"; + --fa--fa: "\f249\f249"; } + +.fa-bug-slash { + --fa: "\e490"; + --fa--fa: "\e490\e490"; } + +.fa-arrow-up-from-water-pump { + --fa: "\e4b6"; + --fa--fa: "\e4b6\e4b6"; } + +.fa-bone { + --fa: "\f5d7"; + --fa--fa: "\f5d7\f5d7"; } + +.fa-table-cells-row-unlock { + --fa: "\e691"; + --fa--fa: "\e691\e691"; } + +.fa-user-injured { + --fa: "\f728"; + --fa--fa: "\f728\f728"; } + +.fa-face-sad-tear { + --fa: "\f5b4"; + --fa--fa: "\f5b4\f5b4"; } + +.fa-sad-tear { + --fa: "\f5b4"; + --fa--fa: "\f5b4\f5b4"; } + +.fa-plane { + --fa: "\f072"; + --fa--fa: "\f072\f072"; } + +.fa-tent-arrows-down { + --fa: "\e581"; + --fa--fa: "\e581\e581"; } + +.fa-exclamation { + --fa: "\21"; + --fa--fa: "\21\21"; } + +.fa-arrows-spin { + --fa: "\e4bb"; + --fa--fa: "\e4bb\e4bb"; } + +.fa-print { + --fa: "\f02f"; + --fa--fa: "\f02f\f02f"; } + +.fa-turkish-lira-sign { + --fa: "\e2bb"; + --fa--fa: "\e2bb\e2bb"; } + +.fa-try { + --fa: "\e2bb"; + --fa--fa: "\e2bb\e2bb"; } + +.fa-turkish-lira { + --fa: "\e2bb"; + --fa--fa: "\e2bb\e2bb"; } + +.fa-dollar-sign { + --fa: "\24"; + --fa--fa: "\24\24"; } + +.fa-dollar { + --fa: "\24"; + --fa--fa: "\24\24"; } + +.fa-usd { + --fa: "\24"; + --fa--fa: "\24\24"; } + +.fa-x { + --fa: "\58"; + --fa--fa: "\58\58"; } + +.fa-magnifying-glass-dollar { + --fa: "\f688"; + --fa--fa: "\f688\f688"; } + +.fa-search-dollar { + --fa: "\f688"; + --fa--fa: "\f688\f688"; } + +.fa-users-gear { + --fa: "\f509"; + --fa--fa: "\f509\f509"; } + +.fa-users-cog { + --fa: "\f509"; + --fa--fa: "\f509\f509"; } + +.fa-person-military-pointing { + --fa: "\e54a"; + --fa--fa: "\e54a\e54a"; } + +.fa-building-columns { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-bank { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-institution { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-museum { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-university { + --fa: "\f19c"; + --fa--fa: "\f19c\f19c"; } + +.fa-umbrella { + --fa: "\f0e9"; + --fa--fa: "\f0e9\f0e9"; } + +.fa-trowel { + --fa: "\e589"; + --fa--fa: "\e589\e589"; } + +.fa-d { + --fa: "\44"; + --fa--fa: "\44\44"; } + +.fa-stapler { + --fa: "\e5af"; + --fa--fa: "\e5af\e5af"; } + +.fa-masks-theater { + --fa: "\f630"; + --fa--fa: "\f630\f630"; } + +.fa-theater-masks { + --fa: "\f630"; + --fa--fa: "\f630\f630"; } + +.fa-kip-sign { + --fa: "\e1c4"; + --fa--fa: "\e1c4\e1c4"; } + +.fa-hand-point-left { + --fa: "\f0a5"; + --fa--fa: "\f0a5\f0a5"; } + +.fa-handshake-simple { + --fa: "\f4c6"; + --fa--fa: "\f4c6\f4c6"; } + +.fa-handshake-alt { + --fa: "\f4c6"; + --fa--fa: "\f4c6\f4c6"; } + +.fa-jet-fighter { + --fa: "\f0fb"; + --fa--fa: "\f0fb\f0fb"; } + +.fa-fighter-jet { + --fa: "\f0fb"; + --fa--fa: "\f0fb\f0fb"; } + +.fa-square-share-nodes { + --fa: "\f1e1"; + --fa--fa: "\f1e1\f1e1"; } + +.fa-share-alt-square { + --fa: "\f1e1"; + --fa--fa: "\f1e1\f1e1"; } + +.fa-barcode { + --fa: "\f02a"; + --fa--fa: "\f02a\f02a"; } + +.fa-plus-minus { + --fa: "\e43c"; + --fa--fa: "\e43c\e43c"; } + +.fa-video { + --fa: "\f03d"; + --fa--fa: "\f03d\f03d"; } + +.fa-video-camera { + --fa: "\f03d"; + --fa--fa: "\f03d\f03d"; } + +.fa-graduation-cap { + --fa: "\f19d"; + --fa--fa: "\f19d\f19d"; } + +.fa-mortar-board { + --fa: "\f19d"; + --fa--fa: "\f19d\f19d"; } + +.fa-hand-holding-medical { + --fa: "\e05c"; + --fa--fa: "\e05c\e05c"; } + +.fa-person-circle-check { + --fa: "\e53e"; + --fa--fa: "\e53e\e53e"; } + +.fa-turn-up { + --fa: "\f3bf"; + --fa--fa: "\f3bf\f3bf"; } + +.fa-level-up-alt { + --fa: "\f3bf"; + --fa--fa: "\f3bf\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } diff --git a/layout/frontend/b2c/dist/fontawesome/css/solid.css b/layout/frontend/b2c/dist/fontawesome/css/solid.css new file mode 100644 index 0000000..65c265a --- /dev/null +++ b/layout/frontend/b2c/dist/fontawesome/css/solid.css @@ -0,0 +1,19 @@ +/*! + * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } diff --git a/layout/frontend/b2c/dist/js/fonta.js b/layout/frontend/b2c/dist/js/fonta.js new file mode 100644 index 0000000..455a015 --- /dev/null +++ b/layout/frontend/b2c/dist/js/fonta.js @@ -0,0 +1,2 @@ +window.FontAwesomeKitConfig = {"id":10305418,"version":"6.7.2","token":"e89a33a132","method":"css","minify":{"enabled":true},"baseUrl":"https://ka-f.fontawesome.com","license":"free","asyncLoading":{"enabled":false},"autoA11y":{"enabled":true},"baseUrlKit":"https://kit.fontawesome.com","detectConflictsUntil":null,"iconUploads":{},"startupFilename":"free.min.css","v4FontFaceShim":{"enabled":true},"v4shim":{"enabled":true},"v5FontFaceShim":{"enabled":true}}; +!function(t){"function"==typeof define&&define.amd?define("kit-loader",t):t()}((function(){"use strict";function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function e(e){for(var n=1;nt.length)&&(e=t.length);for(var n=0,o=new Array(e);n-1}(t)&&("URLSearchParams"in window?(i=new URL(t)).searchParams.set("token",r):i=i+"?token="+encodeURIComponent(r)),i=i.toString(),new R((function(t,e){if("function"==typeof n)n(i,{mode:"cors",cache:"default"}).then((function(t){if(t.ok)return t.text();throw new Error("")})).then((function(e){t(e)})).catch(e);else if("function"==typeof o){var r=new o;r.addEventListener("loadend",(function(){this.responseText?t(this.responseText):e(new Error(""))}));["abort","error","timeout"].map((function(t){r.addEventListener(t,(function(){e(new Error(""))}))})),r.open("GET",i),r.send()}else{e(new Error(""))}}))}function H(t,e,n){var o=t;return[[/(url\("?)\.\.\/\.\.\/\.\./g,function(t,n){return"".concat(n).concat(e)}],[/(url\("?)\.\.\/webfonts/g,function(t,o){return"".concat(o).concat(e,"/releases/v").concat(n,"/webfonts")}],[/(url\("?)https:\/\/kit-free([^.])*\.fontawesome\.com/g,function(t,n){return"".concat(n).concat(e)}]].forEach((function(t){var e=r(t,2),n=e[0],i=e[1];o=o.replace(n,i)})),o}function q(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=n.document||r,i=A.bind(A,r,[].concat(v,h.map((function(t){return"fa-".concat(t)}))));t.autoA11y.enabled&&o(i);var a=t.subsetPath&&t.baseUrl+"/"+t.subsetPath,c=[];if(a?c.push({id:"fa-main",addOn:void 0,url:a}):c.push({id:"fa-main",addOn:void 0,url:j(t,{filename:t.startupFilename,minify:t.minify.enabled})}),t.v4shim&&t.v4shim.enabled&&c.push({id:"fa-v4-shims",addOn:"-v4-shims"}),t.v5FontFaceShim&&t.v5FontFaceShim.enabled&&c.push({id:"fa-v5-font-face",addOn:"-v5-font-face"}),t.v4FontFaceShim&&t.v4FontFaceShim.enabled&&c.push({id:"fa-v4-font-face",addOn:"-v4-font-face"}),!a&&t.customIconsCssPath){var l=t.customIconsCssPath.indexOf("kit-upload.css")>-1?t.baseUrlKit:t.baseUrl,f=l+"/"+t.customIconsCssPath;c.push({id:"fa-kit-upload",url:f})}var u=c.map((function(o){return new R((function(r,i){var a=o.url||j(t,{addOn:o.addOn,minify:t.minify.enabled}),c={id:o.id},l=t.subset?c:e(e(e({},n),c),{},{baseUrl:t.baseUrl,version:t.version,id:o.id,contentFilter:function(t,e){return H(t,e.baseUrl,e.version)}});J(a,n).then((function(t){r(G(t,l))})).catch(i)}))}));return R.all(u)}function G(t,e){var n=e.contentFilter||function(t,e){return t},o=document.createElement("style"),r=document.createTextNode(n(t,e));return o.appendChild(r),o.media="all",e.id&&o.setAttribute("id",e.id),e&&e.detectingConflicts&&e.detectionIgnoreAttr&&o.setAttributeNode(document.createAttribute(e.detectionIgnoreAttr)),o}function X(t,n){n.autoA11y=t.autoA11y.enabled,"pro"===t.license&&(n.autoFetchSvg=!0,n.fetchSvgFrom=t.baseUrl+"/releases/"+("latest"===t.version?"latest":"v".concat(t.version))+"/svgs",n.fetchUploadedSvgFrom=t.uploadsUrl);var o=[];return t.v4shim.enabled&&o.push(new R((function(o,r){J(j(t,{addOn:"-v4-shims",minify:t.minify.enabled}),n).then((function(t){o(B(t,e(e({},n),{},{id:"fa-v4-shims"})))})).catch(r)}))),o.push(new R((function(o,r){J(t.subsetPath&&t.baseUrl+"/"+t.subsetPath||j(t,{filename:t.startupFilename,minify:t.minify.enabled}),n).then((function(t){var r=B(t,e(e({},n),{},{id:"fa-main"}));o(function(t,e){var n=e&&void 0!==e.autoFetchSvg?e.autoFetchSvg:void 0,o=e&&void 0!==e.autoA11y?e.autoA11y:void 0;void 0!==o&&t.setAttribute("data-auto-a11y",o?"true":"false");n&&(t.setAttributeNode(document.createAttribute("data-auto-fetch-svg")),t.setAttribute("data-fetch-svg-from",e.fetchSvgFrom),t.setAttribute("data-fetch-uploaded-svg-from",e.fetchUploadedSvgFrom));return t}(r,n))})).catch(r)}))),R.all(o)}function B(t,e){var n=document.createElement("SCRIPT"),o=document.createTextNode(t);return n.appendChild(o),n.referrerPolicy="strict-origin",e.id&&n.setAttribute("id",e.id),e&&e.detectingConflicts&&e.detectionIgnoreAttr&&n.setAttributeNode(document.createAttribute(e.detectionIgnoreAttr)),n}function W(t){var e,n=[],o=document,r=o.documentElement.doScroll,i=(r?/^loaded|^c/:/^loaded|^i|^c/).test(o.readyState);i||o.addEventListener("DOMContentLoaded",e=function(){for(o.removeEventListener("DOMContentLoaded",e),i=1;e=n.shift();)e()}),i?setTimeout(t,0):n.push(t)}function Y(t){"undefined"!=typeof MutationObserver&&new MutationObserver(t).observe(document,{childList:!0,subtree:!0})}try{if(window.FontAwesomeKitConfig){var z=window.FontAwesomeKitConfig,$={detectingConflicts:z.detectConflictsUntil&&new Date<=new Date(z.detectConflictsUntil),detectionIgnoreAttr:"data-fa-detection-ignore",fetch:window.fetch,token:z.token,XMLHttpRequest:window.XMLHttpRequest,document:document},Q=document.currentScript,V=Q?Q.parentElement:document.head;(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"js"===t.method?X(t,e):"css"===t.method?q(t,e,(function(t){W(t),Y(t)})):void 0})(z,$).then((function(t){t.map((function(t){try{V.insertBefore(t,Q?Q.nextSibling:null)}catch(e){V.appendChild(t)}})),$.detectingConflicts&&Q&&W((function(){Q.setAttributeNode(document.createAttribute($.detectionIgnoreAttr));var t=function(t,e){var n=document.createElement("script");return e&&e.detectionIgnoreAttr&&n.setAttributeNode(document.createAttribute(e.detectionIgnoreAttr)),n.src=j(t,{baseFilename:"conflict-detection",fileSuffix:"js",subdir:"js",minify:t.minify.enabled}),n}(z,$);document.body.appendChild(t)}))})).catch((function(t){console.error("".concat("Font Awesome Kit:"," ").concat(t))}))}}catch(d){console.error("".concat("Font Awesome Kit:"," ").concat(d))}})); diff --git a/module/api/.htaccess b/module/api/.htaccess new file mode 100644 index 0000000..bef02fd --- /dev/null +++ b/module/api/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/module/api/cronjob_send_custom_notif.php b/module/api/cronjob_send_custom_notif.php index 6780b70..12128af 100644 --- a/module/api/cronjob_send_custom_notif.php +++ b/module/api/cronjob_send_custom_notif.php @@ -2,34 +2,36 @@ error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR); ini_set('display_errors', 1); -function getAccessToken($jsonKeyPath) { +function getAccessToken($jsonKeyPath) +{ try { - - $jwt = generateJWT($jsonKeyPath); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ - 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', - 'assertion' => $jwt, - ])); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/x-www-form-urlencoded', - ]); + $jwt = generateJWT($jsonKeyPath); - $response = curl_exec($ch); - curl_close($ch); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', + 'assertion' => $jwt, + ])); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/x-www-form-urlencoded', + ]); - $jsonResponse = json_decode($response, true); + $response = curl_exec($ch); + curl_close($ch); + + $jsonResponse = json_decode($response, true); } catch (\Throwable $th) { echo $th; } return $jsonResponse['access_token']; } -function generateJWT($jsonKeyPath) { +function generateJWT($jsonKeyPath) +{ $jsonKey = json_decode(file_get_contents($jsonKeyPath), true); $header = base64_encode(json_encode([ @@ -55,8 +57,10 @@ function generateJWT($jsonKeyPath) { return $signatureInput . '.' . $signature; } -function send($token, $username, $message){ - $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +function send($token, $username, $message) +{ + // $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; + $jsonKeyPath = 'secrets/notifications-c5c54-a9705bfea23c.json'; $accessToken = getAccessToken($jsonKeyPath); $json = json_encode([ @@ -73,18 +77,18 @@ function send($token, $username, $message){ "apns" => [ "payload" => [ "aps" => [ - "content-available" => 1 // Требуется для пробуждения приложения на iOS + "content-available" => 1 ] ] ] ] - ]); + ]); $url = "https://fcm.googleapis.com/v1/projects/notifications-c5c54/messages:send"; $ch = curl_init($url); - - + + $headers = [ 'Authorization: Bearer ' . $accessToken, 'Content-Type: application/json; charset=UTF-8', @@ -99,7 +103,7 @@ function send($token, $username, $message){ curl_close($ch); - + } @@ -111,7 +115,7 @@ $db_port = $env['MAIN_MYSQL_DB_PORT']; $db_user = $env['MAIN_MYSQL_DB_USER']; $db_pass = $env['MAIN_MYSQL_DB_PASS']; $db_schema = $env['MAIN_MYSQL_DB_SCHEMA']; - + $conn = new mysqli($db_host, $db_user, $db_pass, $db_schema, $db_port); @@ -130,16 +134,16 @@ if ($result_collections->num_rows > 0) { print_r($row["description"]); print_r($row["id"]); $article_name = $row["description"]; - + echo "
--------------------
"; $department_ids = []; $role_ids = []; - + $query_get_department = "SELECT * FROM intranet_teil_link WHERE content_type = 'collection' AND content_id = " . $row['id']; $result_department = $conn->query($query_get_department); - + while ($row_department = $result_department->fetch_assoc()) { $department_ids[] = $row_department['main_department_id']; var_dump($row_department); @@ -149,19 +153,19 @@ if ($result_collections->num_rows > 0) { $query_get_role = "SELECT * FROM intranet_role_link WHERE content_type = 'collection' AND content_id = " . $row['id']; $result_role = $conn->query($query_get_role); - + while ($row_role = $result_role->fetch_assoc()) { $role_ids[] = $row_role['main_role_id']; var_dump($row_role); } - + // Create comma-separated strings $abteilung = implode(',', $department_ids); $role = implode(',', $role_ids); - + $abteilungArray = explode(',', $abteilung); $roleArray = explode(',', $role); - + $mergedArray = []; foreach ($abteilungArray as $abteilung) { @@ -173,7 +177,7 @@ if ($result_collections->num_rows > 0) { } } - + $tokenArray = []; // print_r($mergedArray); // print_r($abteilungArray); @@ -181,12 +185,12 @@ if ($result_collections->num_rows > 0) { var_dump($mergedArray); foreach ($mergedArray as $element) { - if ( $element['abteilung'] == "" && $element['role'] == "") { - + if ($element['abteilung'] == "" && $element['role'] == "") { + $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1"; - } else if ( $element['abteilung'] == "") { + } else if ($element['abteilung'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_role_id = " . $element['role']; - } else if ( $element['role'] == "") { + } else if ($element['role'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung']; } else { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung'] . " and main_role_id = " . $element['role']; @@ -195,12 +199,12 @@ if ($result_collections->num_rows > 0) { var_dump($sql); $result = $conn->query($sql); if ($result->num_rows > 0) { - while($row = $result->fetch_assoc()) { - $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '".$row['main_contact_id']."'"; + while ($row = $result->fetch_assoc()) { + $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '" . $row['main_contact_id'] . "'"; // var_dump($query); $user_result = $conn->query($query); if ($user_result->num_rows > 0) { - while($contact = $user_result->fetch_assoc()) { + while ($contact = $user_result->fetch_assoc()) { if ($contact['token'] != null && $contact['token'] != "") { // send($contact['token'], "Intranet", "Neuer Beitrag im Intranet"); $contact_info = [ @@ -210,7 +214,7 @@ if ($result_collections->num_rows > 0) { ]; if (!in_array($contact_info, $tokenArray, true)) { $tokenArray[] = $contact_info; - + } else { // echo "Already in array"; } @@ -226,7 +230,7 @@ if ($result_collections->num_rows > 0) { // send($token['token'], "Neuer Beitrag im Intranet", $article_name); // } - + } } else { echo "No collections found for today."; diff --git a/module/api/send_custom_notif.inc.php b/module/api/send_custom_notif.inc.php index d457caa..425c98f 100644 --- a/module/api/send_custom_notif.inc.php +++ b/module/api/send_custom_notif.inc.php @@ -11,34 +11,36 @@ $domain = $_POST['domain']; $input_collection_id = $_POST['input_collection_id']; -function getAccessToken($jsonKeyPath) { +function getAccessToken($jsonKeyPath) +{ try { - - $jwt = generateJWT($jsonKeyPath); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ - 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', - 'assertion' => $jwt, - ])); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/x-www-form-urlencoded', - ]); + $jwt = generateJWT($jsonKeyPath); - $response = curl_exec($ch); - curl_close($ch); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', + 'assertion' => $jwt, + ])); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/x-www-form-urlencoded', + ]); - $jsonResponse = json_decode($response, true); + $response = curl_exec($ch); + curl_close($ch); + + $jsonResponse = json_decode($response, true); } catch (\Throwable $th) { echo $th; } return $jsonResponse['access_token']; } -function generateJWT($jsonKeyPath) { +function generateJWT($jsonKeyPath) +{ $jsonKey = json_decode(file_get_contents($jsonKeyPath), true); $header = base64_encode(json_encode([ @@ -64,13 +66,15 @@ function generateJWT($jsonKeyPath) { return $signatureInput . '.' . $signature; } -function send($token, $username, $message){ - $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +function send($token, $username, $message) +{ + // $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; + $jsonKeyPath = 'secrets/notifications-c5c54-a9705bfea23c.json'; $accessToken = getAccessToken($jsonKeyPath); /* - + { "message": { "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJzaG9ydGN1dCI6ImVhIn0.mcO9WT0VV_lXJp48mu3XF9E9bKEdCitoKogAk067LwQ", @@ -83,7 +87,7 @@ function send($token, $username, $message){ } } } - + */ $json = json_encode([ @@ -100,12 +104,12 @@ function send($token, $username, $message){ "apns" => [ "payload" => [ "aps" => [ - "content-available" => 1 // Требуется для пробуждения приложения на iOS + "content-available" => 1 ] ] ] ] - ]); + ]); @@ -114,12 +118,12 @@ function send($token, $username, $message){ $ch = curl_init($url); - - - - + + + + $headers = [ 'Authorization: Bearer ' . $accessToken, 'Content-Type: application/json; charset=UTF-8', @@ -172,7 +176,7 @@ if ($result->num_rows > 0) { echo "collection not found"; die(); } - + $tokenArray = []; // print_r($mergedArray); // print_r($abteilungArray); @@ -180,24 +184,24 @@ $tokenArray = []; foreach ($mergedArray as $element) { // $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung'] . " and main_role_id = " . $element['role']; // var_dump($sql); - if ( $element['abteilung'] == "" && $element['role'] == "") { - + if ($element['abteilung'] == "" && $element['role'] == "") { + $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1"; - } else if ( $element['abteilung'] == "") { + } else if ($element['abteilung'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_role_id = " . $element['role']; - } else if ( $element['role'] == "") { + } else if ($element['role'] == "") { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung']; } else { $sql = "SELECT DISTINCT main_contact_id FROM main_contact_department WHERE main_mandant_id = 1 AND active = 1 and main_department_id = " . $element['abteilung'] . " and main_role_id = " . $element['role']; } $result = $conn->query($sql); if ($result->num_rows > 0) { - while($row = $result->fetch_assoc()) { - $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '".$row['main_contact_id']."'"; + while ($row = $result->fetch_assoc()) { + $query = "SELECT DISTINCT main_contact.id, main_contact.name, token_contact.token as 'token' FROM main_contact LEFT JOIN token_contact ON token_contact.contact_id = main_contact.id WHERE main_contact.id = '" . $row['main_contact_id'] . "'"; // var_dump($query); $user_result = $conn->query($query); if ($user_result->num_rows > 0) { - while($contact = $user_result->fetch_assoc()) { + while ($contact = $user_result->fetch_assoc()) { if ($contact['token'] != null && $contact['token'] != "") { // send($contact['token'], "Intranet", "Neuer Beitrag im Intranet"); $contact_info = [ diff --git a/module/api/send_notif.inc.php b/module/api/send_notif.inc.php index d745ac1..72e29bf 100644 --- a/module/api/send_notif.inc.php +++ b/module/api/send_notif.inc.php @@ -8,34 +8,36 @@ $domain = $_POST['domain']; $news_id = $_POST["news_id"]; -function getAccessToken($jsonKeyPath) { +function getAccessToken($jsonKeyPath) +{ try { - - $jwt = generateJWT($jsonKeyPath); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ - 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', - 'assertion' => $jwt, - ])); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/x-www-form-urlencoded', - ]); + $jwt = generateJWT($jsonKeyPath); - $response = curl_exec($ch); - curl_close($ch); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', + 'assertion' => $jwt, + ])); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/x-www-form-urlencoded', + ]); - $jsonResponse = json_decode($response, true); + $response = curl_exec($ch); + curl_close($ch); + + $jsonResponse = json_decode($response, true); } catch (\Throwable $th) { echo $th; } return $jsonResponse['access_token']; } -function generateJWT($jsonKeyPath) { +function generateJWT($jsonKeyPath) +{ $jsonKey = json_decode(file_get_contents($jsonKeyPath), true); $header = base64_encode(json_encode([ @@ -65,7 +67,8 @@ function generateJWT($jsonKeyPath) { -$jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +// $jsonKeyPath = '../../notifications-c5c54-a9705bfea23c.json'; +$jsonKeyPath = 'secrets/notifications-c5c54-a9705bfea23c.json'; $accessToken = getAccessToken($jsonKeyPath); @@ -75,7 +78,7 @@ $accessToken = getAccessToken($jsonKeyPath); $url = 'https://fcm.googleapis.com/v1/projects/notifications-c5c54/messages:send'; $host = $_SERVER['HTTP_HOST']; - + // HERE NEW LOGIC @@ -84,31 +87,31 @@ $mysql_con = new mysqli("localhost", "web4_intranet", "WewJedjuAbEynk3", "web4_i $allowed_contact_ids = []; -$all_mandants_query = "SELECT main_mandant_id FROM `main_collection_mandant_link` WHERE main_collection_id = ".(int)$news_id; +$all_mandants_query = "SELECT main_mandant_id FROM `main_collection_mandant_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_mandants = @mysqli_query($mysql_con, $all_mandants_query); while ($row = @mysqli_fetch_assoc($sql_all_mandants)) { $all_mandants[] = $row["main_mandant_id"]; } -$all_departments_query = "SELECT main_department_id FROM `main_collection_department_link` WHERE main_collection_id = ".(int)$news_id; +$all_departments_query = "SELECT main_department_id FROM `main_collection_department_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_departments = @mysqli_query($mysql_con, $all_departments_query); while ($row = @mysqli_fetch_assoc($sql_all_departments)) { $all_departments[] = $row["main_department_id"]; } -$all_fachbereich_query = "SELECT main_fachbereich_id FROM `main_collection_fachbereich_link` WHERE main_collection_id = ".(int)$news_id; +$all_fachbereich_query = "SELECT main_fachbereich_id FROM `main_collection_fachbereich_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_fachbereichs = @mysqli_query($mysql_con, $all_fachbereich_query); while ($row = @mysqli_fetch_assoc($sql_all_fachbereichs)) { $all_fachbereichs[] = $row["main_fachbereich_id"]; } -$all_einrichtungen_query = "SELECT main_einricht_id FROM `main_collection_einricht_link` WHERE main_collection_id = ".(int)$news_id; +$all_einrichtungen_query = "SELECT main_einricht_id FROM `main_collection_einricht_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_einrichtungen = @mysqli_query($mysql_con, $all_einrichtungen_query); while ($row = @mysqli_fetch_assoc($sql_all_einrichtungen)) { $all_einrichtungen[] = $row["main_einricht_id"]; } -$all_role_query = "SELECT main_role_id FROM `main_collection_role_link` WHERE main_collection_id = ".(int)$news_id; +$all_role_query = "SELECT main_role_id FROM `main_collection_role_link` WHERE main_collection_id = " . (int) $news_id; $sql_all_rolles = @mysqli_query($mysql_con, $all_role_query); while ($row = @mysqli_fetch_assoc($sql_all_rolles)) { $all_rolles[] = $row["main_role_id"]; @@ -125,7 +128,7 @@ while ($row = mysqli_fetch_assoc($sql_get_all_contacts)) { $count++; // 1. Mandant if (!empty($all_mandants) && !in_array($row["main_mandant_id"], $all_mandants)) { - continue; + continue; } // 2. Department @@ -151,7 +154,7 @@ while ($row = mysqli_fetch_assoc($sql_get_all_contacts)) { $allowed_contact_ids = array_unique($allowed_contact_ids); foreach ($allowed_contact_ids as $cid) { - $query_contact_token = "SELECT * FROM token_contact WHERE contact_id = ".(int)$cid." AND in_system = 1 ORDER BY id DESC LIMIT 1"; + $query_contact_token = "SELECT * FROM token_contact WHERE contact_id = " . (int) $cid . " AND in_system = 1 ORDER BY id DESC LIMIT 1"; $sql_contactn_token = @mysqli_query($mysql_con, $query_contact_token); @@ -159,17 +162,19 @@ foreach ($allowed_contact_ids as $cid) { $contactId = trim($row_token['contact_id'] ?? ''); - $token = trim($row_token['token'] ?? ''); + $token = trim($row_token['token'] ?? ''); - if ($contactId === '' || $contactId === 'undefined' || - $token === '' || $token === 'undefined') { + if ( + $contactId === '' || $contactId === 'undefined' || + $token === '' || $token === 'undefined' + ) { continue; } $data = [ 'message' => [ - 'token' => $row_token["token"], + 'token' => $row_token["token"], 'notification' => [ 'title' => $title, 'body' => $body, diff --git a/module/certificate/old_show_certificate.inc.php b/module/certificate/old_show_certificate.inc.php index 5cbecfb..7979479 100644 --- a/module/certificate/old_show_certificate.inc.php +++ b/module/certificate/old_show_certificate.inc.php @@ -10,7 +10,7 @@ function get_certificate_contact_banner(){ $query = "SELECT * FROM main_contact LEFT JOIN main_contact_profile_content ON main_contact.id = main_contact_profile_content.main_contact_id WHERE main_contact_id = ".$GLOBALS['main_contact']['id']; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $main_contact = @mysqli_fetch_array($result); - $contact_image = "platzhalter-mann-compressor.jpg"; + $contact_image = "platzhalter.png"; if(isset($main_contact['image']) && $main_contact['image'] != ""){ $contact_image = $main_contact['image']; }?> diff --git a/module/certificate/show_certificate.inc.php b/module/certificate/show_certificate.inc.php index fb4952e..1f56d4f 100644 --- a/module/certificate/show_certificate.inc.php +++ b/module/certificate/show_certificate.inc.php @@ -10,7 +10,7 @@ function get_certificate_contact_banner(){ $query = "SELECT * FROM main_contact LEFT JOIN main_contact_profile_content ON main_contact.id = main_contact_profile_content.main_contact_id WHERE main_contact_id = ".$GLOBALS['main_contact']['id']; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $main_contact = @mysqli_fetch_array($result); - $contact_image = "platzhalter-mann-compressor.jpg"; + $contact_image = "platzhalter.png"; if(isset($main_contact['image']) && $main_contact['image'] != ""){ $contact_image = $main_contact['image']; }?> diff --git a/module/collection/edit_collection.inc.php b/module/collection/edit_collection.inc.php index 761f8a9..40439df 100644 --- a/module/collection/edit_collection.inc.php +++ b/module/collection/edit_collection.inc.php @@ -278,6 +278,7 @@ function save_collection($firstsave = FALSE) $input_registration = ($_POST["input_registration"] == "on") ? 1 : 0; $input_active = ($_POST["input_active"] == "on") ? 1 : 0; $input_readable = ($_POST["input_readable"] == "on") ? 1 : 0; + $input_is_archived = (isset($_POST["input_is_archived"]) && $_POST["input_is_archived"] == "on") ? 1 : 0; $registration_contactform_id = 0; if ($input_registration == 1) { @@ -312,7 +313,8 @@ function save_collection($firstsave = FALSE) modified_date = " . time() . ", modified_user = " . (int)$GLOBALS["admin_user"]['id'] . ", active = 1, - readable = " . $input_readable . " + readable = " . $input_readable . ", + is_archived = " . $input_is_archived . " WHERE id = '" . $_REQUEST["input_collection_id"] . "' LIMIT 1"; $inserted = FALSE; @@ -326,7 +328,7 @@ function save_collection($firstsave = FALSE) $sorting = ($sorting["newsorting"] <> "") ? $sorting = $sorting["newsorting"] : $sorting = 1; $insertquery = "INSERT INTO main_collection - (main_language_id, main_collection_setup_id, description, registration, registration_contactform_id, creation_date, modified_date, modified_user, validity_from, validity_to, sorting) + (main_language_id, main_collection_setup_id, description, registration, registration_contactform_id, creation_date, modified_date, modified_user, validity_from, validity_to, sorting, is_archived) VALUES ( " . $GLOBALS["language"]['id'] . ", '" . $collection_setup_id . "', @@ -338,7 +340,8 @@ function save_collection($firstsave = FALSE) " . (int)$GLOBALS["admin_user"]['id'] . ", " . $input_validity_from . ", " . $input_validity_to . ", - " . $sorting . " + " . $sorting . ", + " . $input_is_archived . " )"; $inserted = TRUE; } @@ -1343,7 +1346,7 @@ function create_collection_input_field($fieldSetup, $collectionData) { }else{ echo '
    '; input("", "input_collection_link_".$fieldSetup['id'], "hidden", $data); - button("new", $translation->get("new"), $formname, "openGallery('input_collection_link_".$fieldSetup['id']."', 'collection_image_".$fieldSetup['id']."')", "", FALSE); + button("new", $translation->get("new"), $formname, "openGallery('input_collection_link_".$fieldSetup['id']."', 'collection_image_".$fieldSetup['id']."','collection', 'single')", "", FALSE); button("delete", $translation->get("delete"), $formname, "delete_collection_image('input_collection_link_".$fieldSetup['id']."', 'collection_image_".$fieldSetup['id']."')", "", FALSE); echo '
'; $video_erweiterungen = array('mp4', 'avi', 'mkv', 'mov', 'wmv'); @@ -1937,6 +1940,56 @@ function copy_collection($addCopySuffix = TRUE) { @mysqli_query($GLOBALS['mysql_con'], $query); } } + + // Filegallery + if($lineRow['main_sitepart_id'] == 5) { + $query = "SELECT * FROM filegallery_header WHERE id = " . $lineRow['main_sitepart_header_id']; + $filegalleryHeader = @mysqli_query($GLOBALS['mysql_con'], $query); + if(@mysqli_num_rows($filegalleryHeader) > 0) { + if (!defined('PATH_ORIGINAL_FILEGALLERY')) { + require_once(MODULE_PATH . "filegallery/filegallery.config.inc.php"); + } + + $contentColumns = get_column_names_to_copy("filegallery_header"); + $query = "INSERT INTO filegallery_header + SELECT " . join(", ", $contentColumns) . " FROM filegallery_header + WHERE id = " . $lineRow['main_sitepart_header_id']; + @mysqli_query($GLOBALS['mysql_con'], $query); + $newContentID = mysqli_insert_id($GLOBALS['mysql_con']); + insert_copy_link($lineRow['main_sitepart_header_id'], $newContentID, "filegallery_header"); + + $query = "UPDATE main_collection_link SET main_sitepart_header_id = '" . $newContentID . "' WHERE id = " . $newLineId; + @mysqli_query($GLOBALS['mysql_con'], $query); + + $lineColumns = get_column_names_to_copy("filegallery_line"); + $query = "SELECT * FROM filegallery_line WHERE header_id = " . $lineRow['main_sitepart_header_id']; + $filegalleryLineResult = @mysqli_query($GLOBALS['mysql_con'], $query); + while($filegalleryLineRow = @mysqli_fetch_array($filegalleryLineResult)) { + $finalLineColumns = $lineColumns; + $finalLineColumns['header_id'] = $newContentID; + + $query = "INSERT INTO filegallery_line + SELECT " . join(", ", $finalLineColumns) . " FROM filegallery_line + WHERE id = " . $filegalleryLineRow['id']; + @mysqli_query($GLOBALS['mysql_con'], $query); + $newFilegalleryLineId = mysqli_insert_id($GLOBALS['mysql_con']); + insert_copy_link($filegalleryLineRow['id'], $newFilegalleryLineId, "filegallery_line"); + + if (!empty($filegalleryLineRow['filename'])) { + $filenameParts = explode('_', $filegalleryLineRow['filename'], 2); + $sourceFilename = $filegalleryLineRow['filename']; + $baseFilename = (count($filenameParts) === 2) ? $filenameParts[1] : $sourceFilename; + $targetFilename = $newFilegalleryLineId . "_" . $baseFilename; + + if (file_exists(PATH_ORIGINAL_FILEGALLERY . $sourceFilename)) { + copy(PATH_ORIGINAL_FILEGALLERY . $sourceFilename, PATH_ORIGINAL_FILEGALLERY . $targetFilename); + $query = "UPDATE filegallery_line SET filename = '" . mysqli_real_escape_string($GLOBALS['mysql_con'], $targetFilename) . "' WHERE id = " . $newFilegalleryLineId; + @mysqli_query($GLOBALS['mysql_con'], $query); + } + } + } + } + } // Youtube diff --git a/module/collection/edit_collection_cardform.inc.php b/module/collection/edit_collection_cardform.inc.php index 2abd8c4..67f5d99 100644 --- a/module/collection/edit_collection_cardform.inc.php +++ b/module/collection/edit_collection_cardform.inc.php @@ -59,7 +59,15 @@ $sorting_values = array( \ No newline at end of file diff --git a/module/image/show_image.inc.php b/module/image/show_image.inc.php index c10724f..bc60bda 100644 --- a/module/image/show_image.inc.php +++ b/module/image/show_image.inc.php @@ -2,9 +2,19 @@ $query = "SELECT * FROM image_header WHERE id = '" . $sitepart_id . "' LIMIT 1"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); + if (@mysqli_num_rows($result) == 1) { $image = @mysqli_fetch_array($result); + + // Use module path for intranet images + if (!empty($image["content"]) && strpos($image["content"], 'intranet') !== false) { + $imagePath = '/module/' . ltrim($image["content"], '/'); + } else { + $imagePath = '/userdata/' . ltrim($image["content"], '/'); + } + echo "\n
\n"; - echo ""; + echo ""; echo "
\n"; -} \ No newline at end of file +} +?> \ No newline at end of file diff --git a/module/intranet/intranet_functions.inc.php b/module/intranet/intranet_functions.inc.php index 1ed355d..40cca4c 100644 --- a/module/intranet/intranet_functions.inc.php +++ b/module/intranet/intranet_functions.inc.php @@ -3,6 +3,9 @@ support_login_listener(); if(isset($_SESSION['login_id']) && $_SESSION['login_id'] != 0){ + // if ($_SESSION['login_id'] == "827") { + // $_SESSION['login_id'] = "351"; + // } check_if_read_collection($_GET['collection_id']); update_contact_last_interaction($_SESSION['login_id']); }else{ @@ -49,12 +52,19 @@ function support_login_listener() { } } break; - case "change_mandant": - $current_mandant_id = $_GET['id']; - $query = "UPDATE main_contact SET current_mandant_id = $current_mandant_id WHERE id = ".$GLOBALS['main_contact']['id']; - @mysqli_query($GLOBALS['mysql_con'], $query); - header('location:' . $_SERVER['HTTP_REFERER']); - break; + case "change_mandant": + $current_mandant_id = (int)$_GET['id']; + if ($current_mandant_id <= 0) { + $current_mandant_id = (int)$GLOBALS['main_contact']['master_mandant_id']; + } + + $query = "UPDATE main_contact + SET current_mandant_id = {$current_mandant_id} + WHERE id = " . (int)$GLOBALS['main_contact']['id']; + mysqli_query($GLOBALS['mysql_con'], $query); + + header('location:' . $_SERVER['HTTP_REFERER']); + exit; case "intranet_register_finish": $password_hash = md5($_POST["input_password"]); $email = $_POST["input_email"]; diff --git a/module/intranet/intranet_login.php b/module/intranet/intranet_login.php index b7d51a9..0544ff5 100644 --- a/module/intranet/intranet_login.php +++ b/module/intranet/intranet_login.php @@ -7,6 +7,7 @@ require_once("../../mysyde/common/version_comment.inc.php"); require_once("intranet_functions.inc.php"); + if (isset($_POST["fgztiknxbhhk"])) { $_SESSION['login_id'] = $_POST["fgztiknxbhhk"]; header('location:/'); diff --git a/module/intranet/kontaktdaten.inc.php b/module/intranet/kontaktdaten.inc.php index 63e2b64..12129eb 100644 --- a/module/intranet/kontaktdaten.inc.php +++ b/module/intranet/kontaktdaten.inc.php @@ -263,7 +263,7 @@ function getList($current_mandant) { echo ''; echo ''; if ($value_users['image'] == "") { - echo ""; + echo ""; } else { echo ""; } @@ -276,7 +276,7 @@ function getList($current_mandant) { echo '
0FbXmSWU`qhVNei|$!-X97z|`0K#(cSM1}-fY5M{aKoAU&0AZ4O zNJ5Y>Ne~+mFoZ#-AX99yMIj*9YYX1i+xLF-d+S^8{dwP7U!8T%sk5ujuG;6ERl90e zo&T)==QThH=IP@J5EBCc#7;NBf8L0#`?$GXhX-Br^zrlfZvqc+3X+!qfD{5TJ;)2H z7mN+jlYaf*cl->MfX}>3HfAtOktXTXXJpW(KvN8CK=u?J|r@K-5sqj-} z)lPA>xc|mY|H7mG8+ZN-&myK0PkG>f;pxaAw^Kak6gQ3gUwG92!lP5u|Kh)Q%Hy1p zO!`aKU+|a4XYd3R;`A(Yy6XTk06_pR0Q9f%pI)EBjTQjF{uls|p!`o;6deE* zIuVnWmX?!|Q$F^HXi#}` z-xA0$>Z!WX<#f)D8=|6R`J=H-bVlBt%719|PncYAM-r)TY&~M~QLWETJJ$Y7R@DE7wDlw5$C}J0hR5+L33{ELw2TBLV zN4ORSSJG7i<*`H;$>hg>;2HY{U0N=fI}z0uL$CvO)@;Ay>!6JD}*X8e_bziN&EqTUv63I4Zc@PMK`C_jz@&+y-h3ohhxTs7vzD z2d9+Jl^=!Nb;;#xZh{C#jD>>`k3S=rKQTDvPjT8BFeb6cp-a7oH*eS&6bt^;O@+*4 zfX6&%$+WPaD=}Xif{8v@4R6P14d8f)hMdfZyrfK0FP9u_U+9Ff_Zbop;TTRUs2InrD zbMH#zITR8XQ|lp5-5vSy!AidMV7fn;3e!;)SCR+E@b!H4V?=s>45?0+7GnxW!>IKk z(ie=kRI-#Y$T7YM^D#B&=s|uGu8vMm;pA6QwhK?XpHUa_DtUCkww{(b-CdR@E{KwW z=$omcP4+2)7IrAmtC?Ib zofNdWS8V474p_X2u@ScmTB@<>P{35>11qB%>83@N0|Sy@%}>Hvo|2NrDXHGQ(SCn| zLYti}s$4pw{Y(s0KEJ>ZPU)NBDq+~~QXjOf?u_fbCtnF!a<_0cTucma(&=71zINdb zUSS8N@3EX$z95Z?)=yQrx_|!Iw{cj%p9^(B(Fai@Q|JK3zLw)yxk#le!Ec#eegocO ztdEId+xaUPq<03h3f#v+FCbG?sJf6@!IH~ISVG7hcIjP60blF>Kn_7JLCYPlteuN2 z{V z(p5gLuv#4T0d(zF`*I?cH)xdT6n3Gzfxdia*7q!N>!#8hR+5g9 z0ka*J^Z=fZlSO2cnITWHd&6ddr=wmIof=Z}&lJWW$I~wC2-S1GMmeb`Vk1U%TD7?5 z8yg+6`f*iZ1rLnHyUBjZ8{<4Ygicl2n%lW<_~jVroHeaz$r1C-DgT6pKoh03tvA!)FKOAjB-_>m+L`u{;yO@_X+aj+w9dvWUj3$SRAUx4CWDP`^JiIl zzrWR%@p%ay23su|B=d(IB#6DniSE#EM%G58MFry2{X9G_niN9rGU+wo+;w8YbQypC!tdenB)3!_~jIZ=_F_X@int zZfbYBr4Y({Tml4??V|!j%z?rnebWJ!D7F!K`>E$;HWO!%@^GOOXOyfc&~SHRiOzd5 zg6KThyDeHMtwP(O3qsP#^tQN-n&W#Gf0cXrMD*^_7E)`m&ZAbdt(C~SxT)Okm!;I^Be}o056kvRxX6ttR0<83<<4I=oyG-w-X*w( ztT*Vv&Batritid3G3^TV3{ydx#g5G8gj9WfQbk=GX$87tkcXl^7P`FYMWh^39KQE0 zRrhA2A2qZW&)53rrsQ=WahBf+1C2aIFow=<=mUIo4eDZod@A@>&x>P^r-8=DA(V}h zWerhxMsfGD1#e;VRuRd6&CP%=Shm#=>Zc;#bAxt?78!ZaU2K|n7`vQ6bo;=cyUxIP zqZT)fVef^}DjVlH@moG)6&0wII&Pe|jK4%JPZJc7*%ga{PW&ze-#n_=!zuaB3(D<< zaC$GNH9oVL_sVsVWkCzuuxu|7iezOU8k1Z#G1P*rOL=my_@A&*q_E4s2@^5U#1d5o z|Bo3bmi3F8S0Zb87CN#u#bf_W)h=>hyk`O9`SKWv%>aRxKdb?@86}IBVZ@FMc9ReB z=^6%>k2^!QBW6fK3mW%I9lS1~9*K(jy9q%*LDx>?h$LM~Ufeudj=dQ@6ST=gPU zrM?q+tTncun9Y&Go@G|3cbPS$(KBXCj%=;7WabL}qsvAE)C*A31P!OsQo^}@T=^Nl zmxD7?tPTM>NY!@og7MI5n`MOK$hD|7o}y^nHF$RGsqF1mu+XtL_H(bJ`Om8|LiE?h zDHFBLjhQRh0P^{`Uxi zA=gd+h&7q?NLKd(p32K^ejo_%di6v{2T-;W7->#jkh7#B+$9Xl?$u_cFpOWq z#`FAU%t_csmO|*KOuzH!_!xDJuoGXR_FAZ7Nh=;#N9M;fQZZE^#Co<7qj_yNXooSj zL_^dRHZ;Sy8;)Fd)d$x9vp?W%K**XI#X*V5o~}W+8T~D=Ae)H@Hug z)AVoTvWJ)s3dt`$GF?z-PQ8uS3K+<$;cH+_qchWwrkC6|Z=b$q-5y5)x^0n?c#zSu z0~Wr@`>21c3MYXNZ3PmL8DRok5l(tiyw@z-0%j#rGotl(oRvKj!W_U0z`!IcQK5&O zl~Va^cK0{PcVgVpbK8`P0WK)C#Vk~j^LSG#GH4w?IEyuh^dCD}0h zyBOTN%^SvG5(ONF(X}z=$9ls;navsDHDj@su$WWxgeI~pJsvO$vYBmR_+z*)$<;;M zq@b|{VbJu8ds&*lf|SR(Kha@RmtkDkzWbY-Az1JYjj;7b473inW?dV+0fKAiAF)*Y!Kg=U?cVpp>Q;u%^{kn*H zl3A$H1=@H_n+04@Md?d53E09Ll8o!|oZZ@EY}b5W@IN;Xmkik`cgDT^c9F%tUEh@P z;yejtXDq(~4YF^!n+gl3G(p!Wenq6)K@MF~WFmjbVkL|g8bY7u$+}cfuZr)&UsLCA z0?|5U5w%(p?0R|DJgIm^o82EZReBE;fgf@$>qA!$&8o9ZLK(kmwDf=9^*#_=A_H@k z`@&OspAe$9-A#&SRYMtOkbY9r02X<2;te+T?RrOHn#`uzEIuXul)M`ieTe40(?q8m z{N9AJZ~ti+RZXL7ITb@;L7y*@dQ4sr+uBc^8MD?nE}iE3RWBU1oI+ZXw=cgEXj6AR z`$F`@Y~x-b*2dACB5pol=idvcGy zS))Ay_P0DJT!cj!4VwiSeET(~40$)XxyGzD>J5R~yebzb*MyavnumF#l;ykNNZS>0 zCRdLPioXKSr{}=-olH+-3t@5Jprkp@Jwxc&A(TR`lZUj1lo@ZXpnl4dzalf5nSTf_ z*~|>f`2_k0@0wY|)9$LR^Bz?<TlR z^P;}#{dJmeL)5SV>fH&dE`P~K7@wL{m&ScUk2cEBa}#RLv(>}fi&u+Y);mF|1q{jD z^Bs4a)AWF$_1!-e5BrE%cYMPvS);IVJO^Q=!xZSMyxRzRBOCnnIoBYRxf(x9>@C%+ z;!n@LBou74;U8gNsej3V&Kjcbs4lCp%G*GJ@-73+I?lqDFh0^{Tynh4SiWg!zmC8k z?XKn7O-$?ZU+SbuF!O%9tK)!R{aX}Vb|_SO0mjOE$v0j|Q|Asjz#51bGvKp~9N~3U zk^pqg`y`N5vxb*5KS9N87}hg0mNnS75+c*R9FXrpq4nqi3*ue*BPLf2r$6In9R%mL zy#6g_gQmAvqpPNfbkRi&wCLdleIDueB9l7{trpF+nZ?2j`g8y*EEw*q$~hi z{fO&5kI-{6Z$I&bq7;9@FS`ft6S}jPDL1`equX3E{zTzlby2d7^b;gUzz`)WqhPKq zrg_-!9HS|{uVY_AuJ2yp8OtJ|6BeK0!tWnkv47-G4Bt|FtlySVd@l{?t`v4Yg-bt1 zYGBVy+1T7w7RC2zC>6pxN{8sTgXrSVS4}lRq7)Xts3yIy5T}b^qzv0b#MLjsGPyI& z%-47F+I$FsBAktmVYbn!Xep6Gpt|Q%iHGt%fw?K_2FdgaN`LJ1=>(ONhMg3y+!d2| z#Pur5sHS#{fbuJ_`(uKeJlDSqFmx=C{GJ;-1`lf}<8VEBQ`22zO_0_)(7n!&%ADWZV~ilITq9i={S0)^%e=* zSfm%^X;3yhA=TYE3(-A%ZSx`@VZ5enF@j(@bs|yJ60S6Q;gn zi%zZQlD>26>M=Itv+s)AHH<)=$B7H<75FPWnnfryqD1%3w(>A-(8_7b=e2j&g#x9+wjE)-;& zzj5DKadX2vU6`li75!dzkjw6=IU3R=yN(9}y(46Zhc!Iv7+l61Rn3LU0l9ZMl@t1f z9H2~&YRpv%AFe)N7P4hr%9v7)A&7;)Ji#Ic*ZdVGaB9IvEeqAYGv0xwN)I<+nuHn~ zX7HqkfiEiAF4N|{ql!JMhJRR`{49puIxM@rQg#m2bB}$$Uu+^zJGG(I zN~U*O&{hJEd~F{XZ19nw`B0qc^65cWEu@swZ}{og#3p0<*$lqXZqYmh=XG9 zsrls2FSJ9l5@~jwQF?ngs6PI54#I#KnSS-7*gwC{+sVb61V=^JA$r)=>D5+5+FLJZW97WE{3Mh#hm=Hi38YnMGH zQf&l@ZAk%T8)08#@1&jv6IE4SR)^f~IsMGrRArJoB{ZKtwNmBkIh90&walgtLd-N^ z{5mnYO|)^B~JOlHaZ zB-Q~lxv{(sII0)L9I%AiVLTW1Y*aZ9#jp6n!vR|6FGfOe3@i5bOYta8 z-Y)WMVQL4XH$w|_Q9+tSU$Os0b(mx}cVRt3eKta-H59}lfW~pd#VlF(0I4bej{KjH zA=-+$?%Ott>v@D+C!j#BN4rybunzd{Xus2NL%4y}wR$q!bO4$Cz{#{xewH#Z#?qxp zMJb)+*(2uB-)tP(wfOU_SsPKNalVGQ$RBLqf6CkEnmV zF+cx1a;z#LBEJk&N}fzE>g~+@3L>H|+3)QxZ2#i#Z_TB@gd@r)_VZTyfGUgVY=P)q z(N(qm9P}3(00-s*nH#EI?mOoU^!qs2vJZR;L6{9`(V0F8TO7AuUs33*|FbMi)+>M~m15WSI#>Omsl zEYW(yibMNCdWR8KK&g83QZ5Dy(;V8@lky@ygG|5t> z?iMfcoY!N}`1Ehx@_bHL?g%0LazI!GVzQ7vq4lr$){JS9sADVCzb=0we*_jXeHxiK{ARa`%i!;7)v{8WXD1A( zcUtyF=4Z26yU$P*ZK>nOI|Xky!1iF zkKylfCP}3BwMOJ8X@w)sSZNxBUlv-+ z$Si3$w%P_(c-PzGj5TGEyg^4x)J6PSftL~ACzKAuJqn3x?%N1ow%#2w$da3$%(h%H z9Ru|=e-3)DU_V!Mg5ik&h|63`;`9w{{P>so)&Kd@JppHiOXLh^Pqo*{Gs2eHjqz;9qBkXsyOBhle3=%Slw&0xPtp7=Ck+L zt9Ah&(>^uhmu~AHR&Sievu8S;^T?$yz1CmE+%6q|HM6M|p#a{}7N%%;P@nm-$yc2K z>);H^%6+x7PiBecLkCUo6amQZHICGs4wu50s>yDw`o4d4mi`hC?xU78d6qOUCG4R8 z8PY(T`w`-~7{CmD&1Fr|2!YlGhXpAl_?;Me+=kK{=S{M%rjA*{=7*{^L^ZIks>=TF zk*F%lXb`+YJ#I;<(mr7UD1F6xGr@c3Y+T3()qt?_Mn31+1_^hzrRy1c7NI|9ewAW% zezr^hbKp{Na&IJ$=*0;r$3<(jAOZsB1E%XMmAMF&gKV==W1E6aa<)nR9hI<>E)inG zu=^UGJzXOa$RDhY%S3G4k2$oK>QFF?2I~aOx|#BJ0v0p2l%37!VrFgp>;ya!Zlg@9 ztKFYh>&%~^%|792R>z!Ccy0buiB)Q;S%nrR6Zh{tw}5N1pDto#memeB#7GZ-g?P6O z>V@02aWM*LDXGId5AdPwn0XCxaYYL(&XyKX|HWT{{+y)YJa>azfQ=a zj+b!R`O(Q~f8mnq1VZesWn~_V^RElh0nu*^$!@=0!DT@eMV;eL7IPbYGZql3p17bF;?AZuXwUVOPU^zu@Eo^50&3amGiQMC0Rwfc zD#2}DG}vqv+Ox7qFDxxsv)97**LPYAU-bnLJ}930$Ir9CTVb!S1f}j1LNkv5!V3dA z2fEd|0)jJRZn7u9F7v}ILU#b$V1EI>AW~sP`;rCwttq!7I+38$;B&6)g@QEFGVOz6g?!6Mf=#dVWu^@p_hNC|vGEUvQeo4nZo za=L!Y;^U*~d78P!oUDAdB!RFKC5WI;J@*KJLif1pjF^;)n1mNU>LYzZwr8mYwj&6b z*4sZmy9`Yk=6WnUh=v`c#VHkCM%{Ewdb_}5WO+oyfd!!y!wX2h_Zg?_UZqf%8gF%T zew=ehVE{Nsh!Z4iq)XNw)x&<{)au4Q&I*W;uh`HPv68lLBD(fuy&bj9qL~@j9*?}P zsKEs=4zDPYdg#{@6?fC?vPHddQ*mu}zrF;XZ!%LjL`ZiFGS?Lui_euglQYTCy%m9H zu-HR0yWkX`1lb%k-&HWgX?sN0i1}Gm`DFjq$F7XKAw>f|1O!P8dxMcGi}C(dvS+=$ zp(nFBE?Q^6^SSOtQk@O!M$V&kV2u4ulUKhoJja&h=38WFBE^i3>su7hk7CtFcH**gxykuoy!RSN`aThXd(vjD zh1@X~XV_>(Vn3vEEHQVebJA`<<8Iz>N4BsoCprV{39Y z!p}M|_aTy7y>x@PqfZ}YT6ffc32dBE&~&z>(>pn0A1;vD0-N1h!xY-je9xWCg-`-z zua~}wXCZ2ZXyIi3J9Lr7Th6^&DVuxhl%Ock zwV~1vRr~opI_w+p{4;C20nA}2Rx9M8zupe=4v-R=vlU`uv~Z#2@e_*ReKK_+O_iAc_TZ9 z#ruY~p#nwBh`vVXJpniu{54U118Ko-FY-Kbec^s)@SWBujQorp)v_DMZ49I*7DwPrQ5A+^OYdRm10? zlCbFl5r=X)o>jifcOMUE*F)R%DBF(rTv{18Ah8`Y$@e%|P3;V>kCqHBHt1m)pWeN> z(waBPx2(UTd*U5+wHj?_{V#)){)Zt)3C~X>Io9(%F2|NpIK7ObYo))9Yne6l=O1#_ zDP6anVB5SEimNvU^?4p^oDUqSTJek7K)*MONhxlBns~WogwJ^!CKsC6Rqc**Q6<9x zm}!-vH9sA3c{gZg4oEjNnaW2lZps`r^xh!Ni>MRVkc*cyGWPini zRD?7zmqUx7bT_j`F2eKrkL7Y-`YV*LI;W%m*|17rQslS}B{#8;N>{E}@;in^l@3{^ zL(mRdYx_p<`Z4zF+w`KYtE-O!s{BbJtZzLk=#y42F>gZbGz+vE{qsND!`*xbN zcg@eT%zr|~2E68!3#P9*tsw&>9NV{+w5 zWg+BW#H~f~(w7hZ?E3fKzXg9IeGkbj`vdwL_q9&od+HDIs{Egjho3bIiSpxNX9-zE zkE90vFQ9;hjha*nf5f2e3+CDP84TjmM$e~PjJdU4t9X6*Kfi&DN(SeDGMJx#%1BZJkyNX|(Ozt0B zxPb4T*f)2wfZZ!I);CTumrSNist;K?t1vChnwMqHO^g-(0QNqdH_NUO@9@kUge25> z@9?GKE)WxZLEAX7nl2M?*kt<=d=&f!7TxrHb$BbC&<`psDzfx(DK{zPRb>nEB=fL6=cCz3{5*ri`n; zohU~AI)^)i$Qsbi}DPw#0aEUl<0DwF)v$^8|7v-5(N%O}~Y_ zBUzRaMJY=st-?#)PY&uDls=#OEhqWzZ<8_3SDnH;5rhHT`-Ez<+qQ(3-PCg*dt-(i z&3E(LdcCd^(D5T2bhR#Q-ZQDTOE)W#5b%@7(<2^MDsrBmNseL#kt*9 zg8Py`U@v|p)2jp1_Gja`jTY-uV5aP4>PqpNHdBHqAOcOgYT*sleiG0cQ1)v*#;iGe zUQO*#i*X2zb>v;#ai7yGMUoz2*Y7<<$I3Oy*>Q^FjE%^bjWQ_E&+YpNS+Iu$|D&-PTqNObiIr?g3Tkwsg_&uZI^Xbd#)5SXXJiJzyNq+z4HV>ER zS)M}ZuewBAFP+Pr;Lif-1d9c^WzOAm!sLVI*O%Br8lg==TxuRG<#?A1nQj zI!dZ_6NWnWYCmLQ_t6;d-0arWk+R+;WD;%PpS%0i?`hhf1LqM#9p4Sr^aj>oHi47EhWvVXmn31t%Iv^|qE20X%GVMi2j_+dIRWDaO zT3{ZdYI{-L)APM9#*w???;46<53%lW2M5XDJ2o^>)KZ--lSzeKf!a~#PV8@y{XDtm ziCIMHCWm*RZG>ZHZs<5KK|OD39yO z?h3>U+!s%d;!)ZL@AJ#T9dt7>#>QTb{7z>J?_?bm-YV7GI|QnnP91ar>+HhImh{u_ zr?*cfN?CftG+?kUW1fbwF&I*E8B9mfb@)1HcB!{tCMv2VFZ2u;k@50Z7q0qM{o6LFLtg??Wkjc%m15!89zJ>8tQ z&m7{+q9I4NW(_o)bX9H&$e&c-t$L|+@xUg%zn$13dEa^fA^ibAml7%d5;KJr^`$YE zjK6C_YF)VQGWa}r>t^Z1BNX&!&cdgXo!QLu?-i;NOv6^*$&VT%(MwP970qQ@qCsok zYMRhp2Fb0MB3(E95#{h9l#U2|p|;CV$0lV@H2=m~Tk^dz7oM9GHl)*$DAQKp7l+wW_OCbM#^Z{S?|}LfKoB1Ps?0TgE?J4l_|yN0sB% zJU*my2Z9g#FOxcqO=BNcJZMg3MM{t(u!F(BUc(0#&$d#j|5!d&oLNu*8pjd09@F_T zH0)O^*L7lwBj`beE#tL}{}7_(Xm)X^)@rQ$wzkaj%qOjz&s0Z^&Goas^IPQ10$!V4 z-srTk#p$>=RFwmyQ5oqrX6gRcHRK`G2zk`ve(Gz;`5=VfPkbXhGspy00v^=mra2s7Qft0$Ghv|G=)4bj5zyTc?} zTl#~|XTxT>YgbofOIMnQn^f{_z&L~7IPK49@m&|v`ioX{JpZEG;rC?sKMeML>WyvX^>4ApqG4;cuH_B zSfnOqFvmm>YX?39U4ty62&UrnQc4g{-x!=8NlY$+HiJJk1qY%W)_fZ-w?g_gk#@wV zqWX4irJ~2)_k#|=#xB2+Jo65k7;{A?d*&A2&`g@*9>fijuC^imc1e6HBGt=XZP#?2 zoT?8ML&+@mmNuhe=IwS}+W@_#(Mhy_@WiPJTwqhXilqFSOGY-N9@IX;A7(J>gA6{4 zAw4Ybrn+oMa%F_t`I3@B@7%1VA01M;GxAierk_Nzu-s~do=ifLaTX~K{smGq4!qt@ z?VxxghN2vhBWMB=XD8R<;QyhJ`#v!@4Fe~RvA(#YRQbE_kKKJlr}YzEUB|8~``q^= zCF@(Ks{@<+$4j2`qKBtdBvEfzlq8S7bd%aCQui@vLzrZI3j*Yl16^aBb@<#Ijf zG7uJy?dr`%YBjU8^PMWqUEu<=951XvDrPO~dobx-d~CEWYj>F5q=j=S@f8 zU?&bynA0(Bvho9kl>!c#%wa~QN+X5m#%lTN2}hnK_)S=5?o)ZY;yPav!`X(r<}p$z zkGDBWVfUqc4eovvcsSryXj?~q0^Z!|;`Db3rr%fIy0^44SZ5oexyKR>D(eLgb-UPk zziR}&&MPg%+g+Bjr)6k`fT{v5kQ|_zE+9SiL$6^4WjX-Bw8R1i)UvaJPLpuk3=KXl&k*KoN2u1AF8pg*H5J zZI(=J{5K$D#uqVYvjG0>NgXp(6`HzbOr_ZPA8G^DquzJ13yTlB1;PE@4cRu&A}jVt z>ftT)6}Rg_dvVx|?gks%)AYUe9w!dbRjcjzoQr_WH26)~*q(lF=6_J;?zol*FkTQX z?_5KjXUx+5_H2%?BIo308+7)Y+w2Wwuy!V#|GhmdtD9n(Rp z?8s1SaT^ZCo&EgkcwR@;AlDYrf{CiNVrKrnV%=8Hc$Yc$)F6K%uJP zAaqKghG}gG3^+rA^3IJ|%mht~)@(uHW0enS_&h0|E_(^e9HU-@2b(J|^jEiE^f&WK zbs32jsa@_U&#q^tp{m<51dCY?mZZQm=x%}rNlgT?ESB%@t`#-WyGq297)Qv}reVj} zN9o-Pkf++i9C?Bqv>L44f;_X_vpnk<5tR2EgVpkeLX{F-cdv%i+`^iP3|wGDW_Lg2 z2L7_%sI?wLVi0Y+*-@Tq!k4D>6y@29h4WMY(O#8#Z~nG`CE0QNavdkWHk6x!o}5h_ zn0_~q*cET=5XqTBu^;46=F_-cL;OyV%~IR#wYa*DY+67jGhH7RwABLBK-mRNVIwhl zti^o0$zbXr!AhJu$)3J6(E%NjVbLE}Wcs%%LOZ-NadwC=GBqwsPKx2sqR7w(axBhF zzu$*Q^w4E~s;anZgwz%}I!LJWR{f69>nD^4FBTFXqEIdhj_(?Q?l(8Vu0ht{URh*C z22bov#FGpfUT4X>XK3gGi+8>B4~JI*wEqsg*Q{&L07zW^IWi@m`zVmw zCp|Y0E$fSr8ElS7Npb-HIhY&Wldz;EIa~MP1KN6|lhVIdM+l6=`<{iYjj`8R`W<#sLZ89D*(M5G9GQyVJ3 zG8wjmIr6|bd8b&QQw(>CmO1D?+R_9`t$1rlmoU0@#r3&6NSRTr$|!Mr$4g}Icdvxc zKV+gnBWk=lkSWXjvzxwu{*KE7h$c#&p|1^&Q8FzzQSo{v8hX)vgmy^Pw5P0!X z0|(XkE?^QgVzDPVOHOXW4jrSXUp3PYt6wFP!=dUP2ny9rZoo9l6&-3Krjl!Vr{%Pw zS}*;xV=;%?^yn9X#AyX6mrhAYo=kthMmzHg^i40I)U?|j`C%dOBa%R!p1+HP6f?tNwuE)x=DKvInlx^$nN%}UHb?_av=+9 z&_2`r(?IhUf#c)%Ix_?dzZnXCckjU~0JJf3SjWX@Bb@IQa)R3v`u{D}LP5#?X0keg z6dtou&UMqR{<%dxjN*Fg4Q4cb1)8A2`m}sulryR(b5&VMd16CV#*ta#x^tQWTG42Ub$OF4 z{!0HBd3Qg+diVN@Gjd{+$+d{zh|h5I;Ln;J5+OIDM!?U8u)q4f9ykpjrNhkLMp$V# zVetdQ$ljERQJpV#Q~L7JEf?~iEF8`Bl}$m_3*EhBp;TBE;BZ{7_%0r}RVTfjHHQRH^Tax-WJocl`)e2w*WL9O+^P^3$3uKRtY;~`Q@3J&vx?MIRx|^Drh=vtV`AXD0Mz^hhtH!Bw$)}C2^YIUBHJUr3}Z)J3m};d*Etn# z=e|d+RMq2`*RZ$%LfZ^+j#syVrGVo6%2Y zrgQZ*%gzw0A+GoB?|81hDWTwi_RQDp=Ax0o!3A{e1HpBj-pn2UgiOrybS6T~mLlhiUP}@hEr+%6!u~6?y`$PRZg?@VI(~dBnKJHlAtS&w z=L8mE*0<=rcNKKRO+RCL?iyZT^PJQ3QF&slGT?@XBCYC+CuO=fX5~Bo^Yjo-z8fO? zf?xNFSw^(cIxxOn5BF8_(4oZuZuKaYJ73zfgZ@|BVQ1tV?*_-<3g{QUy;}hPFmj)Q z>Ukvh9*agqsN_P_l*FkWE~O|L|B7m}^gZgJ0>fAwQKfbU4{vIbi_{EQKPqAp%?E1W z`-yd$zCn~>x$Jh5mF!@oDK3#HCF)o9FJ`x|yuC`{W$U-JDD$D}kXp55WD+Ul+`Jtk zmI?^e2$ggppK&o+@oU*XVr7`0+8_^ia7=P;?Q##`BdvhH_%Ua2L2jD&?_ErT(nrq4 zWVRD6`}}U>g}h|+wEECm2dfN=Ap)P(M_B@$1kS*D@=`dd5$7k=5I2 z_H$+KztCe$Wa;mTpm+A$&XX5zTQ+92dCA0>^#`g&{E^J5d5#~cS}JXMhIHk;TuSiU zbU8|{yQ9Xz4FzvMAK9|}{nFy^PfC)1jEPWC`@_g~m|k4|KGbaLa?ZxBK+m;OP|)BM6;ORau{$?X?`bm)s_dBQ-5r50073V60ZZ-Geya~luz^P9x_NW_KLw7>Tk949?l&JL z9PPA-p8Ab1Wm*Ixta@MKSMEWzC-C%6bJueljC0s^%X{U|Z_A(@O+vkZjng&mDbg`J zrQh^JqF<66V-D*;IctZYrN@$vMooJ~9wA}NAOayKXI)fpZ+dTeG8-}%l03{sm+|AG z>w0J#!E5n2&LS35);xv}n!Xg{Ym zqWXHzy!fjac9P-4eE{SZW-0G{mPYLQVK-S4M@@i&b1X^f*Lr>^Di$a^u zq>g>Yc)mXScx1h&J$I`k34rSRvTL9IysE4ij^yT2eTkR#q8XY{;8XCGU5V{1?{DW( z1j+QS3?ACGHM%)Kw`FRLGdKt!Cu=x2f&wxMO&tj{j>2WPxP>E;@j)5?bj82&Y=j23 z!Ry>AIcB|Ruz(5fl_pL5HCW#J8oR|;$2^M*;lIS>a%L^CY21C|*!BJvska89O4}u@ zYgF!6M*Z)?8$EX0?>+4}9ncAM(6@BTF9Ph{L5^)F-X|J9|1*4U(9j@QpsmCecLC+O zFl<)FrMM;x4RyJW1@j_`D)&YCgSJn^1ehr6lic3(AVX)h7p&56116#olZHPlxEcyC zQO8#0u{j{cj4)JHYkhFGk-0wcR^*h~4ko(hUAx8AYInr;A^XHhej}Xso4ON+4m)rJ zT#@y^u!4UTU<*^q_sTSKz;@Mh^zRh9RX4VTQfWL7O@xmN)owik{j{GWX}CtQ{i7v65hRS zI|M0qTnT4{+4P5Qn=iCQXQ9)zZk~*L$*pm=Ef+iQKlE7b3&m&GruB62wAsw=br2yp z*Cfzpmlm40|Ggd1_f5h^Qv9j{-G!3#Qj^>%NKU9aD zF<0Nt>90z+tPkGEV65||hH+K}1G<97$!T4MmrgT~{nMhB{N@V9gU7r#agQzOPv(AR zydbR<&Ha|$K{^}_$h+_@2l8i;QUY?n538Z&x(irPslN|59fp0<$KNuzV ztB-QR$_{Jq#P|HT&WxUHzp)lJAtMCeu4Li3{{ajdInn$C_;0j1Ya{En36rh4wolb8 zFEg{)z!#@~FbzC;bkuKRa^<{M|**FLymUidNBTTd{TPY|HIN%hc)%SZyEtX8l|Kg z1nH6n=^D)t>6X|C5v5bQQy7dGFktiurCW0Jq!C7_D4<~c&gXmm{@K~CbDeA3Iq&nn z&vQTbeZMmgZ34ldFhNQiE4U&0JU1qX*xVK(oQ%sdyG%NG_V)CLXp?UP)Ig|Ur`aJa zoj(`BlG7W=@9vo;e&YH(T(sP#&f1<}!E;l)NX*K#v9)g-Z03cxX2(mPkZX`*wBDs7@x8w_r#E8Vi!L1LJX-XSD=MUfH*Ag z?xDK8M#Iiz*FsknR5-dPv1#32ULd)0LJt?1UvBYL^s2brjn|TsQ|@g|l-O<*kMR1C zFTuUUGWvDNEIlSp@FKvks&8M&x{whfdwL-8cFRS97bGck$JV(-F@k)WBgEw_Zpa@# zw}A=LPSETNd1jU+zPn*veN;B}g!tQXcOJ$kotAM0Iw4Uu5tsoVwSINW;L=0ry{z+N{gS4qrKK^piWO)5^{F8tX6IH_Mjux?w)CrAx+ix# zm6yACf}}b1<5ST@QD}2v^~qmT9iS)bH5MD5wd6HRB2*cOl8bh6nXR)Y2rg% zeTFzB`cPM!wj^Dd(J^Mh5?9hY2ko{@N<47e5js0MBTVmuq#w&Vb*aOLay~7c;~+98 z4@k)y^y`q5*3oi+RvSvDm}5T;-~3qxes6Eu|T@y5OD7CK$1$Q3L#To{NJ>^VE2Z-* zc3**3St&@AQzY^T4ah>pNU%C9Gkmc}8GWD45kt$TP4VR(tTo`5VB{lC%U>l7@lPjp z*#|}Fv@r@nlMT~Vji+^!dQ0&ikHzZ6gjSEIW?_9x-P$W;UB%C*O^H1vg6}}ccEGS| zg~^|v+7?ZqB=vUUs9<3xIh3TDqTMCbme~8uQG~I}zu4=bC5I-;Y0gTqOjOrC$od~1 zh}flc#SE4ulP;|O;l>w2CMM+`VU9(omX6q+j^0$BURn8*d{nbS1!3LAa|l_5Q-X?Mbg$SePO4HX|;|NZ<`>* zB8{_Fa=wCRqNx;R&Jl?Zi1+vR!75dz89}cB+ zX7+l=V<=}FqouLSfxN9-w|E3cw@MnZTT#*DVWFi@&j~cN&(&8#J!iee3P#o-EP6YG z&IWtUMiVuX)u7{C3_Z}~p*K%? zB*;TjmNGRdn_OS{M?z2r@CwG>=+-`D+X6?|yoHpD=u(!%%$7wsjLP~9q4c8>y6hga z_EKj-dLu>T;`#PzyJUP>Xd42{lKe#hNcd;idqk&qJ%^9wsgl60njt9m(J)UdUk9%2dhLOQXW#|3*n(>$lm zI6O~pm+vLE!?iC7@6)n|m#3`dpO|B3|1FCQi&#qC^P-xVC%J$I z7kEO{zQ$0P;A+Idt2keg;C{QDv>M+ZPOEF&=Sks4Q;L-wHH2<(h^KR)}hQBH0ri_5iE%22yp! z#6DF%Hu|L5GC{J-ygepMAobF!BQDP_wTqk-AD(k&DBlEcndh#6=9>=licm2NuNMWe zP()MJ1nfW}O1@gWecS2Z^nC2fEL78U%fBc12f6Ee3^|aM2PFIkf!`+czbp#-EQOdN zU$@QX^6lW)HaX618#~J9AaxCX44EX6Zk*|#tZ4>raN)Ft979!Gjwa7Ja+Dt|NDLuj zTZGuk8Kyn=6bxiol#oS{aL8FTe+I64jOG*1X%055E_lo!(%u~fvO)CF$JgLXXA;g+ zcbgT*g?b9I53R`v0Yb5tZbyl;uIh){M?X^MY06A^XEM>R>h!7aj)T<~3LAI{um&Tx zPMlQlU_QK)vdZ(5)n@TAk0W8$pm7t`1IgUS?0OG;k}ApQpca;DrlA=*gX*mbHsUWm zJZa00hZAxOkw%ou5GgV`QUvoxZfI<#e|bw5z-35c)xNfgHSUkBJoMX+BPstDq27*k z&3|%^=KT0xuwt#cj^-G4G-NjO#r1F<5Q_(rf6im^vU;ssm9Z}ASR3yC&}I@XAKT$6 zBkWQL^ZnxA?d`yvI~!2IrmNF%l|tPR;S+-CwAruo{x}u*CYJj!;)}~!NoFkw?N&yc zL`q?6*s1+Bg#1%RaJk6cTFO(TuZP#n=pV6_A9oH6x?iKlM4t!DAq>@&YHX49?h}`p za*1ro`%uDei>JHf5O5FGa5@bBv$#t*?O3mN(xN0l=0t@y1Zvm9e{G-5)p#K~%`Ma8 zJ3HRl$Rc3 z6i8E2OlZB{=PgTeX5%i2KK9bWGZSW-nS-NU(Sz4rsf11C4|(E- zk#hc1xl?}KpX($R7bMw2uVaiSJkpuHXG-RJD}xvyj?rib5&Ir1q;yMnVHA0dlL%Y> zI~U}XBS$GW!IYRCHwW5c9f|F_cAy}i+6vW>$Og0{K+Z8oYn2Rch==hsAq1l&=v{L3%78Q zYCMgsCUixO+bEhFoW&A5I}^safy~`f?VpiROesL9_IvMZAR>CAW z%b#oB%9gw|z~=sR@p7FjWIqoh+)>avk%cbW~MuZ(6UKMKy`)!P_z ztO`P;;_2$`%fnYg1eqtaKhzgYP_`0hoYnd7c*NH#>PQQ7F;>7rBkuj-Mk2%AeJ0MBV7Vh8GSAI_$ikrecC$&DUnS+n)v?or@%Vq zAY;|szaH1D{bbT{V9jkG?dDt>k$c9UgOylQV@LRE1Qtk(`)1o1M$Wr{OjWCoyh_z0 zyaA>v9?brfs8-2O;++s9l+kZiSj;FuPox|mxn zP_`h(aGr$C3-^S4CbweqDQ(;KWBj=rpm2or;dm%B83L9=sUgQ@#Hpsba2{9`{Kw0q z(i!cuOBsp!Tcwui!SPXOvwn z_8kgiQ2#m(zv|l6sg@NFj7Nk|{Npiv*QqO%ya~n)Yt#cqiZLw--~aiGg5L(tIKFY- zUgbxv!#6sq5Vz45-HI}qM>kvKo$j`NK6X+_QyZ*ZeEOu$)-I8z+w#^iw7sGFLP`D) zlf%eEccn(o59s662B;O(x|Gqu!i8NAZAEpWIJrc@H<=&}==Ixa%m?dccs(X{F^XJ7 zh+^mC98FDRLCvDeO!bP(seEJ9h_#?0(#oREjHc3jOncYojQ-qn^eCgiyf>BED%7-@ zEyR{9R#wfmcpM!jND=2)-JY0UcU>&JR}<7_36ibbOM1@OT|OmgnleHywrZDq%^O#V3)CW zck)b?)04V6B?aqt2n|Aw-^)d~75IsCK9Q9=stcmL9yygnD9huMKS6h z)xCr(*-Y7Qy4&yaLnpjTsOpBJ+;%8e?3HVrqB6^I>iZAISK*JlPC-XK!7)**b^cv5 zncL?Lbj4nJ5P+~IV6TWYw%GE3Lz+~q0iMig@HM#`+X`=b*lMFm_6rHKy-MGFQ+F|L zZ^ZQMDup22NBx8>%NW#WV}UD%h(!sL+L{!vKO8rzbaN3yL6eLo$P6jTt$C=rPE-Gw z=twc>@A5k#-y>wTTq5K_Pl)Gb1X({=6msYNOa`Q*P%yPnr}<{%bb@kPkY1;x(T>Lz zs5%?tuuz?2Q=1^&3${DGGKcAqbrp#g{V8^tsUkINOhWo?i;Awf9W?1zt7(5!e=_yZ zwNYJBaJ|Uo%FPa|=XpQWw)8cFORq56)1=xvnCwQ?hb|^!F`C@3$aG;vQ!^L~_Rk!V zA zJ$B?gP7BsF*NLO^v@~fa1)>RE@Jvpl1jv)f)DNUY)Q`ZL)VY#i0uZ_a3A3w>(MQzH zc75sNMy%UC&kg(ikzaErsHxlL=U$DwBPOquGV4kE=Zt3RTR_Q812f?AZMkIHL>OEt zFaTN?7kIjGpyoyenCha2mK(&(g3(m~a3D&f;XH>Y{)1f3@T zmY#c|bM!Xx6O%;)ui84gx_)UVUrq1IfV5Pv{5v#=-f~MqZ2Dd&wWM88+#j&Kr4C)Q zdqAmh)c#nTaa9f+*!`?}KVW|-Qc-9I|Fq{`P!p_LjXSRzDiWAV5hi0|Har`O^~{l@ zgH2!40K6qHFA*Qeww-{{q{p-Kwddip{fL@xbA?SWJK2PqJa9l_L)GU*nt%wbKrqhrlBneN&M_ z_lxAoTGCyP{5|KZ*j1jU%GpI0x*!BrzM74)Cz-PFGO(o1C$9Z^7mr>SErik{pPqHVSU85Zm1AAMy6A%rh;krneiK#}2igykNF zY~$&`rTVKDh29N;PtX>-Iss@;^!Xjz`DT>aRjVp}Z%32m1Hqz!_P^xfEiu+fb{a7s zD`-DxPqDrCt|k*ooAEPgEo3!{MW$?fDhf@rrM$dWP^0~NH?+bT% z?i}L=ZZrxY09r&*0gDL3wplcY^4q)I1o>m5Jv&3o|(p|0ap#4ITZInAuheQTFe&n$+_ z>|*TJpwpX_q|7EY9Q>Gbp(hdX``<&RyW(uK1ZRG^(9TEV#{n651 z4i3EYP6hftV&p`%2F2@njf$WzqA+?*-PJ`V)i?!yXsvL&vt^H_{RsV+1ipnQ18)-FxCtzo46o)j2BIM!$-uKBj|EBI+-KEr7CBf z!_cIg?6d-8X}{n98h64G-SQ6YXkSnsO<;;9=OQQPNX|3WV$f6{FZYXP5QD`LnNrlo z=B@I|{MqxxwRCjI_-xeN&o+vee4$k= zdIK&(sP6{KYQiD> zV@h8A20bR=0GavsE7K1ONqBgdL&EBFmbO<5Pm1uHy_WXh>DX@HU0I`HNm>hzrFmw6 z7|;a-trz@OWJ@mo-sg&TBd*lkg%LKA1Z#2@x?J#@F z6H}!mP;~S50KQgV8LOcR-9Cx+kwMxi`lz%C{dKyQ>cH#L46&D8lbO0hg8%=Pa~noqOD|%4wVY zq0ok?ks&ic#gH_Y+t=p0K@^eCi7}ePINg1NaO==Nx6&EoJ@5*InQG zZJPwa{I4Ue+6}dz>k@X#n6GjAeKgo(`-j)&<#=WH$rpo_qKp@ZszkRprbqo0x?9uZ zlcD#b0$o(;KfYD}lgnYlr!Gz14wasfMn5NpcS`MnYQWgx1cXSPkhOEH8(yaO+yhZX zQCHMgnSUFlWD=UcBmC74g8smJM_>PlXr`uKN$*C>*R^H$no^{?NEf;&C@@$GN zU!2#onA{^0MELrn`Ec1Pj*&SzbIn*hQci93aYK}TIInyoszq~k`n-m`1{&Vz_tX;p z;2&PZRle+SCPsy@UILWJI?5zJ(%Hq5`U8D3!OfL=@ied{Mlv1t>r0Zv@kz?=J@G|0 zB45Sy-7mj{g=j&Vtss(u*4_n6AM{qerHZ%{=mjv z?DQq;=kJ;1r#CMi6h%NCVg~ykWhEm;RA@?O^*)n4wkk#|o&}BDjipV$ap!;Xz^1Nd zVOT_PnDXh0^=iHC!R$B}Um6``!#A3v+8n~K_0EO&sN;s%cis?zOw`mSXrW&<+2Beh zzXMC=NEV3Z5&)T+&}$J<*TNFH$OWPWC*w3}h)jeMD@>_O7^n|4iHXIcIclR5$;rXQ zn&^CW9Bm|4-3-fupj<*Tne85tC;27cfsupp)ikLYs7*oi^a310U}9=|dQ&1(0vG`> znIv<-${FZ|xVVx9l7X+_sEsr=1!p?vvs9KRPB|7?wV3rX6kT9Tbb(7b^cOlm7jhaCMA?_p%QI*I4^fQq~(5ka>U%^ zNomEo*n45&=6)^QdMmiHCO9Pe!S+is6scnRXEIvn2HDwsPfIyV=63QrX}R0Us`@G+ zH5zxHi_ldAmi8AHlB>`~Q8Dk{%-_r*9b&DfPi3tHx3AP)RG733#u@!?^h z+pe@bZfn17%$&I4DDl$vd0xRgL8eOz#)%)OXB!2$y z<&Y|8Hs1}~-r8<0&{b;EJ>3D}Oe1nj60FGDs@IQV>eewUc?49~Hm+$~7Jlw+xDQ-R zRwGnqcP#OL3oWyWsCV+ruSphHpt@T--wn7QZ*CGaxE6`nK~vz~t{RG24RqR;q^_Mg zEC_TgyXDJzI1I9$H)%{yNZv<*_C07d^)=6$1p=gTtsTvmr2u!a(U!hiXb6=Or&PEBg5MO%h%H* z;T05M;?RSEEq7x|{Qv>1)^E7YgP>juS$z^w608mLY+lW;M_JAmXKCs{s!JUHzKZ#H zSI$QwjdIT(3nl5vw{0#)Hpk(W~L3^VPI~xxiHOe<5rF zBmF3`4&{;>FmccWocIbgB6P9mYtt24Zq^RoF7Yk5DSelaQ5%-^*NV1Xf+dK> z+Y#{!c~d1a4T;2wA-#?MsPxu1a&D-squLAx>zVyN&=CxEwV2ox{l%q|NSnaOch*YZ4mpt z!hEnD@g4H%RJnsRer@Uk8Eu~hbhnO+2xCum$>Ef+ahKjaeG~um263gpX|*c6N6K8Z z%j79JZx*(M%Tq&XI%uGw*fwRt!WK`?|&d9LNW*6gX^ zLvexuIvN%0iaFM-rdW$Jl0Qq5a;F&oxXRd_NPpx`waS*m>Rv!qr%mZh6zOQLc5)g+T3-BoyN zf&d!2 z^8}ysWKbkd2Zi)cEe;K&rx`TGH}SS2%b4iCj`%>9Fydqi()gqN3ZEP)Q~SMVjETXb zI(jqB-kF3ZAyu*LY+h>Ux=!%?`iy$_Me4^4b4kQ#@27!b z{3iIy(*Dq0-@)6(i9D9?Y+DsaxV|DJ?BxWQ?x}lgmTy7Iq3n-mdM>Aa*A6U4>wII; z#^N(Yo*x~JmKo~TJxPpe4quHWD`7A_gz0t}5ZDDmulQe_edQZY0M zshA;*Yb946j<#IZ5R!-`B%;RXmvhp0njHa4^c^rEm;%mwcf{lfED)Hlx?(E2gyzVl zM(3-7)Nx>ZQ;IqWbuP64mdKQtS_@defi;|gUQHhn4Fp}j8vXy`SdCr)tfdKX4eyv} z5z%PTYidyoad1+Zs+ssj=L2DxC;&tyG5(GwH7`CokrQgNqJ9Jfxrx~kSH2oBNz_IY zz?e);aenY+CX3!TF#f}OsLwlG`lntt@0Ctf^aPl5cdF>7Q^g?i)soMPfbPJ)H=Z36 z{8L|)D@<_X88fNSfLWy>p{C@e=fYXEg!-im&N8y$qwNDn^p~o+N4tgItw+w}2 zWR3tV>FMDXWKt+OMJz)DiMyn8s$fg@>91Qdj04R51?YS+bljk3@`R;P?1b)F^TmlU zLb{ew1B`dGBi;~u`s2iW$c(&tddz3LKrX~wZ3%4`Gnx2+qC9R+dhWm5j85`{V@Pmd zigLq@$7Df*1tF@FJdmiKT+=#t$lP3%3@F^-jSnB4#DBi++)^Cb?0oIl*%* zh|;7hvW4os@RF~gD8~!HJTyRKNIe>DMTz&HW`46WkV$w0{?NkMr*v%7C|3rD)kg-o z=LgbA-#aa}@;%u0LqupWx1inSe9XX`(b;sqMh%YZ$6D4(2s}?L9obE}s28_!8(|9> zSgzv+p()lsF-%%4SSuV9lLl8GRm^=JrAC>%+F&kz9#dB&BXnBj6UDaZ{P~&w-B$mO z^gY{GlsTAPu$hK(8uc#r!?;-cPh3_OvWF_2y3vt+ZuJ-4`1kx6>yTu_&3=FX#xu7w7`>(4NcHu&iy5Ty>(O%-W;qAv z4^n5<18l58VFqft8q+w!WFvI5waai;~u^uY*QmDr4ijy&KtB>cYirkf){$eTx8B3D^L_uUV#w!SUU^La`5; zLe^ot11i->E;O9K%3)7(K%B4I8v^Q{zSXNy?mI`uBP+w* zUiX;*bLrEJC24?eqqDB2Ku}TJu@lr+ON2zA`^^0^5kEB67@2!vyDLPNBA82JBQL0qDPQFza80J(FLVD@FA1TGM1V@;#@a$NJ`u`j0#` z5nj}H!GbEHVC^FonPhh|GJOc+XTaLFvZIbw^*{>kF|7!@qZAjnVCQO+0rHHaenDlT!ZT1c1#A*os{o%`$90#Bl1z91KEj{tOnT#>4%~k*KDMOt@*Sg2=oxK%z^0hs=-$rzmlZ#|1G?~pQ3s38;kz^;eM%VZt(%!_s#EOjYqaJQn|534@t*y5uK*-fxbt`*sjCSsD| z!%{KwFRrAqM27tX-uv$L`E-0Nq5;q+sAXpSIRRChZXaCT7)Kw*uYqzGH=%#0HF=0f zlz;NTC4aShHLi=yh-VAc(oaeUt6Tbb;OCqS?)QC83MOx;Q#R$R)PZH{YNt9Dm0qvxakI4{)alAKga|m3xBva~QgFr1qbq=cbw; zkop%3klPc>z>hmog`_U}AAUSNUZpzTm(}gdCc$e(qd2jgO>aZ2Kwno}?%1e!XyFjq z)TCJ5R6{fohZXN7QpFx&=>0S7cDb5C=FG<2RK#ENm@nKpwWoXZgP3k(_Mhk0ElJoX zOrSCBKfE3uiVJD-O_5^zS6HRbsctE3P00cdFU2XO&t#^JP9~kyg{<_BdgD1(--R4b zYb7c)`D*Rh{;E}m|GC4iANW`wyVBR*9zQka{PvYIb=*FbMZmj3o|0nr=T_;~ldgl~ zAKfa90XxTsLK1lZYxR5KN1~G!w!G&_atZC(Hcf=mUjX8k)zT7LZb(0AHE#I{YmjHz zwc-76kvn*q$YmAjEBF2BSL;95zJ1QW>W};3z3WB(N_^+?JE}}uMUwr(=k{Cq!qjm< zU-dAxj{kdk$2PGT*2;KyXn!m?VsTxcY*K_IDl9CZ(6#$&nPnyal^i$5;~;F$ z_WOkXnV(`-_bXrDV;13i%VfiEZ#BL+xUYjZtLeHf-T~ygn}+@!LP^qPidp7pU;?cw zGvAZ>;fCP6j5fESzM1+67<$;jl`$orYsZEV@B;IdfA4%QcA>Bopy6qr{zw}p#S?mF zzt@7=PAUsVx2J_|*MA!?Ej713KQ{D3V;w2OwyTfyv@YZoMmEB|)`P>ymoauB*r2_t z@J=F8%JP7l|2j0ymZ*thOSW><$4NYr>I3^p?Y2)-4@X`#@($ZG*yPSABtNWeufp8c<0Ki!l>?h4j^0*STvYrG%cE$~+E4?Khp z6v=e&RRr$-{&xL_D$8YZciZy9;gm8A*Mcv;dwlv7Q^nAxif<_+4s_`!AbzK25FSN> zo-iH93PMzf)LuuPMi;8R&E?!ma}Dnv0 zp+Xs__FJLGIcgvEp7@-E5FNmc0Sjj1hin>3HiPZC&wV;%NYdybhTN`YQ`NyTV>)2l z`)6NV=7*UrBgLf677b>?i+l?m)})py7hkvp;t$TuiG~WsMCm)G=9u+ib01~Im9Ggp z8!Alq%5ceh$q`+)NeVhLxWSS5AEBHSfOmJ(*NL~Aix^qY^~ zIX8r+xB<3y>T4=X?0WICVkz{~$+99CO+yXD54>ZM4V6t=0^cfWuf^JF3M>?^d9x2X!{#2iXhL>~?T& z!v;U3FRw=2kYT~~2Pv$w>cb%p@h|!C0q^Q6`38ce{agik zmmG>xT+ffyAp4CjueP4MiK#igDE`rlUnQYJwi?aCOFD6bi$RE9Q}rjc=7%ZYdb6D~ z&KDYdj00AitWM|G*VIL8QqlWN#sxn=y(TAn=DT8)Mphx?-v#EtTjlCLnDCnBA;BMK zvg8GvRW{~;LMO6Zhyy-HPo7M#&M0+WW7wC?30c)(3Fln!+_8Z&tTw36qG*mKPh+pm zj?o^>b26HB5V6SexJ$F6XplZsEGh%&$r5tJEuqWH;Y(_?@>Mz4W=HgrE1+>Vvl|Xs z)PqQ~9pOj;&fLmCdOFE7Vw=mQ2QXCPUuj1ev|-xzt5m_>JO7 z4a}>}L`!aV&}-gyo>=7>T&abempV`$ivw>O<%7TJ;()?a5aA91oFC}Ar*yizhR z-YH}D=IbHpZolqsQKr?iWTWNwh6vTkouALcc* z4N^G{@+eS;JdDPevUA_Fw3_C0c^$mi6@Ay)DXi}dJrM2WPC4uvHc2?a#C3IQKtUhCEaY-KIu4|U?FiZzXSLvI5jkDQb+nFliBppuMRYjSb%o&-7&g8HFFB{;`sOM!yEChx5GLuLmKS zum3?GQ{ZnoCFrs)k+gsC(8J$0h18`_=8F8BukcUZUaWGp#^B=O3s)j%l%KHpt8`6? z&$(4nRCIi!ZY|sA1#P960}8%*6L*;7hf*yWCV|r^Kr~ug%#gUTChoyPG|9nuhnhx! zo_0WsUMLa91cVRlf9OLwd=5YcJJpY>g?PkJ>KAqJj(IIBbF^}B>L3NZMYx6{1NF&3lCpiKGs0mQbi!Sk+te72(!RMrbioXs*2_@5oibZC_9wa9V#fD?w2$>!G4z?IF ztbY7#IFf4&RoiY{=Z5td%0D^@7Lxwn3id%)5v3*7_%}=d_VWmJ5nF~wnPbp-ajFRe z%Kj;H0chancU(r_82Th!G1Tiho%Xl5@L}A(^eo9XgEu=MP^?+>xT&z>dC-o>A6jaC z9wuu!XmgoX`-E0b2sYiz5K#mnwAD_EQMKNMHlmlu4w>VUt1bH7WIq}0RZpUpd;F`+ zk}COCyM7)@C)|CEV#Ex)iHJ^abfw+;PHrXMYD&F${m^IvLEJEw-84A0hsgrnHPW8Z z+rFlIv*}%QldAVIOqZ=o?iSqRJ1VFk`gT@$Aowle)VHO7c)Xt_>@^{XDQgXf-$ODb zHc(GbZ`UAAf93K&?tLxkAKpk0esg z0~Yj4IwwyU?6uwA$xk!HrmP-?V6?uM&3AKy$hQ4pcsBU$(fiKYm-KIMjekd}OhA+D zee}MJ9J37BUcW)>e7B^6OZ2J=tGypFH9XH;CHC$q53hifS3s$OB~uKBz6TM@J9-BC z?|=i~M*S)vXn?TrgK;9`7O?sV<|80d&=pDQ2NdP@;T*moG$4uOY!!sWeef&yS7cCo zgik1J!bAVK?Q7z5VPkOoLfgIYiQ!>(JVQzk7DXM{Uf$ze(k^H zMkRfiC6@1Tl4&P*;x&45Q{Q%;&=xVbazZV}$=C$9`QlURpoJ(}sBuAc+=>~l1VYsCZ!Xq&m5@yKl z$$59?oJnc$7Pp%@*Xv{asma=RVOlYkVq=0L&xYgEQRF{7ig3HAot<0f1ii&Zm7+)nGoWvNa&)m0KJEA0L4v zRmHD={lnYy+MAVTe?R;^*NY(&lTAr69Yk1v%I59Il>JSa*CcLn3G_sjeW#XC_34)* zbU#g0+hX*uN=UZB^#RHLGnameH-8u}WFAkdd=gH-_x8u-cf)Vz{r&@--{r8jtjldo z&5^+}^H2MRzZ8y=jIwXSu1HtjOhnY-JinsK^!}($KDj)9op>`eJjUUtMsX9n<^8(D zL5wq`bH6|8hrQ}3PPF3a;k4kypSH2^2ryhx@8h74$h-R7&>yEuY(!wfSR%0jm07HQyz4t;#&>ikj;ZS`{Sr-_VleTzUbSL*c+yOKeLx zf+CID{KxqKqKcLU{kPO;199;m>I#fO_?(0g?|+jxu!8C%?&pX_34p05{~M1az}dLD z$0h%r{cp6!yJ`qR(n47g)7u>ABdps=%zzOO8qEaON1&q=d0q&Spp$DR@nxR6<5kC9 zo1Lh%5mD-^qqU1Gpc-D*VW?oha|A0@tdOr?s9)|4Ait`5i5#^80x-N6SORicvzu~# z_9N=>dTJ1F(gDHHW<5cijDSSX83Q4!EU!a!4?{`~F$etp7wxXPQ)o`@)JAuGW_h6C|6*+oytK zTql#f^dXepmTHJ2H&!uF>-64CAA!kQTH_29`SuEW9=Cj-==yutnitUpyvXJNcpOcS ziO1rkMA5MbHRXAsF$Ml> zK@fzf5tyI}qKt`*%1l{IVsacm7uxc@yomuJE`xW;G%J*Zs2r#r(?P zj>>PogT2-jr8l)ft~te!e|WlM{52mF(s#XIh!T!&JXO(hd96~;J*#W76-E5&s(Gz? zNY(B)hUV>livRm(=~QeX&)&@{RokZ5>g@Fj?h~?^zxmqs4^KKs$v3*^Q<2-7mvq1L z^9FvifWc2EYj@rlbm93}k;o()sArNYHSe7PNKvlvr- znn*E#lM33BNqxj7wca~M5m7SAZh2^MT+GSB@VM(7V)bK;h(jxP-NVT{?3whKvrqes zbKLrI74y42uN!+q-odHE(C;w;BosKljDL9jn4#jOa1}aiP&0Fp*QpU9@c{g_M({>( zPg$_xo;V4$?_cz@Z}LICOvb!2oSZptJjMMxuN~0r5-X%3e@@@;1|E#$H~Nr-({+q5I)=GUW$AJ37}Rxd79rup8iw{GA#r`^UMI4g-9z{S*i*L`ag6}foc`nOV>02^D) zo6MtLcwSmdYab{8Tbmf%(x1sFG#ET$;S&qktgG~kr`YacP=z=8tLKtQDdCNNi@ zs)IT>Rl6|K!Z9J*xOjBFK9ri)geOE5&WSH(A%A!aQxkxU2~`-R?XX_3PsFGi0EP4u zqw&Lx8dI6L>02&}FUWDMemPH0RoQqQ#O$CS2N_hVgs8_;P2xKx3D8DU!*kGa1gl)k ziUQFvMgZ?*87Bu)aN@VOoYZqNcw8V2b@-eqKsC_Fr6Iv_z~{Aqyo#e7$dBUiKmct> z|G$(SAQ@2q_r6?+x7(ByPB2~yQHaY~y4OZSM|hb(iwW;&9{q&(kdk^_G4s1F=F*~Y zfZZ;0!cwn3FkcSu?9p0SFYoMY(Zqg(?zau@`Q8)^Ygw%v^J(*8r(7XuWLwA9WyX`2 zq7&u;IDEjmedp(!thU_gSH@$21wY8$p8nf3{v)xt*Et>X2 zWcU>41D4f@Ce7#Gg!@#lV)Nf2BWQfJ;kQUvPPInZR!M)DCz#ti2%hiy)1;YgG3^oMsx%z-x|X%G+iblt zyM4deRpz5g5i)dZrDhS=6ZD&t=K=%Hi<|kL9(Kld3+8=VCr$tP+VG<1B>PeaHo=JI z4}aS2A@k)8l1YW${aixaK?RpL_fpyZn~68x<3SShOWm72jMH$@-*~~WA{~_fmQLfh ze|WDRA%5DghF4Q@{Bcx~avpj{cek+Ugtf|zssGmD>Qa}N&i&DZ$!NwGq-y^OgP~+a zPV@AFDz--J4oB72*n1#70C3CEx_?B8?(Ys{r~?!gQ5hj;z9gus$bXmdeJT?1=;es$H`nH;IA zz=oD$p=?e8CU)E&VHdF_S2#Re^gQzQC4lfo?FX8ZeUb^VOtuPwJ(;M68xC3M)`o4u zCE0O{M(P@rU6vjg?WJ)ULG*d>fk5n)rg>K?-Jn-RfQk)8*>RlW7Zev0R+iG_JHMk6 zmT~a!@vw1cFTB1YT|Bhqnb0?u&B?;Dt+04^Drna;>$JzLVpdb%NDhbLVje-7S)cyl zee(G0ogiD&^eqAdx*H_Hs;Fo?{i{T^bM5mN;fEbz&*N;er|RL7+-T^rrvBckr=|zmXUT}yj^y>VJ)DiSL$C^zK`!j zgh7@1`K&kW1Px21Py17TfHr@Q*!;t5`TP9UCq{g3R>daxA3Dzzi+^~V|Nam6KnTA8 zFr1&-xO>y-MV^Xubh^7R?h=wauO{oZqOOu=!F|)W(5D1gzfTZGn9$}WqW(HzIJDj?T|^YRps0n^x&opXQs^4$CAtKlYwK=8gz{E+<-KIl z_G?}F{)y_HmYPR>mfaU#bhheWR4;v1Z6~cD-~gqhi*BL{T~K})I{=n|Dg z4RtP+OQ1JW=v_;oC?Rza6%f@#9iL~4HkY{BtrsMn09jX^ta&N5xcFMAFb z&taDm#qiTKwXznOgk2{*oB2t<;IayN7ytWIowSJ9?sW;l8k=ddW7Y0gvUozK7iBE0?&;+$5lx|S)XX=Jhn5z}tg zx#4oD{6~mV)yo_*x2D&et#biM_`IFEugi|M`fK5DOprLg+*7(Sa&K?uxxN|1WW?~; z-%#63TH;6=9Y|eavrdO&VlEd8yl$(c^E@f(wH}z@1lyCaH@$|z6`h(^S)wEHP!Qvx zx(;tBgR+-N5zQo{?2tbItqnl8Qtsg~00XM3S(zV3=ihj5;D1F$fRz1D%#?T%>P_Xf4EVI-Ri zW*1$C)=~^GSAlC!Dw?e?zEtJp5x!SLP1U{A}xkJjkF)a zlBT9F+~tg$$~6o>#psLbTq+~9G7E!mA^sKe?%u=1_O_~gv9|devwysv31sTZ11vM0 zhxb-?Pb=#x0FC-Fy4Vl3>ZB4>I!SF29&@|E?4{c1@EJ`2ARl!0{v;(bnjw9>y!y3g zrhP%fwvDGFztSJ#^hq$B(6sfSX}fMR6U%>zXG-W)2a?N>Jma75Dy3)d>F)OXuKxfC zRMkfzF^5%H^#{1XJNLRuh{v>2{{UE+`Cr(5QP?S=d1FOb^AB|K{A(U4*0zrmA>{u6 zRMcB-9+~Wi+XI~WjhcSB+c;QpAqTT!j%!_|9rbbS^}Z?m;$`Xait21E$DNgqFD(SL zw2M1kHeBClrgh6|1+B@l(<|sqa`jm7@O-u(9o8Gty7tU8{TK8;3~a_tza`Com0H>u z!-iV8EJz>P4(k5^*-j02PY{HF4vl~Ltlq~?=-V$`208gQK9~H~kJ*$S%=fakRybLm=5{{ZhCy=&^>Ys+0UK#lI; zzIJ|cuVy#GRy6xGnL%@a1OeO-otlfEU(E(RlScQk&3FtaLw*-O2E;{kC2Lq%=+4CM z7G!GIO2H>hq3)1w>jFLryxo*@Tmw&Z0ShXobD1P#hY||85QU*3jki`1mB4pY4=6yr zp+YW{k3~^BgR&h<>=6KVQz-1HQz7h>%I?a-Jra;RA{VS$3y;+VuakI+tg*lWV>B|k z-x6BBt3Ul-V{i0s{EGPvbu;T~VPiv_?tuc{u4r8Ob-49@Ji5AN`ZxkwoJcs^EUj=p zzG3{+c$tCJt+~FgCtl>0)9|Jk>@AfYSj=yhQ13AY;c|RMnY7K#*=LH&$>H0QYmdvv zH%1=ebL%c-1C1`X6RU>Gr_(+{T+!w3zLoPICj0W(!)L_Mz1PuoL1&1>Hx`;VH2j7C z0FwFiMZ#$F@2d8{Ms_|hq!;?Ke}Jo(_Eg4s+w5h9K-0)p0qU$4E6cZC6^#jq7ugWh z)>CVxU=GNJgw{n(nhk=X)lF_AOGa!TP#utyU`V!~iqN?j{RFiJ8mdR-s-*?&2V<_I z@J6wc-!8!x(M2Pl+G*jH(K;Di(bQq#+^D3xhErEcD{5OwODyjmSjEr6;awZsBLmoO z)2hvh!R=HtK;Ux715LgmX2Ij076|3JXlNJijJj$lP*g#(h&NV*P(>6`P!v%_5k(3J zh@y%rAwfNL_tvm5ET$n0Z|1wK@?F-sv?RYfZYqAN{E6~x)(y|4b-|9Lh6Pk z3#Gc3K-WU)Nl+V*IYUOemsJTb8y*_$uXa)KO&hbBv?HW!Z}7V3d2pX@lZQL>a(z@9 zkOwBpiYfiN2;_pAX9u@17ykeyeC?^Hr1?ZMe397!uxvYq03z)*|c*S+k8LwS4ujO zxrEy=vhuYaD-gp^E9rm}G`I}pTEvdti$(+DW@4D66me5o(vkt{6Tv@aV%agZy<3!z zNthtf``4b}e>LQt;|QATI-1A+@c#h9y*3q6EAXgm8p6iN=QIo7Z;(r`6(qB9sYDbj zObJm15EK+aR22|H=nd3C1O-c>br2N}$XyGn4b(#FAo zI=HBd-r!9`SXpE1V7Z-nB?fkvIqq@HP40WETq=z`!LEJIP|!)!Q?lvJma_3D`F7&I zJlYt8A45?rH6za%1=)4qRejkm4?7L*A-BtQiNbdmHdi&*HoeI^*sYZZp+M-}myuF|`poDtKc3&aw;NCS##D)bhOipONwM*>1M)$H&_Vskf`}DE|PW zV)#4!MS2D_mVg5Jg(r+-!7!*P;E2mB+TdipgLOKN`>#KWc=DmJxcfyxaUlEG{Lk`U zT=?!;+Z|?7N7->ImQX|1n$2#!uK^^v-$MEYt- z{pyLltsaA2PoP}0;KqHfJhuHl=}yAR+Q8vvg3<~8>cDY_IoV^0gRvx)@|;V>u+Y;} zHkI@Ari{2q>ykim8xx?>W~BN-hMu0zGfmU_&t|%w_gtq9zFjXQk8C!WrYu5&vxO;$WwPiDdY z0JV3tHYR!X&3y*zm4&*ZdTDB8#7#RREpBNZP08ay=%-v~oqJ2mch)^+7l>-Gcw}Wg zJVlOnbC@0NZaxd$VGeYdT|3+?TnYS2_}(EiBaZRnvQ(1X#?2Xf9anx|7S~~T!KGzE zeLO|2Y%UG8tU0yUK1_FfM)Bp;yL~jE=UI7I_{26wwps_a;`%@J3#&(uVU@BLK~~J| z7cG;?`P%EBTRgh&=xXLH#qjc4a*-oX&noE|M`EZBih7XH=0B#)*A53#f5~3#pnymO zn*dJg6v5!^l%L)Yf?KtxQUUFBk1qD8S`CAm>yNnuhn~35d#9gJtp~c!_B_-uwfR74 zzL&nCCLvfT;?820Qg#e(pEIyQuISxit;8aufs#nc9OsL*jBUyJ>^^H#ADNAI*?=jb zZPZ8{m=qACXS?%1ny~0DNC7K7&zbzt0)YsUl(`0sIgFCBHptNC+-P}SCQkO@ZEIPk zP8xeIW*ql2wj#!tzWM+_{MNB0VZy;|Z601;JA4xidsz^YV;{aBSf91%mPXI*QIjlpvEZMx>b_o{*wGo6+UjoMe2n_v z-$n+w$uV?;`$Nz7R(PX#wbXw7g3M+7pWpRdtV15du&F9pS6=flllwU0ySVf#Sn=hZ z);?0@G4ow&c8}TO?-$5;^m3DA6fHTmyFWIrW(QwGis7#ITDhL)HNoun95g&wX|ml@ zOAoL#+M(v{u8#fzD5>V1#ddb~RC6E9Wp zd1_$&?^2%RpDDeqzoNuug68pY{KDu@RV-|orkFUm=<6Ge))7?Wd&Q_59XSj77Z>)w zAd7+4GPoyKJNQ`sdPWsEFoaq`~(0Q0g@oYqXx z>ogsR1b!>cmA5N4?c!rAOd?uR$5T|z8<^aUAdMS)+wUb<`iiN8dX=;3wo(V=v$dI+ z`##!VP!Ime7}M-z=Q?@|@85Nvi!+O;jFc0;YC4HymG=&H?oHKF#Oa>r$vexPxzqGX zGYF$&x`epfZ39_cZscwtRqEj*us-%DR#M;A_>wq`SXXh-C*%1EnV z6AedUZ@E=+D;_$)3k|@x+?_2?l1EwCz9{47uaw)-zoPY?6~yGKfzVaRUr;>Fanmz@ z%lWUL()onsxVq1=WXJf0A$ zr)E~vL_sM6)^JyudV+8n&q4|hK16wb!v^vSY*q6ekon8Ih3kFdF{`ZeQ^McwV<62x3{8fcgByx@Z1`v8YnM_ zGcjrUn))nWT)$0D9Di>@YpH?KM?3qhbH5;~mcBURbe$@9Un?PcU3s>LJ}cCC~5+xZ#xNz+e7W9P)#SlEqY@|g4g z0A$PWZ?e1ft{t&@)_9&5)=3+v>lpxOEtjI>bK2HYtHjjN0AZ!AoSndh&9~kcgP#<| zqpF%ASVLGq7luASKV?%EJBzv(zuO0txLcziA0?^BYd4b@P*+bSRb}5XA)W#wxF! z#lP6Iu|1N?OtE{9=@kJ#{wMzc*`)mxJ|Uq1k?kM;&i??>c?l-PnLA@Oj3CBju!WZz z+g%n&aa>2QBVSV2F_JO1=(JoLdU~lQ+TJfn?--W3&2AS|=7V5zxL^I%(x>qqB$SPo zW=|W)xrjpYN2bfp_=c*Yibe`)TEWwE&Db4#A5~TZTUS+A)2WfKVTY&yU~P@S;Z1nj z>Tg?mc6gf)an-eL+j@6%`f|3?V$^kV^q`cv=THkA-^?$c*J5~#b&h0n#v?L0pcp~0 z7yTEc@PyLU!vysOrc1~P4Y1IWvYN2ezMiC%E`cc|aR6G^Bmk=?x))VB?q|HwYwjKY z0J3b#hb0t%-2&$a2DAcgeNB*9fk@Z5yDQjQZGA{T%~w&FF~zO`TEq~DxkRikCr~~h zrUK-kg+&Tmq6t#zNkZrg+(R5d%s{=bx>%)bv4=M>2e{cQ=8QbXUNew%QRAXat-eG3 zpdaE2Ukynr+`{{X4x8wXgkM4q-HN2d!0f;lpW$&IfK@dXT|!cP(w84aQEk*!2cBAg zG)#lx@zD()>Rl#vE~*&Y*@Ctw)ss{jVrvVH_7+{-_+ZhYhfC&D zt0bYjazOIpE-eGk@<-ZX zwZ$~VUfEDW`n7J({3%b7ihvMZVvMKTz4gusid*`y83vu((U7&BuyNyJ?r{3&YVv zgyGc@NXG%xj5Z)Ilsn6CJvm%|qc~%u@r4wXIhziE2XVslUOQ$#;mTz^ z{{WX{Rj`{3zj|+JZd>W_%(#+G1UQXTC5V3PgZ-F0*lF`u$6tp!PMe`3OJ>Sx&F$Z1 z+fIF5PiSq$fIk9{v@-V6{{RrVqQ4Aqen#rUXIh#1f4Zyo{3oU+HW82rd8d-b{<&20 zyg@j`jv0Fl zPCtjWf11+SXx$qmZD*C*HQv#qz8dPL&W&WCO35U&ut?@fUKsFoYw8*Z`4mM>A^!mJ z>_7R;D(vXhbqQ24&^UQ(T7UBy`X_EeY}&wmF2nqjY0|8^i5(NJe}3=wTly%Sj+OAK z9@%Ac%j5;d_71RC2@7K_WlNiT9d34614)FxU9O8k>5X+OS@GFrziduhW{zCvd-Fc) zL^X0U4`y`kFq3i}spFp7EJd!)#_O)>gIw7jFK{ho(=0OMo7!Wae;R!!!PSPUlMs!= zb~TN#((Z5v@Mv6*r1?q5p2oO_f^0rzcK(mr$S`iCgl3Yi7W{?D{MVTA^NhIRewyo{ zzM8KLow+XF>w4idX((VG5swq9GdQ+hjB&BSxx1T?SBa7IwKWBRpE0my?nlnc-(&L% zf1~^o0^MeNw6gwbl3yaAO)A=C(Gm!#%I9)aSzEds*$gZ1or`u(=%; zA57?maZKPZz|7*R9u}RkOPP)LMaA~yFGEp?MNy5%k?nIC0U3bqN!#YTm2*Y}ZQveYeP%PxjKc$ z#%Zw(G9v()#jZEX*Iwj*?!JLbBPFG$ys|OPk|AcWAEoIw;St)2= zE1nIk9lzebkBPF_WQDGtz({=Ux7FuemxJ)7OjNklO!8cu*8^d{beC~&y}Q!Eiqhcn zHm|7_M3qdn-Kp}svbmIatc{NKlJZ;oVM07KdikTE_nXGQ9*2 zV1}E^P#gpH+iri7mTGL7Zt3B%Tu&9lBYW9dQJ+I`AvzW7{*JNiLb9yIid4%Z<%g*Y zi>^TDRpfkH8x==PnLNyGgSBwwHW7%7KO4a1E;$&?uehhkTCv+B^6Ugl6Go;h-iNcFDqlh zb;sE*UY+^8QHxCrV|{FegJG4wqO^Fo7;6Cb=|BU9xAb0Yy2jQd`UFIQ?RBm|7d8t$ zV_SPFdcPA?NY|RV;cK=sI5z(P2HRh`dQ2`XT+NoF5U7;2+1DYhA0esy74XkZK~;yw z`25qdHbz=DIY;WW!Ce$s@t|;bT2kk<+e-kk;fs|dP{~mglT}Y7t_^W(NwZt>R=23i z49%KdhMBFus;3XHidm~DS{^2bJkBI&K}ki3MOQ&q$lBm(oY>!Sx%5|2o!2`Pq{f)u zr5-Um0X7Vl$6tsa$#SEc#gRzh;agBFZ0KzuzrYKxRYzYICx_D1Lf18hQY`KC3$dCS zYEv}qd)b+-A*S1#EM?+1j$VAeZtO?I;nNu6#RR#0ghb(ITz{IO-XifOH9b>mU5UpV zMcQ2(tTp7@vi0-T(Z%8h;ckXgEQaC1-cfu0i_hayMq|cV8I_KuZm!LtxGH=Y@_%%6 zpOKy(oMw2(7L~0o#Ht-*aC7pV{w&1@oZ=N18+q4(pmUhPn)>Ui=m|*x8;j~LpXoTi z>ghi#Kilot4~?m7tC7}UYNal!G;5o2fZXd$Ki<0MquP^1?@avPc;olKcVO2BKI7caxBN+36 zZC5iL@%2?~leP$|Vqj)SivhDpH@=&!t*Ci!cEK18?wy!}h#%G2_%4}#9vSD}&n#p4 zcN}`k<>H0q{!O=gEoX|c7WCwz#B2J|xH-LNhc`ogLbDa|)+Jqr zx{^tHZk4TM&to@ezS{bgK*Z!C{T3g&GqDLoLEZVT*?DwaUFr|oO!fYGj#&Zovbgz3wTY)0>3h5+=uFu>wk5Dc@6f;BDB*NXa zA)@~Pn%3{>I^+9ag^*#K-+52u7M~4bOr`O&y0f+@dS$LIa1Fh*)U5b-yDmT)+}i-J zmBt8UlFfCsv1;Rd*LmVSKZ`tLPlnOA*(4QHN$&IYif~B8c zVU@1=otK^%lY?^@8E=x&RaW?$5fQNG7u#h%I+Hn58S(u?>scK=JH!xAn&HRypm22C zmC?ffkRYECceTeYJPwVm1hktv=KlaC$9^dz8c#w!2PvuR-#o00#KD`JD|pgpJwAm` zj?l?c#x}Z{(Y`Y4^+xv={L1S`BPDKVq+{E)*x=##FOqvveOZU3%K}Dg4i~rZFv|sN zMvV_?u-js>mO5@(UX?(imswK35TvD&II1fliO+S5Tm`_fBacPnU*fvjditt*8RK;; zB_uzl3DloYMVH2|C&W+z!D0UZam$zCLre}QEoi%A1B;V)I9u^vJn{2iTZ;o3cw7Bz>q-JRK(9lMnF*Atgu^5;r5aA)`;hcOQ!~mUa_ZdPMoj zZr^vR`ScOh;uWo@p^4HwyDM4_t|_IXtD~)wlA;GiF+Ddm+#S|!!rr^`#m4V)cy_*! z@rZE=XxmAecE;10;o53;*?SBj{{a2d)Q~^WN%^kKTYgg=td8(amRx_zHEeC1HbOd zwe>-`yLzm!=$$Szwvvel8#Z%JPG z<;7~8!ZMdP{2^hd$|)wky9o@a8pY;);{{Tb>`%PMEAC|J1f%VP5*(<`o!q}T35`NOSIdr+?fIl@P z@V+Y)j1Rmk?Sf4#!cEvL@i=A~Js?3^ecGu86U@cJF0)KGt%~j#En!H%;Oh3dH zU!;mUim9o34g(}^F1v`*{)&&I+A4}l`jJxLOW_V}oL#11v;P1GPx*~}@kd@v(lw22 zvTEaDxm~O)6Nd)y%s7nU&V*)h$*HrRSC7T8nQHN=-7MWWB$`a59LGX%ILg!#act%6r@Wdw(_I;+}U@ zRYGu_6|RC#laEdICcysyHKLda=#1^duyWwc<((J)cS6bZ_D98Z2E` z{*_amMO_WQ@0Ekx2`w2(;1%j0xF+!dUzmPu<{e0c$F z-9-EPKm3+zzZ$w%Go;tW7y_gC5a9TXc>(r%nA{}vG<~jBvDZ{P zQ#_aSaaj4eUc7$?i!V>8)A*JNNe!l!z!FJtwwx=X#@hPoR>_tcdH&GVx?fZA{MX8w z`6ik+z0ZDU0b)sB=A<^H!&y#xUdZ-YqhbLU{1;v9;IonQv_(a=19~Zayj#qV3lH-YJy*GKne-hsyq+{n!WbRZi)Pz-+Tb2KQ?U z-Kyyca3L5H)KZsNX1v1p`_?o5G1CjX>BGRP<*2HwZ9L`Ag^sx{8fn;Qy>%nxnpQ|G z;vyRLi3d*GE(c2rq{f7_?20;hsa)wC+u6<5al!%PD8Fjxx@Gndc&pU2CZ%PZN% z&p76^^>NPFn1@3}eehgS9p%y_alq z!!K3J@#T-V&b&;*>}s~eTdwYXRY9S&aE!p5#`Zi}eG2;w-K=U||OPY8R4qWn(cX5j5Y~0er`~ z(R~JaXye5(K|5MZWEpPD+#6fssThxkOY%NCaO+;ipO3j&bsEbZyuJrfER>j!RqxN7 zxIDP_3hY9z24NIYvY?;cGdn>fU(5b$(z6io#g3HL+26Q7qK>QZp^P}Pmm%2nO}`~O zR(gMzBA%$u+;O4qd`+cxOPh;dg+?eG-wfeF$6lnrm|muuTnNKZXb*w-{`4nv8Bt- zj!pjn*;2sLX>wlT<I$U_S_2IY49^iNDHA5HN?T^HqCK+ch<^W+Q$u7h4J7c8pNH=#lP8V;La^90lbrc zxqVj@p};CCrFJ0bI^_AoVc9Nald}i`{ku zb9;7OY)rZwHfdwCUe`1=*++kZ;oCnRU3HJ?<^KSobTWQ7U2p(z);IqEHHmEV9lFcm;_=!l>WpoeL@~`(9XWW4F#RKK`<14b z2BgDYT2WMK8^t6NRWdSIdToiafYy2dG#e~q!xe?V zx(Kq6NN}3_U-VLjxVr*k@Bmz>3|-(FP}z9__CuXHSQO>9yOwqPE=&2^bsbn@I~ zHX#NhhT+oFvR;)vQ;c%P$w?0^*2H=hrkBE!J}7~d2RP*#9qd0`m?;x9a8MU;?44ncG-HbCVZI4;i)pO2^JYNII|*#cd^7~%-e!D zUW{RQr<(YsRhw(w?&M#(LmX88C#H3c6pQ9L2DWovaTvFeR%HT#zw zw=}a`ub<&q1M8=ssUQWfEV;QR!u{3QkB0q{luXGlpl}u=n|EEm4o?WFtS@^B>bQZJ z4GUI}5z7bchPW0r;eod5f<~uHE4#GR*4&C5Dx^Ubs_GijSlc!3x0n;(i!M)y=;elX z2hAkH`F!ptW9nC~!R4fyg|CyRow7#ZdWMYF1YXzD*V%G>K-yVxN@jH*&mpIytGVWoafkL(PEXT-kIes^}XHF*4AM zq4}>;E-nx8a+|$R8+_Nrm~){akvNT?*sOwzY8mLAG|!i<5O~e?MfP347Su&HBbEab zm>S&6?$G2a`y?JH6pI@wK$Gj6p_}nC{k11;g zt|WO*o9(Ldj==FNpXyZ~`eh%ZiiXdRh zd5UJuMf+#=VQjr}FMP(^qV`=eR37CzgnqC~Ir+ z2hRx-urN0KTq|&@87XNoHy<&nc#)uPG}%5QfnklIs3M9GTN{WVZKCJWV$x6 zy*UhK{l@FBOb&kd zMKOaO=>qvGhzw{N+-YU&Uy26fhJ;3Q7kk`ms^Ci~tHdiQ@{l5!0&l(bU9hQ^-#e%9 z#x7bfhtId!T3g|aTxxLn!SrhSB`mbESBfzly-SgD^KAwD`YURxDCp|M62~EN7X&!| zs@(E1nt046in9)6tgWY(7QBMY;@2Z|DlX|HARBxatMQdHDc?zu5aXB=d#@oqT=B~0 zMi@Z1ys?kBOs?mZuYHC<54zol@T%#-41Q*t<+ANu}-_; zJ2CyFdAj7;z;J9+yEam6ciSmQ+UkL?kPm{6uc_l99|e4;@%@$<+#<0K&~__TZc|Ry zM$>TcYzG;2RmWFSVv+Y?$N{ytxw5F&)azi&d=vQ}$M!8_t*9XHu}w@5w6WPuf!@f= zSyLEc84hOOZM8-UsoyJF?4TX&652_Q-9fCLi-}a=F$qU@m%_c^s2Ju4s*63 zYO#mE4xF0Tmp(aKdV>6tv_m@v8I(9@u?NvyWXSBf8JK`>00||RA(4TM^4x4K_b#4q z)0VOQsFr4$c97x161|RV2zaqKS2}ak05UQ00^f2kpH>jYaEHpZ~fc#ZKmtqcrndv zHMejcc5ZFKUK*OFX{Ky146!^7RL830rGUpP+6f?meMrTbKg{R4EAu0kZrHcS%6njQ`6PD zWvICOmf0NxAK_%jj4T+>NJ?!0l4mNTgX&;{$uD~#~*dspG;E3kU_Dw{_u zq>b5tbZ)ULW+_cyiC4>7XlHDXlc{FJ>jPo>F5_{mWwMZ2Obd8(>_^^LMhtr!$P1lH z*8c$C59C*uJoTS`zI{63hVj>L4-tvMRO!p&o%VXZty|Yx-ImYkn51*B*G$1z! zsB?vmX-E6Tc<5{VO$@TS7D(Aiv+~B>>_5p;aUT;pmPo@KU?s)gR@(R1`KhM%_U~h) z!&+DYv!MrG?rJrUX{n}fIoRS`J(Gw{>O} zh~xDb!~(V(M)~9G9DrL<_i(dgSl7}#Wa~=N-UohVQQ;w*6Mv;Mf5f$Tw9vL_4Se-6 zIL6=`6j{L+*5=wF;X_1g=4BNlsoWxIE_9{&h4kF$x&Hvg=-2Yw&(vJvF@v#mg#GKU zFPFg(yU>4(tQC{tKG^oV2bIq+cbHYUT!X2#^j%q9M^oVNUrQmOaRIOi2sX{2&GA1;67CKxz!}S$W!}}g~2_+F{_M&V` zzZk%<95Qnm!)hgHV0mzPZ`K z7~J}!h4^y@#2qYd!|I?h0Brh#Z+q=;g5}GHU@ep|;Z;PDaDA(AruX6K5xr(29Yur@hkU=5jq;O}QF^*EbfjbYPdBP>#a-7mXT#(X=2P#@mm z_0q+m>Na~e{k7#BAH#SSB>96WDpk!8NlMgAgpvX&x&lMFi)?T z6V99^(XZ1TJxe5_fQK|$@a}(!tJGsytaO-E?ipQpNZ+|$7M_#CQki;mSfLRcIQ7~r zLe(t}1n8Tdmlnw403OiOzTBo*?8eD`zL$wLzANxcT@)YIX(Mcrk*)O9e868Lsq-*_ zt=F>f?KBj$lhxsK;&jiYy_qb*!r`|UZHOaOm2qK|m}LcCAtk1(V17nI)2}6Ya>K4$ zkEQtk0Fg1m;g^|SLkp*Ll~BM&vOG6WRrNm#;Y`EnI+9qCn%3ZV_?s^^{{Tcqiqq4> zQF+~!%y5CA0(AoG&`*j-;m9M46{vKwO5#Hp%j9p%g=X$n-*ujDNpYBC>OAHxRaJ{& zIHa=+J>)Vr-`!|B1=;WhB~a%}ht&_=#KxGMegffd@hxpFJ{?C?z{kPWYu%J?)cA%s zh2eDc^%6J{IJ-J*xwmz#Za8h>K9F!$Ve`p|HKB%SGUZ{@;<>&S!ySy(z6MAbTHM;~ zSGMu6f~uC5qH2bkCwbfC%uk>Tl}Roeg^GH*Ohcsk!2q@mK<49x&SLe?$g>?!ZoVJj zsi|U?yR93II4%P**G}12H?KSKifV8&)5}cvy{+2j%iUr0n55WESQvvQW7urom>IP1 zb>yk5DI$!vX=4=;xwPb+JjTQi`RupFeAx2yWpdV8dwOgtN4pHAblN<|F0|(hoW9*#45G2hTwZhw#0@ciefpSJdLW-qtW(?lx%dSIfLrPZb?4 zOpRc4tf?TL<37t)9rU1Ks4qBkGZB;?q4M`TFG5F$Cml+O>0VxQxH_nvPP+#z>gAXC zO!3w~8CUo)X(k+FcWuKn0PX525VRK9_gH00zoVwK#I+?wCy zv&D$`O@QSTC*cWq@>`Nmr#$Cvd3?pJFOMl>x8BL9q^zcvXz3j+Y^aZ=EryO4*!pa~ zoH73Z3Px-NCH*ML{{ZP%v&Ehlg}cHn+L#aIvz6S|mmDPfS%QNe9pToycG5@>+~xA9 zue1r zS0^!TV-8GXm20TVGuls{WMV z$3q*x^qcyt={!M#&np`gXEU4t{mXYqExz6YH?gLrqBgqnTsyGSMbMbhI}4>~iGo1JXYzr4m#20y;m0<`u<5z> zU-DEOd%}VFT>3EWtZC2uD)0O=IIa6&rkXh2i-^NS1{(_v18x;q)a`Z^Ndp`Exa5~9 z2ZBQM^b_E9;#g>+r+bWKkRUAt4~PLRBd}wFvaX^Ub4{GEIna^;?Q304`D>-tw)vz@ zKFu)mSh>Y&d?C1HGwyR48ZGd$_a>{t`izu-f802KBwIIyookvq4ZM#Z$!g{P8Ju=~ zyxle#6x9@tH7sZ>c49^H`@62bBTiXIK@2Vr6!J*ocDT&d(rNIaH_bkW@_8{g%9dK1;18MhuX&HKUFH05#34^SfO@Uo(^PE_rzL{V(Hw z20UDU%iUOpQR7#9R9tx=1?1U9)_z4|{steX*edC1>Ld@SiLZUE zF7h<{)ssUU)Z!|JHSq(ZOUXF?)ig~sK*M_8Y|D=Desr+iUF!4tJ`5<1_S#`>70z~-1j z8px(CEWf>HTe7nascl9RB+*173@!j(`iF0_nOvma+Q%7gk+DNhONc%eF`z-I4kqNA zcl2C83)8~anesQP?Q?8bt?@064OHgYrqP38ZNrM@$4<;Tc_`TCN(3!%k*&Ac{{WrW zkB{>1Qhx9M0H?P<#F*PR>GA&nq_BT)RbO!k)SJ2-R^I#TGTm^$X*9&hkZiqcbzN=(y9pD@1L{mC#V zFgsIgx!;&gi;!`twXo_1WxIJUGfL|z+S(SFWqX(${Tv4NSTM{|vXmE7&5*f;hQn}1 zp>*f7aF9X2?;rUtH6;{|jif#>Ey-T*#^lQnG2`XqmnF}ZLf)nRwY46JO;njkF8=^@ zF3t}fFGiw*swT@M`Fc`<>&D=C1AC1Y+N=u*h)N%bIg&QOHSBO8@(!KXvzvy@W^>Nm zvGaVVhj3HOBAA_jq%MW1Q!OE zG@FZ9aIf(OF-tWFjk7@V7zLRb2KV6Q*?8{dZfeBByfsMb2&9`abDYMVZMY}5qUK^4 zJv?}kkzjVd znyEjyz9)xO{vN~G042vUgiB)M$+G3(xHJ-Cb4E$X*R`$Jz1Mtrmka>tKo`IEOFC%G zy&%lS0(JiYXJy60F^X1W6H9ZE(gy+~BoHsfl*fKdud3UMVD!wwoglt@xLW6dbWQ-C5?>>SOFL7b5mK*~ZhL(ZN4|H!W4GuA8*7xj^ z*%w>8SK>Sh3Tarzmj`tk!>@6w)k%a=%^f?Pa30s(T<{e>C&#HOn-O7=^9h5^atK{(Yz4yl%oUWi zjg~rjqkG!ZaM7q-G2EVBpUle~xi^gQsNzjDl|Ct;s-%KBX(RsDS2Pz!eGdsqsQ#OZ zhC>mf>DbCZ%pGH;_p6!{*k8K>M|{5 zW6vY#vx`$qKY)+Hc|0bPsy}28ik-P18F#y&4skz$3({9t$44A3oy`(R0VUcrAvE#R zz{-hgS<`)sPF)TAEA-6pn6VARYRNhXo__+oE9wlu7m!VW z)=3kA4ySo(Y0&6b&gg$@M-X^$WMjE+{40203~S5W;FIKzqpSlGRr+ye6>PUgc*iy2tl z!tZZG?Da13GpA!mvj^&IJALbq6CB)TxVTxaouqo$YQ0od5DD8%`B>_k4LK{$ODs>s zCSx4Z_Dg4h#m<*oj@}FCh}076FA-53j;VW_8=TX~3)*<& z-k~4f{!7GFRa8e+BO-VJ3xSsDkN9fqURo_MrE41$hs;S9?iPNHM^a0``#9;MvX*MO zAup0lwhqt%xWDL-RMll`jNpU(D^qNLA4llRk-)_LMu>z7~fNj%kTo<=fbmA%?K zAsp2%54^U@!r^9(!ha;zAR(JE%^USPEfnl~XS<_)uf3KrRaWbM@N4`k$S14zxZ{>f zhi)>ZwP#)Uc3OPFa;BIJSY`&%y7~+0a92*&a_7{{_-3<6A=fq|)ng6)I&y1XS$f@B zoLbjeqT3+pgX5LquJaOh*=l_6YlB8pa1F@rizRWC#z@iD%tpKa0M84q@^aQJ0sjEH z4j_Tv$)53ekDD%Qk1wLs`DW>6vp^qM5A#a-rD=`LEg6limw&}KO=1<5PkfL@=e|Zp z%&fRN0&ifdibnfhR|i~yrHa<)PaETNg99Ghi)s#}cfSiYUMSi}ytuKzTJ5&qiqCGb zI^$Q;S5wm((JS(~uQFvi5)Rf_o-)N9E4ozgA|Y#7*puqGm>wixl!*y+O%8D!gZ}^_aObI* z$U2TLH`QmBthK-aVos|wn*5#Fynn~5>2TFWiql8zwWz&`Ombt;%fz^7tj~diX;r{?&FlL?YG07{9!EV|P>lYbn+xuXL z9+L>2?ZcS}&dc>)+|T%2ofe937u01AsDnJf`|Tm3-v!UZ>8a?c#eN{h&g1=sC^yV| zzq3bfS1P`yN{Qr_Mzybby_nF@J^*aDF_^hrx8dBK($?2|WKoK0S)FphXB%ut8fkm3 z#uegfY!3&kr-_m_zEDGC11|R6a6Bzt6m>3+yoWW+4UNwi0E4%t>i+;6OvtecaYkF0 zAubKr>!sD}jq?wj~|g*{A~MRo(=op*ld=xnQQGl;gG(TZEfZ*!3Ix=77?tVXSl!J>_zhi8ai{{RqD841KG zGrWnI3vjD~GYH^xq<%26Es9|}^MYSKIms)Eb z?mm&@n`dTk^$z}Nd=-D%lMpoac7KShKS|TRDvDOH3qB_Uaeh(yHI}9I)ncnX#4O92 z+h$y~{@c_40I|)gcl|A6zIlH&-#T~_mfhR`0L)$+7kzlfDmrYGj;rz!ZL=?9Qe;0y zuohpbmA1C`>MNJ1WA3>)UbWQL*ZS*!#1~J-7G+fV_UJS7a`K)Ro}}ZHEt9R&H7w1T z3tsEJ^pfh4UdGdhmKa8G+kK~Qt^VlD{{Y8bzYNVJ_4Ut|M@a0E`J8Tkvh#Hx^|*lF zrhhQHe@5QY<6i2p@Zux3acw-y$X2@%ZY1Lnmq$Ax0DHIp0NF5;wbEbgk9a{I5u(4@ zZ}VI{7zbh$*8c$WU(Bw)BI$>Ksb3CmzD8Qx^L6BWD*Dln(Kc})hp(<+EqzlN{A*eN z0Cal48cEZcz>{Mebos455WA}@&+x_h6~p>Q6@wCu&@w{@NCy_S;`cnRm(jcDk+tTh zH&XGBFtN3Ynw=N_0ArGBoZ7QyjVat0e!E`>VSo8w;49~o&0Z?s{jVcNk9O1 zz}RD2;!v5a9qx#RF_HiHv+ApZ6GbIR<2)TO2%=p>5c{{RqP4+ozS z>(3c%f{?tKi&_Z_wOw6X6%1^oj-~GoX%BNiZNbxp>Bob%7cI{ZJ@)z*5JAInk~Ylm z{#abBcMp=Y2*BMOd96&_>J#`PO38dLia!u;T7viH7PtB^y&WbuON97u3HGk3bdWTL z#>?@_`MKFH-$#mDjFIEw!zDQE6PWyg(Rr>kwp;#1cf5H+)vtup!XIeB8)>P&{)?qe z;<`sxM@vx286=KwT%zK}*1GBAnB^W3Gb5>N?|a5;M$Fb7%9vZ)Tz$8c{k*q`BQEgG z95DdtahZnM8Njq^p3oigxk=MLKbi|93Y1wJ8PRU}NLdFmY3bHN7uu6+I( zrH-Mr?v9tN?V2TcC3-s7FOocOSF^6V?8aKytAsd1vu6uvMBy zO-xQ-WcFtfzFeIAmKNe37GStELf`ge{{SVaT=TKc1|oVwlURChCpF? z%q$L5ajN>fc;|(fE)5^Y+3)<8h`dqZc+Re;`BMJ?lIL=(IH%ocz{9_0czZR$_BlcO zoW4ltD%lfE5jyw1*W6iKNmW^eR8uze&xP(~m19g^p!S z#~n8R0K~LZR#VA}VHRtzQqbtG!KUY4%H?gVhBF^e3F44niPnZ{dd|>)d2u9;Orq^} z{g>10JWqpDRm%lHc$PO7yZ0dL_oV)m;BWG@IoIRa!qm#orgFwx?egw~rrlGwt!slu`Z=`xOTDf86NXg8?R3`x^B3&bk8`9j&mK5yxUF}+GNMPE`GHi{)hP? z`**_U{Vf;HAM#IrYcmafytmOK=58rp421Mq6U#5avhT+Ws(y~x$gEGb7iw%Rs_o$w z_$^$Lw+wYVrV+TFlzC09uLw|7;Oy|+a?W8Gd60ly)0a2H?^3lf@#XT#;+7W>;tln? zO~T(pPoE8}kl!;{+`lruf-3wl=H0%=NB0ltt26j$YST&q?9#e+ziu~&^^nGx3HBq0zcH1Y0iPX|x<`l&$uvXzc3S%4N>Id|rCsH|6Jm$Q&!^3x}<&WtG znp)gT4u%~s26vtsFK^_qvMA`_Y*B0m{m*r`9>sIMmGS@{>UNR<+T@#lD~9^8^Lzda z<^D%5S$`Sn`cJ{&!;2pG-CH5D%Kb_&sAaW3f~3^2o&Nv@<(Svf?~m+`Xt_~CJ1_o9 zE}e2?zCX9JuEg-V>Vq`WO`9%V7;SI%R@dSb*rOQ%lB*y&voa&8^|)R?67hB&7Aq?$ zXxlVGz!!2yD?TsdS*N0GG_VRr19Ik%H^TfcS9#(2d#BOkrlmB7n9Ws@$341wpTTCV zsf!DRu|z6e9m|WI6OHf2fqY_L5mz>=+D%-!z_WE-ya&d0FQl!ftTN6fWt!~T#(S&1 zt~qMHl~ITq-wRDM9N^x*Lz$#r(VqVR-dyhw#!W+{eAQ%+7skx)pC3_JWa%-b6+8Ix`YF<0l{2woo&;mT$bN&6ZD4jCOK7m`^4+=UQ@%2 zYq7Y?#%9=p3iV$|V=sv7MepZ7kX~!UKnzi?aNwyd#_jIsow(!C;c-JeS&S_NTxd7f zb(<40Hx!mWgM6<7{npGe!kMM7W5vln>F%k-;_BkE$i|Y>AaFK2E_m|eZ;JEf$CQd{ z116zqWMVO$z=6(-(_p?Hp_Ul>jhK@$Vbtwm>$j@&HN?S&0hEVzTy5w=@8KRPY*g{) zj-=&&eF(Lz1-IKp?%>X4hlhus8#8lgX<1E-Lg>V;b9}=vEp_{iSFpt}x_O|Ms(;^2 zBbr^967Wa_mtVO(`>z*1GS=eJ&fznFZeKa`FG&}TDSECirKp*XZeE+D$^ptiIv)D` zm(ki$1HzCR1&Hv|)||8!6h?6S;1q;JLL`#!CX$+#fEQ ztdrC_a^k}5%{LnGv%xc&CV39$ki54$?`_N-_#_T)Ng@Zx4r_9|eiNmqs;h945dQ!> z8*5)eP1lSSmM_frYo_b7;hbtp37-D|XLNz&I2_@-U3xIeYkN%ZsP|PEZ8Z%&L=w`r zX+V%ToTnz5I^(j(gtj`27D^J)lorU#HMz4F0lxbM!)RXz! zAa&R~X?;HB=CQ96Hlj$*S2e)3#jlhQEG?#*E|nLJsp;s%0hxt}E;9mk?WT*@yVt{x z=G<&|42C>Q4}`#MOADIz>+=iHI}5`)VUMP!XaJ9J1Myx%7R5zgAjiZW7{CBI?tc3u zp0awGPFV|iB$emo<(PPH8F#q$z67qLz@92*xArd?TWgmRE&SKI@I7TMY}HazLRtHr zNq%pv-8Nqdtg3TGqj>gK`Bz9Q{C8X#`?zr)1^|@=idJSy9fN2&wM}Qdb*CFu7)|X+^~zcFU%~p zULmfp#2ZrQ7%5?O;*K!lGh5#$n=bN9yhjgHb@Y!JzA#`jM(G=Ni#67^j@M+k!=itN zaI#`~h=u^b?M9vKx6sNfMLhDBNasS+nZD^g!s!tUtkN1wey#TTE!n3&?syFTinKL_ zjrMsg(r!nY%ZynN!dzb5!tKx-au;vJZxLWMrGmk*KTneR?iY!GzzsaEw>jkf6~=f? z?(ORECc!2rIAlenG5VKWAKrh-UHaJKj}CEoBpG5BX|cX>Z^d|)<1AyerIdP(r|7rg zShV$(4T74ANgtRSJiHIYE_q1lH@9Ll7xcZM%zsk;_H71-i!L=LU)xx=P(!_~nTb33 zcwW{R8=Oc*q&k~hf4O;iSQ}jD0q;$7_pY3N-1DrMOQHUixOCnm%>Mv3Z9UV)mH6}G z7~=$yz0NIdh;_e`?Nd>)juHbU!N0wtx=L0{H&Mmc+e2k4%$z?Rn@vaRU;LMhnv!`c z-z;(6q*z>q>b{Wb;-#gdo!`7`L#zS5W2Yk@3VutQR}WFluAkJxowk z10czJ-$3D|@9XN2QB-6MEEgZd7tY&`VwANd@y#ZL3ln>R`~lfx zd3&TWvrR5d?pGYYD*ZZqGQBNtiQFnPQwEs%4jQ?7Od<1CP>J0b21v-z>`(lK^C269 zL3O?hxq#!YjqRj;PeG0MbmeP@mgRibGs0sw_U)#a27?};a6+~yruK%(EI<)$ZaZ0E zl+DwD?5LB@HPjpGe?%gZp|uU_R6WcGR-0LRY_53RW4;}7xs^{ZtSu2e!MD_Gt`dyP zG_yWAZy6SLq&Q!dF_wCC&dclzog{?x-T(k<3XPfFLm-Ar2NUj|>ZodGF~|$AVs#?r zYQx_woi@GKVQ>W7TM`EAS8>jDs^po*k1t9==Dw};RY>VFL`+g>Z|<#5bjBw*yjTK7 zg^qzIT2j|IxCb<8VPJI|q}lvc)JY>_@i8VzWx=WF*c zK~Eo2Jp;V$ADLfUisNveUQJ%tQQngR!PxjSVa>}UOPubjyp{t?UtQM*D!&TDQ8ZQf zbkMnu${Y*a2=BNdX7L;tlz3duk|{$#xpA4cZ{ognB~kMSJm1yZ4^87T+txj} zRJGLx8v2MS!@qV!S&1Kd=;62>CL>!FG+3QMl23OudLPAjDq5)6OQd#N>26n2ml|{v zM))Nm?Dt)J5%XSrdG7qRarfcw8{s-v(92e9YMjXB=()B4=G(r@qbGnUR@9imIuVVqu12PWQAiTYs9i8r)2KMqD1W z^-c94e>J^9%ct-(H6`LYnOl?sbF_2tD<||Kyz3N<3_EoiK_Pl732}(sE%2I;HMg0g zZ;4r54~*q3%@acyNnkR^r{b}dvdwyKOl-UM;md>LR3y{;TLWweXnn2?`1uv=;ED9# zMinfQ*@O=_2f194g!rDSaV=yJIzUB;m4iSXr~Av%96u75!mh%dO2H$d>1XS<-xTD# zp3XU|>EWhvKSarU#@dbO>9X&RmS>NGZ zd^^LDVqwrjjP)HJS2#A5fGl*>+WM^ZG+2Cf0g_|ovPR-8C|$nCZPUD2!<_QQ$ic)O zZ?sMS01;YgBWSOX*nifd+v3H)`aK(HziGD`{lRD*Ph~q_weP>8&xg}t;=Ur>b<#M> z(pYHT+|IbLzZ(TEa{6?~i!J$e{CQz01OxqD-TZU@~SG^x01avWb<`I*Sl>WBNg*rUM>U-`91^f5%SK3-WE{>wo?#0sjD5FXp?= z2l@p}E%ll|{{U*{*VEx&v}Jqow?`m*yuQfel;2T%YP-*dkoY~33gRgRty9uB_wVlS zzKdC9xf2X5wd63i-xj1S8hdL$FuezjnmwXx{{X0O=H-hEg9~MSKT8@jJWkiPKV>b< z>x&EUy8bYVhDxAoF+oOM5CxqA{KDs3jkhUs{#!}MdR#}t6HQTxSH5W7l-{KEB~4vvwMRT@k~+g#wx-?=g68ryyOTndU@EY%Y1d@;a~8|;oY*JQ^j zFM}>SagsXnTzEQ!@n(ND=dfFxPLsd2-}7FsswzX_Xd*S;I%bCDsOb}b{64FRgi~R0 z;#9^gXip%NIkAdoH!=98Ie4p<7Ue4M8@a++7+mbVHrcn*_uk7_f(P}iL^rg5kweAQ z^ix+f)#8k!af}R(gudeETZOa1@KVBR-A9Nvwa&|!wj#{7y|+_yrjD27?D11&_OcK9 zlliYvh>!lq;UD=w;46tf8-^Lno#H4%wHEewXge;ijAb-F2c&fo_JJFs3~*`ljIP$p zR`#)+FtTO0lEEWk!)x3C^GPW`d0Oh&1{)2u^Tqjv;i&PvN}irr;iNB)M>)jgJnpss z07$V(Dcc;BR%=U0@*Qom>t1<{+v}K9K*KSdy9YZ@{II#WlyOOc;OuKek_uoREM1q~ zBjL)P2CbhE@Ww4YQv)S)-EalAj4w@sNlyocaM#S-@;V0Djb>*%PT$RVx#Y9?K9}R$ zB-gi(G;kjlQO+8Dk)jaySlCz$%d_J5)4r~hQo~PG83(9d(9ELrlS*P;YGwyR36b$&XyFo8y^dcP7|8MA~D3Q3`O`CIzRYeAd%nD$g`@ zbrjUksicU^bG_k=Ey=x_02Tvcy?}ibtz}c#$l?LlbJ_=GM0kZaSQ)9E6(jVDXGB18 z=IgdUlQ^-QcKCD046a?|dJGr#c*9-=NDTu(CnJxF`29o_uBwyIsgcgUZgVfU;SjNu2ts_^Mv#T5HE=5#`sA zjb!bI8I6bgG6mdC$TmEmk~H=0mTHEw2C(F^=wBY<}Vwy3Nlo z9yia1tX0MwK4-PhaR3k;?7-?cE9WvxG?2Z(kb1ihiubj6j4{)_#imd8Zu%Z9W_XVSXLG?kMF3{{ROsmEshY zGEhJwjpf4kuq*AcR?^f}VO13Eyb?tBGs|rS@1n|ldEwSIrq2NF`?infxpuMI;Vz#U z!l>;cHvty8- z`?mh8Y}M56#PE>TI`u6Mi^?<_pOUxQ<0SQ8Iq@74za7L#V~8~lAlubZNfBi6m$twI zy82CDiLi=lnIWiY>M_Nx{o78zdZ+qNgFi;b;!pjPe^t4a*QYzhj`z3EYDMZCK^b(_ zZNOsGYNDb_?NV9J%qT}LhJtk+yz8lCBR=;%62)TcQ`aRqAztWemtz=^S!I5 zlQ)UHTW_mQNBfJ$cnc1n5R$E>?TO8&o6Rn33%1+>y_I)}FuWfZuWe=e&N*Hi9G0X7; z0zT!-FxsV;W17sm+;YD}(qS{wI2YEkrMW|V@PKXcMoco6O?{4>JDWxbeKjO&wmOZDmOdwX;e(i3I^I*CNO^$8{7W?(yljIZdP*R+}58fZesSG zbSu{3^;ms1F!tBHNOWsi7;!%`yM})YgR5y;ePM9^OU`0UrmDvB;cRQ6aA;_aqzm(+ zoc3oL{BAqPmiF{sAjGiPYki((RQ~Qb+h#CZ+;5`fyA#3A@zjs}q53MkK_jKcE1cnP z-#Nc_pUGh(HpCU5L_8*2Orpv(R=Tr*y-iNaW;D_ za#cp)^COxsl#2il#1-?;AG#BamPG)K%^q)3y5WSbIdWa-zTJXxQ#HTtf5}C_h8jmk z47FW1^4^g)`KY?|iQc^MsgK&FdtaChjjexGT=lM#$|Q4-0_xdtcR0E2oHd6_2CCbI zJTT;)pxZ)PSD)g`Z$A8aWoJ?SSH10M&=6f~{FaP1vGnz^FcyICA-7_w{f$0vHB4?N zZ5*$lz@?6|IUh3|8gI(n$0%W~`F*N4hl;&O5REaT+9Umx>% zW#sLOzY(`4IRI-~P4DF)!rJy%Vl&A}P79+AcV{-s1xsq=#A2E_;A_KdW4W@k9iFzh zwbhWt2^RNncW40L;J&@y6UVsl%W9TZONhQfG}6gf=4FgqF?XRi(!p_D_e$pnTx1pj zZ^31%!*OWqDW)*U!*;!g%-%FsV|0|_s7Z!8LmQ(7;y?ipwzjtyy_dg}j($($_x}Kt za+c$ko_1+O8V1<%xs?*R&jcL-UCO!%T>x-+GM*00lKd{PUq)E^uZeKVeLWc20-m6C z1Ed-B&~Up9#4@m1t+M6Ch1Ri$AdlC~w!wu|mNdAs<93BE8Ge(;v6`)}4}0yYy@JZx zgDYO*1(+@`!rN1Z&ohOiW}Z+p1w>d?WNdg1Zl_}4r%b;@)|q22sE{-`7dVFMS7o?E zsVO6>sFD{k*RW&5wp_Td>d2>S#BBr{k1$;c1#Gm;fI%Ksla;MDwb!E`?DIUi<+*$- zj;0ehXl{qolq)6Z$@`J7$3>nRN~YDBB#Pdb8>e+0O;n9zvP9P#7rf{_bY5GHzT>pM zd@@ZTX)Q0i&bAAyhfp>uZ*0US=tExzO>l;n5d<*uQ z{{XWl%M^ZATa?%1OGR)Z~%KbAskS4XctSU)51$!Uh6vdy6d|Io|*u_*5^9AUDhdZ%FEfNFgs=mhVPhiarNVc$tonfwKfn(^l_-3;Tp~7pR z#PIjk)XdT%l#yn6NE&=~ULH(tc{^jQXNQlapq{!(8%GFRaunV0|V6~1H z^y}JvIbuGO#$)%bqt43*SZu6*A2Wy<0RwL^R!4@;F3`{g@9zb!m-M~9m0`5+hY*eC z#jQ8peOJSot8gmF;vQ!?gg73~7uVr+^7l~I1A7Y%{K0!K0^{@H5X}Ve86$B7S=xfV z9Dcgk#x~5h`UX9PQDT&lvboP>F3Fr zEfn4%uY`2qsggE*mbipyaMw!V9a9W>kM@_*za>Q2RLq>Upgn-tIC7I5r>-SmjxIb4 zh3Kc#=>?TQj)9e@KNhm|;cmRMtu<2D)SsmHKx!p0drN?iIm>Gv6`mNZnop#Ph@Ui$ zh)FmME+h*FTSbbQxqgxzR7emSmk|E|OBHX1tq+f;sgb}$WSEC>sB+YmTl@uAB%eqV zG4j344wB6-ByOqtHmZ_O99FUKbDATTz?*@pr@+Kh_}*HHh-6N5mT}v4K97TGd}C8Q zq&7E4Eu4Ky&Z}E$`YEV;{7Z>uaUfI4YoFo?{)wl1{7Z=DaX-0!=lFu7=+HKk#1-;R z@Wwu!_9x;MpGF~+nC*PByfi)s*q?|}%CfY55z6D@d`mGW_b>d?eGo`biLn!Me{lZ* z@wFeK@XAbnzDcAFYv6vT;+yEWLrLNqw@Dyqd=B5fW~}ve+q*mk)h=*1CTTSExn1~V zG596}%U(bE%fMn-om(+E-4yO@O_}A5Ez;L3*Rv6fcoH1`X@#6xT0lR&y49I$$*I2% zeH+WMHlBT@pPN@-$3zK-evk7j&C}yC&xq4Cw6ySEc**JJy@4IcT^}D*zOuFfhnGAE zj(aekPx+?&?)Yb|)}ycBr(V8dHt09=UV5~()!LhW_5T2wTRx7fiz}*IR{cyvFO>IQ zZyK$T*GwU^LuPpn%X{3dPww!|o5N3e4xR{({_Xz&{{W)kLzmjg7C+Ww{Mxtv&}aVu z4;s+p*UR=!`R=@C6D z9a(=h-(!#e01u$ICBOXD^UQL;sf*6xP+Hc?{H-nSO7`!qjz6PVTGtUPTG9?vZ|yI8 z?3rInjym4loFFy$wKKK2u4m6syB|nT9@~_U^bP+26PJ$g?j~D~Q1vEhkJ?!Gd3E=K z?)@WTEte3F*`Ib8KzEe)cXe{}l4Ii<^u7$JnxeX~^1aW?6ijJ%*%^QX(Rs;Q(_YK( zk=Fad)AVtRF|Mul$voLu8)lt_`!6e5TTp9W=%n(s#5T?1>SH|F5BSH>rggj%NpN;& z^ISY3fMPVj8@N^f05Y}W7>r}URPAJ+ziU}>loqa;Or^O> z_1-v?GHEV9(6?Wj*Wj7kC0%ov+W^?X`-<}4Nf?Ne5sj4Zy9^^XgmQbXhtaMf8wGQ! z-WubQ)@k4r*YH2~IMT=+QtsV155;=yM22_|4s*5*i2ne%SIuXto7$voZyMdU%dLrC z)5TST{{V+nQB%7#?dY_(Ygwl2S>IYtJa3s^UkPw_07yF8OaB10R>{cr8gMqvALbX2 zqpihhXRrK@sBomSzk`@tH0=6V#Dh@ z{{WU3pzzc&e?^%*^-@F~OA|v{=C!4_*5r%t*?BJn)kz@@ zTl_syHXny$RW;H?B+n25#p-Emu{u@*9F`8! z=Ru)gFY!MU{VyGv-RkY{<>vWwnv9tA-r3?tI7nX~P(~b0^tI0a04@73SwTzDqKFGRoHtUweVJ$F-M)#HWrpqmn|<**dFjo2{2q z@BaYfo*bC*+Z|fkI)R8lB%DKs#VCGv7K{0Yy}K)_=VTQWk}=MFPGpagR>&OU4qA z7l*@HCS#KAzo^rN^C{>|vpJ5I(!Ky}901?K(}d=jZ^yM*17xMFt%>b$FMe}=4#{y@M0nJ1$m5qTqv3Dn ztfH=pN~*WMZF+<>IE@FQ%U6g&CNCTyylhLwvi_^;^_ES(Z*IG>w;p4q!YX3~g5U-B zOfDT(8}=b@r^LK2(B7kIv+_(XCjS6(=gWo4 z%~iuGC6%(U{{YbRq;4?jKf+hb{hY~B0CaDALv;g7mG#Lh@WU-T#F2Y2f!bR@-q!v~ zsPUf)f$q|O`!D|hy0giR%4w`MEU%iyL}RapNTGCjTnGW%8}~yJf^msUmN^eq*Ui4G z>I}#HF57EO@})oUu9Y8%d_9mkf+E}6;+y=JnsHoi_V064vR4|Cg?w7V{mvwQZs;?Lro z5rAiF$HoT!tFPnd)@nI(@b2#TeB%xiMNuYD(9!@mUeZHsbHWY(0I|ROrF0?jMg=L+ zr2hcq57k{&T}13l4SO=$P&#KTe7l<+bX{%TbHk6T=N>3)osCtNf=^xFntU;Z#f@;W z1;pI?1@EeSLxRIJk;>MWwZuF3AnWnvWShla9b-$MkPljLwKKZ(#p0JO?cs6kLTo;7 zXQXK^lmcWQR4*SC(^1s>Lvsm(!<_Fq2nr--7(s#_fm z9XwG-avmZLF8h~{pUvEQFq)ci>#OQ3C6aolx$`)Z=M$+}pl4prX$=h|f;T7CXN~eY zLL~&X!&@Des%fH!EyL^%nOBQF>u*LF`P1w_M;X*FU-nFV|RA21*C#6Vo9@m0GjS*e|!8=8~v93%I=OmMi={sMMY5R zFz11sDoUz6u}J3C0t;n%F1X}5deSfTLPs!to2_@O>ON}k0ZL8%t}n;* zQGF*Pd1cSVMSGrKoS)(bv&$wQ14kAH$MH;Y=-kZF;qYm#wb$`l>hOSJY_Ev1uG3w7 z*4Oh~nQ-<%K@t|QUd_wD&2JugZlYcbJl3D-6fXkw5Qh!hbNa59ABsa$BXUr%Hpfey zH14r2xyAbzHM@oDyeojZvS8|0mo$u_p_a>{^Zr-oVfgs=+%V0za{lwq^RE%612MU=VKYC0l(zFVOL8e zk+UmU8ZW3D+f#Md@%biL?s<9nxGop@F}oP0VIkB(+}}I2{8fLpsM>8M5j~xpgkYtn zbyPu)4!eh!Ex}j}a5i()m98NBrKNVY#^Ge}-##k@QG(hR8|>iXvz&UE46mbpf3=+c zO4i2QphET=oihTimk9Qmq;te=c{+d%fmrRN>Ay-2HAG{up^!N8Uh5#-Zj`yLj*>>c z_x{nvC3Pf?ret}eV*`zyVy(ld=AK42D!4?4-5Vd3!s(ABlgpjsw(2Z6y(UmwO7^%N zeC1UxJ4WY!)uq#L=}Eufp1zVu<;y(rnHqARml_3{EGe}Oe5K4iJ>1*hRj-mKOX%;$ zD0FmCKPdNxbAQQfrpM{r!%Wv0X=)tKu(@{Eu{vK%otAjKIa@7-9UQW>i}_=5C-7Ip z;5=q%SmTG(vQeS^*#M6E*?RbS{yV)nTxzPkLV`IYY;n3+n&Jb4h|D{U7H``)b@hTm z-r3Fn043=o@MbYJ8)>Ddq^EQ(bK3Vvz~}38n_H9EFFlI*In-=2Nr+IFxz_2$ICH)> z+y%eP#|$-=7HX~%+p1P$R1A{l2{IkL`u<7Vj$!%D;FBrZ&;I}=%w`(W!e*+cjxp|= z+-bt4xO@*eW2=O?of;kZFP-y!I(%|ZF3WMeIj%Y4lH6JU0OX*@FzcN0&92#BZ{)eP zSVQS)Vv=c~8Qex!n*u!w&Fm1_xhkP`i8e9;e@mq0*_R!W+iop~Yn_u{a6^+tis8rJ zY|U`m&H-{v1>!iQk_)(5){&sz`dLTOvYvKE$C`{4++^&<89dAtZzN67$kVlG2 z{)BR}CVSGoz%`@Pu2wT88>?FlElb@DV$Xh_V}3mq)$!te7^tfyh6pkT7~*hlTkV^< zvd>9{J>JmxgC`Az#`}iYZ}DDfGr9K9#Qi(?>(>u8eLZ#+3|U#$YlruBR({dLT+b_~ z&)DT&f7qQX$Sz|?4i6ud)v@7{#~~vt$#mwB=zKp_6D4ElX7d|@Vm+4pZ&i;v+=EY#$(GDB zmauLex8koD^t~f3G?k_{`^Pqo`4Ks#UO_^y1Ilrb@qN9`Ru*typH z7qB=~cxD|brJ*UR$7xd(O*Bck3ny!iL{h2IoYl)0>h|r%;=ki*&54y%P zD}6bK6N$_cM#;=vyD&`rKvS|g+RB!|?K6@!_$}TTqninQQq6|GaW0caVsS0AfdpSm z>G-cxi(yn%UdG92n(M?Y0WHh-d{%B)>ut<(?W*z*@g%UgILTTWAPywStGg9TyhP^7 zoW7~C7hIhFV&&``f#JA4RTG;GSDX`PNtiO=gM0G17>*l6%u1<_gghB+#x^_IxoyA2 zTx`CX&l?_oOk$AE=gQg1ak(YJ1<$o zLDXe%{8!SxjVZ8vO1?O&T*%r@!6)-yCO#g-Aj;-LJNXx3UF-#zjRjRKlEU^m&MkR6 z0KRAS4jjKDkET8!Q}DSk;>&qGf6^U36+v4sL5_57KJyK(zH;nJhp2AHw%b_Ubuky! z)yX(>`nj`Z7uTK_nsyI}OKa1*#8{AdTKqmN_&DYnd1LcAaplW+x(vmr97|mkq>V;G z0x{yW?s>E`W^UGU=f#0nG31EcU26-AEmW8mAljC=Q@y|qU6he^^fAi)zHP&8ZN(#$ zyU9_Q9fN{TZ-Pw3MLComY~f|GxNTgS+S)S+b*|?#Z-C`wsKF{*Bf1by+dInahf${g z0E+A3jbGB3tD`rHfnKkR`+e87F3KXusP!+#4dI0 zTd?$0w+OCl9V=mbe8e!@LKZhZmsu@lAxY9Mb80$=xfV>!R}U}}(KlAy+Q>HtuAUg; zhK5}Ff^wfex6}T3SYL$A5pyPwrtozHfJekGH!sw5lYUy6i_yr-2;|S+;>)Fm*2^0i zQ-{;m7wwodWp{Dv7Xp(DoWAXAOEYRg3*J*xx+sKjGBZsJZJzt-f4y_hmTOr!^LX&G zx|%#*m6OCeRe`#(+7tXI`4!~rDyd;5j*529G;n>iU5qCT#Hy#7wik%0^8j4(KnIR3 z_pAJChc(m@)J@VgOmGj8glY)eO&1;xPmatz&!?M;<&D?Xd8siP0T?mICS&hrAzIu^ z3v&mSZ1&WW+b&cTo^T0cnQOV_!&B%L(qPVlo+$*-=9Cgcov&>dzk8e0*)jUtr0h!z za}9*~y>hFl=BJn!(!*5Z(g|3z+G!_sUt)suJH;xC`I!T`F2h>S|odtP)l+ z#0I&5fX#I!WUayK**uV#10!yoM#ZTHz*|Q{i<}Kc@UC&$D!Uuc`SeX7JW0HdFgPc*{mo(HZ_qe4nW2(@h@Tgc0O*P4_xC z^;6q$pggXqHrH0S^;E^-oKK-Mzh_PW0YU!0-kWYSu!8MC{%bJsz9dO_rKn(V_gxt_ zTA9z&JwDwJZNi@BhQ6Zr+bAdVR?Az5OI9Rv>K!vq-8O^wU14?sTa~i9hIstppa_k~ z7P(q!@LI!-M^^eNL>YlG^oSN)-XzAI_=N+jMDe<#t{s@1g7^4c7%Oo90BaJ#B|(%D zO`{j}((3p4a&wGz-eHaxJjeqYNN@1$tHLm8Xz};dPY+fbxaDXex`WScQ*i4-p00(J zU0P|X41-hqpicMN=_soxVyQAx&pu$%4Wb86h1QB+56eS~37;e`VL6&31??9*J57~X z4i8g?<1aH)3F4D9dfYHyo2>TNwV2e@M|2!o7UD&*#4KLpJta9q;%!7 zws#OnAh=u=(T@?5Y&qsORl0%_8sVH}ZnqzbT0aWYOD$Bs&|_#hpf6xOL)h5pyO>22 z9fQk-)I=d<#_y?fLyJZ4U3*rpDa8HY+Y$6+WII`&&WkUSAHaXZ&CI#!#=M0Oj< z8Bz62QZ=@7Z{LElGsARvmM1jzRbq+UFTOU1o95EN{~*aR<8z>NYy}Va;(N zz>KXtu5&SJHats~r+mTLh3>t7?0P7CIVCM6OC2nt(gM(P3+O@EADZIOcs`lVm9=%I z2%~5$Ynn4X*7Q0Bsh$j6Gi1auhE=vX>&;Wz_Wte9dvzE6RKoG5Pzk1`H4(G{nap?^ zUrYSgLlyA0A2lQ|qo_S`aQH)kAOdvDIVe;=UMC)1%tl! zH(sJVHY`I2hL&dtA5CV*(~C2mcWUQbeGlNXa>7=o8Cm7!DeI_ds#x|HHbyu(rsIFP zZpHB-EbM+K?LtSe7MI)1-Ys#m?Ki@-R5+C#NS0co8`~q9(*omi2whxn1H&MP z0;#mpd$+J_t;o@HscY#YnV!yPY`~0#q+a}4eH#qs&2QCn zXnY@ow8tZ*m^kX@Z`#9e$xo9Nym>r^D~QG>0}y3ss4dg0U{1cNaQ^@kK}1NUeMC=o zrl;T#$%VQfN2=C*Uz4lOs-TQ0vPXC^G( zJieZNxTPVJGaVq7`K}z>f;n31v9`@l$SNhB`9<0uT5LP5*q?&vBdLG0OHu&>*B}FZ z&buv>_)?NA8dlP=^4148D~q>nwcT&zz?^)RJmh$d213?JD7K_|Y_~XaAF`AZ)^T*-uS-=W-&#E#nlZE#cO8`B>w=&UUn}BQ^_kLsFbjSX9kgb_FZt) z#z!3Ya<$BViDa6aBcCrpqQ}TAK5Hn)A_n=NZ%{u~>+xI{2{?J9rfg#_Q>(1v?Exh7 zvD4Lg`MfC@Hf)gr$L~VdXwI@CM4#D$Fh@D`KW&LxYD&;kkCbh|rVkvhwWkogkj=G_Hs~;ihJ4HQ!Y+$#R!ZHy%F7 zo?gefrP`k;{Z;aKlQb=1I}IO@X1B)cxmDoG8%-qAvNznhjANUlc-xOsr7i=6vXT8! z46h6z9-z?hcUJOPnDI=#yyTeJk-1*?+TUb;s-JGBI+wVA;r{?N*d7$3G6`K>3C*|? zHqH1A*J>;m3Z{lgbt^_y0!0NkjHRtT*3DX=)Ei$MhyiVkoyx}dV?(TFc${fTkE>q%MZ4089YI( zirVM@0AX#59As2}&F0B`-`W2FHRw?-ED1jI*)?RSBv!CGm+;d@uTJG?fbagz&czV*C^vGF-FYZR%|+d^L6Yfydi|c zQxuX?)Rh8YX!II&K=9`H3W*EytqH9Gop@hb8v$5#t4}JvZOK?!U=)r12!N$A?w8wZ!uTE>_Bu$WtRg{nX9cfsdjbe6o8nIow-D)m%%zf=nX)_gAYUjpw?2!u zJe*m2u3sM{`f#eTw$#q~T`O}v#m3Q*srUtwTG%8XypvDvpV4}+4|sBdgvTZ;hg4O) z!OeVIHJ@aH3d>jE%4w<$uo|XBTIU$LV1~N-G#mEiT&_P!F~4s%YN>5wD9hg|{SjpJ zf9rtwwEl~+RpB_;<_cQfjj<-$t~TP_$1S;H zS~7pOA94K?HS~ajCSX3G{))HwLmLji?D~P|MyMYO<19MR&PW%yXC8!d@qd`8&OaG!O>jL4q~ja{hd@@weo%{`y{5VV1fYFk_JZ{-YW)4->TE;9wbWJkeKk`hj@@QCq=`p5a4f$- z;q@`sP{UOKA~{=o9ol&XaL*2x!*eds#j3iA>FJ?#lf8{=L2EkeKq6lC;K zU1bn_vX-9&hMJx#!#!J>=Fx?%2E$Lobe=1v!SP7x18IdB0_3!Y-q!<&Tq;whkzo0nz>kOH{+ny?CqUo=FPz1PVgZzqLQ!_2RZ)bja=(XMH?{M~DFULzfE z?drxeK<2u6=^&?V>_jx}bA|7zbB4Peg5=g$;g5<+syueCCpZ%vWudu<+*~%napa+^ znx3MWho4;B4_WMtQP_J1w<4>XP>M*IjvOsI9GjHSD7kuXIn! z0dvlonho^$t}&sKs)n*!tU|9l8rL_@Y~6Le_g=dYg7UU;O-Ueo8|0Ep5#<8=tnH$P zu7eB+>|V(1;O z-F3^G8<)Fv9k{ab=^KUkc1m{pRv}Q=k$jA3IZm1`JXkdgF-H$=wKiZ|AQv|E9oFN7 z*#7`-+y4L)96yquvY*6|xcW#3=Vj){gCBcz&nxRr#yvyf+V2dAsp_f*Cl+GT_S{LR zx50VL9|6LkZ9Le$bgq<}m|$V$I$TE{maheg!Z~f{mcuEvv;lRz4?~Ax^ER@2$)c-hEq76kaBv`lmwkRK zkrokF_T7-wkU0${M`6`W8pk-dc9mxiGZ~N6E_=(fXN&0}uBwgDzo^g+$k6Vy;rVdd z8px=sCeJ($jm&!mi6c!%s>dW%5$f#Y;w+Mp(mrFU(5}3)a^)>&j{JU<_JW}O(C8IW@ zbFH~uTE>=Qk7Vw4Xc}1Kd+UGlS*vx|kPpFY9A-Y4 zxmxhDcz+i(q9)VRmm6G)m+4}CZ_3}|N`9RL5z5h>k+rS>-%thhUa$)rAHjL=7>lr; zY?6N{+{)QsJc=acGc8ZhbBCSnvDkNAME6c&qaL8pGv3 z+MR9c<>}>;V)OCcqj!k~gvf^J@VqKYqF_ z!^4=vq`0Sm3-dd_RrHA|nj`Z@`+snSbS5%%VHVR{ee_D(<5A5c-3(^zb6fpk+mUYT=n@tgVl5AXMT%yOQX^_tpT))zm#2UE+Bs`ON{x{66;hF3ZL zA#B8eP0pHGV3!f9d=&9d10-pFcRY;b5J49XexTg_%RTPSlkIGnb$m3^hs_a{tvVL5 zg#IhRoC6%5qCyxSa!CTM+I+0OfXqjuB(9F4HfCvVNTA9!H(a>^bwskdwxx}bmk`LT zP5YI1a`tLZPca4sibc_FYb1si&K%+T3XRncNbk(ADwnXz*mPh&HE z#Ffp&Fj?ipn@-v&9y5EUW2pF_iCtQ{iU_1EbLe7y{ldlqKJ}7+VUQQPwvDeFdzK$7 zElH!UI`rn#cxJpn0j0xf#{)Z3%i*fdm}qq-X5U!DEEh@|D5_1Nsil#_TQQ9%@>V+r zX)Um8UC9xT(RA-qta-TnJ%~Ru9O=8}_MCux7O4C;R_d0^)t5n({{URmZq{AFf(*7V zef=6gMV**CcM?Byp=dnYvd-e!xaL;iReo8g^F~U8>wIkx`T(@YgO1|c>u+NkO50l7Ux`E0V`o*2a_@i}TuJf2|je!gLH57n~j{>*z^ z*26QHEw#$jFsTcC@`rp|bvsW-Upsj^zYF6P6GY8I&>D37Q%6w8`c@Su?uZXh6|<8RfZjZ#kpBXEc+k`0l=kjo{Nhisq@z zZLMI{^E$dg43nOtoLCP0tA+Muj`bZFYvYoUw89v=F_PxC#Oi)&>7K(O0thSx{J{SJ zBDh#{@0;Me7*WkUn*CMF9PU-@yi!fb^px1OQ!#eUhp~~rOFHh&p!6%R;x7_Z*VPx| zF}6o#3~ZLyZ}V7i5Cv0YEhLQvz6+z`JSL`&Ss|~Bp*4horrUf%@@M%Rcyr7(<@Pv# zqvy-`*OFg83w>dXbS zh5LVXWnhEjQePbw@RtbWKKEmT|^U<`(he#~ZlCh%{3d-Qo9kfLi=t)pjvV zeuAq6qN9QtqA*4n^3cYDLE_r|<#|VIzRA7P2@2(m%Iut$J*S6!LxR)KEV!j5M6WDk zBl0o!u(9{PORZ7k%oM`!*|d|HTH6BlFaUd41>z0(}B~MY&G1^s_v#+t5$q zYU;S#9Pc0kJ<@hvEGNaj#WTx{?rWQELtSIu#dyL?cLaRZd9Ti^dz#jm^S$lg#&HU4 zM-w#;Yup0>8Nder003=eM0lK0xVNG;jm#D#ZayoL-ounYH@mo4>m4R}Pq$1}(!|+W z6mkshvAI8~T0dyf3TPsV8Q56j=Vy>U_qN&#XgyaE#2to;J3(=}-Z!k&X60|Up^wCJ z#7jjyZiwy<_U(0}6!BCw5xKOq4X2RW&l2Vh`B*P2?>AR!m4{tLg3a@HPS@$t7`#alLMv7AvY%iV1>owtm-K~_bG#=7&?4H1>)_ZHc^z6-!xzEnnAa=TDZOyNs z;R!L>UglaD+FP!HahfhS8X_`+eA=g2za@^Oc&|zBe6X?Z+zV{8)K@a5q)jA2p!>`R zf6-*M&gce!Q>;s!-rW~g#v^NEYuOmN%b1g|{>pyS4QqN(xu9=%1AoDJ>_ZWCG^K(& z@q6y6ZZ&of-0A36ZN@eH@_Q*fL@En&(`6uKBmr_hD=f9`xiQAz)378PehZ01R4Sr# z!wYO}-CRzfa7F1ug>qTM*JYiq~FSvQT^*FDfWcMqx^6hrUPeE$F-ByyvG z8*aSQ@Hju}?SCti_V#o5=C*2njFCd-o$l7_{_4ca*l`xj`RL%g0U)$$PFGuRfL>gk zZnoi)JVRF28yt=x{{Z1~+~DKlpTcP|<;#;TWm{=#u-wra_EhF$fGv*R;1=ZXe?`=6 zejRHYB}CYmiTbt7Xb$w#HMlFoHP!djLK}V8R;pP}6$em&Lx2E$3eGdOUf!NudgHc= zmQYCAnDf*+H$0f{xfUQ?=F@%`A{s!vN*^{{ThU-b$G;x}Pg1IpVv^?Ecq1*MYNhXsoBGeJxZ|Lh{)oaC1oDg{-*c zj803p-=$@Zipw(thTEfs*RvMFsjH)~>ay+w>bsHmt2th29c^=+hSSLW&xwV@n=9j_ zWPa_!)EnkaYXzycZ00mz-%=L*I);*ZmQ6* zOHBJk8RsZl%PzBN%gu25eVR`VP)b_=0NU}iv7w;#7&hAKr(oDrf7)ZT#>V>39*0j) zMe@stn9Dx}7#;~%@Bj{gA0^5p*jP_pNJzLzJ8{508G z=&<_P9ktA^7VY(vlf`&k?gl&pX>yAPODWKNO8I2oD5wm}3>5LV_*!rG-C>g*#AaoT zp{(ozPG9otCVzGHnY?oYL5;XQ3tOPHkIlEqV5s^*XeF^wVYju2Y)ADA!C@2_wm&0b zfu+o8xo~J`7w%Wl{5jwnDkm}Z?=#e2MvrhG=C|@+r%Z6)mo)f;6|D{sVbQgZ7rP;` z*OkwdRKGiAf^5RXT)R)jeMI5#K=~>O)Yv-USX)hzei0Mqo$Z)4(ze#gpwikbTW`Ae zab<@b)}JM0lV$*kn%0s5Yn(q7d+RD=gQ&`hNDd<_&T(Kzb@e(-BA%Lv#TgELh|EVl z*FJv?Q_D>pay&WhcCOmvm7cDjJ{fzDoI4Yh?q!<+c-)v-uD=Db_=NQt48oM|05FX; z^j|`g!uU@}+A9z(ac|}q4c--NXvqy>lpiZ>b=SSquDvAW!v6qtd5>r;b@IT_ZE)P} zAAwds5Oik!D-AV{ra}3Y>FazmOmOmIkN4n@C~3a`02P|6!p)MVnkHw-?>vt7up4Nn zUnI*4e&jsEoCMTiOY^_*qecibqLO^Ofb+FA{DBVRhfc{2dGwl1&kxGh1>q z19i6o@ZKLqBy|mJvOZ?n!a^K1*Rqoundgj?s~hnK$Xa7$Sr`t^+fK^*Y+^`aXo6uG zBQ2XF!)^DiZ2g}U&TQ;u#l_4-^YBeQRu|K75kYUXVzs{o(qmjQ%ltW#NZOjyBi{+m z=7)ay!N*{E-DeWUIDx^g&^mp!>`Lv^&xb~C)<>?oMt?+=Q{nzn8wLAx&*+^l{j=VF znHxPgXnAa5!NW$%9sJT$J}BD4#zxkSe6xf6*HQ|+F_9L@3?!cMpV3hIoGi(dwhML< z9X|y4{{U;>^%XjD>d9Z05^}V8q-fz-9Td|<$FZWp$IBoVHuT+I>dYWCUMMfM`bYFh z1lV(A%srg&Eqy-(`1~FGs%x%fBzaBuc-KT&=-C`$t+uxJt~OgmP8`^X4W}dFZ{(T@ zu-xRkq8n|kp!^i+e`k66b7TdTMd7gM&;c^G`VWd}=X8*`Iw0mX>>;8++vt6GTPh{P zW0j?>r+x3BZSJgwrw%P5N=O`kiZl8v(w(R2hB+f^%ij!*A-BI?{{VOeQ%5`wYg#bo zyG{L|Y5wxB8?2`?JK3R$r>0w#ntU&HUIkklM2@V2CXm}VXL0BfV`VI@meIGD@hV@$rfH~1g`4FhbUv zTu&JP0AxN0vlXTJ2rpdATu7j^fOJV#5{{WiE&l6T^BBgEb{;2+_%~?q1W$UxC53|NBcP!iSSw2Xt61s9AZaw zNU`{Z?j4I)83FcI+vdC{(S(sli_Ynu);FR>+-x@s>0aGMpIV5&+DyHsKA9PeR^M7i z{l!%lEmp$dX`5hA2fFIAs(|~|5szHzsA_1AW{Kk_=VxD)pZ*%tlZfI~QqauPP8!l~ zNCk80aT((h2;#N$zEZsoH9auG=4)QwqrK6|)p0QVLK4ZNF`KcZgSfwCsGgkcBNV7) z^Ha)ZmF+hsO;5>np~ocz4ug-z>y?Jq+PKM84@kHclIsil{1y& zYXYMke@K5| zxU7ZEaDd!fOP|qNak;X8U_b-8OzNsCcO3G@0U+2ANmjb5i=~~DLt+Ql7yFc5FtZwz zxyRYuE=j%IgqXaR)+dqiD)=!9d$l-=gkr`qfl-7@ z5Q)trDY-utS8n8abxPdkASM8rK`k@ppZj$ z{_?Rer_rRWHMle6bY?QrTVu-kPBP%vReFW>Y3Gi75WXR1o)^k7_S@ReqP%m(GP>5B znm2}MHMz3x;PPde+Y7aMx^rQFRoubdnx^FGl&)A~HuUAqboEpf_1DgJA29~pd=7Shm3{t~emUzCibTe|n*9}k-=mzo-B zV`UE--{6R*loHI{Tv5f>6H{y*fUH0Zhr-QnopSm7L521kwV3DVr1 z*Mq|?)U6FSX?BQ` zVEb98>iibSsb!EC#}tnp+QNU5!%Ep(Qz4jx4w*pT)pTod3W)#|p|M6ht!UY!`JYv- z>7O656jPI=65qE?-=cR=R5I76nB09<61;6*EsMuhD;rk(HN+uJieohs#}sugFMESV z+m$>20ET-0&S1eKTWf9& z^}pTstg=|j>vu%5#RL(ec-l!i=$HTr9r?2SfDNx#&l^ITYdVRbN@zYUHyJ1dM% z*S71Oi89m@n;k&c=C)xjc%o~7^9Y@m{q^#`{@Q8=PEB zp7AE?*4tImRs=uLT?cAZ;H54$*#kV;yDMOGqQmQ^W3tH`1DY%i_XP>7A*7`aWg)4Y zZ`FO6J^)z#<#MVq++oym%?xnG6nD4{upcGIlP{*GQyLA#Sao!SAN#Vpa?09_GAA_Z z9tPInuNFLSUI`BAll{~Brv9APjv~MJPwKIZlJ9Ruf0J{^uAa6wo)y5@>$>rS$Cd3L z=zrKhs{kJd#(i%wBsfFvR&HkcN`h3%K?dvg2S_&2Avs9a3YA zwA##I{&!txRTngeICdu}zvQo)u&!^q0o5b4Hog5&F9eGnRC|H+RYZJIu)WFERve&z z3J<3J6yhC7t1#EQP&(0%!Nc+^+mWjH&x32dgT!<*-p%R;yWn&`n)^JSN4$0=d9%k^ zJ4?8LB2ux}ZPRM70E46s}u*H^*3Qs-l{g zJe3Y_@0bo?-Ug$c7c(_<{vUH5*GE6JnF!k}NVWb8UxYkyio*W@W2|&lRHoxCLjn0; zf4zEGu{;8>O&s)-(93Ju7iVGDfNgJ*_Th}=oulU87f+qGSGBe-xf(8>7kOi=&BO%! z*Ebla5LP?cT_msu{tCYqr zeMwp0Q0;D!!1gMMGhaZatE9#rdVp<^5vI31tgn!h-B=-ezNuPa!zv^rBoaH|(pIK6 z`i;#-c$(=w^Pu5rrKK{=3$7R!Qj^2joVLkBQhpJY+@$cRRH`Uu7Vze7#uP8@hqF{?h*d6!{}lj=t#JS1}FGNCx*aY55}jNNH-C zFa3Y=UkanGFJz5mM7g?=pM>#OXO2MHe=rxeeiXd8q~f*r1B$e~HM7w>*Q@?Y!HAGR z64KcJ0NS6?d@ee+z9}tFXR^k@!%&(U=RO%aaGcB_k(?bhPm>k+?w@gfAoqC$l-B0+ zAJI~4TpYk1Ofu|xr}SSCb|oY3?`IlleBoOaYn@K_G81;6FzN*PB7Av1vrq)m-eFEh zZlV1aX((ykav2f0;!B^&e9PP2B{p$Sn#6~B_Ddam`Wd5u*{4y|**zR!7%uG5&2~1~n;Cbid_N6{wrjc08fnubkBa%!xTLYe6M?8P$S z+!gbQF-)Pabt}V2xU|3Kl5A1ZI`T(5T1J^){%U-%xL4BXdQy!UGkDdOUEdY}DJh8m z09Md1{nhcP>qJttxs^a2j&X0zeLKc=C#8llp#K187{A4#TyvRa660jDyyMUBWgoy* zIHO}87;$KKP`qDFIaWOW@<2|x4c8v7N4gr=%b(M0T0kdHlJ;}|0Bg&`yIoJC$YYj@ zv#MSIk-qCm;IB-~KAOiP=H9>-kiJz-i9ZjF<(8p=#^glnU*oFM{{RrYv9cNKGP|?Q z@At1BdC7HNo;+=js6&G`Vp$Vq&3~+H6mAU0xy>=SxH{TuKLzv59~SnB=IhN?ArU#w zInC|geb!pcW(cNmrk=g<@Jon4n$LV%nBBgcE)c*P3`K;VE>{~C!J07_2F*Kstv|bs z&Kr6!5f(7%Z_`!q*4$RW}`DNOxMSkNNdi z<=ly}A$4SxtqthDMs2vT~7Q1N2@dZxMA1TxF0>TO!oKQO_jqf-I>Qn!j$H#5OhtNNJ($Jz)9cHdTQ)3)bp6mAu)3aX(6&| zLHI8jhu6!5&Fv7&EK+G_MlMy-c$T8kxYgH|x17fR06kT?$?V4+$EXxMun`cEyh8miX%ha3KDKP*{=dZyvPPS-lRM-0H5 zvQ2gPD&K{54ALA=%GYUeAUo}{^MBH5o0dUWT0rMH*W;>Lyi+rXaGtDsmy(|@KWoyx zEfq7FAaKO4(R~k7x2si7HDTa>)Hc7oL#_EQJUmrY&qi9+tz%x(9zJaN=!4H%U<2l!9?E6qQ}l|{F1 zDO^u-O~MTEWmU8O)2uEV9duavV^bRR^ER$ppvrtk01m(cE%+-VrLQwZ8>?b@k=a@` z7e8|IQFyMRLNiy?zTCd(JH>Su^43i3r%x`$K1o*Lb?xo394@+%wCy!;!6s9f6Tg_- zh0HFgG6ui5ij~;qurn1H4Z&o@5n|vEwG+f_##D zNsY5_TO%tOLnEpySy2HRHKdz<3(WX@J+;-PlQuE{wfWU+z-yn2RMdendjv(qYo)E- zabd(?hgMYu;=KGClqql*=<_cTnonacd11&M`T<^mQ&i^~n5J zyzqr%>wF(IOtLy+*_<;we{^WReNqeQYOE~V@AFJDmRh;X{9KxH2(t8E8)sUn?F51t zPK?aF^)z`-tE+++HxX#-J{aEc$H)l*pz>|P^G;sAUXPD{Bj{K}HE>SZDBV!m8bK$e zmfwo*c#5ME#o=S?Os*|x77Vxp<8*vI4UPy4&ZpH0*6et#r<9;*eR)x79q|XX(J;b53uR*cj|K z?{%`X8}WnWE@l@dQ>gvN`792`{AY8M50F^c{@{L#>GAUJJbBM5&q=QUR3H66^Hxj8M{$3-ckbii zsja8Wtj;9=0NH<ZE;Jkw`N0UQ#QIR z`13A=IKPdjfs(;PE8}>(T-Zg3P-9*;Yl}?`pp6gi2A_g$cCDfUA9v0Rc`;~ycT~@n zfte)C3x=6($n{sh8u6HTXR%9iFK&SS6;*yA@r4~Trm3fvC`OKRp#Tf~mb-1wIV{u2 zViq;kAKyQkt_QjqStMsG+H*AaDS)ZOtDVt=x@isiaWtFv(Q9@MiN?a|C~8{KxiJxC zW6fpyZ*PimfCZ|p>KNbAaOEzRM@aK`INX!TT`$-;xBmd+s_p*(bWvsniam{cF#4x8 z!r+L_iWjx^#fP){+(zGAerw!M69w;zVxx&H!0Q)xo0K$}bo5loOVNE{1#?SawxmJ7_uec~i3PEt3umjjwU3^NY67e>d+_A!5&s-MN4E10{bhO$hK z%IvgkHa)%7fApip*@I3J+nqr67Hj_McB$d!JVQx57@OGW-+Z9i&9Sw+E_X^o%j9-Z zp&)3zjcc1q8mxORCspzg^ znW5KsB0Se0di3#7(qYa$T55`^EatlL8#M6do3AT|c+bRGgoZjA7-n-t$c~kU!~K<} zx5U0Fqk+>^;Za2kcYElV0RI4WYGr4$a`}%=XPx*><<4Xw&&?|=bS(nI{&rkBnrFMF ze5KqI3H?_-4;FZuc-tg6L{dcUTISHOfQtKINN{s6H$1-9<7YNn+d0#pxC*T zOm@E}t1_v)TC1tL^sk6@F5$#Q3T6nX*c#ahYe@dgj!GZWKN04!z#+_k{(+zHrGJQg zMA9>05DS|R>J0w?g*UX8E`l)j<}Z71!HlPTU|TGYH`2l)vPt3}5iyQ?@E8MHE=izZ zu>SyIU~i9WfdJvSX+QpwKloO=C9&S8g}HM*&-unteJipx;nE1*dmf3^W@m}9;@kfK zM=6N^0Q3$20EI!~d~lC1hN(#J>@EKQg*!Fi)$oSH9>U!}-B|1VTZmILC0~c|=mWv9eG3Ku0NqmE#~ktgUAFKs(g^{T{#f&6 zC)UchQ?MIdt3zflh3vLa=`-5NOhwz3I{5Itw8bP19EG#P%(f$=Z{<1#(!(&CTG*ua zoI#YYZG&3qp8VhJjS+qsO;0pzpv0R|Qb`4|M(}>(7d-H@RjHqcq`(;5)fu{=hYcGZ zZWnmbfZWB>d^$vt@zrqfn)Xvr<%a>5wyHChX`dvP&Bv9tvfCettK*L={51g=z26Io zTbb8PI!tc;w3r3WohSZ@RFf=OFB_&9&KP#YDS!1s z_#D17d~pWN;mBDX^bZmNf4v%C7)4M^WAODngl-w1PsMZoPSfDN_WS#BTshlU(tqnW z^+e(nF50$~{{ZH<^(h;pJDf{ z7`KdkBkWR!;LUT(PEnoPubG$i9#505IQV*J<6$w@-QT0?h+E*?Ew7#?xJGUZz&`O& zd|A~ZrN(F}`Y}A+v9KJi_+IKSq5h{Y`nqHNFC3=(ye(B7Va<{!vBS-KTEn`&j!K#g zMw#(exLf3FN~9aF4kVx5AmFFP}4$aEz*gsFERiPfEU?(_M)kb znpoUD(m+_GsLX6#qVs3Xc>O)!kHwEI{(hfIs`1q}Ych-~ z)p9KSFU7BX&lu9O-8?jD-N1h(ravAzmg(WpkBiA(0x4l}7k!rKy_|ogYJaHZzi&n# zh4_=)eFC594y0{|(|pU1^IbZB9o0vV(C*o_wkD)WilfEz=htrTp+j9ATiT?ntc$C$$m`2HD>N$)AfKKb7 z9wANu9YLb!;Ra=KQcIOJl}b>s(}TBjiwQf1p$2%kiH{Mn0e@y(7!%ZAb7)3;G7QCR3xT+vvb`a(fw3qx6w+zI(Zp>vqgrsH@hz1e+ z%N`T0{WbE&fCI2d7zUy4Ka#SZAny;jIlf^b*W|OuhGKEUm9CHuz^7#vDj_X0N^ix} zr9Nr0zAV@+J96qA;!{*We__PZ({{PUY4A$SKLD#hRKFK&Rt}rf(O>L%$FpSWPD$eF zFu$Ybm;V5TM`;WX?e!yt8zUG-JEhZZn~nI^wtc2V?Lzq92p zl=k#eVSh>UN@?k0b`wtA#AUg@R40Nr;cz!SgA29Fs`flsL6Ogt{CGgn;%1z)&O0m8 z{)x+q{6Z$lhEg$}V%881x74h)&Ci9>f;DRh{7Sdj@i9!;+FnT5_6nIW{7a!@)b#XO z>3>UkWg5tX@QPhL&27KlDAvT+VbsN~A;EwjT~d1nCG5eOWGB&D>TFO`wV%AW^x;{B zOUo8lHLjYqGaB&T5clZUY zCah-X+jWJnE}C+F!CB;Pd_J^+t(*C$jo-hR9Y1zgufTjiPg6lp9Yqy%tg4L3B+*C% zTdS-9%6krZUqhSuNbzvx*4N2uAP=Vo*CD}f$LQmZ866aDjfO`Suy8KD)BG(-HUWrM zQp1YSOHXX9sSP3K#Ql+`miezK;%ZuoiZ~1`aV5_`it}<|?cWYfYBhKg3=#AdKee;< zZr^mf`!B7s^O(#O?3#aNze78+U+mvc!E~?;F0s^@i7az6(>UwSp>pJ*t#l=Z7k$f? zUT~95;dPa)%!nFNLDU5u5ER$tX!a_>Oz6Zex#r0YEm);7m|cDimkzbpyjIx9vN-E| zAtXdoU0&K+uVgWZotpdEJe1XLq!Dyoam}?!FX-(UpB?GJDMS~7?H5|)rK&VtE{n5Y zdnnpUzhyCqU4Hgj>wihxAKNsLA7yTa?3vF?@7IKVeu9737G2R5C)bJ=9*)f!%(P37I}x$@(CI`L&R&m}#nfl$)khd#Hu zx>#y`ltW;bTw*)*G*ROkSwYlf!Utsc%lXFc}SQr1uGrI{U@jTO!IkwWN89B<8&M6sQa ze^YaaOB_GdiMFcnDg`5>>AL(ID&mf%wC-Vz=KR?-c7~^?4yJpL3P(-_3!FGA+IG}O zM@_ZZuO(ZYhc*?Cx^1h7e&T=S;%sVr=cEd}cQib~aW~=Z+%D zBXIVB~)*fP|>9%;>=tkr;IJaM0f`^7;k)8;}x{ULZ;i&!*`mVW7**SOVgD27ZLuIXS zH~qoyIuv)3vmvkNd3;|;uj*gxM#=-B%PH10E?x{U2XJV0JulscQwaH zR69=oP`t%ejtf3rAD>UXdS3%I&F~}4fQN~sa328Gb}tgFZ~&4WdyaGq)cDc#ehsFfuA#$eWSU30q0Y=Q z*lsoTNpY6Vdvlic-=~`Kbe%5}RmYK}2R6p%?2lC5J7-R^n<%g>cR$3qRsKDOu6NHq z2SX&zwccL)n+tbF4;o94;*`{~VN?#1Sp;l!h4yY^=vTLn$*X6ln?6Z*Hs$!`zw~wn z>uO+^{Azf8hx#o};7Gkhn|vC*7mhqRh|h(4ROW^lXd-r4;1ARjbMG$^gZPBuxI}PG z4K$F69Om_NToMKLA$G$oZRwQx7A`wmf~~JVG`jOY&Gy2W`{k_ zBPkkKScQk_6U1)AvB60#1vNui8y-5DuF_gAG$XR-Ke}(}>A7nkDbNT=V>F zT(KNa@Xj&qCE_bZa@|k9JFZyq+@hS*3^IsQk*t1u9YMdn=oTDD#g41PDk!3$q^D&0 zbGkhFv^N`)wPxjxSC%w*PL-H_Sj0;ukXg-bhJX-9;c&e^5hJ9Auo6hh1Xf9vyOLv zO5Vavy{XN;&vL27WOF8`0Fi2Ft*I9BuP}Uc(^6_#gi|)4xW7M9{`Y%bC-mE?9Acvi zrIto8N1VOjkT%$@Zf|UNpSBMk4E`&`0NlKOL3$U+VZtzQ8JHSIoyhvm?7UVrh`$uX zYAYm-tbESCR_qsEkH!588ftm4+DZBh>9$9gf<^rgs+ie5xy$C)y~PFmJ%&G*F}(UY zH8fy&PZ4lFX1`5#(W}Ti$M2E`LnaqQ=wkpemwlUS`ud_geD+elnYdLDf#&aKXZenv zzKc4VcKK)R(xnDm7ah%gD9POYrmrc4z|)RUv;n0|TKq!YKa5P2RaDSnw3OneKAYac z@@;T*x%6CvRQf8&>f^C|Pl`Ye#DKLmyIk&D)}HQ!IOEVX-o~g4-2JrPCuxrwk&V5w zv!6h`%w9TcDqA?g=tRwaaO~21*S-Dj>FPXl?Jw%o;Z#z~U<=EhFK>gBb9>XLe;V7^ zc$K|4aQwIPMRTw4v3c(k)>KeocqLUNu8N>KU>-FiQQcvw@$;&h#?@g|GBz=00_TjP zz*|Rp1<1#|L~)2IU=*-Y!%vvCu@@VcZ*oaf#-vR7H@!VB4K%a(ZYqgh=SwYIu6wp5 z*}a#g8Jpo)TwHs^jm2>4S{NuHqo;xHkTy3t*De4Z{s{Pc#N!LYO&qv<6>*77 zpvdO}(nYu{SZaG>=e)N1H9H(UD^($Lvy0f@QRZS_3$V!@S$mvp(QA@zp4)?7i^&PkMTiokroB1)^^6ue`d!(rjd&u@# zjfp4f74v)_4izdMol3kGo=Gj2H(BFP`72i}cRVfSo?f3HZ%Ts>b4$GK zB-zAY$i?J*e%_`BgFKQ+>h5pISJZtV#Zt)Qp9ZIrIQ_=;Tr!IR{DR^5o5W)pr=^BE zD5)Z+4$9U%y7{-=XLGEK@@Fi%uN=c?+*?Au5b(uosarc88?M~h1@E={FE$UDtJ>#V zOW8?d8A@j|M#kBrlP*~r($IA`zv#QT3)t_ZSioRonJj>~6XrH{tItgAtcE~5!d9_>8IjEKekAPVfloW`4X#58y7Zm|#H7S= zXGJGdFG#x1kh_uHCxCERE4)XH)Jj|gB*oKjy5_tPZ_4R-rSu*JeJxHMhB4Drwav_B zaLNH66uz|Sh1TtP+y@t`s_|TOa!Wa9Sg_twLEnY+sACXx7}mPPGUOA@m&vHSS%uSL z4Xc9yjg>jG2|cCfQ_Yvrs~d_xAE0$E87$OpY(>=#ncz3Slp7m-6#m~eymOiQe6Q&q z7)OgS1_xM)$Z@v8ba4u=+4ML}G_y=&btoXRS4V#{wXj_8q~ICi>{-np>A#Rk7Aa3A z9YQN&fzE~?#%8_kbH2UQx{_@;_j9^>{{R)#NlD@S7IwZ+`QvGEY^9|6M&xd{QBE1) z$m?bkOyMDJlR2(FVfD9M7kHwEzYnLU#HeYfh7cPU@0{GA3vuYQ#p2vLEIqh*p``XO z>xj(m-r(N*snXfEOPrTguNy3_@QIO;$lSHjw23Bkzf_&i#c{kS&)GPAWsAD?ENKpD zwp%-E{0iv)+@r;5S%uQmLr)v#6CRYM#E>n0c(wlJhr{@#9vWp5i0auRLv1wHEVZ^H z{&ZQAC91;fWqFXkAmYO3l1J{{-FG||=_@LFa=J&f2A?~NzPMgv z3Gs~uEKX#2eK=&G^#`?|HQGhB9;(_8AJJjcyV&qh#{vd#YAyr=f3xVkznPyGT;#^v zeLZ|Rb=K?OK4_xuNh8dtDyIfnC@=8JULIFwi8qQuQqt)hg;^mcysenL~m<@`KYPF zOBsj4*SVp<8-jgGi|G9EnZP`-#MTsE?E1FXHj9v`R6 z-Tl6GFMuJ-XI2t_yJd!N559$tjtY|IhL(YSfnQCQmCn!*xiz>$-E(1dxZ^&P9BsSX z<;?K=q>zH^l675*Zwf|OGh`>a_0eH2W4+d2xVqfTJ>Y3&apTACCRZ=2@dv`u4VuIM z0EGkLhH%0D%J)W!Kr{gT={=eIWh3Eremp-(+dtdG{{TlC-Pk@&L;5%`s{r`5d#`4c z?mqMl9H!Q556NGP57FO~_VB~QpdABG{uLd9zCGFg>h|uTseYDV`64jsECYj2#U~Cw zrTIBOZy!&CzQB_kel1%g!yeJRWPfxoOfcCA+CP|3;j&-M8}eNz7C)r#pY7+HM&|6w zf1E(AaI&H{2DQ-uIBP7r=MQi@ehLZ~4lK3t;@5nv^IZ7jkdNLL50Y+}8<4iiLP*u5 zA40RqLnjVXEM)YZm2{cDWeg2>)yM0IS21d zDBbp+55+W_Q_uq7THWrH!Y}Uyr`e=##FT~^xL{2ks)J8^>ZEYnm2sx1;i$HjqV_Jb zbzRV8dg!z=Ht^6&F;Pect|eZ|Sq7I=M%A(=UsjK~TG*od4f~U}k^Rr!v`0qbH!5hA zOKGD&QMULe6mb6lt7qJ{M@sJHTkNO0nq9f(k|F+$pK?!Th#ezu+`2EPcXdgoke$kD zHq6*r_F6tjnt0v2TlXy@k^H!)_CxlHXxpCZIIpluX`=&Rw?3GSuCu2iJe#b;7=eSQB_kvZ zzO9!{O7ge{1B*J9=Ol7n*Sp-hU(wuP>M3de0NM-Ba^}9H(~rX^n(U7dQn)%8soxu1 zHL)6v_xUaH*I^BSOC>wrU9&{3AA0hq1jZvE8d`DdaIba`j665`tu9`|+N{r-c+&5N z{kt+^xIlfKO(4GlR;^B-2oGx=M(tUfF`bLdNq}O{KlLha_KR`lhX2s>8k?p_w)?6)d;y5D*SN3Ft0kN5uKP#^m&ky45zx6tE@o+@=dl%1` zQqzw>{T9F6pYcE2{k>Skd_ME$!=@h@*srFW8`4CPL=l zorjom{>Tdtn-PxD<#u|EukwqZ$F%Mb&6gddH{@Q~AD^$cqT6h)&@0Rd`u4UIhA z*mE7FwRicg_T~Qot1})c{{Sbeb}8Yfv92_gAa`kCzslmw_? zFLKvYS09sqRpv$mjj^`2Lr}|*9$Jv+LWIx{{V@8EB5uxo5F;EX|VuLK2OzX zbG$6ftufZQ?iT~ex8A%z>}+v^FYKpf>`sXvg5yqg{{Uw_wiW;tdvgB()iuZad)7C@ zk^+62xPh*j5A#miOb2mCUPk(cALhP(%p)3Q?L#Yj+4fPGZa6QRlAwdYm0j|G)iuZa zdy1FfCQ%utsAwj`%FTZjYcRYa;B=`fwHdB*0dMw~f;e6(K@P)e4!0M2Q-|Yh)7UC) z+cM1gC;VEoj{UxXaQqRCyQwO`^~w6GpAUx%n%HBh&-I2@>G-b+`!5)FzQI%e(Maq! z7iPb+YEtE#{{V_fhwbzlgGfwN(nmYuiG{H+!rOpJJLdH(JQ706d8r#mAY;iTp{;lG z^j;mX;_o(g9aigiaa9^jU#aAwtYNyBNr z)|~Q^PY-z7c0+@{Dt2XM-dqXp2k5?4h}1^}?}@;Jeb>^l>dEl`z8b^~809>W)H)ZpG0w+jBF#LnbqH*Y6|&-P_KJsH=QDF_ z$u?gkp~I?0OI;g7hzCyV)zIMB#ZyN{fV_cg2Nln?*R8iC{k_bBii)w!j~Xm{Z0yY~ z)Spm3DQfEJYJgM9-ks+@jlAd_(UZV$v*tW#k$4|pdKW10o-7}78I1>amGl#*t<|OyCuq(P2%THPz+q zweHpp{%gpJOhK{-`!h5&Y_?#T-FxC?M@;BI+DYC+kWY?^h?upXlp{?e5{h z@L65t#6#m~CBz1ce5|oeL4?NO(^BUXuwz<(lJfD;Vpc9Rv0U<9s;JV}L~|G-1JtQ` zc|S`qEY7%%&>KsACQI~QGFlautFIKOXjaEv9vxvO4Sxj|wU=RvnXdFYq3jr*Pb_iR_HjwcpXn|G&*>;h1aT zG8*{7&6gR&LCOpn#J|)RrO1uWkPm`1MvmQ6NZVg0jml1;yq~1$#`khi(9_CUO^Oif9Kn_s`P)>n!39HI8}T=m6RTWD^9#mDMTp4n z-7*3~bA{sh9V6q5FLIwRC+T|e{@%tc8w-4yU0)ag>RcKv_#*rl3nZB9;x_*8=ogEI zgA)$g4STd7P`)ZW@t6hSeqRhEI#E#_+}poizRa& z9^f1UMvd0zZ-Vmj(BcdM&TJaZuJl^?P3CpzLNe&u`e{*vRw^-*DXTjB;> zLd5JkOi0`_3(V}ej6tJ^Gy;DG=1v)k0eeIM^jTd;TO)`fGJQf^`9DUu-p->5!$VkN z#A31E$kY6iKMJ9+$ypoP?VXjNeoM=@2gI_Bt&3kmiNWz!5D!QveoxWYjp`qPP&N*r zuY&g)2*Fk}1;a$3I}nAeEzBL#YVwc4@h~puL+}cjC@bmh)N~g07gyxu{U=^GwtfqQ z^vl0#LzoS^Z5K$~I}ISUwed6y{YL1#Lzz%VzfbaNLk#+x!}1DFUQg2X<9lfEiV13r zX1)^8((L7p0{;MV-v0m(;gHiA4kXax((m21uDM@2WOW&=9UZ<4K!T;h&3sq>>YpZl z^t!|8?C@G>BAM-v8g)5;4LMJx(_)ZQ%{NY`85Ip+xX))={{R)^X>iO!rcxphmwL4{ zz8}P$Da^=k=q#+{&-9jIuWv;y1|J-4BDO5#6K= z!7$?ve{H2<965~r7m+v~DY%aM?VG+W_i_ZcV0CjenLY1?l z2nO5gt*!v;WnG)w@KzO={1VvqT5LEGQzs6Wv_?!j6kP`1kKS8{kji|`e>bhuEksj*H|*d;CW3r0eQLZ;D3Z=g`MU6VyJ zAfU6*DVNjmT0=XiS`%iOvW~$_fc;gZHs?U5MFwnx?1V!+Y5MwcrhF2|xnjl$ZG{@5=0~?1cW<@d}gTQIx4JCEMZZ<|ZEwe(>*z7e3nq)CwguOC2Tl!Z5K+kFvh09LdG zmWmiqa|*V|9S~=83Z_OL0@mYYQ=O{RS2|GP!l1e1W|h-$CiV)l)3t)ssKJ@%c9m>y zciD2(8|V`?x@rQpir6*PUe*Jl2((#P(6K>=HZYu`$)syYy@mb=fPoiSv1NI05>fk8 zT;0zL4gn05V6=b*_+GZ60R9$3No|5j3u}*yQnsoh4(rFyfw)L*dwdtsolI@0S)WKR zs*{fu?_M5{3w$yM0dhSTukiVOG{MH=>r8aQ`!0-p^kTZuX%viLfFQ4 zZZ%yh+L~9wKyyhw*N~<1G!V2s?k(2K1E1b<>@4MjZ{k z!S^O+84dlx_b#YnaLaImi6$EXb+Qk+Rr>;!&drf}0}v+mOd}nYO*v6vaW$gDWYb|3 z^6K&UF0gHaCBBO);XehZEU*ieTjBWL!q8n}y^dc*j$rJrqF2w^;fBWIStI^-S{s17 zOTFvb^o8^mL_|9zl6@ZDGxiy7&UzoQo!!gY7=hsqi0rR~)5SLcVV66jB=WkjVG)o9 zL!$H|AecrtQ^M)V7)&L$E&LN4A`G^-;JU%KQz|Ql{2Bt%GTa|UP{1j3U!*VaUWY1~ z5Yvjx9tP~oe35n&1@&j(yIBI66ju@WRXc{Us%61xo-AVg7op0AR2&GfcvvhWD#M0F zmfbSDc@!*FH1qGm;x`!$l77gD>CzVUUV+ht8o-8}dQ2WBd#q@`qSkPj+``h`3h6We zoD`?09k>hw>IGx4NQ-S@^9!yDH&I+i;1IZ2+x?Vcz@cEZ{{RKrz(&1?rr|OXF2E@h|Y4SN_m_$o~LE;I^*&m#{E|3?s7C(;9gH z0O+kSIywIUdbTeN)3o0-g#1^l=#I&RKyap_$m3!7G*ssC{wuKs3oolj&0fgtv@ls? zDCv#TmQYiI4@_U+tTd6GfLDf;!KGuXr)M6g1%hca7TEeLBEc!cMul}lN^lhFc5_Y( z0Tux%!J-=v!F9u2Mu>(vPN!!EOcpl_8(ZL{I3!Hl@?Fxxrc>EEuV*$aGByhUwolT=WjwcsEydr%aYoa&*U=^?ign|2O^80Lj5Dg_4m*YOGX9mtmVK+; zKRYRon52QOd3I5$?4r|^-IQNOemsva&soe(OOOqaEs%r+Prj~j^t$!DW(*ckuyCMZ zA6TXhQB^skWTlHnL)j@~xUvk{5XiJ-K8j@{g`{Wc9uP4fMW{CDwuHblz)gWB~jXZnCpfwg+?-?ulsh zPC)+vkcEN-HsMQOgz6uX3dleOVvRcNfikFBb#ry#Cjgzon^rRlQwUoe-$hv#R#LNw zte-8FmO|Pp%DW+DVG00(qSP#|EmJ763T&szTVRe<6PI^+1hcVAO47!KeTV zSukojbwI5ervuRt(cLfzBU1$c)etmMQ6rO(mB=b73DG;1ZdwRQx?IPyE;^xQM7{V# z9a1K5sv_pG)h>(CZ6P5F?HL3hEfBKA zXqzp{vN2+%Sl12qR=vi`xc1RAwp^_8?L9HfE>?0iTBHh+0bOH_SCk`_HIcH@B@IM1 zGGG)5lp-1vfQ^tYP^MJ&QphVI0^db%$x9%kAx9#*%2_rk$ZV!Xb(FGfQnUJ@ ztg2*ISriq9qm?=~L0y!xauEP_QAw3dsnkJUK%r{0bPmWWEkre0V4|TzLLt482;2lf z0T9&JL?{4iIY(qsvWl5UWHP1-T}2@tiAz<4r6gGeMXI+oUgD5|wGl&`szTA(UQ#$J zC@ctM3h$BxDvGiu4Nvn>AT4UKtx7&A+oH`_a1#KM807T6bVCwG*e5ozrjT;qPk6hiGf2K zQMwoOKssRp+iZ#1DJ2vL^-4hQn3T31kpnAG(GpNq2g;!XMF2*~00Bz`Y!t9mEr)an z9n%(zAX~}=ASsY0wUi-LRz;Ausm_5SiaAiR9gw+3*Ed8=r_oD#sg)ZbnSD^QVBI%T z#Q?}TL^N`Ry;0YM2H(P%3+ybE2U#%8N(Kx^rql*&>QTy07`+vlhpL&!2q`goDbXF3g~>~bp$usZci}m5AcP6g1u&;- ze942Zrqvk$?5*fsMn1{6^L(vLkdBHC)9=DcbJJ zBJiE6rnxwB%~gsUqz~+le?<+U2}n(u0)cFuhy?8xO0jD$nZ+wgjyfzizY5-}HcsMI zB%aH0i%n%TOR6DhlLS)hbahZLDBUKvOfFC|hvJ2l*2ozIqUnMOqJbZp1fVDtG($uN z=qaL_9gs_@brjRO0dswk1fWqtE>z5=l**!w)Fn)+7V3gs0#ULVQ4;DQWNfG^CAE~+ z+8};ZNCEDML16fz52~){+}TB2bro8o55-L?!jzORq6i^MQ7KDRLKKH|&T0yw3R8Yl zkcE{(s5eI{AO%5ca8iW8sG<{up-xm&ghjiQh@g9g2?;DxkWfADjmIjm3M4y(7F>5z zGNj#0k=-&R`hJ?Q8UqmdSHsGKrIN2e7 zyD6X10ov~dLftMh$6#uz>ev1sh3n1Y28nnOK7LfMILuX$$3WLDu%K*XxSht zZlaqwOdPBE1VKHK76MTYJcOfE!4%n#WHTPcO*@1~!2~b(shD!17ugFUCU%}w-?AA( zA)?w84X0#HyDD5>52At2B?W{8qz^8sq9yf4=v_~xLQ<4xIif`Fr^Hcf3+1)A=xXbAvT4}yxZzKMcXl;d@fEL5>iWfTizWHn8` zs#yZqr*3PZWXQ11E=+DhQFRV$D4^l$synL-NeZ&tD-wm&2xUFg_^QeCDVxzR%qSHM zUVA7UPR&BVrT|$14(_G+L*#{zVxVMF1n3G1DRdBoxltuc>VR9-8!2=%1QEu;C@AI# zW*jOd{wUoo``sNB3<@{ymqc_$Lhn>F`lxJ$kp#)=hfpD4rJLCS>LZ@$SR-J9W=Aqx z1Z=1|ujq(!7EmZ06ho|(IS@jMY~G0G7fW&IrNV*pHN@LvHF^BXELW=B9Jl zsiG|nJg5k9QsofFqm*!pU3;K&4po7G@>I$@qAIxxT%Fa0gSvr%1$Me?juT|{K(^eX zmi~$(r*NX8(%ldu$wU1S&JN*oXb3zZclS@3r-d}(6;rdG$qQb4D~aq9l6?^s7P&2m zP9D6FB$KOXPi%ZWX5aZoc);tYJOabnSvx1^eozxEQh-C>0 z3+=&3WdQ05s<61S+gEOokY;qE!`a8Zn5X?P;{Vj znj3@134_Ngo!8Y7F(=V9HRN#;?drCq=LO?sDbJnC~Wx^KKS282sOK_F8-&^4^3lIQMG54s@gQvgzj zrVa?BWh|y)!kNX;Ln937B2)Nm|0Pu)j;#;rk86=fk@{!O;R0Fn-0pzl*ZlAuvNLqb9ySu z;2Mp9R058DP+y`TDnUFa*OV59`h_eNSGOpK+msetvVp3;ph{oa1;h?evq@Cuzbapp z7L_zq-5qmZq_Jub=O6Q zFusK|Uf$`Y+izFb@j=pm&DL;1*ru|Y57ixti7XUU+V@J)#n9^x1^!D=>)wy6baNE-7BYzX>zPA^a&i#K!Ho!!75(iLc`fEQ*}f-^JD9WGBGx3j5Aclr-HR*Y8gT7n>5H$> zeTCCvfWV1ulevU_T~g(DVuA+_Q|23_$a^8vAfUWBAY=oOsVpbDM?mAHHJ<1LbBXy^y2MHW4!n+x~!@6%Z z#-_^RJ7|TG6@u%h4v=sxh#IFKdI5J4wyF%**rR(Ll5<{6vf2s0#ZoqmdCoS%q0bd*4IR(;Z>A` zq+5kiVR{+#RhyMEpOT^T`k|Oz00opNECo1sqNr#Q&GArN3SjF6OI!~r+plB~ncNbX zIQLcCxz#vnQB8kT*Y!#PO>I;SwT|j(G1?G6ECV_-8WL=`>0NuAQrbOB{$_M^i&ribTv~{682K&>JwqDkj-*}zzvbH z?5fUhxI{<~I-;!&^he~X>H($7B2b{QE3eq4>kh>prS?P}dngIy6*K%)%zL0WLg-%V z1w_tovN`<}zp9#gAe}+jA|xLqG`9*16%}T7l&-NlBHJQEJE#);SfwM?S~BhsHbGe) zs2kgKTtM8V&1FP4?y7Mq%YoYI4UcfD6u70iM#kzE>AI){+p4e)c_B&X1tyfY0{06Qbj$YvV=h($J5sExf!iY}W;Z^Z)OvKybRWX%ALUb*R| z<>^b+WC8VxuKMnR-mt#o?m)}x6<`lU3G@go&JO4o4#_k6AYFYd6+>ON*-aAL(Mx(D zE+Gqmp=w;7s)L!m(YsI9OO$d{%HHUP^7la4jS%v8O5)M6K)`lF+U`)yctyUbqnG%K zA)~s2$_%K0ZZ^7__9?Rf6zU7v0_uCA<_YtT5zbHnnD4SWf~I5LOZupzn1wSbbu>V8 zk;09Xo)iT(o`?v2)q%>bE{jlD=?F=jld3lUAcen(AeoP3ZhI-GaHYLM01t4FP!0kF z4~kM7*dTE*N2&(OysbTuEeI_3pPFGk_*7-LWON(ZL4Qzk3Yo`sK_j{rMQ9Q?x*cE+ z;>$T>xC&%)XlU!-ViYoHvt@TWB_`XH(7d|*kGWP!?iE?a#HpgxWaY}TZgo=rsta3n zKtv0ueF(A|pe4594LhhqufbCZq>z8-NnuUK2PZ+v2JVRe%LhcL=sZ4#=y6K~5tDQXZ`m5TzEj1{Cdx1yGn> zKUf}ARlP3BgkGwivw1d0s@~y2VP~p=nkvM@x?wM>2N9d647Vvm!QBx50QtI#U=INc z9?EqEw?xVZDk%s`LG60_`?RU+7TH=(LB-ZJ|qYmf)R~@}RIf+oPSg z-&J0A_9%kh0t+)+l`fN=(a{Bg$b+h>9uWgTO^{YgiP)$EuciL=cpn7T03fIr`l4L^$@Lo}Vs}whhskaNmw6hH zeoD((E1uARWhZqkr%)lB9uPzRlK$_Cxg4rt#00CJvEP%@V6i%7odz(HPHqh)JbuC_+OMN?vpjrJ<* z1vDEVs03^i?vBAxU6DT&`G=woBHAbr{FFm2`B4EaJ;DuX9IfUC1G0t|k){4ip4-zF zVy2~P_ICGjf}CG+n>5K{JE4C?uc6$OJ)hM!X^7v225vzGZ8YAh2sKw`n6nYxK>q-W z*kBx??BlX+G{|3WP|to!*lGO=Q%-mZvrJ?-ozyq(wfj4}1wEYh3hdJf-(pc3oo*Jx z0S8nJNwJ(dL zTiB@AA5;yPgUW^FM!52uje?3y=!g2ETYeH{H#!wXf%Z_m5R)U1YbFfJfn4G0ls%-| zRb#S^!a^JNN+E&ljr*jywt+x2L2z)l3Kwdt%XA3zD5oaes9a9T07qT|f?49)qj!2; z49@Hjx!%Yj%uedYyn(3v6D)vL5NgfdmfpP`F=KshAy#U;+d- zKUGGs+iNEyvWDRV4IpZX2ZEERMuaG2zZO8`5;rMGL9%=iFYXWvAVQhNm1aS}R0n3h z$xX)LGo=Am`E=6ipj-{gIma5Rw?(6L7YA#yaO)~AdxXIHqO=FL`h-i_*;K>9-CWkR zoot|2W%WbKd#eiv2nK?nOs(!zxC2Z4)y5Kb313eB5K)-l-YLdnG;vPaV|`Vf5;xg4 zMI)#_wbQlF=F0ZPqG2C(HmX5A&@MY&Xz7l~7{_GT%1Q2}$U7CIrrtsYg8LOwnb+d! za~tXk*dq#blW5DB5v~5@a{<9xdU|VbxlWkv_$I{-lhGcaSBQb&A|f1sn-mEf**<+X z(OHqBfT3XRqA3HyIosSP>4$6r2Ao@D2un&*-o;ta0Un4tT#teZfIXBfcM8vD{wJTB zZi%+#25g6w3k{X#7k5fxc-)|@W*dZVc?r61?osKRpiMVGyeoP~lzKhF3JbpUF7Cx> z=!FDblW3z`Y@zro`bu<)ZB!}qS~???4KVdhqMK-)yGQIBXRZfw|a8~~SX9{~b9ILo# zggBlQHw$oyz0nY~?wd_H?k8)cxCeF8H0?Wpl+!U?nse^bcTPPPqfW%Ggbj+jO(-7( z-z8^G+ae=DQkMYguWL2g9D}gBhLqn$Epv5nj{Ah-HiTAt08sN^MW-WB>5j-K^LJ9k zU6d#QB?TmvE_*A?cjm}+h5h1!lHxlc>0AcN;~&8h7({0Toz7~Zp?y8oNsyt`cVqXiE{pX$SwZTvhn{pqI{cIuI0UBM)p@ntph_yjKpUZP>Z>jY zW(uO+6gC?bNpcy-a)RrWGap4yQpG8ms5D;T1(?hL&?W1gtX0xBSP+!7cUg?5u~R&U zf`a_5C>8{Oxb7^0X(sm}0~Q4gO(}Apv{MG2=mCkn(CIg_e7f$SXzmbH=$bf7(^?E| z`$`5heQT!Cl*j5)mRpdvmNgEW4*@o5j5pw+4jTZqnByEE8o{s%?R3Um@%2+R$Cj0> zIiu=?!bW|c!8V#@9|EilCxxI$&HzL_UqBSt&C}ClrYCSNwih1BNpau=+OZgq*;A+J zLfkdrC|l?gW|$0R46eS*b+yn>4|c@D#~wToAXA2MJypPRX-OF4Fs| ziS#R@(Z6IppRfw-)0#>9B|tMSk4w0^1|jxU+G)?&YNos`{UAk%P{74@mN4p=G~1P| z!rtn1fY~;Tmh@2QHY;CEOrq(tOhgqj>9XBs_DVqeAvS4_)=EhnEx8(gsYS3ekgmoM z{{V_P{Yu(kVA{%bLTu9}Z&HYVsaLuUbSN5sQkxZ%bh>=irW0^w~YatTyA6!J27*nkm5@f+54Q z4QefCq6i+|$;7SfR1EYA%&i|(C`4=9>YcB)%DuJ-+#S>x34RLBup?!ZWgMx0RWvp= z;aCe+E~S&UV0hV0F53ZWg5L$0N)GxcW*cAdO)Eh?h)QqVEY6Uffhw~km-k9YHCW$L zj*BZ~keynr4tHfycqxa)QPi+SvLY@=Tj~`?O%Upo8Zw14H@eDXaZ@wB6GK=H3KBbo zi#xU@LgQr6*O{Y{bu$Hkxxck*(VTZg zJS^561m1*{R*d?h4c2gdN+8=%riPm+M|&*BN83a?jytB6c^;`vyR7BMxl7bN(?;40 znm0;b7JJ`vrNBP&x<#er?3B3r-63%9fw9=C33(mTmy%MJ>V{2KLx+_!m04}OpnU;B zczN_kKcG~L*+Nkl8ArhmsP3u<&?XimZBbT-`h-J?*s87qnUGpZ?oxTLqmta)lrC?v zL3Ph0A#YVtar+7fn|q-JmN!#SbXE0FWWm?;K;g%g3zCDPhTI~W;YD4&N{Edm(fzac zr7|#V>!@O4oi?sbqh2^pBuW|RrcF^zoj~-Zhq{>$+6Wszbfv*50CIr?g+mtv3zcT~ z(MvnBAl(%PKQQzNhf9<+&R~pUpl~Fo@r}4QROvF~NnB=ZA!|o(>PY$nb@0W#2u2+FMfWKR59g9F z=r+vgJ)by&jHddb-lZnAp~z+k5%wQ=jIN@)YBckS<}Zk#E@h#U2+;j4#@Y|YIfZPI zxURXn3WU07!QJO%LFb59Pl>UXgzk9XOtIE5Say_*Ox6{e{Gg+DEwTl|M&H00j5!*s zcBA-}NNIE{X< zsOJY!Uw&ZS8j8`iXRH4b^os+do`(O03MYK1OOCyLMH%FfyGinVrCwNx63f|#$HAb$ z9XuylV=R&r!vL%C+#wx<8JT(k8hM}bev`Ao#vtV=6K(Xx%wREPQ0hZh@ajMJyHKnh zF^St&$Q3qa#rEFNYHG|9@=>FsDWAl4pZSQN5)}-)5(4}iDa`DmGQsZzSu4oWbqkA4 zJYZJf;V#(QET?a%|8Uq$O{lN{8#NF1Vj^0nsbe;UAkR;x3Jx9nvV|EEc-%VFbON)n zD~4j9?d9T;aZd4uV@=3+!QWHw>`{t^lrpT&=6WpwDB3ey50*9~1j68j*ep?tL$K=M zedqj$!smh8c+{@STt!@LzR9kG$;UtWr==Oh2!>Kbg*BG+jX|2Bi^kizB5xxuUp=wr z@r(_B@bKiPEP$5P)~z{)!3W8ngSV|8zq5pdHhn-mv6(B9N@Kf!DY%P;NAxpqU#ntf znHCta&jpwE6Kg_t11c4p)1#iRCLNa0SlY6iIXh3 zrdg6CUhvVY*hoC*8}Z&S{`;*~p3KF4U!-oqlfm!llG*ZUeawkek+qDM^ePG$8OIWLqV9fnME^a;VY~D3oDzUk z4X5YR6@=stLL!o9yFg_o@ZG3@-Q_NFSUL! z$^<3EAp)jB;;L6XN;!%$UEbz2VI!VLGF`e47*08N1IKg}(oDBM{oPgLPeGyeQrT)% zY1bYi$a4l+3Or9%lr=?)*^b3fMl^Ht)e}bV&DC1v7DYw&P$Qtnwe>Mlpjd{ygT zRi|%w-*xYRBmyuvDw;;>iHRmu6epr=cex@IJD1rg*LSL4v(GAD!CnTlwUgZWb&~AT z*g^&FD^LVO>X*)N8;a)oEKfKFR?5F3&&L#$zoakSTXyng7?1R><%901&_MzAysWO&k<*TByDa1c6 zvuDaAwZB?h8evl-W1nX|wD8nSiY2{UQpwhcn9b4KGvwoBRF}a|?>9NseaA0vWBY>% ze^26#$#rj|Ts8Ki$Riip#~Zg@fh@7Eq~irbu`))wj>pKjx2vfyrbdpMEyKe)*0LIT z!UYuD9!n=7Om7cFMpE}tpTSdhKv!hEVlY3V+@QrAA27e;F4)MSu@^;Y3WHfWOw~Y4=y<3kPMo;+Dyo443ve&(D zJL$c8m=*j}8{F=rJ}w&0VD3Rnj(yH&7|KfF*RRVvW|C_#A}zR62`1iVjHZ@qr9^Z{ zwq;jro%Ym+*_FH-U+`wlHmU;IK*jNN%=~&d3!==r-y@jF>s`(ajHV;>S$rCOc|`yQ zWm)-2VaG<4wBbO;r}eX_Wz5E7twe;L+EF(6&7iS=p+p1pXiA}+D#340J<-LLwqIJ~-i$##TAzNN4#MJwtzIdcCmot3m#8NFlYSl>gV{+BF;y9yh zL8Qf_vNjxH5K;B17N1fSl$h2dg6@$#*wHEY{$=@2?>fri4HxviaV2+t_Q zjdB8rxXUVSXUwC)$|h zw@`Q>?fh}jl#SLGe~k)gB2&t(adc3E#fG=(bi&lizpBR#`k~>Ksi+q`GO2gMeKq4K zYX|brN#gCRt}g5*@pD(W1KiKC;_$UPy`ayI_F&^n5BdQ5S&iXM$gH1wFYhtchtc6q zv~%qGput;nbQ)?2WGJk54HSrz=pRJhU~8Zt0r1k%f+9YARX*yfUQR>At?Bs0jTbQ?c*7M$ewT- zC1rf5q0fyjMbA=+efYJd&O{Gtz?KjSABLlJVAV zi7gE_vn;2ZoQCDQhdFjIG|GQ#LTPA^LSRv z20VdiX+Z+G}=KjRLcr#Pek}a{e&Dy2&A`gT0umxqN2-zM9XDMg8P^g$pZ&aUni7;; zEr9RPTiC{r@uD$3#l-3AffU>T1`@>o!gs5DeY4=^5m&dn5S?&Jz!fp&05gQ}GVW}Q z%?)wj4Je2%#sZGKY+FL|UB##+Xa18LuO5CGB8ys?J4z5W0ambI(cL z+7fwg-&wM+&HKor`l0=9rR(z0Hq94YOHrn1)IheI*j_hk)I7GOzY+_Nm6!O}!Jj2q zZXtFgsOMmO$AA*gjV-8JQ-Az|`>uN3*KXEJ(7MDYxkWw?+=WN43)UIq;jf6yk3{;D zqaBZHr8?v1{pa#w+G!hLAy7;*&11roxR9Ryl1!fj|8}@b$o@9wRUdM*8L#PC#VqX* z&kssMcB56aTiqr)I^)?0TtX)6|s#gYbc6YZsgP9Tg7H<2KGO-!A>{hGlXlL&N^9tKKJ5o-vw` z37kWgpSg+-`=t$^s~&%JrLO2>7_3XKbLI9q)lQRAwVgsh+LQdFq20(!FUCmm$HLee zwNR+p6d~*qf!)O@EFsRDr+*BW&L(wgpY!VBY#L++dx!Oi zE@g?!ozMLbGOdb12$!5;A9MmMU897nuKG$8iA|uSX`o%mziiMt-OJEg@2z)%Y=Jn9 zDKz)kVAC~JWRJm%TE@#>VcW-=AWvFTV@1}fxto+j)oos@YM(Otg%A@;XM#c3<L zn_;mJSCwT;{1+Gl|G_v{v6ncbFauF09U!uPrU~)H?;|-JV9KPce)-`r{qHZjexqGB z)FSo?D&fz#VM{l-MJ>!pNfP4wu56u>uR0JJ6`moHC1#v%-!6}q{<(ioy8TbJx^AE_ zc#=}nOsD#%3a3@(HAXlDro}}^}@Jd(r5Nr z-zY;yxR9b#?G16#TfZypj9j%--yQF?#{c%%btEh+-R(yCrrgvH@mvoUjYokiG;77& zlz1ou4)W{w6a6d{tQ%#2QgB1X8{&LUQ^~WUwF?AFmA#Jp4G$ zpr>6_l5iq+Yyk67`|9QT#`{clL)cc$(LAhy0v@F_ty%CV{Z{Wf?M%&pw1;MCl#Hy> z=54KqP{hF`vEH9tVPUUicxwvoH)HmhmS!{_R33|!Uc{)ZR^K&aLQLm0YsEom6y@^m z){7D^yp6FE^qR9Yv2pnN_}4;}H+2W{S~?5t)fWt-a=z7G6x$>yvO!Q2CV6u;s!mEX zz57dsM@gpetz@-h8GM`n#FSllGFOP!h|d@E8|S~WoZgwovdu=~dWsW@g!sx5IV>Ga8Wn=Qn`Sn>zQX-5mFL zbqUb;5%&vzdOpb~GtnH&+CiVb1U!);)H*S88j`pcAPN?4+gpW7$4qORgO&T4BA`c4 z80rljgZ9nSb>o_UKAbk0(;eb^X&u*cBQ1leuQh@qo}W3B?9lbGkg(Wix6ch_ZM!Q| zT6#w$z(E&!EFWS-0N=gISHY)B{Qc{eTM-5au|&byZ@Qk{qSZfVi32t^ZWiFw!N$RS zafuQGo}VFIS~U1;%;E__fa0h^7!@_RdMlZjD#G4ht!W<b4B$)O*dXo!+Nb-O}Bcu_dISQ+i5YwDYs$!lQ7k1;%aNLP@?UB&TZ|#R5BP>=oRO zyD=(ZoU;*s;Lc&|dMrm;0YCG_h8XWQ4$QzATpFiVw)ZHVJ`sO(^ ztZcG+Nroeds?3hax9i2nt&^B{@u()}V9nsRq3t$w+(}wfgK~Y3{j9@K(nXQ-yX0b} zKtkEyd+)3@D!XfAWtAkeu=ltC|Cs@y7$vY!!j7lv2McW5!;wCKA z?~2o5am;r!l*?+?^T#k~-kMdbLX)>yxkl+oz6s$$A-6vndBa7IR#g!pI!7^F_J7of z2wH{R8|v}$AL2YmxUT$x`na7KIu5&*8WlmxTXR2$_a9f7(~(x-QN8rdA-qRm`52!Ld2tq0$Op_)c}t z)MA18kLu-Kw9IAT?gv8l@2#&jb#}{#4!O-v5Gvwgwj7+TAGHZK27#C+rv3`nLO>r~ zHqtCS&|5%f+0oay=$PUr6vtAp*l*2c3Pta%o35*fr5pYyFVbKm~Y zS|}RYmRtpI5o$CT5bEw`*rzR0O5$4ii;W!a5C7VOz@26=T(xi$*E~s9}$i@hSms1=XW~! zlWjysXZFS;!KgA!#W<7sW%XOKi};;64$lsDsimbKfXFojUc4?W>K|n2>~q?eMy54 z4m!LO6;m-f%TNyC-z_0Bh6R|`g+YV?XshHjqtyYVFrDOaE;54A$gg=6=4hL`q z>q$)7#-6VNyFZW+8Ft)PNvI8XDnx-R(~+IOljPZdbdJ`?&hrk~aR#DC)<}^rVmTSx z*gp}uC09|iOse4(JxhMemv1L}_Q1y|b;CBSzpDqWEv?JsFIG+XTn^FAFY2n~=$NUl zx0+UkGj2`CKG?flG|Bf`>wQ5`5Ed0zG-p1YB@#jwHt8+zbc4TMIC8Vu!P3>HhYk+4rvJHLdigiIA(Gq`Igd=)}h|&9@D}-6RK@k2sGE}opn_HPdsPMdF zYrXX()XtkZ|07#!2MGa#Ge6}IL^J&}j3vG^q|RSC@pn{ljfVM>7TC;Q--GAnX81p!^B(|@UBUL!i%PS%;Lhe^)-{#ix~M~t8j7lowyeZ*Jisvo)1(#uEp2Oc6>T}UlC0cb<4C{M#ZekE;fKJtvR7-{={1HS)tuf~qNiqNlZ)HJ;q!Q5y_!|I89&S5!CJ z=twF|fR6q7&o!hIvJ@TPokpg(m2Z|dJ zg&*Xi{j(OdwfiqzOthayT)>Blpi(x{xp(zOM`i{T)*9_ypMCG_bK4bT<|jrLTSTH7R>Nu z!LUegGCzPc^d5lVC0W7696q*WsrIr{rJJ9?sTX*Tr*D|M^?29pt1sJrI9wSCz`V{K zG5gIJj5!3xy4}p87rfuJ+lDGOejjf)9+2?WnaS{t{1vdX%GqdjyCD|E?+ZWri2U?> zCpqn?p%OwnkxO`E4y3b#9+vBoCbj%Hp@}=%2dZBNVm_HPp|}lZ%+$i_zlBmZlyvqU zs4L%8+fDApxMa%$MbO0}%~!jb&3s&`!S&rcpz_1pQc1Qt-zo}vq;!y-o`FuuU#B%_ z(VeY}P6b@6Sx@5u{TFVF%)(XmYht1XAf3VJCN2OyT^qTdjs_*_$yy_m<9;C%Mi(34msjcSErC_`S1}ed9iLr|7G7-5Q4H9ydH`ZK~ z1??k^6RMcfep(mT&qVBX8o8!8va~$1M*&pNbJNfT#+DtDh#Yi~n=5h(Jn^0pme}!G z0Ij4{`{t`cM@)1*p=!9`8!C(< zZj?=~7(wv?PyLd!+B(UOk!h|ZF9g5*BnBB*&c~i9`SDwTfO}8CFE3fq1!8TjI2GRV zSiMA!>geZL1}dJyi@{gD3X&N)GOdi^zzb|AMYVX!_~Lr8!KA;(&baiwTH+07lLymL zx5D+(=1x4;ko;i!jf=@3TS4g|uabO3GtdBeG0kvz=MhAJKF{e4wz5IsYg#S2$YoTqH+Q=ZM!ooM#OJ>-?bO3q7IyJg>F} zyXY+T&5^U3x7LO>pXh6Y$xbqjo?3dTJ(h@RQc6^s z)2TLZhQ+mE<hxB;oBZlO{> zsfOm>+P~Q3oc{raM#84No~`9vo&dRj)H`&lvWn=ixaFLl0UuQb~{5nQj$=U z;ul-Bg?>2Pyix>e&l`OHF9)xrKFkZ7!^!mQ(^kY_Yhs~CSUFr3r!dY?s$kxw4yymlDtjf*Yewt+p z%z&R7qR2zO*d4LBqy#(mu@EX!C)kWCTuYZO-q27VFu&w#@A5(C!xrg|N;cpG17Im0 ztXX*MC0hgl`sAiEpHEr~rYO%7^A?s-_tA2^$cYWubw{V(dl*0|eA+9_c(0PRwP{sOF3CHv-4)pbj; zIk?-7gK7U6y~L)|A4Jb*Q^<1917`@o{T3VTb#7XHYKy5fm%>C<{+^Hr zX2!?urRUv|as~JTGX?BUmX*X~mQqzE);)8RT2l9L(d~YZSZoH5s}w-@6L{1*5r29D zuVOV0t?ctGxNxiQcOi%788QuP#@4BKOY#J6k*CXYa#x&fUBqVpE=lAQ^YDGeT$zI% z#SVldU=#D~mN~om#MM}x<8HLI(mvMtu^45Uh=06kiUCx!bVjre_9oq8IT!@4yOQGx&uU$5rB>?Jq4x0?%wpBXj-Wgk#aEi zRfE{fm)TRGQcOrQ==8aVdzQXQTV4`phA}I?QL72Yu_aOef|?B~_u>Kiv<2kahGVx8we)jhM?G8U0H+o7W(t!P6F zNQk+f8p$oi1Pl}nZ!e-&v1<=!wKt>4(g>5KXh!xO{$jNQxN8TY@USml!gt5(pJ~sW z2RxIml~-yAJwWTW>&*E=WS)f22c^=;HUf=Y;uic)98T05TD#= z9wc`wCp;K7J0f#~Gb-$sh(hsUjlb(Ir1Ts=LctN^g`l6OHEV0<3ukk0TqgfJE%CT% zr4MN+dg5-o#k(tN*HT4gwlTzixd@dWv(9+v%adEqQ3NV^w&*}gwz&P)uIFG>5`wJ} z-=^0=>PV+_tjy7sE!kCCX>O0&j7n6nvmPX_wSU9Lk*i|8yxvrtUm`!Pfib+l-+gpw zXC|`|9{c1bWyBH`P%!$$&@Q{%S1SeI?iK|&NlbEHX`bgW>$b>|Gc739X)wfZGIH{IhC-^clORb)4 z`L{qex<}SAvVzeh%GUM^LQi0RL>9C<4BKVXLj{zTRt(SLiW)%mAHy+dpZG>Tg^(iHRUpXS-oeLres$30=n3ROoCi&!v;*v#>A_@ ztu7L7-Q$^^$wp)rosId4SKvaIPNYW3nEUqj7~G$bPvF2A&&f&1Tlvow-ua-%m2Z^wUz}>gh}sW9c%3 z>s|X@S}d$05gVZV`J1I@0ungzp^)3Xq@hOtfLm`(C0t7q2k2+FK8#Sv7{=YFj)MVL$M_CvWP0g`p@g%SVnysYpfDT%Z=O>!EL3wI3>bLNqY_!v zOA5Bf9T1Hrft^4gw_X;cq^#D35*7?S?r~qVWoGq0Qpun1dipa*;$L$zmDsXj=OoC! zu&_z=(3vrm>ciOjc%3wJAB_?`Ghq5xk@h4T8j7E)Vu^yqrpM+)WdSzWXH)N7)9?+( z34J~i#K6uV@-PU_`xWi(lYxg^MM&$dlc`rT!z8g@EB z?UG>Ob`_O1J}(!Td6uESjWR!T)$#NqSHeO?*h-QE0uB-+LwCgWwjL@kL!(7FzWx3> z2I6uT`^Fy&pu+rmX?`s}5iD;{z2<#Tsr9?xwT|2F53>YAYe!V%3Z%t6SP(coDoc|c zP%}#{WMqDzQl@VpJ^IB%SX{tykYVzrk`0d6M*_AXa+r#GpLH@^GOD`F2?0&Lb^9%9 zX3Znt4afnfe!VF1X3{Nu4=!T7p5IR&e-b6C7orRx*B<%)#2g$3iWNTPREi_KhpgC; zb}6f02VH&tI6{~E8|{MzkKJoxXS`n-Q2pCC{@i7v&i=gtf;@T^#dQ)Fq{+OUqn0G0 zxPF#cg$$(&+xHdnWbEIvOG|QDW~dY5q_k=4nswvy>NOGrZq6hh^nJq+LoaBC{4Er^ z_*0bcc(h4z!fWf}r~RTH|FC;U{!MZCM=SdLjpfRb)(xA6E=eE{{Vq&()uSw?`O@>? z*s}pQm}`eF4Ng!s>0FjjV6VG?rJF>wHSnLst5Z_Pb{TFFi2}8*B;|b8(A*Pyf3C3T zMQodkSipO)+bk>LssPX3-;`$t9Ze2J7X`lauof!b;HRq~J!!dZx-LIA!9nEXCjBNW z>)=&)GE;03_|M8>AWc!_gZHSiEahTevCj&CUn19y_b&caB6RUmm`&Z7Xc7X^o|i3J zlw5W8kXpCbN~%YZcwmCDKRHVQ^~aDLw4W|{7XnR&-P&EoLc{}-FgpSph#9K8x6oM` zDxX}_i1^399O3-a_0aL9x?m}RKQw{GcBk+u3Wyvb&?fao9?9p1o?J}^aD`ckm8vGx z9jYtjp^1emx1F9u#p4z7W#=ek6{;A^RA0x2r(q-DuDjU}{TZG?t8*#Oy1`RoX=J)u zna+M{cFTX+U~F6)*dhj^R?bC&w(y`z4skYjM1DpCx!G=EaD1Px z(Z=;G%4$S)Nv$i%{pWg-KbnKKfrsOIjN__Om=9F$9SBh)!*_-zuu8W zN1>Y9v#o&am|)lgp(Z`R#^KFbc;qy-+U~3%W#DtLy;HD6EWVTW9KI?v9@-VdOk9KC_D+X;d191bqvTp6sna66=nHJIPN;H znDmsmnkA^2@uh64dXk1$L`Fnm$VX&?dgdkQ-3;` zoH<|C1yesp9qSYy`R*xA%dVn~v9Mlgjb?s^mhKW)bia9&g~BGeGKzJ6kuhw{7|$#W zEvOz9REmCEb45+A!H4(HoK5|8SnX^gyPlO>CXZ&{wz|6sL%(9lu@AnqsOe1Bj@cCc zv?+qI6y`Bf=4i-266h=v341AfN7ijyf4`?-i+v8bv{&)n{b~7t{*K1MYZo#3;*_n6= zr+BFfy|*t2(#3)L)tOp)w-Eu9R=6$!0^||q1TK6Lt#qRws7hIjjTav*i717KvR{Dd z#@8_-a3V=z(crxz)_K8p0%f+1T3T6G1b#EA)-WD~kU~EG89Pv|egQI~Nz=r|A1YT$ zJ`4oRY$zG0MZ9&3^PhKplE{ND$jUm4OXO~2PeYap7vC-Le3UJDM;ev5jxIn- z*l;qkLeSnCi_I(Z?Us#xi8~lchXCxdRS2n#k^nI=FxV(e7ad>Su-O0)XE}ScXyZ=_ ztb%)ocq57LtmX(G?k+XXy6Z|myy?MNI%>1My7OjLZ;A!)?$9GT=(E2T0!dbD*r-iUb4hj6Hp6VT~LL$j8@BPvZ6HQEgdL+MCyQGTCBApyMouH>bD8VqH3Qb*(;(Q_ z7$w?Wca@$>nboW-HtEljZ}kEH@$buD%YkbV52aG`_u!;5eu-K4f%Qk!A zW*x6v36oP_RHlcRPuIMkgC9hXK)d_$->=?^7uBVsT7zIlp;lUkqUQ;c=cd(fbZdWW z@>+l$h~^pOww~CXu8ZM-n)q3UicBW2zNRA!X8SoN;p}~u8}n4qEc}(TrMnh$@X;^) zu`?qcN)fVBi)O?oU`*#iUT2ue%WxyNvJJcNB<~|0lA<@DTKaseRp=Di+ogq!;vtC( z@@}M-WmG&qu!LCsKEeL>Hp(T~@ykVkB7Qr{ya{FZhhZ`ecUIDqy0D#{E3#KWVeh(| z60VPn%rT6Zplgq%rwZc=@K~K$YUL}Ci)gY2;3ulxzOSd!K4qLJvak16nBMGq6>-oh zq4I0fT=m=aGKG%t2>BEK{4|pD$|G{!i_&qzlG-JD8pCB#J#KXFdzO?{fud++x#h~5 z%TIyFUO~4I63sQJxZ)#dQ(V}>w<1*4-`JMh;&&Fw*z;-qepSmd0nOc5SX`Rsv`8kcy{G~n# zxI9WNtz}{DB}adDtqk6Iy7V|cR~I8Ls;|I94VhzBW&rqCX(8!S8d1AWhJghkS9iYW9i@x`(8 zP_#;`wta293esA-T|EY&Lt$}DXs99VgwSu#E|8}Im6T!S{kGsHd{YxG7~`>pClm4gKnht(xym<{e- zm&9osIT5!)>PzRG+s87cTs(B93aqQ&iDXHe4SUz{At-m!k$hjo?fzu=1rF&>?!NW` zLDQH8cKZW$vTh@=@>W^XjEXNRMIyVXa!|(WYx2G^UlJTEQRd^9htNxN zG#$_?6DrwInJWEv#B5xJalNdHEeoXCGYIz{i9^h5U zwT=jxb?my2j&&1OHU)_N=|gX~1f%gz&si|izV;-tKYNk80(llOEmH(hspTVy9bS|h zwY0=nDuaY@jykwiv`~3S-pO>=$@nG3$?2J%K$Wx5>BpOHqkUtd5eH2tyNyYkUJsJQ zsbvc{nBl6*@>02j?wb@Hnm`D>OP-T=_dGF01Ww#LQ+*Febz{JN==MdkO{&0rz{1 z58tBu6FhF`=dErlKZzMDG~^qS7q+h053S1w`YJWLt{3OdkUxDnGmm1;dNIoyz8=?d z7_y!4c*e4+N{*06cbm0*pj=6;l#iHkDy30R6Pwqz?s8bTB^3Z1Va(>U2L-v4xa_{Uf0tO)gRh144k zb>3qiZiuOGpW?&TXVayhU6f6*#XCfW_ZzaCn9mECmQO_s+fsi9G;gkc2?e`Ga}-HoVO>c_NWtRWb4dA3B?kMzC@=Y4FS> zC%UD}vtWaURsF4p!h$R*Ls50*-lf!wq8UaPUfj>j0~fLqclPt)S{Vj03@gckFYwcP zw}g8gjKkaWWm$=?F1CdVAiowGb(EH)6SIH`}tA>;AVP)$f0R)3p&vyg`WyC-#kH zAn*NB_Dh-(&-1>}1f%hbD&8>ZW;Z&is0x$m#i4vT<28FN-B|#C9c!6HI^=fjxaF(D z!Xb-}r&Y(EXUfAtp4pJKZ~>(`|QLRIbwv7@|KT8712p;xpI=S@P4)>YS3 zklzwq3g*C8w0(6S#l6RdL@SHyBjF@#_@}XL0wg$TCd@S``OHdAn&eNW`%@r>6sW!c z%Xs}UJwS+ynvJ8;5AAyUhsS?GS9yilWC%Zy#z$ZTzNu`QFs_X)z%g1;Mhv)cDoFC4 zWFu-wc&)FUaP{hh#mp4;^puIN5kc5OFM7byKeoiGHvy%Ro$)#rdrA5iJ=lzU@f~j1 zd0B+~FZaO8UWRu-a^aNi2j3FaMX2KoZFtNkOzI~j^W6xibYIJCvwB8~ZXjEZoJu-d zXLz}^yzj#-s^VpGjjVq6eBCpyNXy_2@1PBp_X(gpV7w14Swm&6zTGPsab{i6>Fi}6 z?6+nB|Kf*bPFbO_@8o?mezVoPG$K}JxyZL%*@Y|iM{M9^UZ*@Tq4Qtt=?s9vGHhmc z-XY-cc|kNr`b}AhV{6~E^*j0uX3UYPpi4`DRwNG<$+2{raYd<}hFezl<-crW0!Y*J zGpjO^Nii1<69ivbRlV!zHcP~idUo3O^R2)AqAWnhx!`x2UlFmp6QM1El?lez(#<;E zVyT)FxN?vGmJAcwN`Z0Rs1@A=m*~*{5F)clvRSMGOGu_gWzSlPTvnr2lnri6Z#=-&p@=MiBP! z$|a?6T{gjY&mkq8a>y^qA$*A8^=}W|g2X1HMCb-m9gC*@LbwSKLe(4{Lu6w9{?udc z?3~zK1d5(vXMBwH2XYJmQK^dL1lOFqL+VzSRku2As9|H(6P9n>}Zv5CSG!1vrg-lF%| z&vHfRFJ2RA6~nf&+d`Yw&w3PqDNwTukuu@858X=$d>?mF^R)9&RqF(-!-FagGh>liJ0VFvPxw{EZk){%@@r`M%}*<&&_>-s>M;& zb*e&P@2w)97}^#&l7_$F7r!tEzT}}DnZP-{Nb2kA&LP6X-gz_cCz07Y?>>Fz7sv;{ zO>tHa;2!!ai1ku^^D-1l5=yvt%xcoDXvoTH{W8HpR^U`_dIkz7K54Vjm187vmg#i>%wP(;@~OPrx8+Yy|*J$iqkZGh0!G) z(Ix`$hMd_h;t9<9(u0+?=kN#SixNplJ_%6iN&(DA-6kp{{MQR#J0GHp-ES0laW)w; zv*+;~Cv6;s{h4{NonW==QNBQFY&&w3ieIrE(b}Ulc8&;d2qLk}WATkPf<{K{vT-Y! zv6aR+>)1fb$!&HGh@!%)8#@u|`KhV-g>D%;4*pCiaNBdLJnF#$QCu+nFuV1r4JDBF z?5N84J4-Os{edo?`|W=KX1z_&q&q|#JLMXkV&V>cn_@`8#qgBclw{T^vDCD?>Ppv; zod^}l2D}$b4d2qjKUp3aMKZ9_8au>v=0s^L<#7SSu`TY_V;?Z{k|ykj4-;19fGo*vR_PME8U z!WuswLlr-{p`US=;RTq}P_kUmj5T#OSSPi{k|zfiWR9Kjdj8;JLG@dYd;x+O2;ff< z3apWFtMq2!$XJXyA>?KXY(2aV>le71Dp2r6SgIUZTfr^Qg?{E>yvY1T93_$+d15`) zc?nrDn*eUB?5od8?pG(2eOiK6527#K`yU|8I%xk}LWSHLs`Z(*Xp&=?bdpwWc)QQp z-D@>cwj4=NpblmAzH!IsQ+~k=l=jT9Wf_^T-?sDxUvnz$iMPGmLu;*<2_xQ9O3>)< zSi3KU3J>lwNpZ>YLRy!+MO0l-mFN~KvM7~L$VgkEU%z_0sdW(l1oRYn=gxBL=|?ia zdA-`BA2*b5&1xT2)%Qs@sZ?VOpSKzCigz)WcDNiLnyD8AvHRgNS}2kExViOTtMw{- z|34RP2e^F~pZ_=YsXXY*H#Ez6_Hx!0UB@iTmmwaBbC>CpE-l%$7OjO(6U(a}eAAVm!G?B#TX_*9k(I+QbaE2jZGzoaxYTuD37CbCYgrbyw{)>ru=o^nVKJn;o*#; zwSk%zkgP*|2zult%U$(jfqK{1U~vt2RBo0vh}#Y|L|kg~*a7GWp}sal=4Z)dNtyA= z(J!5c5ay_^LNvM+!MYB`ETLJbYw0Iu;h=ksuE9j5LP0`~5r>|8Gd3zO`NuEDTchoQ z2l?bbbAcxfo+UgwsziMh_#q5*bI|)p$A-lfK8e`Dkvwi9s0=7_k>bTEKM9E=wY1Xa z(JnpxrG!nIL7Q%ZbRRw-S$({90%7nHH{9JOUa|O*;09!k5Y9Y2-YoNOHpw?&@?-EM z$HZagKT1cR@>jk5&)wcft!ecyu`i>kgca4SGYeU-EE2IcXT0j#^WRz1pZY#)(o>ps ztT-O1Tobobq$qF>8)hZnjc&t>Dc6YXuaa`w9Y-^*J`#+IfW;FsQK8qg;)XW8E}clP zi_R8lgU{k$QVVm|3kxjK=Y$6((9Y58x59%23w*Hv#AnWxGyV;45?7R1$NHHZs%($*u!YRCzIQa2atz*ByhF{vcgq(<;@uvJ}(_N}@iw?#`l&vmbI8(ET zb-XpuoQG3XoDJ2AXA&`*$d;_Odd+!s(AAUb4%aTU;k+Z;vfR~HX*p>O33>n;=K%TJ zLb&&afuLtRRW5uy&Bx<_A!Gh@l@#ze4k*V%pQUAai#A5byVtjn9HCMa*UvZbIOyZ@ z)tb;moFhSOY(m1-dzq1;oGknFE&1VTkoPMvDpYR$xLu4O2RL&a74TU z&JhHjp(Z8a9H6XPkx85bdML7Q+z^-nb3}a(=ejRMiD$#fCsY@WC7ee%h%EKiah(Ii zUtkz&a@&zMYv~A8Uec^|gie1%pQpxVYg7qLM7`VNV3>nNGJ2AuXgUj}Wiwi>gJA1P zdWcj-V3XUk1ek+p&>jqi1KdbUaGS$qYv9+d=2r>q&@(XKd+y? zTpM)QZyj;#LpwWix7tkG5$b4a$3Ub`Z^?H25vJW1CjaPBUn0`7(4rrZHyvT9XIH`M zSJ~MJi2%s<$v5c;8r3cLh57;hw*(l%X@EI-~|D_Zc5#IphC=oEckt)tJkr#tSs$cuurHHR7V*z%kuvLv>jo%GymiMAGP?RQ2+n{ literal 0 HcmV?d00001 diff --git a/module/intranet/meine_kontakte.inc.php b/module/intranet/meine_kontakte.inc.php index df343ab..eb826fb 100644 --- a/module/intranet/meine_kontakte.inc.php +++ b/module/intranet/meine_kontakte.inc.php @@ -27,7 +27,7 @@ function get_ceo($mandant_id){ function get_contact($image, $name, $email, $phone_no, $role_name) { echo "
"; if($image == ""){ - echo "
"; + echo "
"; }else { echo "
"; } diff --git a/module/intranet/person_card.php b/module/intranet/person_card.php index 69077e1..5f3d710 100644 --- a/module/intranet/person_card.php +++ b/module/intranet/person_card.php @@ -27,7 +27,7 @@ WHERE
= 1) { @@ -55,7 +56,7 @@ try { } } - $query = "SELECT main_collection.* FROM main_collection WHERE id IN (" . join(",", $array) . ")"; + $query = "SELECT main_collection.* FROM main_collection WHERE (is_archived = 0 OR is_archived IS NULL) AND id IN (" . join(",", $array) . ")"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); if (@mysqli_num_rows($result) == 0) { echo "Keine Suchergebnisse gefunden."; @@ -90,7 +91,7 @@ try { function all_posts() { - $query = "SELECT DISTINCT main_collection.* FROM main_collection LEFT JOIN knowledgecenter_collection_link ON main_collection.id = knowledgecenter_collection_link.main_collection_id WHERE main_collection_setup_id = 3"; + $query = "SELECT DISTINCT main_collection.* FROM main_collection LEFT JOIN knowledgecenter_collection_link ON main_collection.id = knowledgecenter_collection_link.main_collection_id WHERE main_collection_setup_id = 3 AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $count = @mysqli_num_rows($result); ?> @@ -157,7 +158,7 @@ try { function marked_posts() { - $query = "SELECT COUNT(*) AS count FROM main_collection_mark WHERE main_contact_id = " . $GLOBALS['main_contact']['id']; + $query = "SELECT COUNT(*) AS count FROM main_collection_mark INNER JOIN main_collection ON main_collection.id = main_collection_mark.main_collection_id WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $count = @mysqli_fetch_array($result); ?>
@@ -191,7 +192,7 @@ try { function bookmarks() { - $query = "SELECT * FROM main_collection LEFT JOIN main_collection_mark ON main_collection.id = main_collection_mark.main_collection_id WHERE main_contact_id = " . $GLOBALS['main_contact']['id']; + $query = "SELECT * FROM main_collection LEFT JOIN main_collection_mark ON main_collection.id = main_collection_mark.main_collection_id WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); ?>
@@ -246,7 +247,7 @@ try { function count_posts($category_id) { - $query = "SELECT knowledgecenter_collection_link.* FROM knowledgecenter_collection_link LEFT JOIN main_collection_mandant_link ON knowledgecenter_collection_link.main_collection_id = main_collection_mandant_link.main_collection_id WHERE knowledgecenter_category_id = " . $category_id; + $query = "SELECT knowledgecenter_collection_link.* FROM knowledgecenter_collection_link INNER JOIN main_collection ON main_collection.id = knowledgecenter_collection_link.main_collection_id LEFT JOIN main_collection_mandant_link ON knowledgecenter_collection_link.main_collection_id = main_collection_mandant_link.main_collection_id WHERE knowledgecenter_category_id = " . $category_id . " AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL)"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); if (@mysqli_num_rows($result) == 0) { return; @@ -343,7 +344,7 @@ try { $left_joint_main_fachbereich = "LEFT JOIN main_collection_fachbereich_link ON main_collection.id = main_collection_fachbereich_link.main_collection_id"; $left_joint_main_einricht = "LEFT JOIN main_collection_einricht_link ON main_collection.id = main_collection_einricht_link.main_collection_id"; - $query = "SELECT DISTINCT main_collection.* FROM main_collection " . $left_joint_main_mandant . " " . $left_join_main_department . " " . $left_joint_main_fachbereich . " " . $left_joint_main_einricht . " " . $left_joint_main_role . " LEFT JOIN knowledgecenter_collection_link ON knowledgecenter_collection_link.main_collection_id = main_collection.id WHERE knowledgecenter_collection_link.knowledgecenter_category_id = $category_id AND knowledgecenter_category_id != 0 AND (main_collection_department_link.main_department_id IN(" . implode(",", $department) . ") OR main_collection_department_link.main_department_id IS NULL) AND (main_collection_mandant_link.main_mandant_id IN(" . implode(",", $mandants) . ") OR main_collection_mandant_link.main_mandant_id IS NULL) AND (main_collection_fachbereich_link.main_fachbereich_id IN(" . implode(",", $fachbereiches) . ") OR main_collection_fachbereich_link.main_fachbereich_id IS NULL) AND (main_collection_einricht_link.main_einricht_id IN(" . implode(",", $einrichts) . ") OR main_collection_einricht_link.main_einricht_id IS NULL) AND (main_collection_role_link.main_role_id IN(" . implode(",", $role) . ") OR main_collection_role_link.main_role_id IS NULL) ORDER BY main_collection.description ASC"; + $query = "SELECT DISTINCT main_collection.* FROM main_collection " . $left_joint_main_mandant . " " . $left_join_main_department . " " . $left_joint_main_fachbereich . " " . $left_joint_main_einricht . " " . $left_joint_main_role . " LEFT JOIN knowledgecenter_collection_link ON knowledgecenter_collection_link.main_collection_id = main_collection.id WHERE knowledgecenter_collection_link.knowledgecenter_category_id = $category_id AND knowledgecenter_category_id != 0 AND (main_collection.is_archived = 0 OR main_collection.is_archived IS NULL) AND (main_collection_department_link.main_department_id IN(" . implode(",", $department) . ") OR main_collection_department_link.main_department_id IS NULL) AND (main_collection_mandant_link.main_mandant_id IN(" . implode(",", $mandants) . ") OR main_collection_mandant_link.main_mandant_id IS NULL) AND (main_collection_fachbereich_link.main_fachbereich_id IN(" . implode(",", $fachbereiches) . ") OR main_collection_fachbereich_link.main_fachbereich_id IS NULL) AND (main_collection_einricht_link.main_einricht_id IN(" . implode(",", $einrichts) . ") OR main_collection_einricht_link.main_einricht_id IS NULL) AND (main_collection_role_link.main_role_id IN(" . implode(",", $role) . ") OR main_collection_role_link.main_role_id IS NULL) ORDER BY main_collection.description ASC"; $result = @mysqli_query($GLOBALS['mysql_con'], $query); if (@mysqli_num_rows($result) == 0) { return; diff --git a/module/learning/show_unit_contact.inc.php b/module/learning/show_unit_contact.inc.php index 38bc1db..5965064 100644 --- a/module/learning/show_unit_contact.inc.php +++ b/module/learning/show_unit_contact.inc.php @@ -10,7 +10,7 @@ function get_contact_banner(){ $query = "SELECT * FROM main_contact LEFT JOIN main_contact_profile_content ON main_contact.id = main_contact_profile_content.main_contact_id WHERE main_contact_id = ".$GLOBALS['main_contact']['id']; $result = @mysqli_query($GLOBALS['mysql_con'], $query); $main_contact = @mysqli_fetch_array($result); - $contact_image = "platzhalter-mann-compressor.jpg"; + $contact_image = "platzhalter.png"; if(isset($main_contact['image']) && $main_contact['image'] != ""){ $contact_image = $main_contact['image']; }?> diff --git a/module/qm_updates/qm_updates.inc.php b/module/qm_updates/qm_updates.inc.php index 9a9d9f9..d7b767b 100644 --- a/module/qm_updates/qm_updates.inc.php +++ b/module/qm_updates/qm_updates.inc.php @@ -6,11 +6,11 @@ function get_all_knowledgebase_articles($period = "") { if ($period == "") { - $query = "SELECT * FROM `main_collection` where main_collection_setup_id = 3 and description != '' ORDER BY creation_date DESC LIMIT 30"; + $query = "SELECT * FROM `main_collection` WHERE main_collection_setup_id = 3 AND (is_archived = 0 OR is_archived IS NULL) AND description != '' ORDER BY creation_date DESC LIMIT 30"; } else { // Zeitraum in Tagen in Timestamp umwandeln $timestamp = time() - ($period * 24 * 60 * 60); - $query = "SELECT * FROM `main_collection` where main_collection_setup_id = 3 and creation_date >= $timestamp and description != '' ORDER BY creation_date DESC"; + $query = "SELECT * FROM `main_collection` WHERE main_collection_setup_id = 3 AND (is_archived = 0 OR is_archived IS NULL) AND creation_date >= $timestamp AND description != '' ORDER BY creation_date DESC"; } $result = mysqli_query($GLOBALS['mysql_con'], $query); diff --git a/module/ticketcenter/css/cardform.css b/module/ticketcenter/css/cardform.css new file mode 100644 index 0000000..3db9f69 --- /dev/null +++ b/module/ticketcenter/css/cardform.css @@ -0,0 +1,417 @@ +:root { + --main-nav-hight: 200px; + --ticket-nav-hight: 200px; + --cardform_header-height: 90px; +} + +@media (width < 1200px) { + :root { + --main-nav-hight: 260px; + } +} + +@media (width < 991px) { + :root { + --main-nav-hight: 0px; + } + + #hero_content { + display: none !important; + } + + .cardform_body_left { + display: none; + } +} + +body { + overflow: hidden; +} + +.ticket_edit { + .cardform_content .container { + padding: 0px; + } +} + +#area-2 { + padding: 0px; + + >.container { + padding-left: 0px !important; + padding-right: 0px !important; + } +} + +.tickets_cardform { + min-height: calc(100dvh - var(--main-nav-hight)); + max-height: calc(100dvh - var(--main-nav-hight)); + height: calc(100dvh - var(--main-nav-hight)); + background: var(--bg-white); + + .cardform_header { + padding: 20px 30px 20px 30px; + border-bottom: 1px solid var(--border); + display: flex; + justify-content: space-between; + + .cardform_header_left { + display: flex; + align-items: center; + gap: 10px; + + h2 { + margin-bottom: 0px; + } + } + + .cardform_header_right { + display: flex; + gap: 10px; + align-items: center; + + a { + display: block; + } + } + } + + .cardform_body { + display: flex; + max-height: calc(100% - var(--cardform_header-height)); + height: 100%; + + .cardform_body_left { + flex: 1 1 25%; + padding: 10px; + border-right: 1px solid var(--border); + + @media (width < 991px) { + display: none; + + } + + &.is-closed { + width: 40px; + flex: unset; + + .ticket_list { + display: none; + } + + h3 { + display: none; + } + + .body_left_line { + button { + i { + transform: rotate(180deg); + } + } + } + } + + .body_left_line { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + + button { + background: var(--blur); + color: var(--fc-dark); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + font-size: var(--fs-500); + padding: 4px; + } + } + + .ticket_list { + height: calc(100% - 33px); + overflow-y: scroll; + display: flex; + flex-direction: column; + -ms-overflow-style: none; + /* IE and old Edge */ + scrollbar-width: none; + + /* Firefox */ + .ticket_card { + position: relative; + + a { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + } + + font-size: 14px; + border: 1px solid var(--border); + border-radius: 5px; + padding: 10px; + margin-bottom: 10px; + transition-duration: 200ms; + + &:hover { + border-color: var(--primary); + background-color: #FAFAFA; + transition-duration: 200ms; + } + + &.active { + background-color: #FAFAFA; + } + + .card_header { + display: flex; + + .ticket_status { + font-size: 12px; + padding: 2px 5px; + border-radius: 3px; + background-color: #000; + color: #fff; + } + } + + .card_body { + display: flex; + gap: 5px; + margin-top: 3px; + + .ticket_no { + font-weight: var(--fw-bold); + } + + .ticket_desc { + font-weight: var(--fw-bold); + } + } + + .card_footer { + color: gray; + } + } + } + } + + .cardform_body_middle { + flex: 1 1 45%; + /* padding-left: 20px; */ + /* padding-right: 20px; */ + background-color: #F6F5F8; + + .communication { + height: 100%; + + .messages_scroll_container { + min-height: calc(100% - 200px); + max-height: calc(100% - 200px); + overflow-y: auto; + display: flex; + flex-direction: column-reverse; + padding-left: 20px; + padding-right: 20px; + } + + .communication_toolbar { + max-height: 200px; + padding-left: 20px; + padding-right: 20px; + background: #fff; + height: 200px; + border-top: 1px solid var(--border); + + &.communication_toolbar--closed { + display: flex; + align-items: center; + justify-content: center; + + p { + margin: 0; + color: gray; + font-size: var(--fs-500); + } + } + } + } + } + + .cardform_body_right { + flex: 1 1 30%; + border-left: 1px solid var(--border); + padding: 16px; + overflow-y: scroll; + + @media (width < 991px) { + position: fixed; + top: 60px; + right: 0px; + width: 90dvw; + height: calc(100dvh - 60px); + z-index: 100; + background-color: #fff; + padding-bottom: 100px; + } + + &.is-closed { + width: 50px; + flex: unset; + + @media (width < 991px) { + position: static; + } + + h3 { + display: none; + } + + .ticketinfo_body { + display: none; + } + + .ticketinfo_header_status { + display: none; + } + } + + .ticketinfo_header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + + .ticketinfo_header_title { + display: flex; + gap: 10px; + align-items: center; + + h3 { + margin-bottom: 0px; + } + + button { + background: var(--blur); + color: var(--fc-dark); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + font-size: var(--fs-500); + padding: 4px; + } + } + + .ticketinfo_header_status { + font-size: 12px; + padding: 4px 5px; + border-radius: 3px; + background-color: #000; + color: #fff; + } + } + + .ticketinfo_body { + h3 { + border-top: 1px solid var(--border); + padding-top: 12px; + margin-top: 12px; + } + + .ticketinfo_item { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 6px; + + .ticketinfo_item_links { + font-size: var(--fs-500); + color: gray; + width: 50%; + } + + .ticketinfo_item_right { + width: 50%; + font-weight: 700; + } + + } + } + } + + } + +} + +* { + scrollbar-color: unset; +} + + +@media (width < 768px) { + form#form_ticket_card { + padding-bottom: 85px; + } + + body { + overflow: auto; + } +} + +.close-ticket-modal { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + z-index: 1000; + + .close-ticket-modal-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: white; + padding: 20px; + border-radius: 8px; + min-width: 300px; + border: 1px solid var(--border); + } + + .close-ticket-warning { + color: #d32f2f; + font-weight: bold; + } + + .close-ticket-modal-buttons { + text-align: right; + gap: 10px; + display: flex; + justify-content: flex-end; + margin-top: 20px; + + .btn-cancel { + background: #ededed; + text-align: center; + padding: 10px; + border-radius: var(--br); + color: black; + } + + .btn-confirm { + background: var(--clr-mandant); + color: var(--fc-white-8); + padding: 10px 15px; + border-radius: var(--br); + cursor: pointer; + border: none; + } + } + +} \ No newline at end of file diff --git a/module/ticketcenter/css/create_cardform.css b/module/ticketcenter/css/create_cardform.css new file mode 100644 index 0000000..018dd0a --- /dev/null +++ b/module/ticketcenter/css/create_cardform.css @@ -0,0 +1,55 @@ +:root { + --main-nav-width: 250px; + --ticket-nav-width: 200px; +} + +.ticket_edit { + .create_cardform_content .container { + padding: 0px; + } +} +#area-2 { + padding: 0px; + > .container { + padding-left: 0px !important; + padding-right: 0px !important; + } +} + +.tickets_create_cardform { + min-height: calc(100dvh - var(--ticket-nav-width)); + background: var(--bg-white); + .create_cardform_header { + padding: 20px 30px 20px 30px; + border-bottom: 1px solid var(--border); + display: flex; + justify-content: space-between; + .create_cardform_header_left { + display: flex; + align-items: center; + gap: 10px; + h2 { + margin-bottom: 0px; + } + } + .create_cardform_header_right { + a { + display: block; + } + } + } + .create_cardform_body { + .create_cardform_content { + display: flex; + gap: 30px; + .create_cardform_content_left { + width: 50%; + padding: 30px; + } + .create_cardform_content_right { + width: 50%; + } + } + } + +} \ No newline at end of file diff --git a/module/ticketcenter/css/listform.css b/module/ticketcenter/css/listform.css new file mode 100644 index 0000000..4eb5857 --- /dev/null +++ b/module/ticketcenter/css/listform.css @@ -0,0 +1,140 @@ +:root { + --main-nav-width: 250px; + --ticket-nav-width: 300px; +} + +#area-2 { + padding: 0px; + > .container { + padding: 0px; + } +} +#footer-header { + display: none; +} + +.listform_body { + display: flex; + .listform_navigation { + width: var(--ticket-nav-width); + display: flex; + flex-direction: column; + background: var(--bg-white); + border: 1px solid var(--border); + padding: 12px; + gap: 4px; + min-height: calc(100dvh - 200px); + /* min-height: calc(100% - 200px); */ + position: sticky; + top: 0px; + .listform_navigation_header { + display: flex; + flex-direction: column; + gap: 4px; + button { + background: var(--blur); + color: var(--fc-dark); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + &.active { + background: var(--clr-mandant); + color: var(--fc-white-8); + } + } + a[role="button"] { + border-radius: var(--br); + background: var(--clr-mandant); + color: var(--fc-white-8); + font-size: var(--fs-500); + padding: 8px; + text-align: left; + margin-bottom: 10px; + + } + .listform_navigation_header_line { + display: flex; + justify-content: space-between; + align-items: center; + button { + padding: 4px; + } + } + } + &.is-closed { + overflow: hidden; + width: unset; + .to-hide-on-close { + display: none; + + } + i { + transform: rotate(180deg); + } + } + } + .listform_content { + flex: 1; + /* padding: 20px 20px 20px 20px; */ + padding-top: 20px; + background: var(--bg-white); + padding-bottom: 100px; + overflow-x: scroll; + #grid { + .gridjs-head { + padding-top: 0px; + } + } + } +} +#grid { + height: 100%; +} +.gridjs-container { + position: relative; + padding: 0px !important; + height: 100%; + .gridjs-head { + padding-left: 20px; + } + .gridjs-wrapper { + border: unset; + box-shadow: unset; + border-radius: 0px; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + .gridjs-thead { + tr.gridjs-tr { + th.gridjs-th { + padding: 6px 14px; + /* background-color: var(--bg-white); */ + /* border-bottom: 1px solid var(--border); */ + color: var(--fc-dark); + } + } + } + .gridjs-tbody { + cursor: pointer; + tr.gridjs-tr { + &:hover { + background-color: #f9fafb; + td { + background-color: #f9fafb; + } + } + td.gridjs-td { + padding: 6px 14px; + } + } + } + } + .gridjs-footer { + border: unset; + box-shadow: unset; + position: fixed; + bottom: 0px; + width: stretch; + background-color: var(--bg-white); + border-top: 1px solid var(--border); + } +} \ No newline at end of file diff --git a/module/ticketcenter/css/mermaid.min.css b/module/ticketcenter/css/mermaid.min.css new file mode 100644 index 0000000..24464c2 --- /dev/null +++ b/module/ticketcenter/css/mermaid.min.css @@ -0,0 +1 @@ +.gridjs-footer button,.gridjs-head button{background-color:transparent;background-image:none;border:none;cursor:pointer;margin:0;outline:none;padding:0}.gridjs-temp{position:relative}.gridjs-head{margin-bottom:5px;padding:5px 1px;width:100%}.gridjs-head:after{clear:both;content:"";display:block}.gridjs-head:empty{border:none;padding:0}.gridjs-container{color:#000;display:inline-block;overflow:hidden;padding:2px;position:relative;z-index:0}.gridjs-footer{background-color:#fff;border-bottom-width:1px;border-color:#e5e7eb;border-radius:0 0 8px 8px;border-top:1px solid #e5e7eb;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.26);display:block;padding:12px 24px;position:relative;width:100%;z-index:5}.gridjs-footer:empty{border:none;padding:0}input.gridjs-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #d2d6dc;border-radius:5px;font-size:14px;line-height:1.45;outline:none;padding:10px 13px}input.gridjs-input:focus{border-color:#9bc2f7;box-shadow:0 0 0 3px rgba(149,189,243,.5)}.gridjs-pagination{color:#3d4044}.gridjs-pagination:after{clear:both;content:"";display:block}.gridjs-pagination .gridjs-summary{float:left;margin-top:5px}.gridjs-pagination .gridjs-pages{float:right}.gridjs-pagination .gridjs-pages button{background-color:#fff;border:1px solid #d2d6dc;border-right:none;outline:none;padding:5px 14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gridjs-pagination .gridjs-pages button:focus{border-right:1px solid #d2d6dc;box-shadow:0 0 0 2px rgba(149,189,243,.5);margin-right:-1px;position:relative}.gridjs-pagination .gridjs-pages button:hover{background-color:#f7f7f7;color:#3c4257;outline:none}.gridjs-pagination .gridjs-pages button:disabled,.gridjs-pagination .gridjs-pages button:hover:disabled,.gridjs-pagination .gridjs-pages button[disabled]{background-color:#fff;color:#6b7280;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-spread{background-color:#fff;box-shadow:none;cursor:default}.gridjs-pagination .gridjs-pages button.gridjs-currentPage{background-color:#f7f7f7;font-weight:700}.gridjs-pagination .gridjs-pages button:last-child{border-bottom-right-radius:6px;border-right:1px solid #d2d6dc;border-top-right-radius:6px}.gridjs-pagination .gridjs-pages button:first-child{border-bottom-left-radius:6px;border-top-left-radius:6px}.gridjs-pagination .gridjs-pages button:last-child:focus{margin-right:0}button.gridjs-sort{background-color:transparent;background-position-x:center;background-repeat:no-repeat;background-size:contain;border:none;cursor:pointer;float:right;height:24px;margin:0;outline:none;padding:0;width:13px}button.gridjs-sort-neutral{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDEuOTk4IiBoZWlnaHQ9IjQwMS45OTgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMS45OTggNDAxLjk5OCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTczLjA5MiAxNjQuNDUyaDI1NS44MTNjNC45NDkgMCA5LjIzMy0xLjgwNyAxMi44NDgtNS40MjQgMy42MTMtMy42MTYgNS40MjctNy44OTggNS40MjctMTIuODQ3cy0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2IDUuNDI0QzIxMC4yMzIgMS44MTIgMjA1Ljk1MSAwIDIwMC45OTkgMHMtOS4yMzMgMS44MTItMTIuODUgNS40MjRMNjAuMjQyIDEzMy4zMzFjLTMuNjE3IDMuNjE3LTUuNDI0IDcuOTAxLTUuNDI0IDEyLjg1IDAgNC45NDggMS44MDcgOS4yMzEgNS40MjQgMTIuODQ3IDMuNjIxIDMuNjE3IDcuOTAyIDUuNDI0IDEyLjg1IDUuNDI0ek0zMjguOTA1IDIzNy41NDlINzMuMDkyYy00Ljk1MiAwLTkuMjMzIDEuODA4LTEyLjg1IDUuNDIxLTMuNjE3IDMuNjE3LTUuNDI0IDcuODk4LTUuNDI0IDEyLjg0N3MxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDhMMTg4LjE0OSAzOTYuNTdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4bDEyNy45MDctMTI3LjkwNmMzLjYxMy0zLjYxNCA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDggMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDctMy42MTQtMy42MTYtNy44OTktNS40Mi0xMi44NDgtNS40MnoiLz48L3N2Zz4=");background-position-y:center;opacity:.3}button.gridjs-sort-asc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgMTk3LjI4NyAxNTkuMDI4IDY5LjM4MWMtMy42MTMtMy42MTctNy44OTUtNS40MjQtMTIuODQ3LTUuNDI0cy05LjIzMyAxLjgwNy0xMi44NSA1LjQyNEw1LjQyNCAxOTcuMjg3QzEuODA3IDIwMC45MDQgMCAyMDUuMTg2IDAgMjEwLjEzNHMxLjgwNyA5LjIzMyA1LjQyNCAxMi44NDdjMy42MjEgMy42MTcgNy45MDIgNS40MjUgMTIuODUgNS40MjVoMjU1LjgxM2M0Ljk0OSAwIDkuMjMzLTEuODA4IDEyLjg0OC01LjQyNSAzLjYxMy0zLjYxMyA1LjQyNy03Ljg5OCA1LjQyNy0xMi44NDdzLTEuODE0LTkuMjMtNS40MjctMTIuODQ3eiIvPjwvc3ZnPg==");background-position-y:35%;background-size:10px}button.gridjs-sort-desc{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuMzYyIiBoZWlnaHQ9IjI5Mi4zNjIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI5Mi4zNjIgMjkyLjM2MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZD0iTTI4Ni45MzUgNjkuMzc3Yy0zLjYxNC0zLjYxNy03Ljg5OC01LjQyNC0xMi44NDgtNS40MjRIMTguMjc0Yy00Ljk1MiAwLTkuMjMzIDEuODA3LTEyLjg1IDUuNDI0QzEuODA3IDcyLjk5OCAwIDc3LjI3OSAwIDgyLjIyOGMwIDQuOTQ4IDEuODA3IDkuMjI5IDUuNDI0IDEyLjg0N2wxMjcuOTA3IDEyNy45MDdjMy42MjEgMy42MTcgNy45MDIgNS40MjggMTIuODUgNS40MjhzOS4yMzMtMS44MTEgMTIuODQ3LTUuNDI4TDI4Ni45MzUgOTUuMDc0YzMuNjEzLTMuNjE3IDUuNDI3LTcuODk4IDUuNDI3LTEyLjg0NyAwLTQuOTQ4LTEuODE0LTkuMjI5LTUuNDI3LTEyLjg1eiIvPjwvc3ZnPg==");background-position-y:65%;background-size:10px}button.gridjs-sort:focus{outline:none}table.gridjs-table{border-collapse:collapse;display:table;margin:0;max-width:100%;overflow:auto;padding:0;table-layout:fixed;text-align:left;width:100%}.gridjs-tbody,td.gridjs-td{background-color:#fff}td.gridjs-td{border:1px solid #e5e7eb;box-sizing:content-box;padding:12px 24px}td.gridjs-td:first-child{border-left:none}td.gridjs-td:last-child{border-right:none}td.gridjs-message{text-align:center}th.gridjs-th{background-color:#f9fafb;border:1px solid #e5e7eb;border-top:none;box-sizing:border-box;color:#6b7280;outline:none;padding:14px 24px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}th.gridjs-th .gridjs-th-content{float:left;overflow:hidden;text-overflow:ellipsis;width:100%}th.gridjs-th-sort{cursor:pointer}th.gridjs-th-sort .gridjs-th-content{width:calc(100% - 15px)}th.gridjs-th-sort:focus,th.gridjs-th-sort:hover{background-color:#e5e7eb}th.gridjs-th-fixed{box-shadow:0 1px 0 0 #e5e7eb;position:sticky}@supports (-moz-appearance:none){th.gridjs-th-fixed{box-shadow:0 0 0 1px #e5e7eb}}th.gridjs-th:first-child{border-left:none}th.gridjs-th:last-child{border-right:none}.gridjs-tr{border:none}.gridjs-tr-selected td{background-color:#ebf5ff}.gridjs-tr:last-child td{border-bottom:0}.gridjs *,.gridjs :after,.gridjs :before{box-sizing:border-box}.gridjs-wrapper{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;border-color:#e5e7eb;border-radius:8px 8px 0 0;border-top-width:1px;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.26);display:block;overflow:auto;position:relative;width:100%;z-index:1}.gridjs-wrapper:nth-last-of-type(2){border-bottom-width:1px;border-radius:8px}.gridjs-search{float:left}.gridjs-search-input{width:250px}.gridjs-loading-bar{background-color:#fff;opacity:.5;z-index:10}.gridjs-loading-bar,.gridjs-loading-bar:after{bottom:0;left:0;position:absolute;right:0;top:0}.gridjs-loading-bar:after{animation:shimmer 2s infinite;background-image:linear-gradient(90deg,hsla(0,0%,80%,0),hsla(0,0%,80%,.2) 20%,hsla(0,0%,80%,.5) 60%,hsla(0,0%,80%,0));content:"";transform:translateX(-100%)}@keyframes shimmer{to{transform:translateX(100%)}}.gridjs-td .gridjs-checkbox{cursor:pointer;display:block;margin:auto}.gridjs-resizable{bottom:0;position:absolute;right:0;top:0;width:5px}.gridjs-resizable:hover{background-color:#9bc2f7;cursor:ew-resize} diff --git a/module/ticketcenter/css/repair.css b/module/ticketcenter/css/repair.css index 45a50f6..e127c7b 100644 --- a/module/ticketcenter/css/repair.css +++ b/module/ticketcenter/css/repair.css @@ -1,4 +1,3 @@ - /* Ticketcenter */ .ticketcenter { @@ -372,7 +371,7 @@ i.fa-solid.fa-circle-exclamation { .history { padding: 1rem; - border-left: 1px solid var(--border); + /* border-left: 1px solid var(--border); */ } table#service_item_create td { @@ -476,12 +475,6 @@ table#service_item_create td input { border: 1px solid var(--border); } -.messages_scroll_container { - overflow-y: scroll; - height: 500px; - display: flex; - flex-direction: column-reverse; -} p.date { font-size: 12px; @@ -663,8 +656,7 @@ a.button_send_message_button { .message.outbound { width: 100%; margin-left: auto; - background: var(--blue-accent); - color: white; + background: var(--bg-white); } .info_labels label div { @@ -679,7 +671,7 @@ a.button_send_message_button { padding-bottom: 0 !important; } -.card_header { +/* .card_header { display: flex; align-items: center; justify-content: space-between; @@ -687,7 +679,7 @@ a.button_send_message_button { padding: 0.5rem; padding-inline: 1rem; min-height: 57px; -} +} */ .card_title h3 { margin: 0; @@ -722,7 +714,7 @@ div.dt-container.ui.grid>div.row:first-child { .breadcrumb a { color: white; } - + body.wiki .subcategory { .pct_textcontent:after { content: ''; @@ -736,9 +728,11 @@ body.wiki .subcategory { left: 50%; transform: translateX(-50%); } - .pct_read{ - margin-bottom: 10px; + + .pct_read { + margin-bottom: 10px; } + .pct_status { height: 10px; background: #5a9c9d; @@ -747,6 +741,7 @@ body.wiki .subcategory { position: relative; } } + body.wiki .category { .pct_textcontent:after { content: ''; @@ -760,9 +755,11 @@ body.wiki .category { left: 50%; transform: translateX(-50%); } - .pct_read{ - margin-bottom: 10px; + + .pct_read { + margin-bottom: 10px; } + .pct_status { height: 10px; background: #5a9c9d; @@ -774,8 +771,8 @@ body.wiki .category { .unreaded { - border: 1px solid red !important; - } + border: 1px solid red !important; +} @@ -933,9 +930,9 @@ body.ticket_edit { position: unset; } - div#hero_content { + /* div#hero_content { height: unset; - } + } */ .modal.category_edit { max-width: 600px; @@ -960,7 +957,7 @@ body.ticket_edit { z-index: 999; } - + #category_edit { display: block; @@ -1008,26 +1005,34 @@ body.ticket_edit { /* Ticketcenter Ende */ -body.ticketcenter, body.servicecenter { - background-image: url(/userdata/01_Basis/Intranet_bg.webp) !important; +body.ticketcenter, +body.servicecenter { + background-image: url(/userdata/01_Basis/Intranet_bg.webp) !important; } .ticketcenter .right_toolbar a[role="button"].active { - border-bottom: 2px solid var(--clr-mandant); - } - - .ticketcenter .right_toolbar a[role="button"]:hover { - border-bottom: 2px solid var(--clr-mandant); - } - - .ticketcenter .right_toolbar { - border-bottom: 1px solid var(--border); - } + border-bottom: 2px solid var(--clr-mandant); +} - .ticketcenter .right_toolbar a[role="button"] { - background: transparent; - border: 0; - color: var(--fc-primary); - padding: 5px 10px; - border-radius: 0; - } \ No newline at end of file +.ticketcenter .right_toolbar a[role="button"]:hover { + border-bottom: 2px solid var(--clr-mandant); +} + +.ticketcenter .right_toolbar { + border-bottom: 1px solid var(--border); +} + +.ticketcenter .right_toolbar a[role="button"] { + background: transparent; + border: 0; + color: var(--fc-primary); + padding: 5px 10px; + border-radius: 0; +} + +.footer-header_1 { + display: none; +} +.footer-header_2 { + display: none; +} diff --git a/module/ticketcenter/js/deprecated.js b/module/ticketcenter/js/deprecated.js new file mode 100644 index 0000000..e1c26ea --- /dev/null +++ b/module/ticketcenter/js/deprecated.js @@ -0,0 +1,222 @@ + $(document).ready(function () { + // Hole die aktuelle URL + var currentUrl = window.location.href; + + // Überprüfen, ob ?action= in der URL vorhanden ist + if (currentUrl.indexOf("?action=") !== -1) { + // Entferne den Teil ab ?action=, inkl. allem, was danach kommt + var newUrl = currentUrl.split("?action=")[0]; + + // Aktualisiere die URL ohne Neuladen der Seite + window.history.replaceState(null, null, newUrl); + } + }); + + document.addEventListener("DOMContentLoaded", function () { + // Initial load of category data + const categorySelect = document.getElementById('input_category'); + if (categorySelect) { + let selectedId = categorySelect.value; + removeAjaxContent(); + + // Initial AJAX call + fetchCategoryData(selectedId); + + // Add change event listener to category select + categorySelect.addEventListener('change', function() { + selectedId = this.value; + removeAjaxContent(); + fetchCategoryData(selectedId); + getCategoryDescription(); + }); + + // Initial description load + getCategoryDescription(); + } + }); + + // Helper function to remove ajax content + function removeAjaxContent() { + const ajaxContents = document.querySelectorAll('.ajax-content'); + ajaxContents.forEach(content => content.remove()); + } + + // Helper function to remove ajax subcontent + function removeAjaxSubContent() { + const ajaxSubContents = document.querySelectorAll('.ajax-subcontent'); + ajaxSubContents.forEach(content => content.remove()); + } + + // Fetch category data via AJAX + function fetchCategoryData(categoryId) { + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_ajax.php', + type: 'POST', + data: { category_id: categoryId }, + success: function (response) { + const categorySelect = document.getElementById('input_category'); + const parentDiv = categorySelect.parentNode; + + // Insert response after the parent div + const ajaxContent = document.createElement('div'); + ajaxContent.className = 'ajax-content'; + ajaxContent.innerHTML = response; + parentDiv.after(ajaxContent); + + // Add event listener to subcategory select if it exists + const subcategorySelect = document.getElementById('input_subcategory'); + if (subcategorySelect) { + subcategorySelect.addEventListener('change', function() { + getSubCategoryDescription(); + getSubSubCategory(); + }); + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getCategoryDescription() { + const categorySelect = document.getElementById('input_category'); + const selectedId = categorySelect.value; + + // Remove existing description if it exists + const existingDesc = document.querySelector(".category_desc"); + if (existingDesc) { + existingDesc.remove(); + } + + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_category_desc_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const instructionDiv = document.querySelector(".ticket-instruction"); + if (instructionDiv) { + const descDiv = document.createElement('div'); + descDiv.className = 'category_desc'; + descDiv.innerHTML = "
Kategoriebeschreibung
" + response; + instructionDiv.insertAdjacentElement("afterbegin", descDiv); + if (response.trim() === "") { + descDiv.style.display = 'none'; // Hide if no description + } else { + descDiv.style.display = 'block'; // Show if description exists + } + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getSubCategoryDescription() { + const subcategorySelect = document.getElementById('input_subcategory'); + if (!subcategorySelect) return; + + const selectedId = subcategorySelect.value; + + // Remove existing description if it exists + const existingDesc = document.querySelector(".subcategory_desc"); + if (existingDesc) { + existingDesc.remove(); + } + + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_category_desc_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const instructionDiv = document.querySelector(".ticket-instruction"); + if (instructionDiv) { + const descDiv = document.createElement('div'); + descDiv.className = 'subcategory_desc'; + descDiv.style.marginTop = '20px'; + descDiv.innerHTML = "
Unterkategoriebeschreibung
" + response; + instructionDiv.insertAdjacentElement("beforeend", descDiv); + if (response.trim() === "") { + descDiv.style.display = 'none'; // Hide if no description + } else { + descDiv.style.display = 'block'; // Show if description exists + } + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getSubSubCategoryDescription() { + const subsubcategorySelect = document.getElementById('input_subsubcategory'); + if (!subsubcategorySelect) return; + + const selectedId = subsubcategorySelect.value; + + // Remove existing description if it exists + const existingDesc = document.querySelector(".subsubcategory_desc"); + if (existingDesc) { + existingDesc.remove(); + } + + $.ajax({ + url: '/module/ticketcenter/views/ticketcenter/show_ticketcenter_category_desc_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const instructionDiv = document.querySelector(".ticket-instruction"); + if (instructionDiv) { + const descDiv = document.createElement('div'); + descDiv.className = 'subsubcategory_desc'; + descDiv.style.marginTop = '20px'; + descDiv.innerHTML = "
Beschreibung
" + response; + instructionDiv.insertAdjacentElement("beforeend", descDiv); + if (response.trim() === "") { + descDiv.style.display = 'none'; // Hide if no description + } else { + descDiv.style.display = 'block'; // Show if description exists + } + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + + function getSubSubCategory() { + const subcategorySelect = document.getElementById('input_subcategory'); + if (!subcategorySelect) return; + + const selectedId = subcategorySelect.value; + removeAjaxSubContent(); + + $.ajax({ + url: '/module/ticketcenter/show_ticketcenter_subcategory_ajax.php', + type: 'POST', + data: { category_id: selectedId }, + success: function (response) { + const parentDiv = subcategorySelect.parentNode; + + // Insert response after the parent div + const ajaxSubContent = document.createElement('div'); + ajaxSubContent.className = 'ajax-subcontent'; + ajaxSubContent.innerHTML = response; + parentDiv.after(ajaxSubContent); + + // Add event listener to subsubcategory select if it exists + const subsubcategorySelect = document.getElementById('input_subsubcategory'); + if (subsubcategorySelect) { + subsubcategorySelect.addEventListener('change', function() { + getSubSubCategoryDescription(); + }); + } + }, + error: function (xhr, status, error) { + console.log('Error:', error); + } + }); + } + diff --git a/module/ticketcenter/js/functions.js b/module/ticketcenter/js/functions.js new file mode 100644 index 0000000..9717ee4 --- /dev/null +++ b/module/ticketcenter/js/functions.js @@ -0,0 +1,3 @@ +function toggleSideboard(sideboard) { + document.querySelector(sideboard).classList.toggle('is-closed'); +} \ No newline at end of file diff --git a/module/ticketcenter/js/gridjs.umd.js b/module/ticketcenter/js/gridjs.umd.js new file mode 100644 index 0000000..31761d7 --- /dev/null +++ b/module/ticketcenter/js/gridjs.umd.js @@ -0,0 +1,2 @@ +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t||self).gridjs={})}(this,function(t){function n(t,n){for(var e=0;et.length)&&(n=t.length);for(var e=0,r=new Array(n);e=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l;!function(t){t[t.Init=0]="Init",t[t.Loading=1]="Loading",t[t.Loaded=2]="Loaded",t[t.Rendered=3]="Rendered",t[t.Error=4]="Error"}(l||(l={}));var c,f,p,d,h,_,m,v={},g=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(t,n){for(var e in n)t[e]=n[e];return t}function w(t){var n=t.parentNode;n&&n.removeChild(t)}function x(t,n,e){var r,o,i,u={};for(i in n)"key"==i?r=n[i]:"ref"==i?o=n[i]:u[i]=n[i];if(arguments.length>2&&(u.children=arguments.length>3?c.call(arguments,2):e),"function"==typeof t&&null!=t.defaultProps)for(i in t.defaultProps)void 0===u[i]&&(u[i]=t.defaultProps[i]);return k(t,u,r,o,null)}function k(t,n,e,r,o){var i={type:t,props:n,key:e,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++p:o};return null==o&&null!=f.vnode&&f.vnode(i),i}function P(t){return t.children}function S(t,n){this.props=t,this.context=n}function N(t,n){if(null==n)return t.__?N(t.__,t.__.__k.indexOf(t)+1):null;for(var e;n0?k(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=e,d.__b=e.__b+1,null===(p=y[c])||p&&d.key==p.key&&d.type===p.type)y[c]=void 0;else for(f=0;f0&&(this.callbacks[e].forEach(function(t){return t.apply(void 0,[].slice.call(n,1))}),!0)},t}();function Y(t,n){if(typeof t!=typeof n)return!1;if(null===t&&null===n)return!0;if("object"!=typeof t)return t===n;if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length)return!1;for(var e=0;e=e.__.length&&e.__.push({__V:ft}),e.__[t]}function gt(t){return lt=1,function(t,n,e){var r=vt(ot++,2);if(r.t=t,!r.__c&&(r.__=[Et(void 0,n),function(t){var n=r.__N?r.__N[0]:r.__[0],e=r.t(n,t);n!==e&&(r.__N=[e,r.__[1]],r.__c.setState({}))}],r.__c=it,!it.u)){it.u=!0;var o=it.shouldComponentUpdate;it.shouldComponentUpdate=function(t,n,e){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(t){return t.__c});if(i.every(function(t){return!t.__N}))return!o||o.call(this,t,n,e);var u=!1;return i.forEach(function(t){if(t.__N){var n=t.__[0];t.__=t.__N,t.__N=void 0,n!==t.__[0]&&(u=!0)}}),!(!u&&r.__c.props===t)&&(!o||o.call(this,t,n,e))}}return r.__N||r.__}(Et,t)}function yt(t,n){var e=vt(ot++,3);!f.__s&&Ct(e.__H,n)&&(e.__=t,e.i=n,it.__H.__h.push(e))}function bt(t){return lt=5,wt(function(){return{current:t}},[])}function wt(t,n){var e=vt(ot++,7);return Ct(e.__H,n)?(e.__V=t(),e.i=n,e.__h=t,e.__V):e.__}function xt(){for(var t;t=ct.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(St),t.__H.__h.forEach(Nt),t.__H.__h=[]}catch(n){t.__H.__h=[],f.__e(n,t.__v)}}f.__b=function(t){it=null,pt&&pt(t)},f.__r=function(t){dt&&dt(t),ot=0;var n=(it=t.__c).__H;n&&(ut===it?(n.__h=[],it.__h=[],n.__.forEach(function(t){t.__N&&(t.__=t.__N),t.__V=ft,t.__N=t.i=void 0})):(n.__h.forEach(St),n.__h.forEach(Nt),n.__h=[])),ut=it},f.diffed=function(t){ht&&ht(t);var n=t.__c;n&&n.__H&&(n.__H.__h.length&&(1!==ct.push(n)&&st===f.requestAnimationFrame||((st=f.requestAnimationFrame)||Pt)(xt)),n.__H.__.forEach(function(t){t.i&&(t.__H=t.i),t.__V!==ft&&(t.__=t.__V),t.i=void 0,t.__V=ft})),ut=it=null},f.__c=function(t,n){n.some(function(t){try{t.__h.forEach(St),t.__h=t.__h.filter(function(t){return!t.__||Nt(t)})}catch(e){n.some(function(t){t.__h&&(t.__h=[])}),n=[],f.__e(e,t.__v)}}),_t&&_t(t,n)},f.unmount=function(t){mt&&mt(t);var n,e=t.__c;e&&e.__H&&(e.__H.__.forEach(function(t){try{St(t)}catch(t){n=t}}),e.__H=void 0,n&&f.__e(n,e.__v))};var kt="function"==typeof requestAnimationFrame;function Pt(t){var n,e=function(){clearTimeout(r),kt&&cancelAnimationFrame(n),setTimeout(t)},r=setTimeout(e,100);kt&&(n=requestAnimationFrame(e))}function St(t){var n=it,e=t.__c;"function"==typeof e&&(t.__c=void 0,e()),it=n}function Nt(t){var n=it;t.__c=t.__(),it=n}function Ct(t,n){return!t||t.length!==n.length||n.some(function(n,e){return n!==t[e]})}function Et(t,n){return"function"==typeof n?n(t):n}function It(){return function(t){var n=it.context[t.__c],e=vt(ot++,9);return e.c=t,n?(null==e.__&&(e.__=!0,n.sub(it)),n.props.value):t.__}(fn)}var Tt={search:{placeholder:"Type a keyword..."},sort:{sortAsc:"Sort column ascending",sortDesc:"Sort column descending"},pagination:{previous:"Previous",next:"Next",navigate:function(t,n){return"Page "+t+" of "+n},page:function(t){return"Page "+t},showing:"Showing",of:"of",to:"to",results:"results"},loading:"Loading...",noRecordsFound:"No matching records found",error:"An error happened while fetching the data"},Lt=/*#__PURE__*/function(){function t(t){this._language=void 0,this._defaultLanguage=void 0,this._language=t,this._defaultLanguage=Tt}var n=t.prototype;return n.getString=function(t,n){if(!n||!t)return null;var e=t.split("."),r=e[0];if(n[r]){var o=n[r];return"string"==typeof o?function(){return o}:"function"==typeof o?o:this.getString(e.slice(1).join("."),o)}return null},n.translate=function(t){var n,e=this.getString(t,this._language);return(n=e||this.getString(t,this._defaultLanguage))?n.apply(void 0,[].slice.call(arguments,1)):t},t}();function At(){var t=It();return function(n){var e;return(e=t.translator).translate.apply(e,[n].concat([].slice.call(arguments,1)))}}var Ot=function(t){return function(n){return r({},n,{search:{keyword:t}})}};function jt(){return It().store}function Ht(t){var n=jt(),e=gt(t(n.getState())),r=e[0],o=e[1];return yt(function(){return n.subscribe(function(){var e=t(n.getState());r!==e&&o(e)})},[]),r}function Dt(){var t,n=gt(void 0),e=n[0],r=n[1],o=It(),i=o.search,u=At(),s=jt().dispatch,a=Ht(function(t){return t.search});yt(function(){e&&e.setProps({keyword:null==a?void 0:a.keyword})},[a,e]),yt(function(){r(i.server?new at({keyword:i.keyword,url:i.server.url,body:i.server.body}):new nt({keyword:i.keyword,columns:o.header&&o.header.columns,ignoreHiddenColumns:i.ignoreHiddenColumns||void 0===i.ignoreHiddenColumns,selector:i.selector})),i.keyword&&s(Ot(i.keyword))},[i]),yt(function(){if(e)return o.pipeline.register(e),function(){return o.pipeline.unregister(e)}},[o,e]);var l,c,f,p=function(t,n){return lt=8,wt(function(){return t},n)}((l=function(t){t.target instanceof HTMLInputElement&&s(Ot(t.target.value))},c=e instanceof at?i.debounceTimeout||250:0,function(){var t=arguments;return new Promise(function(n){f&&clearTimeout(f),f=setTimeout(function(){return n(l.apply(void 0,[].slice.call(t)))},c)})}),[i,e]);return x("div",{className:et(rt("search",null==(t=o.className)?void 0:t.search))},x("input",{type:"search",placeholder:u("search.placeholder"),"aria-label":u("search.placeholder"),onInput:p,className:rt(et("input"),et("search","input")),defaultValue:(null==a?void 0:a.keyword)||""}))}var Mt=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}o(n,t);var r=n.prototype;return r.validateProps=function(){if(isNaN(Number(this.props.limit))||isNaN(Number(this.props.page)))throw Error("Invalid parameters passed")},r._process=function(t){var n=this.props.page;return new J(t.rows.slice(n*this.props.limit,(n+1)*this.props.limit))},e(n,[{key:"type",get:function(){return K.Limit}}]),n}(tt),Rt=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){var n={};return this.props.url&&(n.url=this.props.url(t.url,this.props.page,this.props.limit)),this.props.body&&(n.body=this.props.body(t.body,this.props.page,this.props.limit)),r({},t,n)},e(n,[{key:"type",get:function(){return K.ServerLimit}}]),n}(tt);function Ft(){var t=It(),n=t.pagination,e=n.server,r=n.summary,o=void 0===r||r,i=n.nextButton,u=void 0===i||i,s=n.prevButton,a=void 0===s||s,l=n.buttonsCount,c=void 0===l?3:l,f=n.limit,p=void 0===f?10:f,d=n.page,h=void 0===d?0:d,_=n.resetPageOnUpdate,m=void 0===_||_,v=bt(null),g=gt(h),y=g[0],b=g[1],w=gt(0),k=w[0],S=w[1],N=At();yt(function(){return e?(v.current=new Rt({limit:p,page:y,url:e.url,body:e.body}),t.pipeline.register(v.current)):(v.current=new Mt({limit:p,page:y}),t.pipeline.register(v.current)),v.current instanceof Rt?t.pipeline.on("afterProcess",function(t){return S(t.length)}):v.current instanceof Mt&&v.current.on("beforeProcess",function(t){return S(t.length)}),t.pipeline.on("updated",C),t.pipeline.on("error",function(){S(0),b(0)}),function(){t.pipeline.unregister(v.current),t.pipeline.off("updated",C)}},[]);var C=function(t){m&&t!==v.current&&(b(0),0!==v.current.props.page&&v.current.setProps({page:0}))},E=function(){return Math.ceil(k/p)},I=function(t){if(t>=E()||t<0||t===y)return null;b(t),v.current.setProps({page:t})};return x("div",{className:rt(et("pagination"),t.className.pagination)},x(P,null,o&&k>0&&x("div",{role:"status","aria-live":"polite",className:rt(et("summary"),t.className.paginationSummary),title:N("pagination.navigate",y+1,E())},N("pagination.showing")," ",x("b",null,N(""+(y*p+1)))," ",N("pagination.to")," ",x("b",null,N(""+Math.min((y+1)*p,k)))," ",N("pagination.of")," ",x("b",null,N(""+k))," ",N("pagination.results"))),x("div",{className:et("pages")},a&&x("button",{tabIndex:0,role:"button",disabled:0===y,onClick:function(){return I(y-1)},title:N("pagination.previous"),"aria-label":N("pagination.previous"),className:rt(t.className.paginationButton,t.className.paginationButtonPrev)},N("pagination.previous")),function(){if(c<=0)return null;var n=Math.min(E(),c),e=Math.min(y,Math.floor(n/2));return y+Math.floor(n/2)>=E()&&(e=n-(E()-y)),x(P,null,E()>n&&y-e>0&&x(P,null,x("button",{tabIndex:0,role:"button",onClick:function(){return I(0)},title:N("pagination.firstPage"),"aria-label":N("pagination.firstPage"),className:t.className.paginationButton},N("1")),x("button",{tabIndex:-1,className:rt(et("spread"),t.className.paginationButton)},"...")),Array.from(Array(n).keys()).map(function(t){return y+(t-e)}).map(function(n){return x("button",{tabIndex:0,role:"button",onClick:function(){return I(n)},className:rt(y===n?rt(et("currentPage"),t.className.paginationButtonCurrent):null,t.className.paginationButton),title:N("pagination.page",n+1),"aria-label":N("pagination.page",n+1)},N(""+(n+1)))}),E()>n&&E()>y+e+1&&x(P,null,x("button",{tabIndex:-1,className:rt(et("spread"),t.className.paginationButton)},"..."),x("button",{tabIndex:0,role:"button",onClick:function(){return I(E()-1)},title:N("pagination.page",E()),"aria-label":N("pagination.page",E()),className:t.className.paginationButton},N(""+E()))))}(),u&&x("button",{tabIndex:0,role:"button",disabled:E()===y+1||0===E(),onClick:function(){return I(y+1)},title:N("pagination.next"),"aria-label":N("pagination.next"),className:rt(t.className.paginationButton,t.className.paginationButtonNext)},N("pagination.next"))))}function Ut(t,n){return"string"==typeof t?t.indexOf("%")>-1?n/100*parseInt(t,10):parseInt(t,10):t}function Wt(t){return t?Math.floor(t)+"px":""}function Bt(t){var n=t.tableRef.cloneNode(!0);return n.style.position="absolute",n.style.width="100%",n.style.zIndex="-2147483640",n.style.visibility="hidden",x("div",{ref:function(t){t&&t.appendChild(n)}})}function qt(t){if(!t)return"";var n=t.split(" ");return 1===n.length&&/([a-z][A-Z])+/g.test(t)?t:n.map(function(t,n){return 0==n?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}).join("")}var zt,Vt=new(/*#__PURE__*/function(){function t(){}var n=t.prototype;return n.format=function(t,n){return"[Grid.js] ["+n.toUpperCase()+"]: "+t},n.error=function(t,n){void 0===n&&(n=!1);var e=this.format(t,"error");if(n)throw Error(e);console.error(e)},n.warn=function(t){console.warn(this.format(t,"warn"))},n.info=function(t){console.info(this.format(t,"info"))},t}());t.PluginPosition=void 0,(zt=t.PluginPosition||(t.PluginPosition={}))[zt.Header=0]="Header",zt[zt.Footer=1]="Footer",zt[zt.Cell=2]="Cell";var $t=/*#__PURE__*/function(){function t(){this.plugins=void 0,this.plugins=[]}var n=t.prototype;return n.get=function(t){return this.plugins.find(function(n){return n.id===t})},n.add=function(t){return t.id?this.get(t.id)?(Vt.error("Duplicate plugin ID: "+t.id),this):(this.plugins.push(t),this):(Vt.error("Plugin ID cannot be empty"),this)},n.remove=function(t){var n=this.get(t);return n&&this.plugins.splice(this.plugins.indexOf(n),1),this},n.list=function(t){var n;return n=null!=t||null!=t?this.plugins.filter(function(n){return n.position===t}):this.plugins,n.sort(function(t,n){return t.order&&n.order?t.order-n.order:1})},t}();function Gt(t){var n=this,e=It();if(t.pluginId){var o=e.plugin.get(t.pluginId);return o?x(P,{},x(o.component,r({plugin:o},t.props))):null}return void 0!==t.position?x(P,{},e.plugin.list(t.position).map(function(t){return x(t.component,r({plugin:t},n.props.props))})):null}var Kt=/*#__PURE__*/function(n){function i(){var t;return(t=n.call(this)||this)._columns=void 0,t._columns=[],t}o(i,n);var u=i.prototype;return u.adjustWidth=function(t,n,e){var o=t.container,u=t.autoWidth;if(!o)return this;var s=o.clientWidth,l={};n.current&&u&&(q(x(Bt,{tableRef:n.current}),e.current),l=function(t){var n=t.querySelector("table");if(!n)return{};var e=n.className,o=n.style.cssText;n.className=e+" "+et("shadowTable"),n.style.tableLayout="auto",n.style.width="auto",n.style.padding="0",n.style.margin="0",n.style.border="none",n.style.outline="none";var i=Array.from(n.parentNode.querySelectorAll("thead th")).reduce(function(t,n){var e;return n.style.width=n.clientWidth+"px",r(((e={})[n.getAttribute("data-column-id")]={minWidth:n.clientWidth},e),t)},{});return n.className=e,n.style.cssText=o,n.style.tableLayout="auto",Array.from(n.parentNode.querySelectorAll("thead th")).reduce(function(t,n){return t[n.getAttribute("data-column-id")].width=n.clientWidth,t},i)}(e.current));for(var c,f=a(i.tabularFormat(this.columns).reduce(function(t,n){return t.concat(n)},[]));!(c=f()).done;){var p=c.value;p.columns&&p.columns.length>0||(!p.width&&u?p.id in l&&(p.width=Wt(l[p.id].width),p.minWidth=Wt(l[p.id].minWidth)):p.width=Wt(Ut(p.width,s)))}return n.current&&u&&q(null,e.current),this},u.setSort=function(t,n){for(var e,o=a(n||this.columns||[]);!(e=o()).done;){var i=e.value;i.columns&&i.columns.length>0?i.sort=void 0:void 0===i.sort&&t?i.sort={}:i.sort?"object"==typeof i.sort&&(i.sort=r({},i.sort)):i.sort=void 0,i.columns&&this.setSort(t,i.columns)}},u.setResizable=function(t,n){for(var e,r=a(n||this.columns||[]);!(e=r()).done;){var o=e.value;void 0===o.resizable&&(o.resizable=t),o.columns&&this.setResizable(t,o.columns)}},u.setID=function(t){for(var n,e=a(t||this.columns||[]);!(n=e()).done;){var r=n.value;r.id||"string"!=typeof r.name||(r.id=qt(r.name)),r.id||Vt.error('Could not find a valid ID for one of the columns. Make sure a valid "id" is set for all columns.'),r.columns&&this.setID(r.columns)}},u.populatePlugins=function(n,e){for(var o,i=a(e);!(o=i()).done;){var u=o.value;void 0!==u.plugin&&n.add(r({id:u.id},u.plugin,{position:t.PluginPosition.Cell}))}},i.fromColumns=function(t){for(var n,e=new i,r=a(t);!(n=r()).done;){var o=n.value;if("string"==typeof o||d(o))e.columns.push({name:o});else if("object"==typeof o){var u=o;u.columns&&(u.columns=i.fromColumns(u.columns).columns),"object"==typeof u.plugin&&void 0===u.data&&(u.data=null),e.columns.push(o)}}return e},i.createFromConfig=function(t){var n=new i;return t.from?n.columns=i.fromHTMLTable(t.from).columns:t.columns?n.columns=i.fromColumns(t.columns).columns:!t.data||"object"!=typeof t.data[0]||t.data[0]instanceof Array||(n.columns=Object.keys(t.data[0]).map(function(t){return{name:t}})),n.columns.length?(n.setID(),n.setSort(t.sort),n.setResizable(t.resizable),n.populatePlugins(t.plugin,n.columns),n):null},i.fromHTMLTable=function(t){for(var n,e=new i,r=a(t.querySelector("thead").querySelectorAll("th"));!(n=r()).done;){var o=n.value;e.columns.push({name:o.innerHTML,width:o.width})}return e},i.tabularFormat=function(t){var n=[],e=t||[],r=[];if(e&&e.length){n.push(e);for(var o,i=a(e);!(o=i()).done;){var u=o.value;u.columns&&u.columns.length&&(r=r.concat(u.columns))}r.length&&(n=n.concat(this.tabularFormat(r)))}return n},i.leafColumns=function(t){var n=[],e=t||[];if(e&&e.length)for(var r,o=a(e);!(r=o()).done;){var i=r.value;i.columns&&0!==i.columns.length||n.push(i),i.columns&&(n=n.concat(this.leafColumns(i.columns)))}return n},i.maximumDepth=function(t){return this.tabularFormat([t]).length-1},e(i,[{key:"columns",get:function(){return this._columns},set:function(t){this._columns=t}},{key:"visibleColumns",get:function(){return this._columns.filter(function(t){return!t.hidden})}}]),i}(V),Xt=function(){},Zt=/*#__PURE__*/function(t){function n(n){var e;return(e=t.call(this)||this).data=void 0,e.set(n),e}o(n,t);var e=n.prototype;return e.get=function(){try{return Promise.resolve(this.data()).then(function(t){return{data:t,total:t.length}})}catch(t){return Promise.reject(t)}},e.set=function(t){return t instanceof Array?this.data=function(){return t}:t instanceof Function&&(this.data=t),this},n}(Xt),Jt=/*#__PURE__*/function(t){function n(n){var e;return(e=t.call(this)||this).options=void 0,e.options=n,e}o(n,t);var e=n.prototype;return e.handler=function(t){return"function"==typeof this.options.handle?this.options.handle(t):t.ok?t.json():(Vt.error("Could not fetch data: "+t.status+" - "+t.statusText,!0),null)},e.get=function(t){var n=r({},this.options,t);return"function"==typeof n.data?n.data(n):fetch(n.url,n).then(this.handler.bind(this)).then(function(t){return{data:n.then(t),total:"function"==typeof n.total?n.total(t):void 0}})},n}(Xt),Qt=/*#__PURE__*/function(){function t(){}return t.createFromConfig=function(t){var n=null;return t.data&&(n=new Zt(t.data)),t.from&&(n=new Zt(this.tableElementToArray(t.from)),t.from.style.display="none"),t.server&&(n=new Jt(t.server)),n||Vt.error("Could not determine the storage type",!0),n},t.tableElementToArray=function(t){for(var n,e,r=[],o=a(t.querySelector("tbody").querySelectorAll("tr"));!(n=o()).done;){for(var i,u=[],s=a(n.value.querySelectorAll("td"));!(i=s()).done;){var l=i.value;1===l.childNodes.length&&l.childNodes[0].nodeType===Node.TEXT_NODE?u.push((e=l.innerHTML,(new DOMParser).parseFromString(e,"text/html").documentElement.textContent)):u.push(G(l.innerHTML))}r.push(u)}return r},t}(),Yt="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function tn(t,n,e){if(!t.s){if(e instanceof nn){if(!e.s)return void(e.o=tn.bind(null,t,n));1&n&&(n=e.s),e=e.v}if(e&&e.then)return void e.then(tn.bind(null,t,n),tn.bind(null,t,2));t.s=n,t.v=e;var r=t.o;r&&r(t)}}var nn=/*#__PURE__*/function(){function t(){}return t.prototype.then=function(n,e){var r=new t,o=this.s;if(o){var i=1&o?n:e;if(i){try{tn(r,1,i(this.v))}catch(t){tn(r,2,t)}return r}return this}return this.o=function(t){try{var o=t.v;1&t.s?tn(r,1,n?n(o):o):e?tn(r,1,e(o)):tn(r,2,o)}catch(t){tn(r,2,t)}},r},t}();function en(t){return t instanceof nn&&1&t.s}var rn=/*#__PURE__*/function(t){function n(n){var e;return(e=t.call(this)||this)._steps=new Map,e.cache=new Map,e.lastProcessorIndexUpdated=-1,n&&n.forEach(function(t){return e.register(t)}),e}o(n,t);var r=n.prototype;return r.clearCache=function(){this.cache=new Map,this.lastProcessorIndexUpdated=-1},r.register=function(t,n){if(void 0===n&&(n=null),!t)throw Error("Processor is not defined");if(null===t.type)throw Error("Processor type is not defined");if(this.findProcessorIndexByID(t.id)>-1)throw Error("Processor ID "+t.id+" is already defined");return t.on("propsUpdated",this.processorPropsUpdated.bind(this)),this.addProcessorByPriority(t,n),this.afterRegistered(t),t},r.tryRegister=function(t,n){void 0===n&&(n=null);try{return this.register(t,n)}catch(t){}},r.unregister=function(t){if(t&&-1!==this.findProcessorIndexByID(t.id)){var n=this._steps.get(t.type);n&&n.length&&(this._steps.set(t.type,n.filter(function(n){return n!=t})),this.emit("updated",t))}},r.addProcessorByPriority=function(t,n){var e=this._steps.get(t.type);if(!e){var r=[];this._steps.set(t.type,r),e=r}if(null===n||n<0)e.push(t);else if(e[n]){var o=e.slice(0,n-1),i=e.slice(n+1);this._steps.set(t.type,o.concat(t).concat(i))}else e[n]=t},r.getStepsByType=function(t){return this.steps.filter(function(n){return n.type===t})},r.getSortedProcessorTypes=function(){return Object.keys(K).filter(function(t){return!isNaN(Number(t))}).map(function(t){return Number(t)})},r.process=function(t){try{var n=function(t){return e.lastProcessorIndexUpdated=o.length,e.emit("afterProcess",i),i},e=this,r=e.lastProcessorIndexUpdated,o=e.steps,i=t,u=function(t,n){try{var u=function(t,n,e){if("function"==typeof t[Yt]){var r,o,i,u=t[Yt]();if(function t(e){try{for(;!(r=u.next()).done;)if((e=n(r.value))&&e.then){if(!en(e))return void e.then(t,i||(i=tn.bind(null,o=new nn,2)));e=e.v}o?tn(o,1,e):o=e}catch(t){tn(o||(o=new nn),2,t)}}(),u.return){var s=function(t){try{r.done||u.return()}catch(t){}return t};if(o&&o.then)return o.then(s,function(t){throw s(t)});s()}return o}if(!("length"in t))throw new TypeError("Object is not iterable");for(var a=[],l=0;l=r)return Promise.resolve(t.process(i)).then(function(n){e.cache.set(t.id,i=n)});i=e.cache.get(t.id)}();if(o&&o.then)return o.then(function(){})})}catch(t){return n(t)}return u&&u.then?u.then(void 0,n):u}(0,function(t){throw Vt.error(t),e.emit("error",i),t});return Promise.resolve(u&&u.then?u.then(n):n())}catch(t){return Promise.reject(t)}},r.findProcessorIndexByID=function(t){return this.steps.findIndex(function(n){return n.id==t})},r.setLastProcessorIndex=function(t){var n=this.findProcessorIndexByID(t.id);this.lastProcessorIndexUpdated>n&&(this.lastProcessorIndexUpdated=n)},r.processorPropsUpdated=function(t){this.setLastProcessorIndex(t),this.emit("propsUpdated"),this.emit("updated",t)},r.afterRegistered=function(t){this.setLastProcessorIndex(t),this.emit("afterRegister"),this.emit("updated",t)},e(n,[{key:"steps",get:function(){for(var t,n=[],e=a(this.getSortedProcessorTypes());!(t=e()).done;){var r=this._steps.get(t.value);r&&r.length&&(n=n.concat(r))}return n.filter(function(t){return t})}}]),n}(Q),on=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){try{return Promise.resolve(this.props.storage.get(t))}catch(t){return Promise.reject(t)}},e(n,[{key:"type",get:function(){return K.Extractor}}]),n}(tt),un=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){var n=J.fromArray(t.data);return n.length=t.total,n},e(n,[{key:"type",get:function(){return K.Transformer}}]),n}(tt),sn=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(){return Object.entries(this.props.serverStorageOptions).filter(function(t){return"function"!=typeof t[1]}).reduce(function(t,n){var e;return r({},t,((e={})[n[0]]=n[1],e))},{})},e(n,[{key:"type",get:function(){return K.Initiator}}]),n}(tt),an=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}o(n,t);var r=n.prototype;return r.castData=function(t){if(!t||!t.length)return[];if(!this.props.header||!this.props.header.columns)return t;var n=Kt.leafColumns(this.props.header.columns);return t[0]instanceof Array?t.map(function(t){var e=0;return n.map(function(n,r){return void 0!==n.data?(e++,"function"==typeof n.data?n.data(t):n.data):t[r-e]})}):"object"!=typeof t[0]||t[0]instanceof Array?[]:t.map(function(t){return n.map(function(n,e){return void 0!==n.data?"function"==typeof n.data?n.data(t):n.data:n.id?t[n.id]:(Vt.error("Could not find the correct cell for column at position "+e+".\n Make sure either 'id' or 'selector' is defined for all columns."),null)})})},r._process=function(t){return{data:this.castData(t.data),total:t.total}},e(n,[{key:"type",get:function(){return K.Transformer}}]),n}(tt),ln=/*#__PURE__*/function(){function t(){}return t.createFromConfig=function(t){var n=new rn;return t.storage instanceof Jt&&n.register(new sn({serverStorageOptions:t.server})),n.register(new on({storage:t.storage})),n.register(new an({header:t.header})),n.register(new un),n},t}(),cn=function(t){var n=this;this.state=void 0,this.listeners=[],this.isDispatching=!1,this.getState=function(){return n.state},this.getListeners=function(){return n.listeners},this.dispatch=function(t){if("function"!=typeof t)throw new Error("Reducer is not a function");if(n.isDispatching)throw new Error("Reducers may not dispatch actions");n.isDispatching=!0;var e=n.state;try{n.state=t(n.state)}finally{n.isDispatching=!1}for(var r,o=a(n.listeners);!(r=o()).done;)(0,r.value)(n.state,e);return n.state},this.subscribe=function(t){if("function"!=typeof t)throw new Error("Listener is not a function");return n.listeners=[].concat(n.listeners,[t]),function(){return n.listeners=n.listeners.filter(function(n){return n!==t})}},this.state=t},fn=function(t,n){var e={__c:n="__cC"+m++,__:null,Consumer:function(t,n){return t.children(n)},Provider:function(t){var e,r;return this.getChildContext||(e=[],(r={})[n]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(t){this.props.value!==t.value&&e.some(E)},this.sub=function(t){e.push(t);var n=t.componentWillUnmount;t.componentWillUnmount=function(){e.splice(e.indexOf(t),1),n&&n.call(t)}}),t.children}};return e.Provider.__=e.Consumer.contextType=e}(),pn=/*#__PURE__*/function(){function n(){Object.assign(this,n.defaultConfig())}var e=n.prototype;return e.assign=function(t){return Object.assign(this,t)},e.update=function(t){return t?(this.assign(n.fromPartialConfig(r({},this,t))),this):this},n.defaultConfig=function(){return{store:new cn({status:l.Init,header:void 0,data:null}),plugin:new $t,tableRef:{current:null},width:"100%",height:"auto",processingThrottleMs:100,autoWidth:!0,style:{},className:{}}},n.fromPartialConfig=function(e){var r=(new n).assign(e);return"boolean"==typeof e.sort&&e.sort&&r.assign({sort:{multiColumn:!0}}),r.assign({header:Kt.createFromConfig(r)}),r.assign({storage:Qt.createFromConfig(r)}),r.assign({pipeline:ln.createFromConfig(r)}),r.assign({translator:new Lt(r.language)}),r.plugin=new $t,r.search&&r.plugin.add({id:"search",position:t.PluginPosition.Header,component:Dt}),r.pagination&&r.plugin.add({id:"pagination",position:t.PluginPosition.Footer,component:Ft}),r.plugins&&r.plugins.forEach(function(t){return r.plugin.add(t)}),r},n}();function dn(t){var n,e=It();return x("td",r({role:t.role,colSpan:t.colSpan,"data-column-id":t.column&&t.column.id,className:rt(et("td"),t.className,e.className.td),style:r({},t.style,e.style.td),onClick:function(n){t.messageCell||e.eventEmitter.emit("cellClick",n,t.cell,t.column,t.row)}},(n=t.column)?"function"==typeof n.attributes?n.attributes(t.cell.data,t.row,t.column):n.attributes:{}),t.column&&"function"==typeof t.column.formatter?t.column.formatter(t.cell.data,t.row,t.column):t.column&&t.column.plugin?x(Gt,{pluginId:t.column.id,props:{column:t.column,cell:t.cell,row:t.row}}):t.cell.data)}function hn(t){var n=It(),e=Ht(function(t){return t.header});return x("tr",{className:rt(et("tr"),n.className.tr),onClick:function(e){t.messageRow||n.eventEmitter.emit("rowClick",e,t.row)}},t.children?t.children:t.row.cells.map(function(n,r){var o=function(t){if(e){var n=Kt.leafColumns(e.columns);if(n)return n[t]}return null}(r);return o&&o.hidden?null:x(dn,{key:n.id,cell:n,row:t.row,column:o})}))}function _n(t){return x(hn,{messageRow:!0},x(dn,{role:"alert",colSpan:t.colSpan,messageCell:!0,cell:new X(t.message),className:rt(et("message"),t.className?t.className:null)}))}function mn(){var t=It(),n=Ht(function(t){return t.data}),e=Ht(function(t){return t.status}),r=Ht(function(t){return t.header}),o=At(),i=function(){return r?r.visibleColumns.length:0};return x("tbody",{className:rt(et("tbody"),t.className.tbody)},n&&n.rows.map(function(t){return x(hn,{key:t.id,row:t})}),e===l.Loading&&(!n||0===n.length)&&x(_n,{message:o("loading"),colSpan:i(),className:rt(et("loading"),t.className.loading)}),e===l.Rendered&&n&&0===n.length&&x(_n,{message:o("noRecordsFound"),colSpan:i(),className:rt(et("notfound"),t.className.notfound)}),e===l.Error&&x(_n,{message:o("error"),colSpan:i(),className:rt(et("error"),t.className.error)}))}var vn=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}o(n,t);var r=n.prototype;return r.validateProps=function(){for(var t,n=a(this.props.columns);!(t=n()).done;){var e=t.value;void 0===e.direction&&(e.direction=1),1!==e.direction&&-1!==e.direction&&Vt.error("Invalid sort direction "+e.direction)}},r.compare=function(t,n){return t>n?1:t1&&(f=!0,c=!0):0===a?c=!0:a>0&&!e?(c=!0,f=!0):a>0&&e&&(c=!0),f&&(s=[]),c)s.push({index:t,direction:n,compare:o});else if(d){var h=s.indexOf(l);s[h].direction=n}else if(p){var _=s.indexOf(l);s.splice(_,1)}return r({},i,{sort:{columns:s}})}},yn=function(t,n,e){return function(o){var i=(o.sort?[].concat(o.sort.columns):[]).find(function(n){return n.index===t});return r({},o,i?gn(t,1===i.direction?-1:1,n,e)(o):gn(t,1,n,e)(o))}},bn=/*#__PURE__*/function(t){function n(){return t.apply(this,arguments)||this}return o(n,t),n.prototype._process=function(t){var n={};return this.props.url&&(n.url=this.props.url(t.url,this.props.columns)),this.props.body&&(n.body=this.props.body(t.body,this.props.columns)),r({},t,n)},e(n,[{key:"type",get:function(){return K.ServerSort}}]),n}(tt);function wn(t){var n=It(),e=jt().dispatch,o=At(),i=gt(0),u=i[0],s=i[1],a=n.sort,l=Ht(function(t){return t.sort}),c="object"==typeof(null==a?void 0:a.server)?K.ServerSort:K.Sort,f=function(){var t=n.pipeline.getStepsByType(c);if(t.length)return t[0]};return yt(function(){var t=f()||(c===K.ServerSort?new bn(r({columns:l?l.columns:[]},a.server)):new vn({columns:l?l.columns:[]}));return n.pipeline.tryRegister(t),function(){return n.pipeline.unregister(t)}},[n]),yt(function(){if(l){var n,e=l.columns.find(function(n){return n.index===t.index});e?(0===u&&(e.direction=null!=(n=t.direction)?n:1),s(e.direction)):s(0)}},[l]),yt(function(){var t=f();t&&l&&t.setProps({columns:l.columns})},[l]),x("button",{tabIndex:-1,"aria-label":o("sort.sort"+(1===u?"Desc":"Asc")),title:o("sort.sort"+(1===u?"Desc":"Asc")),className:rt(et("sort"),et("sort",function(t){return 1===t?"asc":-1===t?"desc":"neutral"}(u)),n.className.sort),onClick:function(n){n.preventDefault(),n.stopPropagation(),e(yn(t.index,!0===n.shiftKey&&a.multiColumn,t.compare))}})}var xn=function(t,n){var e;void 0===n&&(n=100);var r=Date.now(),o=function(){r=Date.now(),t.apply(void 0,[].slice.call(arguments))};return function(){var t=[].slice.call(arguments),i=Date.now(),u=i-r;u>=n?o.apply(void 0,t):(e&&clearTimeout(e),e=setTimeout(function(){o.apply(void 0,t),e=null},n-u))}};function kn(t){var n,e=function(t){return t instanceof MouseEvent?Math.floor(t.pageX):Math.floor(t.changedTouches[0].pageX)},r=function(r){r.stopPropagation();var u=parseInt(t.thRef.current.style.width,10)-e(r);n=xn(function(t){return o(t,u)},10),document.addEventListener("mouseup",i),document.addEventListener("touchend",i),document.addEventListener("mousemove",n),document.addEventListener("touchmove",n)},o=function(n,r){n.stopPropagation();var o=t.thRef.current;r+e(n)>=parseInt(o.style.minWidth,10)&&(o.style.width=r+e(n)+"px")},i=function t(e){e.stopPropagation(),document.removeEventListener("mouseup",t),document.removeEventListener("mousemove",n),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",t)};return x("div",{className:rt(et("th"),et("resizable")),onMouseDown:r,onTouchStart:r,onClick:function(t){return t.stopPropagation()}})}function Pn(t){var n=It(),e=bt(null),o=gt({}),i=o[0],u=o[1],s=jt().dispatch;yt(function(){if(n.fixedHeader&&e.current){var t=e.current.offsetTop;"number"==typeof t&&u({top:t})}},[e]);var a,l=function(){return null!=t.column.sort},c=function(e){e.stopPropagation(),l()&&s(yn(t.index,!0===e.shiftKey&&n.sort.multiColumn,t.column.sort.compare))};return x("th",r({ref:e,"data-column-id":t.column&&t.column.id,className:rt(et("th"),l()?et("th","sort"):null,n.fixedHeader?et("th","fixed"):null,n.className.th),onClick:c,style:r({},n.style.th,{minWidth:t.column.minWidth,width:t.column.width},i,t.style),onKeyDown:function(t){l()&&13===t.which&&c(t)},rowSpan:t.rowSpan>1?t.rowSpan:void 0,colSpan:t.colSpan>1?t.colSpan:void 0},(a=t.column)?"function"==typeof a.attributes?a.attributes(null,null,t.column):a.attributes:{},l()?{tabIndex:0}:{}),x("div",{className:et("th","content")},void 0!==t.column.name?t.column.name:void 0!==t.column.plugin?x(Gt,{pluginId:t.column.plugin.id,props:{column:t.column}}):null),l()&&x(wn,r({index:t.index},t.column.sort)),t.column.resizable&&t.index0?(Vt.error("The container element "+t+" is not empty. Make sure the container is empty and call render() again"),this):(this.config.container=t,q(this.createElement(),t),this)},n}(Q);t.Cell=X,t.Component=S,t.Config=pn,t.Grid=Ln,t.Row=Z,t.className=et,t.createElement=x,t.createRef=function(){return{current:null}},t.h=x,t.html=G,t.useConfig=It,t.useEffect=yt,t.useRef=bt,t.useSelector=Ht,t.useState=gt,t.useStore=jt,t.useTranslator=At}); +//# sourceMappingURL=gridjs.umd.js.map diff --git a/module/ticketcenter/services/ticketcenter.api.php b/module/ticketcenter/services/ticketcenter.api.php index 513bcc3..d5c87af 100644 --- a/module/ticketcenter/services/ticketcenter.api.php +++ b/module/ticketcenter/services/ticketcenter.api.php @@ -8,7 +8,7 @@ $currDir = __DIR__; $rootDir = dirname(dirname(dirname($currDir))); $mysydeDir = $rootDir . '/mysyde'; -require_once($rootDir . '/vendor/autoload.php'); +require_once($rootDir . '/vendor/autoload.php'); require_once($rootDir . "/mysyde/frontend/frontend_functions.inc.php"); $envDir = $rootDir . '/config'; @@ -17,28 +17,309 @@ if (is_dir($envDir) && file_exists($envFilePath) && is_file($envFilePath) && is_ $dotenv = new \Dotenv\Dotenv($envDir); $dotenv->load(); } -$common = $mysydeDir ."/common/common_functions.inc.php"; +$common = $mysydeDir . "/common/common_functions.inc.php"; require_once($common); -$connEnv = (local_environment()) ? $mysydeDir."/dc.config.php" : $mysydeDir."/dc-server.config.php"; +$connEnv = (local_environment()) ? $mysydeDir . "/dc.config.php" : $mysydeDir . "/dc-server.config.php"; require_once($connEnv); db_connect(); +function parse_ids_list(?string $csv): array +{ + if ($csv === null) + return []; + $csv = trim($csv); + if ($csv === '') + return []; -switch ($_POST['action']) { + $parts = explode(',', $csv); + $out = []; + foreach ($parts as $p) { + $p = trim($p); + if ($p === '') + continue; + if (ctype_digit($p)) + $out[] = (int) $p; + } + $out = array_values(array_unique($out)); + return $out; +} + +function build_user_pairs(array $contact_rows): array +{ + $pairs = []; + foreach ($contact_rows as $row) { + $m = $row['main_mandant_id'] ?? null; + $d = $row['main_department_id'] ?? null; + if ($m === null || $d === null) + continue; + if (!is_numeric($m) || !is_numeric($d)) + continue; + $pairs[((int) $m) . ':' . ((int) $d)] = true; + } + return $pairs; // associative set +} + +function user_can_see_ticket(int $contact_id, array $user_pairs, array $ticket): bool +{ + + $contact_ids = parse_ids_list($ticket['contact_ids'] ?? null); + $mandant_ids = parse_ids_list($ticket['mandant_ids'] ?? null); + $department_ids = parse_ids_list($ticket['department_ids'] ?? null); + + if (!empty($contact_ids) && in_array($contact_id, $contact_ids, true)) { + return true; + } + + $mandant_unrestricted = empty($mandant_ids); + $department_unrestricted = empty($department_ids); + + if ($mandant_unrestricted && $department_unrestricted) { + return true; + } + + if (!$mandant_unrestricted && $department_unrestricted) { + foreach ($user_pairs as $pairKey => $_) { + [$um, $ud] = array_map('intval', explode(':', $pairKey, 2)); + if (in_array($um, $mandant_ids, true)) + return true; + } + return false; + } + + if ($mandant_unrestricted && !$department_unrestricted) { + foreach ($user_pairs as $pairKey => $_) { + [$um, $ud] = array_map('intval', explode(':', $pairKey, 2)); + if (in_array($ud, $department_ids, true)) + return true; + } + return false; + } + + + foreach ($mandant_ids as $m) { + foreach ($department_ids as $d) { + if (isset($user_pairs[$m . ':' . $d])) { + return true; + } + } + } + + return false; +} + +function filter_tickets_for_user(int $contact_id, array $contact_rows, array $tickets): array +{ + $user_pairs = build_user_pairs($contact_rows); + + $out = []; + foreach ($tickets as $ticket) { + if (user_can_see_ticket($contact_id, $user_pairs, $ticket)) { + $out[] = $ticket; + } + } + return $out; +} + +$json = file_get_contents('php://input'); +$data = json_decode($json, true); + +switch ($data['action']) { case 'get_tickets': - get_tickets(); + get_tickets($data); + break; + case 'getSubCategories': + get_sub_categories($data); + break; + case 'getParendCategories': + get_parent_categories($data); + break; + case 'getCategorieInfo': + get_categorie_info($data); break; default: echo json_encode(['error' => 'Invalid action']); break; } -function get_tickets() { - $contact = $_SESSION['main_contact']; - $contact_json = json_encode($contact); +function get_categorie_info($data) +{ + $category_id = $data['category_id'] ?? ''; - return json_encode(['contact' => $contact_json]); -} \ No newline at end of file + $query = "SELECT id, description, text FROM main_tickets_category WHERE id = :category_id"; + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->bindParam(':category_id', $category_id); + $stmt->execute(); + $category_info = $stmt->fetch(PDO::FETCH_ASSOC); + + echo json_encode($category_info); +} +function get_parent_categories($data) +{ + $query = "SELECT id, description, text FROM main_tickets_category WHERE parent_id IS NULL ORDER BY sorting"; + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->execute(); + $parent_categories = $stmt->fetchAll(PDO::FETCH_ASSOC); + + echo json_encode($parent_categories); +} + +function get_sub_categories($data) +{ + $category_id = $data['category_id'] ?? ''; + + $query = "SELECT id, description, text FROM main_tickets_category WHERE parent_id = :category_id ORDER BY sorting"; + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->bindParam(':category_id', $category_id); + $stmt->execute(); + $sub_categories = $stmt->fetchAll(PDO::FETCH_ASSOC); + + echo json_encode($sub_categories); +} + +function get_tickets($data) +{ + + $cue = $data['cue'] ?? ''; + $contact_id = $data['contactID'] ?? ''; + + $query = "SELECT + + main_contact.id AS contact_id, + main_contact_department.main_mandant_id, + main_contact_department.main_department_id, + main_contact_department.main_role_id, + main_contact_department.main_bereich_id, + main_contact_department.main_einricht_id + + FROM main_contact + + LEFT JOIN main_contact_department AS main_contact_department ON main_contact_department.main_contact_id = main_contact.id + + WHERE main_contact.id = :contact_id + "; + + $stmt = $GLOBALS['pdo_conn']->prepare($query); + $stmt->bindParam(':contact_id', $contact_id); + $stmt->execute(); + $contact_rows = $stmt->fetchAll(PDO::FETCH_ASSOC); + + switch ($cue) { + case '1000': + $where = "WHERE main_tickets.sender_id = :contact_id + AND current_state != 4"; + break; + case '2000': + $where = "WHERE main_tickets.receiver_id = :contact_id + AND current_state != 4"; + break; + case '3000': + $where = "WHERE current_state != 4"; + break; + case '4000': + $where = "WHERE main_tickets.current_state = 4"; + break; + case '6000': + $where = ""; + break; + case '7000': + $where = "WHERE main_tickets.receiver_id = 0"; + break; + case '8000': + $where = "WHERE main_tickets.insurance_claim = 1"; + break; + default: + $where = ""; + break; + } + + + $query = "SELECT + + main_tickets.id, + main_tickets.id AS 'ticket_no', + main_tickets.description, + main_tickets.creation_date, + receiver.name AS 'receiver', + sender.name AS 'sender', + main_tickets_category.description AS 'category_description', + individual_state.description AS 'individual_state_description', + + GROUP_CONCAT(DISTINCT main_tickets_category_mandant.main_mandant_id) AS mandant_ids, + GROUP_CONCAT(DISTINCT main_tickets_category_department.main_department_id) AS department_ids, + GROUP_CONCAT(DISTINCT main_tickets_category_contact.main_contact_id) AS contact_ids + + FROM main_tickets + LEFT JOIN main_contact AS receiver ON receiver.id = main_tickets.receiver_id + LEFT JOIN main_contact AS sender ON sender.id = main_tickets.sender_id + LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id + LEFT JOIN main_tickets_status AS individual_state ON individual_state.id = main_tickets.individual_state + + LEFT JOIN main_tickets_category_mandant AS main_tickets_category_mandant ON main_tickets_category_mandant.main_tickets_category_id = main_tickets.main_ticket_category_id + LEFT JOIN main_tickets_category_department AS main_tickets_category_department ON main_tickets_category_department.main_tickets_category_id = main_tickets.main_ticket_category_id + LEFT JOIN main_tickets_category_contact AS main_tickets_category_contact ON main_tickets_category_contact.main_tickets_category_id = main_tickets.main_ticket_category_id + + $where + + GROUP BY main_tickets.id + "; + + $stmt = $GLOBALS['pdo_conn']->prepare($query); + switch ($cue) { + case '1000': + $stmt->bindParam(':contact_id', $contact_id, PDO::PARAM_INT); + break; + case '2000': + $stmt->bindParam(':contact_id', $contact_id, PDO::PARAM_INT); + break; + case '3000': + break; + case '4000': + break; + case '5000': + break; + case '6000': + break; + case '7000': + break; + default: + + break; + } + + $stmt->execute(); + $tickets = $stmt->fetchAll(PDO::FETCH_ASSOC); + + $contact_id_int = (int) $contact_id; + + switch ($cue) { + case '1000': + break; + case '2000': + break; + case '3000': + $tickets = filter_tickets_for_user($contact_id_int, $contact_rows, $tickets); + break; + case '4000': + $tickets = filter_tickets_for_user($contact_id_int, $contact_rows, $tickets); + break; + case '5000': + break; + case '6000': + break; + case '7000': + break; + default: + + break; + } + + $tickets = array_map(function ($ticket) { + $ticket['id'] = encryptId($ticket['id']); + return $ticket; + }, $tickets); + + echo json_encode($tickets); +} diff --git a/module/ticketcenter/views/settings/settings.inc.php b/module/ticketcenter/views/settings/settings.inc.php new file mode 100644 index 0000000..04d07c1 --- /dev/null +++ b/module/ticketcenter/views/settings/settings.inc.php @@ -0,0 +1,105 @@ + '') { + $query = "UPDATE main_tickets_status SET + description = '" . mysqli_real_escape_string($GLOBALS['mysql_con'], $_REQUEST["input_description"]) . "' + WHERE id = '" . $_REQUEST["input_status_id"] . "' LIMIT 1"; + $inserted = TRUE; + } else { + $sorting = @mysqli_fetch_array(@mysqli_query($GLOBALS['mysql_con'], "SELECT MAX(sorting)+1 AS 'newsorting' FROM main_tickets_status")); + $sorting = ($sorting["newsorting"] <> "") ? $sorting = $sorting["newsorting"] : $sorting = 1; + $query = "INSERT INTO main_tickets_status (description) VALUES ( + '" . mysqli_real_escape_string($GLOBALS['mysql_con'], $_REQUEST["input_description"]) . "' + )"; + $inserted = TRUE; + } + + @mysqli_query($GLOBALS['mysql_con'], $query); + + if ($inserted == TRUE) { + $input_id = mysqli_insert_id($GLOBALS['mysql_con']); + $messages[] = '
' . $translation->get("msg_success") . '
'; + } else { + $messages[] = '
' . $translation->get("msg_error") . '
'; + } + + if ($_REQUEST['save_and_close'] == 1) { + require_once("status_listform.inc.php"); + } else { + edit_status($input_id); + } +} + +function selectContact($group_id) +{ + $translation = \DynCom\mysyde\common\classes\Registry::get("translation"); + + $query = "SELECT * FROM main_contact"; + $result_contact = @mysqli_query($GLOBALS['mysql_con'], $query); + + if (@mysqli_num_rows($result_contact) == 0) { + return; + } + + $preselect = array(); + + $query = "SELECT main_contact.* FROM main_contact INNER JOIN main_tickets_category_contact ON main_contact.id = main_tickets_category_contact.main_contact_id WHERE main_tickets_category_contact.main_tickets_category_id = '" . $group_id . "'"; + $result = @mysqli_query($GLOBALS['mysql_con'], $query); + + while ($row = @mysqli_fetch_array($result)) { + array_push($preselect, $row['name']); + } + $allselect = array(); + ?> +
Zusätzlicher Benutzer auswählen
+ +
+ + + + + + + +

+ +
+ +
+
+ + diff --git a/module/ticketcenter/views/status/status_listform.inc.php b/module/ticketcenter/views/status/status_listform.inc.php index 904d839..23051bf 100644 --- a/module/ticketcenter/views/status/status_listform.inc.php +++ b/module/ticketcenter/views/status/status_listform.inc.php @@ -17,7 +17,7 @@ $inputname = "input_status_id";
get("description") . "' FROM main_tickets_status WHERE id NOT IN (0, 1, 2, 3)"; + $query = "SELECT id, description AS '" . $translation->get("description") . "' FROM main_tickets_status WHERE id NOT IN (0, 1, 2, 3, 4)"; $format = array("option", "text"); if ($result = mysqli_query($GLOBALS['mysql_con'], $query)) { linklist($result, "form_status_list", $format); diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php index 56845f6..87fdaa6 100644 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php +++ b/module/ticketcenter/views/ticketcenter/show_ticketcenter.inc.php @@ -1,14 +1,15 @@ + - +
+
+ \ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_create_cardform.inc.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_create_cardform.inc.php new file mode 100644 index 0000000..2bb51dd --- /dev/null +++ b/module/ticketcenter/views/ticketcenter/show_ticketcenter_create_cardform.inc.php @@ -0,0 +1,153 @@ + + + + +
+
+
+ +

Neue Ticket erstellen

+
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc copy.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc copy.php deleted file mode 100644 index 7c09476..0000000 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc copy.php +++ /dev/null @@ -1,941 +0,0 @@ - -"; - // echo "User Department IDs: " . implode(', ', $department_ids) . "
"; - - // Store the result in contact_info for compatibility with existing code - $contact_info = [ - 'mandant_ids' => implode(', ', $mandant_ids), - 'department_ids' => implode(', ', $department_ids) - ]; - - $join = ""; - $additional_joins = ""; - $additional_where = ""; - if (isset($cue)) { - switch ($cue) { - case '1000': // Meine offenen und in bearbeitung Tickets - $where = " WHERE sender_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - case '1500': // Meine offenen und in bearbeitung Tickets - $where = " WHERE receiver_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - - case '2000': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4 and receiver_id = 0"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '2500': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '3000': // Alle geschlossenen Tickets - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE main_tickets.current_state = 4 AND ((main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_contact_department.main_mandant_id IS NULL) OR main_tickets.sender_id = " . $GLOBALS['main_contact']['id'] . " )"; - break; - case '4000': // Alle Tickets ungefiltert - // Fix for case 4000 - set a valid WHERE clause that's always true - $where = " WHERE 1=1"; - break; - case '5000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $where = " WHERE due_date <> '0000-00-00' AND due_date < CURDATE() AND current_state IN (2, 3)"; - break; - case '6000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE receiver_id = 0 "; - // $where = " WHERE receiver_id = 0 AND main_contact_department.main_mandant_id =".$GLOBALS['main_contact']['master_mandant_id']; - break; - - default: - break; - } - } else { - $where = " WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; - } - - $query = "SELECT DISTINCT - main_tickets.*, - main_tickets_category.description AS 'category_description', - COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) AS 'escalation_state', - individual_state.description AS 'individual_state_description', - main_tickets_subcategory.description AS 'subcategory_description', - main_tickets_subsubcategory.description AS 'subsubcategory_description', - receiver.name AS 'receiver', - sender.name AS 'sender', - - main_tickets_state.description AS 'state', - DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) AS 'escalation' - FROM - main_tickets - " . $join . " - LEFT JOIN main_contact AS receiver ON receiver.id = main_tickets.receiver_id - LEFT JOIN main_contact AS sender ON sender.id = main_tickets.sender_id - LEFT JOIN main_tickets_status AS individual_state ON individual_state.id = main_tickets.individual_state - LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id - LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id - LEFT JOIN main_tickets_category AS main_tickets_subsubcategory ON main_tickets.main_ticket_subsubcategory_id = main_tickets_subsubcategory.id - LEFT JOIN main_tickets_state ON main_tickets.current_state = main_tickets_state.id - " . $additional_joins . " - WHERE - (" . substr($where, 7) . ") - " . $additional_where . " - ORDER BY - ticket_no DESC;"; - // var_dump($query); - - $result = @mysqli_query($GLOBALS['mysql_con'], $query); - - while ($row = @mysqli_fetch_array($result)) { - // var_dump($row); - if ($cue == 2000) { - if (checkUserPermission($row, $contact_info) == false) { - continue; // Skip this row if the user doesn't have permission - } - } - // var_dump("-----"); - // print_r($row); - $unread = ""; - $query2 = "SELECT * FROM main_tickets_notification - WHERE main_ticket_id = " . $row['id'] . " AND main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND viewed = 0"; - // var_dump($query2); - $result2 = @mysqli_query($GLOBALS['mysql_con'], $query2); - $viewed = @mysqli_num_rows($result2); - if ($viewed != 0) { - $unread = ''; - } - $creation_date = new DateTime($row['creation_date']); - $last_action = new DateTime($row['last_action_date']); - $escalation = new DateTime($row['escalation']); - $now = new DateTime(); // Aktuelles Datum und Uhrzeit - $escalated = ""; - if ($escalation < $now && (isset($row['escalation_state']) && $row['escalation_state'] != "0")) { - $escalated = "escalated"; - } - ?> - - - - -
- - - - -
- - "?> - " : '' ?> - - - - - - - format('d.m.y H:i') ?> - format('d.m.y H:i') ?> - - $now) { - echo $due_date->format('d.m.y'); - } else { - echo '' . $due_date->format('d.m.y') . ''; - } - } else { - echo '--.--.--'; - } - ?> - - diff($creation); - - if ($interval->y > 0) { - echo $interval->y . ' Jahre, ' . $interval->m . ' Monate'; - } elseif ($interval->m > 0) { - echo $interval->m . ' Monate, ' . $interval->d . ' Tage'; - } elseif ($interval->d > 0) { - echo $interval->d . ' Tage, ' . $interval->h . ' Std'; - } elseif ($interval->h > 0) { - echo $interval->h . ' Std, ' . $interval->i . ' Min'; - } else { - echo $interval->i . ' Minuten'; - } - ?> - - - - - - format('d.m.y H:i'); - } - ?> - - - - - -
- ' . htmlspecialchars($supplier['description']) . ' '; - } - ?> -
- - - - - 0; - // $mandantMatch = !$hasMandants || count(array_intersect($userMandants, $mandants)) > 0; - // // Check if the user has access to the department and mandant - // if ($departmentMatch && $mandantMatch) { - // return true; - // } - - // 3. Check if the user has access to the department and mandant - // $array_dep_mand = []; - // foreach ($departments as $department) { - // foreach ($mandants as $mandant) { - // $dep_mand_bind = [ - // 'department' => $department, - // 'mandant' => $mandant - // ]; - // $array_dep_mand[] = $dep_mand_bind; - // } - // } - - - if (empty($departments) and empty($mandants)){ - return false; - } else if (empty($mandants)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else if (empty($departments)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND main_mandant_id IN (" . implode(',', $mandants) . ") AND main_department_id IN (" . implode(',', $departments) . ")"; - } - - // var_dump($query); - - // var_dump($query); - $result = mysqli_query($GLOBALS['mysql_con'], $query); - - - - if (mysqli_num_rows($result) > 0) { - return true; - } - - return false; - // If we checked one level and didn't find a match - don't exit, continue to the next one - } - } - - return false; -} - - - - -// 1000: Meine offenen und in Bearbeitung Tickets -$query_count_1000 = "SELECT COUNT(*) FROM main_tickets WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; -$result_1000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_1000))[0]; - -// 2000: Offene Tickets der Abteilung -$query_count_2000 = "SELECT COUNT(DISTINCT main_tickets.id) -FROM main_tickets -LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -WHERE current_state != 4 -AND ( - main_contact_department.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " - OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " -)"; -$result_2000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_2000))[0]; - -// 3000: Alle geschlossenen Tickets -$query_count_3000 = "SELECT COUNT(*) FROM main_tickets WHERE current_state = 4"; -$result_3000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_3000))[0]; - -// 4000: Alle Tickets ungefiltert -$query_count_4000 = "SELECT COUNT(*) FROM main_tickets"; -$result_4000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_4000))[0]; - -// 5000: Alle eskalierenden Tickets (zu lange offen/in Bearbeitung) -$query_count_5000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) < NOW() -AND main_tickets.current_state IN (2, 3)"; -$result_5000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_5000))[0]; - -// 6000: Alle nicht zugewiesenen Tickets -$query_count_6000 = "SELECT COUNT(*) FROM main_tickets WHERE receiver_id = 0"; -$result_6000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_6000))[0]; - -// 7000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_7000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state != 4"; -$result_7000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_7000))[0]; - -// 8000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_8000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state = 4"; -$result_8000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_8000))[0]; -?> - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
- -
-

-

-
- -
-

Ticketcenter

-
- - - -
- - - - - - -
-
-
-
-
Datumsfilter
-
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - \ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php index 8f55964..17ebae0 100644 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php +++ b/module/ticketcenter/views/ticketcenter/show_ticketcenter_listform.inc.php @@ -1,941 +1,200 @@ - "; - // echo "User Department IDs: " . implode(', ', $department_ids) . "
"; - - // Store the result in contact_info for compatibility with existing code - $contact_info = [ - 'mandant_ids' => implode(', ', $mandant_ids), - 'department_ids' => implode(', ', $department_ids) - ]; - - $join = ""; - $additional_joins = ""; - $additional_where = ""; - if (isset($cue)) { - switch ($cue) { - case '1000': // Meine offenen und in bearbeitung Tickets - $where = " WHERE sender_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - case '1500': // Meine offenen und in bearbeitung Tickets - $where = " WHERE receiver_id = " . $GLOBALS['main_contact']['id'] . " AND current_state != 4"; - break; - - case '2000': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4 and receiver_id = 0"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '2500': // Offene Tickets der Abteilung - // $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - // $where = " WHERE current_state != 4 AND (main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . ")"; - $where = " WHERE 1=1 and current_state != 4"; - // Only add these joins for case 2000 - // $additional_joins = " - // -- Category contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact cat_contact - // ON main_tickets.main_ticket_category_id = cat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department cat_dept - // ON main_tickets.main_ticket_category_id = cat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant cat_mandant - // ON main_tickets.main_ticket_category_id = cat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id = 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subcat_contact - // ON main_tickets.main_ticket_subcategory_id = subcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_department subcat_dept - // ON main_tickets.main_ticket_subcategory_id = subcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - // LEFT JOIN main_tickets_category_mandant subcat_mandant - // ON main_tickets.main_ticket_subcategory_id = subcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subcategory_id != 0 - // AND main_tickets.main_ticket_subsubcategory_id = 0 - - // -- Subsubcategory contact, department, mandant joins - // LEFT JOIN main_tickets_category_contact subsubcat_contact - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_contact.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_department subsubcat_dept - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_dept.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // LEFT JOIN main_tickets_category_mandant subsubcat_mandant - // ON main_tickets.main_ticket_subsubcategory_id = subsubcat_mandant.main_tickets_category_id - // AND main_tickets.main_ticket_subsubcategory_id != 0 - // "; - - // Only add these conditions for case 2000 - // $additional_where = " - // OR current_state != 4 AND ( - // -- For tickets with a category but no subcategory and no subsubcategory - // main_tickets.main_ticket_subcategory_id = 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // cat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // cat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // cat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subcategory but no subsubcategory - // main_tickets.main_ticket_subcategory_id != 0 AND - // main_tickets.main_ticket_subsubcategory_id = 0 AND ( - // subcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) OR current_state != 4 AND ( - // -- For tickets with a subsubcategory (ignore category and subcategory) - // main_tickets.main_ticket_subsubcategory_id != 0 AND ( - // subsubcat_contact.main_contact_id = " . $GLOBALS['main_contact']['id'] . " OR - // subsubcat_dept.main_department_id IN (" . ($contact_info['department_ids'] ?: "0") . ") OR - // subsubcat_mandant.main_mandant_id IN (" . ($contact_info['mandant_ids'] ?: "0") . ") - // ) - // ) - // "; - break; - - case '3000': // Alle geschlossenen Tickets - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE main_tickets.current_state = 4 AND ((main_contact_department.main_mandant_id =" . $GLOBALS['main_contact']['master_mandant_id'] . " OR main_contact_department.main_mandant_id IS NULL) OR main_tickets.sender_id = " . $GLOBALS['main_contact']['id'] . " )"; - break; - case '4000': // Alle Tickets ungefiltert - // Fix for case 4000 - set a valid WHERE clause that's always true - $where = " WHERE 1=1"; - break; - case '5000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $where = " WHERE due_date <> '0000-00-00' AND due_date < CURDATE() AND current_state IN (2, 3)"; - break; - case '6000': // Alle Tickets die Eskalieren (die zu lange offen/in Bearbeitung sind) - $join = " LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id"; - $where = " WHERE receiver_id = 0 "; - // $where = " WHERE receiver_id = 0 AND main_contact_department.main_mandant_id =".$GLOBALS['main_contact']['master_mandant_id']; - break; - - default: - break; - } - } else { - $where = " WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; - } - - $query = "SELECT DISTINCT - main_tickets.*, - main_tickets_category.description AS 'category_description', - COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) AS 'escalation_state', - individual_state.description AS 'individual_state_description', - main_tickets_subcategory.description AS 'subcategory_description', - main_tickets_subsubcategory.description AS 'subsubcategory_description', - receiver.name AS 'receiver', - sender.name AS 'sender', - - main_tickets_state.description AS 'state', - DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subsubcategory.escalation_state, main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) AS 'escalation' - FROM - main_tickets - " . $join . " - LEFT JOIN main_contact AS receiver ON receiver.id = main_tickets.receiver_id - LEFT JOIN main_contact AS sender ON sender.id = main_tickets.sender_id - LEFT JOIN main_tickets_status AS individual_state ON individual_state.id = main_tickets.individual_state - LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id - LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id - LEFT JOIN main_tickets_category AS main_tickets_subsubcategory ON main_tickets.main_ticket_subsubcategory_id = main_tickets_subsubcategory.id - LEFT JOIN main_tickets_state ON main_tickets.current_state = main_tickets_state.id - " . $additional_joins . " - WHERE - (" . substr($where, 7) . ") - " . $additional_where . " - ORDER BY - ticket_no DESC;"; - // var_dump($query); - - $result = @mysqli_query($GLOBALS['mysql_con'], $query); - - while ($row = @mysqli_fetch_array($result)) { - // var_dump($row); - if ($cue == 2000) { - if (checkUserPermission($row, $contact_info) == false) { - continue; // Skip this row if the user doesn't have permission - } - } - // var_dump("-----"); - // print_r($row); - $unread = ""; - $query2 = "SELECT * FROM main_tickets_notification - WHERE main_ticket_id = " . $row['id'] . " AND main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND viewed = 0"; - // var_dump($query2); - $result2 = @mysqli_query($GLOBALS['mysql_con'], $query2); - $viewed = @mysqli_num_rows($result2); - if ($viewed != 0) { - $unread = ''; - } - $creation_date = new DateTime($row['creation_date']); - $last_action = new DateTime($row['last_action_date']); - $escalation = new DateTime($row['escalation']); - $now = new DateTime(); // Aktuelles Datum und Uhrzeit - $escalated = ""; - if ($escalation < $now && (isset($row['escalation_state']) && $row['escalation_state'] != "0")) { - $escalated = "escalated"; - } - ?> - - - - -
- - - - -
- - "?> - " : '' ?> - - - - - - - format('d.m.y H:i') ?> - format('d.m.y H:i') ?> - - $now) { - echo $due_date->format('d.m.y'); - } else { - echo '' . $due_date->format('d.m.y') . ''; - } - } else { - echo '--.--.--'; - } - ?> - - diff($creation); - - if ($interval->y > 0) { - echo $interval->y . ' Jahre, ' . $interval->m . ' Monate'; - } elseif ($interval->m > 0) { - echo $interval->m . ' Monate, ' . $interval->d . ' Tage'; - } elseif ($interval->d > 0) { - echo $interval->d . ' Tage, ' . $interval->h . ' Std'; - } elseif ($interval->h > 0) { - echo $interval->h . ' Std, ' . $interval->i . ' Min'; - } else { - echo $interval->i . ' Minuten'; - } - ?> - - - - - - format('d.m.y H:i'); - } - ?> - - - - - -
- ' . htmlspecialchars($supplier['description']) . ' '; - } - ?> -
- - - - - 0; - // $mandantMatch = !$hasMandants || count(array_intersect($userMandants, $mandants)) > 0; - // // Check if the user has access to the department and mandant - // if ($departmentMatch && $mandantMatch) { - // return true; - // } - - // 3. Check if the user has access to the department and mandant - // $array_dep_mand = []; - // foreach ($departments as $department) { - // foreach ($mandants as $mandant) { - // $dep_mand_bind = [ - // 'department' => $department, - // 'mandant' => $mandant - // ]; - // $array_dep_mand[] = $dep_mand_bind; - // } - // } - - - if (empty($departments) and empty($mandants)){ - return false; - } else if (empty($mandants)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else if (empty($departments)) { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " - AND main_department_id IN (" . implode(',', $departments) . ")"; - } else { - $query = "SELECT * FROM main_contact_department WHERE main_contact_id = " . $GLOBALS['main_contact']['id'] . " AND main_mandant_id IN (" . implode(',', $mandants) . ") AND main_department_id IN (" . implode(',', $departments) . ")"; - } - - // var_dump($query); - - // var_dump($query); - $result = mysqli_query($GLOBALS['mysql_con'], $query); - - - - if (mysqli_num_rows($result) > 0) { - return true; - } - - return false; - // If we checked one level and didn't find a match - don't exit, continue to the next one - } - } - - return false; -} - - - - -// 1000: Meine offenen und in Bearbeitung Tickets -$query_count_1000 = "SELECT COUNT(*) FROM main_tickets WHERE (receiver_id = " . $GLOBALS['main_contact']['id'] . " OR sender_id = " . $GLOBALS['main_contact']['id'] . " ) AND current_state != 4"; -$result_1000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_1000))[0]; - -// 2000: Offene Tickets der Abteilung -$query_count_2000 = "SELECT COUNT(DISTINCT main_tickets.id) -FROM main_tickets -LEFT JOIN main_contact_department ON main_contact_department.main_contact_id = main_tickets.receiver_id -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -WHERE current_state != 4 -AND ( - main_contact_department.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " - OR main_tickets_category.main_mandant_id = " . $GLOBALS['main_contact']['master_mandant_id'] . " -)"; -$result_2000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_2000))[0]; - -// 3000: Alle geschlossenen Tickets -$query_count_3000 = "SELECT COUNT(*) FROM main_tickets WHERE current_state = 4"; -$result_3000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_3000))[0]; - -// 4000: Alle Tickets ungefiltert -$query_count_4000 = "SELECT COUNT(*) FROM main_tickets"; -$result_4000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_4000))[0]; - -// 5000: Alle eskalierenden Tickets (zu lange offen/in Bearbeitung) -$query_count_5000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE DATE_ADD(main_tickets.creation_date, INTERVAL COALESCE(main_tickets_subcategory.escalation_state, main_tickets_category.escalation_state) DAY) < NOW() -AND main_tickets.current_state IN (2, 3)"; -$result_5000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_5000))[0]; - -// 6000: Alle nicht zugewiesenen Tickets -$query_count_6000 = "SELECT COUNT(*) FROM main_tickets WHERE receiver_id = 0"; -$result_6000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_6000))[0]; - -// 7000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_7000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state != 4"; -$result_7000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_7000))[0]; - -// 8000: // Alle Tickets die im Bereich Einkauf sind (holen wir über main_mandant_id aus main_tickets_category = 15) -$query_count_8000 = "SELECT COUNT(*) -FROM main_tickets -LEFT JOIN main_tickets_category ON main_tickets.main_ticket_category_id = main_tickets_category.id -LEFT JOIN main_tickets_category AS main_tickets_subcategory ON main_tickets.main_ticket_subcategory_id = main_tickets_subcategory.id -WHERE main_tickets_category.main_mandant_id = 15 - OR main_tickets_subcategory.main_mandant_id = 15 AND main_tickets.current_state = 4"; -$result_8000 = mysqli_fetch_array(mysqli_query($GLOBALS['mysql_con'], $query_count_8000))[0]; ?> - -
- - - - - - +"> - - - - - - - - - - - - - - - - + + - -
- -
-
- -
- - Von mir erstellt - - - Zu bearbeitende Tickets - - - Ticket Pool - - - Ticket Übersicht - - - Archiv - - - - Alle Tickets - - - - - Eskalierte Tickets - - - - - - Nicht zugewiesene Tickets - +
+
+
+
+
+
+

Aktionen

+ +
+ Ticket erstellen +

Kategorien

+ + + + + + + + +
- +
+
+
-
-
-
- -
-

-

-
- -
-

Ticketcenter

-
- - - -
- - - - - - -
-
-
-
-
Datumsfilter
-
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - +
\ No newline at end of file diff --git a/module/ticketcenter/views/ticketcenter/show_ticketcenter_subcategory_ajax.php b/module/ticketcenter/views/ticketcenter/show_ticketcenter_subcategory_ajax.php deleted file mode 100644 index e9c210d..0000000 --- a/module/ticketcenter/views/ticketcenter/show_ticketcenter_subcategory_ajax.php +++ /dev/null @@ -1,42 +0,0 @@ -load(); -} -$common = $mysydeDir ."/common/common_functions.inc.php"; -require_once($common); - -$connEnv = (local_environment()) ? $mysydeDir."/dc.config.php" : $mysydeDir."/dc-server.config.php"; - -require_once($connEnv); - -db_connect(); - -if ($_SERVER["REQUEST_METHOD"] == "POST") { - $category_id = $_POST['category_id']; - - $query = "SELECT * FROM main_tickets_category WHERE parent_id = ".$category_id." ORDER BY sorting"; - $result = @mysqli_query($GLOBALS['mysql_con'], $query); - if (mysqli_num_rows($result) <= 0) { - return; - } - echo "
"; - echo "
"; - echo ""; - echo "
"; -} \ No newline at end of file diff --git a/mysyde/admin/admin.js b/mysyde/admin/admin.js index 02553dd..a2663fe 100644 --- a/mysyde/admin/admin.js +++ b/mysyde/admin/admin.js @@ -564,18 +564,24 @@ function getFormData(_form) { * @param _confirmtext * @returns {Boolean} */ -function sendRequest(_action, _load_without_check, _confirmtext) { +function sendRequest(_action, _load_without_check, _confirmtext, sub_get = "") { // variable zum pruefen ob in einer linkliste ein element markiert wurde var load_without_check = _load_without_check || false; if (load_without_check === false) { - var currentMarkedLinklistRow = jQuery('.linklist_active', jQuery('#' + dc.current_formname)); + var currentMarkedLinklistRow = jQuery( + ".linklist_active", + jQuery("#" + dc.current_formname) + ); if (dc.current_linklist === null || currentMarkedLinklistRow.length <= 0) { return; } - var input_id = currentMarkedLinklistRow.data('inputid'); - jQuery('input.selected_linklist_row', jQuery('#' + dc.current_formname)).val(input_id); + var input_id = currentMarkedLinklistRow.data("inputid"); + jQuery( + "input.selected_linklist_row", + jQuery("#" + dc.current_formname) + ).val(input_id); } var confirmtext = _confirmtext || false; @@ -585,14 +591,21 @@ function sendRequest(_action, _load_without_check, _confirmtext) { } } - if (dc.overlay_mode === true) { - jQuery('#overlayLoader').show(); - } else { - jQuery('#mainContent').find('.requestLoader').show(); + // Проверка обязательных полей + var form = document.getElementById(dc.current_formname); + if (!form.checkValidity()) { + form.reportValidity(); + return false; } - jQuery('#' + dc.current_formname).attr("action", "?action=" + _action); - jQuery('#' + dc.current_formname).submit(); + if (dc.overlay_mode === true) { + jQuery("#overlayLoader").show(); + } else { + jQuery("#mainContent").find(".requestLoader").show(); + } + + jQuery('#' + dc.current_formname).attr("action", "?action=" + _action + "&sub_get=" + sub_get); + jQuery("#" + dc.current_formname).submit(); } /** @@ -832,11 +845,16 @@ function myFunction(counter) { console.log("myDropdown" + counter); } -function openGallery(input_id, image_id, type){ +function openGallery(input_id, image_id, type, select_mode){ var currentDate = new Date(); var unixTimestamp = Math.floor(currentDate.getTime() / 1000); + var selectionMode = select_mode || ''; - var popupURL = '/components/files/filegallery_content.inc.php?input_id='+input_id+'&image_id='+image_id+'&type='+type+'&time='+unixTimestamp; + if (selectionMode !== 'single' && selectionMode !== 'multi') { + selectionMode = (type === 'filegallery') ? 'single' : 'multi'; + } + + var popupURL = '/components/files/filegallery_content.inc.php?input_id='+input_id+'&image_id='+image_id+'&type='+type+'&select_mode='+selectionMode+'&time='+unixTimestamp; var popup = window.open(popupURL, 'Popup-Fenster', 'width=1080,height=720'); } diff --git a/mysyde/admin/common_functions.inc.php b/mysyde/admin/common_functions.inc.php index a0616ae..1bf4ba9 100644 --- a/mysyde/admin/common_functions.inc.php +++ b/mysyde/admin/common_functions.inc.php @@ -46,6 +46,21 @@ function mysqli_result( $res, $row = 0, $col = 0 ) { return FALSE; } +function encryptId($id) +{ + $encryptedId = base64_encode($id . "EC1ibm38FI53cxmSnQUi"); + return $encryptedId; +} + +// Entschlüsselt eine zuvor verschlüsselte ID, um ihre ursprüngliche Form wiederherzustellen. +function decryptId($encryptedId) +{ + $decryptedId = base64_decode($encryptedId); + $id = str_replace("EC1ibm38FI53cxmSnQUi", "", $decryptedId); + return $id; +} + + // Verbindung mir der Datenbank herstellen function db_connect() { $servername = $GLOBALS['myservername']; @@ -57,6 +72,9 @@ function db_connect() { @mysqli_select_db($GLOBALS['mysql_con'], $db) or die (mysqli_error($GLOBALS['mysql_con']) . " - Keine Verbindung hergestellt!"); @mysqli_query($GLOBALS['mysql_con'], "set character set 'utf8';"); @mysqli_query($GLOBALS['mysql_con'], "set names 'utf8';"); + + $pdo = new PDO('mysql:host='.$servername.';dbname='.$db, $login, $pass); + $GLOBALS['pdo_conn'] = $pdo; } // Globales führen der Reihenfolge in der Felder angewählt werden diff --git a/mysyde/admin/dashboard_startpage.php b/mysyde/admin/dashboard_startpage.php index 8a8235d..7bc0a3a 100644 --- a/mysyde/admin/dashboard_startpage.php +++ b/mysyde/admin/dashboard_startpage.php @@ -59,7 +59,7 @@ function listUsers(){ } echo "
"; if($main_contact['image'] == ""){ - echo "
"; + echo "
"; }else{ echo "
"; } diff --git a/mysyde/admin/header.inc.php b/mysyde/admin/header.inc.php index df5f1ab..520b7b9 100644 --- a/mysyde/admin/header.inc.php +++ b/mysyde/admin/header.inc.php @@ -1,14 +1,15 @@ 0) { // Wenn mindestens ein Eintrag gefunden wurde, gibt die Funktion 1 zurück @@ -21,9 +22,10 @@ function check_if_betriebsrat_role($admin_user) { $is_betriebsrat = check_if_betriebsrat_role($admin_user['id']); - -function create_collections_menu($site, $language, $translation) { + +function create_collections_menu($site, $language, $translation) +{ // Greife auf die globale Variable $is_betriebsrat zu global $is_betriebsrat; @@ -31,17 +33,20 @@ function create_collections_menu($site, $language, $translation) { if ($is_betriebsrat == 1) { ?>
  • - " href="/mysyde/awo/de/collections/17/">Aktuelles - " href="/mysyde/awo/de/knowledge/category/">Wiki Kategorien - " href="/mysyde/awo/de/collections/3/">Wiki Beiträge - + " + href="/mysyde/awo/de/collections/17/">Aktuelles + " + href="/mysyde/awo/de/knowledge/category/">Wiki Kategorien + " + href="/mysyde/awo/de/collections/3/">Wiki Beiträge +
  • - " href=""> + " + href="">
  • - + if ($second_menu == TRUE) { ?>
  • - " href=""> + " + href="">
  • - +
  • - " href=""> + " + href="">
  • - +
  • - "> + "> + @@ -231,110 +260,125 @@ function create_module_menu($site, $language, $translation, $adminMenu){ d="M19.7,16.31V13.42a1.4,1.4,0,0,0-1.4-1.4H12.722V9.231h6.283a1.4,1.4,0,0,0,1.4-1.4V3.646a1.4,1.4,0,0,0-1.4-1.4H5.042a1.4,1.4,0,0,0-1.4,1.4V7.835a1.4,1.4,0,0,0,1.4,1.4h6.283v2.793H5.741a1.4,1.4,0,0,0-1.4,1.4v2.89a2.793,2.793,0,1,0,1.4,0V13.42h5.585v2.793H9.231V21.8h5.585V16.213H12.722V13.42h5.585v2.89a2.793,2.793,0,1,0,1.4,0Zm-13.265,2.7a1.4,1.4,0,1,1-1.4-1.4A1.4,1.4,0,0,1,6.439,19.005Zm6.981-1.4V20.4H10.627V17.609ZM5.042,7.835V3.646H19.005V7.835ZM19.005,20.4a1.4,1.4,0,1,1,1.4-1.4A1.4,1.4,0,0,1,19.005,20.4Z" transform="translate(-2143.25 -227.25)" fill="#fff" /> - - get("cms") ?> + + get("cms") ?> +
  • +
    -