403Webshell
Server IP : 146.59.209.152  /  Your IP : 216.73.216.46
Web Server : Apache
System : Linux webm005.cluster131.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User : infrafs ( 43850)
PHP Version : 8.2.29
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/i/n/f/infrafs/INFRABIKEIT/wp-content/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/i/n/f/infrafs/INFRABIKEIT/wp-content/plugins/yith-woocommerce-quick-view.tar
uninstall.php000064400000000347151327614470007304 0ustar00<?php
/**
 * Uninstall plugin
 *
 * @author Your Inspiration Themes
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */

// If uninstall not called from WordPress exit.
if( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
	exit;
}
languages/yith-woocommerce-quick-view-it_IT.po000064400000044265151327614470015461 0ustar00msgid ""
msgstr ""
"Project-Id-Version: YITH WooCommerce Quick View\n"
"POT-Creation-Date: 2017-10-11 12:42+0200\n"
"PO-Revision-Date: 2017-10-11 12:42+0200\n"
"Last-Translator: \n"
"Language-Team: YIThemes <plugins@yithemes.com>\n"
"Language: it_IT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7.1\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=n!=1;\n"
"X-Poedit-KeywordsList: __ ;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-SearchPath-0: ..\n"
"X-Poedit-SearchPathExcluded-0: ../plugin-fw\n"

#: ../includes/class.yith-wcqv-admin.php:129
#: ../includes/class.yith-wcqv-admin.php:151
msgid "Settings"
msgstr "Impostazioni"

#: ../includes/class.yith-wcqv-admin.php:130
#: ../includes/class.yith-wcqv-admin.php:152
msgid "Premium Version"
msgstr "Versione premium"

#: ../includes/class.yith-wcqv-admin.php:158
#: ../includes/class.yith-wcqv-admin.php:159
#: ../plugin-options/settings-options.php:57
msgid "Quick View"
msgstr "Quick view"

#: ../includes/class.yith-wcqv-admin.php:213
msgid "Plugin Documentation"
msgstr "Documentazione plugin"

#: ../init.php:41
msgid ""
"YITH WooCommerce Quick View is enabled but not effective. It requires "
"WooCommerce in order to work."
msgstr ""
"YITH WooCommerce Quick View è abilitato ma non in funzione. Devi aver "
"installato WooCommerce perché questo possa funzionare correttamente."

#: ../init.php:50
msgid ""
"You can't activate the free version of YITH WooCommerce Quick View while you "
"are using the premium one."
msgstr ""
"Non è possibile attivare la versione free di YITH WooCommerce Colors and "
"Labels Variations se stai già utilizzando la premium."

#: ../plugin-options/settings-options.php:8
msgid "Upgrade to the PREMIUM VERSION"
msgstr "Aggiorna alla VERSIONE PREMIUM"

#: ../plugin-options/settings-options.php:11
#: ../plugin-options/settings-options.php:18
msgid "YITH WooCommerce Quick View"
msgstr "YITH WooCommerce Quick View"

#: ../plugin-options/settings-options.php:12
msgid "Discover the Advanced Features"
msgstr "Scopri le funzionalità avanzate"

#: ../plugin-options/settings-options.php:13
msgid ""
"Upgrade to the PREMIUM VERSION of YITH WooCommerce Quick View to benefit "
"from all features!"
msgstr ""
"Aggiorna alla VERSIONE PREMIUM di YITH WooCommerce Quick View per usufruire "
"di tutte le sue funzionalità!"

#: ../plugin-options/settings-options.php:20
msgid "Get Support and Pro Features"
msgstr "Ottieni supporto e funzionalità aggiuntive"

#: ../plugin-options/settings-options.php:21
msgid ""
"By purchasing the premium version of the plugin, you will take advantage of "
"the advanced features of the product and you will get one year of free "
"updates and support through our platform available 24h/24."
msgstr ""
"Acquistando la versione premium del plugin, potrai beneficiare delle "
"funzionalità avanzate del prodotto ed otterrai un anno di aggiornamenti "
"gratuiti e supporto per mezzo della nostra piattaforma disponibile 24h/24."

#: ../plugin-options/settings-options.php:31
msgid "General Options"
msgstr "Opzioni generali"

#: ../plugin-options/settings-options.php:39
msgid "Enable Quick View"
msgstr "Abilita quick view"

#: ../plugin-options/settings-options.php:46
msgid "Enable Quick View on mobile"
msgstr "Abilita quick view su dispositivi mobili"

#: ../plugin-options/settings-options.php:47
msgid "Enable quick view features on mobile device too"
msgstr "Abilita funzionalità quick view anche sui dispositivi mobili"

#: ../plugin-options/settings-options.php:54
msgid "Quick View Button Label"
msgstr "Testo pulsante quick view"

#: ../plugin-options/settings-options.php:55
msgid "Label for the quick view button in the WooCommerce loop."
msgstr "Testo per il pulsante Quick view nella pagina shop di WooCommerce"

#: ../plugin-options/settings-options.php:62
msgid "Enable Lightbox"
msgstr "Abilita lightbox"

#: ../plugin-options/settings-options.php:63
msgid "Enable lightbox. Product images will open in a lightbox."
msgstr ""
"Abilita la lightbox. Le immagini dei prodotti si apriranno in una lightbox."

#: ../plugin-options/settings-options.php:74 ../templates/admin/premium.php:323
#: ../templates/admin/premium.php:328
msgid "Style Options"
msgstr "Opzioni di stile"

#: ../plugin-options/settings-options.php:81
msgid "Modal Window Background Color"
msgstr "Colore finestra modale"

#: ../plugin-options/settings-options.php:89
msgid "Closing Button Color"
msgstr "Colore pulsante chiusura"

#: ../plugin-options/settings-options.php:97
msgid "Closing Button Hover Color"
msgstr "Colore pulsante chiusura al passaggio del mouse"

#: ../templates/admin/premium.php:210 ../templates/admin/premium.php:364
#, php-format
msgid ""
"Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Quick View%2$s to "
"benefit from all features!"
msgstr ""
"Aggiorna alla %1$sversione premium%2$s di %1$sYITH WooCommerce Quick View"
"%2$s per usufruire di tutte le sue funzionalità!"

#: ../templates/admin/premium.php:213 ../templates/admin/premium.php:367
msgid "UPGRADE"
msgstr "AGGIORNA"

#: ../templates/admin/premium.php:214 ../templates/admin/premium.php:368
msgid "to the premium version"
msgstr "alla versione premium"

#: ../templates/admin/premium.php:220
msgid "Premium Features"
msgstr "Funzionalità premium"

#: ../templates/admin/premium.php:223
msgid "Button type"
msgstr "Tipologia pulsante"

#: ../templates/admin/premium.php:228
msgid "BUTTON TYPE"
msgstr "TIPOLOGIA PULSANTE"

#: ../templates/admin/premium.php:230
#, php-format
msgid ""
"Choose between the button or a custom icon to access the %1$sQuick View%2$s: "
"you can choose to place it after the \"Add To Cart\" button or inside the "
"thumbnail of the product."
msgstr ""
"Scegli tra il pulsante o un’icona personalizzata per avviare la %1$squick "
"view%2$s: scegli tu se dopo il pulsante “Aggiungi al carrello” o sulla "
"immagine thumbnail del prodotto."

#: ../templates/admin/premium.php:238 ../templates/admin/premium.php:239
#: ../templates/admin/premium.php:244
msgid "Product Navigation"
msgstr "Navigazione prodotti"

#: ../templates/admin/premium.php:241
#, php-format
msgid ""
"The navigation in the \"Quick View\" allows browsing among %1$sproducts%2$s "
"displayed in it. The navigation arrows show on mousehover the image of the "
"next/previous product."
msgstr ""
"La navigazione all’interno della visualizzazione rapida permette di scorrere "
"tra i %1$sprodotti%2$s visualizzati. Quando si passa il cursore sulle frecce "
"di navigazione, queste mostrano l’immagine del prodotto immediatamente "
"successivo o precedente."

#: ../templates/admin/premium.php:255 ../templates/admin/premium.php:256
msgid "Content to display"
msgstr "Contenuto da mostrare"

#: ../templates/admin/premium.php:258
#, php-format
msgid ""
"The display of the product information in the \"Quick View\" are managed by "
"%1$sadministrators%2$s who can decide whether to show everything or only a "
"part of it."
msgstr ""
"La visualizzazione delle informazioni del prodotto all’interno della “Quick "
"View” sono gestite dall’%1$samministratore%2$s che può decidere se mostrare "
"tutto o solo una parte di esse."

#: ../templates/admin/premium.php:267
msgid "Quick View Type"
msgstr "Tipologia quick view"

#: ../templates/admin/premium.php:269
#, php-format
msgid ""
"Quick view has two different displaying modes: the first one opens it as a "
"%1$smodal window%2$s, the other one opens it in the page itself with a "
"%1$scascading effect%2$s above content page."
msgstr ""
"La visualizzazione rapida del prodotto può avvenire in due modi: all’interno "
"di una %1$sfinestra modale%2$s o all’interno della stessa pagina con "
"%1$seffetto a cascata%2$s sul resto del contenuto."

#: ../templates/admin/premium.php:272
msgid "Quick view type"
msgstr "Tipologia quick view"

#: ../templates/admin/premium.php:284
msgid "\"View details\" button"
msgstr "Pulsante “Visualizza dettagli”"

#: ../templates/admin/premium.php:286
msgid ""
"An additional button that allows users to access product detail page "
"directly from quick view window just with a click of the mouse."
msgstr ""
"Un pulsante aggiuntivo per permettere all’utente di accedere alla pagina "
"dettaglio del prodotto direttamente dalla quick view con un semplice clic."

#: ../templates/admin/premium.php:295
msgid "Type of product images"
msgstr "Tipologia immagini prodotto"

#: ../templates/admin/premium.php:297
#, php-format
msgid ""
"Each product can have more than one image: choose whether to hide or show "
"them with the %1$sslider%2$s effect or in the classic %1$sWooCommerce%2$s "
"display."
msgstr ""
"Ogni prodotto può avere ulteriori immagini oltre a quella in evidenza: "
"scegli se nasconderle o mostrarle con %1$seffetto scorrimento%2$s o nella "
"classica visualizzazione di %1$sWooCommerce%2$s."

#: ../templates/admin/premium.php:312
msgid "SHARE"
msgstr "Condivisione"

#: ../templates/admin/premium.php:314
#, php-format
msgid ""
"%1$sQuick View is also social-friendly!%2$s Activating this option, you will "
"be able to share the Quick View on Facebook, Twitter, Pinterest, Google+, or "
"sending an email."
msgstr ""
"%1$sLa quick view è anche social%2$s! Abilitando l’opzione, potrà essere "
"condivisa su Facebook, Twitter, Pinterest, Google+ e per email."

#: ../templates/admin/premium.php:325
#, php-format
msgid ""
"A rich option panel to change the colors of the %1$s\"Quick View\"%2$s "
"button and of everything that is within the modal window generated."
msgstr ""
"Un ricco pannello opzioni per modificare i colori del pulsante %1$s“Quick "
"View”%2$s e di tutto ciò che è all’interno della finestra modale generata."

#: ../templates/admin/premium.php:340
msgid "SHORTCODE"
msgstr ""

#: ../templates/admin/premium.php:342
msgid ""
"The shortcode of plugin is a $1$srapid$2$s and $1$seasy$2$s solution: you "
"can add a button in any spot of the page to allow your users to see the "
"quick view of a specific product in your store."
msgstr ""

#: ../templates/admin/premium.php:351
msgid "Compatibility with other YITH's plugins"
msgstr ""

#: ../templates/admin/premium.php:353
#, php-format
msgid ""
"Thanks to the compatibility with %1$sYITH WooCommerce Zoom Magnifier, YITH "
"WooCommerce Badge Management%2$s and %1$sYITH WooCommerce Wishlist%2$s, you "
"will be free to enrich further the content of your quick view.%3$s Zoom the "
"product image, show a badge, or add the button to open the quick view in all "
"products available in your users' wishlists. With YITH's plugins you make "
"the difference."
msgstr ""

#~ msgid ""
#~ "In the YIT Plugin tab you can find the YITH WooCommerce Quick View "
#~ "options.\r\n"
#~ "\t\t\t\t\t\t\t\t\t\tWith this menu, you can access to all the settings of "
#~ "our plugins that you have activated.\r\n"
#~ "\t\t\t\t\t\t\t\t\t\tYITH WooCommerce Quick View is available in an "
#~ "outstanding PREMIUM version with many new options,\r\n"
#~ "\t\t\t\t\t\t\t\t\t\t<a href=\""
#~ msgstr ""
#~ "Nella scheda YIT Plugins puoi trovare tutte le opzioni di YITH "
#~ "WooCommerce Quick View.<br>Da questo menu potrai accedere a tutte le "
#~ "impostazioni dei plugin YITH installati."

#~ msgid ""
#~ "The navigation in the \"Quick View\" allows browsing between the "
#~ "%1$sproducts%2$s within the same %1$scategory%2$s. The navigation arrows "
#~ "show on mousehover the image of the next/previous product."
#~ msgstr ""
#~ "La navigazione all’interno della visualizzazione rapida permette di "
#~ "scorrere tra i %1$sprodotti%2$s visualizzati. Quando si passa il cursore "
#~ "sulle frecce di navigazione, queste mostrano l’immagine del prodotto "
#~ "immediatamente successivo o precedente."

#~ msgid "General"
#~ msgstr "Generali"

#~ msgid "Product"
#~ msgstr "Prodotto"

#~ msgid "Style"
#~ msgstr "Stile"

#~ msgid "Quick View Navigation"
#~ msgstr "Navigazione quick view"

#~ msgid ""
#~ "Enable product navigation on quick view. NOTE: only available on modal "
#~ "window style."
#~ msgstr ""
#~ "Abilita scorrimento prodotti all\\’interno della quick view. NOTA: "
#~ "disponibile solo per lo stile finestra modale."

#~ msgid "Enable navigation in the same product category"
#~ msgstr "Abilita navigazione nella stessa categoria prodotti"

#~ msgid "Quick View Navigation Style"
#~ msgstr "Stile navigazione quick view"

#~ msgid "Slide ( thumbnail and product name )"
#~ msgstr "Scorrimento (miniatura e nome prodotto)"

#~ msgid "Rotate ( thumbnail )"
#~ msgstr "Rotazione (miniatura)"

#~ msgid "Modal Window"
#~ msgstr "Finestra modale"

#~ msgid "Cascading"
#~ msgstr "A cascata"

#~ msgid "Select modal effect"
#~ msgstr "Selezione effetto modale"

#~ msgid "Slide in"
#~ msgstr "Scorrimento"

#~ msgid "Fade in"
#~ msgstr "Dissolvenza"

#~ msgid "Scale up"
#~ msgstr "Ingrandimento"

#~ msgid "Modal Width"
#~ msgstr "Larghezza finestra"

#~ msgid "Set width of modal window."
#~ msgstr "Selezione la larghezza della finestra modale"

#~ msgid "Modal Height"
#~ msgstr "Altezza finestra"

#~ msgid "Set height of modal window."
#~ msgstr "Seleziona l\\’altezza della finestra modale"

#~ msgid "Button Options"
#~ msgstr "Opzioni pulsante"

#~ msgid "Quick View Button Type"
#~ msgstr "Tipo di pulsante quick view"

#~ msgid "Use button"
#~ msgstr "Usa pulsante"

#~ msgid "Use icon"
#~ msgstr "Usa icona"

#~ msgid "Quick View Button Icon"
#~ msgstr "Icona pulsante quick view"

#~ msgid "Icon for the quick view button in the WooCommerce loop."
#~ msgstr "Icona per il pulsante Quick view nella pagina shop di WooCommerce"

#~ msgid "Quick View Button Position"
#~ msgstr "Posizione pulsante Quick view"

#~ msgid "Position of the quick view button."
#~ msgstr "Posizione del pulsante Quick view"

#~ msgid "After 'add to cart' button"
#~ msgstr "Dopo il pulsante \\‘Aggiungi al carrello\\’"

#~ msgid "Inside product image"
#~ msgstr "Dentro l\\’immagine prodotto"

#~ msgid "Content Options"
#~ msgstr "Opzioni contenuto"

#~ msgid "Select Element to Show"
#~ msgstr "Seleziona elemento da mostrare"

#~ msgid "Show Product Image"
#~ msgstr "Mostra immagine prodotto"

#~ msgid "Show Product Name"
#~ msgstr "Mostra nome prodotto"

#~ msgid "Show Product Rating"
#~ msgstr "Mostra valutazione prodotto"

#~ msgid "Show Product Price"
#~ msgstr "Mostra prezzo prodotto"

#~ msgid "Show Product Excerpt"
#~ msgstr "Mostra riepilogo prodotto"

#~ msgid "Show Product Add To Cart"
#~ msgstr "Mostra \\”Aggiungi al carrello\\” del prodotto"

#~ msgid "Show Product Meta"
#~ msgstr "Mostra meta prodotto"

#~ msgid "Product Image Width"
#~ msgstr "Larghezza immagine prodotto"

#~ msgid "Set width of product image."
#~ msgstr "Imposta la larghezza dell\\’immagine del prodotto."

#~ msgid "Product Image Height"
#~ msgstr "Altezza immagine prodotto"

#~ msgid "Set height of product image."
#~ msgstr "Imposta l\\’altezza dell\\’immagine del prodotto."

#~ msgid "Select Thumbnails Type"
#~ msgstr "Seleziona tipo di miniatura"

#~ msgid "Don't show"
#~ msgstr "Non mostrare"

#~ msgid "Slider mode"
#~ msgstr "Modalità scorrimento"

#~ msgid "Classic mode"
#~ msgstr "Modalità classica"

#~ msgid "Add 'View Details' Button"
#~ msgstr "Aggiungi pulsante \\’Visualizza dettagli\\’"

#~ msgid "Check this option to add a button to go to the single product page."
#~ msgstr ""
#~ "Seleziona questa opzione per aggiungere un pulsante che riporti alla "
#~ "pagina singolo prodotto."

#~ msgid "'View Details' Button Label"
#~ msgstr "Testo pulsante \\’Visualizza dettagli\\’"

#~ msgid "Set label for 'View Details' button"
#~ msgstr "Scegli il testo del pulsante \\’Visualizza dettagli\\’"

#~ msgid "View Details"
#~ msgstr "Visualizza dettagli"

#~ msgid "Enable Ajax Add To Cart"
#~ msgstr "Abilita \\“Aggiungi al carrello\\” in ajax"

#~ msgid "Check this option to enable add to cart in ajax"
#~ msgstr ""
#~ "Seleziona questa opzione per abilitare il pulsante \\”Aggiungi al carrello"
#~ "\\” in ajax"

#~ msgid "Share Options"
#~ msgstr "Opzioni di condivisione"

#~ msgid "Enable Share"
#~ msgstr "Abilita condivisione"

#~ msgid ""
#~ "Check this option if you want to show the share link for products in "
#~ "quick view"
#~ msgstr ""
#~ "Seleziona questa opzione se vuoi mostrare il link di condivisione per i "
#~ "prodotti nella quick view"

#~ msgid "Select Socials"
#~ msgstr "Seleziona social"

#~ msgid "Facebook"
#~ msgstr "Facebook"

#~ msgid "Twitter"
#~ msgstr "Twitter"

#~ msgid "Google+"
#~ msgstr "Google+"

#~ msgid "Pinterest"
#~ msgstr "Pinterest"

#~ msgid "eMail"
#~ msgstr "email"

#~ msgid "General Style"
#~ msgstr "Stile generale"

#~ msgid "'Quick View' Button Color"
#~ msgstr "Colore pulsante 'Quick View'"

#~ msgid "'Quick View' Button Text Color"
#~ msgstr "Colore testo pulsante 'Quick View'"

#~ msgid "'Quick View' Button Hover Color "
#~ msgstr "Colore pulsante 'Quick View' al passaggio del mouse"

#~ msgid "'Quick View' Button Hover Text Color"
#~ msgstr "Colore testo pulsante 'Quick View' al passaggio del mouse"

#~ msgid "Content Style"
#~ msgstr "Stile contenuto"

#~ msgid "Main Text Color"
#~ msgstr "Colore principale testo"

#~ msgid "Star Color"
#~ msgstr "Colore stellina"

#~ msgid "'Add to Cart' Button Color"
#~ msgstr "Colore pulsante ‘Aggiungi al carrello’"

#~ msgid "'Add to Cart' Button Text Color"
#~ msgstr "Colore testo pulsante ‘Aggiungi al carrello’"

#~ msgid "'Add to Cart' Button Hover Color "
#~ msgstr "Colore pulsante ‘Aggiungi al carrello’ al passaggio del mouse"

#~ msgid "'Add to Cart' Button Hover Text Color"
#~ msgstr "Colore testo pulsante ‘Aggiungi al carrello’ al passaggio del mouse"

#~ msgid "'View Details' Button Color"
#~ msgstr "Colore pulsante ‘Visualizza dettagli’"

#~ msgid "'View Details' Button Text Color"
#~ msgstr "Colore testo pulsante ‘Visualizza dettagli’"

#~ msgid "'View Details' Button Hover Color "
#~ msgstr "Colore pulsante ‘Visualizza dettagli’ al passaggio del mouse "

#~ msgid "'View Details' Button Hover Text Color"
#~ msgstr "Colore testo pulsante ‘Visualizza dettagli’ al passaggio del mouse "

#~ msgid "Closing Icon Color"
#~ msgstr "Colore icona chiusura"

#~ msgid "Closing Icon Hover Color"
#~ msgstr "Colore icona chiusura al passaggio del mouse"

#~ msgid "May I ask you to see this product, please?"
#~ msgstr "Posso chiederti di guardare questo prodotto, per favore?"
languages/yith-woocommerce-quick-view.pot000064400000016764151327614470014642 0ustar00#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: YITH WooCommerce Quick View\n"
"POT-Creation-Date: 2017-10-11 12:42+0200\n"
"PO-Revision-Date: 2015-05-18 11:52+0100\n"
"Last-Translator: \n"
"Language-Team: YIThemes <plugins@yithemes.com>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7.1\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=n!=1;\n"
"X-Poedit-KeywordsList: __ ;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-SearchPath-0: ..\n"
"X-Poedit-SearchPathExcluded-0: ../plugin-fw\n"

#: ../includes/class.yith-wcqv-admin.php:129
#: ../includes/class.yith-wcqv-admin.php:151
msgid "Settings"
msgstr ""

#: ../includes/class.yith-wcqv-admin.php:130
#: ../includes/class.yith-wcqv-admin.php:152
msgid "Premium Version"
msgstr ""

#: ../includes/class.yith-wcqv-admin.php:158
#: ../includes/class.yith-wcqv-admin.php:159
#: ../plugin-options/settings-options.php:57
msgid "Quick View"
msgstr ""

#: ../includes/class.yith-wcqv-admin.php:213
msgid "Plugin Documentation"
msgstr ""

#: ../init.php:41
msgid ""
"YITH WooCommerce Quick View is enabled but not effective. It requires "
"WooCommerce in order to work."
msgstr ""

#: ../init.php:50
msgid ""
"You can't activate the free version of YITH WooCommerce Quick View while you "
"are using the premium one."
msgstr ""

#: ../plugin-options/settings-options.php:8
msgid "Upgrade to the PREMIUM VERSION"
msgstr ""

#: ../plugin-options/settings-options.php:11
#: ../plugin-options/settings-options.php:18
msgid "YITH WooCommerce Quick View"
msgstr ""

#: ../plugin-options/settings-options.php:12
msgid "Discover the Advanced Features"
msgstr ""

#: ../plugin-options/settings-options.php:13
msgid ""
"Upgrade to the PREMIUM VERSION of YITH WooCommerce Quick View to benefit "
"from all features!"
msgstr ""

#: ../plugin-options/settings-options.php:20
msgid "Get Support and Pro Features"
msgstr ""

#: ../plugin-options/settings-options.php:21
msgid ""
"By purchasing the premium version of the plugin, you will take advantage of "
"the advanced features of the product and you will get one year of free "
"updates and support through our platform available 24h/24."
msgstr ""

#: ../plugin-options/settings-options.php:31
msgid "General Options"
msgstr ""

#: ../plugin-options/settings-options.php:39
msgid "Enable Quick View"
msgstr ""

#: ../plugin-options/settings-options.php:46
msgid "Enable Quick View on mobile"
msgstr ""

#: ../plugin-options/settings-options.php:47
msgid "Enable quick view features on mobile device too"
msgstr ""

#: ../plugin-options/settings-options.php:54
msgid "Quick View Button Label"
msgstr ""

#: ../plugin-options/settings-options.php:55
msgid "Label for the quick view button in the WooCommerce loop."
msgstr ""

#: ../plugin-options/settings-options.php:62
msgid "Enable Lightbox"
msgstr ""

#: ../plugin-options/settings-options.php:63
msgid "Enable lightbox. Product images will open in a lightbox."
msgstr ""

#: ../plugin-options/settings-options.php:74 ../templates/admin/premium.php:323
#: ../templates/admin/premium.php:328
msgid "Style Options"
msgstr ""

#: ../plugin-options/settings-options.php:81
msgid "Modal Window Background Color"
msgstr ""

#: ../plugin-options/settings-options.php:89
msgid "Closing Button Color"
msgstr ""

#: ../plugin-options/settings-options.php:97
msgid "Closing Button Hover Color"
msgstr ""

#: ../templates/admin/premium.php:210 ../templates/admin/premium.php:364
#, php-format
msgid ""
"Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Quick View%2$s to "
"benefit from all features!"
msgstr ""

#: ../templates/admin/premium.php:213 ../templates/admin/premium.php:367
msgid "UPGRADE"
msgstr ""

#: ../templates/admin/premium.php:214 ../templates/admin/premium.php:368
msgid "to the premium version"
msgstr ""

#: ../templates/admin/premium.php:220
msgid "Premium Features"
msgstr ""

#: ../templates/admin/premium.php:223
msgid "Button type"
msgstr ""

#: ../templates/admin/premium.php:228
msgid "BUTTON TYPE"
msgstr ""

#: ../templates/admin/premium.php:230
#, php-format
msgid ""
"Choose between the button or a custom icon to access the %1$sQuick View%2$s: "
"you can choose to place it after the \"Add To Cart\" button or inside the "
"thumbnail of the product."
msgstr ""

#: ../templates/admin/premium.php:238 ../templates/admin/premium.php:239
#: ../templates/admin/premium.php:244
msgid "Product Navigation"
msgstr ""

#: ../templates/admin/premium.php:241
#, php-format
msgid ""
"The navigation in the \"Quick View\" allows browsing among %1$sproducts%2$s "
"displayed in it. The navigation arrows show on mousehover the image of the "
"next/previous product."
msgstr ""

#: ../templates/admin/premium.php:255 ../templates/admin/premium.php:256
msgid "Content to display"
msgstr ""

#: ../templates/admin/premium.php:258
#, php-format
msgid ""
"The display of the product information in the \"Quick View\" are managed by "
"%1$sadministrators%2$s who can decide whether to show everything or only a "
"part of it."
msgstr ""

#: ../templates/admin/premium.php:267
msgid "Quick View Type"
msgstr ""

#: ../templates/admin/premium.php:269
#, php-format
msgid ""
"Quick view has two different displaying modes: the first one opens it as a "
"%1$smodal window%2$s, the other one opens it in the page itself with a "
"%1$scascading effect%2$s above content page."
msgstr ""

#: ../templates/admin/premium.php:272
msgid "Quick view type"
msgstr ""

#: ../templates/admin/premium.php:284
msgid "\"View details\" button"
msgstr ""

#: ../templates/admin/premium.php:286
msgid ""
"An additional button that allows users to access product detail page "
"directly from quick view window just with a click of the mouse."
msgstr ""

#: ../templates/admin/premium.php:295
msgid "Type of product images"
msgstr ""

#: ../templates/admin/premium.php:297
#, php-format
msgid ""
"Each product can have more than one image: choose whether to hide or show "
"them with the %1$sslider%2$s effect or in the classic %1$sWooCommerce%2$s "
"display."
msgstr ""

#: ../templates/admin/premium.php:312
msgid "SHARE"
msgstr ""

#: ../templates/admin/premium.php:314
#, php-format
msgid ""
"%1$sQuick View is also social-friendly!%2$s Activating this option, you will "
"be able to share the Quick View on Facebook, Twitter, Pinterest, Google+, or "
"sending an email."
msgstr ""

#: ../templates/admin/premium.php:325
#, php-format
msgid ""
"A rich option panel to change the colors of the %1$s\"Quick View\"%2$s "
"button and of everything that is within the modal window generated."
msgstr ""

#: ../templates/admin/premium.php:340
msgid "SHORTCODE"
msgstr ""

#: ../templates/admin/premium.php:342
msgid ""
"The shortcode of plugin is a $1$srapid$2$s and $1$seasy$2$s solution: you "
"can add a button in any spot of the page to allow your users to see the "
"quick view of a specific product in your store."
msgstr ""

#: ../templates/admin/premium.php:351
msgid "Compatibility with other YITH's plugins"
msgstr ""

#: ../templates/admin/premium.php:353
#, php-format
msgid ""
"Thanks to the compatibility with %1$sYITH WooCommerce Zoom Magnifier, YITH "
"WooCommerce Badge Management%2$s and %1$sYITH WooCommerce Wishlist%2$s, you "
"will be free to enrich further the content of your quick view.%3$s Zoom the "
"product image, show a badge, or add the button to open the quick view in all "
"products available in your users' wishlists. With YITH's plugins you make "
"the difference."
msgstr ""
languages/yith-woocommerce-quick-view-it_IT.mo000064400000016266151327614470015456 0ustar00��.�=�������<������Vk����Uew8�/��	8)	b	�	�	�	�	
�	�	�	��	�
�
�

�
��
��5LgT�[�7
cS
g�
v6"����]��������G/`� �����(�K�=#a+rA���
#4
ITn��Mbo|���NLhzq�jv����
%
'	+(, -)*!"#.$&"View details" button%1$sQuick View is also social-friendly!%2$s Activating this option, you will be able to share the Quick View on Facebook, Twitter, Pinterest, Google+, or sending an email.A rich option panel to change the colors of the %1$s"Quick View"%2$s button and of everything that is within the modal window generated.An additional button that allows users to access product detail page directly from quick view window just with a click of the mouse.BUTTON TYPEButton typeBy purchasing the premium version of the plugin, you will take advantage of the advanced features of the product and you will get one year of free updates and support through our platform available 24h/24.Choose between the button or a custom icon to access the %1$sQuick View%2$s: you can choose to place it after the "Add To Cart" button or inside the thumbnail of the product.Closing Button ColorClosing Button Hover ColorContent to displayDiscover the Advanced FeaturesEach product can have more than one image: choose whether to hide or show them with the %1$sslider%2$s effect or in the classic %1$sWooCommerce%2$s display.Enable LightboxEnable Quick ViewEnable Quick View on mobileEnable lightbox. Product images will open in a lightbox.Enable quick view features on mobile device tooGeneral OptionsGet Support and Pro FeaturesLabel for the quick view button in the WooCommerce loop.Modal Window Background ColorPlugin DocumentationPremium FeaturesPremium VersionProduct NavigationQuick ViewQuick View Button LabelQuick View TypeQuick view has two different displaying modes: the first one opens it as a %1$smodal window%2$s, the other one opens it in the page itself with a %1$scascading effect%2$s above content page.Quick view typeSHARESettingsStyle OptionsThe display of the product information in the "Quick View" are managed by %1$sadministrators%2$s who can decide whether to show everything or only a part of it.The navigation in the "Quick View" allows browsing among %1$sproducts%2$s displayed in it. The navigation arrows show on mousehover the image of the next/previous product.Type of product imagesUPGRADEUpgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Quick View%2$s to benefit from all features!Upgrade to the PREMIUM VERSIONUpgrade to the PREMIUM VERSION of YITH WooCommerce Quick View to benefit from all features!YITH WooCommerce Quick ViewYITH WooCommerce Quick View is enabled but not effective. It requires WooCommerce in order to work.You can't activate the free version of YITH WooCommerce Quick View while you are using the premium one.to the premium versionProject-Id-Version: YITH WooCommerce Quick View
POT-Creation-Date: 2017-10-11 12:42+0200
PO-Revision-Date: 2017-10-11 12:42+0200
Last-Translator: 
Language-Team: YIThemes <plugins@yithemes.com>
Language: it_IT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Generator: Poedit 1.8.7.1
X-Poedit-Basepath: .
Plural-Forms: nplurals=2; plural=n!=1;
X-Poedit-KeywordsList: __ ;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2
X-Poedit-SourceCharset: UTF-8
X-Poedit-SearchPath-0: ..
X-Poedit-SearchPathExcluded-0: ../plugin-fw
Pulsante “Visualizza dettagli”%1$sLa quick view è anche social%2$s! Abilitando l’opzione, potrà essere condivisa su Facebook, Twitter, Pinterest, Google+ e per email.Un ricco pannello opzioni per modificare i colori del pulsante %1$s“Quick View”%2$s e di tutto ciò che è all’interno della finestra modale generata.Un pulsante aggiuntivo per permettere all’utente di accedere alla pagina dettaglio del prodotto direttamente dalla quick view con un semplice clic.TIPOLOGIA PULSANTETipologia pulsanteAcquistando la versione premium del plugin, potrai beneficiare delle funzionalità avanzate del prodotto ed otterrai un anno di aggiornamenti gratuiti e supporto per mezzo della nostra piattaforma disponibile 24h/24.Scegli tra il pulsante o un’icona personalizzata per avviare la %1$squick view%2$s: scegli tu se dopo il pulsante “Aggiungi al carrello” o sulla immagine thumbnail del prodotto.Colore pulsante chiusuraColore pulsante chiusura al passaggio del mouseContenuto da mostrareScopri le funzionalità avanzateOgni prodotto può avere ulteriori immagini oltre a quella in evidenza: scegli se nasconderle o mostrarle con %1$seffetto scorrimento%2$s o nella classica visualizzazione di %1$sWooCommerce%2$s.Abilita lightboxAbilita quick viewAbilita quick view su dispositivi mobiliAbilita la lightbox. Le immagini dei prodotti si apriranno in una lightbox.Abilita funzionalità quick view anche sui dispositivi mobiliOpzioni generaliOttieni supporto e funzionalità aggiuntiveTesto per il pulsante Quick view nella pagina shop di WooCommerceColore finestra modaleDocumentazione pluginFunzionalità premiumVersione premiumNavigazione prodottiQuick viewTesto pulsante quick viewTipologia quick viewLa visualizzazione rapida del prodotto può avvenire in due modi: all’interno di una %1$sfinestra modale%2$s o all’interno della stessa pagina con %1$seffetto a cascata%2$s sul resto del contenuto.Tipologia quick viewCondivisioneImpostazioniOpzioni di stileLa visualizzazione delle informazioni del prodotto all’interno della “Quick View” sono gestite dall’%1$samministratore%2$s che può decidere se mostrare tutto o solo una parte di esse.La navigazione all’interno della visualizzazione rapida permette di scorrere tra i %1$sprodotti%2$s visualizzati. Quando si passa il cursore sulle frecce di navigazione, queste mostrano l’immagine del prodotto immediatamente successivo o precedente.Tipologia immagini prodottoAGGIORNAAggiorna alla %1$sversione premium%2$s di %1$sYITH WooCommerce Quick View%2$s per usufruire di tutte le sue funzionalità!Aggiorna alla VERSIONE PREMIUMAggiorna alla VERSIONE PREMIUM di YITH WooCommerce Quick View per usufruire di tutte le sue funzionalità!YITH WooCommerce Quick ViewYITH WooCommerce Quick View è abilitato ma non in funzione. Devi aver installato WooCommerce perché questo possa funzionare correttamente.Non è possibile attivare la versione free di YITH WooCommerce Colors and Labels Variations se stai già utilizzando la premium.alla versione premiumplugin-fw/yit-plugin.php000064400000017652151327614470011313 0ustar00<?php
/**
 * Define constants and include Plugin Framework files.
 *
 * @package YITH\PluginFramework
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.


! defined( 'YIT_CORE_PLUGIN' ) && define( 'YIT_CORE_PLUGIN', true );
! defined( 'YIT_CORE_PLUGIN_PATH' ) && define( 'YIT_CORE_PLUGIN_PATH', dirname( __FILE__ ) );
! defined( 'YIT_CORE_PLUGIN_URL' ) && define( 'YIT_CORE_PLUGIN_URL', untrailingslashit( plugins_url( '/', __FILE__ ) ) );
! defined( 'YIT_CORE_PLUGIN_TEMPLATE_PATH' ) && define( 'YIT_CORE_PLUGIN_TEMPLATE_PATH', YIT_CORE_PLUGIN_PATH . '/templates' );

require_once 'yit-functions.php';
require_once 'yit-woocommerce-compatibility.php';
require_once 'yit-plugin-registration-hook.php';
require_once 'includes/class-yit-metabox.php';
require_once 'includes/class-yit-plugin-panel.php';
require_once 'includes/class-yit-plugin-panel-woocommerce.php';
require_once 'includes/class-yit-ajax.php';
require_once 'includes/class-yit-plugin-subpanel.php';
require_once 'includes/class-yit-plugin-common.php';
require_once 'includes/class-yit-gradients.php';
require_once 'includes/class-yit-plugin-licence.php';
require_once 'includes/class-yit-theme-licence.php';
require_once 'includes/class-yit-help-desk.php';
require_once 'includes/class-yit-video.php';
require_once 'includes/class-yit-upgrade.php';
require_once 'includes/class-yit-pointers.php';
require_once 'includes/class-yit-icons.php';
require_once 'includes/class-yit-assets.php';
require_once 'includes/class-yith-debug.php';
require_once 'includes/class-yith-dashboard.php';
require_once 'includes/privacy/class-yith-privacy.php';
require_once 'includes/privacy/class-yith-privacy-plugin-abstract.php';
require_once 'includes/class-yith-system-status.php';
require_once 'includes/class-yith-post-type-admin.php';

// Gutenberg Support.
if ( class_exists( 'WP_Block_Type_Registry' ) ) {
	require_once 'includes/builders/gutenberg/class-yith-gutenberg.php';
}

require_once 'includes/builders/elementor/class-yith-elementor.php';

// load from theme folder...
load_textdomain( 'yith-plugin-fw', get_template_directory() . '/core/plugin-fw/yith-plugin-fw-' . apply_filters( 'plugin_locale', determine_locale(), 'yith-plugin-fw' ) . '.mo' ) ||
// ...or from plugin folder.
load_textdomain( 'yith-plugin-fw', dirname( __FILE__ ) . '/languages/yith-plugin-fw-' . apply_filters( 'plugin_locale', determine_locale(), 'yith-plugin-fw' ) . '.mo' );

add_filter( 'plugin_row_meta', 'yit_plugin_fw_row_meta', 20, 4 );

if ( ! function_exists( 'yit_plugin_fw_row_meta' ) ) {
	/**
	 * Show the plugin row meta.
	 *
	 * @param string[] $plugin_meta An array of the plugin's metadata, including the version, author, author URI, and plugin URI.
	 * @param string   $plugin_file Path to the plugin file relative to the plugins directory.
	 * @param array    $plugin_data An array of plugin data.
	 * @param string   $status      Status filter currently applied to the plugin list.
	 *
	 * @return string[] array of the plugin's metadata.
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 * @since  3.0.17
	 */
	function yit_plugin_fw_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) {
		if ( false === strstr( $plugin_file, 'yith' ) ) {
			// Not an YITH plugin.
			return $plugin_meta;
		}

		$base_uri = array(
			'live_demo'       => 'https://plugins.yithemes.com/',
			'documentation'   => 'https://docs.yithemes.com/',
			'premium_support' => 'https://yithemes.com/my-account/support/dashboard/',
			'free_support'    => 'https://wordpress.org/support/plugin/',
			'premium_version' => 'https://yithemes.com/themes/plugins/',
		);

		$default = array(
			'live_demo'       => array(
				'label' => _x( 'Live Demo', 'Plugin Row Meta', 'yith-plugin-fw' ),
				'icon'  => 'dashicons  dashicons-laptop',
			),
			'documentation'   => array(
				'label' => _x( 'Documentation', 'Plugin Row Meta', 'yith-plugin-fw' ),
				'icon'  => 'dashicons  dashicons-search',
			),
			'support'         => array(
				'label' => _x( 'Support', 'Plugin Row Meta', 'yith-plugin-fw' ),
				'icon'  => 'dashicons  dashicons-admin-users',
			),
			'premium_version' => array(
				'label' => _x( 'Premium version', 'Plugin Row Meta', 'yith-plugin-fw' ),
				'icon'  => 'dashicons  dashicons-cart',
			),
		);

		$to_show           = array( 'live_demo', 'documentation', 'support', 'premium_version' );
		$new_row_meta_args = apply_filters(
			'yith_show_plugin_row_meta',
			array(
				'to_show' => $to_show,
				'slug'    => '',
			),
			$plugin_meta,
			$plugin_file,
			$plugin_data,
			$status
		);
		$fields            = isset( $new_row_meta_args['to_show'] ) ? $new_row_meta_args['to_show'] : array();
		$slug              = isset( $new_row_meta_args['slug'] ) ? $new_row_meta_args['slug'] : '';
		$is_premium        = isset( $new_row_meta_args['is_premium'] ) ? $new_row_meta_args['is_premium'] : '';
		$utm_campaign      = 'plugin-version-author-uri';
		$utm_source        = $is_premium ? 'wp-premium-dashboard' : 'wp-free-dashboard';

		if ( ! ! $is_premium ) {
			$to_remove = array_search( 'premium_version', $fields, true );

			if ( false !== $to_remove ) {
				unset( $fields[ $to_remove ] );
			}
		}

		foreach ( $fields as $field ) {
			$row_meta = isset( $new_row_meta_args[ $field ] ) ? wp_parse_args( $new_row_meta_args[ $field ], $default[ $field ] ) : $default[ $field ];
			$url      = '';
			$icon     = '';
			$label    = '';

			// Check for Label.
			if ( isset( $row_meta['label'] ) ) {
				$label = $row_meta['label'];
			}

			// Check for Icon.
			if ( isset( $row_meta['icon'] ) ) {
				$icon = $row_meta['icon'];
			}

			// Check for URL.
			if ( isset( $row_meta['url'] ) ) {
				$url = $row_meta['url'];
			} else {
				if ( ! empty( $slug ) ) {
					if ( 'support' === $field ) {
						$support_field = true === $is_premium ? 'premium_support' : 'free_support';
						if ( ! empty( $base_uri[ $support_field ] ) ) {
							$url = $base_uri[ $support_field ];
						}

						if ( 'free_support' === $support_field ) {
							$url = $url . $slug;
						}
					} else {
						if ( isset( $base_uri[ $field ] ) ) {
							$url = apply_filters( "yith_plugin_row_meta_{$field}_url", $base_uri[ $field ] . $slug, $field, $slug, $base_uri );
						}
					}
				}
			}

			if ( ! empty( $url ) && ! empty( $label ) ) {
				$url           = yith_plugin_fw_add_utm_data( $url, $slug, $utm_campaign, $utm_source );
				$plugin_meta[] = sprintf( '<a href="%s" target="_blank"><span class="%s"></span>%s</a>', $url, $icon, $label );
			}
		}

		if ( isset( $plugin_meta[1] ) ) {
			$utm_author_uri = yith_plugin_fw_add_utm_data( $plugin_data['AuthorURI'], $slug, $utm_campaign, $utm_source );
			$plugin_meta[1] = str_replace( $plugin_data['AuthorURI'], $utm_author_uri, $plugin_meta[1] );
		}

		if ( isset( $plugin_meta[2] ) ) {
			$utm_plugin_uri = yith_plugin_fw_add_utm_data( $plugin_data['PluginURI'], $slug, $utm_campaign, $utm_source );
			$plugin_meta[2] = str_replace( $plugin_data['PluginURI'], $utm_plugin_uri, $plugin_meta[2] );
		}

		return $plugin_meta;
	}
}

if ( ! function_exists( 'yith_add_action_links' ) ) {
	/**
	 * Add the action links to plugin admin page
	 *
	 * @param array  $links       The plugin links.
	 * @param string $panel_page  The panel page.
	 * @param bool   $is_premium  Is this plugin premium? True if the plugin is premium. False otherwise.
	 * @param string $plugin_slug The plugin slug.
	 *
	 * @return   array
	 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
	 * @since    1.6.5
	 */
	function yith_add_action_links( $links, $panel_page = '', $is_premium = false, $plugin_slug = '' ) {
		$links = is_array( $links ) ? $links : array();
		if ( ! empty( $panel_page ) ) {
			$links[] = sprintf( '<a href="%s">%s</a>', admin_url( "admin.php?page={$panel_page}" ), _x( 'Settings', 'Action links', 'yith-plugin-fw' ) );
		}

		if ( $is_premium && class_exists( 'YIT_Plugin_Licence' ) ) {
			$links[] = sprintf( '<a href="%s">%s</a>', YIT_Plugin_Licence()->get_license_activation_url( $plugin_slug ), __( 'License', 'yith-plugin-fw' ) );
		}

		return $links;
	}
}
plugin-fw/LICENSE.txt000064400000106307151327614470010320 0ustar00YITH Plugin Framework

Copyright 2015-2021 Your Inspiration Solutions (email : plugins@yithemes.com)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

YITH Plugin Framework is released under the GPL

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright © <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright © <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/philosophy/why-not-lgpl.html>.plugin-fw/includes/class-yit-icons.php000064400000105313151327614470014031 0ustar00<?php
/**
 * YITH Icons Class.
 *
 * @class       YIT_Icons
 * @package     YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Icons' ) ) {
	/**
	 * YIT_Icons class.
	 *
	 * @author      Leanza Francesco <leanzafrancesco@gmail.com>
	 */
	class YIT_Icons {

		/**
		 * The single instance of the class.
		 *
		 * @var YIT_Icons
		 */
		private static $instance;

		/**
		 * Array of data
		 *
		 * @var array
		 */
		private $data
			= array(
				'font_awesome_version' => '4.6.3',
				'icons'                => array(
					'FontAwesome' => array(
						'\f000' => 'glass',
						'\f001' => 'music',
						'\f002' => 'search',
						'\f003' => 'envelope-o',
						'\f004' => 'heart',
						'\f005' => 'star',
						'\f006' => 'star-o',
						'\f007' => 'user',
						'\f008' => 'film',
						'\f009' => 'th-large',
						'\f00a' => 'th',
						'\f00b' => 'th-list',
						'\f00c' => 'check',
						'\f00d' => 'times',
						'\f00e' => 'search-plus',
						'\f010' => 'search-minus',
						'\f011' => 'power-off',
						'\f012' => 'signal',
						'\f013' => 'cog',
						'\f014' => 'trash-o',
						'\f015' => 'home',
						'\f016' => 'file-o',
						'\f017' => 'clock-o',
						'\f018' => 'road',
						'\f019' => 'download',
						'\f01a' => 'arrow-circle-o-down',
						'\f01b' => 'arrow-circle-o-up',
						'\f01c' => 'inbox',
						'\f01d' => 'play-circle-o',
						'\f01e' => 'repeat',
						'\f021' => 'refresh',
						'\f022' => 'list-alt',
						'\f023' => 'lock',
						'\f024' => 'flag',
						'\f025' => 'headphones',
						'\f026' => 'volume-off',
						'\f027' => 'volume-down',
						'\f028' => 'volume-up',
						'\f029' => 'qrcode',
						'\f02a' => 'barcode',
						'\f02b' => 'tag',
						'\f02c' => 'tags',
						'\f02d' => 'book',
						'\f02e' => 'bookmark',
						'\f02f' => 'print',
						'\f030' => 'camera',
						'\f031' => 'font',
						'\f032' => 'bold',
						'\f033' => 'italic',
						'\f034' => 'text-height',
						'\f035' => 'text-width',
						'\f036' => 'align-left',
						'\f037' => 'align-center',
						'\f038' => 'align-right',
						'\f039' => 'align-justify',
						'\f03a' => 'list',
						'\f03b' => 'outdent',
						'\f03c' => 'indent',
						'\f03d' => 'video-camera',
						'\f03e' => 'picture-o',
						'\f040' => 'pencil',
						'\f041' => 'map-marker',
						'\f042' => 'adjust',
						'\f043' => 'tint',
						'\f044' => 'pencil-square-o',
						'\f045' => 'share-square-o',
						'\f046' => 'check-square-o',
						'\f047' => 'arrows',
						'\f048' => 'step-backward',
						'\f049' => 'fast-backward',
						'\f04a' => 'backward',
						'\f04b' => 'play',
						'\f04c' => 'pause',
						'\f04d' => 'stop',
						'\f04e' => 'forward',
						'\f050' => 'fast-forward',
						'\f051' => 'step-forward',
						'\f052' => 'eject',
						'\f053' => 'chevron-left',
						'\f054' => 'chevron-right',
						'\f055' => 'plus-circle',
						'\f056' => 'minus-circle',
						'\f057' => 'times-circle',
						'\f058' => 'check-circle',
						'\f059' => 'question-circle',
						'\f05a' => 'info-circle',
						'\f05b' => 'crosshairs',
						'\f05c' => 'times-circle-o',
						'\f05d' => 'check-circle-o',
						'\f05e' => 'ban',
						'\f060' => 'arrow-left',
						'\f061' => 'arrow-right',
						'\f062' => 'arrow-up',
						'\f063' => 'arrow-down',
						'\f064' => 'share',
						'\f065' => 'expand',
						'\f066' => 'compress',
						'\f067' => 'plus',
						'\f068' => 'minus',
						'\f069' => 'asterisk',
						'\f06a' => 'exclamation-circle',
						'\f06b' => 'gift',
						'\f06c' => 'leaf',
						'\f06d' => 'fire',
						'\f06e' => 'eye',
						'\f070' => 'eye-slash',
						'\f071' => 'exclamation-triangle',
						'\f072' => 'plane',
						'\f073' => 'calendar',
						'\f074' => 'random',
						'\f075' => 'comment',
						'\f076' => 'magnet',
						'\f077' => 'chevron-up',
						'\f078' => 'chevron-down',
						'\f079' => 'retweet',
						'\f07a' => 'shopping-cart',
						'\f07b' => 'folder',
						'\f07c' => 'folder-open',
						'\f07d' => 'arrows-v',
						'\f07e' => 'arrows-h',
						'\f080' => 'bar-chart',
						'\f081' => 'twitter-square',
						'\f082' => 'facebook-square',
						'\f083' => 'camera-retro',
						'\f084' => 'key',
						'\f085' => 'cogs',
						'\f086' => 'comments',
						'\f087' => 'thumbs-o-up',
						'\f088' => 'thumbs-o-down',
						'\f089' => 'star-half',
						'\f08a' => 'heart-o',
						'\f08b' => 'sign-out',
						'\f08c' => 'linkedin-square',
						'\f08d' => 'thumb-tack',
						'\f08e' => 'external-link',
						'\f090' => 'sign-in',
						'\f091' => 'trophy',
						'\f092' => 'github-square',
						'\f093' => 'upload',
						'\f094' => 'lemon-o',
						'\f095' => 'phone',
						'\f096' => 'square-o',
						'\f097' => 'bookmark-o',
						'\f098' => 'phone-square',
						'\f099' => 'twitter',
						'\f09a' => 'facebook',
						'\f09b' => 'github',
						'\f09c' => 'unlock',
						'\f09d' => 'credit-card',
						'\f09e' => 'rss',
						'\f0a0' => 'hdd-o',
						'\f0a1' => 'bullhorn',
						'\f0a2' => 'bell-o',
						'\f0a3' => 'certificate',
						'\f0a4' => 'hand-o-right',
						'\f0a5' => 'hand-o-left',
						'\f0a6' => 'hand-o-up',
						'\f0a7' => 'hand-o-down',
						'\f0a8' => 'arrow-circle-left',
						'\f0a9' => 'arrow-circle-right',
						'\f0aa' => 'arrow-circle-up',
						'\f0ab' => 'arrow-circle-down',
						'\f0ac' => 'globe',
						'\f0ad' => 'wrench',
						'\f0ae' => 'tasks',
						'\f0b0' => 'filter',
						'\f0b1' => 'briefcase',
						'\f0b2' => 'arrows-alt',
						'\f0c0' => 'users',
						'\f0c1' => 'link',
						'\f0c2' => 'cloud',
						'\f0c3' => 'flask',
						'\f0c4' => 'scissors',
						'\f0c5' => 'files-o',
						'\f0c6' => 'paperclip',
						'\f0c7' => 'floppy-o',
						'\f0c8' => 'square',
						'\f0c9' => 'bars',
						'\f0ca' => 'list-ul',
						'\f0cb' => 'list-ol',
						'\f0cc' => 'strikethrough',
						'\f0cd' => 'underline',
						'\f0ce' => 'table',
						'\f0d0' => 'magic',
						'\f0d1' => 'truck',
						'\f0d2' => 'pinterest',
						'\f0d3' => 'pinterest-square',
						'\f0d4' => 'google-plus-square',
						'\f0d5' => 'google-plus',
						'\f0d6' => 'money',
						'\f0d7' => 'caret-down',
						'\f0d8' => 'caret-up',
						'\f0d9' => 'caret-left',
						'\f0da' => 'caret-right',
						'\f0db' => 'columns',
						'\f0dc' => 'sort',
						'\f0dd' => 'sort-desc',
						'\f0de' => 'sort-asc',
						'\f0e0' => 'envelope',
						'\f0e1' => 'linkedin',
						'\f0e2' => 'undo',
						'\f0e3' => 'gavel',
						'\f0e4' => 'tachometer',
						'\f0e5' => 'comment-o',
						'\f0e6' => 'comments-o',
						'\f0e7' => 'bolt',
						'\f0e8' => 'sitemap',
						'\f0e9' => 'umbrella',
						'\f0ea' => 'clipboard',
						'\f0eb' => 'lightbulb-o',
						'\f0ec' => 'exchange',
						'\f0ed' => 'cloud-download',
						'\f0ee' => 'cloud-upload',
						'\f0f0' => 'user-md',
						'\f0f1' => 'stethoscope',
						'\f0f2' => 'suitcase',
						'\f0f3' => 'bell',
						'\f0f4' => 'coffee',
						'\f0f5' => 'cutlery',
						'\f0f6' => 'file-text-o',
						'\f0f7' => 'building-o',
						'\f0f8' => 'hospital-o',
						'\f0f9' => 'ambulance',
						'\f0fa' => 'medkit',
						'\f0fb' => 'fighter-jet',
						'\f0fc' => 'beer',
						'\f0fd' => 'h-square',
						'\f0fe' => 'plus-square',
						'\f100' => 'angle-double-left',
						'\f101' => 'angle-double-right',
						'\f102' => 'angle-double-up',
						'\f103' => 'angle-double-down',
						'\f104' => 'angle-left',
						'\f105' => 'angle-right',
						'\f106' => 'angle-up',
						'\f107' => 'angle-down',
						'\f108' => 'desktop',
						'\f109' => 'laptop',
						'\f10a' => 'tablet',
						'\f10b' => 'mobile',
						'\f10c' => 'circle-o',
						'\f10d' => 'quote-left',
						'\f10e' => 'quote-right',
						'\f110' => 'spinner',
						'\f111' => 'circle',
						'\f112' => 'reply',
						'\f113' => 'github-alt',
						'\f114' => 'folder-o',
						'\f115' => 'folder-open-o',
						'\f118' => 'smile-o',
						'\f119' => 'frown-o',
						'\f11a' => 'meh-o',
						'\f11b' => 'gamepad',
						'\f11c' => 'keyboard-o',
						'\f11d' => 'flag-o',
						'\f11e' => 'flag-checkered',
						'\f120' => 'terminal',
						'\f121' => 'code',
						'\f122' => 'reply-all',
						'\f123' => 'star-half-o',
						'\f124' => 'location-arrow',
						'\f125' => 'crop',
						'\f126' => 'code-fork',
						'\f127' => 'chain-broken',
						'\f128' => 'question',
						'\f129' => 'info',
						'\f12a' => 'exclamation',
						'\f12b' => 'superscript',
						'\f12c' => 'subscript',
						'\f12d' => 'eraser',
						'\f12e' => 'puzzle-piece',
						'\f130' => 'microphone',
						'\f131' => 'microphone-slash',
						'\f132' => 'shield',
						'\f133' => 'calendar-o',
						'\f134' => 'fire-extinguisher',
						'\f135' => 'rocket',
						'\f136' => 'maxcdn',
						'\f137' => 'chevron-circle-left',
						'\f138' => 'chevron-circle-right',
						'\f139' => 'chevron-circle-up',
						'\f13a' => 'chevron-circle-down',
						'\f13b' => 'html5',
						'\f13c' => 'css3',
						'\f13d' => 'anchor',
						'\f13e' => 'unlock-alt',
						'\f140' => 'bullseye',
						'\f141' => 'ellipsis-h',
						'\f142' => 'ellipsis-v',
						'\f143' => 'rss-square',
						'\f144' => 'play-circle',
						'\f145' => 'ticket',
						'\f146' => 'minus-square',
						'\f147' => 'minus-square-o',
						'\f148' => 'level-up',
						'\f149' => 'level-down',
						'\f14a' => 'check-square',
						'\f14b' => 'pencil-square',
						'\f14c' => 'external-link-square',
						'\f14d' => 'share-square',
						'\f14e' => 'compass',
						'\f150' => 'caret-square-o-down',
						'\f151' => 'caret-square-o-up',
						'\f152' => 'caret-square-o-right',
						'\f153' => 'eur',
						'\f154' => 'gbp',
						'\f155' => 'usd',
						'\f156' => 'inr',
						'\f157' => 'jpy',
						'\f158' => 'rub',
						'\f159' => 'krw',
						'\f15a' => 'btc',
						'\f15b' => 'file',
						'\f15c' => 'file-text',
						'\f15d' => 'sort-alpha-asc',
						'\f15e' => 'sort-alpha-desc',
						'\f160' => 'sort-amount-asc',
						'\f161' => 'sort-amount-desc',
						'\f162' => 'sort-numeric-asc',
						'\f163' => 'sort-numeric-desc',
						'\f164' => 'thumbs-up',
						'\f165' => 'thumbs-down',
						'\f166' => 'youtube-square',
						'\f167' => 'youtube',
						'\f168' => 'xing',
						'\f169' => 'xing-square',
						'\f16a' => 'youtube-play',
						'\f16b' => 'dropbox',
						'\f16c' => 'stack-overflow',
						'\f16d' => 'instagram',
						'\f16e' => 'flickr',
						'\f170' => 'adn',
						'\f171' => 'bitbucket',
						'\f172' => 'bitbucket-square',
						'\f173' => 'tumblr',
						'\f174' => 'tumblr-square',
						'\f175' => 'long-arrow-down',
						'\f176' => 'long-arrow-up',
						'\f177' => 'long-arrow-left',
						'\f178' => 'long-arrow-right',
						'\f179' => 'apple',
						'\f17a' => 'windows',
						'\f17b' => 'android',
						'\f17c' => 'linux',
						'\f17d' => 'dribbble',
						'\f17e' => 'skype',
						'\f180' => 'foursquare',
						'\f181' => 'trello',
						'\f182' => 'female',
						'\f183' => 'male',
						'\f184' => 'gratipay',
						'\f185' => 'sun-o',
						'\f186' => 'moon-o',
						'\f187' => 'archive',
						'\f188' => 'bug',
						'\f189' => 'vk',
						'\f18a' => 'weibo',
						'\f18b' => 'renren',
						'\f18c' => 'pagelines',
						'\f18d' => 'stack-exchange',
						'\f18e' => 'arrow-circle-o-right',
						'\f190' => 'arrow-circle-o-left',
						'\f191' => 'caret-square-o-left',
						'\f192' => 'dot-circle-o',
						'\f193' => 'wheelchair',
						'\f194' => 'vimeo-square',
						'\f195' => 'try',
						'\f196' => 'plus-square-o',
						'\f197' => 'space-shuttle',
						'\f198' => 'slack',
						'\f199' => 'envelope-square',
						'\f19a' => 'wordpress',
						'\f19b' => 'openid',
						'\f19c' => 'university',
						'\f19d' => 'graduation-cap',
						'\f19e' => 'yahoo',
						'\f1a0' => 'google',
						'\f1a1' => 'reddit',
						'\f1a2' => 'reddit-square',
						'\f1a3' => 'stumbleupon-circle',
						'\f1a4' => 'stumbleupon',
						'\f1a5' => 'delicious',
						'\f1a6' => 'digg',
						'\f1a7' => 'pied-piper-pp',
						'\f1a8' => 'pied-piper-alt',
						'\f1a9' => 'drupal',
						'\f1aa' => 'joomla',
						'\f1ab' => 'language',
						'\f1ac' => 'fax',
						'\f1ad' => 'building',
						'\f1ae' => 'child',
						'\f1b0' => 'paw',
						'\f1b1' => 'spoon',
						'\f1b2' => 'cube',
						'\f1b3' => 'cubes',
						'\f1b4' => 'behance',
						'\f1b5' => 'behance-square',
						'\f1b6' => 'steam',
						'\f1b7' => 'steam-square',
						'\f1b8' => 'recycle',
						'\f1b9' => 'car',
						'\f1ba' => 'taxi',
						'\f1bb' => 'tree',
						'\f1bc' => 'spotify',
						'\f1bd' => 'deviantart',
						'\f1be' => 'soundcloud',
						'\f1c0' => 'database',
						'\f1c1' => 'file-pdf-o',
						'\f1c2' => 'file-word-o',
						'\f1c3' => 'file-excel-o',
						'\f1c4' => 'file-powerpoint-o',
						'\f1c5' => 'file-image-o',
						'\f1c6' => 'file-archive-o',
						'\f1c7' => 'file-audio-o',
						'\f1c8' => 'file-video-o',
						'\f1c9' => 'file-code-o',
						'\f1ca' => 'vine',
						'\f1cb' => 'codepen',
						'\f1cc' => 'jsfiddle',
						'\f1cd' => 'life-ring',
						'\f1ce' => 'circle-o-notch',
						'\f1d0' => 'rebel',
						'\f1d1' => 'empire',
						'\f1d2' => 'git-square',
						'\f1d3' => 'git',
						'\f1d4' => 'hacker-news',
						'\f1d5' => 'tencent-weibo',
						'\f1d6' => 'qq',
						'\f1d7' => 'weixin',
						'\f1d8' => 'paper-plane',
						'\f1d9' => 'paper-plane-o',
						'\f1da' => 'history',
						'\f1db' => 'circle-thin',
						'\f1dc' => 'header',
						'\f1dd' => 'paragraph',
						'\f1de' => 'sliders',
						'\f1e0' => 'share-alt',
						'\f1e1' => 'share-alt-square',
						'\f1e2' => 'bomb',
						'\f1e3' => 'futbol-o',
						'\f1e4' => 'tty',
						'\f1e5' => 'binoculars',
						'\f1e6' => 'plug',
						'\f1e7' => 'slideshare',
						'\f1e8' => 'twitch',
						'\f1e9' => 'yelp',
						'\f1ea' => 'newspaper-o',
						'\f1eb' => 'wifi',
						'\f1ec' => 'calculator',
						'\f1ed' => 'paypal',
						'\f1ee' => 'google-wallet',
						'\f1f0' => 'cc-visa',
						'\f1f1' => 'cc-mastercard',
						'\f1f2' => 'cc-discover',
						'\f1f3' => 'cc-amex',
						'\f1f4' => 'cc-paypal',
						'\f1f5' => 'cc-stripe',
						'\f1f6' => 'bell-slash',
						'\f1f7' => 'bell-slash-o',
						'\f1f8' => 'trash',
						'\f1f9' => 'copyright',
						'\f1fa' => 'at',
						'\f1fb' => 'eyedropper',
						'\f1fc' => 'paint-brush',
						'\f1fd' => 'birthday-cake',
						'\f1fe' => 'area-chart',
						'\f200' => 'pie-chart',
						'\f201' => 'line-chart',
						'\f202' => 'lastfm',
						'\f203' => 'lastfm-square',
						'\f204' => 'toggle-off',
						'\f205' => 'toggle-on',
						'\f206' => 'bicycle',
						'\f207' => 'bus',
						'\f208' => 'ioxhost',
						'\f209' => 'angellist',
						'\f20a' => 'cc',
						'\f20b' => 'ils',
						'\f20c' => 'meanpath',
						'\f20d' => 'buysellads',
						'\f20e' => 'connectdevelop',
						'\f210' => 'dashcube',
						'\f211' => 'forumbee',
						'\f212' => 'leanpub',
						'\f213' => 'sellsy',
						'\f214' => 'shirtsinbulk',
						'\f215' => 'simplybuilt',
						'\f216' => 'skyatlas',
						'\f217' => 'cart-plus',
						'\f218' => 'cart-arrow-down',
						'\f219' => 'diamond',
						'\f21a' => 'ship',
						'\f21b' => 'user-secret',
						'\f21c' => 'motorcycle',
						'\f21d' => 'street-view',
						'\f21e' => 'heartbeat',
						'\f221' => 'venus',
						'\f222' => 'mars',
						'\f223' => 'mercury',
						'\f224' => 'transgender',
						'\f225' => 'transgender-alt',
						'\f226' => 'venus-double',
						'\f227' => 'mars-double',
						'\f228' => 'venus-mars',
						'\f229' => 'mars-stroke',
						'\f22a' => 'mars-stroke-v',
						'\f22b' => 'mars-stroke-h',
						'\f22c' => 'neuter',
						'\f22d' => 'genderless',
						'\f230' => 'facebook-official',
						'\f231' => 'pinterest-p',
						'\f232' => 'whatsapp',
						'\f233' => 'server',
						'\f234' => 'user-plus',
						'\f235' => 'user-times',
						'\f236' => 'bed',
						'\f237' => 'viacoin',
						'\f238' => 'train',
						'\f239' => 'subway',
						'\f23a' => 'medium',
						'\f23b' => 'y-combinator',
						'\f23c' => 'optin-monster',
						'\f23d' => 'opencart',
						'\f23e' => 'expeditedssl',
						'\f240' => 'battery-full',
						'\f241' => 'battery-three-quarters',
						'\f242' => 'battery-half',
						'\f243' => 'battery-quarter',
						'\f244' => 'battery-empty',
						'\f245' => 'mouse-pointer',
						'\f246' => 'i-cursor',
						'\f247' => 'object-group',
						'\f248' => 'object-ungroup',
						'\f249' => 'sticky-note',
						'\f24a' => 'sticky-note-o',
						'\f24b' => 'cc-jcb',
						'\f24c' => 'cc-diners-club',
						'\f24d' => 'clone',
						'\f24e' => 'balance-scale',
						'\f250' => 'hourglass-o',
						'\f251' => 'hourglass-start',
						'\f252' => 'hourglass-half',
						'\f253' => 'hourglass-end',
						'\f254' => 'hourglass',
						'\f255' => 'hand-rock-o',
						'\f256' => 'hand-paper-o',
						'\f257' => 'hand-scissors-o',
						'\f258' => 'hand-lizard-o',
						'\f259' => 'hand-spock-o',
						'\f25a' => 'hand-pointer-o',
						'\f25b' => 'hand-peace-o',
						'\f25c' => 'trademark',
						'\f25d' => 'registered',
						'\f25e' => 'creative-commons',
						'\f260' => 'gg',
						'\f261' => 'gg-circle',
						'\f262' => 'tripadvisor',
						'\f263' => 'odnoklassniki',
						'\f264' => 'odnoklassniki-square',
						'\f265' => 'get-pocket',
						'\f266' => 'wikipedia-w',
						'\f267' => 'safari',
						'\f268' => 'chrome',
						'\f269' => 'firefox',
						'\f26a' => 'opera',
						'\f26b' => 'internet-explorer',
						'\f26c' => 'television',
						'\f26d' => 'contao',
						'\f26e' => '500px',
						'\f270' => 'amazon',
						'\f271' => 'calendar-plus-o',
						'\f272' => 'calendar-minus-o',
						'\f273' => 'calendar-times-o',
						'\f274' => 'calendar-check-o',
						'\f275' => 'industry',
						'\f276' => 'map-pin',
						'\f277' => 'map-signs',
						'\f278' => 'map-o',
						'\f279' => 'map',
						'\f27a' => 'commenting',
						'\f27b' => 'commenting-o',
						'\f27c' => 'houzz',
						'\f27d' => 'vimeo',
						'\f27e' => 'black-tie',
						'\f280' => 'fonticons',
						'\f281' => 'reddit-alien',
						'\f282' => 'edge',
						'\f283' => 'credit-card-alt',
						'\f284' => 'codiepie',
						'\f285' => 'modx',
						'\f286' => 'fort-awesome',
						'\f287' => 'usb',
						'\f288' => 'product-hunt',
						'\f289' => 'mixcloud',
						'\f28a' => 'scribd',
						'\f28b' => 'pause-circle',
						'\f28c' => 'pause-circle-o',
						'\f28d' => 'stop-circle',
						'\f28e' => 'stop-circle-o',
						'\f290' => 'shopping-bag',
						'\f291' => 'shopping-basket',
						'\f292' => 'hashtag',
						'\f293' => 'bluetooth',
						'\f294' => 'bluetooth-b',
						'\f295' => 'percent',
						'\f296' => 'gitlab',
						'\f297' => 'wpbeginner',
						'\f298' => 'wpforms',
						'\f299' => 'envira',
						'\f29a' => 'universal-access',
						'\f29b' => 'wheelchair-alt',
						'\f29c' => 'question-circle-o',
						'\f29d' => 'blind',
						'\f29e' => 'audio-description',
						'\f2a0' => 'volume-control-phone',
						'\f2a1' => 'braille',
						'\f2a2' => 'assistive-listening-systems',
						'\f2a3' => 'american-sign-language-interpreting',
						'\f2a4' => 'deaf',
						'\f2a5' => 'glide',
						'\f2a6' => 'glide-g',
						'\f2a7' => 'sign-language',
						'\f2a8' => 'low-vision',
						'\f2a9' => 'viadeo',
						'\f2aa' => 'viadeo-square',
						'\f2ab' => 'snapchat',
						'\f2ac' => 'snapchat-ghost',
						'\f2ad' => 'snapchat-square',
						'\f2ae' => 'pied-piper',
						'\f2b0' => 'first-order',
						'\f2b1' => 'yoast',
						'\f2b2' => 'themeisle',
						'\f2b3' => 'google-plus-official',
						'\f2b4' => 'font-awesome',
					),
					'Dashicons'   => array(
						'\f100' => 'admin-appearance',
						'\f101' => 'admin-comments',
						'\f102' => 'admin-home',
						'\f104' => 'admin-media',
						'\f105' => 'admin-page',
						'\f106' => 'admin-plugins',
						'\f107' => 'admin-tools',
						'\f108' => 'admin-settings',
						'\f110' => 'admin-users',
						'\f111' => 'admin-generic',
						'\f112' => 'admin-network',
						'\f115' => 'welcome-view-site',
						'\f116' => 'welcome-widgets-menus',
						'\f117' => 'welcome-comments',
						'\f118' => 'welcome-learn-more',
						'\f120' => 'wordpress',
						'\f122' => 'format-quote',
						'\f123' => 'format-aside',
						'\f125' => 'format-chat',
						'\f126' => 'format-video',
						'\f127' => 'format-audio',
						'\f128' => 'format-image',
						'\f130' => 'format-status',
						'\f132' => 'plus',
						'\f133' => 'welcome-add-page',
						'\f134' => 'align-center',
						'\f135' => 'align-left',
						'\f136' => 'align-right',
						'\f138' => 'align-none',
						'\f139' => 'arrow-right',
						'\f140' => 'arrow-down',
						'\f141' => 'arrow-left',
						'\f142' => 'arrow-up',
						'\f145' => 'calendar',
						'\f147' => 'yes',
						'\f148' => 'admin-collapse',
						'\f153' => 'dismiss',
						'\f154' => 'star-empty',
						'\f155' => 'star-filled',
						'\f156' => 'sort',
						'\f157' => 'pressthis',
						'\f158' => 'no',
						'\f159' => 'marker',
						'\f160' => 'lock',
						'\f161' => 'format-gallery',
						'\f163' => 'list-view',
						'\f165' => 'image-crop',
						'\f166' => 'image-rotate-left',
						'\f167' => 'image-rotate-right',
						'\f168' => 'image-flip-vertical',
						'\f169' => 'image-flip-horizontal',
						'\f171' => 'undo',
						'\f172' => 'redo',
						'\f173' => 'post-status',
						'\f174' => 'cart',
						'\f175' => 'feedback',
						'\f176' => 'cloud',
						'\f177' => 'visibility',
						'\f178' => 'vault',
						'\f179' => 'search',
						'\f180' => 'screenoptions',
						'\f181' => 'slides',
						'\f183' => 'analytics',
						'\f184' => 'chart-pie',
						'\f185' => 'chart-bar',
						'\f200' => 'editor-bold',
						'\f201' => 'editor-italic',
						'\f203' => 'editor-ul',
						'\f204' => 'editor-ol',
						'\f205' => 'editor-quote',
						'\f206' => 'editor-alignleft',
						'\f207' => 'editor-aligncenter',
						'\f208' => 'editor-alignright',
						'\f209' => 'editor-insertmore',
						'\f210' => 'editor-spellcheck',
						'\f212' => 'editor-kitchensink',
						'\f213' => 'editor-underline',
						'\f214' => 'editor-justify',
						'\f215' => 'editor-textcolor',
						'\f216' => 'editor-paste-word',
						'\f217' => 'editor-paste-text',
						'\f218' => 'editor-removeformatting',
						'\f219' => 'editor-video',
						'\f220' => 'editor-customchar',
						'\f221' => 'editor-outdent',
						'\f222' => 'editor-indent',
						'\f223' => 'editor-help',
						'\f224' => 'editor-strikethrough',
						'\f225' => 'editor-unlink',
						'\f226' => 'dashboard',
						'\f227' => 'flag',
						'\f229' => 'leftright',
						'\f230' => 'location',
						'\f231' => 'location-alt',
						'\f232' => 'images-alt',
						'\f233' => 'images-alt2',
						'\f234' => 'video-alt',
						'\f235' => 'video-alt2',
						'\f236' => 'video-alt3',
						'\f237' => 'share1',
						'\f238' => 'chart-line',
						'\f239' => 'chart-area',
						'\f240' => 'share-alt',
						'\f242' => 'share-alt2',
						'\f301' => 'twitter',
						'\f303' => 'rss',
						'\f304' => 'facebook',
						'\f305' => 'facebook-alt',
						'\f306' => 'camera',
						'\f307' => 'groups',
						'\f308' => 'hammer',
						'\f309' => 'art',
						'\f310' => 'migrate',
						'\f311' => 'performance',
						'\f312' => 'products',
						'\f313' => 'awards',
						'\f314' => 'forms',
						'\f316' => 'download',
						'\f317' => 'upload',
						'\f318' => 'category',
						'\f319' => 'admin-site',
						'\f320' => 'editor-rtl',
						'\f321' => 'backup',
						'\f322' => 'portfolio',
						'\f323' => 'tag',
						'\f324' => 'wordpress-alt',
						'\f325' => 'networking',
						'\f326' => 'translation',
						'\f328' => 'smiley',
						'\f330' => 'book',
						'\f331' => 'book-alt',
						'\f332' => 'shield',
						'\f333' => 'menu',
						'\f334' => 'shield-alt',
						'\f335' => 'no-alt',
						'\f336' => 'id',
						'\f337' => 'id-alt',
						'\f338' => 'businessman',
						'\f339' => 'lightbulb',
						'\f340' => 'arrow-left-alt',
						'\f341' => 'arrow-left-alt2',
						'\f342' => 'arrow-up-alt',
						'\f343' => 'arrow-up-alt2',
						'\f344' => 'arrow-right-alt',
						'\f345' => 'arrow-right-alt2',
						'\f346' => 'arrow-down-alt',
						'\f347' => 'arrow-down-alt2',
						'\f348' => 'info',
						'\f459' => 'star-half',
						'\f460' => 'minus',
						'\f462' => 'googleplus',
						'\f463' => 'update',
						'\f464' => 'edit',
						'\f465' => 'email',
						'\f466' => 'email-alt',
						'\f468' => 'sos',
						'\f469' => 'clock',
						'\f470' => 'smartphone',
						'\f471' => 'tablet',
						'\f472' => 'desktop',
						'\f473' => 'testimonial',
						'\f474' => 'editor-break',
						'\f475' => 'editor-code',
						'\f476' => 'editor-paragraph',
						'\f478' => 'text',
						'\f479' => 'tagcloud',
						'\f480' => 'archive',
						'\f481' => 'clipboard',
						'\f482' => 'microphone',
						'\f483' => 'universal-access',
						'\f484' => 'nametag',
						'\f486' => 'tickets',
						'\f487' => 'heart',
						'\f488' => 'megaphone',
						'\f489' => 'schedule',
						'\f490' => 'media-video',
						'\f491' => 'media-text',
						'\f492' => 'playlist-audio',
						'\f493' => 'playlist-video',
						'\f495' => 'media-spreadsheet',
						'\f496' => 'media-interactive',
						'\f497' => 'media-document',
						'\f498' => 'media-default',
						'\f499' => 'media-code',
						'\f500' => 'media-audio',
						'\f501' => 'media-archive',
						'\f502' => 'plus-alt',
						'\f503' => 'randomize',
						'\f504' => 'external',
						'\f506' => 'editor-contract',
						'\f507' => 'universal-access-alt',
						'\f508' => 'calendar-alt',
						'\f509' => 'grid-view',
						'\f510' => 'index-card',
						'\f511' => 'carrot',
						'\f512' => 'building',
						'\f513' => 'store',
						'\f514' => 'album',
						'\f515' => 'controls-repeat',
						'\f516' => 'controls-skipback',
						'\f517' => 'controls-skipforward',
						'\f518' => 'controls-back',
						'\f519' => 'controls-forward',
						'\f520' => 'controls-volumeoff',
						'\f521' => 'controls-volumeon',
						'\f522' => 'controls-play',
						'\f523' => 'controls-pause',
						'\f524' => 'tickets-alt',
						'\f525' => 'phone',
						'\f526' => 'money',
						'\f527' => 'palmtree',
						'\f528' => 'unlock',
						'\f529' => 'thumbs-up',
						'\f530' => 'hidden',
						'\f531' => 'image-rotate',
						'\f533' => 'image-filter',
						'\f534' => 'warning',
						'\f535' => 'editor-table',
						'\f536' => 'filter',
						'\f537' => 'sticky',
						'\f538' => 'layout',
						'\f540' => 'admin-customizer',
						'\f541' => 'admin-multisite',
						'\f542' => 'thumbs-down',
						'\f543' => 'plus-alt2',
						'\f545' => 'move',
						'\f546' => 'paperclip',
						'\f547' => 'laptop',
					),
				),
			);


		/**
		 * Singleton implementation.
		 *
		 * @return YIT_Icons
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * Deprecated singleton implementation.
		 * Kept for backward compatibility.
		 *
		 * @return YIT_Icons
		 * @deprecated 3.5 | use YIT_Icons::get_instance() instead.
		 */
		public static function get_instance() {
			return self::instance();
		}

		/**
		 * YIT_Icons constructor.
		 */
		private function __construct() {
			add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 99 );
			add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 99 );
		}

		/**
		 * __get function.
		 *
		 * @param string $key The key.
		 *
		 * @return mixed
		 */
		public function __get( $key ) {
			$value = isset( $this->data[ $key ] ) ? $this->data[ $key ] : false;

			return $value;
		}

		/**
		 * __isset function.
		 *
		 * @param string $key The key.
		 *
		 * @return bool
		 */
		public function __isset( $key ) {
			return isset( $this->data[ $key ] );
		}

		/**
		 * Get the icons.
		 *
		 * @param string $filter_suffix The filter suffix.
		 *
		 * @return false|mixed|void
		 */
		public function get_icons( $filter_suffix = '' ) {
			$icons = $this->icons;
			if ( ! empty( $filter_suffix ) ) {
				$icons = apply_filters( 'yith_plugin_fw_icons_field_icons_' . sanitize_key( $filter_suffix ), $icons );
			}

			return $icons;
		}

		/**
		 * Get the icon data
		 *
		 * @param string $icon_string   The icon string.
		 * @param string $filter_suffix The filter suffix.
		 *
		 * @return string
		 */
		public function get_icon_data( $icon_string, $filter_suffix = '' ) {
			return yith_plugin_fw_html_data_to_string( $this->get_icon_data_array( $icon_string, $filter_suffix ) );
		}

		/**
		 * Get the icon data array
		 *
		 * @param string $icon_string   The icon string.
		 * @param string $filter_suffix The filter suffix.
		 *
		 * @return array
		 */
		public function get_icon_data_array( $icon_string, $filter_suffix = '' ) {
			$icon_data = array();
			if ( $icon_string ) {
				$icon_array = explode( ':', $icon_string );

				if ( count( $icon_array ) < 2 ) {
					return $icon_data;
				}

				$font_name = $icon_array[0];
				$icon_name = $icon_array[1];

				$icons = $this->get_icons( $filter_suffix );
				if ( array_key_exists( $font_name, $icons ) ) {
					$icon_key  = array_search( $icon_name, $icons[ $font_name ], true );
					$icon_code = '&#x' . str_replace( '\\', '', $icon_key );
					$icon_data = array(
						'font' => $font_name,
						'name' => $icon_name,
						'key'  => $icon_key,
						'icon' => $icon_code,
					);
				}
			}

			return $icon_data;
		}

		/**
		 * Retrieves the font awesome array
		 * the first time retrieves the array by the Font Awesome CSS
		 * [utility method]
		 *
		 * @return array
		 */
		private function get_font_awesome_array() {
			$font_awesome_list    = get_option( 'yit_font_awesome_list', array() );
			$font_awesome_version = $this->font_awesome_version;

			$font_awesome_array = array();

			if ( ! empty( $font_awesome_list[ $font_awesome_version ] ) ) {
				$font_awesome_array = $font_awesome_list[ $font_awesome_version ];
			} else {
				// Retrieve the array by the CSS file.
				$font_awesome_uri = "https://maxcdn.bootstrapcdn.com/font-awesome/{$font_awesome_version}/css/font-awesome.min.css";
				$pattern          = '/\.(fa-(?:\w+(?:-)?)+):before{content:"\\\\(....)"}/';

				$response = wp_remote_get( $font_awesome_uri );

				if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
					$body = $response['body'];

					preg_match_all( $pattern, $body, $matches, PREG_SET_ORDER );
					foreach ( $matches as $match ) {
						$font_awesome_array[ $match[2] ] = $match[1];
					}
					ksort( $font_awesome_array );

					$font_awesome_list[ $font_awesome_version ] = $font_awesome_array;
					update_option( 'yit_font_awesome_list', $font_awesome_list );
				}
			}

			return $font_awesome_array;
		}

		/**
		 * Retrieves the Dashicons array
		 * the first time retrieves the array by the Dashicons CSS
		 * [utility method]
		 *
		 * @return array
		 */
		private function get_dashicons_array() {
			$dashicons_list = get_option( 'yit_dashicons_list', array() );

			$dashicons_array = array();
			if ( ! empty( $dashicons_list ) ) {
				$dashicons_array = $dashicons_list;
			} else {
				// Retrieve the array by the CSS file.
				$uri     = 'https://s.w.org/wp-includes/css/dashicons.min.css';
				$pattern = '/\.dashicons-((?:\w+(?:-)?)+):before{content:"\\\\(....)"/';
				$pattern = '/\.dashicons-((?:\w+(?:-)?)+):before.............../';

				$response = wp_remote_get( $uri );

				if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
					$body = $response['body'];

					preg_match_all( $pattern, $body, $matches, PREG_SET_ORDER );

					foreach ( $matches as $match ) {
						$code = str_replace( '.dashicons-' . $match[1] . ':before{content:"\\', '', $match[0] );
						if ( 4 === strlen( $code ) ) {
							$dashicons_array[ $code ] = $match[1];
						}
					}
					ksort( $dashicons_array );
				}
			}

			return $dashicons_array;
		}

		/**
		 * Enqueue Scripts
		 */
		public function enqueue_scripts() {
			wp_register_style( 'font-awesome', "https://maxcdn.bootstrapcdn.com/font-awesome/{$this->font_awesome_version}/css/font-awesome.min.css", array(), $this->font_awesome_version );

			wp_add_inline_style( 'font-awesome', $this->get_inline_style( 'font-awesome' ) );

			wp_add_inline_style( 'dashicons', $this->get_inline_style( 'dashicons' ) );
		}

		/**
		 * Return the icon HTML from icon_string passed
		 *
		 * @param string|array $icon The icon.
		 * @param array        $args Array of arguments (such as html_tag, class, style, filter_suffix).
		 *
		 * @return string
		 */
		public function get_icon( $icon = '', $args = array() ) {
			$icon      = is_array( $icon ) && isset( $icon['icon'] ) ? $icon['icon'] : $icon;
			$icon_html = '';
			if ( $icon ) {
				$default_args = array(
					'html_tag'      => 'span',
					'class'         => '',
					'style'         => '',
					'filter_suffix' => '',
				);
				$args         = wp_parse_args( $args, $default_args );

				// back-ward compatibility: 'filter_icons' argument is deprecated; use 'filter_suffix' instead!
				if ( ! empty( $args['filter_icons'] ) && ! $args['filter_suffix'] ) {
					$args['filter_suffix'] = $args['filter_icons'];
				}

				$html_tag      = $args['html_tag'];
				$class         = $args['class'];
				$style         = $args['style'];
				$filter_suffix = $args['filter_suffix'];

				$icon_data = $this->get_icon_data( $icon, $filter_suffix );

				if ( $icon_data ) {
					$icon_html = "<$html_tag class=\"$class\" style=\"$style\" $icon_data></$html_tag>";
				}
			}

			return $icon_html;
		}

		/**
		 * Get inline style.
		 *
		 * @param string $handle The handle.
		 *
		 * @return string
		 */
		public function get_inline_style( $handle ) {
			$css = '';
			switch ( $handle ) {
				case 'font-awesome':
					$css = '[data-font="FontAwesome"]:before {font-family: \'FontAwesome\' !important;content: attr(data-icon) !important;speak: none !important;font-weight: normal !important;font-variant: normal !important;text-transform: none !important;line-height: 1 !important;font-style: normal !important;-webkit-font-smoothing: antialiased !important;-moz-osx-font-smoothing: grayscale !important;}';
					break;
				case 'dashicons':
					$css = '[data-font="Dashicons"]:before {font-family: \'Dashicons\' !important;content: attr(data-icon) !important;speak: none !important;font-weight: normal !important;font-variant: normal !important;text-transform: none !important;line-height: 1 !important;font-style: normal !important;-webkit-font-smoothing: antialiased !important;-moz-osx-font-smoothing: grayscale !important;}';
			}

			return $css;
		}

		/**
		 * Get inline style
		 * Deprecated for typo
		 *
		 * @param string $handle The handle.
		 *
		 * @return string
		 * @deprecated 3.5 | use YIT_Icons::get_inline_style()
		 */
		public function get_inline_scripts( $handle ) {
			return $this->get_inline_style( $handle );
		}

	}
}
if ( ! function_exists( 'yit_icons' ) ) {
	/**
	 * Return instance of YIT_Icons class.
	 *
	 * @return YIT_Icons
	 */
	function yit_icons() {
		return YIT_Icons::instance();
	}
}

yit_icons();
plugin-fw/includes/class-yit-pointers.php000064400000027733151327614470014572 0ustar00<?php
/**
 * YITH Pointers Class.
 *
 * @class   YIT_Pointers
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Pointers' ) ) {
	/**
	 * YIT_Pointers class.
	 * Initializes the pointers.
	 */
	class YIT_Pointers {

		/**
		 * The single instance of the class.
		 *
		 * @var YIT_Pointers
		 */
		private static $instance;

		/**
		 * The screen IDs.
		 *
		 * @var array
		 */
		public $screen_ids = array();

		/**
		 * The pointers.
		 *
		 * @var array
		 */
		public $pointers = array();

		/**
		 * Special Screen Ids that require a particular action
		 *
		 * @var array|mixed|void
		 */
		public $special_screen = array();

		/**
		 * Default pointers.
		 *
		 * @var array|mixed
		 */
		protected $default_pointer = array();

		/**
		 * The default position
		 *
		 * @var string[]
		 */
		protected $default_position = array(
			'edge'  => 'left',
			'align' => 'center',
		);

		/**
		 * Singleton implementation.
		 *
		 * @return YIT_Pointers
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * Construct
		 *
		 * @author Andrea Grillo <andrea.grillo@yithemes.com>
		 * @since  1.0
		 */
		private function __construct() {

			$title            = __( 'Plugins Activated', 'yith-plugin-fw' );
			$message          = __( 'From now on, you can find all plugin options in YITH menu. Plugin customization settings will be available as a new entry in YITH menu.', 'yith-plugin-fw' );
			$discover_message = sprintf(
			// translators: 1. YITH site link; 2. WordPress site link.
				__( 'Discover all our plugins available on: %1$s and %2$s', 'yith-plugin-fw' ),
				'<a href="https://yithemes.com/product-category/plugins/" target="_blank">yithemes.com</a>',
				'<a href="https://profiles.wordpress.org/yithemes/" target="_blank">Wordpress.org</a>'
			);

			$this->default_pointer['plugins'] = array(
				'screen_id' => 'plugins',
				'options'   => array(
					'content' => "<h3>{$title}</h3><p>{$message}</p><p>{$discover_message}</p>",
				),
			);

			$title            = __( 'Plugins Upgraded', 'yith-plugin-fw' );
			$message          = __( 'From now on, you can find the option panel of YITH plugins in YITH menu. Every time one of our plugins is added, a new entry will be added to this menu. For example, after the update, plugin options (such as for YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from previous location to YITH menu.', 'yith-plugin-fw' );
			$discover_message = sprintf(
			// translators: 1. YITH site link; 2. WordPress site link.
				__( 'Discover all our plugins available on: %1$s and %2$s', 'yith-plugin-fw' ),
				'<a href="https://yithemes.com/product-category/plugins/" target="_blank">yithemes.com</a>',
				'<a href="https://profiles.wordpress.org/yithemes/" target="_blank">Wordpress.org</a>'
			);

			$this->default_pointer['update'] = array(
				'screen_id' => 'update',
				'options'   => array(
					'content' => "<h3>{$title}</h3><p>{$message}</p><p>{$discover_message}</p>",
				),
			);

			$this->default_pointer = $this->parse_args( $this->default_pointer );

			// DEPRECATED 'yit-pointer-special-screen' filter since 3.5 | use yith_plugin_fw_pointers_special_screens instead.
			$this->special_screen = apply_filters( 'yit-pointer-special-screen', array( 'plugins', 'update' ) ); //phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
			$this->special_screen = apply_filters( 'yith_plugin_fw_pointers_special_screens', array( 'plugins', 'update' ) );

			add_action( 'admin_enqueue_scripts', array( $this, 'pointer_load' ) );
			add_action( 'admin_init', array( $this, 'add_pointers' ), 100 );
		}

		/**
		 * Parse args for the default pointer.
		 *
		 * @param array $args The arguments to be parse.
		 *
		 * @return array
		 */
		public function parse_args( $args ) {
			$default = array(
				'pointer_id' => 'yith_default_pointer',
				'target'     => '#toplevel_page_yit_plugin_panel',
				'init'       => null,
			);

			foreach ( $args as $id => $pointer ) {
				$args[ $id ]                        = wp_parse_args( $pointer, $default );
				$args[ $id ]['options']['position'] = $this->default_position;
			}

			return $args;
		}

		/**
		 * Add pointers
		 */
		public function add_pointers() {
			if ( ! empty( $this->screen_ids ) ) {
				foreach ( $this->screen_ids as $screen_id ) {
					add_filter( "yit_pointers-{$screen_id}", array( $this, 'pointers' ) );
				}
			}
		}

		/**
		 * Register pointers.
		 *
		 * @param array $pointers The pointers.
		 */
		public function register( $pointers ) {
			foreach ( $pointers as $id => $pointer ) {
				$pointer_id = isset( $pointer['pointer_id'] ) ? $pointer['pointer_id'] : false;
				$target     = isset( $pointer['target'] ) ? $pointer['target'] : false;
				$content    = isset( $pointer['content'] ) ? $pointer['content'] : false;
				$position   = isset( $pointer['position'] ) ? $pointer['position'] : false;
				$screen_id  = isset( $pointer['screen_id'] ) ? $pointer['screen_id'] : false;
				$init       = isset( $pointer['init'] ) ? $pointer['init'] : false;

				if ( ! $pointer_id || ! $target || ! $content || ! $position || ! $screen_id ) {
					continue;
				}

				if ( ! in_array( $screen_id, $this->screen_ids, true ) ) {
					$this->screen_ids[] = $screen_id;
				}

				$this->pointers[ $screen_id ][ $pointer_id ] = array(
					'target'  => $target,
					'options' => array(
						'content'  => $content,
						'position' => $position,
					),
					'init'    => $init,
				);
			}
		}

		/**
		 * Retrieve the registered pointers array where the keys will be the plugin init(s).
		 *
		 * @param string $screen_id The screen ID.
		 *
		 * @return array
		 */
		public function get_plugins_init( $screen_id ) {

			$registered = array();

			foreach ( $this->pointers[ $screen_id ] as $pointer_id => $pointer ) {
				$registered[ $pointer['init'] ] = $pointer_id;
			}

			return $registered;
		}

		/**
		 * Load the pointer.
		 *
		 * @param bool $deprecated Deprecated param.
		 */
		public function pointer_load( $deprecated = false ) {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			// phpcs:disable WordPress.Security.NonceVerification.Missing

			// Retrieve the pointers for the current screen.
			$screen   = get_current_screen();
			$pointers = apply_filters( "yit_pointers-{$screen->id}", array() ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

			if ( ! $pointers || ! is_array( $pointers ) ) {
				return;
			}

			// Get dismissed pointers.
			$dismissed      = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
			$valid_pointers = array();

			// Show pointers only on plugin activate action.
			if ( in_array( $screen->id, $this->special_screen, true ) ) {
				$show              = false;
				$registered        = $this->get_plugins_init( $screen->id );
				$recently_activate = get_option( 'yit_recently_activated', array() );

				// For "plugins" screen.
				$is_single_activate = isset( $_GET['activate'] ) && 'true' === $_GET['activate'];
				$is_multi_activate  = isset( $_GET['activate-multi'] ) && 'true' === $_GET['activate-multi'];

				/**
				 * For "update" screen
				 * Single plugin update use GET method
				 * Multi update plugins with bulk action send two post args called "action" and "action2"
				 * action refer to first bulk action button (at the top of plugins table)
				 * action2 refer to last bulk action button (at the bottom of plugins table)
				 */
				$is_single_upgrade = isset( $_GET['action'] ) && 'upgrade-plugin' === $_GET['action'];
				$is_multi_upgrade  = ( isset( $_POST['action'] ) && 'update-selected' === $_POST['action'] ) || ( isset( $_POST['action2'] ) && 'update-selected' === $_POST['action2'] );

				if ( $is_single_activate || $is_single_upgrade ) {
					foreach ( $registered as $init => $p_id ) {
						if ( in_array( $init, $recently_activate, true ) ) {
							$point_id = $p_id;
							$pointer  = $pointers[ $point_id ];

							if ( ! ( in_array( $point_id, $dismissed, true ) || empty( $pointer ) || empty( $point_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) ) ) {
								$pointer['pointer_id']        = $point_id;
								$valid_pointers['pointers'][] = $pointer;
								$show                         = true;
							}
							break;
						}
					}
				} elseif ( $is_multi_activate || $is_multi_upgrade ) {
					$point_id  = array();
					$screen_id = $screen->id;

					if ( $is_multi_upgrade && isset( $_POST['checked'] ) && ( count( $_POST['checked'] ) > 0 ) ) {
						$recently_activate = sanitize_file_name( wp_unslash( $_POST['checked'] ) );
						$screen_id         = 'update';
						$pointers          = apply_filters( "yit_pointers-{$screen_id}", array() ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
					}

					foreach ( $registered as $init => $p_id ) {
						if ( in_array( $init, $recently_activate, true ) ) {
							$point_id[] = $p_id;
						}
					}

					/**
					 * Bulk Action: Activate Plugins
					 * count( $point_id ) is the number of YITH plugins that have registered specific pointers
					 * case 0   -> No pointers -> Exit
					 * case 1   -> Only one pointers to show -> Use the specific plugin pointer
					 * default  -> Two or more plugins need to show a pointer -> use a generic pointers
					 */
					switch ( count( $point_id ) ) {
						case 0:
							$show = false;
							break;

						case 1:
							$point_id = array_pop( $point_id );
							$pointer  = $pointers[ $point_id ];
							if ( ! ( in_array( $point_id, $dismissed, true ) || empty( $pointer ) || empty( $point_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) ) ) {
								$pointer['pointer_id']        = $point_id;
								$valid_pointers['pointers'][] = $pointer;
								$show                         = true;
							}
							break;

						default:
							$valid_pointers['pointers'][] = $this->default_pointer[ $screen_id ];
							$show                         = true;
							break;
					}
				}

				update_option( 'yit_recently_activated', array() );

				if ( ! $show ) {
					return;
				}
			} else {
				// Check pointers and remove dismissed ones.
				foreach ( $pointers as $pointer_id => $pointer ) {

					if ( in_array( $pointer_id, $dismissed, true ) || empty( $pointer ) || empty( $pointer_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) ) {
						continue;
					}

					$pointer['pointer_id'] = $pointer_id;

					$valid_pointers['pointers'][] = $pointer;
				}
			}

			if ( empty( $valid_pointers ) ) {
				return;
			}

			$script_file = function_exists( 'yit_load_js_file' ) ? yit_load_js_file( 'yit-wp-pointer.js' ) : 'yit-wp-pointer.min.js';

			// Enqueue pointer scripts and styles.
			wp_enqueue_style( 'wp-pointer' );
			wp_enqueue_script( 'wp-pointer' );

			wp_enqueue_script( 'yit-wp-pointer', YIT_CORE_PLUGIN_URL . '/assets/js/' . $script_file, array( 'wp-pointer' ), yith_plugin_fw_get_version(), true );
			wp_localize_script( 'yit-wp-pointer', 'custom_pointer', $valid_pointers );

			// phpcs:enable
		}

		/**
		 * Filter pointers.
		 *
		 * @param array $pointers The pointers.
		 *
		 * @return array
		 */
		public function pointers( $pointers ) {
			$screen_id       = str_replace( 'yit_pointers-', '', current_filter() );
			$pointers_to_add = $this->get_pointers( $screen_id );

			return ! empty( $pointers_to_add ) ? array_merge( $pointers, $pointers_to_add ) : $pointers;
		}

		/**
		 * Retrieve pointers for the specified screen ID.
		 *
		 * @param string $screen_id The Screen ID.
		 *
		 * @return array|mixed
		 */
		public function get_pointers( $screen_id ) {
			return isset( $this->pointers[ $screen_id ] ) ? $this->pointers[ $screen_id ] : array();
		}
	}
}

if ( ! function_exists( 'YIT_Pointers' ) ) {

	/**
	 * Single instance of YIT_Pointers
	 *
	 * @return YIT_Pointers
	 */
	function YIT_Pointers() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		return YIT_Pointers::instance();
	}
}

YIT_Pointers();
plugin-fw/includes/class-yit-plugin-subpanel.php000064400000012547151327614470016031 0ustar00<?php
/**
 * YITH Plugin Sub-panel Class.
 *
 * @class   YIT_Plugin_SubPanel
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Plugin_SubPanel' ) ) {
	/**
	 * YIT_Plugin_SubPanel class.
	 *
	 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
	 */
	class YIT_Plugin_SubPanel extends YIT_Plugin_Panel {

		/**
		 * Version of the class.
		 *
		 * @var string
		 */
		public $version = '1.0.0';

		/**
		 * List of settings parameters.
		 *
		 * @var array
		 */
		public $settings = array();

		/**
		 * YIT_Plugin_SubPanel constructor.
		 *
		 * @param array $args The panel arguments.
		 */
		public function __construct( $args = array() ) {
			if ( ! empty( $args ) ) {
				$this->settings           = $args;
				$this->settings['parent'] = $this->settings['page'];
				$this->tabs_path_files    = $this->get_tabs_path_files();

				add_action( 'admin_init', array( $this, 'register_settings' ) );
				add_action( 'admin_menu', array( &$this, 'add_setting_page' ) );
				add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_menu' ), 100 );
				add_action( 'admin_init', array( &$this, 'add_fields' ) );
				add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
			}
		}

		/**
		 * Register Settings
		 * Generate wp-admin settings pages by registering your settings and using a few callbacks to control the output
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function register_settings() {
			register_setting( 'yit_' . $this->settings['page'] . '_options', 'yit_' . $this->settings['page'] . '_options', array( &$this, 'options_validate' ) );
		}


		/**
		 * Add Setting SubPage
		 * add Setting SubPage to WordPress administrator
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function add_setting_page() {
			global $admin_page_hooks;
			$logo = yith_plugin_fw_get_default_logo();

			$admin_logo = function_exists( 'yit_get_option' ) ? yit_get_option( 'admin-logo-menu' ) : '';

			if ( ! empty( $admin_logo ) ) {
				$logo = $admin_logo;
			}

			if ( ! isset( $admin_page_hooks['yith_plugin_panel'] ) ) {
				$position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
				add_menu_page( 'yith_plugin_panel', 'YITH', 'nosuchcapability', 'yith_plugin_panel', null, $logo, $position );
				// Prevent issues for backward compatibility.
				$admin_page_hooks['yith_plugin_panel'] = 'yith-plugins'; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
			}

			add_submenu_page( 'yith_plugin_panel', $this->settings['label'], $this->settings['label'], 'manage_options', $this->settings['page'], array( $this, 'yit_panel' ) );
			remove_submenu_page( 'yith_plugin_panel', 'yith_plugin_panel' );
		}

		/**
		 * Show a tabbed panel to setting page
		 * a callback function called by add_setting_page => add_submenu_page
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function yit_panel() {
			$tabs        = '';
			$current_tab = $this->get_current_tab();
			$yit_options = $this->get_main_array_options();

			foreach ( $this->settings['admin-tabs'] as $tab => $tab_value ) {
				$active_class = $current_tab === $tab ? ' nav-tab-active' : '';
				$url          = '?page=' . $this->settings['page'] . '&tab=' . $tab;

				$tabs .= '<a class="nav-tab' . esc_attr( $active_class ) . '" href="' . esc_url( $url ) . '">' . wp_kses_post( $tab_value ) . '</a>';
			}
			?>
			<div id="icon-themes" class="icon32"><br/></div>
			<h2 class="nav-tab-wrapper">
				<?php echo $tabs; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
			</h2>
			<?php
			$custom_tab_options = $this->get_custom_tab_options( $yit_options, $current_tab );
			if ( $custom_tab_options ) {
				$this->print_custom_tab( $custom_tab_options );

				return;
			}

			$panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
			?>
			<div id="wrap" class="yith-plugin-fw plugin-option yit-admin-panel-container">
				<?php $this->message(); ?>
				<div class="<?php echo esc_attr( $panel_content_class ); ?>">
					<h2><?php echo wp_kses_post( $this->get_tab_title() ); ?></h2>
					<?php if ( $this->is_show_form() ) : ?>
						<form id="yith-plugin-fw-panel" method="post" action="options.php">
							<?php do_settings_sections( 'yit' ); ?>
							<p>&nbsp;</p>
							<?php settings_fields( 'yit_' . $this->settings['parent'] . '_options' ); ?>
							<input type="hidden" name="<?php echo esc_attr( $this->get_name_field( 'current_tab' ) ); ?>" value="<?php echo esc_attr( $current_tab ); ?>"/>
							<input type="submit" class="button-primary" value="<?php esc_attr_e( 'Save Changes', 'yith-plugin-fw' ); ?>" style="float:left;margin-right:10px;"/>
						</form>
						<form method="post">
							<?php
							$reset_warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) . '\n' . __( 'Are you sure?', 'yith-plugin-fw' );
							?>
							<input type="hidden" name="yit-action" value="reset"/>
							<input type="submit" name="yit-reset" class="button-secondary" value="<?php esc_attr_e( 'Reset to default', 'yith-plugin-fw' ); ?>"
									onclick="return confirm('<?php echo esc_attr( $reset_warning ); ?>');"/>
						</form>
						<p>&nbsp;</p>
					<?php endif ?>
				</div>
			</div>
			<?php
		}
	}
}
plugin-fw/includes/class-yit-plugin-panel-woocommerce.php000064400000065216151327614470017635 0ustar00<?php
/**
 * YITH Plugin Panel WooCommerce Class.
 *
 * @class   YIT_Plugin_Panel_WooCommerce
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
	/**
	 * YIT_Plugin_Panel_WooCommerce class.
	 *
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
	 */
	class YIT_Plugin_Panel_WooCommerce extends YIT_Plugin_Panel {
		/**
		 * Version of the class.
		 *
		 * @var string
		 */
		public $version = '1.0.0';

		/**
		 * List of settings parameters.
		 *
		 * @var array
		 */
		public $settings = array();

		/**
		 * WooCommerce types.
		 *
		 * @var array
		 */
		public static $wc_type = array( 'checkbox', 'textarea', 'multiselect', 'multi_select_countries', 'image_width' );

		/**
		 * Body class.
		 *
		 * @var string
		 */
		public static $body_class = ' yith-plugin-fw-panel ';


		/**
		 * Tab Path Files.
		 *
		 * @var array
		 */
		protected $tabs_path_files;

		/**
		 * Are the actions initialized?
		 *
		 * @var bool
		 */
		protected static $actions_initialized = false;

		/**
		 * YIT_Plugin_Panel_WooCommerce constructor.
		 *
		 * @param array $args The panel arguments.
		 */
		public function __construct( $args = array() ) {
			$args = apply_filters( 'yit_plugin_fw_wc_panel_option_args', $args );
			if ( ! empty( $args ) ) {
				if ( isset( $args['parent_page'] ) && 'yit_plugin_panel' === $args['parent_page'] ) {
					$args['parent_page'] = 'yith_plugin_panel';
				}

				$this->settings        = $args;
				$this->tabs_path_files = $this->get_tabs_path_files();

				if ( isset( $this->settings['create_menu_page'] ) && $this->settings['create_menu_page'] ) {
					$this->add_menu_page();
				}

				if ( ! empty( $this->settings['links'] ) ) {
					$this->links = $this->settings['links'];
				}

				add_action( 'admin_init', array( $this, 'set_default_options' ) );
				add_action( 'admin_menu', array( $this, 'add_setting_page' ) );
				add_action( 'admin_menu', array( $this, 'add_premium_version_upgrade_to_menu' ), 100 );
				add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), 100 );
				add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
				add_action( 'admin_init', array( $this, 'woocommerce_update_options' ) );
				add_filter( 'woocommerce_screen_ids', array( $this, 'add_allowed_screen_id' ) );

				add_filter( 'woocommerce_admin_settings_sanitize_option', array( $this, 'maybe_unserialize_panel_data' ), 10, 3 );

				add_action( 'yith_plugin_fw_get_field_after', array( $this, 'add_yith_ui' ) );
				add_action( 'yith_plugin_fw_before_woocommerce_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
				add_action( 'admin_action_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
				add_filter( 'woocommerce_admin_settings_sanitize_option', array( $this, 'sanitize_onoff_value' ), 20, 3 );

				add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
				add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );

				// Init actions once to prevent multiple initialization.
				static::init_actions();
			}
		}

		/**
		 * Init actions.
		 *
		 * @since  3.0.0
		 * @author Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		protected static function init_actions() {
			if ( ! static::$actions_initialized ) {
				add_action( 'woocommerce_admin_field_boxinfo', array( __CLASS__, 'add_infobox' ), 10, 1 );
				add_action( 'woocommerce_admin_field_yith-field', array( __CLASS__, 'add_yith_field' ), 10, 1 );
				add_filter( 'admin_body_class', array( __CLASS__, 'admin_body_class' ) );

				add_filter( 'woocommerce_admin_settings_sanitize_option', array( __CLASS__, 'sanitize_option' ), 10, 3 );

				// Sort plugins by name in YITH Plugins menu.
				add_action( 'admin_menu', array( __CLASS__, 'sort_plugins' ), 90 );

				add_filter( 'add_menu_classes', array( __CLASS__, 'add_menu_class_in_yith_plugin' ) );

				static::$actions_initialized = true;
			}
		}

		/**
		 * Show a tabbed panel to setting page
		 * a callback function called by add_setting_page => add_submenu_page
		 *
		 * @author   Andrea Grillo      <andrea.grillo@yithemes.com>
		 * @author   Antonio La Rocca   <antonio.larocca@yithemes.com>
		 */
		public function yit_panel() {
			$additional_info = array(
				'current_tab'     => $this->get_current_tab(),
				'current_sub_tab' => $this->get_current_sub_tab(),
				'available_tabs'  => $this->settings['admin-tabs'],
				'default_tab'     => $this->get_available_tabs( true ),
				'page'            => $this->settings['page'],
				'wrap_class'      => isset( $this->settings['class'] ) ? $this->settings['class'] : '',
			);

			$additional_info                    = apply_filters( 'yith_admin_tab_params', $additional_info );
			$additional_info['additional_info'] = $additional_info;

			extract( $additional_info ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
			require YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-panel.php';
		}

		/**
		 * Show a input fields to upload images
		 *
		 * @param string $option_value The option value.
		 *
		 * @return   string
		 * @author   Emanuela Castorina      <emanuela.castorina@yithemes.com>
		 */
		public function yit_upload_update( $option_value ) {
			return $option_value;
		}

		/**
		 * Show a input fields to upload images
		 *
		 * @param array $args The arguments.
		 *
		 * @author   Emanuela Castorina      <emanuela.castorina@yithemes.com>
		 */
		public function yit_upload( $args = array() ) {
			if ( ! empty( $args ) ) {
				$args['value'] = ( get_option( $args['id'] ) ) ? get_option( $args['id'] ) : $args['default'];
				extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract

				include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-upload.php';
			}
		}

		/**
		 * Add the plugin woocommerce page settings in the screen ids of woocommerce
		 *
		 * @param array $screen_ids Screen IDs.
		 *
		 * @return array
		 * @author Antonino Scarfì <antonino.scarfi@yithemes.com>
		 */
		public function add_allowed_screen_id( $screen_ids ) {
			global $admin_page_hooks;

			if ( ! isset( $admin_page_hooks[ $this->settings['parent_page'] ] ) ) {
				return $screen_ids;
			}

			$screen_ids[] = $admin_page_hooks[ $this->settings['parent_page'] ] . '_page_' . $this->settings['page'];

			return $screen_ids;
		}

		/**
		 * Returns current active tab slug
		 *
		 * @return string
		 * @since    2.0.0
		 * @author   Andrea Grillo      <andrea.grillo@yithemes.com>
		 * @author   Antonio La Rocca   <antonio.larocca@yithemes.com>
		 */
		public function get_current_tab() {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			global $pagenow;
			$tabs = $this->get_available_tabs();
			$tab  = $tabs[0];

			if ( 'admin.php' === $pagenow && isset( $_REQUEST['tab'] ) && in_array( $_REQUEST['tab'], $tabs, true ) ) {
				$tab = sanitize_key( wp_unslash( $_REQUEST['tab'] ) );
			} elseif ( isset( $_REQUEST['tab'] ) && 'help' === $_REQUEST['tab'] && ! empty( $this->settings['help_tab'] ) ) {
				$tab = 'help';
			}

			return apply_filters( 'yith_wc_plugin_panel_current_tab', $tab );
			// phpcs:enable
		}

		/**
		 * Return available tabs
		 * read all options and show sections and fields
		 *
		 * @param bool $default false for all tabs slug, true for current tab.
		 *
		 * @return mixed Array tabs | String current tab
		 * @author   Andrea Grillo      <andrea.grillo@yithemes.com>
		 * @author   Antonio La Rocca   <antonio.larocca@yithemes.com>
		 */
		public function get_available_tabs( $default = false ) {
			$tabs = array_keys( $this->settings['admin-tabs'] );

			return $default ? $tabs[0] : $tabs;
		}


		/**
		 * Add sections and fields to setting panel
		 * read all options and show sections and fields
		 *
		 * @return void
		 * @author   Andrea Grillo      <andrea.grillo@yithemes.com>
		 * @author   Antonio La Rocca   <antonio.larocca@yithemes.com>
		 */
		public function add_fields() {
			$yit_options = $this->get_main_array_options();
			$option_key  = $this->get_current_option_key();

			if ( ! $option_key ) {
				return;
			}

			woocommerce_admin_fields( $yit_options[ $option_key ] );
		}

		/**
		 * Print the panel content
		 * check if the tab is a wc options tab or custom tab and print the content
		 *
		 * @return void
		 * @author   Andrea Grillo      <andrea.grillo@yithemes.com>
		 * @author   Antonio La Rocca   <antonio.larocca@yithemes.com>
		 * @author   Leanza Francesco   <leanzafrancesco@gmail.com>
		 */
		public function print_panel_content() {
			$yit_options        = $this->get_main_array_options();
			$page               = $this->settings['page'];
			$option_key         = $this->get_current_option_key();
			$custom_tab_options = $this->get_custom_tab_options( $yit_options, $option_key );

			$this->print_tabs_nav();

			if ( $custom_tab_options ) {
				$this->print_custom_tab( $custom_tab_options );
			} elseif ( $this->is_help_tab() ) {
				$this->print_help_tab();
			} else {
				include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-form.php';
			}
		}

		/**
		 * Update options
		 *
		 * @return void
		 * @author   Andrea Grillo      <andrea.grillo@yithemes.com>
		 * @author   Antonio La Rocca   <antonio.larocca@yithemes.com>
		 * @see      woocommerce_update_options function
		 * @internal fire two action (before and after update): yit_panel_wc_before_update and yit_panel_wc_after_update
		 */
		public function woocommerce_update_options() {

			if ( isset( $_POST['yit_panel_wc_options_nonce'] ) && wp_verify_nonce( sanitize_key( wp_unslash( $_POST['yit_panel_wc_options_nonce'] ) ), 'yit_panel_wc_options_' . $this->settings['page'] ) ) {

				do_action( 'yit_panel_wc_before_update' );

				$yit_options = $this->get_main_array_options();
				$option_key  = $this->get_current_option_key();
				$yit_options = $this->check_for_save_single_option( $yit_options );

				if ( version_compare( WC()->version, '2.4.0', '>=' ) ) {
					if ( ! empty( $yit_options[ $option_key ] ) ) {
						foreach ( $yit_options[ $option_key ] as $option ) {
							if ( isset( $option['id'] ) && isset( $_POST[ $option['id'] ], $option['type'] ) && ! in_array( $option['type'], self::$wc_type, true ) && 'yith-field' !== $option['type'] ) {
								$_POST[ $option['id'] ] = maybe_serialize( $_POST[ $option['id'] ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
							}
						}
					}
				}

				foreach ( $_POST as $name => $value ) {
					// Check if current POST var name ends with a specific needle and make some stuff here.
					$attachment_id_needle = '-yith-attachment-id';
					$pos                  = strlen( $name ) - strlen( $attachment_id_needle );
					$is_hidden_input      = $pos >= 0 && strpos( $name, $attachment_id_needle, $pos ) !== false;
					if ( $is_hidden_input ) {
						// Is an input element of type "hidden" coupled with an input element for selecting an element from the media gallery.
						$yit_options[ $option_key ][ $name ] = array(
							'type' => 'text',
							'id'   => $name,
						);
					}
				}

				woocommerce_update_options( $yit_options[ $option_key ] );

				do_action( 'yit_panel_wc_after_update' );

			} elseif (
				isset( $_REQUEST['yit-action'] ) && 'wc-options-reset' === sanitize_key( wp_unslash( $_REQUEST['yit-action'] ) )
				&&
				isset( $_POST['yith_wc_reset_options_nonce'] ) && wp_verify_nonce( sanitize_key( wp_unslash( $_POST['yith_wc_reset_options_nonce'] ) ), 'yith_wc_reset_options_' . $this->settings['page'] )
			) {

				do_action( 'yit_panel_wc_before_reset' );

				$yit_options = $this->get_main_array_options();
				$option_key  = $this->get_current_option_key();
				$yit_options = $this->check_for_save_single_option( $yit_options );

				// Collect an array of options to be saved as array and not as single option.
				$array_options = array();

				foreach ( $yit_options[ $option_key ] as $id => $option ) {
					// Make sure option id is not an array.
					$matches = array();
					isset( $option['id'] ) && preg_match( '/(.*)\[(.*)\]/', $option['id'], $matches );

					if ( ! empty( $matches ) && isset( $option['default'] ) ) {
						if ( ! empty( $matches[2] ) ) {
							$array_options[ $matches[1] ][ $matches[2] ] = $option['default'];
						} else {
							$array_options[ $matches[1] ][] = $option['default'];
						}
					} else {
						if ( isset( $option['yith-type'] ) && 'multi-colorpicker' === $option['yith-type'] && ! empty( $option['colorpickers'] ) ) {
							$default = array();
							foreach ( $option['colorpickers'] as $colorpicker ) {
								$default[ $colorpicker['id'] ] = isset( $colorpicker['default'] ) ? $colorpicker['default'] : '';
							}
							update_option( $option['id'], $default );
						} elseif ( isset( $option['default'] ) ) {
							update_option( $option['id'], $option['default'] );
						}
					}
				}

				// Save array options if any.
				foreach ( $array_options as $key => $value ) {
					update_option( $key, $value );
				}

				do_action( 'yit_panel_wc_after_reset' );
			}
		}

		/**
		 * Add Admin WC Style and Scripts
		 *
		 * @author   Andrea Grillo      <andrea.grillo@yithemes.com>
		 * @author   Antonio La Rocca   <antonio.larocca@yithemes.com>
		 * @author   Leanza Francesco   <leanzafrancesco@gmail.com>
		 */
		public function admin_enqueue_scripts() {
			global $woocommerce, $pagenow;

			if ( 'customize.php' !== $pagenow ) {
				wp_enqueue_style( 'wp-jquery-ui-dialog' );
			}

			$screen            = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
			$assets_screen_ids = (array) apply_filters( 'yith_plugin_fw_wc_panel_screen_ids_for_assets', array() );

			if ( $screen && ( 'admin.php' === $pagenow && strpos( $screen->id, $this->settings['page'] ) !== false ) || in_array( $screen->id, $assets_screen_ids, true ) ) {
				$woocommerce_version       = function_exists( 'WC' ) ? WC()->version : $woocommerce->version;
				$woocommerce_settings_deps = array( 'jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'iris' );

				if ( version_compare( '2.5', $woocommerce_version, '<=' ) ) {
					$woocommerce_settings_deps[] = 'select2';
				} else {
					$woocommerce_settings_deps[] = 'jquery-ui-dialog';
					$woocommerce_settings_deps[] = 'chosen';
				}

				wp_enqueue_media();

				wp_enqueue_style( 'yith-plugin-fw-fields' );
				wp_enqueue_style( 'woocommerce_admin_styles' );
				wp_enqueue_style( 'raleway-font' );

				wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', $woocommerce_settings_deps, $woocommerce_version, true );
				wp_localize_script(
					'woocommerce_settings',
					'woocommerce_settings_params',
					array(
						'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' ),
					)
				);
				wp_enqueue_script( 'yith-plugin-fw-fields' );
			}

			if ( $screen && ( 'admin.php' === $pagenow && yith_plugin_fw_is_panel() ) || in_array( $screen->id, $assets_screen_ids, true ) ) {
				wp_enqueue_media();
				wp_enqueue_style( 'yit-plugin-style' );
				wp_enqueue_script( 'yit-plugin-panel' );
			}

			if ( $screen && 'admin.php' === $pagenow && strpos( $screen->id, 'yith_upgrade_premium_version' ) !== false ) {
				wp_enqueue_style( 'yit-upgrade-to-pro' );
				wp_enqueue_script( 'colorbox' );
			}
		}

		/**
		 * Default options
		 * Sets up the default options used on the settings page
		 */
		public function set_default_options() {
			// Check if the default options for this panel are already set.
			$page                = $this->settings['page'];
			$default_options_set = get_option( 'yit_plugin_fw_panel_wc_default_options_set', array() );
			if ( isset( $default_options_set[ $page ] ) && $default_options_set[ $page ] ) {
				return;
			}

			$default_options = $this->get_main_array_options();

			foreach ( $default_options as $section ) {
				foreach ( $section as $value ) {
					if ( ( isset( $value['std'] ) || isset( $value['default'] ) ) && isset( $value['id'] ) ) {
						$default_value = ( isset( $value['default'] ) ) ? $value['default'] : $value['std'];

						if ( 'image_width' === $value['type'] ) {
							add_option( $value['id'] . '_width', $default_value );
							add_option( $value['id'] . '_height', $default_value );
						} else {
							add_option( $value['id'], $default_value );
						}
					}
				}
			}

			// Set the flag for the default options of this panel.
			$default_options_set[ $page ] = true;
			update_option( 'yit_plugin_fw_panel_wc_default_options_set', $default_options_set );
		}

		/**
		 * Delete the "default options added" option
		 *
		 * @author   Leanza Francesco   <leanzafrancesco@gmail.com>
		 */
		public static function delete_default_options_set_option() {
			delete_option( 'yit_plugin_fw_panel_wc_default_options_set' );
		}

		/**
		 * Add the WooCommerce body class in plugin panel page
		 *
		 * @param string $admin_body_classes The body classes.
		 *
		 * @return string Filtered body classes
		 * @author Andrea Grillo <andrea.grillo@yithemes.com>
		 * @since  2.0
		 */
		public static function admin_body_class( $admin_body_classes ) {
			global $pagenow;

			$assets_screen_ids = (array) apply_filters( 'yith_plugin_fw_wc_panel_screen_ids_for_assets', array() );

			if ( ( 'admin.php' === $pagenow && ( strpos( get_current_screen()->id, 'yith-plugins_page' ) !== false || in_array( get_current_screen()->id, $assets_screen_ids, true ) ) ) ) {
				$admin_body_classes = ! substr_count( $admin_body_classes, self::$body_class ) ? $admin_body_classes . self::$body_class : $admin_body_classes;
				$admin_body_classes = ! substr_count( $admin_body_classes, 'woocommerce' ) ? $admin_body_classes . ' woocommerce ' : $admin_body_classes;
			}

			return $admin_body_classes;
		}

		/**
		 * Maybe unserialize panel data
		 *
		 * @param mixed  $value     Option value.
		 * @param mixed  $option    Option settings array.
		 * @param string $raw_value Raw option value.
		 *
		 * @return mixed Filtered return value
		 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
		 * @since  2.0
		 */
		public function maybe_unserialize_panel_data( $value, $option, $raw_value ) {
			if ( ! version_compare( WC()->version, '2.4.0', '>=' ) || ! isset( $option['type'] ) || in_array( $option['type'], self::$wc_type, true ) || 'yith-field' === $option['type'] ) {
				return $value;
			}

			$yit_options = $this->get_main_array_options();
			$option_key  = $this->get_current_option_key();

			if ( ! empty( $yit_options[ $option_key ] ) ) {
				foreach ( $yit_options[ $option_key ] as $option_array ) {
					if ( isset( $option_array['id'] ) && isset( $option['id'] ) && $option_array['id'] === $option['id'] ) {
						return maybe_unserialize( $value );
					}
				}
			}

			return $value;
		}

		/**
		 * Sanitize Option
		 *
		 * @param mixed $value     Option value.
		 * @param mixed $option    Option settings array.
		 * @param mixed $raw_value Raw option value.
		 *
		 * @return mixed Filtered return value
		 * @author Leanza Francesco <leanzafrancesco@gmail.com>
		 * @since  3.0.0
		 */
		public static function sanitize_option( $value, $option, $raw_value ) {
			if ( isset( $option['type'] ) && 'yith-field' === $option['type'] ) {
				$value    = $raw_value; // We need the raw value to avoid the wc_clean. Note: the raw_value is already un-slashed.
				$type     = isset( $option['yith-type'] ) ? $option['yith-type'] : false;
				$multiple = ! empty( $option['multiple'] );

				switch ( $type ) {
					case 'checkbox':
					case 'onoff':
						$value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
						break;
					case 'checkbox-array':
						$value = ! ! $value && is_array( $value ) ? $value : array();
						break;
					case 'select-buttons':
						$value = ! empty( $value ) ? $value : array();
						break;
					case 'date-format':
						if ( '\c\u\s\t\o\m' === $value ) {
							// phpcs:ignore WordPress.Security.NonceVerification.Recommended
							$custom = isset( $_REQUEST[ $option['id'] . '_text' ] ) ? sanitize_text_field( wp_unslash( $_REQUEST[ $option['id'] . '_text' ] ) ) : $option['default'];
							$value  = $custom;
						}
						break;
					case 'toggle-element':
						if ( $value && isset( $option['elements'] ) && ! empty( $option['elements'] ) ) {

							if ( isset( $value['box_id'] ) ) {
								unset( $value['box_id'] );
							}

							foreach ( $value as $index => $single_toggle ) {

								if ( $value && isset( $option['onoff_field'] ) && ! empty( $option['onoff_field'] ) ) {
									$on_off              = $option['onoff_field'];
									$on_off['type']      = 'yith-field';
									$on_off['yith-type'] = 'onoff';
									$on_off_id           = $on_off['id'];

									$value[ $index ][ $on_off_id ] = isset( $single_toggle[ $on_off_id ] ) ? self::sanitize_option( $single_toggle[ $on_off_id ], $on_off, $single_toggle[ $on_off_id ] ) : 'no';
								}

								foreach ( $option['elements'] as $element ) {
									$element_value = isset( $value[ $index ][ $element['id'] ] ) ? $value[ $index ][ $element['id'] ] : false;
									// We don't need to un-slash the value, since it's already un-slashed.
									$value[ $index ][ $element['id'] ] = self::sanitize_option( $element_value, $element, $element_value );
								}
							}
						}
						break;
				}

				if ( $multiple && empty( $value ) ) {
					$value = array();
				}

				if ( ! empty( $option['yith-sanitize-callback'] ) && is_callable( $option['yith-sanitize-callback'] ) ) {
					$value = call_user_func( $option['yith-sanitize-callback'], $value );
				}
			}

			return apply_filters( 'yith_plugin_fw_wc_panel_sanitize_option', $value, $option, $raw_value );
		}

		/**
		 * Add YITH Fields.
		 *
		 * @param array $field The field.
		 *
		 * @return   void
		 * @since    3.0.0
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public static function add_yith_field( $field = array() ) {
			if ( ! empty( $field ) && isset( $field['yith-type'] ) ) {
				$field['type'] = $field['yith-type'];
				unset( $field['yith-type'] );

				$field['id']      = isset( $field['id'] ) ? $field['id'] : '';
				$field['name']    = $field['id'];
				$field['default'] = isset( $field['default'] ) ? $field['default'] : '';

				$value = apply_filters( 'yith_plugin_fw_wc_panel_pre_field_value', null, $field );
				if ( is_null( $value ) ) {
					if ( 'toggle-element' === $field['type'] || 'toggle-element-fixed' === $field['type'] ) {
						$value = get_option( $field['id'], $field['default'] );
					} else {
						$value = WC_Admin_Settings::get_option( $field['id'], $field['default'] );
					}
				}
				$field['value'] = $value;

				// Let's filter field data just before print.
				$field = apply_filters( 'yith_plugin_fw_wc_panel_field_data', $field );

				require YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-option-row.php';
			}
		}

		/**
		 *  Save the content of the toggle element present inside the panel.
		 *  Called by the action 'admin_action_yith_plugin_fw_save_toggle_element'
		 *  via Ajax
		 *
		 * @author Emanuela Castorina
		 */
		public function save_toggle_element_options() {

			check_ajax_referer( 'save-toggle-element', 'security' );

			if ( ! current_user_can( $this->settings['capability'] ) ) {
				wp_die( - 1 );
			}

			$posted      = $_POST;
			$tabs        = $this->get_available_tabs();
			$yit_options = $this->get_main_array_options();
			$current_tab = isset( $_REQUEST['tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['tab'] ) ) : false;
			$current_tab = ! ! $current_tab && in_array( $current_tab, $tabs, true ) ? $current_tab : $tabs[0];
			$option_id   = isset( $_REQUEST['toggle_id'] ) ? sanitize_key( wp_unslash( $_REQUEST['toggle_id'] ) ) : '';
			$updated     = false;

			if ( ! empty( $yit_options[ $current_tab ] ) && ! empty( $option_id ) ) {
				$tab_options = $yit_options[ $current_tab ];
				foreach ( $tab_options as $key => $item ) {
					if ( ! isset( $item['id'] ) ) {
						unset( $tab_options[ $key ] );
					}
				}

				$option_array = array_combine( wp_list_pluck( $tab_options, 'id' ), $tab_options );
				if ( isset( $option_array[ $option_id ] ) ) {
					$value = isset( $posted[ $option_id ] ) ? $posted[ $option_id ] : '';

					// Drag and drop.
					$order_elements = isset( $posted['yith_toggle_elements_order_keys'] ) ? explode( ',', $posted['yith_toggle_elements_order_keys'] ) : false;
					if ( $order_elements ) {
						$i         = 0;
						$new_value = array();
						foreach ( $order_elements as $key ) {
							$index               = apply_filters( 'yith_toggle_elements_index', $i ++, $key );
							$new_value[ $index ] = $value[ $key ];
						}

						$value = $new_value;
					}

					$value   = wp_unslash( $value ); // The value must be un-slashed before using it in self::sanitize_option.
					$value   = self::sanitize_option( $value, $option_array[ $option_id ], $value );
					$updated = update_option( $option_id, $value );
				}
			}

			return $updated;
		}

		/**
		 * Print tabs navigation.
		 *
		 * @param array $args The arguments.
		 */
		public function print_tabs_nav( $args = array() ) {
			$defaults = array(
				'premium_class' => 'yith-premium',
				'parent_page'   => '',
				'wrapper_class' => 'nav-tab-wrapper woo-nav-tab-wrapper',
			);
			$args     = wp_parse_args( $args, $defaults );

			parent::print_tabs_nav( $args );
		}

		/**
		 * Sanitize OnOff Option
		 *
		 * @param mixed  $value     Option value.
		 * @param mixed  $option    Option settings array.
		 * @param string $raw_value Raw option value.
		 *
		 * @return mixed Filtered return value
		 * @author Andrea Grillo <andrea.grillo@yithemes.com>
		 * @since  3.0.0
		 */
		public static function sanitize_onoff_value( $value, $option, $raw_value ) {
			if ( isset( $option['type'] ) && in_array( $option['type'], array( 'checkbox', 'onoff' ), true ) ) {
				$value = yith_plugin_fw_is_true( $raw_value ) ? 'yes' : 'no';

				if ( ! empty( $option['yith-sanitize-callback'] ) && is_callable( $option['yith-sanitize-callback'] ) ) {
					$value = call_user_func( $option['yith-sanitize-callback'], $value );
				}
			}

			return $value;
		}

		/**
		 * Check if need to save the toggle element to a single options instead of an array
		 *
		 * @param array $yit_options Original options array.
		 *
		 * @return mixed|array New options array
		 * @author Andrea Grillo <andrea.grillo@yithemes.com>
		 * @since  3.0.0
		 */
		public function check_for_save_single_option( $yit_options ) {
			foreach ( $yit_options as $key => $options_list ) {
				foreach ( $options_list as $value ) {
					if ( ! empty( $value['yith-type'] ) && 'toggle-element-fixed' === $value['yith-type'] && isset( $value['save_single_options'] ) && true === $value['save_single_options'] ) {
						$yit_options[ $key ] = array_merge( $yit_options[ $key ], $value['elements'] );
					}
				}
			}

			return $yit_options;
		}
	}
}
plugin-fw/includes/builders/gutenberg/src/common/actions-to-jquery-events.js000064400000001411151327614470023400 0ustar00/**
 * Actions to jQuery events
 */

/**
 * WordPress dependencies
 */
import { addAction } from '@wordpress/hooks';

const actions = [
	{ key: 'yith_plugin_fw_gutenberg_before_do_shortcode', delay: 0 },
	{ key: 'yith_plugin_fw_gutenberg_success_do_shortcode', delay: 200 },
	{ key: 'yith_plugin_fw_gutenberg_after_do_shortcode', delay: 200 }
];

for ( const action of actions ) {
	addAction(
		action.key,
		'yith-plugin-fw/jquery-events',
		( ...params ) => {
			if ( 'jQuery' in window ) {
				if ( action.delay ) {
					setTimeout( () => {
						jQuery( document ).trigger( action.key, Object.values( params ) );
					}, action.delay );
				} else {
					jQuery( document ).trigger( action.key, Object.values( params ) );
				}
			}
		}
	);
}plugin-fw/includes/builders/gutenberg/src/common/ajaxFetch.js000064400000001557151327614500020403 0ustar00/**
 * Ajax Fetch
 */

/**
 * WordPress dependencies
 */
import { addQueryArgs } from '@wordpress/url';

/**
 * Check status of ajax call
 * @param response
 * @returns {*}
 */
function ajaxCheckStatus( response ) {
	if ( response.status >= 200 && response.status < 300 ) {
		return response;
	}

	throw response;
}

/**
 * Parse the response of the ajax call
 * @param response
 * @returns {*}
 */
function parseResponse( response ) {
	return response.json ? response.json() : response.text();
}

/**
 * Fetch using WordPress Ajax
 *
 * @param {object} data The data to use in the ajax call.
 * @param {string} url The ajax URL.
 * @returns {Promise<Response>}
 */
export const ajaxFetch = ( data, url = yithGutenberg.ajaxurl ) => {
	url = addQueryArgs( url, data );
	return fetch( url ).then( ajaxCheckStatus ).then( parseResponse );
};plugin-fw/includes/builders/gutenberg/src/common/index.js000064400000000175151327614500017610 0ustar00export * from './ajaxFetch';
export * from './icons';
export * from './generateShortcode';
export * from './checkForDeps';plugin-fw/includes/builders/gutenberg/src/common/icons.js000064400000003300151327614500017605 0ustar00/**
 * SVG Icons
 */

/**
 * The YITH Logo Icon
 * @type {JSX.Element}
 */
export const yith_icon = <svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" width="22" height="22" role="img" aria-hidden="true" focusable="false">
	<path width="22" height="22"
		d="M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z  M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"/>
</svg>;plugin-fw/includes/builders/gutenberg/src/common/generateShortcode.js000064400000002553151327614500022150 0ustar00/**
 * Internal dependencies
 */
import { checkForDeps } from './checkForDeps';

/**
 * Generate the shortcode
 *
 * @param {object} blockArgs The block arguments.
 * @param {object} attributes The attributes
 * @returns {string}
 */
export const generateShortcode = ( blockArgs, attributes ) => {
	let theShortcode = '';
	let callback     = false;

	if ( typeof blockArgs.callback !== 'undefined' ) {
		if ( jQuery && blockArgs.callback in jQuery.fn ) {
			callback = jQuery.fn[ blockArgs.callback ];
		} else if ( blockArgs.callback in window ) {
			callback = window[ blockArgs.callback ];
		}
	}

	if ( typeof callback === 'function' ) {
		theShortcode = callback( attributes, blockArgs );
	} else {
		const shortcodeAttrs = blockArgs.attributes ? Object.entries( blockArgs.attributes ).map( ( [attributeName, attributeArgs] ) => {
			const show  = checkForDeps( attributeArgs, attributes );
			const value = attributes[ attributeName ];

			if ( show && typeof value !== 'undefined' ) {
				const shortcodeValue = !!attributeArgs.remove_quotes ? value : `"${value}"`;
				return attributeName + '=' + shortcodeValue;
			}
		} ) : [];

		const shortcodeAttrsText = shortcodeAttrs.length ? ( ' ' + shortcodeAttrs.join( ' ' ) ) : '';
		theShortcode             = `[${blockArgs.shortcode_name}${shortcodeAttrsText}]`;
	}
	return theShortcode;
};plugin-fw/includes/builders/gutenberg/src/common/checkForDeps.js000064400000002313151327614500021035 0ustar00/**
 * Check for dependencies
 *
 * @param {object} attributeArgs Attribute arguments.
 * @param {object} attributes The attributes.
 * @returns {boolean}
 */

import _ from 'lodash';

const checkForSingleDep = ( attributes, dep, controlType ) => {
	let show = true;

	if ( dep && dep.id && 'value' in dep ) {
		let depValue = dep.value;
		if ( ['toggle', 'checkbox'].includes( controlType ) ) {
			depValue = true === depValue || 'yes' === depValue || 1 === depValue;
		}
		depValue = _.isArray( depValue ) ? depValue : [depValue];

		show = typeof attributes[ dep.id ] !== 'undefined' && depValue.includes( attributes[ dep.id ] );
	}

	return show;
};

export const checkForDeps = ( attributeArgs, attributes ) => {
	const { controlType } = attributeArgs;
	let show              = true;

	if ( attributeArgs.deps ) {
		if ( _.isArray( attributeArgs.deps ) ) {
			for ( let i in attributeArgs.deps ) {
				const singleDep = attributeArgs.deps[ i ];
				show            = checkForSingleDep( attributes, singleDep, controlType );
				if ( !show ) {
					break;
				}
			}
		} else {
			show = checkForSingleDep( attributes, attributeArgs.deps, controlType );
		}
	}

	return show;
};plugin-fw/includes/builders/gutenberg/src/.jshintrc000064400000000602151327614500016473 0ustar00{
  "boss": true,
  "curly": true,
  "eqeqeq": true,
  "eqnull": true,
  "esversion": 6,
  "expr": true,
  "immed": true,
  "noarg": true,
  "onevar": true,
  "trailing": true,
  "undef": true,
  "unused": true,
  "browser": true,
  "globals": {
    "_": false,
    "Backbone": false,
    "jQuery": true,
    "console": true,
    "alert": true,
    "JSON": false,
    "wp": false
  }
}
plugin-fw/includes/builders/gutenberg/src/index.js000064400000003077151327614500016324 0ustar00/**
 * Handle YITH Gutenberg Blocks
 *
 * @var {Object} yithGutenbergBlocks The Gutenberg blocks object.
 */

/**
 * External dependencies
 */
import React                            from 'react';
import md5                              from 'md5';

/**
 * WordPress dependencies
 */
import { registerBlockType }            from '@wordpress/blocks';
import { RawHTML }                      from '@wordpress/element';

/**
 * Internal dependencies
 */
import { yith_icon, generateShortcode } from './common';
import { createEditFunction }           from './edit';
import './common/actions-to-jquery-events';

for ( const [blockName, blockArgs] of Object.entries( yithGutenbergBlocks ) ) {
	registerBlockType( 'yith/' + blockName, {
		title      : blockArgs.title,
		description: blockArgs.description,
		category   : blockArgs.category,
		attributes : blockArgs.attributes,
		icon       : typeof blockArgs.icon !== 'undefined' ? blockArgs.icon : yith_icon,
		keywords   : blockArgs.keywords,
		edit       : createEditFunction( blockName, blockArgs ),
		save       : ( { attributes } ) => {
			return generateShortcode( blockArgs, attributes );
		},
		deprecated : [
			{
				attributes: blockArgs.attributes,
				save      : ( { attributes } ) => {
					const shortcode     = generateShortcode( blockArgs, attributes );
					const blockHash     = md5( shortcode );
					const shortcodeSpan = '<span class="yith_block_' + blockHash + '">' + shortcode + '</span>';

					return (
						<RawHTML>{shortcodeSpan}</RawHTML>
					)
				}
			}
		]
	} );
}plugin-fw/includes/builders/gutenberg/src/edit.js000064400000016174151327614500016144 0ustar00/**
 * Handle YITH Gutenberg Blocks Edit
 *
 * @var {Object} yithGutenbergBlocks The Gutenberg blocks object.
 */

/**
 * External dependencies
 */
import React                                                                                                                               from 'react';

/**
 * WordPress dependencies
 */
import { PanelBody, BaseControl, ToggleControl, SelectControl, TextControl, TextareaControl, CheckboxControl, RangeControl, RadioControl } from '@wordpress/components';
import { InspectorControls }                                                                                                               from '@wordpress/block-editor';

/**
 * Internal dependencies
 */
import { Shortcode }                                                                                                                       from './components/shortcode';
import { checkForDeps }                                                                                                                    from './common';
import ColorPickerControl                                                                                                                  from './components/color-picker-control';
import ColorPaletteControl                                                                                                                 from './components/color-palette-control';

/**
 * Retrieve an help message from arguments.
 *
 * @param {Object} args The arguments.
 * @param {bool} value The value.
 * @returns {string}
 */
const getHelpMessage = ( args, value ) => {
	let helpMessage = '';
	if ( args.helps && args.helps.checked && args.helps.unchecked ) {
		helpMessage = !!value ? args.helps.checked : args.helps.unchecked;
	} else if ( args.help ) {
		helpMessage = args.help;
	}
	return helpMessage;
}

/**
 * Create edit function.
 *
 * @param {string} blockName The block name.
 * @param {Object} blockArgs The block arguments.
 * @returns {function({attributes?: *, className: *, setAttributes: *})}
 */
export const createEditFunction = ( blockName, blockArgs ) => {
	return function ( { attributes, className, setAttributes } ) {

		const onChangeHandler = ( new_value, attribute_name, controlType ) => {
			if ( ['colorpicker', 'color'].includes( controlType ) ) {
				new_value = new_value.color.getAlpha() < 1 ? new_value.color.toRgbString() : new_value.color.toHexString();
			}

			let updatedAttributes               = {};
			updatedAttributes[ attribute_name ] = new_value;
			setAttributes( updatedAttributes );
		}

		const getComponentControl = ( attributeName, attributeArgs ) => {
			const { controlType } = attributeArgs;
			const value           = attributes[ attributeName ];
			const helpMessage     = getHelpMessage( attributeArgs, value );
			let wrapperClassName  = `${blockName}__${attributeName}-field-wrapper`;
			const show            = checkForDeps( attributeArgs, attributes );

			if ( attributeArgs.wrapper_class ) {
				wrapperClassName += ' ' + attributeArgs.wrapper_class;
			}


			let componentControl = false;
			if ( show ) {
				switch ( controlType ) {
					case 'select':
						componentControl = <SelectControl
							className={wrapperClassName}
							key={attributeName}
							value={value}
							label={attributeArgs.label}
							options={attributeArgs.options}
							help={helpMessage}
							multiple={!!attributeArgs.multiple}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}
						/>;
						break;

					case 'text':
						componentControl = <TextControl
							className={wrapperClassName}
							key={attributeName}
							value={value}
							label={attributeArgs.label}
							help={helpMessage}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}
						/>;
						break;

					case 'textarea':
						componentControl = <TextareaControl
							className={wrapperClassName}
							key={attributeName}
							value={value}
							label={attributeArgs.label}
							help={helpMessage}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}
						/>;
						break;

					case 'toggle':
						componentControl = <ToggleControl
							className={wrapperClassName}
							key={attributeName}
							label={attributeArgs.label}
							help={helpMessage}
							checked={value}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}
						/>;
						break;

					case 'checkbox':
						componentControl = <CheckboxControl
							className={wrapperClassName}
							key={attributeName}
							label={attributeArgs.label}
							help={helpMessage}
							checked={value}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}
						/>;
						break;

					case 'number':
					case 'range':
						componentControl = <RangeControl
							className={wrapperClassName}
							key={attributeName}
							value={value}
							label={attributeArgs.label}
							help={helpMessage}
							min={attributeArgs.min}
							max={attributeArgs.max}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}
						/>;
						break;

					case 'color':
					case 'colorpicker':
						componentControl = <ColorPickerControl
							className={wrapperClassName}
							key={attributeName}
							label={attributeArgs.label}
							help={helpMessage}
							value={value}
							disableAlpha={attributeArgs.disableAlpha}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}/>;
						break;

					case 'color-palette':
						componentControl = <ColorPaletteControl
							className={wrapperClassName}
							key={attributeName}
							label={attributeArgs.label}
							help={helpMessage}
							value={value}
							clearable={attributeArgs.clearable || false}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}/>;
						break;

					case 'radio':
						componentControl = <RadioControl
							key={attributeName}
							label={attributeArgs.label}
							options={attributeArgs.options}
							selected={value}
							help={helpMessage}
							onChange={( newValue ) => {
								onChangeHandler( newValue, attributeName, controlType )
							}}
						/>;
						break;
					default:
						componentControl = false;
				}
			}
			return componentControl;
		}

		return (
			<>
				{!!blockArgs.attributes &&
				 <InspectorControls>
					 <PanelBody>
						 {Object.entries( blockArgs.attributes ).map( ( [attributeName, attributeArgs] ) => {
							 const ComponentControl = getComponentControl( attributeName, attributeArgs );

							 if ( ComponentControl ) {
								 return ( ComponentControl );
							 }
						 } )}
					 </PanelBody>
				 </InspectorControls>
				}
				{
					<Shortcode attributes={attributes} blockArgs={blockArgs}/>
				}
			</>
		);
	}
}plugin-fw/includes/builders/gutenberg/src/components/color-palette-control/index.js000064400000004356151327614500024742 0ustar00/**
 * Color Palette Component
 */

/**
 * External dependencies
 */
import React                                         from 'react';

/**
 * WordPress dependencies
 */
import { BaseControl, ColorIndicator, ColorPalette } from '@wordpress/components';
import { useSetting }                                from '@wordpress/block-editor';
import { useInstanceId }                             from '@wordpress/compose';

/**
 * Internal dependencies
 */
import './style.scss';

/**
 * Visual Label Element
 *
 * @param {string} label The label.
 * @param {string} colorValue The color.
 * @returns {JSX.Element}
 * @constructor
 */
function VisualLabel( {
						  label,
						  colorValue
					  } ) {

	return (
		<>
			{label}
			{!!colorValue && (
				<ColorIndicator colorValue={colorValue}/>
			)}
		</>
	);
}

/**
 * Color Palette Control
 *
 * @param {string} className The CSS class name.
 * @param {string} label The label.
 * @param {function} onChange The function callback fired on value change.
 * @param {string} value The initial value.
 * @param {string} help The help message.
 * @param {array} palette Array of palette colors.
 * @param {bool} clearable Set true to allow clear.
 * @returns {JSX.Element}
 * @constructor
 */
export default function ColorPaletteControl( {
												 className,
												 label,
												 onChange,
												 value,
												 help,
												 palette,
												 clearable
											 } ) {

	palette = !!palette ? palette : useSetting( 'color.palette' );

	const instanceId = useInstanceId( ColorPaletteControl );
	const id         = `inspector-yith-color-palette-control-${instanceId}`;

	return (
		<BaseControl
			id={id}
			className={`block-editor-yith-color-palette-control ${className}`}
			help={help}
		>
			<fieldset>
				<legend>
					<div className="block-editor-yith-color-palette-control__color-indicator">
						<BaseControl.VisualLabel>
							<VisualLabel colorValue={value} label={label}/>
						</BaseControl.VisualLabel>
					</div>
				</legend>

				<ColorPalette
					value={value}
					onChange={onChange}
					colors={palette}
					clearable={clearable}
				/>
			</fieldset>
		</BaseControl> );
}plugin-fw/includes/builders/gutenberg/src/components/color-palette-control/style.scss000064400000000333151327614500025321 0ustar00.block-editor-yith-color-palette-control {
    .block-editor-yith-color-palette-control__color-indicator {
        margin-bottom: 12px;
    }

    .component-color-indicator{
        vertical-align: text-bottom;
    }
}plugin-fw/includes/builders/gutenberg/src/components/color-picker-control/index.js000064400000002432151327614500024552 0ustar00/**
 * Color Picker Component
 */

/**
 * External dependencies
 */
import React                        from 'react';

/**
 * WordPress dependencies
 */
import { BaseControl, ColorPicker } from '@wordpress/components';
import { useInstanceId }            from '@wordpress/compose';

/**
 * Color Picker Control
 *
 * @param {string} className The CSS class name.
 * @param {string} label The label.
 * @param {function} onChange The function callback fired on value change.
 * @param {string} value The initial value.
 * @param {string} help The help message.
 * @param {bool} disableAlpha Set true to disable the alpha
 * @returns {ColorPickerControl}
 * @constructor
 */
export default function ColorPickerControl( {
												className,
												label,
												onChange,
												value,
												help,
												disableAlpha,
											} ) {

	const instanceId = useInstanceId( ColorPickerControl );
	const id         = `inspector-yith-color-picker-control-${instanceId}`;

	return (
		<BaseControl
			id={id}
			label={label}
			className={`block-editor-yith-color-control ${className}`}
			help={help}
		>
			<ColorPicker
				color={value}
				disableAlpha={disableAlpha}
				onChangeComplete={onChange}
			/>
		</BaseControl> );
}plugin-fw/includes/builders/gutenberg/src/components/shortcode/style.scss000064400000002757151327614500023077 0ustar00%bordered-block {
  padding: 1em 1em 1.2em;
  border: 1px solid #1e1e1e;
  border-radius: 4px;
}

%shortcode-box {
  font-family: Menlo, Consolas, monaco, monospace;
  color: #1e1e1e;
  font-size: 13px;
  padding: 0.8em 1em;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.block-editor-yith-plugin-fw-shortcode-block {
  position: relative;
  min-height: 30px;

  .block-editor-yith-plugin-fw-shortcode-block__spinner-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
  }

  &.block-editor-yith-plugin-fw-shortcode-block--first-loading{
    @extend %bordered-block;

    .block-editor-yith-plugin-fw-shortcode-block__title {
      margin-bottom: 0;
    }
  }

  &.block-editor-yith-plugin-fw-shortcode-block--shortcode {

    @extend %bordered-block;

    .block-editor-yith-plugin-fw-shortcode-block__content {
      @extend %shortcode-box;
    }
  }

  &.block-editor-yith-plugin-fw-shortcode-block--empty-html {

    @extend %bordered-block;

    &.block-editor-yith-plugin-fw-shortcode-block--no-message {
      .block-editor-yith-plugin-fw-shortcode-block__title {
        margin-bottom: 0;
      }
    }

    .block-editor-yith-plugin-fw-shortcode-block__message {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
      font-style: italic;
      font-size: 13px;
    }

    .block-editor-yith-plugin-fw-shortcode-block__content {
      display: none;
    }
  }
}plugin-fw/includes/builders/gutenberg/src/components/shortcode/index.js000064400000011032151327614500022471 0ustar00/**
 * Shortcode Component
 */

/**
 * External dependencies
 */
import React, { Component }                        from 'react';
import { isEqual }                                 from 'lodash';

/**
 * WordPress dependencies
 */
import { RawHTML }                                 from '@wordpress/element';
import { Spinner }                                 from '@wordpress/components';
import { doAction, addAction }                     from '@wordpress/hooks';

/**
 * Internal dependencies
 */
import { ajaxFetch, generateShortcode, yith_icon } from '../../common';
import md5                                         from 'md5';
import './style.scss';

const BEFORE_DO_SHORTCODE_ACTION  = 'yith_plugin_fw_gutenberg_before_do_shortcode';
const SUCCESS_DO_SHORTCODE_ACTION = 'yith_plugin_fw_gutenberg_success_do_shortcode';
const AFTER_DO_SHORTCODE_ACTION   = 'yith_plugin_fw_gutenberg_after_do_shortcode';

/**
 * Shortcode Component
 */
export class Shortcode extends Component {
	constructor() {
		super( ...arguments );

		this.state = {
			html         : '',
			shortcode    : '',
			shortcodeHash: '',
			ajaxUpdated  : false,
			ajaxSuccess  : false,
			ajaxResponse : false,
			loading      : false,
			firstLoading : true
		};

		this.ajaxTimeout = false;
	}

	componentDidMount() {
		this.updateShortcode();
	}

	componentDidUpdate( prevProps, prevState, snapshot ) {
		const { shortcode, shortcodeHash, ajaxSuccess, ajaxResponse, ajaxUpdated } = this.state;

		if ( !isEqual( prevProps, this.props ) ) {
			this.updateShortcode();
		}


		if ( this.props.blockArgs.do_shortcode && ajaxUpdated ) {

			if ( ajaxSuccess ) {
				doAction( SUCCESS_DO_SHORTCODE_ACTION, shortcode, shortcodeHash, ajaxResponse );
			}

			doAction( AFTER_DO_SHORTCODE_ACTION, shortcode, shortcodeHash, ajaxResponse );

			this.setState( { ajaxUpdated: false } );
		}
	}

	updateShortcode() {
		const { attributes, blockArgs } = this.props;

		this.setState( { loading: true, ajaxSuccess: false, ajaxResponse: false } );

		const shortcode     = generateShortcode( blockArgs, attributes );
		const shortcodeHash = md5( shortcode );

		if ( blockArgs.do_shortcode ) {
			!!this.ajaxTimeout && clearTimeout( this.ajaxTimeout );

			doAction( BEFORE_DO_SHORTCODE_ACTION, shortcode, shortcodeHash );

			this.ajaxTimeout = setTimeout( () => {
				const ajaxData = {
					action   : 'yith_plugin_fw_gutenberg_do_shortcode',
					shortcode: shortcode
				};

				ajaxFetch( ajaxData ).then( response => {
					this.setState( { loading: false, firstLoading: false, html: response.html, shortcode, shortcodeHash, ajaxSuccess: true, ajaxUpdated: true, ajaxResponse: response } );
				} )
					.catch( error => {
						console.log( { error } );
					} );
			}, 300 );
		} else {
			this.setState( { loading: false, firstLoading: false, html: shortcode, shortcode, shortcodeHash } );
		}
	}

	render() {
		const { html, loading, firstLoading, shortcode, shortcodeHash } = this.state;
		const { blockArgs }                                             = this.props;
		const { do_shortcode, title, empty_message }                    = blockArgs;

		const mainClass = 'block-editor-yith-plugin-fw-shortcode-block';

		let wrapperClasses = [mainClass];
		let type           = do_shortcode ? 'html' : 'shortcode';
		let htmlToShow     = html;
		let message        = '';

		if ( firstLoading && loading ) {
			type = 'first-loading';
		} else if ( do_shortcode && !html ) {
			type       = 'empty-html';
			htmlToShow = shortcode;
			if ( !loading && empty_message ) {
				message = empty_message;
			}
		}

		const showTitle   = ['first-loading', 'empty-html', 'shortcode'].includes( type );
		const showContent = !['first-loading', 'empty-html'].includes( type );
		const showMessage = !!message;

		wrapperClasses.push( `${mainClass}--${type}` );
		wrapperClasses.push( showMessage ? `${mainClass}--has-message` : `${mainClass}--no-message` );
		wrapperClasses.push( `yith_block_${shortcodeHash}` );

		return (
			<>
				<div className={wrapperClasses.join( ' ' )}>
					{!!loading ? <div className={`${mainClass}__spinner-wrap`}><Spinner/></div> : ''}
					{showTitle &&
					 <div className={`${mainClass}__title components-placeholder__label`}>{yith_icon}{title}</div>
					}
					{showMessage &&
					 <RawHTML className={`${mainClass}__message`}>{message}</RawHTML>
					}
					{showContent &&
					 <RawHTML className={`${mainClass}__content`}>{htmlToShow}</RawHTML>
					}
				</div>
			</>
		)
	}
}plugin-fw/includes/builders/gutenberg/class-yith-gutenberg.php000064400000022600151327614500020632 0ustar00<?php
/**
 * YITH Gutenberg Class
 * handle Gutenberg blocks and shortcodes.
 *
 * @class   YITH_Gutenberg
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Gutenberg' ) ) {
	/**
	 * YITH_Gutenberg class.
	 *
	 * @author  Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	class YITH_Gutenberg {
		/**
		 * The single instance of the class.
		 *
		 * @var YITH_Gutenberg
		 */
		private static $instance;

		/**
		 * Registered blocks
		 *
		 * @var array
		 */
		private $registered_blocks = array();

		/**
		 * Blocks to register
		 *
		 * @var array
		 */
		private $to_register_blocks = array();

		/**
		 * Blocks args
		 *
		 * @var array
		 */
		private $blocks_args = array();

		/**
		 * Block category slug
		 *
		 * @var string
		 */
		private $category_slug = 'yith-blocks';

		/**
		 * Singleton implementation.
		 *
		 * @return YITH_Gutenberg
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * YITH_Gutenberg constructor.
		 */
		private function __construct() {
			add_action( 'init', array( $this, 'init' ) );
			add_action( 'init', array( $this, 'register_blocks' ), 30 );
			add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) );
			add_action( 'wp_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
			add_action( 'wc_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
		}

		/**
		 * Initialization
		 */
		public function init() {

		}

		/**
		 * Enqueue scripts for gutenberg
		 */
		public function enqueue_block_editor_assets() {
			$ajax_url   = function_exists( 'WC' ) ? add_query_arg( 'wc-ajax', 'yith_plugin_fw_gutenberg_do_shortcode', trailingslashit( site_url() ) ) : admin_url( 'admin-ajax.php' );
			$gutenberg  = array( 'ajaxurl' => $ajax_url );
			$asset_file = include YIT_CORE_PLUGIN_PATH . '/dist/gutenberg/index.asset.php';

			$gutenberg_assets_url = YIT_CORE_PLUGIN_URL . '/dist/gutenberg';

			wp_register_script(
				'yith-gutenberg',
				$gutenberg_assets_url . '/index.js',
				$asset_file['dependencies'],
				$asset_file['version'],
				true
			);

			wp_localize_script( 'yith-gutenberg', 'yith_gutenberg_ajax', $gutenberg ); // Deprecated! Kept for backward compatibility.
			wp_localize_script( 'yith-gutenberg', 'yith_gutenberg', $this->blocks_args ); // Deprecated! Kept for backward compatibility.

			wp_localize_script( 'yith-gutenberg', 'yithGutenberg', $gutenberg );
			wp_localize_script( 'yith-gutenberg', 'yithGutenbergBlocks', $this->blocks_args );

			wp_enqueue_script( 'yith-gutenberg' );
			wp_enqueue_style( 'yith-gutenberg', $gutenberg_assets_url . '/style-index.css', array(), yith_plugin_fw_get_version() );
		}

		/**
		 * Add blocks to gutenberg editor.
		 */
		public function register_blocks() {
			$block_args = array();
			foreach ( $this->to_register_blocks as $block => $args ) {
				if ( isset( $args['style'] ) ) {
					$block_args['style'] = $args['style'];
				}

				if ( isset( $args['script'] ) ) {
					$block_args['script'] = $args['script'];
				}

				if ( register_block_type( "yith/{$block}", $block_args ) ) {
					$this->registered_blocks[] = $block;
				}
			}

			if ( ! empty( $this->registered_blocks ) ) {
				global $wp_version;

				$categories_hook = version_compare( $wp_version, '5.8-beta', '>=' ) ? 'block_categories_all' : 'block_categories';
				add_filter( $categories_hook, array( $this, 'block_category' ), 10, 1 );
			}
		}

		/**
		 * Add block category
		 *
		 * @param array $categories The block categories.
		 *
		 * @return array The block categories.
		 */
		public function block_category( $categories ) {
			return array_merge(
				$categories,
				array(
					array(
						'slug'  => 'yith-blocks',
						'title' => _x( 'YITH', '[gutenberg]: Category Name', 'yith-plugin-fw' ),
					),
				)
			);
		}

		/**
		 * Add new blocks to Gutenberg
		 *
		 * @param string|array $blocks The blocks to be added.
		 *
		 * @return bool True if the blocks was successfully added, false otherwise.
		 */
		public function add_blocks( $blocks ) {
			$added = false;
			if ( ! empty( $blocks ) ) {
				$added = true;
				if ( is_array( $blocks ) ) {
					$this->to_register_blocks = array_merge( $this->to_register_blocks, $blocks );
				} else {
					$this->to_register_blocks[] = $blocks;
				}
			}

			return $added;
		}

		/**
		 * Return an array with the registered blocks
		 *
		 * @return array
		 */
		public function get_registered_blocks() {
			return $this->registered_blocks;
		}

		/**
		 * Return an array with the blocks to register
		 *
		 * @return array
		 */
		public function get_to_register_blocks() {
			return $this->to_register_blocks;
		}

		/**
		 * Return an array with the block(s) arguments
		 *
		 * @param string $block_key The block key.
		 *
		 * @return array|false
		 */
		public function get_block_args( $block_key = 'all' ) {
			if ( 'all' === $block_key ) {
				return $this->blocks_args;
			} elseif ( isset( $this->blocks_args[ $block_key ] ) ) {
				return $this->blocks_args[ $block_key ];
			}

			return false;
		}

		/**
		 * Retrieve the default category slug
		 *
		 * @return string
		 */
		public function get_default_blocks_category_slug() {
			return $this->category_slug;
		}

		/**
		 * Set the block arguments
		 *
		 * @param array $args The block arguments.
		 */
		public function set_block_args( $args ) {
			foreach ( $args as $block => $block_args ) {

				// Add Default Keywords.
				$default_keywords = array( 'yith' );
				if ( ! empty( $block_args['shortcode_name'] ) ) {
					$default_keywords[] = $block_args['shortcode_name'];
				}

				$args[ $block ]['keywords'] = ! empty( $args[ $block ]['keywords'] ) ? array_merge( $args[ $block ]['keywords'], $default_keywords ) : $default_keywords;

				if ( count( $args[ $block ]['keywords'] ) > 3 ) {
					$args[ $block ]['keywords'] = array_slice( $args[ $block ]['keywords'], 0, 3 );
				}

				if ( empty( $block_args['category'] ) ) {
					// Add the YITH block category.
					$args[ $block ]['category'] = $this->get_default_blocks_category_slug();
				}

				$args[ $block ]['do_shortcode'] = isset( $block_args['do_shortcode'] ) ? ! ! $block_args['do_shortcode'] : true;

				if ( isset( $block_args['attributes'] ) ) {
					foreach ( $block_args['attributes'] as $attr_name => $attributes ) {

						if ( ! empty( $attributes['options'] ) && is_array( $attributes['options'] ) ) {
							$options = array();
							foreach ( $attributes['options'] as $v => $l ) {
								// Prepare options array for react component.
								$options[] = array(
									'label' => $l,
									'value' => $v,
								);
							}
							$args[ $block ]['attributes'][ $attr_name ]['options'] = $options;
						}

						if ( empty( $attributes['remove_quotes'] ) ) {
							$args[ $block ]['attributes'][ $attr_name ]['remove_quotes'] = false;
						}

						// Special Requirements for Block Type.
						if ( ! empty( $attributes['type'] ) ) {
							$args[ $block ]['attributes'][ $attr_name ]['controlType'] = $attributes['type'];
							$args[ $block ]['attributes'][ $attr_name ]['type']        = 'string';

							switch ( $attributes['type'] ) {
								case 'select':
									// Add default value for multiple.
									if ( ! isset( $attributes['multiple'] ) ) {
										$args[ $block ]['attributes'][ $attr_name ]['multiple'] = false;
									}

									if ( ! empty( $attributes['multiple'] ) ) {
										$args[ $block ]['attributes'][ $attr_name ]['type'] = 'array';
									}
									break;

								case 'color':
								case 'colorpicker':
									if ( ! isset( $attributes['disableAlpha'] ) ) {
										// Disable alpha gradient for color picker.
										$args[ $block ]['attributes'][ $attr_name ]['disableAlpha'] = true;
									}
									break;

								case 'number':
									$args[ $block ]['attributes'][ $attr_name ]['type'] = 'integer';
									break;

								case 'toggle':
								case 'checkbox':
									$args[ $block ]['attributes'][ $attr_name ]['type'] = 'boolean';
									break;
							}
						}
					}
				}
			}

			$this->blocks_args = array_merge( $this->blocks_args, $args );
		}

		/**
		 * Get a do_shortcode in ajax call to show block preview
		 **/
		public function do_shortcode() {
			// phpcs:disable WordPress.Security.NonceVerification
			$current_action = current_action();
			$shortcode      = ! empty( $_REQUEST['shortcode'] ) ? wp_unslash( $_REQUEST['shortcode'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

			if ( ! apply_filters( 'yith_plugin_fw_gutenberg_skip_shortcode_sanitize', false ) ) {
				$shortcode = sanitize_text_field( stripslashes( $shortcode ) );
			}

			ob_start();

			do_action( 'yith_plugin_fw_gutenberg_before_do_shortcode', $shortcode, $current_action );
			echo do_shortcode( apply_filters( 'yith_plugin_fw_gutenberg_shortcode', $shortcode, $current_action ) );
			do_action( 'yith_plugin_fw_gutenberg_after_do_shortcode', $shortcode, $current_action );

			$html = ob_get_clean();

			wp_send_json(
				array(
					'html' => $html,
				)
			);

			// phpcs:enable
		}
	}
}

if ( ! function_exists( 'YITH_Gutenberg' ) ) {
	/**
	 * Single instance of YITH_Gutenberg
	 *
	 * @return YITH_Gutenberg
	 */
	function YITH_Gutenberg() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		return YITH_Gutenberg::instance();
	}
}

YITH_Gutenberg();
plugin-fw/includes/builders/elementor/class-yith-elementor.php000064400000006026151327614500020656 0ustar00<?php
/**
 * Elementor Class.
 *
 * @class   YITH_Elementor
 * @package YITH\PluginFramework\Classes
 * @since   3.6.0
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Elementor' ) ) {
	/**
	 * YITH_Elementor class.
	 *
	 * @author  Leanza Francesco <leanzafrancesco@gmail.com>
	 */
	class YITH_Elementor {

		/**
		 * The single instance of the class.
		 *
		 * @var YITH_Elementor
		 */
		private static $instance;

		/**
		 * The registered widgets.
		 *
		 * @var array
		 */
		private $widgets = array();

		/**
		 * Singleton implementation.
		 *
		 * @return YITH_Elementor
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * YITH_Elementor constructor.
		 */
		private function __construct() {
			if ( defined( 'ELEMENTOR_VERSION' ) && version_compare( ELEMENTOR_VERSION, '3.0.0', '>=' ) ) {
				add_action( 'elementor/widgets/widgets_registered', array( $this, 'register_widgets' ) );
				add_action( 'elementor/elements/categories_registered', array( $this, 'add_yith_category' ) );

				add_action( 'elementor/editor/after_enqueue_styles', array( $this, 'enqueue_styles' ) );
				add_action( 'elementor/frontend/after_enqueue_styles', array( $this, 'enqueue_styles' ) );
			}
		}

		/**
		 * Register Elementor widget
		 *
		 * @param string $widget_name    The widget name.
		 * @param array  $widget_options The widget options.
		 */
		public function register_widget( $widget_name, $widget_options ) {
			if ( ! isset( $widget_options['name'] ) ) {
				$widget_options['name'] = $widget_name;
			}
			$this->widgets[ $widget_name ] = $widget_options;
		}

		/**
		 * Let's start with Elementor
		 *
		 * @deprecated 3.7.2
		 */
		public function init() {
		}

		/**
		 * Load files
		 */
		private function load_files() {
			require_once 'class-yith-elementor-widget.php';
		}

		/**
		 * Register Elementor Widgets
		 */
		public function register_widgets() {
			if ( $this->widgets ) {
				$this->load_files();
			}

			foreach ( $this->widgets as $widget ) {
				\Elementor\Plugin::instance()->widgets_manager->register_widget_type( new YITH_Elementor_Widget( array(), array( 'yith_data' => $widget ) ) );
			}
		}

		/**
		 * Add "YITH" category for Elementor widgets
		 *
		 * @param Elementor\Elements_Manager $elements_manager Elements Manager.
		 */
		public function add_yith_category( $elements_manager ) {
			// If the category is empty, it'll be automatically hidden by Elementor.
			$elements_manager->add_category(
				'yith',
				array(
					'title'  => 'YITH',
					'icon'   => 'fa fa-plug',
					'active' => false,
				)
			);
		}

		/**
		 * Enqueue styles in elementor
		 */
		public function enqueue_styles() {
			if ( $this->widgets ) {
				if ( \Elementor\Plugin::$instance->preview->is_preview_mode() || \Elementor\Plugin::$instance->editor->is_edit_mode() ) {
					wp_enqueue_style( 'yith-plugin-fw-icon-font' );
					wp_enqueue_style( 'yith-plugin-fw-elementor' );
				}
			}
		}
	}
}

YITH_Elementor::instance();
plugin-fw/includes/builders/elementor/class-yith-elementor-widget.php000064400000033615151327614500022143 0ustar00<?php
/**
 * Elementor Widget Skeleton Class.
 *
 * @class   YITH_Elementor_Widget
 * @package YITH\PluginFramework\Classes
 * @since   3.6.0
 */

use Elementor\Controls_Manager;
use Elementor\Plugin;
use Elementor\Widget_Base;

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Elementor_Widget' ) ) {
	/**
	 * YITH_Elementor_Widget class.
	 *
	 * @author  Leanza Francesco <leanzafrancesco@gmail.com>
	 */
	class YITH_Elementor_Widget extends Widget_Base {

		/**
		 * YITH Data.
		 *
		 * @var array
		 */
		protected $yith_data = array();

		/**
		 * Widget constructor.
		 *
		 * @param array      $data Widget data. Default is an empty array.
		 * @param array|null $args Optional. Widget default arguments. Default is null.
		 *
		 * @throws Exception If arguments are missing when initializing a full widget instance.
		 */
		public function __construct( $data = array(), $args = null ) {
			$this->yith_data = $args['yith_data'];
			$this->init_yith_data();

			parent::__construct( $data, $args );
		}

		/**
		 * Retrieve an YITH prop.
		 *
		 * @param string            $prop    The prop.
		 * @param bool|string|array $default Default value.
		 *
		 * @return mixed|string
		 */
		public function get_yith_prop( $prop, $default = null ) {
			if ( is_null( $default ) ) {
				$defaults = $this->get_yith_data_defaults();
				$default  = array_key_exists( $prop, $defaults ) ? $defaults[ $prop ] : false;
			}

			return array_key_exists( $prop, $this->yith_data ) ? $this->yith_data[ $prop ] : $default;
		}

		/**
		 * Get element name.
		 *
		 * @return string
		 */
		public function get_name() {
			return $this->get_yith_prop( 'name', '' );
		}

		/**
		 * Get the element title.
		 *
		 * @return string
		 */
		public function get_title() {
			return $this->get_yith_prop( 'title', '' );
		}

		/**
		 * Get the element icon.
		 *
		 * @return string
		 */
		public function get_icon() {
			return $this->get_yith_prop( 'icon', 'yith-icon yith-icon-yith' );
		}

		/**
		 * Get widget categories.
		 *
		 * @return array Widget categories.
		 */
		public function get_categories() {
			return array( 'yith' ) + (array) $this->get_yith_prop( 'categories', array() );
		}

		/**
		 * Register the widget controls.
		 */
		public function _register_controls() { // phpcs:ignore
			$options     = $this->get_yith_prop( 'options' );
			$description = $this->get_yith_prop( 'description' );

			if ( $options ) {
				$this->start_controls_section(
					'options',
					array(
						'label' => $this->get_yith_prop( 'section_title' ),
						'tab'   => Controls_Manager::TAB_CONTENT,
					)
				);

				if ( $description ) {
					$this->add_control(
						'description',
						array(
							'type'            => Controls_Manager::RAW_HTML,
							'raw'             => $description,
							'content_classes' => 'yith-plugin-fw-elementor-widget-description',
						)
					);
				}

				foreach ( $options as $option ) {
					if ( ! isset( $option['type'] ) ) {
						continue;
					}

					$this->add_control( $option['yith_key'], $option );
				}

				$this->end_controls_section();
			} elseif ( $description ) {
				$this->start_controls_section(
					'options',
					array(
						'label' => $this->get_title(),
						'tab'   => Controls_Manager::TAB_CONTENT,
					)
				);
				$this->add_control(
					'description',
					array(
						'type'            => Controls_Manager::RAW_HTML,
						'raw'             => $description,
						'content_classes' => 'yith-plugin-fw-elementor-widget-description',
					)
				);

				$this->end_controls_section();
			}
		}

		/**
		 * Render the content of the widget
		 */
		protected function render() {
			$settings         = $this->get_settings_for_display();
			$option_values    = $this->get_yith_option_values();
			$options          = $this->get_yith_prop( 'options' );
			$shortcode_name   = $this->get_yith_prop( 'shortcode_name' );
			$do_shortcode     = ! ! $this->get_yith_prop( 'do_shortcode' );
			$render_cb        = $this->get_yith_prop( 'render_cb' );
			$editor_render_cb = $this->get_yith_prop( 'editor_render_cb' );
			$empty_message    = $this->get_yith_prop( 'empty_message', '' );

			if ( Plugin::$instance->editor->is_edit_mode() && $editor_render_cb && is_callable( $editor_render_cb ) ) {
				echo call_user_func( $editor_render_cb, $option_values ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			} elseif ( $render_cb && is_callable( $render_cb ) ) {
				echo call_user_func( $render_cb, $option_values ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			} else {
				$shortcode_attrs = array();

				foreach ( $options as $option ) {
					$display_key = $option['yith_display_key'];
					$value       = isset( $option_values[ $display_key ] ) ? $option_values[ $display_key ] : null;
					$show        = $this->is_control_visible( $option, $settings );

					if ( $show && ! is_null( $value ) && '' !== $value ) {
						$value             = is_array( $value ) ? implode( ',', $value ) : $value;
						$shortcode_value   = ! empty( $option['remove_quotes'] ) ? $value : ( '"' . $value . '"' );
						$shortcode_attrs[] = $display_key . '=' . $shortcode_value;
					}
				}

				$shortcode_attrs = implode( ' ', $shortcode_attrs );
				$shortcode       = "[{$shortcode_name} {$shortcode_attrs}]";

				if ( Plugin::$instance->editor->is_edit_mode() ) {
					$html = esc_html( $shortcode );
					if ( $do_shortcode ) {
						do_action( 'yith_plugin_fw_elementor_editor_before_do_shortcode', $shortcode, $this );
						$html = do_shortcode( apply_filters( 'yith_plugin_fw_elementor_editor_shortcode', $shortcode, $this ) );
						do_action( 'yith_plugin_fw_elementor_editor_after_do_shortcode', $shortcode, $this );
					}
					$type         = $do_shortcode ? 'html' : 'shortcode';
					$html_to_show = $html;
					$message      = '';

					if ( $do_shortcode && $empty_message && ! $html ) {
						$type         = 'empty-html';
						$html_to_show = esc_html( $shortcode );
						$message      = $empty_message;
					}

					$show_title   = in_array( $type, array( 'shortcode', 'empty-html' ), true );
					$show_content = 'empty-html' !== $type;
					?>
					<div class="yith-plugin-fw-elementor-shortcode-widget yith-plugin-fw-elementor-shortcode-widget--<?php echo esc_attr( $type ); ?>">
						<?php if ( $show_title ) : ?>
							<div class="yith-plugin-fw-elementor-shortcode-widget__title">
								<?php echo esc_html( $this->get_title() ); ?>
							</div>
						<?php endif; ?>
						<?php if ( $message ) : ?>
							<div class="yith-plugin-fw-elementor-shortcode-widget__message">
								<?php echo wp_kses_post( $message ); ?>
							</div>
						<?php endif; ?>
						<?php if ( $show_content ) : ?>
							<div class="yith-plugin-fw-elementor-shortcode-widget__content">
								<?php echo $html_to_show; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
							</div>
						<?php endif; ?>
					</div>
					<?php
				} else {
					do_action( 'yith_plugin_fw_elementor_before_do_shortcode', $shortcode, $this );
					echo do_shortcode( apply_filters( 'yith_plugin_fw_elementor_shortcode', $shortcode, $this ) );
					do_action( 'yith_plugin_fw_elementor_after_do_shortcode', $shortcode, $this );
				}
			}
		}

		/**
		 * Retrieve the YITH Data defaults.
		 *
		 * @return array
		 */
		public function get_yith_data_defaults() {
			return array(
				'map_from_gutenberg' => false,
				'shortcode_name'     => '',
				'do_shortcode'       => true,
				'render_cb'          => false,
				'editor_render_cb'   => false,
				'options'            => array(),
				'section_title'      => sprintf(
				// translators: %s it the Elementor Widget title.
					_x( '%s - Options', 'Elementor Widget - section title', 'yith-plugin-fw' ),
					$this->get_title()
				),
			);
		}

		/**
		 * Retrieve YITH options with their values.
		 */
		protected function get_yith_option_values() {
			$settings           = $this->get_settings_for_display();
			$map_from_gutenberg = $this->get_yith_prop( 'map_from_gutenberg' );
			$options            = $this->get_yith_prop( 'options' );
			$option_values      = array();

			foreach ( $options as $option ) {
				$value       = isset( $option['default'] ) ? $option['default'] : null;
				$key         = $option['yith_key'];
				$display_key = $option['yith_display_key'];

				if ( isset( $settings[ $key ] ) ) {
					$value = $settings[ $key ];
				}

				if ( isset( $option['type'] ) && Controls_Manager::SWITCHER === $option['type'] ) {
					$yes_no_values = isset( $option['yes_no_values'] ) ? $option['yes_no_values'] : ! $map_from_gutenberg;
					if ( false === $yes_no_values ) {
						$yes_no_values = array( 'true', 'false' );
					} elseif ( ! is_array( $yes_no_values ) || 2 !== count( $yes_no_values ) ) {
						$yes_no_values = array( 'yes', 'no' );
					}

					$value = 'yes' === $value ? $yes_no_values[0] : $yes_no_values[1];
				}

				$option_values[ $display_key ] = $value;
			}

			return $option_values;
		}

		/**
		 * YITH Data Initialization.
		 */
		protected function init_yith_data() {
			$data = wp_parse_args( $this->yith_data, $this->get_yith_data_defaults() );

			if ( ! ! $data['map_from_gutenberg'] ) {
				$data = $this->override_elementor_specific_data( $data );

				if ( ! $data['options'] && ! empty( $data['attributes'] ) && is_array( $data['attributes'] ) ) {
					$data['options'] = $data['attributes'];
					unset( $data['attributes'] );
				}

				if ( $data['options'] ) {
					$data['options'] = array_map( array( $this, 'map_option_from_gutenberg' ), $data['options'] );
				}
			}

			$data['options'] = $this->validate_yith_options( $data['options'] );

			$this->yith_data = $data;
		}

		/**
		 * Validate field types
		 *
		 * @param array $options The options.
		 *
		 * @return array|false The validate option array; false if the type is not set.
		 */
		protected function validate_yith_options( $options ) {
			foreach ( $options as $key => &$option ) {
				if ( ! isset( $option['type'] ) ) {
					unset( $options[ $key ] );
					continue;
				}

				// Let's fix the option type.
				if ( in_array( $option['type'], array( 'toggle', 'onoff', 'checkbox' ), true ) ) {
					$option['type'] = Controls_Manager::SWITCHER;

					if ( isset( $option['default'] ) && is_bool( $option['default'] ) ) {
						$option['default'] = yith_plugin_fw_is_true( $option['default'] ) ? 'yes' : 'no';
					}
				} elseif ( in_array( $option['type'], array( 'radio' ), true ) ) {
					$option['type'] = Controls_Manager::SELECT;
				} elseif ( in_array( $option['type'], array( 'color', 'colorpicker', 'color-palette' ), true ) ) {
					$option['type'] = Controls_Manager::COLOR;
				} elseif ( in_array( $option['type'], array( 'select' ), true ) && ! empty( $option['multiple'] ) ) {
					$option['type'] = Controls_Manager::SELECT2;
				}

				// Set the key, used to store the option, and the display_key, used in the render method.
				$option['yith_key'] = $this->maybe_prefix_yith_key( $key );
				if ( ! isset( $option['yith_display_key'] ) ) {
					$option['yith_display_key'] = $key;
				}

				// Auto-set the block_label to display label in a separate line.
				if ( ! isset( $option['label_block'] ) ) {
					$option['label_block'] = true;
				}
			}

			return $options;
		}

		/**
		 * Override Elementor specific data if exists.
		 * This allows setting/overriding specific values for Elementor.
		 *
		 * @param array $data The data array.
		 *
		 * @return array
		 */
		protected function override_elementor_specific_data( $data ) {
			$elementor_data = array_filter(
				$data,
				function ( $key ) {
					return 'elementor_' === substr( $key, 0, 10 );
				},
				ARRAY_FILTER_USE_KEY
			);

			$elementor_data = array_combine(
				array_map(
					function ( $key ) {
						return substr( $key, 10 );
					},
					array_keys( $elementor_data )
				),
				array_values( $elementor_data )
			);

			$data = array_merge( $data, $elementor_data );

			return $data;
		}

		/**
		 * Map an option from Gutenberg
		 *
		 * @param array $option The option array.
		 *
		 * @return array
		 */
		protected function map_option_from_gutenberg( $option ) {
			$option = $this->override_elementor_specific_data( $option );
			$type   = isset( $option['type'] ) ? $option['type'] : false;

			if ( ! empty( $option['deps'] ) && ! isset( $option['condition'] ) ) {
				if ( isset( $option['deps']['id'], $option['deps']['value'] ) ) {
					$deps = array(
						array(
							'id'    => $option['deps']['id'],
							'value' => $option['deps']['value'],
						),
					);
				} else {
					$deps = $option['deps'];
				}

				$option['condition'] = array();

				foreach ( $deps as $dep ) {
					if ( isset( $dep['id'], $dep['value'] ) ) {
						$dep_value = $dep['value'];
						$dep_id    = $dep['id'];
						if ( in_array( $type, array( 'toggle', 'onoff', 'checkbox' ), true ) ) {
							$dep_value = yith_plugin_fw_is_true( $dep_value ) ? 'yes' : 'no';
						}
						$option['condition'][ $dep_id ] = $dep_value;
					}
				}

				unset( $option['deps'] );
			}

			switch ( $type ) {
				case 'color':
				case 'colorpicker':
					if ( ! isset( $option['alpha'] ) ) {
						$option['alpha'] = isset( $option['disableAlpha'] ) ? ! $option['disableAlpha'] : false;
					}

					break;
				case 'color-palette':
					$option['alpha'] = false;
					break;
			}

			if ( isset( $option['help'] ) && ! isset( $option['description'] ) ) {
				$option['description'] = $option['help'];
				unset( $option['help'] );
			}

			return $option;
		}

		/**
		 * Return the YITH key prefix.
		 *
		 * @return string
		 */
		public function get_yith_key_prefix() {
			return '_yith_';
		}

		/**
		 * Add YITH prefix to a specific key.
		 *
		 * @param string $key The key to be prefixed.
		 *
		 * @return string
		 */
		public function maybe_prefix_yith_key( $key ) {
			$reserved_keys = array( 'id', 'elType', 'settings', 'elements', 'isInner' );
			if ( in_array( $key, $reserved_keys, true ) ) {
				$prefix = $this->get_yith_key_prefix();

				$key = substr( $key, 0, strlen( $prefix ) ) === $prefix ? $key : ( $prefix . $key );
			}

			return $key;
		}
	}
}
plugin-fw/includes/class-yit-upgrade.php000064400000003046151327614500014337 0ustar00<?php
/**
 * YITH Upgrade Class
 * handle notifications and plugin updates.
 *
 * @class   YIT_Upgrade
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Upgrade' ) ) {
	/**
	 * YIT_Upgrade class.
	 */
	class YIT_Upgrade {
		/**
		 * The single instance of the class.
		 *
		 * @var YIT_Upgrade
		 */
		private static $instance;

		/**
		 * Singleton implementation.
		 *
		 * @return YIT_Upgrade
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * YIT_Upgrade constructor.
		 */
		private function __construct() {
			// Silence is golden.
		}

		/**
		 * Premium products registration.
		 *
		 * @param string $plugin_slug The plugin slug.
		 * @param string $plugin_init The plugin init file.
		 */
		public function register( $plugin_slug, $plugin_init ) {
			if ( ! function_exists( 'YITH_Plugin_Upgrade' ) ) {
				// Try to load YITH_Plugin_Upgrade class.
				yith_plugin_fw_load_update_and_licence_files();
			}

			if ( function_exists( 'YITH_Plugin_Upgrade' ) && is_callable( array( YITH_Plugin_Upgrade(), 'register' ) ) ) {
				YITH_Plugin_Upgrade()->register( $plugin_slug, $plugin_init );
			}
		}
	}
}

if ( ! function_exists( 'YIT_Upgrade' ) ) {
	/**
	 * Single instance of YIT_Upgrade
	 *
	 * @return YIT_Upgrade
	 */
	function YIT_Upgrade() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		return YIT_Upgrade::instance();
	}
}

YIT_Upgrade();
plugin-fw/includes/class-yith-dashboard.php000064400000011560151327614500015007 0ustar00<?php
/**
 * YITH Dashboard Class
 * handle WordPress Admin Dashboard
 *
 * @class   YITH_Dashboard
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Dashboard' ) ) {
	/**
	 * YITH_Dashboard class.
	 */
	class YITH_Dashboard {
		/**
		 * Products Feed URL
		 *
		 * @var string
		 */
		private static $products_feed = 'https://yithemes.com/latest-updates/feeds/';

		/**
		 * Blog Feed URL
		 *
		 * @var string
		 */
		private static $blog_feed = 'https://yithemes.com/feed/';

		/**
		 * Dashboard widget setup.
		 */
		public static function dashboard_widget_setup() {
			wp_add_dashboard_widget( 'yith_dashboard_products_news', __( 'YITH Latest Updates', 'yith-plugin-fw' ), 'YITH_Dashboard::dashboard_products_news' );
			wp_add_dashboard_widget( 'yith_dashboard_blog_news', __( 'Latest news from YITH Blog', 'yith-plugin-fw' ), 'YITH_Dashboard::dashboard_blog_news' );
		}


		/**
		 * Product news Widget
		 */
		public static function dashboard_products_news() {
			$items = 10;
			$rss   = static::$products_feed;
			if ( is_string( $rss ) ) {
				$rss = fetch_feed( $rss );
			} elseif ( is_array( $rss ) && isset( $rss['url'] ) ) {
				$rss = fetch_feed( $rss['url'] );
			} elseif ( ! is_object( $rss ) ) {
				return;
			}

			if ( is_wp_error( $rss ) ) {
				if ( is_admin() || current_user_can( 'manage_options' ) ) {
					echo '<p><strong>' . esc_html__( 'RSS Error:', 'yith-plugin-fw' ) . '</strong> ' . wp_kses_post( $rss->get_error_message() ) . '</p>';
				}

				return;
			}

			if ( ! $rss->get_item_quantity() ) {
				echo '<ul><li>' . esc_html__( 'An error has occurred, which probably means the feed is down. Try again later.', 'yith-plugin-fw' ) . '</li></ul>';
				$rss->__destruct();
				unset( $rss );

				return;
			}

			/**
			 * The feed items.
			 *
			 * @var SimplePie_Item[] $last_updates
			 */
			$last_updates = $rss->get_items( 0, $items );
			$html_classes = 'rsswidget yith-update-feeds';
			$output       = '';

			if ( count( $last_updates ) > 0 ) {
				$output = '<ul class="yith-update-feeds">';
			}

			foreach ( $last_updates as $last_update ) {
				$output .= '<li class="yith-update-feed">';

				$date      = $last_update->get_date( 'U' );
				$date_i18n = ! empty( $date ) ? date_i18n( get_option( 'date_format' ), $date ) : '';
				$html_date = ! empty( $date_i18n ) ? ' <span class="rss-date">' . date_i18n( get_option( 'date_format' ), $date ) . '</span>' : '';

				$output .= sprintf( '<a target="_blank" href="%s" class="%s">%s</a> %s', $last_update->get_permalink(), $html_classes, $last_update->get_title(), $html_date );

				$changelog = $last_update->get_description();

				if ( ! empty( $changelog ) ) {
					$output .= ' - ';
					$output .= sprintf( '<a class="yith-last-changelog" href="#" data-changelogid="%s" data-plugininfo="%s">%s</a>', $last_update->get_id( true ), $last_update->get_title(), _x( 'View Changelog', 'Plugin FW', 'yith-plugin-fw' ) );
					$output .= sprintf( '<div style="display: none;" id="%s"><div style="display: table;"><img class="yith-feeds-logo" src="%s" /><h3 class="yith-feeds-plugin-name"><span style="font-weight: normal;">%s</span> %s</h3></div><p>%s</p></div>', $last_update->get_id( true ), yith_plugin_fw_get_default_logo(), _x( 'Latest update released on', 'Plugin FW', 'yith-plugin-fw' ), $date_i18n, $changelog );
				}

				$output .= '</li>';
			}

			if ( ! empty( $output ) ) {
				$output .= '</ul>';
			}

			echo wp_kses_post( $output );
			$rss->__destruct();
			unset( $rss );
		}

		/**
		 * Blog news Widget
		 */
		public static function dashboard_blog_news() {
			$args = array(
				'show_author'  => 0,
				'show_date'    => 1,
				'show_summary' => 1,
				'items'        => 3,
			);
			$feed = static::$blog_feed;
			wp_widget_rss_output( $feed, $args );
		}

		/**
		 * Enqueue Styles and Scripts for View Last Changelog widget
		 */
		public static function enqueue_scripts() {
			if ( function_exists( 'get_current_screen' ) && get_current_screen() && 'dashboard' === get_current_screen()->id ) {
				$script_path = defined( 'YIT_CORE_PLUGIN_URL' ) ? YIT_CORE_PLUGIN_URL : get_template_directory_uri() . '/core/plugin-fw';
				$suffix      = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
				wp_enqueue_script( 'yith-dashboard', $script_path . '/assets/js/yith-dashboard' . $suffix . '.js', array( 'jquery-ui-dialog' ), yith_plugin_fw_get_version(), true );
				wp_enqueue_style( 'wp-jquery-ui-dialog' );
				$l10n = array(
					'buttons' => array(
						'close' => _x( 'Close', 'Button label', 'yith-plugin-fw' ),
					),
				);
				wp_localize_script( 'yith-dashboard', 'yith_dashboard', $l10n );
			}
		}
	}

	if ( apply_filters( 'yith_plugin_fw_show_dashboard_widgets', true ) ) {
		add_action( 'wp_dashboard_setup', 'YITH_Dashboard::dashboard_widget_setup' );
		add_action( 'admin_enqueue_scripts', 'YITH_Dashboard::enqueue_scripts', 20 );
	}
}
plugin-fw/includes/class-yith-system-status.php000064400000062271151327614500015732 0ustar00<?php
/**
 * YITH System Status Class
 * handle System Status panel
 *
 * @class   YITH_System_Status
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_System_Status' ) ) {
	/**
	 * YITH_System_Status class.
	 *
	 * @author     Alberto Ruggiero
	 */
	class YITH_System_Status {
		/**
		 * The page slug
		 *
		 * @var string
		 */
		protected $page = 'yith_system_info';

		/**
		 * Plugins requirements list
		 *
		 * @var array
		 */
		protected $plugins_requirements = array();

		/**
		 * Requirements labels
		 *
		 * @var array
		 */
		public $requirement_labels = array();

		/**
		 * Recommended memory amount 134217728 = 128M
		 *
		 * @var integer
		 */
		private $recommended_memory = 134217728;

		/**
		 * Single instance of the class
		 *
		 * @since 1.0.0
		 * @var YITH_System_Status
		 */
		protected static $instance = null;

		/**
		 * Main plugin Instance
		 *
		 * @return YITH_System_Status
		 * @since  1.0.0
		 * @author Alberto Ruggiero
		 */
		public static function instance() {
			if ( is_null( self::$instance ) ) {
				self::$instance = new self();
			}

			return self::$instance;
		}

		/**
		 * Constructor
		 *
		 * @return void
		 * @since  1.0.0
		 * @author Alberto Ruggiero
		 */
		public function __construct() {

			if ( ! is_admin() ) {
				return;
			}

			/**
			 * Add to prevent trigger admin_init called directly
			 * wp-admin/admin-post.php?page=yith_system_info
			 */
			if ( ! is_user_logged_in() ) {
				return;
			}

			add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
			add_action( 'admin_init', array( $this, 'check_system_status' ) );
			add_action( 'admin_notices', array( $this, 'activate_system_notice' ), 15 );
			add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 20 );
			add_action( 'init', array( $this, 'set_requirements_labels' ) );
			add_action( 'wp_ajax_yith_create_log_file', array( $this, 'create_log_file' ) );

		}

		/**
		 * Set requirements labels
		 *
		 * @return void
		 * @since  1.0.0
		 * @author Alberto Ruggiero
		 */
		public function set_requirements_labels() {

			$this->requirement_labels = array(
				'min_wp_version'    => esc_html__( 'WordPress Version', 'yith-plugin-fw' ),
				'min_wc_version'    => esc_html__( 'WooCommerce Version', 'yith-plugin-fw' ),
				'wp_memory_limit'   => esc_html__( 'Available Memory', 'yith-plugin-fw' ),
				'min_php_version'   => esc_html__( 'PHP Version', 'yith-plugin-fw' ),
				'min_tls_version'   => esc_html__( 'TLS Version', 'yith-plugin-fw' ),
				'wp_cron_enabled'   => esc_html__( 'WordPress Cron', 'yith-plugin-fw' ),
				'simplexml_enabled' => esc_html__( 'SimpleXML', 'yith-plugin-fw' ),
				'mbstring_enabled'  => esc_html__( 'MultiByte String', 'yith-plugin-fw' ),
				'imagick_version'   => esc_html__( 'ImageMagick Version', 'yith-plugin-fw' ),
				'gd_enabled'        => esc_html__( 'GD Library', 'yith-plugin-fw' ),
				'iconv_enabled'     => esc_html__( 'Iconv Module', 'yith-plugin-fw' ),
				'opcache_enabled'   => esc_html__( 'OPCache Save Comments', 'yith-plugin-fw' ),
				'url_fopen_enabled' => esc_html__( 'URL FOpen', 'yith-plugin-fw' ),
			);

		}

		/**
		 * Add "System Information" submenu page under YITH Plugins
		 *
		 * @return void
		 * @since  1.0.0
		 * @author Alberto Ruggiero
		 */
		public function add_submenu_page() {

			$system_info  = get_option( 'yith_system_info', array() );
			$error_notice = ( isset( $system_info['errors'] ) && true === $system_info['errors'] ? ' <span class="yith-system-info-menu update-plugins">!</span>' : '' );
			$settings     = array(
				'parent_page' => 'yith_plugin_panel',
				'page_title'  => esc_html__( 'System Status', 'yith-plugin-fw' ),
				'menu_title'  => esc_html__( 'System Status', 'yith-plugin-fw' ) . $error_notice,
				'capability'  => 'manage_options',
				'page'        => $this->page,
			);

			add_submenu_page(
				$settings['parent_page'],
				$settings['page_title'],
				$settings['menu_title'],
				$settings['capability'],
				$settings['page'],
				array( $this, 'show_information_panel' )
			);
		}

		/**
		 * Add "System Information" page template under YITH Plugins
		 *
		 * @return void
		 * @since  1.0.0
		 * @author Alberto Ruggiero
		 */
		public function show_information_panel() {

			$path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';

			require_once $path . '/templates/sysinfo/system-information-panel.php';

		}

		/**
		 * Perform system status check
		 *
		 * @return void
		 * @since  1.0.0
		 * @author Alberto Ruggiero
		 */
		public function check_system_status() {

			if ( '' === get_option( 'yith_system_info' ) || ( isset( $_GET['page'] ) && $_GET['page'] === $this->page ) ) { //phpcs:ignore

				$this->add_requirements(
					esc_html__( 'YITH Plugins', 'yith-plugin-fw' ),
					array(
						'min_wp_version'  => '5.6',
						'min_wc_version'  => '5.3',
						'min_php_version' => '7.0',
					)
				);
				$this->add_requirements(
					esc_html__( 'WooCommerce', 'yith-plugin-fw' ),
					array(
						'wp_memory_limit' => '64M',
					)
				);

				$system_info   = $this->get_system_info();
				$check_results = array();
				$errors        = 0;

				foreach ( $system_info as $key => $value ) {
					$check_results[ $key ] = array( 'value' => $value );

					if ( isset( $this->plugins_requirements[ $key ] ) ) {

						foreach ( $this->plugins_requirements[ $key ] as $plugin_name => $required_value ) {

							switch ( $key ) {
								case 'wp_cron_enabled':
								case 'mbstring_enabled':
								case 'simplexml_enabled':
								case 'gd_enabled':
								case 'iconv_enabled':
								case 'url_fopen_enabled':
								case 'opcache_enabled':
									if ( ! $value ) {
										$check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
										$errors ++;
									}
									break;

								case 'wp_memory_limit':
									$required_memory = $this->memory_size_to_num( $required_value );

									if ( $required_memory > $value ) {
										$check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
										$errors ++;

									} elseif ( $this->recommended_memory > $value && $value > $required_value ) {
										$check_results[ $key ]['warnings'] = 'yes';
									}
									break;

								default:
									if ( 'imagick_version' === $key ) {
										if ( ! version_compare( $value, $required_value, '>=' ) ) {
											$check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
											$errors ++;
										}
									} else {
										if ( 'n/a' !== $value ) {
											if ( ! version_compare( $value, $required_value, '>=' ) ) {
												$check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
												$errors ++;
											}
										} else {
											if ( 'min_wc_version' !== $key ) {
												$check_results[ $key ]['warnings'][ $plugin_name ] = $required_value;
											}
										}
									}
							}
						}
					}
				}

				update_option(
					'yith_system_info',
					array(
						'system_info' => $check_results,
						'errors'      => $errors > 0,
					)
				);

			}

		}

		/**
		 * Handle plugin requirements
		 *
		 * @param string $plugin_name  The name of the plugin.
		 * @param array  $requirements Array of plugin requirements.
		 *
		 * @return void
		 * @since  1.0.0
		 * @author Alberto Ruggiero
		 */
		public function add_requirements( $plugin_name, $requirements ) {

			$allowed_requirements = array_keys( $this->requirement_labels );

			foreach ( $requirements as $requirement => $value ) {

				if ( in_array( $requirement, $allowed_requirements, true ) ) {
					$this->plugins_requirements[ $requirement ][ $plugin_name ] = $value;
				}
			}

		}

		/**
		 * Manages notice dismissing
		 *
		 * @return  void
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function enqueue_scripts() {
			$script_path = defined( 'YIT_CORE_PLUGIN_URL' ) ? YIT_CORE_PLUGIN_URL : get_template_directory_uri() . '/core/plugin-fw';
			wp_register_script( 'yith-system-info', yit_load_js_file( $script_path . '/assets/js/yith-system-info.js' ), array( 'jquery' ), '1.0.0', true );

			if ( isset( $_GET['page'] ) && 'yith_system_info' === $_GET['page'] ) { //phpcs:ignore
				wp_enqueue_style( 'yit-plugin-style' );
				wp_enqueue_style( 'yith-plugin-fw-fields' );
				wp_enqueue_script( 'yith-system-info' );

				$params = array(
					'ajax_url' => admin_url( 'admin-ajax.php' ),
				);

				wp_localize_script( 'yith-system-info', 'yith_sysinfo', $params );

			}

		}

		/**
		 * Show system notice
		 *
		 * @return  void
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function activate_system_notice() {

			$system_info = get_option( 'yith_system_info', '' );

			if ( ( isset( $_GET['page'] ) && $_GET['page'] === $this->page ) || ( ! empty( $_COOKIE['hide_yith_system_alert'] ) && 'yes' === $_COOKIE['hide_yith_system_alert'] ) || ( '' === $system_info ) || ( '' !== $system_info && false === $system_info['errors'] ) ) { //phpcs:ignore
				return;
			}

			$show_notice = true;

			if ( true === $show_notice ) {
				wp_enqueue_script( 'yith-system-info' );
				?>
				<div id="yith-system-alert" class="notice notice-error is-dismissible" style="position: relative;">
					<p>
						<span class="yith-logo"><img src="<?php echo esc_attr( yith_plugin_fw_get_default_logo() ); ?>" /></span>
						<b>
							<?php esc_html_e( 'Warning!', 'yith-plugin-fw' ); ?>
						</b><br />
						<?php
						/* translators: %1$s open link tag, %2$s open link tag*/
						echo sprintf( esc_html__( 'The system check has detected some compatibility issues on your installation.%1$sClick here%2$s to know more', 'yith-plugin-fw' ), '<a href="' . esc_url( add_query_arg( array( 'page' => $this->page ), admin_url( 'admin.php' ) ) ) . '">', '</a>' );
						?>
					</p>
					<span class="notice-dismiss"></span>

				</div>
				<?php
			}
		}

		/**
		 * Get system information
		 *
		 * @return  array
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function get_system_info() {
			$tls             = $this->get_tls_version();
			$imagick_version = 'n/a';

			// Get PHP version.
			preg_match( '#^\d+(\.\d+)*#', PHP_VERSION, $match );
			$php_version = $match[0];

			// WP memory limit.
			$wp_memory_limit = $this->memory_size_to_num( WP_MEMORY_LIMIT );
			if ( function_exists( 'memory_get_usage' ) ) {
				$wp_memory_limit = max( $wp_memory_limit, $this->memory_size_to_num( @ini_get( 'memory_limit' ) ) ); //phpcs:ignore
			}

			if ( class_exists( 'Imagick' ) && is_callable( array( 'Imagick', 'getVersion' ) ) ) {
				preg_match( '/([0-9]+\.[0-9]+\.[0-9]+)/', Imagick::getVersion()['versionString'], $imatch );
				$imagick_version = $imatch[0];
			}

			return apply_filters(
				'yith_system_additional_check',
				array(
					'min_wp_version'    => get_bloginfo( 'version' ),
					'min_wc_version'    => function_exists( 'WC' ) ? WC()->version : 'n/a',
					'wp_memory_limit'   => $wp_memory_limit,
					'min_php_version'   => $php_version,
					'min_tls_version'   => $tls,
					'imagick_version'   => $imagick_version,
					'wp_cron_enabled'   => ( ! ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) || apply_filters( 'yith_system_status_server_cron', false ) ),
					'mbstring_enabled'  => extension_loaded( 'mbstring' ),
					'simplexml_enabled' => extension_loaded( 'simplexml' ),
					'gd_enabled'        => extension_loaded( 'gd' ) && function_exists( 'gd_info' ),
					'iconv_enabled'     => extension_loaded( 'iconv' ),
					'opcache_enabled'   => ini_get( 'opcache.save_comments' ),
					'url_fopen_enabled' => ini_get( 'allow_url_fopen' ),
				)
			);

		}

		/**
		 * Get log file
		 *
		 * @return  void
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function create_log_file() {
			try {

				global $wp_filesystem;

				if ( empty( $wp_filesystem ) ) {
					require_once ABSPATH . '/wp-admin/includes/file.php';
					WP_Filesystem();
				}

				$download_file  = false;
				$file_content   = '';
				$requested_file = $_POST['file']; //phpcs:ignore

				switch ( $requested_file ) {
					case 'error_log':
						$file_content = $wp_filesystem->get_contents( ABSPATH . 'error_log' );
						break;
					case 'debug.log':
						$file_content = $wp_filesystem->get_contents( WP_CONTENT_DIR . '/debug.log' );
						break;
				}

				if ( '' !== $file_content ) {
					$file          = wp_upload_dir()['basedir'] . '/' . $requested_file . '.txt';
					$download_file = wp_upload_dir()['baseurl'] . '/' . $requested_file . '.txt';
					$wp_filesystem->put_contents( $file, $file_content );
				}

				wp_send_json( array( 'file' => $download_file ) );
			} catch ( Exception $e ) {
				wp_send_json( array( 'file' => false ) );
			}
		}

		/**
		 * Convert size into number
		 *
		 * @param string $memory_size Memory size to convert.
		 *
		 * @return  integer
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function memory_size_to_num( $memory_size ) {
			$unit = strtoupper( substr( $memory_size, - 1 ) );
			$size = substr( $memory_size, 0, - 1 );

			$multiplier = array(
				'P' => 5,
				'T' => 4,
				'G' => 3,
				'M' => 2,
				'K' => 1,
			);

			if ( isset( $multiplier[ $unit ] ) ) {
				for ( $i = 1; $i <= $multiplier[ $unit ]; $i ++ ) {
					$size *= 1024;
				}
			}

			return $size;
		}

		/**
		 * Format requirement value
		 *
		 * @param string $key   Requirement Key.
		 * @param mixed  $value Requirement value.
		 *
		 * @return  void
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function format_requirement_value( $key, $value ) {

			if ( strpos( $key, '_enabled' ) !== false ) {
				echo esc_attr( $value ) ? esc_html__( 'Enabled', 'yith-plugin-fw' ) : esc_html__( 'Disabled', 'yith-plugin-fw' );
			} elseif ( 'wp_memory_limit' === $key ) {
				echo esc_html( size_format( $value ) );
			} else {
				if ( 'n/a' === $value ) {
					echo esc_html__( 'N/A', 'yith-plugin-fw' );
				} else {
					echo esc_attr( $value );
				}
			}

		}

		/**
		 * Print error messages
		 *
		 * @param string $key   Requirement key.
		 * @param array  $item  Requirement item.
		 * @param string $label Requirement label.
		 *
		 * @return  void
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function print_error_messages( $key, $item, $label ) {
			?>
			<ul>
				<?php foreach ( $item['errors'] as $plugin => $requirement ) : ?>
					<li>
						<?php
						if ( strpos( $key, '_enabled' ) !== false ) {
							/* translators: %1$s plugin name, %2$s requirement name */
							echo sprintf( esc_html__( '%1$s needs %2$s enabled', 'yith-plugin-fw' ), '<b>' . esc_attr( $plugin ) . '</b>', '<b>' . esc_attr( $label ) . '</b>' );
						} elseif ( 'wp_memory_limit' === $key ) {
							/* translators: %1$s plugin name, %2$s required memory amount */
							echo sprintf( esc_html__( '%1$s needs at least %2$s of available memory', 'yith-plugin-fw' ), '<b>' . esc_attr( $plugin ) . '</b>', '<span class="error">' . esc_html( size_format( $this->memory_size_to_num( $requirement ) ) ) . '</span>' );
						} else {
							/* translators: %1$s plugin name, %2$s version number */
							echo sprintf( esc_html__( '%1$s needs at least %2$s version', 'yith-plugin-fw' ), '<b>' . esc_attr( $plugin ) . '</b>', '<span class="error">' . esc_attr( $requirement ) . '</span>' );
						}
						?>
					</li>
				<?php endforeach; ?>
			</ul>
			<?php
		}

		/**
		 * Print solution suggestions
		 *
		 * @param string $key   Requirement key.
		 * @param array  $item  Requirement item.
		 * @param string $label Requirement label.
		 *
		 * @return  void
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function print_solution_suggestion( $key, $item, $label ) {
			switch ( $key ) {
				case 'min_wp_version':
				case 'min_wc_version':
					esc_html_e( 'Update it to the latest version in order to benefit of all new features and security updates.', 'yith-plugin-fw' );
					break;
				case 'min_php_version':
				case 'min_tls_version':
					esc_html_e( 'Contact your hosting company in order to update it.', 'yith-plugin-fw' );
					break;
				case 'imagick_version':
					if ( 'n/a' === $item['value'] ) {
						esc_html_e( 'Contact your hosting company in order to install it.', 'yith-plugin-fw' );
					} else {
						esc_html_e( 'Contact your hosting company in order to update it.', 'yith-plugin-fw' );
					}
					break;
				case 'wp_cron_enabled':
					/* translators: %1$s code, %2$s file name */
					echo sprintf( esc_html__( 'Remove %1$s from %2$s file', 'yith-plugin-fw' ), '<code>define( \'DISABLE_WP_CRON\', true );</code>', '<b>wp-config.php</b>' );
					break;
				case 'mbstring_enabled':
				case 'simplexml_enabled':
				case 'gd_enabled':
				case 'iconv_enabled':
				case 'opcache_enabled':
				case 'url_fopen_enabled':
					esc_html_e( 'Contact your hosting company in order to enable it.', 'yith-plugin-fw' );
					break;
				case 'wp_memory_limit':
					/* translators: %1$s opening link tag, %2$s closing link tag */
					echo sprintf( esc_html__( 'Read more %1$shere%2$s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
					break;
				default:
					echo esc_attr( apply_filters( 'yith_system_generic_message', '', $key, $item, $label ) );
			}
		}

		/**
		 * Print warning messages
		 *
		 * @param string $key Requirement Key.
		 *
		 * @return  void
		 * @since   1.0.0
		 * @author  Alberto Ruggiero
		 */
		public function print_warning_messages( $key ) {
			switch ( $key ) {
				case 'wp_memory_limit':
					/* translators: %s recommended memory amount */
					echo sprintf( esc_html__( 'For optimal functioning of our plugins, we suggest setting at least %s of available memory', 'yith-plugin-fw' ), '<span class="warning">' . esc_html( size_format( $this->recommended_memory ) ) . '</span>' );
					echo '<br/>';
					/* translators: %1$s opening link tag, %2$s closing link tag */
					echo sprintf( esc_html__( 'Read more %1$shere%2$s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
					break;
				case 'min_tls_version':
					if ( ! function_exists( 'curl_init' ) ) {
						/* translators: %1$s TLS label, %2$s cURL label */
						echo sprintf( esc_html__( 'The system check cannot determine which %1$s version is installed because %2$s module is disabled. Ask your hosting company to enable it.', 'yith-plugin-fw' ), '<b>TLS</b>', '<b>cURL</b>' );
					} else {
						/* translators: %1$s TLS label */
						echo sprintf( esc_html__( 'The system check cannot determine which %1$s version is installed due to a connection issue between your site and our server.', 'yith-plugin-fw' ), '<b>TLS</b>' );
					}
					break;
			}
		}

		/**
		 * Retrieve the TLS Version
		 *
		 * @return string
		 * @since 3.5
		 */
		public function get_tls_version() {
			$tls = get_transient( 'yith-plugin-fw-system-status-tls-version' );

			if ( ! $tls && apply_filters( 'yith_system_status_check_ssl', true ) ) {
				$services = array(
					array(
						'url'              => 'https://www.howsmyssl.com/a/check',
						'string_to_remove' => 'TLS ',
						'prop'             => 'tls_version',
					),
					array(
						'url'              => 'https://ttl-version.yithemes.workers.dev/',
						'string_to_remove' => 'TLSv',
						'prop'             => 'tlsVersion',
					),
				);
				$params   = array(
					'sslverify' => false,
					'timeout'   => 60,
					'headers'   => array( 'Content-Type' => 'application/json' ),
				);

				foreach ( $services as $service ) {
					$url              = $service['url'];
					$string_to_remove = $service['string_to_remove'];
					$prop             = $service['prop'];

					$response = wp_remote_get( $url, $params );

					if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
						$body    = json_decode( $response['body'] );
						$version = $body && is_object( $body ) && property_exists( $body, $prop ) ? $body->{$prop} : false;
						if ( $version ) {
							$tls = str_replace( $string_to_remove, '', $version );
							break;
						}
					}
				}
				$tls = ! ! $tls ? $tls : 'n/a';

				set_transient( 'yith-plugin-fw-system-status-tls-version', $tls, 300 );
			}

			return ! ! $tls ? $tls : 'n/a';
		}

		/**
		 * Retrieve the output IP Address.
		 *
		 * @return string
		 * @since 3.5
		 */
		public function get_output_ip() {
			$ip = get_transient( 'yith-plugin-fw-system-status-output-ip' );

			if ( ! $ip && apply_filters( 'yith_system_status_check_ip', true ) ) {
				$url    = 'https://ifconfig.co/ip';
				$params = array(
					'sslverify' => false,
					'timeout'   => 60,
				);

				$response = wp_remote_get( $url, $params );

				if ( ! is_wp_error( $response ) && 200 === absint( $response['response']['code'] ) && 'OK' === $response['response']['message'] ) {
					$body = $response['body'];

					// Check for IPv4.
					preg_match( '/((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])/', $body, $matches );
					// Check for IPv6.
					if ( empty( $matches ) ) {
						preg_match( '/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/', $body, $matches );
					}

					$ip = ! empty( $matches ) ? $matches[0] : 'n/a';
				}

				$ip = ! ! $ip ? $ip : 'n/a';

				set_transient( 'yith-plugin-fw-system-status-output-ip', $ip, 300 );
			}

			return ! ! $ip ? $ip : 'n/a';
		}

		/**
		 * Retrieve plugin-fw info, such as version and loaded-by.
		 *
		 * @return array
		 */
		public function get_plugin_fw_info() {
			$version        = yith_plugin_fw_get_version();
			$loaded_by      = basename( dirname( YIT_CORE_PLUGIN_PATH ) );
			$loaded_by_init = trailingslashit( dirname( YIT_CORE_PLUGIN_PATH ) ) . 'init.php';
			if ( file_exists( $loaded_by_init ) ) {
				$plugin_data = get_plugin_data( $loaded_by_init );
				$loaded_by   = $plugin_data['Name'] ?? $loaded_by;
			}

			return compact( 'version', 'loaded_by' );
		}

		/**
		 * Retrieve database info, such as MySQL version and database size.
		 *
		 * @return array
		 */
		public function get_database_info() {

			global $wpdb;

			$database_version = $wpdb->get_row( //phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
				'SELECT
						@@GLOBAL.version_comment AS string,
						@@GLOBAL.version AS number',
				ARRAY_A
			);

			$tables        = array();
			$database_size = array();

			// It is not possible to get the database name from some classes that replace wpdb (e.g., HyperDB)
			// and that is why this if condition is needed.
			if ( defined( 'DB_NAME' ) ) {
				$database_table_information = $wpdb->get_results( //phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
					$wpdb->prepare(
						"SELECT
					    table_name AS 'name',
						engine AS 'engine',
					    round( ( data_length / 1024 / 1024 ), 2 ) 'data',
					    round( ( index_length / 1024 / 1024 ), 2 ) 'index',
       					round( ( data_free / 1024 / 1024 ), 2 ) 'free'
					FROM information_schema.TABLES
					WHERE table_schema = %s
					ORDER BY name ASC;",
						DB_NAME
					)
				);

				$database_size = array(
					'data'  => 0,
					'index' => 0,
					'free'  => 0,
				);

				$site_tables_prefix = $wpdb->get_blog_prefix( get_current_blog_id() );
				$global_tables      = $wpdb->tables( 'global', true );
				foreach ( $database_table_information as $table ) {
					// Only include tables matching the prefix of the current site, this is to prevent displaying all tables on a MS install not relating to the current.
					if ( is_multisite() && 0 !== strpos( $table->name, $site_tables_prefix ) && ! in_array( $table->name, $global_tables, true ) ) {
						continue;
					}

					$tables[ $table->name ] = array(
						'data'   => $table->data,
						'index'  => $table->index,
						'free'   => $table->free,
						'engine' => $table->engine,
					);

					$database_size['data']  += $table->data;
					$database_size['index'] += $table->index;
					$database_size['free']  += $table->free;
				}
			}

			return apply_filters(
				'yith_database_info',
				array(
					'mysql_version'        => $database_version['number'],
					'mysql_version_string' => $database_version['string'],
					'database_tables'      => $tables,
					'database_size'        => $database_size,
				)
			);
		}

	}
}

if ( ! function_exists( 'YITH_System_Status' ) ) {
	/**
	 * Single instance of YITH_System_Status
	 *
	 * @return YITH_System_Status
	 * @since  1.0
	 * @author Alberto Ruggiero
	 */
	function YITH_System_Status() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		return YITH_System_Status::instance();
	}
}

YITH_System_Status();
plugin-fw/includes/class-yit-video.php000064400000011452151327614500014016 0ustar00<?php
/**
 * YITH Video Class
 * manage videos from youtube, vimeo and other services.
 *
 * @class   YIT_Video
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Video' ) ) {
	/**
	 * YIT_Video class.
	 *
	 * @deprecated 3.5
	 */
	class YIT_Video {

		/**
		 * Generate the HTML for a youtube video
		 *
		 * @param array $args Array of arguments to configure the video to generate.
		 *
		 * @return string
		 */
		public static function youtube( $args = array() ) {
			$defaults = array(
				'id'     => '',
				'url'    => '',
				'width'  => 425,
				'height' => 356,
				'echo'   => false,
			);
			$args     = wp_parse_args( $args, $defaults );

			$id     = $args['id'];
			$url    = $args['url'];
			$width  = $args['width'];
			$height = $args['height'];
			$echo   = $args['echo'];
			$html   = '';

			// Retrieve the video ID if we have only the URL.
			if ( ! $id && ! ! $url ) {
				$id = self::video_id_by_url( $url );
			}

			if ( $id ) {
				$id  = preg_replace( '/[&|&amp;]feature=([\w\-]*)/', '', $id );
				$id  = preg_replace( '/(youtube|vimeo):/', '', $id );
				$url = "https://www.youtube.com/embed/{$id}?wmode=transparent";

				$html = '<div class="post_video youtube">' .
						'<iframe wmode="transparent" width="' . esc_attr( $width ) . '" height="' . esc_attr( $height ) . '" src="' . esc_url( $url ) . '" frameborder="0" allowfullscreen></iframe>' .
						'</div>';
				$html = apply_filters( 'yit_video_youtube', $html );
			}

			if ( $echo ) {
				echo wp_kses_post( $html );
			}

			return $html;
		}

		/**
		 * Generate the HTML for a vimeo video
		 *
		 * @param array $args Array of arguments to configure the video to generate.
		 *
		 * @return string
		 */
		public static function vimeo( $args = array() ) {
			$defaults = array(
				'id'     => '',
				'url'    => '',
				'width'  => 425,
				'height' => 356,
				'echo'   => false,
			);
			$args     = wp_parse_args( $args, $defaults );

			$id     = $args['id'];
			$url    = $args['url'];
			$width  = $args['width'];
			$height = $args['height'];
			$echo   = $args['echo'];
			$html   = '';

			// Retrieve the video ID if we have only the URL.
			if ( ! $id && ! ! $url ) {
				$id = self::video_id_by_url( $url );
			}

			if ( $id ) {
				$id       = preg_replace( '/[&|&amp;]feature=([\w\-]*)/', '', $id );
				$id       = preg_replace( '/(youtube|vimeo):/', '', $id );
				$protocol = is_ssl() ? 'https' : 'http';
				$url      = "{$protocol}://player.vimeo.com/video/{$id}?title=0&amp;byline=0&amp;portrait=0";

				$html = '<div class="post_video youtube">' .
						'<iframe wmode="transparent" width="' . esc_attr( $width ) . '" height="' . esc_attr( $height ) . '" src="' . esc_url( $url ) . '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>' .
						'</div>';
				$html = apply_filters( 'yit_video_vimeo', $html );
			}

			if ( $echo ) {
				echo wp_kses_post( $html );
			}

			return $html;
		}

		/**
		 * Retrieve video ID from URL
		 *
		 * @param string $url URL of the video.
		 *
		 * @return bool|string
		 */
		public static function video_id_by_url( $url ) {
			$parsed = wp_parse_url( esc_url( $url ) );
			$host   = isset( $parsed['host'] ) ? $parsed['host'] : false;

			switch ( $host ) {
				case 'youtube.com':
				case 'www.youtube.com':
				case 'youtu.be':
				case 'www.youtu.be':
					$id       = self::youtube_id_by_url( $url );
					$video_id = "youtube:$id";
					break;

				case 'www.vimeo.com':
				case 'vimeo.com':
					preg_match( '/http(s)?:\/\/(\w+.)?vimeo\.com\/(.*\/)?([0-9]+)/', $url, $matches );

					$id       = trim( $matches[4], '/' );
					$video_id = "vimeo:$id";
					break;

				default:
					$video_id = false;

			}

			return $video_id;
		}

		/**
		 * Retrieve video ID from URL
		 *
		 * @param string $url URL of the video.
		 *
		 * @return bool|string
		 */
		protected static function youtube_id_by_url( $url ) {
			if ( preg_match( '/http(s)?:\/\/youtu.be/', $url, $matches ) ) {
				$url = wp_parse_url( $url, PHP_URL_PATH );
				$url = str_replace( '/', '', $url );

				return $url;

			} elseif ( preg_match( '/watch/', $url, $matches ) ) {
				$arr = wp_parse_url( $url );
				$url = str_replace( 'v=', '', $arr['query'] );

				return $url;

			} elseif ( preg_match( '/http(s)?:\/\/(\w+.)?youtube.com\/v/', $url, $matches ) ) {
				$arr = wp_parse_url( $url );
				$url = str_replace( '/v/', '', $arr['path'] );

				return $url;

			} elseif ( preg_match( '/http(s)?:\/\/(\w+.)?youtube.com\/embed/', $url, $matches ) ) {
				$arr = wp_parse_url( $url );
				$url = str_replace( '/embed/', '', $arr['path'] );

				return $url;

			} elseif ( preg_match( "#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#", $url, $matches ) ) {
				return $matches[0];

			} else {
				return false;
			}
		}

	}
}
plugin-fw/includes/class-yit-metabox.php000064400000041772151327614500014357 0ustar00<?php
/**
 * YITH Meta-box Class.
 *
 * @class   YIT_Metabox
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Metabox' ) ) {
	/**
	 * YIT_Metabox class.
	 *
	 * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
	 * @author Leanza Francesco <leanzafrancesco@gmail.com>
	 */
	class YIT_Metabox {

		/**
		 * The ID of meta-box.
		 *
		 * @var string
		 */
		public $id;

		/**
		 * Meta-box options.
		 *
		 * @var array
		 */
		private $options = array();

		/**
		 * Meta-box tabs.
		 *
		 * @var array
		 */
		private $tabs = array();

		/**
		 * Array of instances of the class.
		 *
		 * @var array
		 */
		private static $instance = array();

		/**
		 * Retrieve a specific instance of the class
		 *
		 * @param string $id The ID of the instance.
		 *
		 * @return YIT_Metabox
		 * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
		 */
		public static function instance( $id ) {
			if ( ! isset( self::$instance[ $id ] ) ) {
				self::$instance[ $id ] = new self( $id );
			}

			return self::$instance[ $id ];
		}

		/**
		 * YIT_Metabox constructor.
		 *
		 * @param string $id the ID of the meta-box.
		 */
		public function __construct( $id = '' ) {
			$this->id = $id;
		}

		/**
		 * Set options and tabs, add actions to register metabox, scripts and save data.
		 *
		 * @param array $options The meta-box options.
		 */
		public function init( $options = array() ) {
			$this->set_options( $options );
			$this->set_tabs();

			add_action( 'add_meta_boxes', array( $this, 'register_metabox' ), 99 );
			add_action( 'save_post', array( $this, 'save_postdata' ), 10, 1 );
			add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ), 15 );

			add_filter( 'yit_icons_screen_ids', array( $this, 'add_screen_ids_for_icons' ) );

			add_action( 'wp_ajax_yith_plugin_fw_save_toggle_element_metabox', array( $this, 'save_toggle_element' ) );
		}

		/**
		 * Add Screen ids to include icons
		 *
		 * @param array $screen_ids The screen IDs array.
		 *
		 * @return array
		 */
		public function add_screen_ids_for_icons( $screen_ids ) {
			return array_unique( array_merge( $screen_ids, (array) $this->options['pages'] ) );
		}

		/**
		 * Enqueue script and styles in admin side.
		 */
		public function enqueue() {
			$enqueue = function_exists( 'get_current_screen' ) && get_current_screen() && in_array( get_current_screen()->id, (array) $this->options['pages'], true );
			$enqueue = apply_filters( 'yith_plugin_fw_metabox_enqueue_styles_and_scripts', $enqueue, $this );

			if ( $enqueue ) {
				wp_enqueue_media();

				wp_enqueue_style( 'woocommerce_admin_styles' );

				wp_enqueue_style( 'yith-plugin-fw-fields' );
				wp_enqueue_style( 'wp-color-picker' );
				wp_enqueue_style( 'yit-plugin-metaboxes' );
				wp_enqueue_style( 'jquery-ui-style' );

				wp_enqueue_script( 'yit-metabox' );
				wp_enqueue_script( 'yith-plugin-fw-fields' );
			}
		}

		/**
		 * Set the meta-box options.
		 *
		 * @param array $options The options.
		 */
		public function set_options( $options = array() ) {
			$this->options = $options;
		}

		/**
		 * Set the tabs.
		 */
		public function set_tabs() {
			if ( ! isset( $this->options['tabs'] ) ) {
				return;
			}
			$this->tabs = $this->options['tabs'];
			if ( isset( $this->tabs['settings']['fields'] ) ) {
				$this->tabs['settings']['fields'] = array_filter( $this->tabs['settings']['fields'] );
			}
		}


		/**
		 * Add tab to the meta-box
		 *
		 * @param array  $tab   The new tab to be added add to the meta-box.
		 * @param string $where Where to insert the tab: after or before the $refer.
		 * @param null   $refer An existent tab of the  meta-box.
		 */
		public function add_tab( $tab, $where = 'after', $refer = null ) {
			if ( ! is_null( $refer ) ) {
				$ref_pos = array_search( $refer, array_keys( $this->tabs ), true );
				if ( false !== $ref_pos ) {
					if ( 'after' === $where ) {
						$this->tabs = array_slice( $this->tabs, 0, $ref_pos + 1, true ) + $tab + array_slice( $this->tabs, $ref_pos + 1, count( $this->tabs ) - 1, true );
					} else {
						$this->tabs = array_slice( $this->tabs, 0, $ref_pos, true ) + $tab + array_slice( $this->tabs, $ref_pos, count( $this->tabs ), true );
					}
				}
			} else {
				$this->tabs = array_merge( $tab, $this->tabs );
			}

		}

		/**
		 * Remove a tab from the tabs of meta-box.
		 *
		 * @param string $tab_id The tab ID.
		 */
		public function remove_tab( $tab_id ) {
			if ( isset( $this->tabs[ $tab_id ] ) ) {
				unset( $this->tabs[ $tab_id ] );
			}
		}

		/**
		 * Add a field inside a tab of meta-box
		 *
		 * @param string $tab_id The id of the tabs where add the field.
		 * @param array  $args   The field to add.
		 * @param string $where  Where to insert the field: after or before the $refer.
		 * @param null   $refer  An existent field inside tab.
		 */
		public function add_field( $tab_id, $args, $where = 'after', $refer = null ) {
			if ( isset( $this->tabs[ $tab_id ] ) ) {

				$cf = $this->tabs[ $tab_id ]['fields'];
				if ( ! is_null( $refer ) ) {
					$ref_pos = array_search( $refer, array_keys( $cf ), true );
					if ( false !== $ref_pos ) {
						if ( 'after' === $where ) {
							$this->tabs[ $tab_id ]['fields'] = array_slice( $cf, 0, $ref_pos + 1, true ) + $args + array_slice( $cf, $ref_pos, count( $cf ) - 1, true );

						} elseif ( 'before' === $where ) {
							$this->tabs[ $tab_id ]['fields'] = array_slice( $cf, 0, $ref_pos, true ) + $args + array_slice( $cf, $ref_pos, count( $cf ), true );
						}
					}
				} else {
					if ( 'first' === $where ) {
						$this->tabs[ $tab_id ]['fields'] = $args + $cf;
					} else {
						$this->tabs[ $tab_id ]['fields'] = array_merge( $this->tabs[ $tab_id ]['fields'], $args );
					}
				}
			}
		}

		/**
		 * Remove a field from the meta-box, search inside the tabs and remove it if exists.
		 *
		 * @param string $field_id The field ID.
		 */
		public function remove_field( $field_id ) {
			foreach ( $this->tabs as $tab_name => $tab ) {
				if ( isset( $tab['fields'][ $field_id ] ) ) {
					unset( $this->tabs[ $tab_name ]['fields'][ $field_id ] );
				}
			}
		}

		/**
		 * Order tabs and fields and set id and name for each field.
		 */
		public function reorder_tabs() {
			foreach ( $this->tabs as $tab_name => $tab ) {
				foreach ( $tab['fields'] as $id_field => $field ) {
					$this->tabs[ $tab_name ]['fields'][ $id_field ]['private'] = ( isset( $field['private'] ) ) ? $field['private'] : true;
					if ( empty( $this->tabs[ $tab_name ]['fields'][ $id_field ]['id'] ) ) {
						$this->tabs[ $tab_name ]['fields'][ $id_field ]['id'] = $this->get_option_metabox_id( $id_field, $this->tabs[ $tab_name ]['fields'][ $id_field ]['private'] );
					}
					if ( empty( $this->tabs[ $tab_name ]['fields'][ $id_field ]['name'] ) ) {
						$this->tabs[ $tab_name ]['fields'][ $id_field ]['name'] = $this->get_option_metabox_name( $this->tabs[ $tab_name ]['fields'][ $id_field ]['id'] );
					}
				}
			}

		}

		/**
		 * Get the option key for a specific field
		 *
		 * @param string $field_id The field ID.
		 * @param bool   $private  If true, add an underscore before the ID.
		 *
		 * @return string
		 */
		public function get_option_metabox_id( $field_id, $private = true ) {
			if ( $private ) {
				return '_' . $field_id;
			} else {
				return $field_id;
			}
		}

		/**
		 * Get meta-box field name
		 * Return the name of the field, this name will be used as attribute name of the input field
		 *
		 * @param string $field_id The field ID.
		 * @param bool   $private  If true, add an underscore before the ID.
		 *
		 * @return string
		 */
		public function get_option_metabox_name( $field_id, $private = true ) {
			$db_name = apply_filters( 'yit_metaboxes_option_main_name', 'yit_metaboxes' );
			$return  = $db_name . '[';

			if ( ! strpos( $field_id, '[' ) ) {
				return $return . $field_id . ']';
			}
			$return .= substr( $field_id, 0, strpos( $field_id, '[' ) );
			$return .= ']';
			$return .= substr( $field_id, strpos( $field_id, '[' ) );

			return $return;
		}

		/**
		 * Register the meta-box
		 *
		 * @param string $post_type The post-type.
		 */
		public function register_metabox( $post_type ) {
			if ( in_array( $post_type, (array) $this->options['pages'], true ) ) {
				add_meta_box( $this->id, $this->options['label'], array( $this, 'show' ), $post_type, $this->options['context'], $this->options['priority'] );
			}
		}

		/**
		 * Show the meta-box
		 *
		 * @param WP_Post $post     The post.
		 * @param array   $meta_box The meta-box info array.
		 */
		public function show( $post, $meta_box ) {
			$this->reorder_tabs();

			$args = array(
				'tabs'        => $this->tabs,
				'class'       => isset( $this->options['class'] ) ? $this->options['class'] : '',
				'meta_box_id' => $this->id,
			);

			if ( isset( $meta_box, $meta_box['id'] ) ) {
				do_action( "yith_plugin_fw_metabox_before_render_{$meta_box['id']}", $post, $meta_box );
			}

			yit_plugin_get_template( YIT_CORE_PLUGIN_PATH, 'metaboxes/tab.php', $args );
		}

		/**
		 * Save the post data in the database when saving the post
		 *
		 * @param int $post_id The post ID.
		 *
		 * @return int
		 */
		public function save_postdata( $post_id ) {
			if ( ! isset( $_POST['yit_metaboxes_nonce'] ) || ! wp_verify_nonce( wp_unslash( $_POST['yit_metaboxes_nonce'] ), 'metaboxes-fields-nonce' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
				return $post_id;
			}

			$allow_ajax = isset( $_REQUEST['yith_metabox_allow_ajax_saving'] ) && sanitize_key( wp_unslash( $_REQUEST['yith_metabox_allow_ajax_saving'] ) ) === $this->id;
			if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX && ! $allow_ajax ) ) {
				return $post_id;
			}

			if ( isset( $_POST['post_type'] ) ) {
				$post_type = sanitize_key( wp_unslash( $_POST['post_type'] ) );
			} else {
				return $post_id;
			}

			if ( 'page' === $post_type ) {
				if ( ! current_user_can( 'edit_page', $post_id ) ) {
					return $post_id;
				}
			} else {
				if ( ! current_user_can( 'edit_post', $post_id ) ) {
					return $post_id;
				}
			}

			if ( ! in_array( $post_type, (array) $this->options['pages'], true ) ) {
				return $post_id;
			}

			if ( isset( $_POST['yit_metaboxes'] ) ) {
				$yit_metabox_data = wp_unslash( $_POST['yit_metaboxes'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

				if ( is_array( $yit_metabox_data ) ) {
					foreach ( $yit_metabox_data as $field_name => $field_value ) {
						if ( ! add_post_meta( $post_id, $field_name, $field_value, true ) ) {
							update_post_meta( $post_id, $field_name, $field_value );
						}
					}
				}
			}

			$this->sanitize_and_save_fields( $post_id );

			return $post_id;
		}

		/**
		 * Sanitize fields
		 *
		 * @param int $post_id The post ID.
		 *
		 * @since      3.2.1
		 * @deprecated since 3.4.8
		 */
		public function sanitize_fields( $post_id ) {
			$this->sanitize_and_save_fields( $post_id );
		}

		/**
		 * Sanitize and save fields of the Meta-box.
		 *
		 * @param int $post_id The post ID.
		 *
		 * @since 3.4.8
		 */
		public function sanitize_and_save_fields( $post_id ) {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			$this->reorder_tabs();
			$tabs_to_sanitize        = $this->tabs;
			$allow_ajax              = isset( $_REQUEST['yith_metabox_allow_ajax_saving'] ) && sanitize_key( wp_unslash( $_REQUEST['yith_metabox_allow_ajax_saving'] ) ) === $this->id;
			$ajax_partial_saving_tab = isset( $_REQUEST['yith_metabox_allow_ajax_partial_saving_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['yith_metabox_allow_ajax_partial_saving_tab'] ) ) : false;

			if ( defined( 'DOING_AJAX' ) && DOING_AJAX && ! $allow_ajax ) {
				return;
			} elseif ( $ajax_partial_saving_tab ) {
				if ( array_key_exists( $ajax_partial_saving_tab, $tabs_to_sanitize ) ) {
					$tabs_to_sanitize = array( $ajax_partial_saving_tab => $tabs_to_sanitize[ $ajax_partial_saving_tab ] );
				} else {
					return;
				}
			}

			foreach ( $tabs_to_sanitize as $tab ) {
				foreach ( $tab['fields'] as $field ) {
					$this->sanitize_and_save_field( $field, $post_id );
				}
			}
			// phpcs:enable
		}

		/**
		 * Sanitize and save a single field
		 *
		 * @param array $field   The field.
		 * @param int   $post_id The post ID.
		 *
		 * @since 3.4.8
		 */
		public function sanitize_and_save_field( $field, $post_id ) {
			// phpcs:disable WordPress.Security.NonceVerification.Missing
			if ( in_array( $field['type'], array( 'title' ), true ) ) {
				return;
			}

			$meta_box_data = isset( $_POST['yit_metaboxes'] ) ? wp_unslash( $_POST['yit_metaboxes'] ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

			if ( isset( $meta_box_data[ $field['id'] ] ) ) {
				if ( in_array( $field['type'], array( 'onoff', 'checkbox' ), true ) ) {
					update_post_meta( $post_id, $field['id'], '1' );
				} elseif ( in_array( $field['type'], array( 'toggle-element' ), true ) ) {
					if ( isset( $field['elements'] ) && $field['elements'] ) {
						$elements_value = $meta_box_data[ $field['id'] ];
						if ( $elements_value ) {
							if ( isset( $elements_value['box_id'] ) ) {
								unset( $elements_value['box_id'] );
							}

							foreach ( $field['elements'] as $element ) {
								foreach ( $elements_value as $key => $element_value ) {
									if ( isset( $field['onoff_field'] ) ) {
										$elements_value[ $key ][ $field['onoff_field']['id'] ] = ! isset( $element_value[ $field['onoff_field']['id'] ] ) ? 0 : $element_value[ $field['onoff_field']['id'] ];
									}
									if ( in_array( $element['type'], array( 'onoff', 'checkbox' ), true ) ) {
										$elements_value[ $key ][ $element['id'] ] = ! isset( $element_value[ $element['id'] ] ) ? 0 : 1;
									}

									if ( ! empty( $element['yith-sanitize-callback'] ) && is_callable( $element['yith-sanitize-callback'] ) ) {
										$elements_value[ $key ][ $element['id'] ] = call_user_func( $element['yith-sanitize-callback'], $elements_value[ $key ][ $element['id'] ] );
									}
								}
							}
						}

						update_post_meta( $post_id, $field['id'], maybe_serialize( $elements_value ) );
					}
				} else {
					$value = $meta_box_data[ $field['id'] ];
					if ( ! empty( $field['yith-sanitize-callback'] ) && is_callable( $field['yith-sanitize-callback'] ) ) {
						$value = call_user_func( $field['yith-sanitize-callback'], $value );
					}
					add_post_meta( $post_id, $field['id'], $value, true ) || update_post_meta( $post_id, $field['id'], $value );
				}
			} elseif ( in_array( $field['type'], array( 'onoff', 'checkbox' ), true ) ) {
				update_post_meta( $post_id, $field['id'], '0' );
			} elseif ( in_array( $field['type'], array( 'checkbox-array' ), true ) ) {
				update_post_meta( $post_id, $field['id'], array() );
			} else {
				delete_post_meta( $post_id, $field['id'] );
			}
			// phpcs:enable
		}

		/**
		 * Remove a list of fields from the meta-box, search inside the tabs and remove it if exists
		 *
		 * @param array $fields Fields.
		 *
		 * @since    2.0.0
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 */
		public function remove_fields( $fields ) {
			foreach ( $fields as $k => $field ) {
				$this->remove_field( $field );
			}
		}

		/**
		 * Save the element toggle via AJAX.
		 *
		 * @since  3.2.1
		 * @author Emanuela Castorina
		 */
		public function save_toggle_element() {
			if ( ! isset( $_REQUEST['post_ID'] ) ) {
				return;
			}

			if ( ! isset( $_REQUEST['yit_metaboxes_nonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['yit_metaboxes_nonce'] ), 'metaboxes-fields-nonce' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
				return;
			}

			$post_id = isset( $_REQUEST['post_ID'] ) ? absint( $_REQUEST['post_ID'] ) : false;
			if ( ! $post_id ) {
				return;
			}

			if ( isset( $_REQUEST['yit_metaboxes'], $_REQUEST['toggle_id'], $_REQUEST['metabox_tab'], $_REQUEST['yit_metaboxes'][ $_REQUEST['toggle_id'] ] ) ) {
				$meta_box_data = isset( $_REQUEST['yit_metaboxes'] ) ? wp_unslash( $_REQUEST['yit_metaboxes'] ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
				$metabox_tab   = sanitize_key( wp_unslash( $_REQUEST['metabox_tab'] ) );
				$field_id      = sanitize_key( wp_unslash( $_REQUEST['toggle_id'] ) );
				if ( strpos( $field_id, '_' ) === 0 ) {
					$field_id = substr( $field_id, 1 );
				}

				if ( is_array( $meta_box_data ) ) {
					$this->reorder_tabs();
					$tabs = $this->tabs;

					if ( isset( $tabs[ $metabox_tab ], $tabs[ $metabox_tab ]['fields'] ) && isset( $tabs[ $metabox_tab ]['fields'][ $field_id ] ) ) {
						$field = $tabs[ $metabox_tab ]['fields'][ $field_id ];
						if ( $field ) {
							$this->sanitize_and_save_field( $field, $post_id );
						}
					}
				}
			} elseif ( isset( $_REQUEST['toggle_id'] ) ) {
				$field_id = sanitize_key( wp_unslash( $_REQUEST['toggle_id'] ) );
				delete_post_meta( $post_id, $field_id );
			}
		}
	}
}

if ( ! function_exists( 'yit_metabox' ) ) {
	/**
	 * Return the meta-box instance.
	 *
	 * @param string $id The meta-box id.
	 *
	 * @return YIT_Metabox
	 */
	function yit_metabox( $id ) {
		return YIT_Metabox::instance( $id );
	}
}
plugin-fw/includes/privacy/class-yith-privacy.php000064400000006333151327614500016214 0ustar00<?php
/**
 * YITH Privacy Class
 * handle privacy for GDPR
 *
 * @class   YITH_Privacy
 * @author  Leanza Francesco <leanzafrancesco@gmail.com>
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Privacy' ) ) {
	/**
	 * Class YITH_Privacy
	 */
	class YITH_Privacy {

		/**
		 * The single instance of the class.
		 *
		 * @var YITH_Privacy
		 */
		private static $instance;

		/**
		 * Singleton implementation.
		 *
		 * @return YITH_Privacy
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * Deprecated singleton implementation.
		 * Kept for backward compatibility.
		 *
		 * @return YITH_Privacy
		 * @deprecated 3.5 | use YITH_Privacy::get_instance() instead.
		 */
		public static function get_instance() {
			return self::instance();
		}

		/**
		 * YITH_Privacy constructor.
		 */
		private function __construct() {
			add_action( 'admin_init', array( $this, 'add_privacy_message' ) );
		}

		/**
		 * Adds the privacy message on YITH privacy page.
		 */
		public function add_privacy_message() {
			if ( function_exists( 'wp_add_privacy_policy_content' ) ) {
				$content = $this->get_privacy_message();

				if ( $content ) {
					$title = apply_filters( 'yith_plugin_fw_privacy_policy_guide_title', _x( 'YITH Plugins', 'Privacy Policy Guide Title', 'yith-plugin-fw' ) );
					wp_add_privacy_policy_content( $title, $content );
				}
			}
		}

		/**
		 * Get the privacy message.
		 *
		 * @return string
		 */
		public function get_privacy_message() {
			$privacy_content_path = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/privacy/html-policy-content.php';
			ob_start();
			$sections = $this->get_sections();
			if ( file_exists( $privacy_content_path ) ) {
				include $privacy_content_path;
			}

			return apply_filters( 'yith_plugin_fw_privacy_policy_content', ob_get_clean() );
		}

		/**
		 * Get the sections.
		 *
		 * @return array
		 */
		public function get_sections() {
			return apply_filters(
				'yith_plugin_fw_privacy_policy_content_sections',
				array(
					'general'           => array(
						'tutorial'    => _x( 'This sample language includes the basics around what personal data your store may be collecting, storing and sharing, as well as who may have access to that data. Depending on what settings are enabled and which additional plugins are used, the specific information shared by your store will vary. We recommend consulting with a lawyer when deciding what information to disclose on your privacy policy.', 'Privacy Policy Content', 'yith-plugin-fw' ),
						'description' => '',
					),
					'collect_and_store' => array(
						'title' => _x( 'What we collect and store', 'Privacy Policy Content', 'yith-plugin-fw' ),
					),
					'has_access'        => array(
						'title' => _x( 'Who on our team has access', 'Privacy Policy Content', 'yith-plugin-fw' ),
					),
					'share'             => array(
						'title' => _x( 'What we share with others', 'Privacy Policy Content', 'yith-plugin-fw' ),
					),
					'payments'          => array(
						'title' => _x( 'Payments', 'Privacy Policy Content', 'yith-plugin-fw' ),
					),
				)
			);
		}
	}
}

YITH_Privacy::instance();
plugin-fw/includes/privacy/class-yith-privacy-plugin-abstract.php000064400000003153151327614500021306 0ustar00<?php
/**
 * YITH Privacy Abstract Class
 * abstract class to handle privacy in plugins
 *
 * @class   YITH_Privacy_Plugin_Abstract
 * @author  Leanza Francesco <leanzafrancesco@gmail.com>
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Privacy_Plugin_Abstract' ) ) {
	/**
	 * Class YITH_Privacy_Plugin_Abstract
	 */
	class YITH_Privacy_Plugin_Abstract {
		/**
		 * The plugin name.
		 *
		 * @var string
		 */
		private $plugin_name;

		/**
		 * YITH_Privacy_Plugin_Abstract constructor.
		 *
		 * @param string $plugin_name The plugin name.
		 */
		public function __construct( $plugin_name ) {
			$this->plugin_name = $plugin_name;
			$this->init();
		}

		/**
		 * Let's initialize the privacy.
		 */
		protected function init() {
			add_filter( 'yith_plugin_fw_privacy_guide_content', array( $this, 'add_message_in_section' ), 10, 2 );
		}

		/**
		 * Add message in a specific section.
		 *
		 * @param string $html    The HTML of the section.
		 * @param string $section The section.
		 *
		 * @return string
		 */
		public function add_message_in_section( $html, $section ) {
			$message = $this->get_privacy_message( $section );
			if ( $message ) {
				$html .= "<p class='privacy-policy-tutorial'><strong>{$this->plugin_name}</strong></p>";
				$html .= $message;
			}

			return $html;
		}

		/**
		 * Retrieve the privacy message.
		 * Override me to customize the messages for each section.
		 *
		 * @param string $section The section.
		 *
		 * @return string
		 */
		public function get_privacy_message( $section ) {
			return '';
		}
	}
}
plugin-fw/includes/class-yit-plugin-panel.php000064400000155374151327614500015317 0ustar00<?php
/**
 * YITH Plugin Panel Class.
 *
 * @class   YIT_Plugin_Panel
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
	/**
	 * Class YIT_Plugin_Panel
	 */
	class YIT_Plugin_Panel {
		/**
		 * Version of the class.
		 *
		 * @var string
		 */
		public $version = '1.0.0';

		/**
		 * List of settings parameters.
		 *
		 * @var array
		 */
		public $settings = array();

		/**
		 * Tab Path Files.
		 *
		 * @var array
		 */
		protected $tabs_path_files;

		/**
		 * Main array of options.
		 *
		 * @var array
		 */
		protected $main_array_options;

		/**
		 * Tabs hierarchy.
		 *
		 * @var array
		 */
		protected $tabs_hierarchy;

		/**
		 * Tabs in WP Pages.
		 *
		 * @var array
		 */
		protected static $panel_tabs_in_wp_pages = array();

		/**
		 * Array of links.
		 *
		 * @var array
		 */
		public $links;

		/**
		 * Are the actions initialized?
		 *
		 * @var bool
		 */
		protected static $actions_initialized = false;

		/**
		 * YIT_Plugin_Panel constructor.
		 *
		 * @param array $args The panel arguments.
		 *
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function __construct( $args = array() ) {
			if ( ! empty( $args ) ) {
				$default_args = array(
					'parent_slug' => 'edit.php?',
					'page_title'  => __( 'Plugin Settings', 'yith-plugin-fw' ),
					'menu_title'  => __( 'Settings', 'yith-plugin-fw' ),
					'capability'  => 'manage_options',
					'icon_url'    => '',
					'position'    => null,
				);

				$args = apply_filters( 'yit_plugin_fw_panel_option_args', wp_parse_args( $args, $default_args ) );
				if ( isset( $args['parent_page'] ) && 'yit_plugin_panel' === $args['parent_page'] ) {
					$args['parent_page'] = 'yith_plugin_panel';
				}

				$this->settings        = $args;
				$this->tabs_path_files = $this->get_tabs_path_files();

				if ( isset( $this->settings['create_menu_page'] ) && $this->settings['create_menu_page'] ) {
					$this->add_menu_page();
				}

				if ( ! empty( $this->settings['links'] ) ) {
					$this->links = $this->settings['links'];
				}

				add_action( 'admin_init', array( $this, 'register_settings' ) );
				add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
				add_action( 'admin_menu', array( $this, 'add_premium_version_upgrade_to_menu' ), 100 );
				add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), 100 );
				add_action( 'admin_init', array( $this, 'add_fields' ) );

				add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
				add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );

				// Init actions once to prevent multiple initialization.
				static::init_actions();
			}

			add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );

			add_action( 'yith_plugin_fw_before_yith_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
			add_action( 'wp_ajax_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
		}

		/**
		 * Is this a custom post type page?
		 *
		 * @return bool
		 * @see      YIT_Plugin_Panel::init_wp_with_tabs
		 * @since    3.4.17
		 */
		protected function is_custom_post_type_page() {
			global $pagenow, $post_type;
			$excluded_post_types = array( 'product', 'page', 'post' );

			return in_array( $pagenow, array( 'post.php', 'post-new.php', 'edit.php' ), true ) && ! in_array( $post_type, $excluded_post_types, true );
		}

		/**
		 * Is this a custom taxonomy page?
		 *
		 * @return bool
		 * @see      YIT_Plugin_Panel::init_wp_with_tabs
		 * @since    3.4.17
		 */
		protected function is_custom_taxonomy_page() {
			global $pagenow, $taxonomy;
			$excluded_taxonomies = array( 'category', 'post_tag', 'product_cat', 'product_tag' );

			return in_array( $pagenow, array( 'edit-tags.php', 'term.php' ), true ) && ! in_array( $taxonomy, $excluded_taxonomies, true );
		}

		/**
		 * Init actions to show YITH Panel tabs in WP Pages
		 *
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 * @since    3.4.0
		 */
		public function init_wp_with_tabs() {
			if ( ! current_user_can( $this->settings['capability'] ) ) {
				return;
			}

			global $post_type, $taxonomy;
			$tabs = false;

			if ( $this->is_custom_post_type_page() ) {
				$tabs = $this->get_post_type_tabs( $post_type );
			} elseif ( $this->is_custom_taxonomy_page() ) {
				$tabs = $this->get_taxonomy_tabs( $taxonomy );
			}

			$screen          = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
			$is_block_editor = ! ! $screen && is_callable( array( $screen, 'is_block_editor' ) ) && $screen->is_block_editor();

			if ( $tabs ) {
				$current_tab_args = array(
					'page'            => $this->settings['page'],
					'current_tab'     => isset( $tabs['tab'] ) ? $tabs['tab'] : '',
					'current_sub_tab' => isset( $tabs['sub_tab'] ) ? $tabs['sub_tab'] : '',
					'options'         => isset( $tabs['options'] ) ? $tabs['options'] : array(),
				);

				if ( ! $is_block_editor ) {
					wp_enqueue_style( 'yit-plugin-style' );
					wp_enqueue_style( 'yith-plugin-fw-fields' );
					wp_enqueue_script( 'yith-plugin-fw-wp-pages' );
				}

				if ( ! self::$panel_tabs_in_wp_pages ) {
					self::$panel_tabs_in_wp_pages = $current_tab_args;
					if ( ! $is_block_editor ) {
						add_action( 'all_admin_notices', array( $this, 'print_panel_tabs_in_wp_pages' ) );
						add_action( 'admin_footer', array( $this, 'print_panel_tabs_in_wp_pages_end' ) );
					}
					add_filter( 'parent_file', array( $this, 'set_parent_file_to_handle_menu_for_wp_pages' ) );
					add_filter( 'submenu_file', array( $this, 'set_submenu_file_to_handle_menu_for_wp_pages' ), 10, 2 );
				}
			}
		}

		/**
		 * Init actions.
		 *
		 * @since  3.0.0
		 * @author Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		protected static function init_actions() {
			if ( ! static::$actions_initialized ) {
				add_filter( 'admin_body_class', array( __CLASS__, 'add_body_class' ) );

				// Sort plugins by name in YITH Plugins menu.
				add_action( 'admin_menu', array( __CLASS__, 'sort_plugins' ), 90 );
				add_filter( 'add_menu_classes', array( __CLASS__, 'add_menu_class_in_yith_plugin' ) );

				static::$actions_initialized = true;
			}
		}

		/**
		 * Maybe init vars
		 */
		protected function maybe_init_vars() {
			if ( ! isset( $this->main_array_options ) && ! isset( $this->tabs_hierarchy ) ) {
				$options_path             = $this->settings['options-path'];
				$this->main_array_options = array();
				$this->tabs_hierarchy     = array();

				foreach ( $this->settings['admin-tabs'] as $item => $v ) {
					$path = trailingslashit( $options_path ) . $item . '-options.php';
					$path = apply_filters( 'yith_plugin_panel_item_options_path', $path, $options_path, $item, $this );
					if ( file_exists( $path ) ) {
						$_tab                     = include $path;
						$this->main_array_options = array_merge( $this->main_array_options, $_tab );
						$sub_tabs                 = $this->get_sub_tabs( $_tab );
						$current_tab_key          = array_keys( $_tab )[0];

						$this->tabs_hierarchy[ $current_tab_key ] = array_merge(
							array(
								'parent'       => '',
								'has_sub_tabs' => ! ! $sub_tabs,
							),
							$this->get_tab_info_by_options( $_tab[ $current_tab_key ] )
						);

						foreach ( $sub_tabs as $sub_item => $sub_options ) {
							if ( strpos( $sub_item, $item . '-' ) === 0 ) {
								$sub_item = substr( $sub_item, strlen( $item ) + 1 );
							}
							$sub_tab_path = $options_path . '/' . $item . '/' . $sub_item . '-options.php';
							$sub_tab_path = apply_filters( 'yith_plugin_panel_sub_tab_item_options_path', $sub_tab_path, $sub_tabs, $sub_item, $this );

							if ( file_exists( $sub_tab_path ) ) {
								$_sub_tab                 = include $sub_tab_path;
								$this->main_array_options = array_merge( $this->main_array_options, $_sub_tab );

								$current_sub_tab_key                          = array_keys( $_sub_tab )[0];
								$this->tabs_hierarchy[ $current_sub_tab_key ] = array_merge( array( 'parent' => $current_tab_key ), $this->get_tab_info_by_options( $_sub_tab[ $current_sub_tab_key ] ) );
							}
						}
					}
				}
			}
		}

		/**
		 * Add yith-plugin-fw-panel in body classes in Panel pages
		 *
		 * @param string $admin_body_classes Body classes.
		 *
		 * @return string
		 * @author Leanza Francesco <leanzafrancesco@gmail.com>
		 * @since  3.0.0
		 */
		public static function add_body_class( $admin_body_classes ) {
			global $pagenow;
			if ( ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, 'yith-plugins_page' ) !== false ) ) {
				$admin_body_classes = ! substr_count( $admin_body_classes, ' yith-plugin-fw-panel ' ) ? $admin_body_classes . ' yith-plugin-fw-panel ' : $admin_body_classes;
			}

			return $admin_body_classes;
		}

		/**
		 * Add Menu page link
		 *
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 */
		public function add_menu_page() {
			global $admin_page_hooks;

			if ( ! isset( $admin_page_hooks['yith_plugin_panel'] ) ) {
				$position   = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
				$capability = apply_filters( 'yit_plugin_panel_menu_page_capability', 'manage_options' );
				$show       = apply_filters( 'yit_plugin_panel_menu_page_show', true );

				// YITH text must NOT be translated.
				if ( ! ! $show ) {
					add_menu_page( 'yith_plugin_panel', 'YITH', $capability, 'yith_plugin_panel', null, yith_plugin_fw_get_default_logo(), $position );
					// Prevent issues for backward compatibility.
					$admin_page_hooks['yith_plugin_panel'] = 'yith-plugins'; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
				}
			}
		}

		/**
		 * Remove duplicate submenu
		 * Submenu page hack: Remove the duplicate YIT Plugin link on subpages
		 *
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 */
		public function remove_duplicate_submenu_page() {
			remove_submenu_page( 'yith_plugin_panel', 'yith_plugin_panel' );
		}

		/**
		 * Enqueue script and styles in admin side
		 * Add style and scripts to administrator
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public function admin_enqueue_scripts() {
			global $pagenow;

			if ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, $this->settings['page'] ) !== false || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
				wp_enqueue_media();

				wp_enqueue_style( 'yith-plugin-fw-fields' );
				wp_enqueue_style( 'jquery-ui-style' );
				wp_enqueue_style( 'raleway-font' );

				wp_enqueue_script( 'jquery-ui' );
				wp_enqueue_script( 'jquery-ui-core' );
				wp_enqueue_script( 'jquery-ui-dialog' );
				wp_enqueue_script( 'yith_how_to' );
				wp_enqueue_script( 'yith-plugin-fw-fields' );
			}

			if ( ( 'admin.php' === $pagenow && yith_plugin_fw_is_panel() ) || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
				wp_enqueue_media();
				wp_enqueue_style( 'yit-plugin-style' );
				wp_enqueue_script( 'yit-plugin-panel' );
			}

			if ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, 'yith_upgrade_premium_version' ) !== false ) {
				wp_enqueue_style( 'yit-upgrade-to-pro' );
				wp_enqueue_script( 'colorbox' );
			}
		}

		/**
		 * Register Settings
		 * Generate wp-admin settings pages by registering your settings and using a few callbacks to control the output
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function register_settings() {
			register_setting( 'yit_' . $this->settings['parent'] . '_options', 'yit_' . $this->settings['parent'] . '_options', array( $this, 'options_validate' ) );
		}

		/**
		 * Add Setting SubPage
		 * add Setting SubPage to WordPress administrator
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function add_setting_page() {
			$this->settings['icon_url'] = isset( $this->settings['icon_url'] ) ? $this->settings['icon_url'] : '';
			$this->settings['position'] = isset( $this->settings['position'] ) ? $this->settings['position'] : null;
			$parent                     = $this->settings['parent_slug'] . $this->settings['parent_page'];

			if ( ! empty( $parent ) ) {
				add_submenu_page( $parent, $this->settings['page_title'], $this->settings['menu_title'], $this->settings['capability'], $this->settings['page'], array( $this, 'yit_panel' ) );
			} else {
				add_menu_page( $this->settings['page_title'], $this->settings['menu_title'], $this->settings['capability'], $this->settings['page'], array( $this, 'yit_panel' ), $this->settings['icon_url'], $this->settings['position'] );
			}
			// Duplicate Items Hack.
			$this->remove_duplicate_submenu_page();
			do_action( 'yit_after_add_settings_page' );

		}

		/**
		 * Options Validate
		 * a callback function called by Register Settings function
		 *
		 * @param array $field The field to validate.
		 *
		 * @return array validated fields
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function options_validate( $field ) {
			$option_key       = ! empty( $field['option_key'] ) ? $field['option_key'] : 'general';
			$yit_options      = $this->get_main_array_options();
			$validated_fields = $this->get_options();

			foreach ( $yit_options[ $option_key ] as $section => $data ) {
				foreach ( $data as $option ) {
					if ( isset( $option['sanitize_call'] ) && isset( $option['id'] ) ) {
						if ( is_array( $option['sanitize_call'] ) ) {
							foreach ( $option['sanitize_call'] as $callback ) {
								if ( is_array( $field[ $option['id'] ] ) ) {
									$validated_fields[ $option['id'] ] = array_map( $callback, $field[ $option['id'] ] );
								} else {
									$validated_fields[ $option['id'] ] = call_user_func( $callback, $field[ $option['id'] ] );
								}
							}
						} else {
							if ( is_array( $field[ $option['id'] ] ) ) {
								$validated_fields[ $option['id'] ] = array_map( $option['sanitize_call'], $field[ $option['id'] ] );
							} else {
								$validated_fields[ $option['id'] ] = call_user_func( $option['sanitize_call'], $field[ $option['id'] ] );
							}
						}
					} else {
						if ( isset( $option['id'] ) ) {
							$value = isset( $field[ $option['id'] ] ) ? $field[ $option['id'] ] : false;
							if ( isset( $option['type'] ) && in_array( $option['type'], array( 'checkbox', 'onoff' ), true ) ) {
								$value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
							}

							if ( ! empty( $option['yith-sanitize-callback'] ) && is_callable( $option['yith-sanitize-callback'] ) ) {
								$value = call_user_func( $option['yith-sanitize-callback'], $value );
							}

							$validated_fields[ $option['id'] ] = $value;
						}
					}
				}
			}

			return $validated_fields;
		}

		/**
		 * Add Premium Version upgrade menu item
		 *
		 * @since    2.9.13
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 */
		public function add_premium_version_upgrade_to_menu() {
			// Add the How To menu item only if the customer haven't a premium version enabled.
			if ( function_exists( 'YIT_Plugin_Licence' ) && ! ! YIT_Plugin_Licence()->get_products() ) {
				return;
			}

			global $submenu;
			if ( apply_filters( 'yit_show_upgrade_to_premium_version', isset( $submenu['yith_plugin_panel'] ) ) ) {
				$how_to_menu                            = array(
					sprintf( '%s%s%s', '<span id="yith-how-to-premium">', __( 'How to install premium version', 'yith-plugin-fw' ), '</span>' ),
					'install_plugins',
					'//support.yithemes.com/hc/en-us/articles/217840988',
					__( 'How to install premium version', 'yith-plugin-fw' ),
				);
				$submenu['yith_plugin_panel']['how_to'] = $how_to_menu; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
			}
		}

		/**
		 * Print the tabs navigation
		 *
		 * @param array $args Nav Arguments.
		 *
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 * @since    3.4.0
		 */
		public function print_tabs_nav( $args = array() ) {
			$defaults = array(
				'current_tab'   => $this->get_current_tab(),
				'premium_class' => isset( $this->settings['class'] ) ? 'yith-premium' : 'premium',
				'page'          => $this->settings['page'],
				'parent_page'   => $this->settings['parent_page'],
				'wrapper_class' => 'nav-tab-wrapper',
			);
			$args     = wp_parse_args( $args, $defaults );

			list ( $wrapper_class ) = yith_plugin_fw_extract( $args, 'wrapper_class' );

			$tabs = '<ul class="yith-plugin-fw-tabs">';

			foreach ( $this->settings['admin-tabs'] as $tab => $tab_value ) {
				$tabs .= $this->get_tab_nav( $tab, $tab_value, $args );
			}

			// help tab.
			if ( $this->has_help_tab() ) {
				$tabs .= $this->get_tab_nav( 'help', _x( 'Help', 'Help tab name', 'yith-plugin-fw' ), $args );
			}

			$tabs .= '</ul>';
			?>
			<h2 class="<?php echo esc_attr( $wrapper_class ); ?>">
				<?php echo wp_kses_post( $tabs ); ?>
			</h2>
			<?php
			$this->print_sub_tabs_nav( $args );
		}

		/**
		 * Get HTML for single tab in tabs navigation
		 *
		 * @param string $tab_slug Tab slug.
		 * @param string $tab_name Tab name.
		 * @param array  $args     Nav Arguments.
		 *
		 * @return string Tab HTML
		 *
		 * @author   Antonio La Rocca <antonio.larocca@yithemes.com>
		 * @since    3.4.0
		 */
		protected function get_tab_nav( $tab_slug, $tab_name, $args = array() ) {
			list ( $current_tab, $premium_class, $page, $parent_page ) = yith_plugin_fw_extract( $args, 'current_tab', 'premium_class', 'page', 'parent_page' );

			$active_class = $current_tab === $tab_slug ? ' nav-tab-active' : '';

			if ( 'premium' === $tab_slug ) {
				$active_class .= ' ' . $premium_class;
			}
			$active_class = apply_filters( 'yith_plugin_fw_panel_active_tab_class', $active_class, $current_tab, $tab_slug );

			$first_sub_tab = $this->get_first_sub_tab_key( $tab_slug );
			$sub_tab       = ! ! $first_sub_tab ? $first_sub_tab : '';
			$sub_tabs      = $this->get_sub_tabs( $tab_slug );
			$url           = $this->get_nav_url( $page, $tab_slug, $sub_tab, $parent_page );
			$icon          = ( $current_tab !== $tab_slug && $sub_tabs ) ? '<i class="yith-icon yith-icon-arrow_down"></i>' : '';

			$tab = '<li class="yith-plugin-fw-tab-element">';

			$tab .= '<a class="nav-tab' . esc_attr( $active_class ) . '" href="' . esc_url( $url ) . '">' . wp_kses_post( $tab_name ) . $icon . '</a>';

			if ( $current_tab !== $tab_slug && $sub_tabs ) {
				$tab .= '<div class="nav-subtab-wrap"><ul class="nav-subtab">';
				foreach ( $sub_tabs as $_key => $_tab ) {
					$url = $this->get_nav_url( $page, $tab_slug, $_key );

					$tab .= '<li class="nav-subtab-item"><a href="' . esc_url( $url ) . '">' . wp_kses_post( $_tab['title'] ) . '</a></li>';
				}
				$tab .= '</ul></div>';
			}
			$tab .= '</li>';

			return $tab;
		}

		/**
		 * Retrieve the Nav URL.
		 *
		 * @param string $page        The page.
		 * @param string $tab         The tab.
		 * @param string $sub_tab     The sub-tab.
		 * @param string $parent_page The parent page.
		 *
		 * @return string
		 */
		public function get_nav_url( $page, $tab, $sub_tab = '', $parent_page = '' ) {
			$tab_hierarchy = $this->get_tabs_hierarchy();
			$key           = ! ! $sub_tab ? $sub_tab : $tab;

			if ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ]['type'], $tab_hierarchy[ $key ]['post_type'] ) && 'post_type' === $tab_hierarchy[ $key ]['type'] ) {
				$url = admin_url( "edit.php?post_type={$tab_hierarchy[$key]['post_type']}" );
			} elseif ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ]['type'], $tab_hierarchy[ $key ]['taxonomy'] ) && 'taxonomy' === $tab_hierarchy[ $key ]['type'] ) {
				$url = admin_url( "edit-tags.php?taxonomy={$tab_hierarchy[$key]['taxonomy']}" );
			} else {
				$url = ! ! $parent_page ? "?{$parent_page}&" : '?';

				$url .= "page={$page}&tab={$tab}";
				$url .= ! ! $sub_tab ? "&sub_tab={$sub_tab}" : '';

				$url = admin_url( "admin.php{$url}" );
			}

			return apply_filters( 'yith_plugin_fw_panel_url', $url, $page, $tab, $sub_tab, $parent_page );
		}

		/**
		 * Print the Sub-tabs navigation if the current tab has sub-tabs
		 *
		 * @param array $args Sub-tab arguments.
		 *
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 * @since    3.4.0
		 */
		public function print_sub_tabs_nav( $args = array() ) {
			$defaults = array(
				'current_tab'     => $this->get_current_tab(),
				'page'            => $this->settings['page'],
				'current_sub_tab' => $this->get_current_sub_tab(),
			);
			$args     = wp_parse_args( $args, $defaults );

			/**
			 * The arguments.
			 *
			 * @var string $current_tab     The current tab.
			 * @var string $page            The page.
			 * @var string $current_sub_tab The current sub-tab.
			 */
			extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract

			$sub_tabs = $this->get_sub_tabs( $current_tab );

			if ( $sub_tabs && $current_sub_tab ) {
				include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/sub-tabs-nav.php';
			}
		}

		/**
		 * Show a tabbed panel to setting page
		 * a callback function called by add_setting_page => add_submenu_page
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function yit_panel() {
			$yit_options = $this->get_main_array_options();
			$wrap_class  = isset( $this->settings['class'] ) ? $this->settings['class'] : '';

			$option_key         = $this->get_current_option_key();
			$custom_tab_options = $this->get_custom_tab_options( $yit_options, $option_key );
			?>
			<div class="wrap <?php echo esc_attr( $wrap_class ); ?>">
				<div id="icon-themes" class="icon32"><br/></div>
				<?php
				do_action( 'yith_plugin_fw_before_yith_panel', $this->settings['page'] );

				$this->print_tabs_nav();

				if ( $custom_tab_options ) {
					$this->print_custom_tab( $custom_tab_options );

					return;
				} elseif ( $this->is_help_tab() ) {
					$this->print_help_tab();

					return;
				}

				$panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
				?>
				<div id="wrap" class="yith-plugin-fw plugin-option yit-admin-panel-container">
					<?php $this->message(); ?>
					<div class="<?php echo esc_attr( $panel_content_class ); ?>">
						<h2><?php echo wp_kses_post( $this->get_tab_title() ); ?></h2>
						<?php if ( $this->is_show_form() ) : ?>
							<form id="yith-plugin-fw-panel" method="post" action="options.php">
								<?php do_settings_sections( 'yit' ); ?>
								<p>&nbsp;</p>
								<?php settings_fields( 'yit_' . $this->settings['parent'] . '_options' ); ?>
								<input type="hidden" name="<?php echo esc_attr( $this->get_name_field( 'option_key' ) ); ?>"
										value="<?php echo esc_attr( $option_key ); ?>"/>
								<input type="submit" class="button-primary"
										value="<?php esc_attr_e( 'Save Changes', 'yith-plugin-fw' ); ?>"
										style="float:left;margin-right:10px;"/>
							</form>
							<form method="post">
								<?php
								$reset_warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) . '\n' . __( 'Are you sure?', 'yith-plugin-fw' );
								?>
								<input type="hidden" name="yit-action" value="reset"/>
								<input type="submit" name="yit-reset" class="button-secondary"
										value="<?php esc_attr_e( 'Reset to default', 'yith-plugin-fw' ); ?>"
										onclick="return confirm('<?php echo esc_attr( $reset_warning ); ?>');"/>
							</form>
							<p>&nbsp;</p>
						<?php endif ?>
					</div>
				</div>
			</div>
			<?php
		}

		/**
		 * Check if is a custom tab.
		 *
		 * @param array  $options    The tab options.
		 * @param string $option_key The option key.
		 *
		 * @return string|false The action to be fired of false if it's not a custom tab.
		 */
		public function is_custom_tab( $options, $option_key ) {
			$option = $this->get_custom_tab_options( $options, $option_key );

			return ! ! $option && isset( $option['action'] ) ? $option['action'] : false;
		}

		/**
		 * Retrieve the custom tab options.
		 *
		 * @param array  $options    The tab options.
		 * @param string $option_key The option key.
		 *
		 * @return array|false The options of the custom tab; false if it's not a custom tab.
		 */
		public function get_custom_tab_options( $options, $option_key ) {
			$option = ! empty( $options[ $option_key ] ) ? current( $options[ $option_key ] ) : false;

			if ( $option && isset( $option['type'], $option['action'] ) && 'custom_tab' === $option['type'] && ! empty( $option['action'] ) ) {
				return $option;
			} else {
				return false;
			}
		}

		/**
		 * Retrieve the tab type by its options.
		 *
		 * @param array $tab_options The tab options.
		 *
		 * @return string
		 */
		public function get_tab_type_by_options( $tab_options ) {
			$first         = ! ! $tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
			$type          = isset( $first['type'] ) ? $first['type'] : 'options';
			$special_types = array( 'post_type', 'taxonomy', 'custom_tab', 'multi_tab' );

			return in_array( $type, $special_types, true ) ? $type : 'options';
		}

		/**
		 * Retrieve the tab info by its options.
		 *
		 * @param array $tab_options The tab options.
		 *
		 * @return string[]
		 */
		public function get_tab_info_by_options( $tab_options ) {
			$type  = $this->get_tab_type_by_options( $tab_options );
			$first = ! ! $tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
			$info  = $first;

			$info['type'] = $type;
			if ( 'post_type' === $type ) {
				$info['post_type'] = isset( $first['post_type'] ) ? $first['post_type'] : '';
			} elseif ( 'taxonomy' === $type ) {
				$info['taxonomy'] = isset( $first['taxonomy'] ) ? $first['taxonomy'] : '';
			}

			return $info;
		}

		/**
		 * Fire the action to print the custom tab.
		 *
		 * @param array $options The options of the custom tab.
		 *
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public function print_custom_tab( $options ) {
			if ( is_string( $options ) ) {
				// Backward compatibility.
				$options = array( 'action' => $options );
			}
			$current_tab     = $this->get_current_tab();
			$current_sub_tab = $this->get_current_sub_tab();

			include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/custom-tab.php';
		}

		/**
		 * Check if panel has help tab
		 *
		 * @return bool Whether panel has help tab or no.
		 */
		public function has_help_tab() {
			return ! empty( $this->settings['help_tab'] ) && ( ! $this->is_free() || ! empty( $this->settings['help_tab']['show_on_free'] ) );
		}

		/**
		 * Checks whether current tab is special Help Tab
		 *
		 * @return bool Whether current tab is Help Tab
		 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
		 */
		public function is_help_tab() {
			return 'help' === $this->get_current_tab();
		}

		/**
		 * Prints special Help Tab
		 *
		 * @return void
		 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
		 */
		public function print_help_tab() {
			$options      = isset( $this->settings['help_tab'] ) ? $this->settings['help_tab'] : array();
			$plugin_title = isset( $this->settings['plugin_title'] ) ? $this->settings['plugin_title'] : $this->settings['page_title'];

			if ( 0 !== strpos( $plugin_title, 'YITH' ) ) {
				$plugin_title = "YITH {$plugin_title}";
			}

			// parse options.
			$options = wp_parse_args(
				$options,
				array(
					// translators: 1. Plugin name.
					'title'              => sprintf( _x( 'Thank you for purchasing %s!', 'Help tab default title', 'yith-plugin-fw' ), $plugin_title ),
					'description'        => _x( 'We want to help you to enjoy a wonderful experience with all our products.', 'Help tab default description', 'yith-plugin-fw' ),
					'main_video'         => false,
					'playlists'          => array(),
					'hc_url'             => 'https://support.yithemes.com/hc/',
					'doc_url'            => $this->settings['plugin_slug'] ? 'https://docs.yithemes.com/' . $this->settings['plugin_slug'] . '/' : '',
					'submit_ticket_url'  => 'https://yithemes.com/my-account/support/submit-a-ticket/',
					'show_hc_articles'   => true,
					'show_submit_ticket' => true,
				)
			);

			// add campaign parameters to url.
			if ( $this->settings['plugin_slug'] ) {
				$utm_medium   = $this->settings['plugin_slug'];
				$utm_source   = 'wp-premium-dashboard';
				$utm_campaign = 'help-tab';

				$campaign_urls = array(
					'submit_ticket_url',
					'doc_url',
				);

				foreach ( $campaign_urls as $campaign_url ) {
					if ( empty( $options[ $campaign_url ] ) ) {
						continue;
					}

					$options[ $campaign_url ] = yith_plugin_fw_add_utm_data( $options[ $campaign_url ], $utm_medium, $utm_campaign, $utm_source );
				}
			}

			// set template variables.
			$current_tab     = $this->get_current_tab();
			$current_sub_tab = $this->get_current_sub_tab();
			$latest_articles = $this->settings['plugin_slug'] ? YIT_Help_Desk::get_latest_articles( $this->settings['plugin_slug'] ) : array();

			include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/help-tab.php';
		}

		/**
		 * Add sections and fields to setting panel.
		 * Read all options and show sections and fields.
		 *
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function add_fields() {
			$yit_options = $this->get_main_array_options();
			$option_key  = $this->get_current_option_key();

			if ( ! $option_key || ! isset( $yit_options[ $option_key ] ) ) {
				return;
			}

			foreach ( $yit_options[ $option_key ] as $section => $data ) {
				add_settings_section( "yit_settings_{$option_key}_{$section}", $this->get_section_title( $section ), $this->get_section_description( $section ), 'yit' );
				foreach ( $data as $option ) {
					if ( isset( $option['id'] ) && isset( $option['type'] ) && isset( $option['name'] ) ) {
						add_settings_field(
							'yit_setting_' . $option['id'],
							$option['name'],
							array( $this, 'render_field' ),
							'yit',
							"yit_settings_{$option_key}_{$section}",
							array(
								'option'    => $option,
								'label_for' => $this->get_id_field( $option['id'] ),
							)
						);
					}
				}
			}
		}

		/**
		 * Add the tabs to admin bar menu.
		 * Set all tabs of settings page on wp admin bar.
		 *
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function add_admin_bar_menu() {
			global $wp_admin_bar;

			if ( ! current_user_can( 'manage_options' ) ) {
				return;
			}

			if ( ! empty( $this->settings['admin_tabs'] ) ) {
				foreach ( $this->settings['admin-tabs'] as $item => $title ) {
					$wp_admin_bar->add_menu(
						array(
							'parent' => $this->settings['parent'],
							'title'  => $title,
							'id'     => $this->settings['parent'] . '-' . $item,
							'href'   => admin_url( 'themes.php' ) . '?page=' . $this->settings['parent_page'] . '&tab=' . $item,
						)
					);
				}
			}
		}

		/**
		 * Get current tab.
		 * Retrieve the id of tab shown, return general is the current tab is not defined.
		 *
		 * @return string|false
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_current_tab() {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			$admin_tabs = array_keys( $this->settings['admin-tabs'] );

			if ( ! isset( $_GET['page'] ) || $_GET['page'] !== $this->settings['page'] ) {
				return false;
			}
			if ( isset( $_REQUEST['yit_tab_options'] ) ) {
				return sanitize_key( wp_unslash( $_REQUEST['yit_tab_options'] ) );
			} elseif ( isset( $_GET['tab'] ) ) {
				return sanitize_key( wp_unslash( $_GET['tab'] ) );
			} elseif ( isset( $admin_tabs[0] ) ) {
				return $admin_tabs[0];
			} else {
				return 'general';
			}
			// phpcs:enable
		}

		/**
		 * Get the current sub-tab.
		 *
		 * @return string The key of the sub-tab if exists, empty string otherwise.
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 * @since    3.4.0
		 */
		public function get_current_sub_tab() {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			$sub_tabs = $this->get_sub_tabs();
			$sub_tab  = isset( $_REQUEST['sub_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['sub_tab'] ) ) : '';

			if ( $sub_tabs ) {
				if ( $sub_tab && ! isset( $sub_tabs[ $sub_tab ] ) || ! $sub_tab ) {
					$sub_tab = current( array_keys( $sub_tabs ) );
				}
			} else {
				$sub_tab = '';
			}

			return $sub_tab;
			// phpcs:enable
		}

		/**
		 * Return the option key related to the current page.
		 * for sub-tabbed tabs, it will return the current sub-tab.
		 * fot normal tabs, it will return the current tab.
		 *
		 * @return string the current sub-tab, if exists; the current tab otherwise.
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 * @since    3.4.0
		 */
		public function get_current_option_key() {
			$current_tab     = $this->get_current_tab();
			$current_sub_tab = $this->get_current_sub_tab();

			if ( ! $current_tab ) {
				return false;
			}

			return $current_sub_tab ? $current_sub_tab : $current_tab;
		}

		/**
		 * Message
		 * define an array of message and show the content od message if
		 * is find in the query string
		 *
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function message() {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			$message = array(
				'element_exists'   => $this->get_message( '<strong>' . __( 'The element you have entered already exists. Please, enter another name.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
				'saved'            => $this->get_message( '<strong>' . __( 'Settings saved', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
				'reset'            => $this->get_message( '<strong>' . __( 'Settings reset', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
				'delete'           => $this->get_message( '<strong>' . __( 'Element deleted correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
				'updated'          => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
				'settings-updated' => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
				'imported'         => $this->get_message( '<strong>' . __( 'Database imported correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
				'no-imported'      => $this->get_message( '<strong>' . __( 'An error has occurred during import. Please try again.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
				'file-not-valid'   => $this->get_message( '<strong>' . __( 'The added file is not valid.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
				'cant-import'      => $this->get_message( '<strong>' . __( 'Sorry, import is disabled.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
				'ord'              => $this->get_message( '<strong>' . __( 'Sorting successful.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
			);

			foreach ( $message as $key => $value ) {
				if ( isset( $_GET[ $key ] ) ) {
					echo wp_kses_post( $message[ $key ] );
				}
			}
			// phpcs:enable
		}

		/**
		 * Get Message
		 * return html code of message
		 *
		 * @param string $message The message.
		 * @param string $type    The type of message (can be 'error' or 'updated').
		 * @param bool   $echo    Set to true if you want to print the message.
		 *
		 * @return string
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_message( $message, $type = 'error', $echo = true ) {
			$message = '<div id="message" class="' . esc_attr( $type ) . ' fade"><p>' . wp_kses_post( $message ) . '</p></div>';
			if ( $echo ) {
				echo wp_kses_post( $message );
			}

			return $message;
		}

		/**
		 * Get Tab Path Files
		 * return an array with file names of tabs
		 *
		 * @return array
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_tabs_path_files() {
			$option_files_path = $this->settings['options-path'] . '/';
			$tabs              = array();

			foreach ( (array) glob( $option_files_path . '*.php' ) as $filename ) {
				preg_match( '/(.*)-options\.(.*)/', basename( $filename ), $filename_parts );

				if ( ! isset( $filename_parts[1] ) ) {
					continue;
				}

				$tab          = $filename_parts[1];
				$tabs[ $tab ] = $filename;
			}

			return $tabs;
		}

		/**
		 * Get main array options
		 * return an array with all options defined on options-files
		 *
		 * @return array
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_main_array_options() {
			$this->maybe_init_vars();

			return $this->main_array_options;
		}

		/**
		 * Get tab hierarchy.
		 *
		 * @return array
		 */
		public function get_tabs_hierarchy() {
			$this->maybe_init_vars();

			return $this->tabs_hierarchy;
		}

		/**
		 * Return the sub-tabs array of a specific tab
		 *
		 * @param array|bool $_tab the tab; if not set it'll be the current tab.
		 *
		 * @since    3.4.0
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 * @return array Sub-tabs array.
		 */
		public function get_sub_tabs( $_tab = false ) {
			if ( false === $_tab ) {
				$_tab = $this->get_current_tab();
			}

			if ( is_string( $_tab ) ) {
				$main_array_options  = $this->get_main_array_options();
				$current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
				if ( $current_tab_options ) {
					$_tab = array( $_tab => $current_tab_options );
				}
			}

			$_tab_options = ! ! $_tab && is_array( $_tab ) ? current( $_tab ) : false;
			$_first       = ! ! $_tab_options && is_array( $_tab_options ) ? current( $_tab_options ) : false;
			if ( $_first && is_array( $_first ) && isset( $_first['type'] ) && 'multi_tab' === $_first['type'] && ! empty( $_first['sub-tabs'] ) ) {
				return $_first['sub-tabs'];
			}

			return array();
		}

		/**
		 * Retrieve the first sub-tab key.
		 *
		 * @param string|false $_tab The tab; if not set it'll be the current tab.
		 *
		 * @return false|mixed
		 */
		public function get_first_sub_tab_key( $_tab = false ) {
			$key = false;
			if ( is_string( $_tab ) ) {
				$main_array_options  = $this->get_main_array_options();
				$current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
				if ( $current_tab_options ) {
					$_tab = array( $_tab => $current_tab_options );
				}
			}
			$sub_tabs = $this->get_sub_tabs( $_tab );
			if ( $sub_tabs ) {
				$key = current( array_keys( $sub_tabs ) );
			}

			return $key;
		}


		/**
		 * Set an array with all default options
		 * put default options in an array
		 *
		 * @return array
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_default_options() {
			$yit_options     = $this->get_main_array_options();
			$default_options = array();

			foreach ( $yit_options as $tab => $sections ) {
				foreach ( $sections as $section ) {
					foreach ( $section as $id => $value ) {
						if ( isset( $value['std'] ) && isset( $value['id'] ) ) {
							$default_options[ $value['id'] ] = $value['std'];
						}
					}
				}
			}

			unset( $yit_options );

			return $default_options;
		}


		/**
		 * Get the title of the tab
		 * return the title of tab
		 *
		 * @return string
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_tab_title() {
			$yit_options = $this->get_main_array_options();
			$option_key  = $this->get_current_option_key();

			foreach ( $yit_options[ $option_key ] as $sections => $data ) {
				foreach ( $data as $option ) {
					if ( isset( $option['type'] ) && 'title' === $option['type'] ) {
						return $option['name'];
					}
				}
			}

			return '';
		}

		/**
		 * Get the title of the section
		 * return the title of section
		 *
		 * @param string $section The section.
		 *
		 * @return string
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_section_title( $section ) {
			$yit_options = $this->get_main_array_options();
			$option_key  = $this->get_current_option_key();

			foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
				if ( isset( $option['type'] ) && 'section' === $option['type'] ) {
					return $option['name'];
				}
			}

			return '';
		}

		/**
		 * Get the description of the section
		 * return the description of section if is set
		 *
		 * @param string $section The section.
		 *
		 * @return string
		 * @author   Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_section_description( $section ) {
			$yit_options = $this->get_main_array_options();
			$option_key  = $this->get_current_option_key();

			foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
				if ( isset( $option['type'] ) && 'section' === $option['type'] && isset( $option['desc'] ) ) {
					return '<p>' . $option['desc'] . '</p>';
				}
			}

			return '';
		}


		/**
		 * Show form when necessary
		 * return true if 'showform' is not defined
		 *
		 * @return bool
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function is_show_form() {
			$yit_options = $this->get_main_array_options();
			$option_key  = $this->get_current_option_key();

			foreach ( $yit_options[ $option_key ] as $sections => $data ) {
				foreach ( $data as $option ) {
					if ( ! isset( $option['type'] ) || 'title' !== $option['type'] ) {
						continue;
					}
					if ( isset( $option['showform'] ) ) {
						return $option['showform'];
					} else {
						return true;
					}
				}
			}
		}

		/**
		 * Get name field
		 * return a string with the name of the input field
		 *
		 * @param string $name The name.
		 *
		 * @return string
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_name_field( $name = '' ) {
			return 'yit_' . $this->settings['parent'] . '_options[' . $name . ']';
		}

		/**
		 * Get id field
		 * return a string with the id of the input field
		 *
		 * @param string $id The ID.
		 *
		 * @return string
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_id_field( $id ) {
			return 'yit_' . $this->settings['parent'] . '_options_' . $id;
		}


		/**
		 * Render the field showed in the setting page
		 * include the file of the option type, if file do not exists
		 * return a text area
		 *
		 * @param array $param The parameters.
		 *
		 * @return void
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function render_field( $param ) {
			if ( ! empty( $param ) && isset( $param ['option'] ) ) {
				$option     = $param['option'];
				$db_options = $this->get_options();

				$custom_attributes = array();

				if ( ! empty( $option['custom_attributes'] ) && is_array( $option['custom_attributes'] ) ) {
					foreach ( $option['custom_attributes'] as $attribute => $attribute_value ) {
						$custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
					}
				}

				$custom_attributes = implode( ' ', $custom_attributes );
				$std               = isset( $option['std'] ) ? $option['std'] : '';
				$db_value          = ( isset( $db_options[ $option['id'] ] ) ) ? $db_options[ $option['id'] ] : $std;

				if ( isset( $option['deps'] ) ) {
					$deps = $option['deps'];
				}

				if ( 'on-off' === $option['type'] ) {
					$option['type'] = 'onoff';
				}

				$field_template_path = yith_plugin_fw_get_field_template_path( $option );
				if ( $field_template_path ) {
					$field_container_path = apply_filters( 'yith_plugin_fw_panel_field_container_template_path', YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/panel-field-container.php', $option );
					file_exists( $field_container_path ) && include $field_container_path;
				} else {
					do_action( "yit_panel_{$option['type']}", $option, $db_value, $custom_attributes );
				}
			}
		}

		/**
		 * Get options from db
		 * return the options from db, if the options aren't defined in the db,
		 * get the default options ad add the options in the db
		 *
		 * @return array
		 * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
		 */
		public function get_options() {
			$options = get_option( 'yit_' . $this->settings['parent'] . '_options' );
			if ( false === $options || ( isset( $_REQUEST['yit-action'] ) && 'reset' === sanitize_key( wp_unslash( $_REQUEST['yit-action'] ) ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
				$options = $this->get_default_options();
			}

			return $options;
		}

		/**
		 * Show a box panel with specific content in two columns as a new woocommerce type
		 *
		 * @param array $args The arguments.
		 *
		 * @author   Emanuela Castorina      <emanuela.castorina@yithemes.com>
		 */
		public static function add_infobox( $args = array() ) {
			if ( ! empty( $args ) ) {
				extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
				require YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/boxinfo.php';
			}
		}

		/**
		 * Show a box panel with specific content in two columns as a new woocommerce type
		 *
		 * @param array $args Arguments.
		 *
		 * @return   void
		 * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
		 */
		public static function add_videobox( $args = array() ) {

		}

		/**
		 * Fire the action to print the custom tab
		 *
		 * @return void
		 * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
		 */
		public function print_video_box() {

		}

		/**
		 * Sort plugins by name in YITH Plugins menu.
		 *
		 * @since    3.0.0
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public static function sort_plugins() {
			global $submenu;
			if ( ! empty( $submenu['yith_plugin_panel'] ) ) {
				$sorted_plugins = $submenu['yith_plugin_panel'];

				usort(
					$sorted_plugins,
					function ( $a, $b ) {
						return strcmp( current( $a ), current( $b ) );
					}
				);

				$submenu['yith_plugin_panel'] = $sorted_plugins; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
			}
		}

		/**
		 * Add menu class in YITH Plugins menu.
		 *
		 * @param array $menu The menu.
		 *
		 * @return array
		 * @since    3.0.0
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public static function add_menu_class_in_yith_plugin( $menu ) {
			global $submenu;

			if ( ! empty( $submenu['yith_plugin_panel'] ) ) {
				$item_count = count( $submenu['yith_plugin_panel'] );
				$columns    = absint( $item_count / 20 ) + 1;
				$columns    = max( 1, min( $columns, 3 ) );
				$columns    = apply_filters( 'yith_plugin_fw_yith_plugins_menu_columns', $columns, $item_count );

				if ( $columns > 1 ) {
					$class = "yith-plugin-fw-menu-$columns-columns";
					foreach ( $menu as $order => $top ) {
						if ( 'yith_plugin_panel' === $top[2] ) {
							$c                 = $menu[ $order ][4];
							$menu[ $order ][4] = add_cssclass( $class, $c );
							break;
						}
					}
				}
			}

			return $menu;
		}

		/**
		 * Check if inside the admin tab there's the premium tab to
		 * check if the plugin is a free or not
		 *
		 * @author Emanuela Castorina
		 */
		public function is_free() {
			return ( ! empty( $this->settings['admin-tabs'] ) && isset( $this->settings['admin-tabs']['premium'] ) );
		}

		/**
		 * Add plugin banner.
		 *
		 * @param string $page The page.
		 */
		public function add_plugin_banner( $page ) {
			if ( $page !== $this->settings['page'] || ! isset( $this->settings['class'] ) ) {
				return;
			}

			?>
			<?php if ( $this->is_free() && isset( $this->settings['plugin_slug'] ) ) : ?>
				<?php
				$rate_link = apply_filters( 'yith_plugin_fw_rate_url', 'https://wordpress.org/support/plugin/' . $this->settings['plugin_slug'] . '/reviews/#new-post' );
				?>
				<h1 class="notice-container"></h1>
				<div class="yith-plugin-fw-banner">
					<h1><?php echo esc_html( $this->settings['page_title'] ); ?></h1>
				</div>
				<div class="yith-plugin-fw-rate">
					<?php
					printf(
						'<strong>%s</strong> %s <a href="%s" target="_blank"><u>%s</u> <span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></a>  %s',
						esc_html__( 'We need your support', 'yith-plugin-fw' ),
						esc_html__( 'to keep updating and improving the plugin. Please,', 'yith-plugin-fw' ),
						esc_url( $rate_link ),
						esc_html__( 'help us by leaving a good review', 'yith-plugin-fw' ),
						esc_html__( ':) Thanks!', 'yith-plugin-fw' )
					);
					?>
				</div>
			<?php else : ?>
				<h1 class="notice-container"></h1>
				<div class="yith-plugin-fw-banner">
					<h1><?php echo esc_html( $this->settings['page_title'] ); ?></h1>
				</div>
			<?php endif ?>
			<?php
		}

		/**
		 * Add additional element after print the field.
		 *
		 * @param array $field The field.
		 *
		 * @author Emanuela Castorina
		 * @since  3.2
		 */
		public function add_yith_ui( $field ) {
			global $pagenow;

			$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;

			if ( empty( $this->settings['class'] ) || ! isset( $field['type'] ) ) {
				return;
			}
			if ( 'admin.php' === $pagenow && $screen && strpos( $screen->id, $this->settings['page'] ) !== false ) {
				switch ( $field['type'] ) {
					case 'datepicker':
						echo '<span class="yith-icon yith-icon-calendar yith-icon--right-overlay"></span>';
						break;
					default:
						break;
				}
			}
		}

		/**
		 * Get post type tabs.
		 *
		 * @param string $post_type The post type.
		 *
		 * @return array
		 */
		public function get_post_type_tabs( $post_type ) {
			$tabs = array();

			foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
				if ( isset( $info['type'], $info['post_type'] ) && 'post_type' === $info['type'] && $post_type === $info['post_type'] ) {
					if ( ! empty( $info['parent'] ) ) {
						$tabs = array(
							'tab'     => $info['parent'],
							'sub_tab' => $key,
							'options' => $info,
						);
					} else {
						$tabs = array(
							'tab'     => $key,
							'options' => $info,
						);
					}
					break;
				}
			}

			$panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';

			return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_post_type_tabs", $tabs, $post_type );
		}

		/**
		 * Get the taxonomy tabs.
		 *
		 * @param string $taxonomy The taxonomy.
		 *
		 * @return array
		 */
		public function get_taxonomy_tabs( $taxonomy ) {
			$tabs = array();

			foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
				if ( isset( $info['type'], $info['taxonomy'] ) && 'taxonomy' === $info['type'] && $taxonomy === $info['taxonomy'] ) {
					if ( ! empty( $info['parent'] ) ) {
						$tabs = array(
							'tab'     => $info['parent'],
							'sub_tab' => $key,
							'options' => $info,
						);
					} else {
						$tabs = array(
							'tab'     => $key,
							'options' => $info,
						);
					}
					break;
				}
			}

			$panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';

			return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_taxonomy_tabs", $tabs, $taxonomy );
		}


		/**
		 * If the panel page is a WP Page, this will redirect you to the correct page
		 * useful when a Post Type (Taxonomy) is the first tab of your panel, so when you open your panel it'll open the Post Type (Taxonomy) list
		 *
		 * @since    3.4.0
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public function maybe_redirect_to_proper_wp_page() {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			global $pagenow;
			if (
				'admin.php' === $pagenow && isset( $_GET['page'] ) && $this->settings['page'] === $_GET['page']
				&&
				! $this->is_custom_taxonomy_page() && ! $this->is_custom_post_type_page()
				&&
				! isset( $_REQUEST['yith-plugin-fw-panel-skip-redirect'] )
			) {
				$url = $this->get_nav_url( $this->settings['page'], $this->get_current_tab(), $this->get_current_sub_tab() );
				if ( strpos( $url, 'edit.php' ) !== false || strpos( $url, 'edit-tags.php' ) !== false ) {
					wp_safe_redirect( add_query_arg( array( 'yith-plugin-fw-panel-skip-redirect' => 1 ), $url ) );
					exit;
				}
			}
			// phpcs:enable
		}

		/**
		 * Print the Panel tabs and sub-tabs navigation in WP pages
		 * Important: this opens a wrapper <div> that will be closed through YIT_Plugin_Panel::print_panel_tabs_in_post_edit_page_end()
		 *
		 * @since    3.4.0
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public function print_panel_tabs_in_wp_pages() {
			if ( self::$panel_tabs_in_wp_pages ) {
				global $pagenow;

				wp_enqueue_style( 'yit-plugin-style' );
				wp_enqueue_script( 'yit-plugin-panel' );

				$wrap_class = isset( $this->settings['class'] ) ? $this->settings['class'] : '';
				$options    = isset( self::$panel_tabs_in_wp_pages['options'] ) ? self::$panel_tabs_in_wp_pages['options'] : array();

				$options_to_classes   = array( 'type', 'post_type', 'taxonomy' );
				$page_wrapper_classes = array(
					'yith-plugin-fw-wp-page-wrapper',
					isset( $options['wrapper-class'] ) ? $options['wrapper-class'] : '',
				);

				if ( in_array( $pagenow, array( 'edit.php', 'edit-tags.php' ), true ) ) {
					$options_to_classes[]   = 'wp-list-style';
					$page_wrapper_classes[] = 'yith-plugin-ui';
				}

				foreach ( $options_to_classes as $key ) {
					if ( isset( $options[ $key ] ) ) {
						$option                 = $options[ $key ];
						$page_wrapper_classes[] = "yith-plugin-ui--{$option}-{$key}";
					}
				}

				$page_wrapper_classes = implode( ' ', array_filter( $page_wrapper_classes ) );

				echo '<div class="' . esc_attr( $page_wrapper_classes ) . '">';

				echo '<div class="' . esc_attr( $wrap_class ) . '">';

				$this->add_plugin_banner( $this->settings['page'] );
				$this->print_tabs_nav( self::$panel_tabs_in_wp_pages );
				echo '</div>';

				if ( self::$panel_tabs_in_wp_pages['current_sub_tab'] ) {
					echo '<div class="yith-plugin-fw-wp-page__sub-tab-wrap">';
				}
			}
		}

		/**
		 * Close the wrapper opened in YIT_Plugin_Panel::print_panel_tabs_in_wp_pages()
		 *
		 * @since    3.4.0
		 * @author   Leanza Francesco <leanzafrancesco@gmail.com>
		 */
		public function print_panel_tabs_in_wp_pages_end() {
			if ( self::$panel_tabs_in_wp_pages ) {

				if ( self::$panel_tabs_in_wp_pages['current_sub_tab'] ) {
					echo '</div><!-- /yith-plugin-fw-wp-page__sub-tab-wrap -->';
				}

				echo '</div><!-- /yith-plugin-fw-wp-page-wrapper -->';
			}
		}

		/**
		 * Set the parent page to handle menu for WP Pages.
		 *
		 * @param string $parent_file The parent file.
		 *
		 * @return string
		 */
		public function set_parent_file_to_handle_menu_for_wp_pages( $parent_file ) {
			if ( self::$panel_tabs_in_wp_pages ) {
				return 'yith_plugin_panel';
			}

			return $parent_file;
		}

		/**
		 * Set the submenu page to handle menu for WP Pages.
		 *
		 * @param string $submenu_file The submenu file.
		 * @param string $parent_file  The parent file.
		 *
		 * @return mixed
		 */
		public function set_submenu_file_to_handle_menu_for_wp_pages( $submenu_file, $parent_file ) {
			if ( self::$panel_tabs_in_wp_pages ) {
				return $this->settings['page'];
			}

			return $submenu_file;
		}

		/**
		 * Save the toggle element options.
		 *
		 * @return bool
		 */
		public function save_toggle_element_options() {
			return true;
		}
	}
}
plugin-fw/includes/class-yit-cpt-unlimited.php000064400000002215151327614500015463 0ustar00<?php
/**
 * YITH Custom-Post-Type Unlimited Class.
 * Deprecated! Kept only to prevent fatal errors if someone is using it.
 *
 * @class      YIT_CPT_Unlimited
 * @package    YITH\PluginFramework\Classes
 * @deprecated 3.5 | This will be removed, so please don't use it
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_CPT_Unlimited' ) ) {

	/**
	 * Class YIT_CPT_Unlimited
	 *
	 * @deprecated 3.5 | This will be removed, so please don't use it
	 */
	class YIT_CPT_Unlimited {

		/**
		 * YIT_CPT_Unlimited constructor.
		 *
		 * @param array $args Configuration arguments of post type.
		 */
		public function __construct( $args = array() ) {

		}

		/**
		 * Avoid issues when calling a non-defined method
		 *
		 * @param string $name      Name of the missing method.
		 * @param array  $arguments Arguments.
		 *
		 * @return bool
		 */
		public function __call( $name, $arguments ) {
			return false;
		}

		/**
		 * Avoid issues when calling a non-defined attribute
		 *
		 * @param string $key Name of the missing attribute.
		 *
		 * @return bool
		 */
		public function __get( $key ) {
			return false;
		}
	}
}
plugin-fw/includes/class-yith-debug.php000064400000006132151327614500014145 0ustar00<?php
/**
 * YITH Debug Class.
 *
 * @class   YITH_Debug
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Debug' ) ) {
	/**
	 * YITH_Debug class.
	 *
	 * @author     Leanza Francesco <leanzafrancesco@gmail.com>
	 * @deprecated 3.7.7
	 */
	class YITH_Debug {

		/**
		 * The single instance of the class.
		 *
		 * @var YITH_Debug
		 */
		private static $instance;

		/**
		 * Singleton implementation.
		 *
		 * @return YITH_Debug
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * Deprecated singleton implementation.
		 * Kept for backward compatibility.
		 *
		 * @return YITH_Debug
		 * @deprecated 3.5 | use YITH_Debug::get_instance() instead.
		 */
		public static function get_instance() {
			return self::instance();
		}

		/**
		 * YITH_Debug constructor.
		 */
		private function __construct() {

		}

		/**
		 * Init
		 */
		public function init() {

		}

		/**
		 * Add debug node in admin bar.
		 *
		 * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance.
		 */
		public function add_debug_in_admin_bar( $wp_admin_bar ) {
			// Do nothing.
		}


		/**
		 * Return an array of debug information.
		 *
		 * @return array
		 */
		public function get_debug_information() {
			return array();
		}

		/**
		 * Return the current screen ID.
		 *
		 * @return string
		 */
		public function get_current_screen_info() {
			$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;

			return ! ! $screen ? $screen->id : 'null';
		}

		/**
		 * Return the current theme name and version.
		 *
		 * @return string
		 */
		public function get_theme_info() {
			$theme = function_exists( 'wp_get_theme' ) ? wp_get_theme() : false;

			return ! ! $theme ? $theme->get( 'Name' ) . ' (' . $theme->get( 'Version' ) . ')' : 'null';
		}

		/**
		 * Return the WooCommerce version if active.
		 *
		 * @return string
		 */
		public function get_woocommerce_version_info() {
			return function_exists( 'WC' ) ? WC()->version : 'not active';
		}

		/**
		 * Return plugin framework information (version and loaded_by).
		 *
		 * @return string
		 */
		public function get_plugin_framework_info() {
			$plugin_fw_version   = yith_plugin_fw_get_version();
			$plugin_fw_loaded_by = basename( dirname( YIT_CORE_PLUGIN_PATH ) );

			return "$plugin_fw_version (by $plugin_fw_loaded_by)";
		}

		/**
		 * Return premium plugins list with versions.
		 *
		 * @return array
		 */
		public function get_premium_plugins_info() {
			$plugins      = YIT_Plugin_Licence()->get_products();
			$plugins_info = array();

			if ( ! ! $plugins ) {
				foreach ( $plugins as $plugin ) {
					$plugins_info[ $plugin['product_id'] ] = array( 'title' => $plugin['Name'] . ' (' . $plugin['Version'] . ')' );
				}

				sort( $plugins_info );
			}

			return $plugins_info;
		}
	}
}
if ( ! function_exists( 'yith_debug' ) ) {
	/**
	 * Single instance of YITH_Debug
	 *
	 * @return YITH_Debug
	 * @deprecated 3.7.7
	 */
	function yith_debug() {
		return YITH_Debug::instance();
	}
}
plugin-fw/includes/class-yith-post-type-admin.php000064400000031365151327614500016117 0ustar00<?php
/**
 * Post Type Admin
 *
 * @class   YITH_Post_Type_Admin
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_Post_Type_Admin' ) ) {
	/**
	 * YITH_Post_Type_Admin class.
	 *
	 * @author  Leanza Francesco <leanzafrancesco@gmail.com>
	 */
	abstract class YITH_Post_Type_Admin {

		/**
		 * The post type.
		 *
		 * @var string
		 */
		protected $post_type = '';

		/**
		 * The object to be shown for each row.
		 *
		 * @var object|null
		 */
		protected $object = null;

		/**
		 * The ID of the Post to be shown for each row.
		 *
		 * @var int|null
		 */
		protected $post_id = null;

		/**
		 * The single instance of the class.
		 *
		 * @var YITH_Post_Type_Admin[]
		 */
		private static $instances = array();

		/**
		 * Singleton implementation.
		 *
		 * @return YITH_Post_Type_Admin
		 */
		public static function instance() {
			$class = get_called_class();

			return ! empty( self::$instances[ $class ] ) ? self::$instances[ $class ] : self::$instances[ $class ] = new $class();
		}

		/**
		 * YITH_Admin_Post_List_Table constructor.
		 */
		protected function __construct() {
			if ( $this->post_type && $this->is_enabled() ) {
				if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
					// use "admin_init" for AJAX calls, since in case of AJAX, "current_screen" is not fired.
					add_action( 'admin_init', array( $this, 'init_wp_list_handlers' ) );
				} else {
					add_action( 'current_screen', array( $this, 'init_wp_list_handlers' ) );
				}

				add_action( 'edit_form_top', array( $this, 'print_back_to_wp_list_button' ) );
			}
		}

		/**
		 * Return true if it's enabled.
		 *
		 * @return bool
		 */
		protected function is_enabled() {
			return is_admin();
		}

		/**
		 * Return true if you want to use the object when you render columns. False otherwise.
		 * This is useful if you have an object representing your Custom Post Type that handles the CRUD.
		 * Note: if you use the object, you should set it by overriding the YITH_Post_Type_Admin::prepare_row_data method.
		 *
		 * @return bool
		 */
		protected function use_object() {
			return true;
		}

		/**
		 * Return true if the wp-list handlers should be loaded.
		 *
		 * @return bool
		 */
		protected function should_wp_list_handlers_be_loaded() {
			$screen_id = false;

			if ( function_exists( 'get_current_screen' ) ) {
				$screen    = get_current_screen();
				$screen_id = isset( $screen, $screen->id ) ? $screen->id : '';
			}

			if ( ! empty( $_REQUEST['screen'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
				$screen_id = sanitize_text_field( wp_unslash( $_REQUEST['screen'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
			}

			return ! ! $screen_id && ( 'edit-' . $this->post_type === $screen_id );
		}

		/**
		 * Initialize the WP List handlers.
		 */
		public function init_wp_list_handlers() {
			if ( $this->should_wp_list_handlers_be_loaded() ) {
				add_action( 'manage_posts_extra_tablenav', array( $this, 'maybe_render_blank_state' ) );

				add_action( 'restrict_manage_posts', array( $this, 'maybe_render_filters' ) );
				add_filter( 'request', array( $this, 'request_query' ) );

				add_filter( 'list_table_primary_column', array( $this, 'list_table_primary_column' ), 10, 2 );
				add_filter( 'post_row_actions', array( $this, 'row_actions' ), 100, 2 );

				add_filter( 'default_hidden_columns', array( $this, 'default_hidden_columns' ), 10, 2 );
				add_filter( 'manage_edit-' . $this->post_type . '_sortable_columns', array( $this, 'define_sortable_columns' ) );
				add_filter( 'manage_' . $this->post_type . '_posts_columns', array( $this, 'define_columns' ) );
				add_filter( 'bulk_actions-edit-' . $this->post_type, array( $this, 'define_bulk_actions' ) );

				add_action( 'manage_' . $this->post_type . '_posts_custom_column', array( $this, 'render_columns' ), 10, 2 );
				add_filter( 'handle_bulk_actions-edit-' . $this->post_type, array( $this, 'handle_bulk_actions' ), 10, 3 );

				add_action( 'disable_months_dropdown', array( $this, 'disable_months_dropdown' ), 10, 2 );
			}
		}

		/**
		 * --------------------------------------------------------------------------
		 * Getters and definers methods
		 * --------------------------------------------------------------------------
		 *
		 * Methods for getting data from the objects. Usually you need to override them in your class.
		 */

		/**
		 * Get actions to show in the list table as action-buttons
		 *
		 * @return array
		 */
		protected function get_item_actions() {
			return array();
		}

		/**
		 * Retrieve an array of parameters for blank state.
		 *
		 * @return array{
		 * @type string $icon       The YITH icon. You can use this one (to use an YITH icon) or icon_class or icon_url.
		 * @type string $icon_class The icon class. You can use this one (to use a custom class for your icon) or icon or icon_url.
		 * @type string $icon_url   The icon URL. You can use this one (to specify an icon URL) or icon_icon or icon_class.
		 * @type string $message    The message to be shown.
		 * @type string $cta        {
		 *            The call-to-action button params.
		 * @type string $title      The call-to-action button title.
		 * @type string $icon       The call-to-action button icon.
		 * @type string $url        The call-to-action button URL.
		 * @type string $class      The call-to-action button class.
		 *                            }
		 *              }
		 */
		protected function get_blank_state_params() {
			return array();
		}

		/**
		 * Define primary column.
		 *
		 * @return string
		 */
		protected function get_primary_column() {
			return '';
		}

		/**
		 * Define hidden columns.
		 *
		 * @return array
		 */
		protected function get_default_hidden_columns() {
			return array();
		}

		/**
		 * Define which columns are sortable.
		 *
		 * @param array $columns Existing columns.
		 *
		 * @return array
		 */
		public function define_sortable_columns( $columns ) {
			return $columns;
		}

		/**
		 * Define which columns to show on this screen.
		 *
		 * @param array $columns Existing columns.
		 *
		 * @return array
		 */
		public function define_columns( $columns ) {
			return $columns;
		}

		/**
		 * Define bulk actions.
		 *
		 * @param array $actions Existing actions.
		 *
		 * @return array
		 */
		public function define_bulk_actions( $actions ) {
			return $actions;
		}

		/**
		 * Pre-fetch any data for the row each column has access to it, by loading $this->object.
		 *
		 * @param int $post_id Post ID being shown.
		 */
		protected function prepare_row_data( $post_id ) {
		}

		/**
		 * Render any custom filters and search inputs for the list table.
		 */
		protected function render_filters() {
		}

		/**
		 * Handle any custom filters.
		 *
		 * @param array $query_vars Query vars.
		 *
		 * @return array
		 */
		protected function query_filters( $query_vars ) {
			return $query_vars;
		}

		/**
		 * Handle bulk actions.
		 *
		 * @param string $redirect_to URL to redirect to.
		 * @param string $action      Action name.
		 * @param array  $ids         List of ids.
		 *
		 * @return string
		 */
		public function handle_bulk_actions( $redirect_to, $action, $ids ) {
			return esc_url_raw( $redirect_to );
		}

		/**
		 * Has the months dropdown enabled?
		 *
		 * @return bool
		 */
		protected function has_months_dropdown_enabled() {
			return false;
		}

		/**
		 * Return the text of the "back to WP List" button.
		 * Return empty string if you want to hide the button.
		 *
		 * @return string
		 */
		protected function get_back_to_wp_list_text() {
			$post_type_object = get_post_type_object( $this->post_type );
			$name             = ! ! $post_type_object ? get_post_type_labels( $post_type_object )->name : '';

			// translators: %s is the name of the post type (example Back to "Membership Plans").
			return ! ! $name ? sprintf( __( 'Back to "%s"', 'yith-plugin-fw' ), $name ) : __( 'Back to the list', 'yith-plugin-fw' );
		}

		/**
		 * --------------------------------------------------------------------------
		 * Utils hook handlers
		 * --------------------------------------------------------------------------
		 *
		 * Methods for handling hooks.
		 */

		/**
		 * Adjust which columns are displayed by default.
		 *
		 * @param array  $hidden Current hidden columns.
		 * @param object $screen Current screen.
		 *
		 * @return array
		 */
		public function default_hidden_columns( $hidden, $screen ) {
			if ( isset( $screen->id ) && 'edit-' . $this->post_type === $screen->id ) {
				$hidden = array_merge( $hidden, $this->get_default_hidden_columns() );
			}

			return $hidden;
		}

		/**
		 * Set list table primary column.
		 *
		 * @param string $default   Default value.
		 * @param string $screen_id Current screen ID.
		 *
		 * @return string
		 */
		public function list_table_primary_column( $default, $screen_id ) {
			if ( 'edit-' . $this->post_type === $screen_id && $this->get_primary_column() ) {
				return $this->get_primary_column();
			}

			return $default;
		}

		/**
		 * Show blank slate.
		 *
		 * @param string $which String which table-nav is being shown.
		 */
		public function maybe_render_blank_state( $which ) {
			global $post_type;

			if ( $this->get_blank_state_params() && $post_type === $this->post_type && 'bottom' === $which ) {
				$counts = (array) wp_count_posts( $post_type );
				unset( $counts['auto-draft'] );
				$count = array_sum( $counts );

				if ( 0 < $count ) {
					return;
				}

				$this->render_blank_state();

				echo '<style type="text/css">#posts-filter .wp-list-table, #posts-filter .tablenav.top, .tablenav.bottom > *, .wrap .subsubsub  { display: none; } #posts-filter .tablenav.bottom { height: auto; display: block } </style>';
			}
		}

		/**
		 * Render blank state. Extend to add content.
		 */
		protected function render_blank_state() {
			$component         = $this->get_blank_state_params();
			$component['type'] = 'list-table-blank-state';

			yith_plugin_fw_get_component( $component, true );
		}

		/**
		 * Render individual columns.
		 *
		 * @param string $column  Column ID to render.
		 * @param int    $post_id Post ID being shown.
		 */
		public function render_columns( $column, $post_id ) {
			if ( empty( $this->post_id ) || $this->post_id !== $post_id ) {
				$this->post_id = $post_id;
				$this->prepare_row_data( $post_id );
			}

			if ( $this->use_object() && ! $this->object ) {
				return;
			}

			$render_method = 'render_' . str_replace( '-', '_', $column ) . '_column';

			if ( is_callable( array( $this, $render_method ) ) ) {
				$this->{$render_method}();
			}
		}

		/**
		 * Set row actions: remove row actions, since we show actions through action-buttons.
		 *
		 * @param array   $actions Array of actions.
		 * @param WP_Post $post    Current post object.
		 *
		 * @return array
		 */
		public function row_actions( $actions, $post ) {
			if ( $this->post_type === $post->post_type ) {
				return array();
			}

			return $actions;
		}

		/**
		 * See if we should render search filters or not.
		 */
		public function maybe_render_filters() {
			global $typenow;

			if ( $this->post_type === $typenow ) {
				$this->render_filters();
			}
		}

		/**
		 * Handle any filters.
		 *
		 * @param array $query_vars Query vars.
		 *
		 * @return array
		 */
		public function request_query( $query_vars ) {
			global $typenow;

			if ( $this->post_type === $typenow ) {
				return $this->query_filters( $query_vars );
			}

			return $query_vars;
		}

		/**
		 * Disable Months dropdown for Bookings
		 *
		 * @param bool   $disable   Set true to disable.
		 * @param string $post_type The post type.
		 *
		 * @return bool
		 */
		public function disable_months_dropdown( $disable, $post_type ) {
			if ( $this->post_type === $post_type ) {
				$disable = ! $this->has_months_dropdown_enabled();
			}

			return $disable;
		}

		/**
		 * Print the "Back to WP List" button in Edit Post pages
		 */
		public function print_back_to_wp_list_button() {
			$screen    = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
			$screen_id = $screen ? $screen->id : false;

			if ( $screen_id === $this->post_type ) {
				$url  = add_query_arg( array( 'post_type' => $this->post_type ), admin_url( 'edit.php' ) );
				$text = $this->get_back_to_wp_list_text();
				if ( $text ) {
					?>
					<div id='yith-plugin-fw__back-to-wp-list__wrapper' class='yith-plugin-fw__back-to-wp-list__wrapper'>
						<a id='yith-plugin-fw__back-to-wp-list' class='yith-plugin-fw__back-to-wp-list' href='<?php echo esc_url( $url ); ?>'><?php echo esc_html( $text ); ?></a>
					</div>
					<script type="text/javascript">
						( function () {
							var wrap   = document.querySelector( '.wrap' ),
								backTo = document.querySelector( '#yith-plugin-fw__back-to-wp-list__wrapper' );

							wrap.insertBefore( backTo, wrap.childNodes[ 0 ] );
						} )();
					</script>
					<?php
				}
			}
		}

	}
}
plugin-fw/includes/class-yit-gradients.php000064400000030716151327614500014674 0ustar00<?php
/**
 * YITH Plugin Gradients Class.
 *
 * @class   YIT_Gradients
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Gradients' ) ) {

	/**
	 * YIT_Gradients class.
	 *
	 * @deprecated 3.5
	 */
	class YIT_Gradients {
		/**
		 * An array of colors to use for a gradient.
		 *
		 * @var     array
		 */
		public $colors_gradient = array();

		/**
		 * Set property
		 *
		 * @param string $key   The key.
		 * @param mixed  $value The value.
		 *
		 * @internal param array $colors_gradient
		 */
		public function set( $key, $value ) {
			if ( property_exists( $this, $key ) ) {
				$this->{$key} = $value;
			}
		}

		/**
		 * Get property
		 *
		 * @param string $key The key.
		 *
		 * @return mixed
		 */
		public function get( $key ) {
			if ( property_exists( $this, $key ) ) {
				return $this->{$key};
			}

			return false;
		}

		/**
		 * Add a color to use in a gradient.
		 *
		 * @param string $color    The color.
		 * @param int    $position The position.
		 */
		public function add_color_gradient( $color, $position ) {
			$the_color['color']    = $color;
			$the_color['position'] = $position;

			array_push( $this->colors_gradient, $the_color );
		}

		/**
		 * Generate the CSS code for a gradient.
		 *
		 * @param string $role      The role.
		 * @param string $direction The direction.
		 *
		 * @return string|bool
		 */
		public function gradient( $role, $direction ) {
			if ( ! empty( $this->colors_gradient ) ) {

				$css = array(
					'old'        => $this->make_old_gradient( $this->colors_gradient[0]['color'] ), // Old browsers support.
					'ff3'        => $this->make_modern_gradient( $this->colors_gradient, $direction, 'moz' ), // Firefox 3.6+ support.
					'chr_saf4'   => $this->make_chr_saf4_gradient( $this->colors_gradient, $direction ), // Chrome and safari4+ support.
					'chr10_saf5' => $this->make_modern_gradient( $this->colors_gradient, $direction, 'webkit' ), // Chrome10+ and safari5+ support.
					'opera'      => $this->make_modern_gradient( $this->colors_gradient, $direction, 'o' ), // Opera11.10+ support.
					'ie10'       => $this->make_modern_gradient( $this->colors_gradient, $direction, 'ms' ), // Internet explorer 10+ support.
					'w3c'        => $this->make_modern_gradient( $this->colors_gradient, $direction, 'w3c' ), // W3c support.
					'ie6_9'      => $this->make_ie6_gradient( $this->colors_gradient, $direction ), // Ie6-9 support.
				);

				$css = $role . '{' . implode( ';', $css ) . '}';

				$this->colors_gradient = array();

				return $css;
			}

			return '';
		}

		/**
		 * Reverse a gradient. This method should be used only before calling ::make_gradient(). Otherwise it will not works.
		 */
		public function reverse_gradient() {
			$colors_gradient       = array_reverse( $this->get( 'colors_gradient' ) );
			$colors_gradient_count = count( $colors_gradient );
			for ( $i = 0; $i < $colors_gradient_count; $i ++ ) {
				$colors_gradient[ $i ]['position'] = 100 - $colors_gradient[ $i ]['position'];
			}

			$this->set( 'colors_gradient', $colors_gradient );
		}

		/**
		 * Generate the CSS code for a gradient.
		 *
		 * @param string $role      The role.
		 * @param string $direction The direction.
		 *
		 * @return string|bool
		 */
		public function get_gradient( $role, $direction ) {
			return $this->gradient( $role, $direction );
		}

		/**
		 * Generate the CSS code for a gradient.
		 *
		 * @param string $role      The role.
		 * @param string $direction The direction.
		 */
		public function the_gradient( $role, $direction ) {
			echo esc_html( $this->get_gradient( $role, $direction ) );
		}

		/**
		 * Generate the CSS code for a gradient.
		 *
		 * @param string $role      The role.
		 * @param string $from      From color.
		 * @param string $to        To color.
		 * @param string $direction The direction.
		 *
		 * @return string|bool
		 */
		public function gradient_from_to( $role, $from, $to, $direction ) {

			$colors = array(
				array(
					'color'    => $from,
					'position' => 0,
				),
				array(
					'color'    => $to,
					'position' => 100,
				),
			);

			$this->set( 'colors_gradient', $colors );

			return $this->get_gradient( $role, $direction );
		}

		/**
		 * Generate the CSS code for a gradient.
		 *
		 * @param string     $role      The role.
		 * @param string     $color     The color.
		 * @param string     $direction The direction.
		 * @param int|string $factor    The factor.
		 *
		 * @return string|bool
		 */
		public function gradient_darker( $role, $color, $direction, $factor = 30 ) {

			$colors = array(
				array(
					'color'    => $color,
					'position' => 0,
				),
				array(
					'color'    => $this->hex_darker( $color, $factor ),
					'position' => 100,
				),
			);

			$this->set( 'colors_gradient', $colors );

			return $this->get_gradient( $role, $direction );
		}

		/**
		 * Generate the CSS code for a gradient.
		 *
		 * @param string     $role      The role.
		 * @param string     $color     The color.
		 * @param string     $direction The direction.
		 * @param int|string $factor    The factor.
		 *
		 * @return string|bool
		 * @since  1.0
		 */
		public function gradient_lighter( $role, $color, $direction, $factor = 30 ) {

			$colors = array(
				array(
					'color'    => $color,
					'position' => 0,
				),
				array(
					'color'    => $this->hex_lighter( $color, $factor ),
					'position' => 100,
				),
			);

			$this->set( 'colors_gradient', $colors );

			return $this->get_gradient( $role, $direction );
		}

		/**
		 * Generate the CSS code for a gradient that not supports gradients (add only a background color).
		 *
		 * @param string $color The color.
		 *
		 * @return string|bool
		 */
		private function make_old_gradient( $color ) {
			return 'background:' . $color;
		}

		/**
		 * Generate the CSS code for a gradient in IE6-9.
		 *
		 * @param array  $colors    The colors.
		 * @param string $direction The direction.
		 *
		 * @return string|bool
		 */
		private function make_ie6_gradient( $colors, $direction ) {
			$start  = $colors[0]['color'];
			$end    = $colors[ count( $colors ) - 1 ]['color'];
			$type   = 'horizontal' === $direction ? 1 : 0;
			$params = implode(
				',',
				array(
					"startColorstr='{$start}'",
					"endColorstr='{$end}'",
					"GradientType={$type}",
				)
			);

			return "filter:progid:DXImageTransform.Microsoft.gradient({$params})";
		}

		/**
		 * Make the CSS 3 for a gradient in modern browsers( FF3.6+, Chrome, Safari5+, Opera11.10+, IE10+ )
		 *
		 * @param array  $colors    The colors.
		 * @param string $direction The direction.
		 * @param string $browser   The browser.
		 *
		 * @return string
		 */
		private function make_modern_gradient( $colors, $direction, $browser ) {
			$css = 'background:';

			// Add the browser suffix.
			if ( 'w3c' !== $browser ) {
				$browser = '-' . $browser . '-';
			} else {
				$browser = '';
			}

			switch ( $direction ) {
				case 'vertical':
					$css .= $browser . 'linear-gradient(top,';
					break;
				case 'horizontal':
					$css .= $browser . 'linear-gradient(left,';
					break;
				case 'diagonal-bottom':
					$css .= $browser . 'linear-gradient(-45deg,';
					break;
				case 'diagonal-top':
					$css .= $browser . 'linear-gradient(45deg,';
					break;
				case 'radial':
					$css .= $browser . 'radial-gradient(center, ellipse cover,';
					break;
			}

			foreach ( $colors as $stop ) {
				$css .= $stop['color'] . ' ' . $stop['position'] . '%, ';
			}

			$css = rtrim( $css );
			$css = rtrim( $css, ',' );

			$css .= ')';

			return $css;
		}

		/**
		 * Make the CSS 3 for a gradient in Chrome and Safari 4+
		 *
		 * @param array  $colors    The colors.
		 * @param string $direction The direction.
		 *
		 * @return string
		 */
		private function make_chr_saf4_gradient( $colors, $direction ) {
			$css = 'background:';

			switch ( $direction ) {
				case 'vertical':
					$css .= '-webkit-gradient(linear,left top,left bottom,';
					break;
				case 'horizontal':
					$css .= '-webkit-gradient(linear,left top,right top,';
					break;
				case 'diagonal-bottom':
					$css .= '-webkit-gradient(linear,left top,right bottom,';
					break;
				case 'diagonal-top':
					$css .= '-webkit-gradient(linear,left bottom,right top,';
					break;
				case 'radial':
					$css .= '-webkit-gradient(radial,center center, 0px, center center, 100%,';
					break;
			}

			foreach ( $colors as $stop ) {
				$css .= 'color-stop(' . $stop['position'] . '%, ' . $stop['color'] . '), ';
			}

			$css = rtrim( $css );
			$css = rtrim( $css, ',' );

			$css .= ')';

			return $css;
		}

		/**
		 * Return an instance of the model called
		 *
		 * @param string $class The name of class that I want the instance.
		 *
		 * @return mixed
		 * @deprecated 3.5 | use YIT_Gradients::get_model instead
		 */
		public function getModel( $class ) {
			return $this->get_model( $class );
		}


		/**
		 * Return an instance of the model called
		 *
		 * @param string $class The name of class that I want the instance.
		 *
		 * @return mixed
		 * @since  3.5
		 */
		public function get_model( $class ) {
			return class_exists( 'YIT_Registry' ) ? YIT_Registry::get_instance()->$class : false;
		}


		/**
		 * Return a color darker then $color.
		 *
		 * @param string $color  The color.
		 * @param int    $factor The factor.
		 *
		 * @return  string
		 */
		public function hex_darker( $color, $factor = 30 ) {
			$color = str_replace( '#', '', $color );

			$base['R'] = hexdec( substr( $color, 0, 2 ) );
			$base['G'] = hexdec( substr( $color, 2, 2 ) );
			$base['B'] = hexdec( substr( $color, 4, 2 ) );

			$color = '#';

			foreach ( $base as $k => $v ) {
				$amount      = $v / 100;
				$amount      = round( $amount * $factor );
				$new_decimal = $v - $amount;

				$new_hex_component = dechex( $new_decimal );

				if ( strlen( $new_hex_component ) < 2 ) {
					$new_hex_component = '0' . $new_hex_component;
				}

				$color .= $new_hex_component;
			}

			return $color;
		}

		/**
		 * Return a color lighter then $color.
		 *
		 * @param string $color  The color.
		 * @param int    $factor The factor.
		 *
		 * @return  string
		 */
		public function hex_lighter( $color, $factor = 30 ) {
			$color = str_replace( '#', '', $color );

			$base['R'] = hexdec( $color[0] . $color[1] );
			$base['G'] = hexdec( $color[2] . $color[3] );
			$base['B'] = hexdec( $color[4] . $color[5] );

			$color = '#';

			foreach ( $base as $k => $v ) {
				$amount      = 255 - $v;
				$amount      = $amount / 100;
				$amount      = round( $amount * $factor );
				$new_decimal = $v + $amount;

				$new_hex_component = dechex( $new_decimal );

				if ( strlen( $new_hex_component ) < 2 ) {
					$new_hex_component = '0' . $new_hex_component;
				}

				$color .= $new_hex_component;
			}

			return $color;
		}

		/**
		 * Detect if we must use a color darker or lighter then the background.
		 *
		 * @param string $color The color.
		 * @param string $dark  The dark color.
		 * @param string $light The light color.
		 *
		 * @return  string
		 * @since   1.0
		 * @author  Andrea Grillo <andrea.grillo@yithemes.com>
		 */
		public function light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
			$hex = str_replace( '#', '', $color );

			$c_r        = hexdec( substr( $hex, 0, 2 ) );
			$c_g        = hexdec( substr( $hex, 2, 2 ) );
			$c_b        = hexdec( substr( $hex, 4, 2 ) );
			$brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;

			return ( $brightness > 155 ) ? $dark : $light;
		}

		/**
		 * Detect if we must use a color darker or lighter then the background.
		 *
		 * @param string $hex the Color.
		 *
		 * @return array Array with the rgb values.
		 */
		public function hex2rgb( $hex ) {
			$hex = str_replace( '#', '', $hex );

			if ( 3 === strlen( $hex ) ) {
				$r = hexdec( substr( $hex, 0, 1 ) . substr( $hex, 0, 1 ) );
				$g = hexdec( substr( $hex, 1, 1 ) . substr( $hex, 1, 1 ) );
				$b = hexdec( substr( $hex, 2, 1 ) . substr( $hex, 2, 1 ) );
			} else {
				$r = hexdec( substr( $hex, 0, 2 ) );
				$g = hexdec( substr( $hex, 2, 2 ) );
				$b = hexdec( substr( $hex, 4, 2 ) );
			}
			$rgb = array( $r, $g, $b );

			return $rgb;
		}

		/**
		 * Magic getter method
		 *
		 * @param string $prop The property.
		 *
		 * @return mixed
		 */
		public function __get( $prop ) {
			$value = null;
			if ( 'request' === $prop ) {
				if ( class_exists( 'YIT_Request' ) && ( ! isset( $this->request ) || ! $this->request instanceof YIT_Request ) ) {
					$value         = YIT_Registry::get_instance()->request;
					$this->request = $value;
				}
			}

			return $value;
		}
	}
}
plugin-fw/includes/class-yit-help-desk.php000064400000013227151327614500014566 0ustar00<?php
/**
 * YITH Help Desk static Class.
 *
 * @class   YIT_Plugin_Panel
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Help_Desk' ) ) {
	/**
	 * Class YIT_Help_Desk
	 *
	 * Contains static utilities for help desk integrations
	 */
	class YIT_Help_Desk {

		/**
		 * URL to contact to query zendesk API
		 * It can be overridden, by defining YIT_HELP_CENTER_DEBUG_URL constant
		 *
		 * @const string API url.
		 */
		const PRODUCTION_URL = 'https://support.yithemes.com/api/v2/help_center/en-us/';

		/**
		 * Retrieves latest articles flagged with a give set of labels (and featured)
		 *
		 * @param  array $labels Array of labest to search; default to empty array (all featured articles will be retrieved).
		 *
		 * @return array Array of articles, formatted as follows:
		 * [
		 *   [
		 *     'title' => 'Lorem ipsum dolor sit amet',
		 *     'url'   => 'https://example.com/lorem-ipsum-dolor-sit-amet'
		 *   ],
		 *   ...
		 * ]
		 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
		 */
		public static function get_latest_articles( $labels = array() ) {
			$latest_articles = get_site_transient( 'yith-plugin-fw-latest-hc-articles' );
			$latest_articles = $latest_articles ? $latest_articles : array();

			$labels = (array) $labels;

			// add featured label.
			if ( ! in_array( 'featured', $labels, true ) ) {
				$labels[] = 'featured';
			}

			// format labels to a valid query string param.
			$labels = implode( ',', array_map( 'sanitize_text_field', $labels ) );

			if ( ! empty( $latest_articles[ $labels ] ) && ! isset( $_GET['yith_plugin_fw_reset_hc_articles'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
				// if we can find articles in cache, return them.
				return $latest_articles[ $labels ];
			} else {
				// otherwise try to retrieve them.
				try {
					$response = self::call(
						'articles.json',
						'GET',
						array(
							'label_names' => $labels,
							'sort_by'     => 'created_at',
							'sort_order'  => 'desc',
							'per_page'    => 5,
						)
					);
				} catch ( Exception $e ) {
					return array();
				}

				// invalid answer from Zendesk server.
				if ( ! isset( $response['articles'] ) || ! is_array( $response['articles'] ) ) {
					return array();
				}

				$formatted_articles = array();

				foreach ( $response['articles'] as $article ) {
					// invalid article from Zendesk server.
					if ( ! isset( $article['html_url'] ) || ! isset( $article['title'] ) ) {
						continue;
					}

					// add valid articles.
					$formatted_articles[] = array(
						'title' => $article['title'],
						'url'   => esc_url( $article['html_url'] ),
					);
				}

				$latest_articles[ $labels ] = $formatted_articles;

				// update cache.
				set_site_transient( 'yith-plugin-fw-latest-hc-articles', $latest_articles, 15 * DAY_IN_SECONDS );

				return $formatted_articles;
			}
		}

		/**
		 * Performs any API request to HC API
		 *
		 * @param string $request Endpoint to call.
		 * @param string $method  HTTP method for the call.
		 * @param array  $query   Query string parameters to include with the request.
		 * @param array  $body    Parameters to send as json_encoded content of the request.
		 * @param array  $args    Array of parameters to pass to {wp_remote_request}.
		 *
		 * @return string Parsed body of the answer; if content is valid JSON string, it will be decoded before return.
		 * @throws Exception When an error occurs with API call; error contains more details about the type of problem.
		 *
		 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
		 */
		public static function call( $request, $method = 'GET', $query = array(), $body = array(), $args = array() ) {
			$destination_url = self::get_url( $request );

			if ( ! empty( $query ) ) {
				$destination_url = add_query_arg( $query, $destination_url );
			}

			$body = 'GET' === $method ? $body : wp_json_encode( $body );

			$args = array_merge(
				array(
					'timeout'            => apply_filters( 'yit_plugin_fw_help_desk_request_timeout', 2 ),
					'reject_unsafe_urls' => true,
					'blocking'           => true,
					'sslverify'          => true,
					'attempts'           => 0,
				),
				$args,
				array(
					'method' => $method,
					'body'   => $body,
				)
			);

			$response = wp_remote_request( $destination_url, $args );

			if ( is_wp_error( $response ) ) {
				throw new Exception( $response->get_error_message(), 400 );
			} else {
				$resp_body = isset( $response['body'] ) ? @json_decode( $response['body'], true ) : ''; // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
				$status    = isset( $response['response'] ) ? absint( $response['response']['code'] ) : false;

				if ( ! in_array( $status, apply_filters( 'yit_plugin_fw_help_desk_valid_response_statuses', array( 200 ) ), true ) ) {
					throw new Exception( __( 'There was an error with your request; please try again later.', 'yith-plugin-fw' ), $status );
				} else {
					return $resp_body;
				}
			}
		}

		/**
		 * Get formatted url for API calls
		 *
		 * @param  string $request Endpoint to call with url.
		 * @return string Formatted url.
		 *
		 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
		 */
		public static function get_url( $request = '' ) {
			$base_url = self::PRODUCTION_URL;

			if ( defined( 'YIT_HELP_CENTER_DEBUG_URL' ) ) {
				$alternative_url = filter_var( YIT_HELP_CENTER_DEBUG_URL, FILTER_VALIDATE_URL );
				$base_url        = $alternative_url ? $alternative_url : $base_url;
			}

			if ( 0 !== strrpos( $base_url, '/' ) ) {
				$base_url = trailingslashit( $base_url );
			}

			if ( $request ) {
				$base_url .= $request;
			}

			return $base_url;
		}

	}
}
plugin-fw/includes/class-yit-ajax.php000064400000015363151327614500013640 0ustar00<?php
/**
 * AJAX Class. AJAX Event Handler.
 *
 * @class   YIT_Ajax
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Ajax' ) ) {
	/**
	 * YIT_Ajax class.
	 *
	 * @author  Leanza Francesco <leanzafrancesco@gmail.com>
	 */
	class YIT_Ajax {

		/**
		 * The single instance of the class.
		 *
		 * @var YIT_Ajax
		 */
		private static $instance;

		/**
		 * Singleton implementation.
		 *
		 * @return YIT_Ajax
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * YIT_Ajax constructor.
		 */
		private function __construct() {
			$ajax_actions = array(
				'json_search_posts',
				'json_search_products',
				'json_search_orders',
				'json_search_terms',
			);

			foreach ( $ajax_actions as $ajax_action ) {
				add_action( 'wp_ajax_yith_plugin_fw_' . $ajax_action, array( $this, $ajax_action ) );
				add_action( 'wp_ajax_nopriv_yith_plugin_fw_' . $ajax_action, array( $this, $ajax_action ) );
			}
		}

		/**
		 * Post Search
		 *
		 * @param array $request The request.
		 */
		public function json_search_posts( $request = array() ) {
			ob_start();

			// Make sure request is an array.
			$request = is_array( $request ) ? $request : array();

			if ( empty( $request ) ) {
				check_ajax_referer( 'search-posts', 'security' );
			}

			$term = isset( $request['term'] ) ? $request['term'] : ( isset( $_REQUEST['term'] ) ? (string) sanitize_text_field( wp_unslash( $_REQUEST['term'] ) ) : '' );
			if ( empty( $term ) ) {
				die();
			}

			$found_posts = array();
			$args        = array(
				'post_type'        => 'post',
				'post_status'      => 'publish',
				'numberposts'      => 20,
				'orderby'          => 'title',
				'order'            => 'asc',
				'suppress_filters' => 0,
				'include'          => '',
				'exclude'          => '',
			);

			foreach ( $args as $key => $default_value ) {
				if ( ! empty( $_REQUEST[ $key ] ) ) {
					$args[ $key ] = sanitize_text_field( wp_unslash( $_REQUEST[ $key ] ) );
				}
			}

			if ( isset( $_REQUEST['post_parent'] ) ) {
				$args['post_parent'] = intval( $_REQUEST['post_parent'] );
			}

			// Merge with passed request data.
			$args    = array_merge( $args, $request );
			$show_id = ! empty( $_REQUEST['show_id'] );

			$args['s']      = $term;
			$args['fields'] = 'ids';

			$posts = get_posts( $args );

			if ( ! empty( $posts ) ) {
				foreach ( $posts as $post_id ) {
					if ( ! current_user_can( 'read_post', $post_id ) ) {
						continue;
					}

					$the_title = yith_plugin_fw_get_post_formatted_name(
						$post_id,
						array(
							'post-type' => $args['post_type'],
							'show-id'   => $show_id,
						)
					);

					$found_posts[ $post_id ] = apply_filters( 'yith_plugin_fw_json_search_found_post_title', rawurldecode( wp_strip_all_tags( $the_title ) ), $post_id, $request );
				}
			}

			$found_posts = apply_filters( 'yith_plugin_fw_json_search_found_posts', $found_posts, $request );
			wp_send_json( $found_posts );
		}

		/**
		 * Product Search
		 */
		public function json_search_products() {
			check_ajax_referer( 'search-posts', 'security' );

			$term = isset( $_REQUEST['term'] ) ? (string) wc_clean( wp_unslash( $_REQUEST['term'] ) ) : false;
			if ( empty( $term ) ) {
				die();
			}

			$request         = array( 'post_type' => 'product' );
			$request_include = isset( $_REQUEST['include'] ) && ! is_array( $_REQUEST['include'] ) ? explode( ',', sanitize_text_field( wp_unslash( $_REQUEST['include'] ) ) ) : array();

			if ( ! empty( $_REQUEST['product_type'] ) ) {
				$product_type      = sanitize_text_field( wp_unslash( $_REQUEST['product_type'] ) );
				$product_type_term = get_term_by( 'slug', $product_type, 'product_type' );

				if ( $product_type_term ) {
					$posts_in = array_unique( (array) get_objects_in_term( $product_type_term->term_id, 'product_type' ) );
					if ( ! ! $request_include ) {
						$posts_in = array_intersect( $posts_in, $request_include );
					}

					if ( ! ! $posts_in ) {
						$request['include'] = implode( ',', $posts_in );
					} else {
						$request['include'] = '-1';
					}
				}
			}

			$request = apply_filters( 'yith_plugin_fw_json_search_products_request', $request );
			$this->json_search_posts( $request );
		}

		/**
		 * Order Search
		 */
		public function json_search_orders() {
			global $wpdb;
			ob_start();

			check_ajax_referer( 'search-posts', 'security' );

			$term = isset( $_REQUEST['term'] ) ? intval( $_REQUEST['term'] ) : false;

			if ( empty( $term ) ) {
				die();
			}

			$found_orders = array();
			$term         = apply_filters( 'yith_plugin_fw_json_search_order_number', $term );
			$search       = '%' . intval( $term ) . '%';

			$query_orders = $wpdb->get_results(
				$wpdb->prepare(
					"SELECT ID, post_title FROM {$wpdb->posts} AS posts WHERE posts.post_type = 'shop_order' AND posts.ID LIKE %s",
					$search
				)
			);

			if ( $query_orders ) {
				foreach ( $query_orders as $item ) {
					$order_number              = apply_filters( 'yith_plugin_fw_order_number', '#' . $item->ID, $item->ID );
					$found_orders[ $item->ID ] = esc_html( $order_number ) . ' &ndash; ' . esc_html( $item->post_title );
				}
			}

			wp_send_json( $found_orders );
		}

		/**
		 * Order Search
		 */
		public function json_search_terms() {
			ob_start();

			check_ajax_referer( 'search-terms', 'security' );

			$term = isset( $_REQUEST['term'] ) ? (string) sanitize_text_field( wp_unslash( $_REQUEST['term'] ) ) : false;

			if ( empty( $term ) ) {
				die();
			}

			$args = apply_filters(
				'yith_plugin_fw_json_search_terms_default_args',
				array(
					'taxonomy'     => 'category',
					'hide_empty'   => false,
					'order'        => 'ASC',
					'orderby'      => 'name',
					'include'      => '',
					'exclude'      => '',
					'exclude_tree' => '',
					'number'       => '',
					'hierarchical' => true,
					'child_of'     => 0,
					'parent'       => '',
					'term_field'   => 'id',
				)
			);

			foreach ( $args as $key => $default_value ) {
				if ( ! empty( $_REQUEST[ $key ] ) ) {
					$args[ $key ] = sanitize_text_field( wp_unslash( $_REQUEST[ $key ] ) );
				}
			}

			$args = apply_filters( 'yith_plugin_fw_json_search_terms_args', $args );

			$args['name__like'] = $term;
			$args['fields']     = 'id=>name';

			if ( ! taxonomy_exists( $args['taxonomy'] ) ) {
				die();
			}

			$terms = yith_get_terms( $args );

			if ( 'id' !== $args['term_field'] ) {
				$temp_terms = $terms;
				$terms      = array();
				foreach ( $temp_terms as $term_id => $term_name ) {
					$current_term_field           = get_term_field( $args['term_field'], $term_id, $args['taxonomy'] );
					$terms[ $current_term_field ] = $term_name;
				}
			}

			wp_send_json( $terms );
		}
	}
}

YIT_Ajax::instance();
plugin-fw/includes/class-yit-theme-licence.php000064400000003420151327614500015406 0ustar00<?php
/**
 * YITH Theme License Class.
 *
 * @class   YIT_Theme_Licence
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
	/**
	 * YIT_Theme_Licence class.
	 *
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	class YIT_Theme_Licence {
		/**
		 * The single instance of the class.
		 *
		 * @var YIT_Theme_Licence
		 */
		private static $instance;

		/**
		 * Singleton implementation.
		 *
		 * @return YIT_Theme_Licence
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * YIT_Theme_Licence constructor.
		 */
		private function __construct() {
			// Silence is golden.
		}

		/**
		 * Premium products registration.
		 *
		 * @param string $init       The product init identifier.
		 * @param string $secret_key The secret key.
		 * @param string $product_id The product ID.
		 *
		 * @return void
		 * @since    1.0
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 */
		public function register( $init, $secret_key, $product_id ) {
			if ( ! function_exists( 'YITH_Theme_Licence' ) ) {
				// Try to load YITH_Theme_Licence class.
				yith_plugin_fw_load_update_and_licence_files();
			}

			if ( function_exists( 'YITH_Theme_Licence' ) && is_callable( array( YITH_Theme_Licence(), 'register' ) ) ) {
				YITH_Theme_Licence()->register( $init, $secret_key, $product_id );
			}
		}
	}
}

if ( ! function_exists( 'YIT_Theme_Licence' ) ) {
	/**
	 * Single instance of YIT_Theme_Licence
	 *
	 * @return YIT_Theme_Licence
	 */
	function YIT_Theme_Licence() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		return YIT_Theme_Licence::instance();
	}
}
plugin-fw/includes/class-yit-plugin-common.php000064400000077654151327614500015514 0ustar00<?php
/**
 * YITH Plugin Common Class.
 *
 * @class   YIT_Plugin_Common
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Plugin_Common' ) ) {
	/**
	 * YIT_Plugin_Common class.
	 *
	 * @deprecated 3.5
	 */
	class YIT_Plugin_Common {

		/**
		 * Config array
		 *
		 * @var array
		 */
		public static $config = array(
			'slider'                => array( 'nivo', 'elegant' ),
			'awesome_icons'         => array(
				''     => 'no-icon',
				'f042' => 'adjust',
				'f170' => 'adn',
				'f037' => 'align-center',
				'f039' => 'align-justify',
				'f036' => 'align-left',
				'f038' => 'align-right',
				'f0f9' => 'ambulance',
				'f13d' => 'anchor',
				'f17b' => 'android',
				'f103' => 'angle-double-down',
				'f100' => 'angle-double-left',
				'f101' => 'angle-double-right',
				'f102' => 'angle-double-up',
				'f107' => 'angle-down',
				'f104' => 'angle-left',
				'f105' => 'angle-right',
				'f106' => 'angle-up',
				'f179' => 'apple',
				'f187' => 'archive',
				'f0ab' => 'arrow-circle-down',
				'f0a8' => 'arrow-circle-left',
				'f01a' => 'arrow-circle-o-down',
				'f190' => 'arrow-circle-o-left',
				'f18e' => 'arrow-circle-o-right',
				'f01b' => 'arrow-circle-o-up',
				'f0a9' => 'arrow-circle-right',
				'f0aa' => 'arrow-circle-up',
				'f063' => 'arrow-down',
				'f060' => 'arrow-left',
				'f061' => 'arrow-right',
				'f062' => 'arrow-up',
				'f047' => 'arrows',
				'f0b2' => 'arrows-alt',
				'f07e' => 'arrows-h',
				'f07d' => 'arrows-v',
				'f069' => 'asterisk',
				'f04a' => 'backward',
				'f05e' => 'ban',
				'f080' => 'bar-chart-o',
				'f02a' => 'barcode',
				'f0c9' => 'bars',
				'f0fc' => 'beer',
				'f0f3' => 'bell',
				'f0a2' => 'bell-o',
				'f171' => 'bitbucket',
				'f172' => 'bitbucket-square',
				'f032' => 'bold',
				'f0e7' => 'bolt',
				'f02d' => 'book',
				'f02e' => 'bookmark',
				'f097' => 'bookmark-o',
				'f0b1' => 'briefcase',
				'f15a' => 'btc',
				'f188' => 'bug',
				'f0f7' => 'building-o',
				'f0a1' => 'bullhorn',
				'f140' => 'bullseye',
				'f073' => 'calendar',
				'f133' => 'calendar-o',
				'f030' => 'camera',
				'f083' => 'camera-retro',
				'f0d7' => 'caret-down',
				'f0d9' => 'caret-left',
				'f0da' => 'caret-right',
				'f150' => 'caret-square-o-down',
				'f191' => 'caret-square-o-left',
				'f152' => 'caret-square-o-right',
				'f151' => 'caret-square-o-up',
				'f0d8' => 'caret-up',
				'f0a3' => 'certificate',
				'f127' => 'chain-broken',
				'f00c' => 'check',
				'f058' => 'check-circle',
				'f05d' => 'check-circle-o',
				'f14a' => 'check-square',
				'f046' => 'check-square-o',
				'f13a' => 'chevron-circle-down',
				'f137' => 'chevron-circle-left',
				'f138' => 'chevron-circle-right',
				'f139' => 'chevron-circle-up',
				'f078' => 'chevron-down',
				'f053' => 'chevron-left',
				'f054' => 'chevron-right',
				'f077' => 'chevron-up',
				'f10c' => 'circle-o',
				'f0ea' => 'clipboard',
				'f017' => 'clock-o',
				'f0c2' => 'cloud',
				'f0ed' => 'cloud-download',
				'f0ee' => 'cloud-upload',
				'f121' => 'code',
				'f126' => 'code-fork',
				'f0f4' => 'coffee',
				'f013' => 'cog',
				'f085' => 'cogs',
				'f0db' => 'columns',
				'f075' => 'comment',
				'f0e5' => 'comment-o',
				'f086' => 'comments',
				'f0e6' => 'comments-o',
				'f14e' => 'compass',
				'f066' => 'compress',
				'f09d' => 'credit-card',
				'f125' => 'crop',
				'f05b' => 'crosshairs',
				'f13c' => 'css3',
				'f0f5' => 'cutlery',
				'f108' => 'desktop',
				'f192' => 'dot-circle-o',
				'f019' => 'download',
				'f17d' => 'dribbble',
				'f16b' => 'dropbox',
				'f052' => 'eject',
				'f141' => 'ellipsis-h',
				'f142' => 'ellipsis-v',
				'f0e0' => 'envelope',
				'f003' => 'envelope-o',
				'f12d' => 'eraser',
				'f153' => 'eur',
				'f0ec' => 'exchange',
				'f12a' => 'exclamation',
				'f06a' => 'exclamation-circle',
				'f071' => 'exclamation-triangle',
				'f065' => 'expand',
				'f08e' => 'external-link',
				'f14c' => 'external-link-square',
				'f06e' => 'eye',
				'f070' => 'eye-slash',
				'f09a' => 'facebook',
				'f082' => 'facebook-square',
				'f049' => 'fast-backward',
				'f050' => 'fast-forward',
				'f182' => 'female',
				'f0fb' => 'fighter-jet',
				'f15b' => 'file',
				'f016' => 'file-o',
				'f15c' => 'file-text',
				'f0f6' => 'file-text-o',
				'f0c5' => 'files-o',
				'f008' => 'film',
				'f0b0' => 'filter',
				'f06d' => 'fire',
				'f134' => 'fire-extinguisher',
				'f024' => 'flag',
				'f11e' => 'flag-checkered',
				'f11d' => 'flag-o',
				'f0c3' => 'flask',
				'f16e' => 'flickr',
				'f0c7' => 'floppy-o',
				'f07b' => 'folder',
				'f114' => 'folder-o',
				'f07c' => 'folder-open',
				'f115' => 'folder-open-o',
				'f031' => 'font',
				'f04e' => 'forward',
				'f180' => 'foursquare',
				'f119' => 'frown-o',
				'f11b' => 'gamepad',
				'f0e3' => 'gavel',
				'f154' => 'gbp',
				'f06b' => 'gift',
				'f09b' => 'github',
				'f113' => 'github-alt',
				'f092' => 'github-square',
				'f184' => 'gittip',
				'f000' => 'glass',
				'f0ac' => 'globe',
				'f0d5' => 'google-plus',
				'f0d4' => 'google-plus-square',
				'f0fd' => 'h-square',
				'f0a7' => 'hand-o-down',
				'f0a5' => 'hand-o-left',
				'f0a4' => 'hand-o-right',
				'f0a6' => 'hand-o-up',
				'f0a0' => 'hdd-o',
				'f025' => 'headphones',
				'f004' => 'heart',
				'f08a' => 'heart-o',
				'f015' => 'home',
				'f0f8' => 'hospital-o',
				'f13b' => 'html5',
				'f01c' => 'inbox',
				'f03c' => 'indent',
				'f129' => 'info',
				'f05a' => 'info-circle',
				'f156' => 'inr',
				'f16d' => 'instagram',
				'f033' => 'italic',
				'f157' => 'jpy',
				'f084' => 'key',
				'f11c' => 'keyboard-o',
				'f159' => 'krw',
				'f109' => 'laptop',
				'f06c' => 'leaf',
				'f094' => 'lemon-o',
				'f149' => 'level-down',
				'f148' => 'level-up',
				'f0eb' => 'lightbulb-o',
				'f0c1' => 'link',
				'f0e1' => 'linkedin',
				'f08c' => 'linkedin-square',
				'f17c' => 'linux',
				'f03a' => 'list',
				'f022' => 'list-alt',
				'f0cb' => 'list-ol',
				'f0ca' => 'list-ul',
				'f124' => 'location-arrow',
				'f023' => 'lock',
				'f175' => 'long-arrow-down',
				'f177' => 'long-arrow-left',
				'f178' => 'long-arrow-right',
				'f176' => 'long-arrow-up',
				'f0d0' => 'magic',
				'f076' => 'magnet',
				'f183' => 'male',
				'f041' => 'map-marker',
				'f136' => 'maxcdn',
				'f0fa' => 'medkit',
				'f11a' => 'meh-o',
				'f130' => 'microphone',
				'f131' => 'microphone-slash',
				'f068' => 'minus',
				'f056' => 'minus-circle',
				'f146' => 'minus-square',
				'f147' => 'minus-square-o',
				'f10b' => 'mobile',
				'f0d6' => 'money',
				'f186' => 'moon-o',
				'f001' => 'music',
				'f03b' => 'outdent',
				'f18c' => 'pagelines',
				'f0c6' => 'paperclip',
				'f04c' => 'pause',
				'f040' => 'pencil',
				'f14b' => 'pencil-square',
				'f044' => 'pencil-square-o',
				'f095' => 'phone',
				'f098' => 'phone-square',
				'f03e' => 'picture-o',
				'f0d2' => 'pinterest',
				'f0d3' => 'pinterest-square',
				'f072' => 'plane',
				'f04b' => 'play',
				'f144' => 'play-circle',
				'f01d' => 'play-circle-o',
				'f067' => 'plus',
				'f055' => 'plus-circle',
				'f0fe' => 'plus-square',
				'f196' => 'plus-square-o',
				'f011' => 'power-off',
				'f02f' => 'print',
				'f12e' => 'puzzle-piece',
				'f029' => 'qrcode',
				'f128' => 'question',
				'f059' => 'question-circle',
				'f10d' => 'quote-left',
				'f10e' => 'quote-right',
				'f074' => 'random',
				'f021' => 'refresh',
				'f18b' => 'renren',
				'f01e' => 'repeat',
				'f112' => 'reply',
				'f122' => 'reply-all',
				'f079' => 'retweet',
				'f018' => 'road',
				'f135' => 'rocket',
				'f09e' => 'rss',
				'f143' => 'rss-square',
				'f158' => 'rub',
				'f0c4' => 'scissors',
				'f002' => 'search',
				'f010' => 'search-minus',
				'f00e' => 'search-plus',
				'f064' => 'share',
				'f14d' => 'share-square',
				'f045' => 'share-square-o',
				'f132' => 'shield',
				'f07a' => 'shopping-cart',
				'f090' => 'sign-in',
				'f08b' => 'sign-out',
				'f012' => 'signal',
				'f0e8' => 'sitemap',
				'f17e' => 'skype',
				'f118' => 'smile-o',
				'f0dc' => 'sort',
				'f15d' => 'sort-alpha-asc',
				'f15e' => 'sort-alpha-desc',
				'f160' => 'sort-amount-asc',
				'f161' => 'sort-amount-desc',
				'f0dd' => 'sort-asc',
				'f0de' => 'sort-desc',
				'f162' => 'sort-numeric-asc',
				'f163' => 'sort-numeric-desc',
				'f110' => 'spinner',
				'f0c8' => 'square',
				'f096' => 'square-o',
				'f18d' => 'stack-exchange',
				'f16c' => 'stack-overflow',
				'f005' => 'star',
				'f089' => 'star-half',
				'f123' => 'star-half-o',
				'f006' => 'star-o',
				'f048' => 'step-backward',
				'f051' => 'step-forward',
				'f0f1' => 'stethoscope',
				'f04d' => 'stop',
				'f0cc' => 'strikethrough',
				'f12c' => 'subscript',
				'f0f2' => 'suitcase',
				'f185' => 'sun-o',
				'f12b' => 'superscript',
				'f0ce' => 'table',
				'f10a' => 'tablet',
				'f0e4' => 'tachometer',
				'f02b' => 'tag',
				'f02c' => 'tags',
				'f0ae' => 'tasks',
				'f120' => 'terminal',
				'f034' => 'text-height',
				'f035' => 'text-width',
				'f00a' => 'th',
				'f009' => 'th-large',
				'f00b' => 'th-list',
				'f08d' => 'thumb-tack',
				'f165' => 'thumbs-down',
				'f088' => 'thumbs-o-down',
				'f087' => 'thumbs-o-up',
				'f164' => 'thumbs-up',
				'f145' => 'ticket',
				'f00d' => 'times',
				'f057' => 'times-circle',
				'f05c' => 'times-circle-o',
				'f043' => 'tint',
				'f014' => 'trash-o',
				'f181' => 'trello',
				'f091' => 'trophy',
				'f0d1' => 'truck',
				'f195' => 'try',
				'f173' => 'tumblr',
				'f174' => 'tumblr-square',
				'f099' => 'twitter',
				'f081' => 'twitter-square',
				'f0e9' => 'umbrella',
				'f0cd' => 'underline',
				'f0e2' => 'undo',
				'f09c' => 'unlock',
				'f13e' => 'unlock-alt',
				'f093' => 'upload',
				'f155' => 'usd',
				'f007' => 'user',
				'f0f0' => 'user-md',
				'f0c0' => 'users',
				'f03d' => 'video-camera',
				'f194' => 'vimeo-square',
				'f189' => 'vk',
				'f027' => 'volume-down',
				'f026' => 'volume-off',
				'f028' => 'volume-up',
				'f18a' => 'weibo',
				'f193' => 'wheelchair',
				'f17a' => 'windows',
				'f0ad' => 'wrench',
				'f168' => 'xing',
				'f169' => 'xing-square',
				'f167' => 'youtube',
				'f16a' => 'youtube-play',
				'f166' => 'youtube-square',
			),
			'awesome_icons2'        => array(
				'\f042' => 'adjust',
				'\f170' => 'adn',
				'\f037' => 'align-center',
				'\f039' => 'align-justify',
				'\f036' => 'align-left',
				'\f038' => 'align-right',
				'\f0f9' => 'ambulance',
				'\f13d' => 'anchor',
				'\f17b' => 'android',
				'\f209' => 'angellist',
				'\f103' => 'angle-double-down',
				'\f100' => 'angle-double-left',
				'\f101' => 'angle-double-right',
				'\f102' => 'angle-double-up',
				'\f107' => 'angle-down',
				'\f104' => 'angle-left',
				'\f105' => 'angle-right',
				'\f106' => 'angle-up',
				'\f179' => 'apple',
				'\f187' => 'archive',
				'\f1fe' => 'area-chart',
				'\f0ab' => 'arrow-circle-down',
				'\f0a8' => 'arrow-circle-left',
				'\f01a' => 'arrow-circle-o-down',
				'\f190' => 'arrow-circle-o-left',
				'\f18e' => 'arrow-circle-o-right',
				'\f01b' => 'arrow-circle-o-up',
				'\f0a9' => 'arrow-circle-right',
				'\f0aa' => 'arrow-circle-up',
				'\f063' => 'arrow-down',
				'\f060' => 'arrow-left',
				'\f061' => 'arrow-right',
				'\f062' => 'arrow-up',
				'\f047' => 'arrows',
				'\f0b2' => 'arrows-alt',
				'\f07e' => 'arrows-h',
				'\f07d' => 'arrows-v',
				'\f069' => 'asterisk',
				'\f1fa' => 'at',
				'\f04a' => 'backward',
				'\f05e' => 'ban',
				'\f02a' => 'barcode',
				'\f0fc' => 'beer',
				'\f1b4' => 'behance',
				'\f1b5' => 'behance-square',
				'\f0f3' => 'bell',
				'\f0a2' => 'bell-o',
				'\f1f6' => 'bell-slash',
				'\f1f7' => 'bell-slash-o',
				'\f206' => 'bicycle',
				'\f1e5' => 'binoculars',
				'\f1fd' => 'birthday-cake',
				'\f171' => 'bitbucket',
				'\f172' => 'bitbucket-square',
				'\f032' => 'bold',
				'\f1e2' => 'bomb',
				'\f02d' => 'book',
				'\f02e' => 'bookmark',
				'\f097' => 'bookmark-o',
				'\f0b1' => 'briefcase',
				'\f188' => 'bug',
				'\f1ad' => 'building',
				'\f0f7' => 'building-o',
				'\f0a1' => 'bullhorn',
				'\f140' => 'bullseye',
				'\f207' => 'bus',
				'\f20d' => 'buysellads',
				'\f1ec' => 'calculator',
				'\f073' => 'calendar',
				'\f133' => 'calendar-o',
				'\f030' => 'camera',
				'\f083' => 'camera-retro',
				'\f1b9' => 'car',
				'\f0d7' => 'caret-down',
				'\f0d9' => 'caret-left',
				'\f0da' => 'caret-right',
				'\f0d8' => 'caret-up',
				'\f218' => 'cart-arrow-down',
				'\f217' => 'cart-plus',
				'\f20a' => 'cc',
				'\f1f3' => 'cc-amex',
				'\f1f2' => 'cc-discover',
				'\f1f1' => 'cc-mastercard',
				'\f1f4' => 'cc-paypal',
				'\f1f5' => 'cc-stripe',
				'\f1f0' => 'cc-visa',
				'\f0a3' => 'certificate',
				'\f00c' => 'check',
				'\f058' => 'check-circle',
				'\f05d' => 'check-circle-o',
				'\f14a' => 'check-square',
				'\f046' => 'check-square-o',
				'\f13a' => 'chevron-circle-down',
				'\f137' => 'chevron-circle-left',
				'\f138' => 'chevron-circle-right',
				'\f139' => 'chevron-circle-up',
				'\f078' => 'chevron-down',
				'\f053' => 'chevron-left',
				'\f054' => 'chevron-right',
				'\f077' => 'chevron-up',
				'\f1ae' => 'child',
				'\f111' => 'circle',
				'\f10c' => 'circle-o',
				'\f1ce' => 'circle-o-notch',
				'\f017' => 'clock-o',
				'\f0c2' => 'cloud',
				'\f0ed' => 'cloud-download',
				'\f0ee' => 'cloud-upload',
				'\f121' => 'code',
				'\f126' => 'code-fork',
				'\f1cb' => 'codepen',
				'\f0f4' => 'coffee',
				'\f0db' => 'columns',
				'\f075' => 'comment',
				'\f0e5' => 'comment-o',
				'\f086' => 'comments',
				'\f0e6' => 'comments-o',
				'\f14e' => 'compass',
				'\f066' => 'compress',
				'\f20e' => 'connectdevelop',
				'\f1f9' => 'copyright',
				'\f09d' => 'credit-card',
				'\f125' => 'crop',
				'\f05b' => 'crosshairs',
				'\f13c' => 'css3',
				'\f1b2' => 'cube',
				'\f1b3' => 'cubes',
				'\f0f5' => 'cutlery',
				'\f210' => 'dashcube',
				'\f1c0' => 'database',
				'\f1a5' => 'delicious',
				'\f108' => 'desktop',
				'\f1bd' => 'deviantart',
				'\f219' => 'diamond',
				'\f1a6' => 'digg',
				'\f192' => 'dot-circle-o',
				'\f019' => 'download',
				'\f17d' => 'dribbble',
				'\f16b' => 'dropbox',
				'\f1a9' => 'drupal',
				'\f052' => 'eject',
				'\f141' => 'ellipsis-h',
				'\f142' => 'ellipsis-v',
				'\f0e0' => 'envelope',
				'\f003' => 'envelope-o',
				'\f199' => 'envelope-square',
				'\f12d' => 'eraser',
				'\f153' => 'euro',
				'\f0ec' => 'exchange',
				'\f12a' => 'exclamation',
				'\f06a' => 'exclamation-circle',
				'\f065' => 'expand',
				'\f08e' => 'external-link',
				'\f14c' => 'external-link-square',
				'\f06e' => 'eye',
				'\f070' => 'eye-slash',
				'\f1fb' => 'eyedropper',
				'\f09a' => 'facebook-f',
				'\f230' => 'facebook-official',
				'\f082' => 'facebook-square',
				'\f049' => 'fast-backward',
				'\f050' => 'fast-forward',
				'\f1ac' => 'fax',
				'\f182' => 'female',
				'\f0fb' => 'fighter-jet',
				'\f15b' => 'file',
				'\f1c9' => 'file-code-o',
				'\f1c3' => 'file-excel-o',
				'\f016' => 'file-o',
				'\f1c1' => 'file-pdf-o',
				'\f1c5' => 'file-picture-o',
				'\f1c4' => 'file-powerpoint-o',
				'\f1c7' => 'file-sound-o',
				'\f15c' => 'file-text',
				'\f0f6' => 'file-text-o',
				'\f1c8' => 'file-video-o',
				'\f1c2' => 'file-word-o',
				'\f1c6' => 'file-zip-o',
				'\f0c5' => 'files-o',
				'\f008' => 'film',
				'\f0b0' => 'filter',
				'\f06d' => 'fire',
				'\f134' => 'fire-extinguisher',
				'\f024' => 'flag',
				'\f11e' => 'flag-checkered',
				'\f11d' => 'flag-o',
				'\f0e7' => 'flash',
				'\f0c3' => 'flask',
				'\f16e' => 'flickr',
				'\f07b' => 'folder',
				'\f114' => 'folder-o',
				'\f07c' => 'folder-open',
				'\f115' => 'folder-open-o',
				'\f031' => 'font',
				'\f211' => 'forumbee',
				'\f04e' => 'forward',
				'\f180' => 'foursquare',
				'\f119' => 'frown-o',
				'\f11b' => 'gamepad',
				'\f154' => 'gbp',
				'\f1d1' => 'ge',
				'\f013' => 'gear',
				'\f085' => 'gears',
				'\f1db' => 'genderless',
				'\f06b' => 'gift',
				'\f1d3' => 'git',
				'\f1d2' => 'git-square',
				'\f09b' => 'github',
				'\f113' => 'github-alt',
				'\f092' => 'github-square',
				'\f000' => 'glass',
				'\f0ac' => 'globe',
				'\f1a0' => 'google',
				'\f0d5' => 'google-plus',
				'\f0d4' => 'google-plus-square',
				'\f1ee' => 'google-wallet',
				'\f184' => 'gratipay',
				'\f0fd' => 'h-square',
				'\f1d4' => 'hacker-news',
				'\f0a7' => 'hand-o-down',
				'\f0a5' => 'hand-o-left',
				'\f0a4' => 'hand-o-right',
				'\f0a6' => 'hand-o-up',
				'\f0a0' => 'hdd-o',
				'\f1dc' => 'header',
				'\f025' => 'headphones',
				'\f004' => 'heart',
				'\f08a' => 'heart-o',
				'\f21e' => 'heartbeat',
				'\f1da' => 'history',
				'\f015' => 'home',
				'\f0f8' => 'hospital-o',
				'\f236' => 'hotel',
				'\f13b' => 'html5',
				'\f01c' => 'inbox',
				'\f03c' => 'indent',
				'\f129' => 'info',
				'\f05a' => 'info-circle',
				'\f16d' => 'instagram',
				'\f208' => 'ioxhost',
				'\f033' => 'italic',
				'\f1aa' => 'joomla',
				'\f1cc' => 'jsfiddle',
				'\f084' => 'key',
				'\f11c' => 'keyboard-o',
				'\f1ab' => 'language',
				'\f109' => 'laptop',
				'\f202' => 'lastfm',
				'\f203' => 'lastfm-square',
				'\f06c' => 'leaf',
				'\f212' => 'leanpub',
				'\f0e3' => 'legal',
				'\f094' => 'lemon-o',
				'\f149' => 'level-down',
				'\f148' => 'level-up',
				'\f0eb' => 'lightbulb-o',
				'\f201' => 'line-chart',
				'\f0c1' => 'link',
				'\f0e1' => 'linkedin',
				'\f08c' => 'linkedin-square',
				'\f17c' => 'linux',
				'\f03a' => 'list',
				'\f022' => 'list-alt',
				'\f0cb' => 'list-ol',
				'\f0ca' => 'list-ul',
				'\f124' => 'location-arrow',
				'\f023' => 'lock',
				'\f175' => 'long-arrow-down',
				'\f177' => 'long-arrow-left',
				'\f178' => 'long-arrow-right',
				'\f176' => 'long-arrow-up',
				'\f0d0' => 'magic',
				'\f076' => 'magnet',
				'\f183' => 'male',
				'\f041' => 'map-marker',
				'\f222' => 'mars',
				'\f227' => 'mars-double',
				'\f229' => 'mars-stroke',
				'\f22b' => 'mars-stroke-h',
				'\f22a' => 'mars-stroke-v',
				'\f136' => 'maxcdn',
				'\f20c' => 'meanpath',
				'\f23a' => 'medium',
				'\f0fa' => 'medkit',
				'\f11a' => 'meh-o',
				'\f223' => 'mercury',
				'\f130' => 'microphone',
				'\f131' => 'microphone-slash',
				'\f068' => 'minus',
				'\f056' => 'minus-circle',
				'\f146' => 'minus-square',
				'\f147' => 'minus-square-o',
				'\f10b' => 'mobile-phone',
				'\f0d6' => 'money',
				'\f186' => 'moon-o',
				'\f19d' => 'mortar-board',
				'\f21c' => 'motorcycle',
				'\f001' => 'music',
				'\f22c' => 'neuter',
				'\f1ea' => 'newspaper-o',
				'\f19b' => 'openid',
				'\f03b' => 'outdent',
				'\f18c' => 'pagelines',
				'\f1fc' => 'paint-brush',
				'\f0c6' => 'paperclip',
				'\f1dd' => 'paragraph',
				'\f0ea' => 'paste',
				'\f04c' => 'pause',
				'\f1b0' => 'paw',
				'\f1ed' => 'paypal',
				'\f040' => 'pencil',
				'\f14b' => 'pencil-square',
				'\f044' => 'pencil-square-o',
				'\f095' => 'phone',
				'\f098' => 'phone-square',
				'\f03e' => 'picture-o',
				'\f200' => 'pie-chart',
				'\f1a7' => 'pied-piper',
				'\f1a8' => 'pied-piper-alt',
				'\f0d2' => 'pinterest',
				'\f231' => 'pinterest-p',
				'\f0d3' => 'pinterest-square',
				'\f072' => 'plane',
				'\f04b' => 'play',
				'\f144' => 'play-circle',
				'\f01d' => 'play-circle-o',
				'\f1e6' => 'plug',
				'\f067' => 'plus',
				'\f055' => 'plus-circle',
				'\f0fe' => 'plus-square',
				'\f196' => 'plus-square-o',
				'\f011' => 'power-off',
				'\f02f' => 'print',
				'\f12e' => 'puzzle-piece',
				'\f1d6' => 'qq',
				'\f029' => 'qrcode',
				'\f128' => 'question',
				'\f059' => 'question-circle',
				'\f10d' => 'quote-left',
				'\f10e' => 'quote-right',
				'\f074' => 'random',
				'\f1d0' => 'rebel',
				'\f1b8' => 'recycle',
				'\f1a1' => 'reddit',
				'\f1a2' => 'reddit-square',
				'\f021' => 'refresh',
				'\f18b' => 'renren',
				'\f0c9' => 'reorder',
				'\f112' => 'reply',
				'\f122' => 'reply-all',
				'\f079' => 'retweet',
				'\f018' => 'road',
				'\f135' => 'rocket',
				'\f01e' => 'rotate-right',
				'\f09e' => 'rss',
				'\f143' => 'rss-square',
				'\f158' => 'ruble',
				'\f156' => 'rupee',
				'\f0c7' => 'save',
				'\f0c4' => 'scissors',
				'\f002' => 'search',
				'\f010' => 'search-minus',
				'\f00e' => 'search-plus',
				'\f213' => 'sellsy',
				'\f1d8' => 'send',
				'\f1d9' => 'send-o',
				'\f233' => 'server',
				'\f064' => 'share',
				'\f1e0' => 'share-alt',
				'\f1e1' => 'share-alt-square',
				'\f14d' => 'share-square',
				'\f045' => 'share-square-o',
				'\f20b' => 'sheqel',
				'\f132' => 'shield',
				'\f21a' => 'ship',
				'\f214' => 'shirtsinbulk',
				'\f07a' => 'shopping-cart',
				'\f090' => 'sign-in',
				'\f08b' => 'sign-out',
				'\f012' => 'signal',
				'\f215' => 'simplybuilt',
				'\f0e8' => 'sitemap',
				'\f216' => 'skyatlas',
				'\f17e' => 'skype',
				'\f198' => 'slack',
				'\f1de' => 'sliders',
				'\f1e7' => 'slideshare',
				'\f118' => 'smile-o',
				'\f1e3' => 'soccer-ball-o',
				'\f15d' => 'sort-alpha-asc',
				'\f15e' => 'sort-alpha-desc',
				'\f160' => 'sort-amount-asc',
				'\f161' => 'sort-amount-desc',
				'\f0dd' => 'sort-down',
				'\f162' => 'sort-numeric-asc',
				'\f163' => 'sort-numeric-desc',
				'\f0de' => 'sort-up',
				'\f1be' => 'soundcloud',
				'\f197' => 'space-shuttle',
				'\f110' => 'spinner',
				'\f1b1' => 'spoon',
				'\f1bc' => 'spotify',
				'\f0c8' => 'square',
				'\f096' => 'square-o',
				'\f18d' => 'stack-exchange',
				'\f16c' => 'stack-overflow',
				'\f005' => 'star',
				'\f089' => 'star-half',
				'\f123' => 'star-half-o',
				'\f006' => 'star-o',
				'\f1b6' => 'steam',
				'\f1b7' => 'steam-square',
				'\f048' => 'step-backward',
				'\f051' => 'step-forward',
				'\f0f1' => 'stethoscope',
				'\f04d' => 'stop',
				'\f21d' => 'street-view',
				'\f0cc' => 'strikethrough',
				'\f1a4' => 'stumbleupon',
				'\f1a3' => 'stumbleupon-circle',
				'\f12c' => 'subscript',
				'\f239' => 'subway',
				'\f0f2' => 'suitcase',
				'\f185' => 'sun-o',
				'\f12b' => 'superscript',
				'\f1cd' => 'support',
				'\f0ce' => 'table',
				'\f10a' => 'tablet',
				'\f0e4' => 'tachometer',
				'\f02b' => 'tag',
				'\f02c' => 'tags',
				'\f0ae' => 'tasks',
				'\f1ba' => 'taxi',
				'\f1d5' => 'tencent-weibo',
				'\f120' => 'terminal',
				'\f034' => 'text-height',
				'\f035' => 'text-width',
				'\f00a' => 'th',
				'\f009' => 'th-large',
				'\f00b' => 'th-list',
				'\f08d' => 'thumb-tack',
				'\f165' => 'thumbs-down',
				'\f088' => 'thumbs-o-down',
				'\f087' => 'thumbs-o-up',
				'\f164' => 'thumbs-up',
				'\f145' => 'ticket',
				'\f00d' => 'times',
				'\f057' => 'times-circle',
				'\f05c' => 'times-circle-o',
				'\f043' => 'tint',
				'\f150' => 'toggle-down',
				'\f191' => 'toggle-left',
				'\f204' => 'toggle-off',
				'\f205' => 'toggle-on',
				'\f152' => 'toggle-right',
				'\f151' => 'toggle-up',
				'\f238' => 'train',
				'\f224' => 'transgender',
				'\f225' => 'transgender-alt',
				'\f1f8' => 'trash',
				'\f014' => 'trash-o',
				'\f1bb' => 'tree',
				'\f181' => 'trello',
				'\f091' => 'trophy',
				'\f0d1' => 'truck',
				'\f1e4' => 'tty',
				'\f173' => 'tumblr',
				'\f174' => 'tumblr-square',
				'\f195' => 'turkish-lira',
				'\f1e8' => 'twitch',
				'\f099' => 'twitter',
				'\f081' => 'twitter-square',
				'\f0e9' => 'umbrella',
				'\f0cd' => 'underline',
				'\f0e2' => 'undo',
				'\f19c' => 'university',
				'\f127' => 'unlink',
				'\f09c' => 'unlock',
				'\f13e' => 'unlock-alt',
				'\f0dc' => 'unsorted',
				'\f093' => 'upload',
				'\f155' => 'usd',
				'\f007' => 'user',
				'\f0f0' => 'user-md',
				'\f234' => 'user-plus',
				'\f21b' => 'user-secret',
				'\f235' => 'user-times',
				'\f0c0' => 'users',
				'\f221' => 'venus',
				'\f226' => 'venus-double',
				'\f228' => 'venus-mars',
				'\f237' => 'viacoin',
				'\f03d' => 'video-camera',
				'\f194' => 'vimeo-square',
				'\f1ca' => 'vine',
				'\f189' => 'vk',
				'\f027' => 'volume-down',
				'\f026' => 'volume-off',
				'\f028' => 'volume-up',
				'\f071' => 'warning',
				'\f18a' => 'weibo',
				'\f1d7' => 'weixin',
				'\f232' => 'whatsapp',
				'\f193' => 'wheelchair',
				'\f1eb' => 'wifi',
				'\f17a' => 'windows',
				'\f159' => 'won',
				'\f19a' => 'wordpress',
				'\f0ad' => 'wrench',
				'\f168' => 'xing',
				'\f169' => 'xing-square',
				'\f19e' => 'yahoo',
				'\f1e9' => 'yelp',
				'\f157' => 'yen',
				'\f167' => 'youtube',
				'\f16a' => 'youtube-play',
				'\f166' => 'youtube-square',
			),
			'awesome_icons_socials' => array(
				'f170' => 'adn',
				'f17b' => 'android',
				'f179' => 'apple',
				'f171' => 'bitbucket-square',
				'f02e' => 'bookmark',
				'f097' => 'bookmark-o',
				'f15a' => 'btc',
				'f13c' => 'css3',
				'f17d' => 'dribble',
				'f16b' => 'dropbox',
				'f09a' => 'facebook',
				'f082' => 'facebook-square',
				'f16e' => 'flickr',
				'f180' => 'foursquare',
				'f09b' => 'github',
				'f113' => 'github-alt',
				'f092' => 'github-square',
				'f184' => 'gittip',
				'f0d5' => 'google-plus',
				'f0d4' => 'google-plus-square',
				'f13b' => 'html5',
				'f16d' => 'instagram',
				'f0e1' => 'linkedin',
				'f08c' => 'linkedin-square',
				'f17c' => 'Linux',
				'f136' => 'maxcdn',
				'f18c' => 'pagelines',
				'f0d2' => 'pinterest',
				'f0d3' => 'pinterest-square',
				'f18b' => 'renren',
				'f09e' => 'rss',
				'f17e' => 'skype',
				'f18d' => 'stack-exchange',
				'f16c' => 'stack-overflow',
				'f181' => 'trello',
				'f173' => 'tumblr',
				'f174' => 'Tumblr Square',
				'f099' => 'twitter',
				'f081' => 'twitter-square',
				'f194' => 'vimeo-square',
				'f189' => 'vk',
				'f18a' => 'weibo',
				'f17a' => 'windows',
				'f168' => 'xing',
				'f169' => 'xing-square',
				'f167' => 'youtube',
			),
			'header_backgrounds'    => array(),
			'body_backgrounds'      => array(),
			// Tags used in theme options (e.g. %tag%) to have some common information.
			'tag'                   => array(), // Example: 'themeurl' => get_template_directory_uri().
			'cycle_fx'              => array(
				'blindX'      => 'blindX',
				'blindY'      => 'blindY',
				'blindZ'      => 'blindZ',
				'cover'       => 'cover',
				'curtainX'    => 'curtainX',
				'curtainY'    => 'curtainY',
				'fade'        => 'fade',
				'fadeZoom'    => 'fadeZoom',
				'growX'       => 'growX',
				'growY'       => 'growY',
				'scrollUp'    => 'scrollUp',
				'scrollDown'  => 'scrollDown',
				'scrollLeft'  => 'scrollLeft',
				'scrollRight' => 'scrollRight',
				'scrollHorz'  => 'scrollHorz',
				'shuffle'     => 'shuffle',
				'slideX'      => 'slideX',
				'slideY'      => 'slideY',
				'toss'        => 'toss',
				'turnUp'      => 'turnUp',
				'turnLeft'    => 'turnLeft',
				'turnRight'   => 'turnRight',
				'uncover'     => 'uncover',
				'wipe'        => 'wipe',
				'zoom'        => 'zoom',
				'none'        => 'none',
				'turnDown'    => 'turnDown',
				'scrollVert'  => 'scrollVert',
			),
			'animate'               => array(
				''                  => 'none',
				'bounce'            => 'bounce',
				'flash'             => 'flash',
				'pulse'             => 'pulse',
				'shake'             => 'shake',
				'swing'             => 'swing',
				'tada'              => 'tada',
				'wobble'            => 'wobble',
				'bounceIn'          => 'bounceIn',
				'bounceInDown'      => 'bounceInDown',
				'bounceInLeft'      => 'bounceInLeft',
				'bounceInRight'     => 'bounceInRight',
				'bounceInUp'        => 'bounceInUp',
				'fadeIn'            => 'fadeIn',
				'fadeInDown'        => 'fadeInDown',
				'fadeInDownBig'     => 'fadeInDownBig',
				'fadeInLeft'        => 'fadeInLeft',
				'fadeInLeftBig'     => 'fadeInLeftBig',
				'fadeInRight'       => 'fadeInRight',
				'fadeInRightBig'    => 'fadeInRightBig',
				'fadeInUp'          => 'fadeInUp',
				'fadeInUpBig'       => 'fadeInUpBig',
				'flip'              => 'flip',
				'flipInX'           => 'flipInX',
				'flipInY'           => 'flipInY',
				'lightSpeedIn'      => 'lightSpeedIn',
				'rotateIn'          => 'rotateIn',
				'rotateInDownLeft'  => 'rotateInDownLeft',
				'rotateInDownRight' => 'rotateInDownRight',
				'rotateInUpLeft'    => 'rotateInUpLeft',
				'rotateInUpRight'   => 'rotateInUpRight',
				'rollIn'            => 'rollIn',
			),
			'easings'               => array(
				false              => 'none',
				'easeInQuad'       => 'easeInQuad',
				'easeOutQuad'      => 'easeOutQuad',
				'easeInOutQuad'    => 'easeInOutQuad',
				'easeInCubic'      => 'easeInCubic',
				'easeOutCubic'     => 'easeOutCubic',
				'easeInOutCubic'   => 'easeInOutCubic',
				'easeInQuart'      => 'easeInQuart',
				'easeOutQuart'     => 'easeOutQuart',
				'easeInOutQuart'   => 'easeInOutQuart',
				'easeInQuint'      => 'easeInQuint',
				'easeOutQuint'     => 'easeOutQuint',
				'easeInOutQuint'   => 'easeInOutQuint',
				'easeInSine'       => 'easeInSine',
				'easeOutSine'      => 'easeOutSine',
				'easeInOutSine'    => 'easeInOutSine',
				'easeInExpo'       => 'easeInExpo',
				'easeOutExpo'      => 'easeOutExpo',
				'easeInOutExpo'    => 'easeInOutExpo',
				'easeInCirc'       => 'easeInCirc',
				'easeOutCirc'      => 'easeOutCirc',
				'easeInOutCirc'    => 'easeInOutCirc',
				'easeInElastic'    => 'easeInElastic',
				'easeOutElastic'   => 'easeOutElastic',
				'easeInOutElastic' => 'easeInOutElastic',
				'easeInBack'       => 'easeInBack',
				'easeOutBack'      => 'easeOutBack',
				'easeInOutBack'    => 'easeInOutBack',
				'easeInBounce'     => 'easeInBounce',
				'easeOutBounce'    => 'easeOutBounce',
				'easeInOutBounce'  => 'easeInOutBounce',
			),
		);

		/**
		 * Get configuration array
		 *
		 * @return array
		 */
		public static function load() {
			self::load_theme_info();

			return self::$config;
		}

		/**
		 * Return theme data
		 * First the method checks if the wp_get_theme() function exists (WP 3.4.0 at least).
		 * If not, the method calls the deprecated function get_template_directory()
		 */
		protected static function load_theme_info() {
			$theme = wp_get_theme();

			self::$config['theme'] = array(
				'name'        => $theme['Name'],
				'description' => $theme['Description'],
				'author'      => $theme['Author'],
				'authoruri'   => $theme['Author URI'],
				'version'     => $theme['Version'],
				'template'    => $theme['Template'],
				'status'      => $theme['Status'],
				'tags'        => $theme['Tags'],
			);
		}

		/**
		 * Init.
		 */
		public function init() {
			self::$config['header_backgrounds'] = apply_filters( 'yit_header_backgrounds', self::$config['header_backgrounds'] );
			self::$config['body_backgrounds']   = apply_filters( 'yit_body_backgrounds', self::$config['body_backgrounds'] );
		}

		/**
		 * Return the font awesome array icon
		 *
		 * @return array
		 */
		public static function get_awesome_icons() {
			return self::$config['awesome_icons'];
		}

		/**
		 * Return the font awesome array socials icon
		 *
		 * @return array
		 */
		public static function get_awesome_icons_socials() {
			return self::$config['awesome_icons_socials'];
		}


		/**
		 * Return the list of icons
		 *
		 * @return array
		 */
		public static function get_icon_list() {

			$standard_icon_list = array(
				'FontAwesome' => self::$config['awesome_icons2'],
			);

			return apply_filters( 'yit_icon_list', $standard_icon_list );
		}

		/**
		 * Return the data of icon
		 *
		 * @param string $icon The icon.
		 *
		 * @return string
		 */
		public static function get_icon( $icon ) {

			$icon_list = self::get_icon_list();
			$icon_data = '';
			if ( ! ! $icon ) {
				$ic        = explode( ':', $icon );
				$icon_code = array_search( $ic[1], $icon_list[ $ic[0] ], true );

				if ( $icon_code ) {
					$icon_code = ( strpos( $icon_code, '\\' ) === 0 ) ? '&#x' . substr( $icon_code, 1 ) . ';' : $icon_code;
				}

				$icon_data = 'data-font="' . $ic[0] . '" data-key="' . $ic[1] . '" data-icon="' . $icon_code . '"';
			}

			return $icon_data;
		}

		/**
		 * Return the code of the relative awesome class name
		 *
		 * @param string $icon_key The icon key.
		 *
		 * @return string
		 */
		public static function get_awesome_icons_code_by_value( $icon_key ) {
			$awesome_icons = self::$config['awesome_icons'];
			foreach ( $awesome_icons as $code => $key ) {
				if ( $icon_key === $key ) {
					return $code;
				}
			}

			return '';
		}
	}
}
plugin-fw/includes/class-yit-assets.php000064400000020734151327614500014215 0ustar00<?php
/**
 * YITH Assets Class. Assets Handler.
 *
 * @class      YIT_Assets
 * @package    YITH\PluginFramework\Classes
 * @since      3.0.0
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Assets' ) ) {
	/**
	 * YIT_Assets class.
	 *
	 * @author     Leanza Francesco <leanzafrancesco@gmail.com>
	 */
	class YIT_Assets {
		/**
		 * The framework version
		 *
		 * @var string
		 */
		public $version = '1.0.0';

		/**
		 * The single instance of the class.
		 *
		 * @var YIT_Assets
		 */
		private static $instance;

		/**
		 * Singleton implementation.
		 *
		 * @return YIT_Assets
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * YIT_Assets constructor.
		 */
		private function __construct() {
			$this->version = yith_plugin_fw_get_version();
			add_action( 'admin_enqueue_scripts', array( $this, 'register_common_scripts' ) );
			add_action( 'wp_enqueue_scripts', array( $this, 'register_common_scripts' ) );
			add_action( 'elementor/editor/before_enqueue_styles', array( $this, 'register_common_scripts' ) );

			add_action( 'admin_enqueue_scripts', array( $this, 'register_styles_and_scripts' ) );
		}

		/**
		 * Register common scripts
		 */
		public function register_common_scripts() {
			wp_register_style( 'yith-plugin-fw-icon-font', YIT_CORE_PLUGIN_URL . '/assets/css/yith-icon.css', array(), $this->version );
			wp_register_style( 'yith-plugin-fw-elementor', YIT_CORE_PLUGIN_URL . '/assets/css/elementor.css', array(), $this->version );
		}

		/**
		 * Register styles and scripts
		 */
		public function register_styles_and_scripts() {
			global $wp_scripts, $woocommerce, $wp_version, $pagenow;

			$screen    = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
			$screen_id = $screen && is_a( $screen, 'WP_Screen' ) ? $screen->id : '';
			$suffix    = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

			// Register scripts.
			wp_register_script( 'yith-ui', YIT_CORE_PLUGIN_URL . '/assets/js/yith-ui' . $suffix . '.js', array( 'jquery' ), $this->version, true );
			wp_register_script( 'yith-colorpicker', YIT_CORE_PLUGIN_URL . '/assets/js/yith-colorpicker.min.js', array( 'jquery', 'wp-color-picker' ), '3.0.0', true );
			wp_register_script( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/js/yith-fields' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker', 'yith-colorpicker', 'jquery-ui-slider', 'jquery-ui-sortable', 'jquery-tiptip', 'yith-ui' ), $this->version, true );
			wp_register_script( 'yith-date-format', YIT_CORE_PLUGIN_URL . '/assets/js/yith-date-format' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker' ), $this->version, true );

			wp_register_script( 'yit-metabox', YIT_CORE_PLUGIN_URL . '/assets/js/metabox' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'yith-plugin-fw-fields', 'yith-ui' ), $this->version, true );
			wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-sortable', 'yith-plugin-fw-fields', 'yith-ui' ), $this->version, true );
			wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox' . $suffix . '.js', array( 'jquery' ), '1.6.3', true );
			wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
			wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );

			// Register styles.
			wp_register_style( 'yith-plugin-ui', YIT_CORE_PLUGIN_URL . '/assets/css/yith-plugin-ui.css', array( 'yith-plugin-fw-icon-font' ), $this->version );
			wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', array( 'yith-plugin-ui' ), $this->version );
			wp_register_style( 'jquery-ui-style', YIT_CORE_PLUGIN_URL . '/assets/css/jquery-ui/jquery-ui.min.css', array(), '1.11.4' );
			wp_register_style( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/css/colorbox.css', array(), $this->version );
			wp_register_style( 'yit-upgrade-to-pro', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrade-to-pro.css', array( 'colorbox' ), $this->version );
			wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array( 'yith-plugin-ui' ), $this->version );
			wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', array( 'yith-plugin-ui' ), $this->version );

			wp_register_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:100,200,300,400,500,600,700,800,900', array(), $this->version );

			$wc_version_suffix = '';
			if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
				$woocommerce_version = function_exists( 'WC' ) ? WC()->version : $woocommerce->version;
				$wc_version_suffix   = version_compare( $woocommerce_version, '3.0.0', '>=' ) ? '' : '-wc-2.6';

				wp_register_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce_version );
			} else {
				wp_register_script( 'jquery-tiptip', YIT_CORE_PLUGIN_URL . '/assets/js/jquery-tiptip/jquery.tipTip' . $suffix . '.js', array( 'jquery' ), '1.3', true );
				wp_register_script( 'select2', YIT_CORE_PLUGIN_URL . '/assets/js/select2/select2.min.js', array( 'jquery' ), '4.0.3', true );
				wp_register_style( 'yith-select2-no-wc', YIT_CORE_PLUGIN_URL . '/assets/css/yith-select2-no-wc.css', false, $this->version );
			}

			wp_register_script( 'yith-enhanced-select', YIT_CORE_PLUGIN_URL . '/assets/js/yith-enhanced-select' . $wc_version_suffix . $suffix . '.js', array( 'jquery', 'select2' ), $this->version, true );
			wp_localize_script(
				'yith-enhanced-select',
				'yith_framework_enhanced_select_params',
				array(
					'ajax_url'               => admin_url( 'admin-ajax.php' ),
					'search_posts_nonce'     => wp_create_nonce( 'search-posts' ),
					'search_terms_nonce'     => wp_create_nonce( 'search-terms' ),
					'search_customers_nonce' => wp_create_nonce( 'search-customers' ),
					'search_pages_nonce'     => wp_create_nonce( 'search-pages' ),
				)
			);

			wp_localize_script(
				'yith-plugin-fw-fields',
				'yith_framework_fw_fields',
				array(
					'admin_url' => admin_url( 'admin.php' ),
					'ajax_url'  => admin_url( 'admin-ajax.php' ),
				)
			);

			wp_localize_script(
				'yith-ui',
				'yith_plugin_fw_ui',
				array(
					'i18n' => array(
						'confirm' => _x( 'Confirm', 'Button text', 'yith-plugin-fw' ),
						'cancel'  => _x( 'Cancel', 'Button text', 'yith-plugin-fw' ),
					),
				)
			);

			wp_localize_script(
				'yith-plugin-fw-wp-pages',
				'yith_plugin_fw_wp_pages',
				array(
					'bulk_delete_confirmation_enabled' => ! ! apply_filters( "yith_plugin_fw_{$screen_id}_bulk_delete_confirmation_enabled", in_array( $pagenow, array( 'edit.php', 'edit-tags.php' ), true ) ),
					'i18n'                             => array(
						'bulk_trash_confirm_title'    => __( 'Confirm trash', 'yith-plugin-fw' ),
						'bulk_trash_confirm_message'  => __( 'Are you sure you want to trash the selected items?', 'yith-plugin-fw' ),
						'bulk_trash_confirm_button'   => _x( 'Yes, move to trash', 'Trash confirmation action', 'yith-plugin-fw' ),
						'bulk_trash_cancel_button'    => __( 'No', 'yith-plugin-fw' ),
						'bulk_delete_confirm_title'   => __( 'Confirm delete', 'yith-plugin-fw' ),
						'bulk_delete_confirm_message' => __( 'Are you sure you want to delete the selected items?', 'yith-plugin-fw' ) . '<br /><br />' . __( 'This action cannot be undone and you will not be able to recover this data.', 'yith-plugin-fw' ),
						'bulk_delete_confirm_button'  => _x( 'Yes, delete', 'Delete confirmation action', 'yith-plugin-fw' ),
						'bulk_delete_cancel_button'   => __( 'No', 'yith-plugin-fw' ),
					),
				)
			);

			// Localize color-picker to avoid issues with WordPress 5.5.
			if ( version_compare( $wp_version, '5.5-RC', '>=' ) ) {
				wp_localize_script(
					'yith-colorpicker',
					'wpColorPickerL10n',
					array(
						'clear'            => __( 'Clear' ),
						'clearAriaLabel'   => __( 'Clear color' ),
						'defaultString'    => __( 'Default' ),
						'defaultAriaLabel' => __( 'Select default color' ),
						'pick'             => __( 'Select Color' ),
						'defaultLabel'     => __( 'Color value' ),
					)
				);
			}

			wp_enqueue_style( 'yith-plugin-fw-admin', YIT_CORE_PLUGIN_URL . '/assets/css/admin.css', array(), $this->version );
		}
	}
}

YIT_Assets::instance();
plugin-fw/includes/class-yit-plugin-licence.php000064400000004442151327614500015607 0ustar00<?php
/**
 * YITH Plugin License Class.
 *
 * @class   YIT_Plugin_Licence
 * @package YITH\PluginFramework\Classes
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
	/**
	 * YIT_Plugin_Licence class.
	 * Set page to manage products.
	 *
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	class YIT_Plugin_Licence {
		/**
		 * The single instance of the class.
		 *
		 * @var YIT_Plugin_Licence
		 */
		private static $instance;

		/**
		 * Singleton implementation.
		 *
		 * @return YIT_Plugin_Licence
		 */
		public static function instance() {
			return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
		}

		/**
		 * YIT_Plugin_Licence constructor.
		 */
		private function __construct() {
			// Silence is golden.
		}

		/**
		 * Premium products registration
		 *
		 * @param string $init       The product identifier.
		 * @param string $secret_key The secret key.
		 * @param string $product_id The product id.
		 *
		 * @return void
		 */
		public function register( $init, $secret_key, $product_id ) {
			if ( ! function_exists( 'YITH_Plugin_Licence' ) ) {
				// Try to load YITH_Plugin_Licence class.
				yith_plugin_fw_load_update_and_licence_files();
			}

			if ( function_exists( 'YITH_Plugin_Licence' ) && is_callable( array( YITH_Plugin_Licence(), 'register' ) ) ) {
				YITH_Plugin_Licence()->register( $init, $secret_key, $product_id );
			}
		}

		/**
		 * Get license activation URL
		 *
		 * @param string $plugin_slug The plugin slug.
		 *
		 * @return string|false
		 * @since  3.0.17
		 */
		public static function get_license_activation_url( $plugin_slug = '' ) {
			return function_exists( 'YITH_Plugin_Licence' ) ? YITH_Plugin_Licence()->get_license_activation_url( $plugin_slug ) : false;
		}

		/**
		 * Retrieve the products
		 *
		 * @return array
		 */
		public function get_products() {
			return function_exists( 'YITH_Plugin_Licence' ) ? YITH_Plugin_Licence()->get_products() : array();
		}
	}
}

if ( ! function_exists( 'YIT_Plugin_Licence' ) ) {
	/**
	 * Single instance of YIT_Plugin_Licence
	 *
	 * @return YIT_Plugin_Licence
	 */
	function YIT_Plugin_Licence() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		return YIT_Plugin_Licence::instance();
	}
}
plugin-fw/dist/gutenberg/index.asset.php000064400000000342151327614500014342 0ustar00<?php return array('dependencies' => array('lodash', 'react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-url'), 'version' => 'ec5c5e974d97e00eb3f18286c25e0840');plugin-fw/dist/gutenberg/style-index.css000064400000003700151327614500014364 0ustar00.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--empty-html,.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--first-loading,.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--shortcode{border:1px solid #1e1e1e;border-radius:4px;padding:1em 1em 1.2em}.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--shortcode .block-editor-yith-plugin-fw-shortcode-block__content{border:1px solid #ddd;border-radius:4px;color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace;font-size:13px;padding:.8em 1em}.block-editor-yith-plugin-fw-shortcode-block{min-height:30px;position:relative}.block-editor-yith-plugin-fw-shortcode-block .block-editor-yith-plugin-fw-shortcode-block__spinner-wrap{left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%)}.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--empty-html.block-editor-yith-plugin-fw-shortcode-block--no-message .block-editor-yith-plugin-fw-shortcode-block__title,.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--first-loading .block-editor-yith-plugin-fw-shortcode-block__title{margin-bottom:0}.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--empty-html .block-editor-yith-plugin-fw-shortcode-block__message{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-style:italic}.block-editor-yith-plugin-fw-shortcode-block.block-editor-yith-plugin-fw-shortcode-block--empty-html .block-editor-yith-plugin-fw-shortcode-block__content{display:none}
.block-editor-yith-color-palette-control .block-editor-yith-color-palette-control__color-indicator{margin-bottom:12px}.block-editor-yith-color-palette-control .component-color-indicator{vertical-align:text-bottom}
plugin-fw/dist/gutenberg/index.js000064400000036751151327614500013066 0ustar00!function(){var e,t={783:function(e,t,o){"use strict";var r=window.wp.element,n=window.React,a=o(568),l=o.n(a),s=window.wp.blocks,c=window.wp.url;function i(e){if(e.status>=200&&e.status<300)return e;throw e}function u(e){return e.json?e.json():e.text()}const h=(0,r.createElement)("svg",{viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg",width:"22",height:"22",role:"img","aria-hidden":"true",focusable:"false"},(0,r.createElement)("path",{width:"22",height:"22",d:"M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z  M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"}));var d=window.lodash,p=o.n(d);const f=(e,t,o)=>{let r=!0;if(t&&t.id&&"value"in t){let n=t.value;["toggle","checkbox"].includes(o)&&(n=!0===n||"yes"===n||1===n),n=p().isArray(n)?n:[n],r=void 0!==e[t.id]&&n.includes(e[t.id])}return r},g=(e,t)=>{const{controlType:o}=e;let r=!0;if(e.deps)if(p().isArray(e.deps))for(let n in e.deps){const a=e.deps[n];if(r=f(t,a,o),!r)break}else r=f(t,e.deps,o);return r},b=(e,t)=>{let o="",r=!1;if(void 0!==e.callback&&(jQuery&&e.callback in jQuery.fn?r=jQuery.fn[e.callback]:e.callback in window&&(r=window[e.callback])),"function"==typeof r)o=r(t,e);else{const r=e.attributes?Object.entries(e.attributes).map((([e,o])=>{const r=g(o,t),n=t[e];if(r&&void 0!==n)return e+"="+(o.remove_quotes?n:`"${n}"`)})):[],n=r.length?" "+r.join(" "):"";o=`[${e.shortcode_name}${n}]`}return o};var m=window.wp.components,y=window.wp.blockEditor,_=window.wp.hooks;class v extends n.Component{constructor(){super(...arguments),this.state={html:"",shortcode:"",shortcodeHash:"",ajaxUpdated:!1,ajaxSuccess:!1,ajaxResponse:!1,loading:!1,firstLoading:!0},this.ajaxTimeout=!1}componentDidMount(){this.updateShortcode()}componentDidUpdate(e,t,o){const{shortcode:r,shortcodeHash:n,ajaxSuccess:a,ajaxResponse:l,ajaxUpdated:s}=this.state;(0,d.isEqual)(e,this.props)||this.updateShortcode(),this.props.blockArgs.do_shortcode&&s&&(a&&(0,_.doAction)("yith_plugin_fw_gutenberg_success_do_shortcode",r,n,l),(0,_.doAction)("yith_plugin_fw_gutenberg_after_do_shortcode",r,n,l),this.setState({ajaxUpdated:!1}))}updateShortcode(){const{attributes:e,blockArgs:t}=this.props;this.setState({loading:!0,ajaxSuccess:!1,ajaxResponse:!1});const o=b(t,e),r=l()(o);t.do_shortcode?(this.ajaxTimeout&&clearTimeout(this.ajaxTimeout),(0,_.doAction)("yith_plugin_fw_gutenberg_before_do_shortcode",o,r),this.ajaxTimeout=setTimeout((()=>{((e,t=yithGutenberg.ajaxurl)=>(t=(0,c.addQueryArgs)(t,e),fetch(t).then(i).then(u)))({action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:o}).then((e=>{this.setState({loading:!1,firstLoading:!1,html:e.html,shortcode:o,shortcodeHash:r,ajaxSuccess:!0,ajaxUpdated:!0,ajaxResponse:e})})).catch((e=>{console.log({error:e})}))}),300)):this.setState({loading:!1,firstLoading:!1,html:o,shortcode:o,shortcodeHash:r})}render(){const{html:e,loading:t,firstLoading:o,shortcode:n,shortcodeHash:a}=this.state,{blockArgs:l}=this.props,{do_shortcode:s,title:c,empty_message:i}=l,u="block-editor-yith-plugin-fw-shortcode-block";let d=[u],p=s?"html":"shortcode",f=e,g="";o&&t?p="first-loading":s&&!e&&(p="empty-html",f=n,!t&&i&&(g=i));const b=["first-loading","empty-html","shortcode"].includes(p),y=!["first-loading","empty-html"].includes(p),_=!!g;return d.push(`${u}--${p}`),d.push(_?`${u}--has-message`:`${u}--no-message`),d.push(`yith_block_${a}`),(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:d.join(" ")},t?(0,r.createElement)("div",{className:`${u}__spinner-wrap`},(0,r.createElement)(m.Spinner,null)):"",b&&(0,r.createElement)("div",{className:`${u}__title components-placeholder__label`},h,c),_&&(0,r.createElement)(r.RawHTML,{className:`${u}__message`},g),y&&(0,r.createElement)(r.RawHTML,{className:`${u}__content`},f)))}}var C=window.wp.compose;function w({className:e,label:t,onChange:o,value:n,help:a,disableAlpha:l}){const s=`inspector-yith-color-picker-control-${(0,C.useInstanceId)(w)}`;return(0,r.createElement)(m.BaseControl,{id:s,label:t,className:`block-editor-yith-color-control ${e}`,help:a},(0,r.createElement)(m.ColorPicker,{color:n,disableAlpha:l,onChangeComplete:o}))}function k({label:e,colorValue:t}){return(0,r.createElement)(r.Fragment,null,e,!!t&&(0,r.createElement)(m.ColorIndicator,{colorValue:t}))}function x({className:e,label:t,onChange:o,value:n,help:a,palette:l,clearable:s}){l=l||(0,y.useSetting)("color.palette");const c=`inspector-yith-color-palette-control-${(0,C.useInstanceId)(x)}`;return(0,r.createElement)(m.BaseControl,{id:c,className:`block-editor-yith-color-palette-control ${e}`,help:a},(0,r.createElement)("fieldset",null,(0,r.createElement)("legend",null,(0,r.createElement)("div",{className:"block-editor-yith-color-palette-control__color-indicator"},(0,r.createElement)(m.BaseControl.VisualLabel,null,(0,r.createElement)(k,{colorValue:n,label:t})))),(0,r.createElement)(m.ColorPalette,{value:n,onChange:o,colors:l,clearable:s})))}const j=(e,t)=>function({attributes:o,className:n,setAttributes:a}){const l=(e,t,o)=>{["colorpicker","color"].includes(o)&&(e=e.color.getAlpha()<1?e.color.toRgbString():e.color.toHexString());let r={};r[t]=e,a(r)};return(0,r.createElement)(r.Fragment,null,!!t.attributes&&(0,r.createElement)(y.InspectorControls,null,(0,r.createElement)(m.PanelBody,null,Object.entries(t.attributes).map((([t,n])=>{const a=((t,n)=>{const{controlType:a}=n,s=o[t],c=((e,t)=>{let o="";return e.helps&&e.helps.checked&&e.helps.unchecked?o=t?e.helps.checked:e.helps.unchecked:e.help&&(o=e.help),o})(n,s);let i=`${e}__${t}-field-wrapper`;const u=g(n,o);n.wrapper_class&&(i+=" "+n.wrapper_class);let h=!1;if(u)switch(a){case"select":h=(0,r.createElement)(m.SelectControl,{className:i,key:t,value:s,label:n.label,options:n.options,help:c,multiple:!!n.multiple,onChange:e=>{l(e,t,a)}});break;case"text":h=(0,r.createElement)(m.TextControl,{className:i,key:t,value:s,label:n.label,help:c,onChange:e=>{l(e,t,a)}});break;case"textarea":h=(0,r.createElement)(m.TextareaControl,{className:i,key:t,value:s,label:n.label,help:c,onChange:e=>{l(e,t,a)}});break;case"toggle":h=(0,r.createElement)(m.ToggleControl,{className:i,key:t,label:n.label,help:c,checked:s,onChange:e=>{l(e,t,a)}});break;case"checkbox":h=(0,r.createElement)(m.CheckboxControl,{className:i,key:t,label:n.label,help:c,checked:s,onChange:e=>{l(e,t,a)}});break;case"number":case"range":h=(0,r.createElement)(m.RangeControl,{className:i,key:t,value:s,label:n.label,help:c,min:n.min,max:n.max,onChange:e=>{l(e,t,a)}});break;case"color":case"colorpicker":h=(0,r.createElement)(w,{className:i,key:t,label:n.label,help:c,value:s,disableAlpha:n.disableAlpha,onChange:e=>{l(e,t,a)}});break;case"color-palette":h=(0,r.createElement)(x,{className:i,key:t,label:n.label,help:c,value:s,clearable:n.clearable||!1,onChange:e=>{l(e,t,a)}});break;case"radio":h=(0,r.createElement)(m.RadioControl,{key:t,label:n.label,options:n.options,selected:s,help:c,onChange:e=>{l(e,t,a)}});break;default:h=!1}return h})(t,n);if(a)return a})))),(0,r.createElement)(v,{attributes:o,blockArgs:t}))},E=[{key:"yith_plugin_fw_gutenberg_before_do_shortcode",delay:0},{key:"yith_plugin_fw_gutenberg_success_do_shortcode",delay:200},{key:"yith_plugin_fw_gutenberg_after_do_shortcode",delay:200}];for(const e of E)(0,_.addAction)(e.key,"yith-plugin-fw/jquery-events",((...t)=>{"jQuery"in window&&(e.delay?setTimeout((()=>{jQuery(document).trigger(e.key,Object.values(t))}),e.delay):jQuery(document).trigger(e.key,Object.values(t)))}));for(const[e,t]of Object.entries(yithGutenbergBlocks))(0,s.registerBlockType)("yith/"+e,{title:t.title,description:t.description,category:t.category,attributes:t.attributes,icon:void 0!==t.icon?t.icon:h,keywords:t.keywords,edit:j(e,t),save:({attributes:e})=>b(t,e),deprecated:[{attributes:t.attributes,save:({attributes:e})=>{const o=b(t,e),n='<span class="yith_block_'+l()(o)+'">'+o+"</span>";return(0,r.createElement)(r.RawHTML,null,n)}}]})},487:function(e){var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],o=0;o<e.length;o++)t.push(255&e.charCodeAt(o));return t},bytesToString:function(e){for(var t=[],o=0;o<e.length;o++)t.push(String.fromCharCode(e[o]));return t.join("")}}};e.exports=t},12:function(e){var t,o;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&o.rotl(e,8)|4278255360&o.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=o.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],o=0,r=0;o<e.length;o++,r+=8)t[r>>>5]|=e[o]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],o=0;o<32*e.length;o+=8)t.push(e[o>>>5]>>>24-o%32&255);return t},bytesToHex:function(e){for(var t=[],o=0;o<e.length;o++)t.push((e[o]>>>4).toString(16)),t.push((15&e[o]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],o=0;o<e.length;o+=2)t.push(parseInt(e.substr(o,2),16));return t},bytesToBase64:function(e){for(var o=[],r=0;r<e.length;r+=3)for(var n=e[r]<<16|e[r+1]<<8|e[r+2],a=0;a<4;a++)8*r+6*a<=8*e.length?o.push(t.charAt(n>>>6*(3-a)&63)):o.push("=");return o.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var o=[],r=0,n=0;r<e.length;n=++r%4)0!=n&&o.push((t.indexOf(e.charAt(r-1))&Math.pow(2,-2*n+8)-1)<<2*n|t.indexOf(e.charAt(r))>>>6-2*n);return o}},e.exports=o},738:function(e){function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},568:function(e,t,o){var r,n,a,l,s;r=o(12),n=o(487).utf8,a=o(738),l=o(487).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?l.stringToBytes(e):n.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var o=r.bytesToWords(e),c=8*e.length,i=1732584193,u=-271733879,h=-1732584194,d=271733878,p=0;p<o.length;p++)o[p]=16711935&(o[p]<<8|o[p]>>>24)|4278255360&(o[p]<<24|o[p]>>>8);o[c>>>5]|=128<<c%32,o[14+(c+64>>>9<<4)]=c;var f=s._ff,g=s._gg,b=s._hh,m=s._ii;for(p=0;p<o.length;p+=16){var y=i,_=u,v=h,C=d;i=f(i,u,h,d,o[p+0],7,-680876936),d=f(d,i,u,h,o[p+1],12,-389564586),h=f(h,d,i,u,o[p+2],17,606105819),u=f(u,h,d,i,o[p+3],22,-1044525330),i=f(i,u,h,d,o[p+4],7,-176418897),d=f(d,i,u,h,o[p+5],12,1200080426),h=f(h,d,i,u,o[p+6],17,-1473231341),u=f(u,h,d,i,o[p+7],22,-45705983),i=f(i,u,h,d,o[p+8],7,1770035416),d=f(d,i,u,h,o[p+9],12,-1958414417),h=f(h,d,i,u,o[p+10],17,-42063),u=f(u,h,d,i,o[p+11],22,-1990404162),i=f(i,u,h,d,o[p+12],7,1804603682),d=f(d,i,u,h,o[p+13],12,-40341101),h=f(h,d,i,u,o[p+14],17,-1502002290),i=g(i,u=f(u,h,d,i,o[p+15],22,1236535329),h,d,o[p+1],5,-165796510),d=g(d,i,u,h,o[p+6],9,-1069501632),h=g(h,d,i,u,o[p+11],14,643717713),u=g(u,h,d,i,o[p+0],20,-373897302),i=g(i,u,h,d,o[p+5],5,-701558691),d=g(d,i,u,h,o[p+10],9,38016083),h=g(h,d,i,u,o[p+15],14,-660478335),u=g(u,h,d,i,o[p+4],20,-405537848),i=g(i,u,h,d,o[p+9],5,568446438),d=g(d,i,u,h,o[p+14],9,-1019803690),h=g(h,d,i,u,o[p+3],14,-187363961),u=g(u,h,d,i,o[p+8],20,1163531501),i=g(i,u,h,d,o[p+13],5,-1444681467),d=g(d,i,u,h,o[p+2],9,-51403784),h=g(h,d,i,u,o[p+7],14,1735328473),i=b(i,u=g(u,h,d,i,o[p+12],20,-1926607734),h,d,o[p+5],4,-378558),d=b(d,i,u,h,o[p+8],11,-2022574463),h=b(h,d,i,u,o[p+11],16,1839030562),u=b(u,h,d,i,o[p+14],23,-35309556),i=b(i,u,h,d,o[p+1],4,-1530992060),d=b(d,i,u,h,o[p+4],11,1272893353),h=b(h,d,i,u,o[p+7],16,-155497632),u=b(u,h,d,i,o[p+10],23,-1094730640),i=b(i,u,h,d,o[p+13],4,681279174),d=b(d,i,u,h,o[p+0],11,-358537222),h=b(h,d,i,u,o[p+3],16,-722521979),u=b(u,h,d,i,o[p+6],23,76029189),i=b(i,u,h,d,o[p+9],4,-640364487),d=b(d,i,u,h,o[p+12],11,-421815835),h=b(h,d,i,u,o[p+15],16,530742520),i=m(i,u=b(u,h,d,i,o[p+2],23,-995338651),h,d,o[p+0],6,-198630844),d=m(d,i,u,h,o[p+7],10,1126891415),h=m(h,d,i,u,o[p+14],15,-1416354905),u=m(u,h,d,i,o[p+5],21,-57434055),i=m(i,u,h,d,o[p+12],6,1700485571),d=m(d,i,u,h,o[p+3],10,-1894986606),h=m(h,d,i,u,o[p+10],15,-1051523),u=m(u,h,d,i,o[p+1],21,-2054922799),i=m(i,u,h,d,o[p+8],6,1873313359),d=m(d,i,u,h,o[p+15],10,-30611744),h=m(h,d,i,u,o[p+6],15,-1560198380),u=m(u,h,d,i,o[p+13],21,1309151649),i=m(i,u,h,d,o[p+4],6,-145523070),d=m(d,i,u,h,o[p+11],10,-1120210379),h=m(h,d,i,u,o[p+2],15,718787259),u=m(u,h,d,i,o[p+9],21,-343485551),i=i+y>>>0,u=u+_>>>0,h=h+v>>>0,d=d+C>>>0}return r.endian([i,u,h,d])})._ff=function(e,t,o,r,n,a,l){var s=e+(t&o|~t&r)+(n>>>0)+l;return(s<<a|s>>>32-a)+t},s._gg=function(e,t,o,r,n,a,l){var s=e+(t&r|o&~r)+(n>>>0)+l;return(s<<a|s>>>32-a)+t},s._hh=function(e,t,o,r,n,a,l){var s=e+(t^o^r)+(n>>>0)+l;return(s<<a|s>>>32-a)+t},s._ii=function(e,t,o,r,n,a,l){var s=e+(o^(t|~r))+(n>>>0)+l;return(s<<a|s>>>32-a)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var o=r.wordsToBytes(s(e,t));return t&&t.asBytes?o:t&&t.asString?l.bytesToString(o):r.bytesToHex(o)}}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.m=t,e=[],r.O=function(t,o,n,a){if(!o){var l=1/0;for(u=0;u<e.length;u++){o=e[u][0],n=e[u][1],a=e[u][2];for(var s=!0,c=0;c<o.length;c++)(!1&a||l>=a)&&Object.keys(r.O).every((function(e){return r.O[e](o[c])}))?o.splice(c--,1):(s=!1,a<l&&(l=a));if(s){e.splice(u--,1);var i=n();void 0!==i&&(t=i)}}return t}a=a||0;for(var u=e.length;u>0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[o,n,a]},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={826:0,46:0};r.O.j=function(t){return 0===e[t]};var t=function(t,o){var n,a,l=o[0],s=o[1],c=o[2],i=0;if(l.some((function(t){return 0!==e[t]}))){for(n in s)r.o(s,n)&&(r.m[n]=s[n]);if(c)var u=c(r)}for(t&&t(o);i<l.length;i++)a=l[i],r.o(e,a)&&e[a]&&e[a][0](),e[l[i]]=0;return r.O(u)},o=self.webpackChunkyith_plugin_framewowrk=self.webpackChunkyith_plugin_framewowrk||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))}();var n=r.O(void 0,[46],(function(){return r(783)}));n=r.O(n)}();plugin-fw/lib/yit-plugin-licence.php000064400000000346151327614500013443 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-plugin-licence.php';
plugin-fw/lib/yit-plugin-gradients.php000064400000000341151327614500014014 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-gradients.php';
plugin-fw/lib/yith-dashboard.php000064400000000342151327614500012640 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yith-dashboard.php';
plugin-fw/lib/yit-icons.php000064400000000335151327614500011656 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-icons.php';
plugin-fw/lib/privacy/yit-privacy-plugin-abstract.php000064400000000373151327614500016774 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../../includes/privacy/class-yith-privacy-plugin-abstract.php';
plugin-fw/lib/privacy/yit-privacy.php000064400000000353151327614500013675 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../../includes/privacy/class-yith-privacy.php';
plugin-fw/lib/yith-gutenberg.php000064400000000365151327614500012700 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/builders/gutenberg/class-yith-gutenberg.php';
plugin-fw/lib/yit-pointers.php000064400000000340151327614500012402 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-pointers.php';
plugin-fw/lib/yit-video.php000064400000000335151327614500011651 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-video.php';
plugin-fw/lib/yit-assets.php000064400000000336151327614500012046 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-assets.php';
plugin-fw/lib/yit-plugin-subpanel.php000064400000000347151327614500013653 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-plugin-subpanel.php';
plugin-fw/lib/yit-ajax.php000064400000000334151327614500011465 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-ajax.php';
plugin-fw/lib/yit-debug.php000064400000000336151327614500011632 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yith-debug.php';
plugin-fw/lib/yit-theme-licence.php000064400000000345151327614500013246 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-theme-licence.php';
plugin-fw/lib/yit-plugin-panel-wc.php000064400000000360151327614500013543 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-plugin-panel-woocommerce.php';
plugin-fw/lib/yit-plugin-common.php000064400000000345151327614500013330 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-plugin-common.php';
plugin-fw/lib/yit-upgrade.php000064400000000337151327614500012174 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-upgrade.php';
plugin-fw/lib/yith-system-status.php000064400000000346151327614500013562 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yith-system-status.php';
plugin-fw/lib/yit-plugin-panel.php000064400000000344151327614500013136 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-plugin-panel.php';
plugin-fw/lib/yit-metabox.php000064400000000337151327614500012204 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-metabox.php';
plugin-fw/lib/yit-cpt-unlimited.php000064400000000345151327614500013322 0ustar00<?php
/**
 * Deprecated file. Use the correct one in includes folder instead
 *
 * @package YITH\PluginFramework\Classes
 */

/**
 * Require the correct file
 */
require_once __DIR__ . '/../includes/class-yit-cpt-unlimited.php';
plugin-fw/yit-woocommerce-compatibility.php000064400000053407151327614500015173 0ustar00<?php
/**
 * Functions for WooCommerce 3.0 compatibility.
 *
 * @package YITH\PluginFramework
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! function_exists( 'WC' ) ) {
	return;
}

$changed_objects = array();

if ( ! function_exists( 'yit_get_prop' ) ) {
	/**
	 * Retrieve a property.
	 *
	 * @param object $object  The object.
	 * @param string $key     The Meta Key.
	 * @param bool   $single  Return first found meta with key, or all.
	 * @param string $context What the value is for. Valid values are view and edit.
	 *
	 * @return mixed|null The related value or null (if the $object is not a valid object).
	 * @deprecated 3.5 | use the WooCommerce CRUD directly instead.
	 */
	function yit_get_prop( $object, $key, $single = true, $context = 'view' ) {
		$prop_map   = yit_return_new_attribute_map();
		$is_wc_data = $object instanceof WC_Data;

		if ( $is_wc_data ) {
			$key    = ( array_key_exists( $key, $prop_map ) ) ? $prop_map[ $key ] : $key;
			$getter = false;
			if ( method_exists( $object, "get{$key}" ) ) {
				$getter = "get{$key}";
			} elseif ( method_exists( $object, "get_{$key}" ) ) {
				$getter = "get_{$key}";
			}

			if ( $getter ) {
				return $object->$getter( $context );
			} else {
				return $object->get_meta( $key, $single );
			}
		} else {
			$key = ( in_array( $key, $prop_map, true ) ) ? array_search( $key, $prop_map, true ) : $key;

			if ( isset( $object->$key ) ) {
				return $object->$key;
			} elseif ( yit_wc_check_post_columns( $key ) ) {
				return $object->post->$key;
			} else {
				$object_id = 0;
				$getter    = $object instanceof WC_Customer ? 'get_user_meta' : 'get_post_meta';

				if ( ! ! $object ) {
					$object_id = is_callable( array( $object, 'get_id' ) ) ? $object->get_id() : $object->id;
				}

				return ! ! $object_id ? $getter( $object_id, $key, true ) : null;
			}
		}
	}
}

if ( ! function_exists( 'yit_set_prop' ) ) {
	/**
	 * Set prop or props.
	 *
	 * @param object       $object The object.
	 * @param array|string $arg1   The key of the prop to set, or an array of props to set.
	 * @param false        $arg2   The value to set, or false if you want to set an array of props.
	 *
	 * @deprecated 3.5 | use the WooCommerce CRUD directly instead.
	 */
	function yit_set_prop( $object, $arg1, $arg2 = false ) {
		if ( ! is_array( $arg1 ) ) {
			$arg1 = array(
				$arg1 => $arg2,
			);
		}

		$prop_map   = yit_return_new_attribute_map();
		$is_wc_data = $object instanceof WC_Data;

		foreach ( $arg1 as $key => $value ) {
			if ( $is_wc_data ) {
				$key = ( array_key_exists( $key, $prop_map ) ) ? $prop_map[ $key ] : $key;

				$setter = false;
				if ( method_exists( $object, "set{$key}" ) ) {
					$setter = "set{$key}";
				} elseif ( method_exists( $object, "set_{$key}" ) ) {
					$setter = "set_{$key}";
				}

				if ( $setter ) {
					$object->$setter( $value );
				} else {
					$object->update_meta_data( $key, $value );
				}
			} else {
				$key = ( in_array( $key, $prop_map, true ) ) ? array_search( $key, $prop_map, true ) : $key;
				if ( ( strpos( $key, '_' ) === 0 ) ) {
					$key = substr( $key, 1 );
				}

				if ( yit_wc_check_post_columns( $key ) ) {
					$object->post->$key = $value;
				} else {
					$object->$key = $value;
				}
			}
		}
	}
}

if ( ! function_exists( 'yit_save_prop' ) ) {
	/**
	 * Save prop or props.
	 *
	 * @param object       $object       The object.
	 * @param array|string $arg1         The key of the prop to set, or an array of props to set.
	 * @param false        $arg2         The value to set, or false if you want to set an array of props.
	 * @param false        $force_update Unused attribute.
	 *
	 * @deprecated 3.5 | use the WooCommerce CRUD directly instead.
	 */
	function yit_save_prop( $object, $arg1, $arg2 = false, $force_update = false ) {
		if ( ! is_array( $arg1 ) ) {
			$arg1 = array(
				$arg1 => $arg2,
			);
		}

		$is_wc_data = $object instanceof WC_Data;

		foreach ( $arg1 as $key => $value ) {
			yit_set_prop( $object, $key, $value );

			if ( ! $is_wc_data ) {

				if ( yit_wc_check_post_columns( $key ) ) {
					yit_store_changes( $object->post, $key, $value );
				} else {
					$object_id = is_callable( array( $object, 'get_id' ) ) ? $object->get_id() : $object->id;

					update_post_meta( $object_id, $key, $value );
				}
			}
		}

		if ( $is_wc_data ) {
			$object->save();
		}
	}
}

if ( ! function_exists( 'yit_delete_prop' ) ) {
	/**
	 * Delete a prop.
	 *
	 * @param object $object The object.
	 * @param string $key    The key.
	 * @param string $value  The value.
	 *
	 * @deprecated 3.5 | use the WooCommerce CRUD directly instead.
	 */
	function yit_delete_prop( $object, $key, $value = '' ) {
		$prop_map   = yit_return_new_attribute_map();
		$is_wc_data = $object instanceof WC_Data;

		if ( $is_wc_data ) {
			$key = ( array_key_exists( $key, $prop_map ) ) ? $prop_map[ $key ] : $key;

			$getter = false;
			$setter = false;
			if ( method_exists( $object, "get{$key}" ) ) {
				$getter = "get{$key}";
			} elseif ( method_exists( $object, "get_{$key}" ) ) {
				$getter = "get_{$key}";
			}

			if ( method_exists( $object, "set{$key}" ) ) {
				$setter = "set{$key}";
			} elseif ( method_exists( $object, "set_{$key}" ) ) {
				$setter = "set_{$key}";
			}

			if ( $setter && $getter && method_exists( $object, $setter ) && method_exists( $object, $getter ) && ( ! $value || $object->$getter === $value ) ) {
				$object->$setter( '' );
			} elseif ( ( ! $value || $object->get_meta( $key ) === $value ) ) {
				$object->delete_meta_data( $key, $value );
			}

			$object->save();
		} else {
			if ( yit_wc_check_post_columns( $key ) && ( ! $value || $object->post->$key === $value ) ) {
				yit_store_changes( $object->post, $key, '' );
			} else {
				$object_id = is_callable( array( $object, 'get_id' ) ) ? $object->get_id() : $object->id;

				delete_post_meta( $object_id, $key, $value );
			}
		}
	}
}

if ( ! function_exists( 'yit_return_new_attribute_map' ) ) {
	/**
	 * Return the attribute map array.
	 *
	 * @return string[]
	 * @deprecated 3.5
	 */
	function yit_return_new_attribute_map() {
		return array(
			'post_parent'                => 'parent_id',
			'post_title'                 => 'name',
			'post_status'                => 'status',
			'post_content'               => 'description',
			'post_excerpt'               => 'short_description',
			// Orders --------------------.
			'paid_date'                  => 'date_paid',
			'_paid_date'                 => '_date_paid',
			'completed_date'             => 'date_completed',
			'_completed_date'            => '_date_completed',
			'_order_date'                => '_date_created',
			'order_date'                 => 'date_created',
			'order_total'                => 'total',
			'customer_user'              => 'customer_id',
			'_customer_user'             => 'customer_id',
			// Products ---------------------.
			'visibility'                 => 'catalog_visibility',
			'_visibility'                => '_catalog_visibility',
			'sale_price_dates_from'      => 'date_on_sale_from',
			'_sale_price_dates_from'     => '_date_on_sale_from',
			'sale_price_dates_to'        => 'date_on_sale_to',
			'_sale_price_dates_to'       => '_date_on_sale_to',
			'product_attributes'         => 'attributes',
			'_product_attributes'        => '_attributes',
			// Coupons ---------------------.
			'coupon_amount'              => 'amount',
			'exclude_product_ids'        => 'excluded_product_ids',
			'exclude_product_categories' => 'excluded_product_categories',
			'customer_email'             => 'email_restrictions',
			'expiry_date'                => 'date_expires',
		);
	}
}

if ( ! function_exists( 'yit_store_changes' ) ) {
	/**
	 * Store changes
	 *
	 * @param object      $object The object.
	 * @param string      $key    The key.
	 * @param false|mixes $value  The value.
	 *
	 * @deprecated 3.5
	 */
	function yit_store_changes( $object, $key, $value = false ) {
		global $changed_objects;

		$is_wc_data = $object instanceof WC_Data;

		if ( $is_wc_data ) {
			$object_reference = $object->get_id();

			$changed_objects[ $object_reference ]['object']          = $object;
			$changed_objects[ $object_reference ]['changes'][ $key ] = $value;

		} else {
			$changed_objects[ $object->ID ][ $key ] = $value;
		}
	}
}

if ( ! function_exists( 'yit_send_changes_to_db' ) ) {
	/**
	 * Send changes to DB.
	 *
	 * @deprecated 3.5
	 */
	function yit_send_changes_to_db() {
		global $changed_objects;

		if ( ! empty( $changed_objects ) ) {
			foreach ( $changed_objects as $id => $data ) {
				if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
					$object = is_a( $data['object'], 'WC_Product' ) ? wc_get_product( $id ) : wc_get_order( $id );

					yit_set_prop( $object, $data['changes'] );
					$object->save();
				} else {
					$data['ID'] = $id;
					wp_update_post( $data );
				}
			}
		}
	}
}

if ( ! function_exists( 'yit_get_orders' ) ) {
	/**
	 * Retrieve orders
	 *
	 * @param array $args Arguments.
	 *
	 * @return WC_Order[]
	 * @deprecated 3.5 | use wc_get_orders instead.
	 */
	function yit_get_orders( $args ) {
		if ( version_compare( WC()->version, '2.7', '<' ) ) {
			$args['fields'] = 'objects';
			$posts          = get_posts( $args );

			return array_map( 'wc_get_order', $posts );
		} else {
			return wc_get_orders( $args );
		}
	}
}

if ( ! function_exists( 'yit_get_products' ) ) {
	/**
	 * Retrieve products.
	 *
	 * @param array $args Arguments.
	 *
	 * @return WC_Product[]
	 * @deprecated 3.5 | use wc_get_orders instead.
	 */
	function yit_get_products( $args ) {
		if ( version_compare( WC()->version, '2.7', '<' ) ) {
			$args['fields'] = 'objects';
			$posts          = get_posts( $args );

			return array_map( 'wc_get_product', $posts );
		} else {
			return wc_get_products( $args );
		}
	}
}

if ( ! function_exists( 'yit_update_product_stock' ) ) {
	/**
	 * Update product stock.
	 *
	 * @param WC_Product $product        The product.
	 * @param int        $stock_quantity The stock quantity.
	 * @param string     $operation      The operation. Available values: set, increase, decrease.
	 *
	 * @return bool|int|null
	 * @deprecated 3.5 | use wc_update_product_stock instead.
	 */
	function yit_update_product_stock( $product, $stock_quantity = 1, $operation = 'set' ) {
		if ( function_exists( 'wc_update_product_stock' ) ) {
			$stock = wc_update_product_stock( $product, $stock_quantity, $operation );
		} else {
			switch ( $operation ) {
				case 'increase':
					$stock = $product->increase_stock( $stock_quantity );
					break;
				case 'decrease':
					$stock = $product->reduce_stock( $stock_quantity );
					break;
				case 'set':
				default:
					$stock = $product->set_stock( $stock_quantity );
					break;
			}
		}

		return $stock;
	}
}

if ( ! function_exists( 'yit_wc_deprecated_filters' ) ) {
	/**
	 * Deprecated filters.
	 *
	 * @return mixed|void
	 * @deprecated 3.5
	 */
	function yit_wc_deprecated_filters() {
		$filters = array(
			'woocommerce_email_order_schema_markup'      => 'woocommerce_structured_data_order',
			'woocommerce_product_width'                  => 'woocommerce_product_get_width',
			'woocommerce_product_height'                 => 'woocommerce_product_get_height',
			'woocommerce_product_length'                 => 'woocommerce_product_get_length',
			'woocommerce_product_weight'                 => 'woocommerce_product_get_weight',
			'woocommerce_get_sku'                        => 'woocommerce_product_get_sku',
			'woocommerce_get_price'                      => 'woocommerce_product_get_price',
			'woocommerce_get_price'                      => 'woocommerce_product_variation_get_price',
			'woocommerce_get_regular_price'              => 'woocommerce_product_get_regular_price',
			'woocommerce_get_sale_price'                 => 'woocommerce_product_get_sale_price',
			'woocommerce_product_tax_class'              => 'woocommerce_product_get_tax_class',
			'woocommerce_get_stock_quantity'             => 'woocommerce_product_get_stock_quantity',
			'woocommerce_get_product_attributes'         => 'woocommerce_product_get_attributes',
			'woocommerce_product_gallery_attachment_ids' => 'woocommerce_product_get_gallery_image_ids',
			'woocommerce_product_review_count'           => 'woocommerce_product_get_review_count',
			'woocommerce_product_files'                  => 'woocommerce_product_get_downloads',
			'woocommerce_get_currency'                   => 'woocommerce_order_get_currency',
			'woocommerce_order_amount_discount_total'    => 'woocommerce_order_get_discount_total',
			'woocommerce_order_amount_discount_tax'      => 'woocommerce_order_get_discount_tax',
			'woocommerce_order_amount_shipping_total'    => 'woocommerce_order_get_shipping_total',
			'woocommerce_order_amount_shipping_tax'      => 'woocommerce_order_get_shipping_tax',
			'woocommerce_order_amount_cart_tax'          => 'woocommerce_order_get_cart_tax',
			'woocommerce_order_amount_total'             => 'woocommerce_order_get_total',
			'woocommerce_order_amount_total_tax'         => 'woocommerce_order_get_total_tax',
			'woocommerce_order_amount_total_discount'    => 'woocommerce_order_get_total_discount',
			'woocommerce_order_amount_subtotal'          => 'woocommerce_order_get_subtotal',
			'woocommerce_order_tax_totals'               => 'woocommerce_order_get_tax_totals',
			'woocommerce_refund_amount'                  => 'woocommerce_get_order_refund_get_amount',
			'woocommerce_refund_reason'                  => 'woocommerce_get_order_refund_get_reason',
			'default_checkout_country'                   => 'default_checkout_billing_country',
			'default_checkout_state'                     => 'default_checkout_billing_state',
			'default_checkout_postcode'                  => 'default_checkout_billing_postcode',
		);

		return apply_filters( 'yit_wc_deprecated_filters', $filters );
	}
}

if ( ! function_exists( 'yit_fix_wc_deprecated_filters' ) ) {
	/**
	 * Fix WooCommerce deprecated filters.
	 *
	 * @deprecated 3.5
	 */
	function yit_fix_wc_deprecated_filters() {
		if ( ! version_compare( WC()->version, '2.7.0', '<' ) ) {
			return;
		}

		$deprecated_filters = yit_wc_deprecated_filters();
		foreach ( $deprecated_filters as $old => $new ) {
			add_filter( $old, 'yit_wc_deprecated_filter_mapping', 10, 100 );
		}
	}
}

if ( ! function_exists( 'yit_wc_deprecated_filter_mapping' ) ) {
	/**
	 * Deprecated filter mapping.
	 *
	 * @return mixed
	 * @deprecated 3.5
	 */
	function yit_wc_deprecated_filter_mapping() {
		$deprecated_filters = yit_wc_deprecated_filters();

		$filter = current_filter();
		$args   = func_get_args();
		$data   = $args[0];

		if ( isset( $deprecated_filters[ $filter ] ) ) {
			if ( has_filter( $deprecated_filters[ $filter ] ) ) {
				$data = apply_filters_ref_array( $deprecated_filters[ $filter ], $args );
			}
		}

		return $data;
	}
}

if ( ! function_exists( 'yit_wc_check_post_columns' ) ) {
	/**
	 * Check the post columns.
	 *
	 * @param string $key The key.
	 *
	 * @return bool
	 * @deprecated 3.5
	 */
	function yit_wc_check_post_columns( $key ) {
		$columns = array(
			'post_author',
			'post_date',
			'post_date_gmt',
			'post_content',
			'post_title',
			'post_excerpt',
			'post_status',
			'comment_status',
			'ping_status',
			'post_password',
			'post_name',
			'to_ping',
			'pinged',
			'post_modified',
			'post_modified_gmt',
			'post_content_filtered',
			'post_parent',
			'guid',
			'menu_order',
			'post_type',
			'post_mime_type',
			'comment_count',
		);

		return in_array( $key, $columns, true );
	}
}


/*  Shortcuts for common functions   */

if ( ! function_exists( 'yit_get_order_id' ) ) {
	/**
	 * Retrieve the order id
	 *
	 * @param WC_Order $order The Order.
	 *
	 * @return int
	 * @deprecated 3.5 | use $order->get_id() instead.
	 */
	function yit_get_order_id( $order ) {
		return yit_get_prop( $order, 'id' );
	}
}

if ( ! function_exists( 'yit_get_product_id' ) ) {
	/**
	 * Retrieve the product id
	 *
	 * @param WC_Product $product The product.
	 *
	 * @return mixed
	 * @deprecated 3.5 | use $product->get_id() instead.
	 */
	function yit_get_product_id( $product ) {
		return yit_get_prop( $product, 'id' );
	}
}

if ( ! function_exists( 'yit_get_base_product_id' ) ) {
	/**
	 * Retrieve the parent product ID for WC_Product_Variation instances
	 * or the product ID in the other cases.
	 *
	 * @param WC_Product $product The product.
	 *
	 * @return int
	 */
	function yit_get_base_product_id( $product ) {

		return $product instanceof WC_Data && $product->is_type( 'variation' ) ?
			yit_get_prop( $product, 'parent_id' ) :
			yit_get_prop( $product, 'id' );
	}
}

if ( ! function_exists( 'yit_get_display_price' ) ) {
	/**
	 * Get the display price.
	 *
	 * @param WC_Product $product The product.
	 * @param string     $price   The price.
	 * @param int        $qty     The quantity.
	 *
	 * @return string The price to display
	 */
	function yit_get_display_price( $product, $price = '', $qty = 1 ) {
		if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
			$price = wc_get_price_to_display(
				$product,
				array(
					'qty'   => $qty,
					'price' => $price,
				)
			);
		} else {
			$price = $product->get_display_price( $price, $qty );
		}

		return $price;
	}
}

if ( ! function_exists( 'yit_get_price_excluding_tax' ) ) {
	/**
	 * Get price excluding taxes.
	 *
	 * @param WC_Product $product The product.
	 * @param int        $qty     The quantity.
	 * @param string     $price   The price.
	 *
	 * @return float|string
	 */
	function yit_get_price_excluding_tax( $product, $qty = 1, $price = '' ) {
		if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
			$price = wc_get_price_excluding_tax(
				$product,
				array(
					'qty'   => $qty,
					'price' => $price,
				)
			);
		} else {
			$price = $product->get_price_excluding_tax( $qty, $price );
		}

		return $price;
	}
}

if ( ! function_exists( 'yit_get_price_including_tax' ) ) {
	/**
	 * Get price including taxes.
	 *
	 * @param WC_Product $product The product.
	 * @param int        $qty     The quantity.
	 * @param string     $price   The price.
	 *
	 * @return float|string
	 */
	function yit_get_price_including_tax( $product, $qty = 1, $price = '' ) {
		if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
			$price = wc_get_price_including_tax(
				$product,
				array(
					'qty'   => $qty,
					'price' => $price,
				)
			);
		} else {
			$price = $product->get_price_including_tax( $qty, $price );
		}

		return $price;
	}
}

if ( ! function_exists( 'yit_get_product_image_id' ) ) {
	/**
	 * Get the product image ID
	 *
	 * @param WC_Product $product The product.
	 * @param string     $context What the value is for. Valid values are view and edit.
	 *
	 * @return mixed
	 * @deprecated 3.5 | use $product->get_image_id() instead.
	 */
	function yit_get_product_image_id( $product, $context = 'view' ) {
		if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
			$image_id = $product->get_image_id( $context );
		} else {
			$image_id = $product->get_image_id();
		}

		return $image_id;
	}
}

if ( ! function_exists( 'yit_get_refund_amount' ) ) {
	/**
	 * Get the refund amount.
	 *
	 * @param WC_Order_Refund $refunded_order The Refunded order.
	 * @param string          $context        What the value is for. Valid values are view and edit.
	 *
	 * @return float
	 * @deprecated 3.5 | use $refunded_order->get_amount() instead.
	 */
	function yit_get_refund_amount( $refunded_order, $context = 'view' ) {
		$is_wc_data = $refunded_order instanceof WC_Data;

		if ( $is_wc_data ) {
			return $refunded_order->get_amount( $context );
		} else {
			return $refunded_order->get_refund_amount();
		}
	}
}

if ( ! function_exists( 'yit_set_refund_amount' ) ) {
	/**
	 * Set the refund amount.
	 *
	 * @param WC_Order_Refund $refunded_order The Refunded order.
	 * @param float           $amount         The amount.
	 *
	 * @throws WC_Data_Exception Exception if the amount is invalid.
	 * @deprecated 3.5 | use $refunded_order->set_amount() instead.
	 */
	function yit_set_refund_amount( $refunded_order, $amount ) {
		$is_wc_data = $refunded_order instanceof WC_Data;

		if ( $is_wc_data ) {
			$refunded_order->set_amount( $amount );
		} else {
			$refunded_order->refund_amount = $amount;
		}
	}
}

if ( ! function_exists( 'yit_get_refund_reason' ) ) {
	/**
	 * Retrieve the refund reason.
	 *
	 * @param WC_Order_Refund $refunded_order The Refunded order.
	 *
	 * @return string
	 * @deprecated 3.5 | use $refunded_order->get_reason() instead.
	 */
	function yit_get_refund_reason( $refunded_order ) {
		$is_wc_data = $refunded_order instanceof WC_Data;

		if ( $is_wc_data ) {
			return $refunded_order->get_reason();
		} else {
			return $refunded_order->get_refund_reason();
		}
	}
}

if ( ! function_exists( 'yit_product_visibility_meta' ) ) {
	/**
	 * Visibility meta query.
	 *
	 * @param array $args Arguments.
	 *
	 * @return array
	 */
	function yit_product_visibility_meta( $args ) {
		if ( version_compare( WC()->version, '2.7.0', '<' ) ) {
			$args['meta_query']   = isset( $args['meta_query'] ) ? $args['meta_query'] : array(); // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
			$args['meta_query'][] = WC()->query->visibility_meta_query();
		} elseif ( taxonomy_exists( 'product_visibility' ) ) {
			$product_visibility_term_ids = wc_get_product_visibility_term_ids();
			$args['tax_query']           = isset( $args['tax_query'] ) ? $args['tax_query'] : array(); // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_tax_query
			$args['tax_query'][]         = array(
				'taxonomy' => 'product_visibility',
				'field'    => 'term_taxonomy_id',
				'terms'    => is_search() ? $product_visibility_term_ids['exclude-from-search'] : $product_visibility_term_ids['exclude-from-catalog'],
				'operator' => 'NOT IN',
			);
		}

		return $args;
	}
}

if ( ! function_exists( 'yit_datetime_to_timestamp' ) ) {
	/**
	 * Convert string date to timestamp.
	 *
	 * @param string $date The date.
	 *
	 * @return false|int
	 */
	function yit_datetime_to_timestamp( $date ) {
		if ( ! is_int( $date ) ) {
			$date = strtotime( $date );
		}

		return $date;
	}
}

yit_fix_wc_deprecated_filters();
add_action( 'shutdown', 'yit_send_changes_to_db' );
plugin-fw/yit-plugin-registration-hook.php000064400000001161151327614500014737 0ustar00<?php
/**
 * Functions for plugin registration hook.
 *
 * @package YITH\PluginFramework
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! function_exists( 'yith_plugin_registration_hook' ) ) {
	/**
	 * Register the plugin when activated.
	 * Please note: use this function through register_activation_hook.
	 *
	 * @use activate_PLUGINNAME hook
	 */
	function yith_plugin_registration_hook() {
		$hook     = str_replace( 'activate_', '', current_filter() );
		$option   = get_option( 'yit_recently_activated', array() );
		$option[] = $hook;
		update_option( 'yit_recently_activated', $option );
	}
}
plugin-fw/yit-functions.php000064400000204142151327614500012007 0ustar00<?php
/**
 * Functions.
 *
 * @package YITH\PluginFramework
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! function_exists( 'yit_plugin_locate_template' ) ) {
	/**
	 * Locate the templates and return the path of the file found
	 *
	 * @param string $plugin_basename The plugin base name.
	 * @param string $path            The path.
	 * @param array  $var             Variable to make visible to the template.
	 *
	 * @return string
	 * @since 2.0.0
	 */
	function yit_plugin_locate_template( $plugin_basename, $path, $var = null ) {

		$template_path = '/theme/templates/' . $path;

		$located = locate_template( array( $template_path ) );

		if ( ! $located ) {
			$located = $plugin_basename . '/templates/' . $path;
		}

		return $located;
	}
}

if ( ! function_exists( 'yit_plugin_get_template' ) ) {
	/**
	 * Retrieve a template file.
	 *
	 * @param string $plugin_basename The plugin basename.
	 * @param string $path            The path.
	 * @param mixed  $var             Variable that will be extracted to make its items visible to the template.
	 * @param bool   $return          return or print the template.
	 *
	 * @return string
	 * @since 2.0.0
	 */
	function yit_plugin_get_template( $plugin_basename, $path, $var = null, $return = false ) {

		$located = yit_plugin_locate_template( $plugin_basename, $path, $var );

		if ( $var && is_array( $var ) ) {
			extract( $var ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
		}

		if ( $return ) {
			ob_start();
		}

		if ( file_exists( $located ) ) {
			include $located;
		}

		if ( $return ) {
			return ob_get_clean();
		}
	}
}

if ( ! function_exists( 'yit_plugin_content' ) ) {
	/**
	 * Return post content with read more link (if needed)
	 *
	 * @param string     $what         What do you want to see (content, excerpt or something else).
	 * @param int|string $limit        Limit the content.
	 * @param string     $more_text    The "more" text.
	 * @param string     $split        The split.
	 * @param bool       $in_paragraph Defines if the content is inside a paragraph.
	 *
	 * @return string
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yit_plugin_content( $what = 'content', $limit = 25, $more_text = '', $split = '[...]', $in_paragraph = true ) {
		if ( 'content' === $what ) {
			$content = get_the_content( $more_text );
		} else {
			if ( 'excerpt' === $what ) {
				$content = get_the_excerpt();
			} else {
				$content = $what;
			}
		}

		if ( ! $limit ) {
			if ( 'excerpt' === $what ) {
				$content = apply_filters( 'the_excerpt', $content );
			} else {
				$content = preg_replace( '/<img[^>]+./', '', $content ); // Remove images.
				$content = apply_filters( 'the_content', $content );
				$content = str_replace( ']]>', ']]&gt;', $content );
			}

			return $content;
		}

		// Remove the "more" tag from the content.
		if ( preg_match( "/<(a)[^>]*class\s*=\s*(['\"])more-link\\2[^>]*>(.*?)<\/\\1>/", $content, $matches ) ) {

			if ( strpos( $matches[0], '[button' ) ) {
				$more_link = str_replace( 'href="#"', 'href="' . get_permalink() . '"', do_shortcode( $matches[3] ) );
			} else {
				$more_link = $matches[0];
			}

			$content = str_replace( $more_link, '', $content );
			$split   = '';
		}

		if ( empty( $content ) ) {
			return '';
		}
		$content = explode( ' ', $content );

		if ( ! empty( $more_text ) && ! isset( $more_link ) ) {
			$more_link = strpos( $more_text, '<a class="btn"' ) ? $more_text : '<a class="read-more' . apply_filters( 'yit_simple_read_more_classes', ' ' ) . '" href="' . get_permalink() . '">' . $more_text . '</a>';
			$split     = '';
		} elseif ( ! isset( $more_link ) ) {
			$more_link = '';
		}

		// Splitting.
		if ( count( $content ) >= $limit ) {
			$split_content = '';
			for ( $i = 0; $i < $limit; $i ++ ) {
				$split_content .= $content[ $i ] . ' ';
			}

			$content = $split_content . $split;
		} else {
			$content = implode( ' ', $content );
		}

		// Handle unclosed tags.
		$tags = array();
		preg_match_all( '/(<([\w]+)[^>]*>)/', $content, $tags_opened, PREG_SET_ORDER ); // Get all opened tags.
		foreach ( $tags_opened as $tag ) {
			$tags[] = $tag[2];
		}

		// Get all closed tags and remove them from the opened tags. Others will be closed at the end of the content.
		preg_match_all( '/(<\/([\w]+)[^>]*>)/', $content, $tags_closed, PREG_SET_ORDER );
		foreach ( $tags_closed as $tag ) {
			unset( $tags[ array_search( $tag[2], $tags, true ) ] );
		}

		// Close the tags.
		if ( ! empty( $tags ) ) {
			foreach ( $tags as $tag ) {
				$content .= "</$tag>";
			}
		}

		if ( ! ! $in_paragraph && 'false' !== $in_paragraph ) { // String comparison kept for backward compatibility.
			$content .= $more_link;
		}
		$content = preg_replace( '/<img[^>]+./', '', $content ); // Remove images.
		$content = apply_filters( 'the_content', $content );
		$content = str_replace( ']]>', ']]&gt;', $content );
		if ( ! $in_paragraph || 'false' === $in_paragraph ) { // String comparison kept for backward compatibility.
			$content .= $more_link;
		}

		return $content;
	}
}

if ( ! function_exists( 'yit_plugin_string' ) ) {
	/**
	 * Simple echo a string, with a before and after string, only if the main string is not empty.
	 *
	 * @param string $before What there is before the main string.
	 * @param string $string The main string. If it is empty or null, the functions return null.
	 * @param string $after  What there is after the main string.
	 * @param bool   $echo   If echo or only return it.
	 *
	 * @return string The complete string, if the main string is not empty or null
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yit_plugin_string( $before = '', $string = '', $after = '', $echo = true ) {
		$html = '';

		if ( ! ! $string ) {
			$html = $before . $string . $after;
		}

		if ( $echo ) {
			echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		return $html;
	}
}

if ( ! function_exists( 'yit_plugin_decode_title' ) ) {
	/**
	 * Change some special characters to put easily html into a string
	 * E.G.
	 * string: This is [my title] with | a new line
	 * return: This is <span class="title-highlight">my title</span> with <br /> a new line
	 *
	 * @param string $title The string to convert.
	 *
	 * @return string  The html
	 * @since      1.0
	 * @deprecated 3.5
	 */
	function yit_plugin_decode_title( $title ) {
		$replaces = apply_filters( 'yit_title_special_characters', array() );

		return preg_replace( array_keys( $replaces ), array_values( $replaces ), $title );
	}
}

if ( ! function_exists( 'yit_plugin_get_attachment_id' ) ) {

	/**
	 * Return the ID of an attachment.
	 *
	 * @param string $url The attachment URL.
	 *
	 * @return int
	 * @since 2.0.0
	 */
	function yit_plugin_get_attachment_id( $url ) {
		$upload_dir = wp_upload_dir();
		$dir        = trailingslashit( $upload_dir['baseurl'] );

		if ( false === strpos( $url, $dir ) ) {
			return false;
		}

		$file = basename( $url );

		$query = array(
			'post_type'  => 'attachment',
			'fields'     => 'ids',
			// phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
			'meta_query' => array(
				array(
					'value'   => $file,
					'compare' => 'LIKE',
				),
			),
		);

		$query['meta_query'][0]['key'] = '_wp_attached_file';
		$ids                           = get_posts( $query );

		foreach ( $ids as $id ) {
			$attachment_image = wp_get_attachment_image_src( $id, 'full' );
			if ( array_shift( $attachment_image ) === $url || str_replace( 'https://', 'http://', array_shift( $attachment_image ) ) === $url ) {
				return $id;
			}
		}
		$query['meta_query'][0]['key'] = '_wp_attachment_metadata';
		$ids                           = get_posts( $query );

		foreach ( $ids as $id ) {
			$meta = wp_get_attachment_metadata( $id );
			if ( ! isset( $meta['sizes'] ) ) {
				continue;
			}

			foreach ( (array) $meta['sizes'] as $size => $values ) {
				$src = wp_get_attachment_image_src( $id, $size );
				if ( $values['file'] === $file && str_replace( 'https://', 'http://', array_shift( $src ) ) === $url ) {
					return $id;
				}
			}
		}

		return false;
	}
}

if ( ! function_exists( 'yit_enqueue_script' ) ) {
	/**
	 * Enqueues script.
	 * Registers the script if src provided (does NOT overwrite) and enqueues.
	 * IMPORTANT: used only in themes, since it needs the YIT_Asset class.
	 *
	 * @param string           $handle    Name of the script. Should be unique.
	 * @param string           $src       Full URL of the script, or path of the script relative to the WordPress root directory.
	 * @param string[]         $deps      Optional. An array of registered script handles this script depends on. Default empty array.
	 * @param string|bool|null $ver       Optional. String specifying script version number.
	 * @param bool             $in_footer Optional. Whether to enqueue the script before </body> instead of in the <head>.
	 *
	 * @author     Simone D'Amico <simone.damico@yithemes.com>
	 * @deprecated 3.5
	 */
	function yit_enqueue_script( $handle, $src, $deps = array(), $ver = false, $in_footer = true ) {
		if ( function_exists( 'YIT_Asset' ) && ! is_admin() ) {
			$enqueue = true;
			YIT_Asset()->set( 'script', $handle, compact( 'src', 'deps', 'ver', 'in_footer', 'enqueue' ) );
		} else {
			wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
		}
	}
}

if ( ! function_exists( 'yit_enqueue_style' ) ) {
	/**
	 * Enqueue Styles.
	 * IMPORTANT: used only in themes, since it needs the YIT_Asset class.
	 *
	 * @param string           $handle Name of the stylesheet. Should be unique.
	 * @param string           $src    Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
	 * @param string[]         $deps   Optional. An array of registered stylesheet handles this stylesheet depends on. Default empty array.
	 * @param string|bool|null $ver    Optional. String specifying stylesheet version number.
	 * @param string           $media  Optional. The media for which this stylesheet has been defined.
	 *
	 * @deprecated 3.5
	 */
	function yit_enqueue_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
		if ( function_exists( 'YIT_Asset' ) ) {
			$enqueue = true;
			$who     = YIT_Asset()->get_stylesheet_handle( get_stylesheet_uri(), 'style' );
			$where   = 'before';

			if ( ! $who ) {
				$who = '';
			}

			YIT_Asset()->set( 'style', $handle, compact( 'src', 'deps', 'ver', 'media', 'enqueue' ), $where, $who );
		} else {
			wp_enqueue_style( $handle, $src, $deps, $ver, $media );
		}
	}
}

if ( ! function_exists( 'yit_get_post_meta' ) ) {
	/**
	 * Retrieve the value of a metabox.
	 * This function retrieve the value of a metabox attached to a post. It return either a single value or an array.
	 *
	 * @param int    $id   Post ID.
	 * @param string $meta The meta key to retrieve.
	 *
	 * @return mixed Single value or array. Return false is the meta doesn't exists.
	 * @since    2.0.0
	 */
	function yit_get_post_meta( $id, $meta ) {
		if ( ! strpos( $meta, '[' ) ) {
			return metadata_exists( 'post', $id, $meta ) ? get_post_meta( $id, $meta, true ) : false;
		}

		$sub_meta = explode( '[', $meta );

		$meta           = get_post_meta( $id, current( $sub_meta ), true );
		$sub_meta_count = count( $sub_meta );

		for ( $i = 1; $i < $sub_meta_count; $i ++ ) {
			$current_submeta = rtrim( $sub_meta[ $i ], ']' );
			if ( ! isset( $meta[ $current_submeta ] ) ) {
				return false;
			}
			$meta = $meta[ $current_submeta ];
		}

		return $meta;
	}
}

if ( ! function_exists( 'yit_string' ) ) {
	/**
	 * Simple echo a string, with a before and after string, only if the main string is not empty.
	 *
	 * @param string $before What there is before the main string.
	 * @param string $string The main string. If it is empty or null, the functions return null.
	 * @param string $after  What there is after the main string.
	 * @param bool   $echo   If echo or only return it.
	 *
	 * @return string The complete string, if the main string is not empty or null
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yit_string( $before = '', $string = '', $after = '', $echo = true ) {
		$html = '';

		if ( ! ! $string ) {
			$html = $before . $string . $after;
		}

		if ( $echo ) {
			echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		return $html;
	}
}

if ( ! function_exists( 'yit_pagination' ) ) {
	/**
	 * Print pagination
	 *
	 * @param int|string $pages The number of pages.
	 * @param int        $range The range.
	 *
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yit_pagination( $pages = '', $range = 10 ) {
		$pages     = ! ! $pages ? absint( $pages ) : false;
		$showitems = ( $range * 2 ) + 1;

		$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : false;
		if ( false === $paged ) {
			$paged = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : false;
		}
		if ( false === $paged ) {
			$paged = 1;
		}

		$paged = absint( $paged );
		$html  = '';

		if ( false === $pages ) {
			global $wp_query;

			if ( isset( $wp_query->max_num_pages ) ) {
				$pages = $wp_query->max_num_pages;
			}

			if ( ! $pages ) {
				$pages = 1;
			}
		}

		if ( 1 !== $pages ) {
			$html .= "<div class='general-pagination clearfix'>";
			if ( $paged > 2 ) {
				$html .= sprintf( '<a class="%s" href="%s">&laquo;</a>', 'yit_pagination_first', get_pagenum_link( 1 ) );
			}
			if ( $paged > 1 ) {
				$html .= sprintf( '<a class="%s" href="%s">&lsaquo;</a>', 'yit_pagination_previous', get_pagenum_link( $paged - 1 ) );
			}

			for ( $i = 1; $i <= $pages; $i ++ ) {
				if ( 1 !== $pages && ( ! ( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) {
					$class = ( $paged === $i ) ? 'selected' : '';

					$html .= '<a href="' . esc_url( get_pagenum_link( $i ) ) . '" class="' . esc_attr( $class ) . '">' . esc_html( $i ) . '</a>';
				}
			}

			if ( $paged < $pages ) {
				$html .= sprintf( '<a class="%s" href="%s">&rsaquo;</a>', 'yit_pagination_next', esc_url( get_pagenum_link( $paged + 1 ) ) );
			}
			if ( $paged < $pages - 1 ) {
				$html .= sprintf( '<a class="%s" href="%s">&raquo;</a>', 'yit_pagination_last', esc_url( get_pagenum_link( $pages ) ) );
			}

			$html .= "</div>\n";
		}

		echo apply_filters( 'yit_pagination_html', $html ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}

if ( ! function_exists( 'yit_registered_sidebars' ) ) {
	/**
	 * Retrieve all registered sidebars
	 *
	 * @return array
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yit_registered_sidebars() {
		global $wp_registered_sidebars;

		$return = array();

		if ( empty( $wp_registered_sidebars ) ) {
			$return = array( '' => '' );
		}

		foreach ( (array) $wp_registered_sidebars as $the_ ) {
			$return[ $the_['name'] ] = $the_['name'];
		}

		ksort( $return );

		return $return;
	}
}

if ( ! function_exists( 'yit_layout_option' ) ) {
	/**
	 * Retrieve a layout option
	 * IMPORTANT: used only in themes, since it needs the YIT_Layout_Panel class.
	 *
	 * @param string $key   The key.
	 * @param bool   $id    The ID.
	 * @param string $type  The type.
	 * @param string $model The model.
	 *
	 * @return array
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yit_layout_option( $key, $id = false, $type = 'post', $model = 'post_type' ) {
		$option = '';

		if ( defined( 'YIT' ) ) {
			$option = YIT_Layout_Panel()->get_option( $key, $id, $type, $model );
		} else {
			if ( ! $id && ( is_single() || is_page() ) ) {
				global $post;
				$id = $post->ID;
			} elseif ( 'all' !== $id ) {
				$option = get_post_meta( $id, $key );
			}
		}

		return $option;
	}
}

if ( ! function_exists( 'yit_curPageURL' ) ) {
	/**
	 * Retrieve the current complete url
	 *
	 * @since 1.0
	 */
	function yit_curPageURL() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
		// phpcs:disable WordPress.Security.ValidatedSanitizedInput
		$page_url = 'http';
		if ( isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ) {
			$page_url .= 's';
		}

		$page_url .= '://';

		if ( isset( $_SERVER['SERVER_PORT'] ) && 80 !== absint( $_SERVER['SERVER_PORT'] ) ) {
			$page_url .= $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI'];
		} else {
			$page_url .= $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
		}

		return $page_url;
		// phpcs:enable
	}
}

if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
	/**
	 * Retrieve the excluded categories, set on Theme Options
	 *
	 * @param int $k Key.
	 *
	 * @return string String with all id categories excluded, separated by a comma
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yit_get_excluded_categories( $k = 1 ) {
		global $post;

		if ( ! isset( $post->ID ) ) {
			return '';
		}

		$cf_cats = get_post_meta( $post->ID, 'blog-cats', true );

		if ( ! empty( $cf_cats ) ) {
			return $cf_cats;
		}

		$cats = function_exists( 'yit_get_option' ) ? yit_get_option( 'blog-excluded-cats' ) : '';

		if ( ! is_array( $cats ) || empty( $cats ) || ! isset( $cats[ $k ] ) ) {
			return '';
		}

		$cats = array_map( 'trim', $cats[ $k ] );

		$i     = 0;
		$query = '';
		foreach ( $cats as $cat ) {
			$query .= ",-$cat";

			$i ++;
		}

		ltrim( ',', $query );

		return $query;
	}
}

if ( ! function_exists( 'yit_add_extra_theme_headers' ) ) {
	add_filter( 'extra_theme_headers', 'yit_add_extra_theme_headers' );
	/**
	 * Check the framework core version
	 *
	 * @param array $headers The headers.
	 *
	 * @return array
	 * @since  2.0.0
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	function yit_add_extra_theme_headers( $headers ) {
		$headers[] = 'Core Framework Version';

		return $headers;
	}
}

if ( ! function_exists( 'yit_check_plugin_support' ) ) {
	/**
	 * Check the framework core version
	 *
	 * @return bool
	 * @since  2.0.0
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	function yit_check_plugin_support() {
		$headers['core']   = wp_get_theme()->get( 'Core Framework Version' );
		$headers['author'] = wp_get_theme()->get( 'Author' );

		if ( ! $headers['core'] && defined( 'YIT_CORE_VERSION' ) ) {
			$headers['core'] = YIT_CORE_VERSION;
		}

		if ( ( ! empty( $headers['core'] ) && version_compare( $headers['core'], '2.0.0', '<=' ) ) || 'Your Inspiration Themes' !== $headers['author'] ) {
			return true;
		} else {
			return false;
		}
	}
}

if ( ! function_exists( 'yit_ie_version' ) ) {
	/**
	 * Retrieve IE version.
	 *
	 * @return int|float
	 * @since  1.0.0
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>, Andrea Frascaspata<andrea.frascaspata@yithemes.com>
	 */
	function yit_ie_version() {
		// phpcs:disable WordPress.Security.ValidatedSanitizedInput
		if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
			return - 1;
		}
		preg_match( '/MSIE ([0-9]+\.[0-9])/', $_SERVER['HTTP_USER_AGENT'], $reg );

		// IE 11 fix.
		if ( ! isset( $reg[1] ) ) {
			preg_match( '/rv:([0-9]+\.[0-9])/', $_SERVER['HTTP_USER_AGENT'], $reg );
			if ( ! isset( $reg[1] ) ) {
				return - 1;
			} else {
				return floatval( $reg[1] );
			}
		} else {
			return floatval( $reg[1] );
		}
		// phpcs:enable
	}
}

if ( ! function_exists( 'yit_avoid_duplicate' ) ) {
	/**
	 * Check if something exists. If yes, add a -N to the value where N is a number.
	 *
	 * @param mixed  $value The value to check.
	 * @param array  $array The array to search in.
	 * @param string $check Specifies if the check should be done on values or on keys (default: 'value').
	 *
	 * @return mixed
	 * @since  2.0.0
	 * @author Antonino Scarfì <antonino.scarfi@yithemes.com>
	 */
	function yit_avoid_duplicate( $value, $array, $check = 'value' ) {
		$match = array();

		if ( ! is_array( $array ) ) {
			return $value;
		}

		if ( ( 'value' === $check && ! in_array( $value, $array, true ) ) || ( 'key' === $check && ! isset( $array[ $value ] ) ) ) {
			return $value;
		} else {
			if ( ! preg_match( '/([a-z]+)-([0-9]+)/', $value, $match ) ) {
				$i = 2;
			} else {
				$i     = intval( $match[2] ) + 1;
				$value = $match[1];
			}

			return yit_avoid_duplicate( $value . '-' . $i, $array, $check );
		}
	}
}

if ( ! function_exists( 'yit_title_special_characters' ) ) {
	/**
	 * The chars used in yit_decode_title() and yit_encode_title()
	 * E.G.
	 * string: This is [my title] with | a new line
	 * return: This is <span class="highlight">my title</span> with <br /> a new line
	 *
	 * @param array $chars The chars.
	 *
	 * @return array
	 * @since      1.0
	 * @deprecated 3.5
	 */
	function yit_title_special_characters( $chars ) {
		return array_merge(
			$chars,
			array(
				'/[=\[](.*?)[=\]]/' => '<span class="title-highlight">$1</span>',
				'/\|/'              => '<br />',
			)
		);
	}

	add_filter( 'yit_title_special_characters', 'yit_title_special_characters' );
}

if ( ! function_exists( 'yit_decode_title' ) ) {
	/**
	 * Change some special characters to put easily html into a string
	 * E.G.
	 * string: This is [my title] with | a new line
	 * return: This is <span class="title-highlight">my title</span> with <br /> a new line
	 *
	 * @param string $title The string to convert.
	 *
	 * @return string  The html
	 * @since      1.0
	 * @deprecated 3.5
	 */
	function yit_decode_title( $title ) {
		$replaces = apply_filters( 'yit_title_special_characters', array() );

		return preg_replace( array_keys( $replaces ), array_values( $replaces ), $title );
	}
}

if ( ! function_exists( 'yit_encode_title' ) ) {
	/**
	 * Change some special characters to put easily html into a string
	 * E.G.
	 * string: This is [my title] with | a new line
	 * return: This is <span class="title-highlight">my title</span> with <br /> a new line
	 *
	 * @param string $title The string to convert.
	 *
	 * @return string  The html
	 * @since      1.0
	 * @deprecated 3.5
	 */
	function yit_encode_title( $title ) {
		$replaces = apply_filters( 'yit_title_special_characters', array() );

		return preg_replace( array_values( $replaces ), array_keys( $replaces ), $title );
	}
}

if ( ! function_exists( 'yit_remove_chars_title' ) ) {
	/**
	 * Change some special characters to put easily html into a string
	 * E.G.
	 * string: This is [my title] with | a new line
	 * return: This is <span class="title-highlight">my title</span> with <br /> a new line
	 *
	 * @param string $title The string to convert.
	 *
	 * @return string  The html
	 * @since      1.0
	 * @deprecated 3.5
	 */
	function yit_remove_chars_title( $title ) {
		$replaces = apply_filters( 'yit_title_special_characters', array() );

		return preg_replace( array_keys( $replaces ), '$1', $title );
	}
}

if ( ! function_exists( 'is_shop_installed' ) ) {
	/**
	 * Detect if there is a shop plugin installed
	 *
	 * @return bool
	 * @since  2.0.0
	 * @author Francesco Grasso <francesco.grasso@yithemes.com
	 */
	function is_shop_installed() {
		global $woocommerce;
		if ( isset( $woocommerce ) || defined( 'JIGOSHOP_VERSION' ) ) {
			return true;
		} else {
			return false;
		}
	}
}

if ( ! function_exists( 'yit_load_js_file' ) ) {
	/**
	 * Load .min.js file if WP_Debug is not defined
	 *
	 * @param string $filename The file name.
	 *
	 * @return string The file path
	 * @since  2.0.0
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	function yit_load_js_file( $filename ) {

		if ( ! ( ( defined( 'WP_DEBUG' ) && WP_DEBUG ) || ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) || isset( $_GET['yith_script_debug'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
			$filename = str_replace( '.js', '.min.js', $filename );
		}

		return $filename;
	}
}

if ( ! function_exists( 'yit_load_css_file' ) ) {
	/**
	 * Load .min.css file if WP_Debug is not defined
	 *
	 * @param string $filename The file name.
	 *
	 * @return string The file path
	 * @since  2.0.0
	 * @author Alberto Ruggiero
	 */
	function yit_load_css_file( $filename ) {

		if ( ! ( ( defined( 'WP_DEBUG' ) && WP_DEBUG ) || ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) || isset( $_GET['yith_script_debug'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
			$filename = str_replace( '.css', '.min.css', $filename );
		}

		return $filename;
	}
}

if ( ! function_exists( 'yit_wpml_register_string' ) ) {
	/**
	 * Register a string in wpml translation.
	 *
	 * @param string $context The context name.
	 * @param string $name    The name.
	 * @param string $value   The value to translate.
	 *
	 * @since  2.0.0
	 * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
	 */
	function yit_wpml_register_string( $context, $name, $value ) {
		do_action( 'wpml_register_single_string', $context, $name, $value );
	}
}

if ( ! function_exists( 'yit_wpml_string_translate' ) ) {
	/**
	 * Get a string translation
	 *
	 * @param string $context       The context name.
	 * @param string $name          The name.
	 * @param string $default_value Default value.
	 *
	 * @return string the string translated
	 * @since  2.0.0
	 * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
	 */
	function yit_wpml_string_translate( $context, $name, $default_value ) {
		return apply_filters( 'wpml_translate_single_string', $default_value, $context, $name );
	}
}

if ( ! function_exists( 'yit_wpml_object_id' ) ) {
	/**
	 * Get id of post translation in current language
	 *
	 * @param int         $element_id                 The element ID.
	 * @param string      $element_type               The element type.
	 * @param bool        $return_original_if_missing Return original if missing or not.
	 * @param null|string $language_code              The language code.
	 *
	 * @return int the translation id
	 * @since  2.0.0
	 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
	 */
	function yit_wpml_object_id( $element_id, $element_type = 'post', $return_original_if_missing = false, $language_code = null ) {
		if ( function_exists( 'wpml_object_id_filter' ) ) {
			return wpml_object_id_filter( $element_id, $element_type, $return_original_if_missing, $language_code );
		} elseif ( function_exists( 'icl_object_id' ) ) {
			return icl_object_id( $element_id, $element_type, $return_original_if_missing, $language_code );
		} else {
			return $element_id;
		}
	}
}

if ( ! function_exists( 'yit_get_language_from_locale' ) ) {
	/**
	 * Returns language name from locale code
	 *
	 * @param string $locale      Locale to search for.
	 * @param bool   $show_native Whether to return native language instead of english one.
	 *
	 * @return string Language name for passed locale; if can't find any, local itself is returned.
	 * @since  3.7.1
	 * @author Antonio La Rocca <antonio.larocca@yithemes.com>
	 */
	function yit_get_language_from_locale( $locale, $show_native = false ) {
		require_once ABSPATH . 'wp-admin/includes/translation-install.php';
		$translations = wp_get_available_translations();

		if ( in_array( $locale, array( 'en', 'en_US' ), true ) ) {
			/**
			 * English (United States) is not included in translations array
			 * We return fixed, non-localized string, as WordPress does
			 *
			 * @see {wp_dropdown_languages}
			 */
			return 'English';
		}

		if ( empty( $translations ) ) {
			return $locale;
		}

		// perfect match.
		$translation = isset( $translations[ $locale ] ) ? $translations[ $locale ] : false;

		// check for no-dialect.
		if ( 2 === strlen( $locale ) ) {

			// first check for common occurrences.
			if ( 'it' === $locale && isset( $translations['it_IT'] ) ) {
				$translation = $translations['it_IT'];
			} elseif ( 'es' === $locale && isset( $translations['es_ES'] ) ) {
				$translation = $translations['es_ES'];
			} elseif ( 'de' === $locale && isset( $translations['de_DE'] ) ) {
				$translation = $translations['de_DE'];
			} else {
				foreach ( $translations as $translation_locale => $translation_details ) {
					$no_dialect_locale = isset( $translation_details['iso'][1] ) ? $translation_details['iso'][1] : substr( $translation_locale, 0, 2 );

					if ( $locale !== $no_dialect_locale ) {
						continue;
					}

					$translation = $translation_details;

					// remove dialect from names.
					$translation['english_name'] = preg_replace( '/(.+) \(.*\)/', '$1', $translation['english_name'] );

					// we found what we were looking for; break.
					break;
				}
			}
		}

		if ( ! $translation ) {
			return $locale;
		}

		$language_name = $show_native ? $translation['native_name'] : $translation['english_name'];

		return $language_name;
	}
}

if ( ! function_exists( 'yith_get_formatted_price' ) ) {
	/**
	 * Format the price with a currency symbol.
	 *
	 * @param float $price The price.
	 * @param array $args  Arguments.
	 *
	 * @return string
	 */
	function yith_get_formatted_price( $price, $args = array() ) {
		$defaults = array(
			'ex_tax_label'       => false,
			'currency'           => '',
			'decimal_separator'  => wc_get_price_decimal_separator(),
			'thousand_separator' => wc_get_price_thousand_separator(),
			'decimals'           => wc_get_price_decimals(),
			'price_format'       => get_woocommerce_price_format(),
		);
		$args     = wp_parse_args( $args, $defaults );
		$args     = apply_filters( 'wc_price_args', $args );

		list ( $decimals, $decimal_separator, $thousand_separator, $price_format, $currency ) = yith_plugin_fw_extract( $args, 'decimals', 'decimal_separator', 'thousand_separator', 'price_format', 'currency' );

		$negative = $price < 0;
		$price    = apply_filters( 'raw_woocommerce_price', floatval( $negative ? $price * - 1 : $price ) );
		$price    = apply_filters( 'formatted_woocommerce_price', number_format( $price, $decimals, $decimal_separator, $thousand_separator ), $price, $decimals, $decimal_separator, $thousand_separator );

		if ( apply_filters( 'woocommerce_price_trim_zeros', false ) && $decimals > 0 ) {
			$price = wc_trim_zeros( $price );
		}

		$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, get_woocommerce_currency_symbol( $currency ), $price );
		$return          = $formatted_price;

		return apply_filters( 'wc_price', $return, $price, $args );
	}
}

if ( ! function_exists( 'yith_get_terms' ) ) {
	/**
	 * Get terms.
	 *
	 * @param array $args Arguments.
	 *
	 * @return array|int|WP_Error
	 * @deprecated 3.5 | use get_terms instead
	 */
	function yith_get_terms( $args ) {
		global $wp_version;
		if ( version_compare( $wp_version, '4.5', '>=' ) ) {
			$terms = get_terms( $args );
		} else {
			$terms = get_terms( $args['taxonomy'], $args );
		}

		return $terms;
	}
}

if ( ! function_exists( 'yith_field_deps_data' ) ) {
	/**
	 * Retrieve the field deps HTML data.
	 *
	 * @param array $field The field.
	 *
	 * @return string
	 */
	function yith_field_deps_data( $field ) {
		$deps_data = '';
		if ( isset( $field['deps'] ) && ( isset( $field['deps']['ids'] ) || isset( $field['deps']['id'] ) ) && ( isset( $field['deps']['values'] ) || isset( $field['deps']['value'] ) ) ) {
			$deps       = $field['deps'];
			$id         = isset( $deps['target-id'] ) ? $deps['target-id'] : $field['id'];
			$dep_id     = isset( $deps['id'] ) ? $deps['id'] : $deps['ids'];
			$dep_values = isset( $deps['value'] ) ? $deps['value'] : $deps['values'];
			$dep_type   = isset( $deps['type'] ) ? $deps['type'] : 'fadeIn';

			$deps_data = 'data-dep-target="' . esc_attr( $id ) . '" data-dep-id="' . esc_attr( $dep_id ) . '" data-dep-value="' . esc_attr( $dep_values ) . '" data-dep-type="' . esc_attr( $dep_type ) . '"';
		}

		return $deps_data;
	}
}

if ( ! function_exists( 'yith_panel_field_deps_data' ) ) {
	/**
	 * Retrieve the panel field deps HTML data.
	 *
	 * @param array                                         $field The field.
	 * @param YIT_Plugin_Panel|YIT_Plugin_Panel_WooCommerce $panel The panel object.
	 *
	 * @return string
	 */
	function yith_panel_field_deps_data( $field, $panel ) {
		$deps_data = '';
		if ( isset( $field['deps'] ) && ( isset( $field['deps']['ids'] ) || isset( $field['deps']['id'] ) ) && isset( $field['deps']['values'] ) ) {
			$dep_id               = isset( $field['deps']['id'] ) ? $field['deps']['id'] : $field['deps']['ids'];
			$field['deps']['ids'] = $panel->get_id_field( $dep_id );
			$field['deps']['id']  = $panel->get_id_field( $dep_id );
			$field['id']          = $panel->get_id_field( $field['id'] );

			$deps_data = yith_field_deps_data( $field );
		}

		return $deps_data;
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_field' ) ) {
	/**
	 * Retrieve a field.
	 *
	 * @param array $field          The field.
	 * @param false $echo           Set to true to print the field directly; false otherwise.
	 * @param bool  $show_container Set to true to show the container; false otherwise.
	 *
	 * @return false|string
	 */
	function yith_plugin_fw_get_field( $field, $echo = false, $show_container = true ) {
		if ( empty( $field['type'] ) ) {
			return '';
		}

		if ( ! isset( $field['value'] ) ) {
			$field['value'] = '';
		}

		if ( ! isset( $field['name'] ) ) {
			$field['name'] = '';
		}

		if ( ! isset( $field['custom_attributes'] ) ) {
			$field['custom_attributes'] = array();
		}

		if ( is_array( $field['custom_attributes'] ) ) {
			/**
			 * Convert custom_attributes to string to prevent issues in plugins using them as string in their templates.
			 * todo: remove after checking plugins using custom_attributes as "string" in custom fields templates and as "array" in custom fields options.
			 */
			$field['custom_attributes'] = yith_plugin_fw_html_attributes_to_string( $field['custom_attributes'] );
		}

		if ( ! isset( $field['default'] ) && isset( $field['std'] ) ) {
			$field['default'] = $field['std'];
		}

		$field_template = yith_plugin_fw_get_field_template_path( $field );

		if ( ! isset( $field['id'] ) ) {
			static $field_number = 1;

			$field['id'] = "yith-plugin-fw-field__{$field_number}";
			$field_number ++;
		}

		if ( $field_template ) {
			if ( ! $echo ) {
				ob_start();
			}

			if ( $show_container ) {
				echo '<div class="yith-plugin-fw-field-wrapper yith-plugin-fw-' . esc_attr( $field['type'] ) . '-field-wrapper">';
			}

			do_action( 'yith_plugin_fw_get_field_before', $field );
			do_action( 'yith_plugin_fw_get_field_' . $field['type'] . '_before', $field );

			include $field_template;

			do_action( 'yith_plugin_fw_get_field_after', $field );
			do_action( 'yith_plugin_fw_get_field_' . $field['type'] . '_after', $field );

			if ( $show_container ) {
				echo '</div>';
			}

			if ( ! $echo ) {
				return ob_get_clean();
			}
		}

		return '';
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_field_template_path' ) ) {
	/**
	 * Retrieve the field template path.
	 *
	 * @param array $field The field.
	 *
	 * @return false|string
	 */
	function yith_plugin_fw_get_field_template_path( $field ) {
		if ( empty( $field['type'] ) ) {
			return false;
		}

		$field_template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/fields/' . sanitize_title( $field['type'] ) . '.php';

		$field_template = apply_filters( 'yith_plugin_fw_get_field_template_path', $field_template, $field );

		return file_exists( $field_template ) ? $field_template : false;
	}
}

if ( ! function_exists( 'yith_plugin_fw_html_data_to_string' ) ) {
	/**
	 * Transform data array to HTML data.
	 *
	 * @param array $data The array of data.
	 * @param false $echo Set to true to print it directly; false otherwise.
	 *
	 * @return string
	 */
	function yith_plugin_fw_html_data_to_string( $data = array(), $echo = false ) {
		$html_data = '';

		if ( ! ! $data ) {
			if ( is_array( $data ) ) {
				foreach ( $data as $key => $value ) {
					$data_attribute = "data-{$key}";
					$data_value     = ! is_array( $value ) ? $value : implode( ',', $value );

					$html_data .= ' ' . esc_attr( $data_attribute ) . '="' . esc_attr( $data_value ) . '"';
				}
				$html_data .= ' ';
			}
		}

		if ( $echo ) {
			echo $html_data; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		return $html_data;
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_icon' ) ) {
	/**
	 * Retrieve an icon.
	 *
	 * @param string $icon The icon.
	 * @param array  $args Array of arguments (such as html_tag, class, style, filter_suffix).
	 *
	 * @return string
	 */
	function yith_plugin_fw_get_icon( $icon = '', $args = array() ) {
		return YIT_Icons()->get_icon( $icon, $args );
	}
}

if ( ! function_exists( 'yith_plugin_fw_is_true' ) ) {
	/**
	 * Is something true?
	 *
	 * @param string|bool|int $value The value to check for.
	 *
	 * @return bool
	 */
	function yith_plugin_fw_is_true( $value ) {
		return true === $value || 1 === $value || '1' === $value || 'yes' === $value || 'true' === $value;
	}
}

if ( ! function_exists( 'yith_plugin_fw_enqueue_enhanced_select' ) ) {
	/**
	 * Enqueue the enhanced select style and script.
	 */
	function yith_plugin_fw_enqueue_enhanced_select() {
		wp_enqueue_script( 'yith-enhanced-select' );
		$select2_style_to_enqueue = function_exists( 'WC' ) ? 'woocommerce_admin_styles' : 'yith-select2-no-wc';
		wp_enqueue_style( $select2_style_to_enqueue );
	}
}

if ( ! function_exists( 'yit_add_select2_fields' ) ) {
	/**
	 * Add select 2.
	 *
	 * @param array $args The arguments.
	 */
	function yit_add_select2_fields( $args = array() ) {
		$default = array(
			'type'              => 'hidden',
			'class'             => '',
			'id'                => '',
			'name'              => '',
			'data-placeholder'  => '',
			'data-allow_clear'  => false,
			'data-selected'     => '',
			'data-multiple'     => false,
			'data-action'       => '',
			'value'             => '',
			'style'             => '',
			'custom-attributes' => array(),
		);

		$args = wp_parse_args( $args, $default );

		$custom_attributes = array();
		foreach ( $args['custom-attributes'] as $attribute => $attribute_value ) {
			$custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
		}
		$custom_attributes = implode( ' ', $custom_attributes );

		if ( ! function_exists( 'WC' ) || version_compare( WC()->version, '2.7.0', '>=' ) ) {
			if ( true === $args['data-multiple'] && substr( $args['name'], - 2 ) !== '[]' ) {
				$args['name'] = $args['name'] . '[]';
			}
			$select2_template_name = 'select2.php';

		} else {
			if ( false === $args['data-multiple'] && is_array( $args['data-selected'] ) ) {
				$args['data-selected'] = current( $args['data-selected'] );
			}
			$select2_template_name = 'select2-wc-2.6.php';
		}

		$template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/fields/resources/' . $select2_template_name;
		if ( file_exists( $template ) ) {
			include $template;
		}
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_version' ) ) {
	/**
	 * Retrieve the Plugin Framework version.
	 *
	 * @return string
	 */
	function yith_plugin_fw_get_version() {
		$plugin_fw_data = get_file_data( trailingslashit( YIT_CORE_PLUGIN_PATH ) . 'init.php', array( 'Version' => 'Version' ) );

		return $plugin_fw_data['Version'];
	}
}

if ( ! function_exists( 'yith_get_premium_support_url' ) ) {
	/**
	 * Return the url for My Account > Support dashboard
	 *
	 * @return string The complete string, if the main string is not empty or null
	 * @since      2.0.0
	 * @deprecated 3.5
	 */
	function yith_get_premium_support_url() {
		return 'https://yithemes.com/my-account/support/dashboard/';
	}
}

if ( ! function_exists( 'yith_plugin_fw_is_panel' ) ) {
	/**
	 * Is this a Plugin Framework panel?
	 *
	 * @return bool
	 */
	function yith_plugin_fw_is_panel() {
		$panel_screen_id = 'yith-plugins_page';
		$screen          = function_exists( 'get_current_screen' ) ? get_current_screen() : null;

		return $screen instanceof WP_Screen && strpos( $screen->id, $panel_screen_id ) !== false;
	}
}

if ( ! function_exists( 'yith_plugin_fw_force_regenerate_plugin_update_transient' ) ) {
	/**
	 * Delete the update plugins transient
	 *
	 * @return void
	 * @since  1.0
	 * @see    update_plugins transient and pre_set_site_transient_update_plugins hooks
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	function yith_plugin_fw_force_regenerate_plugin_update_transient() {
		delete_site_transient( 'update_plugins' );
	}
}

if ( ! function_exists( 'yith_plugin_fw_is_gutenberg_enabled' ) ) {
	/**
	 * Is Gutenberg enabled?
	 *
	 * @return bool
	 */
	function yith_plugin_fw_is_gutenberg_enabled() {
		return function_exists( 'YITH_Gutenberg' );
	}
}

if ( ! function_exists( 'yith_plugin_fw_gutenberg_add_blocks' ) ) {
	/**
	 * Add new blocks to Gutenberg
	 *
	 * @param string|array $blocks Blocks to add.
	 *
	 * @return bool true if add a new blocks, false otherwise
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	function yith_plugin_fw_gutenberg_add_blocks( $blocks ) {
		$added = false;
		if ( yith_plugin_fw_is_gutenberg_enabled() ) {
			// Add blocks.
			$added = YITH_Gutenberg()->add_blocks( $blocks );

			// Add blocks arguments.
			if ( $added ) {
				YITH_Gutenberg()->set_block_args( $blocks );
			}
		}

		return $added;
	}
}

if ( ! function_exists( 'yith_plugin_fw_gutenberg_get_registered_blocks' ) ) {
	/**
	 * Return an array with the registered blocks
	 *
	 * @return array
	 */
	function yith_plugin_fw_gutenberg_get_registered_blocks() {
		return yith_plugin_fw_is_gutenberg_enabled() ? YITH_Gutenberg()->get_registered_blocks() : array();
	}
}

if ( ! function_exists( 'yith_plugin_fw_gutenberg_get_to_register_blocks' ) ) {
	/**
	 * Return an array with the blocks to register
	 *
	 * @return array
	 */
	function yith_plugin_fw_gutenberg_get_to_register_blocks() {
		return yith_plugin_fw_is_gutenberg_enabled() ? YITH_Gutenberg()->get_to_register_blocks() : array();
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_default_logo' ) ) {
	/**
	 * Get the default SVG logo
	 *
	 * @return string default logo image url
	 */
	function yith_plugin_fw_get_default_logo() {
		return YIT_CORE_PLUGIN_URL . '/assets/images/yith-icon.svg';
	}
}

if ( ! function_exists( 'yith_get_wrapper_class' ) ) {
	/**
	 * Return the wrapper class for the UI style.
	 *
	 * @return string
	 * @since 3.7.0
	 */
	function yith_get_wrapper_class() {
		return 'yith-plugin-ui';
	}
}

if ( ! function_exists( 'yith_set_wrapper_class' ) ) {
	/**
	 * Return the wrapper class for the UI style, by setting any additional class passed through the $class parameter.
	 *
	 * @param array|string $class List of additional classes to add to the UI style class.
	 *
	 * @return string
	 * @author Emanuela Castorina
	 */
	function yith_set_wrapper_class( $class = '' ) {
		$new_class = yith_get_wrapper_class();
		$class     = ( ! empty( $class ) && is_array( $class ) ) ? implode( ' ', $class ) : $class;

		return $new_class . ' ' . $class;
	}
}

if ( ! function_exists( 'yith_get_date_formats' ) ) {
	/**
	 * Get all available date format.
	 *
	 * @param bool $js JS date format or not.
	 *
	 * @return array
	 * @author     Salvatore Strano
	 * @since      3.1
	 * @deprecated 3.5 | use yith_get_date_formats() instead
	 */
	function yith_get_date_format( $js = true ) {
		return yith_get_date_formats( $js );
	}
}

if ( ! function_exists( 'yith_get_date_formats' ) ) {
	/**
	 * Get all available date formats.
	 *
	 * @param bool $js JS date format or not.
	 *
	 * @return array
	 * @since  3.5
	 */
	function yith_get_date_formats( $js = true ) {
		$date_formats = array(
			'F j, Y' => 'F j, Y',
			'Y-m-d'  => 'Y-m-d',
			'm/d/Y'  => 'm/d/Y',
			'd/m/Y'  => 'd/m/Y',
		);

		if ( $js ) {
			$date_formats = array(
				'MM d, yy' => 'F j, Y',
				'yy-mm-dd' => 'Y-m-d',
				'mm/dd/yy' => 'm/d/Y',
				'dd/mm/yy' => 'd/m/Y',
			);
		}

		return apply_filters( 'yith_plugin_fw_date_formats', $date_formats, $js );
	}
}

if ( ! function_exists( 'yith_get_time_formats' ) ) {
	/**
	 * Get all available time format.
	 *
	 * @return array
	 * @author Emanuela Castorina
	 * @since  3.5
	 */
	function yith_get_time_formats() {

		$time_formats = array(
			'h:i:s' => 'h:i:s',
			'g:i a' => 'g:i a',
			'g:i A' => 'g:i A',
			'H:i'   => 'H:i',
		);

		return apply_filters( 'yith_plugin_fw_time_formats', $time_formats );
	}
}


if ( ! function_exists( 'yith_format_toggle_title' ) ) {
	/**
	 * Replace the placeholders with the values of the element id for toggle element field.
	 *
	 * @param string $title  The title.
	 * @param array  $values The values.
	 *
	 * @return array
	 * @author Salvatore Strano
	 * @since  3.1
	 */
	function yith_format_toggle_title( $title, $values ) {
		preg_match_all( '/(?<=\%%).+?(?=\%%)/', $title, $matches );
		if ( isset( $matches[0] ) ) {
			foreach ( $matches[0] as $element_id ) {
				if ( isset( $values[ $element_id ] ) ) {
					$title = str_replace( '%%' . $element_id . '%%', $values[ $element_id ], $title );
				}
			}
		}

		return $title;
	}
}

if ( ! function_exists( 'yith_plugin_fw_load_update_and_licence_files' ) ) {
	/**
	 * Load premium file for license and update system
	 *
	 * @author Andrea Grillo <andrea.grillo@yithemes.com>
	 */
	function yith_plugin_fw_load_update_and_licence_files() {
		global $plugin_upgrade_fw_data;

		/**
		 * If the init.php was load by old plugin-fw version
		 * load the upgrade and license key from local folder
		 */
		if ( empty( $plugin_upgrade_fw_data ) ) {
			$plugin_upgrade_path = plugin_dir_path( __DIR__ ) . 'plugin-upgrade';
			if ( file_exists( $plugin_upgrade_path ) ) {
				$required_files = array(
					$plugin_upgrade_path . '/lib/yit-licence.php',
					$plugin_upgrade_path . '/lib/yit-plugin-licence.php',
					$plugin_upgrade_path . '/lib/yit-theme-licence.php',
					$plugin_upgrade_path . '/lib/yit-plugin-upgrade.php',
				);

				$plugin_upgrade_fw_data = array( '1.0' => $required_files );
			}
		}

		if ( ! empty( $plugin_upgrade_fw_data ) && is_array( $plugin_upgrade_fw_data ) ) {
			foreach ( $plugin_upgrade_fw_data as $fw_version => $core_files ) {
				foreach ( $core_files as $core_file ) {
					if ( file_exists( $core_file ) ) {
						include_once $core_file;
					}
				}
			}
		}
	}
}

if ( ! function_exists( 'yith_plugin_fw_remove_duplicate_classes' ) ) {
	/**
	 * Remove the duplicate classes from a string.
	 *
	 * @param string $classes The classes.
	 *
	 * @return string
	 * @since  3.2.2
	 * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
	 */
	function yith_plugin_fw_remove_duplicate_classes( $classes ) {
		$class_array  = explode( ' ', $classes );
		$class_unique = array_unique( array_filter( $class_array ) );
		if ( $class_unique ) {
			$classes = implode( ' ', $class_unique );
		}

		return $classes;
	}
}

if ( ! function_exists( 'yith_plugin_fw_add_requirements' ) ) {
	/**
	 * Add plugin requirements
	 *
	 * @param string $plugin_name  The name of the plugin.
	 * @param array  $requirements Array of plugin requirements.
	 */
	function yith_plugin_fw_add_requirements( $plugin_name, $requirements ) {
		if ( ! empty( $requirements ) ) {
			YITH_System_Status()->add_requirements( $plugin_name, $requirements );
		}
	}
}

if ( ! function_exists( 'yith_plugin_fw_parse_dimensions' ) ) {
	/**
	 * Parse dimensions stored through a "dimensions" field to a key-value array
	 * where the key will be equal to the dimension key
	 * and the value will be equal to the value of the dimension suffixed with the unit
	 *
	 * @param array $values The values.
	 *
	 * @return array
	 */
	function yith_plugin_fw_parse_dimensions( $values ) {
		$dimensions = array();
		if ( is_array( $values ) && isset( $values['dimensions'], $values['unit'] ) && is_array( $values['dimensions'] ) ) {
			$raw_unit = $values['unit'];
			$unit     = 'percentage' === $raw_unit ? '%' : $raw_unit;
			foreach ( $values['dimensions'] as $key => $value ) {
				$dimensions[ $key ] = $value . $unit;
			}
		}

		return $dimensions;
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_dimensions_by_option' ) ) {
	/**
	 * Retrieve a parsed array of dimensions by an option
	 *
	 * @param string     $option  The option.
	 * @param bool|array $default Default value.
	 *
	 * @return array|bool
	 */
	function yith_plugin_fw_get_dimensions_by_option( $option, $default = false ) {
		$dimensions = get_option( $option, false );

		return ! ! $dimensions ? yith_plugin_fw_parse_dimensions( $dimensions ) : $default;
	}
}

if ( ! function_exists( 'yith_plugin_fw_extract' ) ) {
	/**
	 * Extract array variables
	 *
	 * Usage example:
	 * ```
	 * list ( $type, $class, $value ) = yith_plugin_fw_extract( $field, 'type', 'class', 'value' );
	 * ```
	 *
	 * @param array  $array   The array.
	 * @param string ...$keys The keys.
	 *
	 * @return array
	 * @since 3.5
	 */
	function yith_plugin_fw_extract( $array, ...$keys ) {
		return array_map(
			function ( $key ) use ( $array ) {
				return isset( $array[ $key ] ) ? $array[ $key ] : null;
			},
			$keys
		);
	}
}


if ( ! function_exists( 'yith_plugin_fw_register_elementor_widget' ) ) {
	/**
	 * Register Elementor widget
	 *
	 * @param string $widget_name    The widget name.
	 * @param array  $widget_options The widget options.
	 *
	 * @since 3.6.0
	 */
	function yith_plugin_fw_register_elementor_widget( $widget_name, $widget_options ) {
		YITH_Elementor::instance()->register_widget( $widget_name, $widget_options );
	}
}

if ( ! function_exists( 'yith_plugin_fw_register_elementor_widgets' ) ) {
	/**
	 * Register Elementor widgets
	 *
	 * @param array $widgets            The widgets.
	 * @param bool  $map_from_gutenberg Set to true if you need to map options from Gutenberg blocks array.
	 *
	 * @since 3.6.0
	 */
	function yith_plugin_fw_register_elementor_widgets( $widgets, $map_from_gutenberg = false ) {
		foreach ( $widgets as $widget_name => $widget_options ) {
			if ( $map_from_gutenberg ) {
				$widget_options = array_merge( array( 'map_from_gutenberg' => true ), $widget_options );
			}
			yith_plugin_fw_register_elementor_widget( $widget_name, $widget_options );
		}
	}
}

if ( ! function_exists( 'yith_plugin_fw_copy_to_clipboard' ) ) {
	/**
	 * Print a field with a button to copy its content to clipboard
	 *
	 * @param string $value The text to be shown.
	 * @param array  $field The field attributes.
	 *
	 * @since 3.6.2
	 */
	function yith_plugin_fw_copy_to_clipboard( $value, $field = array() ) {
		$defaults      = array(
			'id'    => '',
			'value' => $value,
		);
		$field         = wp_parse_args( $field, $defaults );
		$field['type'] = 'copy-to-clipboard';

		// Enqueue style and script if not enqueued.
		wp_enqueue_style( 'yith-plugin-fw-fields' );
		wp_enqueue_script( 'yith-plugin-fw-fields' );

		yith_plugin_fw_get_field( $field, true, false );
	}
}

if ( ! function_exists( 'yith_plugin_fw_add_utm_data' ) ) {
	/**
	 * Add UTM data in backend url
	 *
	 * @param string $url      The url that want to track.
	 * @param string $slug     Plugin slug.
	 * @param string $campaign Campaign to track. Default: plugin-version-author-uri.
	 * @param string $source   Where the link came from. Default: wp-dashboard.
	 *
	 * @since 3.6.10
	 */
	function yith_plugin_fw_add_utm_data( $url, $slug, $campaign = 'plugin-version-author-uri', $source = 'wp-dashboard' ) {
		$url = trailingslashit( $url );
		if ( ! empty( $slug ) ) {
			$utm_track_data = array(
				'utm_source'   => $source,
				'utm_medium'   => $slug,
				'utm_campaign' => $campaign,
			);

			$url = add_query_arg( $utm_track_data, $url );
		}

		return $url;
	}
}

if ( ! function_exists( 'yith_plugin_fw_include_fw_template' ) ) {
	/**
	 * Include a FW template
	 *
	 * @param string $template The template.
	 * @param array  $args     Arguments.
	 *
	 * @since 3.7.0
	 */
	function yith_plugin_fw_include_fw_template( $template, $args = array() ) {
		$_template_path = trailingslashit( YIT_CORE_PLUGIN_TEMPLATE_PATH ) . $template;

		if ( file_exists( $_template_path ) ) {
			extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
			include $_template_path;
		}
	}
}

if ( ! function_exists( 'yith_plugin_fw_html_attributes_to_string' ) ) {
	/**
	 * Transform attributes array to HTML attributes string.
	 * If using a string, the attributes will be escaped.
	 * Prefer using arrays.
	 *
	 * @param array|string $attributes The attributes.
	 * @param bool         $echo       Set to true to print it directly; false otherwise.
	 *
	 * @return string
	 * @since 3.7.0
	 * @since 3.8.0 Escaping attributes when using strings; allow value-less attributes by setting value to null.
	 */
	function yith_plugin_fw_html_attributes_to_string( $attributes = array(), $echo = false ) {
		$html_attributes = '';

		if ( ! ! $attributes ) {
			if ( is_string( $attributes ) ) {
				$parsed_attrs = wp_kses_hair( $attributes, wp_allowed_protocols() );
				$attributes   = array();
				foreach ( $parsed_attrs as $attr ) {
					$attributes[ $attr['name'] ] = 'n' === $attr['vless'] ? $attr['value'] : null;
				}
			}

			if ( is_array( $attributes ) ) {
				$html_attributes = array();
				foreach ( $attributes as $key => $value ) {
					if ( ! is_null( $value ) ) {
						$html_attributes[] = esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
					} else {
						$html_attributes[] = esc_attr( $key );
					}
				}
				$html_attributes = implode( ' ', $html_attributes );
			}
		}

		if ( $echo ) {
			// Already escaped above.
			echo $html_attributes; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		return $html_attributes;
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_component' ) ) {
	/**
	 * Retrieve a component.
	 *
	 * @param array $component The component.
	 * @param bool  $echo      Set to true to print the component directly; false otherwise.
	 *
	 * @return false|string
	 * @since 3.7.0
	 */
	function yith_plugin_fw_get_component( $component, $echo = true ) {
		if ( ! empty( $component['type'] ) ) {
			$type     = sanitize_title( $component['type'] );
			$defaults = array(
				'id'         => '',
				'class'      => '',
				'attributes' => array(),
				'data'       => array(),
			);

			$component = wp_parse_args( $component, $defaults );

			$component_template = '/components/' . $type . '.php';

			if ( ! $echo ) {
				ob_start();
			}

			yith_plugin_fw_include_fw_template( $component_template, compact( 'component' ) );

			if ( ! $echo ) {
				return ob_get_clean();
			}
		}

		return '';
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_default_post_actions' ) ) {
	/**
	 * Retrieve the default post actions to be used in WP List tables to show action buttons.
	 *
	 * @param WP_Post|int $post                   The post.
	 * @param array       $args                   {
	 *                                            Optional. Arguments to retrieve actions.
	 *
	 * @type array        $more-menu              Array of more-menu items.
	 * @type array|bool   $more-menu-in-trash     false: the menu will be not shown in trash | true: the menu will be shown in trash | array: set specific menu for trash.
	 * @type string|false $duplicate-url          The Duplicate URL. Default: false (the duplicate action will be not shown).
	 * @type string|false $confirm-trash-message  The 'confirm trash' message. Set to false to not ask for trash confirmation.
	 * @type string|false $confirm-delete-message The 'confirm delete' message. Set to false to not ask for delete confirmation.
	 * }
	 *
	 * @return array
	 * @since 3.7.0
	 */
	function yith_plugin_fw_get_default_post_actions( $post, $args = array() ) {
		$post    = get_post( $post );
		$actions = array();
		if ( $post ) {
			$title            = _draft_or_post_title( $post );
			$post_type_object = get_post_type_object( $post->post_type );
			$can_edit_post    = current_user_can( 'edit_post', $post->ID );

			$defaults = array(
				'more-menu'              => array(),
				'more-menu-in-trash'     => false,
				'duplicate-url'          => false,
				// translators: %s is the title of the post object.
				'confirm-trash-message'  => sprintf( __( 'Are you sure you want to move "%s" to trash?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ),
				// translators: %s is the title of the post object.
				'confirm-delete-message' => sprintf( __( 'Are you sure you want to delete "%s"?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ) . '<br /><br />' . __( 'This action cannot be undone and you will not be able to recover this data.', 'yith-plugin-fw' ),
			);

			$args = wp_parse_args( $args, $defaults );

			if ( is_post_type_viewable( $post_type_object ) ) {
				if ( in_array( $post->post_status, array( 'pending', 'draft', 'future' ), true ) ) {
					if ( $can_edit_post ) {
						$preview_link = get_preview_post_link( $post );

						$actions['view'] = array(
							'type'   => 'action-button',
							'title'  => _x( 'Preview', 'Post action', 'yith-plugin-fw' ),
							'action' => 'view',
							'icon'   => 'eye',
							'url'    => $preview_link,
						);
					}
				} elseif ( 'trash' !== $post->post_status ) {
					$actions['view'] = array(
						'type'   => 'action-button',
						'title'  => _x( 'View', 'Post action', 'yith-plugin-fw' ),
						'action' => 'view',
						'icon'   => 'eye',
						'url'    => get_permalink( $post->ID ),
					);
				}
			}

			if ( $can_edit_post && 'trash' !== $post->post_status ) {
				$actions['edit'] = array(
					'type'   => 'action-button',
					'title'  => _x( 'Edit', 'Post action', 'yith-plugin-fw' ),
					'action' => 'edit',
					'url'    => get_edit_post_link( $post->ID ),
				);

				if ( $args['duplicate-url'] ) {
					$actions['duplicate'] = array(
						'type'   => 'action-button',
						'title'  => _x( 'Duplicate', 'Post action', 'yith-plugin-fw' ),
						'action' => 'duplicate',
						'icon'   => 'clone',
						'url'    => $args['duplicate-url'],
					);
				}
			}

			if ( current_user_can( 'delete_post', $post->ID ) ) {
				if ( 'trash' === $post->post_status ) {
					$actions['untrash'] = array(
						'type'   => 'action-button',
						'title'  => _x( 'Restore', 'Post action', 'yith-plugin-fw' ),
						'action' => 'untrash',
						'icon'   => 'reply',
						'url'    => wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $post->ID ) ), 'untrash-post_' . $post->ID ),
					);
				} elseif ( EMPTY_TRASH_DAYS ) {
					$actions['trash'] = array(
						'type'   => 'action-button',
						'title'  => _x( 'Trash', 'Post action', 'yith-plugin-fw' ),
						'action' => 'trash',
						'url'    => get_delete_post_link( $post->ID ),
					);
					if ( $args['confirm-trash-message'] ) {
						$actions['trash']['confirm_data'] = array(
							'title'               => __( 'Confirm trash', 'yith-plugin-fw' ),
							'message'             => $args['confirm-trash-message'],
							'cancel-button'       => __( 'No', 'yith-plugin-fw' ),
							'confirm-button'      => _x( 'Yes, move to trash', 'Trash confirmation action', 'yith-plugin-fw' ),
							'confirm-button-type' => 'delete',
						);
					}
				}
				if ( 'trash' === $post->post_status || ! EMPTY_TRASH_DAYS ) {
					$actions['delete'] = array(
						'type'   => 'action-button',
						'title'  => _x( 'Delete Permanently', 'Post action', 'yith-plugin-fw' ),
						'action' => 'delete',
						'icon'   => 'trash',
						'url'    => get_delete_post_link( $post->ID, '', true ),
					);
					if ( $args['confirm-delete-message'] ) {
						$actions['delete']['confirm_data'] = array(
							'title'               => __( 'Confirm delete', 'yith-plugin-fw' ),
							'message'             => $args['confirm-delete-message'],
							'cancel-button'       => __( 'No', 'yith-plugin-fw' ),
							'confirm-button'      => _x( 'Yes, delete', 'Delete confirmation action', 'yith-plugin-fw' ),
							'confirm-button-type' => 'delete',
						);
					}
				}
			}

			if ( $args['more-menu'] ) {
				if ( 'trash' !== $post->post_status || true === $args['more-menu-in-trash'] ) {
					$actions['more'] = array(
						'type'   => 'action-button',
						'title'  => __( 'Further actions', 'yith-plugin-fw' ),
						'action' => 'more',
						'url'    => '#',
						'menu'   => $args['more-menu'],
					);
				} elseif ( ! ! $args['more-menu-in-trash'] ) {
					$actions['more'] = array(
						'type'   => 'action-button',
						'title'  => __( 'Further actions', 'yith-plugin-fw' ),
						'action' => 'more',
						'url'    => '#',
						'menu'   => $args['more-menu-in-trash'],
					);
				}
			}
		}

		return $actions;
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_default_term_actions' ) ) {
	/**
	 * Retrieve the default term actions to be used in WP List tables to show action buttons.
	 *
	 * @param WP_Term|int $term                   The term.
	 * @param array       $args                   {
	 *                                            Optional. Arguments to retrieve actions.
	 *
	 * @type string       $taxonomy               The taxonomy. If not set, the taxonomy will be retrieved by $_REQUEST.
	 * @type string       $object-type            The object type the term is assigned to (ex: the post-type).
	 * @type array        $more-menu              Array of more-menu items.
	 * @type string|false $duplicate-url          The Duplicate URL. Default: false (the duplicate action will be not shown).
	 * @type string|false $confirm-delete-message The 'confirm delete' message. Set to false to not ask for delete confirmation.
	 * }
	 *
	 * @return array
	 * @since 3.7.0
	 */
	function yith_plugin_fw_get_default_term_actions( $term, $args = array() ) {
		if ( isset( $args['taxonomy'] ) ) {
			$taxonomy = $args['taxonomy'];
		} else {
			// phpcs:ignore WordPress.Security.NonceVerification.Recommended
			$taxonomy = isset( $_REQUEST['taxonomy'] ) ? sanitize_title( wp_unslash( $_REQUEST['taxonomy'] ) ) : false;
		}

		if ( is_numeric( $term ) ) {
			$term_id = absint( $term );
			$term    = get_term_by( 'id', $term_id, $taxonomy );
		}

		$actions = array();
		$tax     = get_taxonomy( $taxonomy );
		if ( ! empty( $term->term_id ) && $tax ) {
			$title    = $term->name;
			$uri      = wp_doing_ajax() ? wp_get_referer() : esc_url_raw( wp_unslash( isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] : '' ) );
			$defaults = array(
				'object-type'            => '',
				'more-menu'              => array(),
				'duplicate-url'          => false,
				// translators: %s is the title of the post object.
				'confirm-delete-message' => sprintf( __( 'Are you sure you want to delete "%s"?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ) . '<br /><br />' . __( 'This action cannot be undone and you will not be able to recover this data.', 'yith-plugin-fw' ),
			);

			$args = wp_parse_args( $args, $defaults );

			$edit_link = add_query_arg(
				'wp_http_referer',
				$uri,
				get_edit_term_link( $term->term_id, $taxonomy, $args['object-type'] )
			);

			if ( is_taxonomy_viewable( $tax ) ) {
				$actions['view'] = array(
					'type'   => 'action-button',
					'title'  => _x( 'View', 'Term action', 'yith-plugin-fw' ),
					'action' => 'view',
					'icon'   => 'eye',
					'url'    => get_term_link( $term ),
				);
			}

			if ( current_user_can( 'edit_term', $term->term_id ) ) {
				$actions['edit'] = array(
					'type'   => 'action-button',
					'title'  => _x( 'Edit', 'Term action', 'yith-plugin-fw' ),
					'action' => 'edit',
					'url'    => $edit_link,
				);

				if ( $args['duplicate-url'] ) {
					$actions['duplicate'] = array(
						'type'   => 'action-button',
						'title'  => _x( 'Duplicate', 'Term action', 'yith-plugin-fw' ),
						'action' => 'duplicate',
						'icon'   => 'clone',
						'url'    => $args['duplicate-url'],
					);
				}
			}

			if ( current_user_can( 'delete_term', $term->term_id ) ) {
				$delete_url = wp_nonce_url( "edit-tags.php?action=delete&amp;taxonomy=$taxonomy&amp;tag_ID=$term->term_id", 'delete-tag_' . $term->term_id );

				$actions['delete'] = array(
					'type'   => 'action-button',
					'title'  => _x( 'Delete', 'Term action', 'yith-plugin-fw' ),
					'action' => 'delete',
					'icon'   => 'trash',
					'url'    => $delete_url,
				);
				if ( $args['confirm-delete-message'] ) {
					$actions['delete']['confirm_data'] = array(
						'title'               => __( 'Confirm delete', 'yith-plugin-fw' ),
						'message'             => $args['confirm-delete-message'],
						'confirm-button'      => _x( 'Yes, delete', 'Delete confirmation action', 'yith-plugin-fw' ),
						'confirm-button-type' => 'delete',
					);
				}
			}

			if ( $args['more-menu'] ) {
				$actions['more'] = array(
					'type'   => 'action-button',
					'title'  => __( 'Further actions', 'yith-plugin-fw' ),
					'action' => 'more',
					'url'    => '#',
					'menu'   => $args['more-menu'],
				);
			}
		}

		return $actions;
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_action_buttons' ) ) {
	/**
	 * Retrieve action buttons.
	 *
	 * @param array $actions The actions.
	 * @param bool  $echo    Set to true to print the field directly; false otherwise.
	 *
	 * @return string
	 * @since 3.7.0
	 */
	function yith_plugin_fw_get_action_buttons( $actions, $echo = true ) {
		$actions_html = '';

		foreach ( $actions as $action ) {
			$action['type'] = 'action-button';

			$actions_html .= yith_plugin_fw_get_component( $action, $echo );
		}

		return $actions_html;
	}
}

if ( ! function_exists( 'yith_plugin_fw_get_post_formatted_name' ) ) {
	/**
	 * Get the formatted name for posts/products
	 *
	 * @param int|WP_Post|WC_Product $post The post ID, the post object, or the product object.
	 * @param array                  $args Arguments.
	 *
	 * @return string
	 * @since 3.7.2
	 */
	function yith_plugin_fw_get_post_formatted_name( $post, $args = array() ) {
		$defaults  = array(
			'show-id'   => false,
			'post-type' => false,
		);
		$args      = wp_parse_args( $args, $defaults );
		$post_type = $args['post-type'];
		$show_id   = $args['show-id'];

		if ( is_a( $post, 'WP_Post' ) ) {
			$post_id = $post->ID;
		} elseif ( class_exists( 'WC_Product' ) && is_a( $post, 'WC_Product' ) ) {
			$post_id = $post->get_id();
			if ( false === $post_type ) {
				$post_type = is_a( $post, 'WC_Product_Variation' ) ? 'product_variation' : 'product';
			}
		} else {
			$post_id = absint( $post );
		}

		if ( ! $post_type ) {
			$post_type = get_post_type( $post_id );
		}

		$name = null;

		switch ( $post_type ) {
			case 'product':
			case 'product_variation':
				$product = wc_get_product( $post );
				if ( $product ) {
					$name = $product->get_formatted_name();

					if ( ! $show_id ) {

						if ( $product->get_sku() ) {
							$identifier = $product->get_sku();
						} else {
							$identifier = '#' . $product->get_id();
						}

						// Use normal replacing instead of regex since the identifier could be also the product SKU.
						$name = str_replace( "({$identifier})", '', $name );
					}
				}
		}

		if ( is_null( $name ) ) {
			$name = get_the_title( $post_id );
			if ( $show_id ) {
				$name .= " (#{$post_id})";
			}
		}

		return $name;
	}
}

if ( ! function_exists( 'yith_plugin_fw_add_kses_global_attributes' ) ) {

	/**
	 * Add global attributes to a tag in the allowed HTML list.
	 *
	 * @param array $attributes An array of attributes.
	 *
	 * @return array The array of attributes with global attributes added.
	 *
	 * @since  3.8.0
	 */
	function yith_plugin_fw_add_kses_global_attributes( $attributes ) {
		$global_attributes = array(
			'aria-describedby' => true,
			'aria-details'     => true,
			'aria-label'       => true,
			'aria-labelledby'  => true,
			'aria-hidden'      => true,
			'class'            => true,
			'id'               => true,
			'style'            => true,
			'title'            => true,
			'role'             => true,
			'data-*'           => true,
		);

		if ( true === $attributes ) {
			$attributes = array();
		}

		if ( is_array( $attributes ) ) {
			return array_merge( $attributes, $global_attributes );
		}

		return $attributes;
	}
}
plugin-fw/languages/yith-plugin-fw-nl_NL.mo000064400000043422151327614500014653 0ustar00�����@A[,s �
����
"61Nh%�3�,2>
q��������	!
03>4r3�'�	"!8Z@b���
��!&(O\4e%����-�-
5@ZV��E9
�!�/�7�B$@g;�=�g"3��-���'�&�6p?��J�'Gey���	��
����d�
P[
q���#��� - M e u � � )� '� (� &(!O!n!�!�!�!�!�!�!�!�	"0�#0�#1$'G$
o$Oz$�$�$
�$�$�$%
%
+%9%F%S%e%v%�%�%�%�%�%�%�%	�%	�%�%&&
3&A&M&`&v&�&�&>�&H�&:='�x'}(l�(=�(K+)6w)�),�)	�)]�)W*^*d*v**�*�*�*�*<�*+')+(Q+z++�+�+�+�+�+ �+,2(,5[,�-"�-6�-%.+.7.D."T.$w.�.�.>�.i/+k/=�/>�/P0e0x0�0�0�0	�0
�0�0�0�0�0�01&"1?I1<�1=�10252A2P2X2
d2@o2�2�2�2
�23	!3+3B3N3^3
u34�3*�3�3�34 4,4
94D4\Y4��4^X5�6
�6�6�67(7B7b7#{7U�7�788�-8�8
�8�8d9#s9�9K�9�9:::<:K:Z:
c:q:�:�:�:�:�:;+;G;Y;
i;t;�;�;�;�;	�;�;
�;�;<&<;<L<R<X<_<e<
{<�<	�<
�<
�<�<
�<
�<��<m>�>�>�>	�>Z�>5?A?a?s?|?�?�?�?�?�?�?@@"@/@@@Z@q@~@�@	�@�@�@#�@�@	A
A#A
/A:ACA'LAAtAF�AK�A�IB��BykCJ�C\0D�D�D�D	�D`�DLESEZE
oE}E�E�E�E�EA�EF*F.F1F6FKFhFuF�F�F3�F�F8�Fq�gWa5�6R X=7{�Y��x
��4��&
��%I~���?'H�Q�V�S,��}U��E3l.p>��KeD�	����MP[]t�*��"��b���B�����w��#!|-mN�+�����$�1�u�/�k<s�d9Z�OrF@;�A)o��y:\�n�z0f���^�`�ThG��J��(i�cj_��v2�CL�8����%1$s (#%2$s &ndash; %3$s)%1$s needs %2$s enabled%1$s needs at least %2$s of available memory%1$s needs at least %2$s version:) Thanks!Action linksSettingsAdd AllAdd Images to GalleryAdd custom product tabAdd imagesAdd to galleryAn error has occurred during import. Please try again.An error has occurred, which probably means the feed is down. Try again later.Are you sure you want to delete "%s"?Are you sure you want to delete the selected items?Are you sure you want to move "%s" to trash?Are you sure you want to trash the selected items?Are you sure?Available MemoryBack to "%s"Back to the listButton labelCloseButton textCancelButton textConfirmChoose a sidebarClearClear colorClose allColor valueConfirm deleteConfirm trashContact your hosting company in order to enable it.Contact your hosting company in order to install it.Contact your hosting company in order to update it.Content of the tab. (HTML is supported)Copied!Copy CodeCopy-to-clipboard button textCopyCopy-to-clipboard messageCopied!Custom:Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$sDatabase Data SizeDatabase Free SizeDatabase Index SizeDatabase InfoDatabase imported correctly.DefaultDefined WP_CACHEDeleteDelete confirmation actionYes, deleteDelete imageDisabledDiscover all our plugins available on: %1$s and %2$sDo you want to remove the custom tab?DownloadElement deleted correctly.Element updated correctly.Elementor Widget - section title%s - OptionsEnabledExpand allExternal object cacheFor optimal functioning of our plugins, we suggest setting at least %s of available memoryFrom now on, you can find all plugin options in YITH menu. Plugin customization settings will be available as a new entry in YITH menu.From now on, you can find the option panel of YITH plugins in YITH menu. Every time one of our plugins is added, a new entry will be added to this menu. For example, after the update, plugin options (such as for YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from previous location to YITH menu.Further actionsGD LibraryHelp tab FAQ linkView all FAQs >Help tab FAQ titleLast FAQs in our Help CenterHelp tab Read Documentation linkRead the documentationHelp tab Read Documentation linkto learn from basics how it worksHelp tab Watch Videotutorials linkVideos are also available in:Help tab Watch Videotutorials linkWatch our videotutorialsHelp tab Watch Videotutorials linkWe show you some use casesHelp tab default descriptionWe want to help you to enjoy a wonderful experience with all our products.Help tab default titleThank you for purchasing %s!Help tab nameHelpHelp tab submit ticket buttonSubmit a ticketHelp tab submit ticket descriptionIf you are experiencing some technical issue ask help to our developers. Submit a ticket in our support desk and we will help you as soon as possible.Help tab submit ticket titleNeed help?Help tab view FAQs linkCheck the FAQsHelp tab view FAQs linkto find answers to your doubtsHelp tab view all video linkCheck the full <a href="%s" target="_blank">Playlist on Youtube</a> to learn more >How to install premium versionIconv ModuleIf you continue with this action, you will reset all options in this page.Image height field labelHeightImage width field labelWidthImageMagick VersionLatest news from YITH BlogLeft SidebarLeft sidebarLicenseLog FilesMultiByte StringMySQL versionN/ANameNoNo Log file available. Enable the WordPress debug by adding this in the %s file of your installationNo sidebarOPCache Save CommentsOptions SavedOutput IP AddressPHP VersionPHP error_log filePHPInfoPlugin FWLatest update released onPlugin FWView ChangelogPlugin Row MetaDocumentationPlugin Row MetaLive DemoPlugin Row MetaPremium versionPlugin Row MetaSupportPlugin SettingsPlugins ActivatedPlugins RequirementsPlugins UpgradedPosition in the "Dimensions" fieldBottomPosition in the "Dimensions" fieldLeftPosition in the "Dimensions" fieldRightPosition in the "Dimensions" fieldTopPost actionDelete PermanentlyPost actionDuplicatePost actionEditPost actionPreviewPost actionRestorePost actionTrashPost actionViewPreview:Privacy Policy ContentPaymentsPrivacy Policy ContentThis sample language includes the basics around what personal data your store may be collecting, storing and sharing, as well as who may have access to that data. Depending on what settings are enabled and which additional plugins are used, the specific information shared by your store will vary. We recommend consulting with a lawyer when deciding what information to disclose on your privacy policy.Privacy Policy ContentWhat we collect and storePrivacy Policy ContentWhat we share with othersPrivacy Policy ContentWho on our team has accessPrivacy Policy Guide TitleYITH PluginsRSS Error:Read more %1$shere%2$s or contact your hosting company in order to increase it.RemoveRemove %1$s from %2$s fileRemove AllResetReset DefaultsReset to defaultRight SidebarRight sidebarSave ChangesSave OptionsSearch CategoriesSearch CustomersSearch PostsSearch ProductSelect ColorSelect default colorSet DefaultSettingsSettings resetSettings savedSimpleXMLSite InfoSite URLSorry, import is disabled.Sorting successful.System StatusTLS VersionTerm actionDeleteTerm actionDuplicateTerm actionEditTerm actionViewThe added file is not valid.The changes you have made will be lost if you leave this page.The element you have entered already exists. Please, enter another name.The file size exceeds 8 megabytes so it must be downloadedThe system check cannot determine which %1$s version is installed because %2$s module is disabled. Ask your hosting company to enable it.The system check cannot determine which %1$s version is installed due to a connection issue between your site and our server.The system check has detected some compatibility issues on your installation.%1$sClick here%2$s to know moreThere was an error with your request; please try again later.This action cannot be undone and you will not be able to recover this data.Tooltip in the "Dimensions" fieldLink values togetherTotal Database SizeTrash confirmation actionYes, move to trashURL FOpenUpdate it to the latest version in order to benefit of all new features and security updates.UploadValueWP debug.log fileWarning!We need your supportWooCommerceWooCommerce VersionWordPress CronWordPress VersionWordPress recommends a minimum MySQL version of 5.6. See: %sWordPress requirementsYES/NO button: use MAX 4 characters!NOYES/NO button: use MAX 4 characters!YESYITHYITH Latest UpdatesYITH Plugin Framework VersionYITH PluginsYITH System InformationYes[gutenberg]: Category NameYITHhelp us by leaving a good reviewloaded by %sto keep updating and improving the plugin. Please,Project-Id-Version: YITH Framework
Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>
PO-Revision-Date: 2021-09-29 11:02:22+0000
Language: nl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
%1$s (#%2$s &ndash; %3$s)%1$s heeft nodig %2$s ingeschakeld%1$ss heeft ten minste %2$s beschikbaar geheugen nodig%1$s heeft minstens %2$s versie nodig:) Bedankt!InstellingenAllen toevoegenAfbeeldingen toevoegen aan galerijAangepaste product tabblad toevoegenVoeg images toeAan galerij toevoegenEr is een fout opgetreden tijdens importeren. Probeer opnieuw.Er is een fout opgetreden, wat waarschijnlijk betekent dat de feed niet werkt. Probeer het later opnieuw.Weet je zeker dat je "%s" wilt verwijderen?Weet je zeker dat je de geselecteerde items wilt verwijderen?Weet je zeker dat je "%s" naar de prullenbak wilt verplaatsen?Weet je zeker dat je het geselecteerde item naar de prullenbak wilt verplaatsen?Weet je het zeker?Beschikbaar geheugenTerug naar "%s"Terug naar de lijstSluitenAnnulerenBevestigenKies een sidebarWissenKleur wissenSluit allenKleurwaardeVerwijderen bevestigenVerplaatsen naar prullenbak bevestigenNeem contact op met uw hosting provider om het in te schakelen.Neem contact op met je hostingbedrijf om het te installeren.Neem contact op met uw hosting provider om het bij te werken.Inhoud van het tabblad. (HTML wordt ondersteund)Gekopieerd!Code kopiërenKopieerGekopieerd!Aangepast:Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$sDatabase Data grootteDatabase gratis grootteDatabase Index grootteDatabase InfoDatabase juist geïmporteerd.StandaardGedefinieerde WP_CACHEVerwijderenJa, verwijderenAfbeelding verwijderenUitgeschakeldOntdek al onze beschikbare plugins op: %1$s and %2$sWil je dit aangepaste tabblad verwijderen?DownloadElement juist verwijderd.Element juist geüpdatet.%s - OptiesIngeschakeldOpen allenExterne object cacheOm de plugins optimaal te laten functioneren, adviseren wij minstens %s beschikbaar geheugenVanaf nu kun je alle plugin opties vinden in het YITH Plugins menu. Plugin aanpassingen instellingen zullen beschikbaar zijn als nieuwe toegang in het YITH menu.Vanaf nu kun je het optiepaneel van YITH plugins vinden in het YITH menu. Elke keer dat een van onze plugins wordt toegevoegd, wordt er een nieuw item aan dit menu toegevoegd. Bijvoorbeeld na de update worden plugin opties (zoals voor YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, enz.) verplaatst van de vorige locatie naar het YITH menu.Verdere actiesGD LibraryBekijk alle FAQs >Laatste FAQs in ons Help CenterLees de documentatieom vanaf de basis te leren hoe het werktVideos zijn ook beschikbaar in:Bekijk onze video uitlegWe tonen je enkele gebruikscasussenWe willen je helpen om te genieten van de geweldige ervaringen met al onze producten.Bedankt voor het kopen van %s!HelpVerstuur een ticketAls je een technisch probleem ondervindt, vraag dan hulp aan onze developers. Je kunt een ticket indienen bij onze supportdesk en we helpen je zo snel mogelijk verder.Hulp nodig?Check de FAQsom je twijfels te beantwoordenBekijk de volledige <a href="%s" target="_blank">Playlist op Youtube</a> om meer te weten te komen >Hoe installeer ik de premium versieVerzendmodule inschakelenAls je doorgaat met deze actie, zal je alle opties op deze pagina resetten.HoogteBreedteImageMagick VersieLaatste nieuws van YITH BlogLinker sidebarLinker sidebarLicentieLog bestandenMultiByte StringMySQL versieN.v.tNameNeeGeen log bestand beschikbaar. WordPress debug inschakelen door dit bestand toe te voegen aan het %s bestand van je installatie Geen sidebarOPCache Opmerkingen opslaanOpties opgeslagenOutput IP AdresPHP VersiePHP error_log bestandPHPInfoLaatste update uitgebracht opBekijk wijzigingenlogboekDocumentatieLive DemoPremium versieOndersteuningPlugin instellingenPlugins geactiveerdPlugin benodigdhedenPlugins UpgradedOnderLinksRechtsBovenPermanent verijwderenDuplicerenBewerkenVoorbeeldHerstellenPrullenbakBekijkenVoorbeeld:BetalingenDit geschreven voorbeeld bevat de basis rondom welke persoonlijke gegevens je winkel mag verzamelen, bewaren en delen, en wie toegang heeft tot deze gegevens. Afhankelijk van welke instellingen zijn ingeschakeld en welke aanvullende plugins worden gebruikt, zal de informatie die wordt gedeeld door je winkel variëren. We raden aan om een advocaat te raadplegen wanneer je besluit je privacy beleid op te stellen.Wat we verzamelen en bewarenWat wij delen met anderenWie van ons team heeft toegangYITH PluginsRSS-fout:Lees %1$s hier%2$s meer, of neem contact op met uw hostingmaatschappij om het te verhogen.VerwijderenVerwijder %1$s uit %2$s bestandAllen verwijderenResettenReset Standaard instellingenResetten naar standaardRechter sidebarRechter sidebarWijzigingen opslaanOpties opslaanZoek categorieënKlanten zoekenPosts zoekenZoek ProductKleur selecterenStandaardkleur selecterenOp standaard instellenInstellingenInstellingen resettenInstellingen opgeslagenSimpleXMLSite informatieSite URLSorry, importeren is uitgeschakeld.Succesvol gesorteerd.Systeem StatusTLS VersieVerwijderenDuplicerenBewerkenBekijkenHet toegevoegde bestand is niet geldig.Als je deze pagina verlaat zullen alle wijzigingen verloren gaan.Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in.De bestandsgrootte overschrijd 8 megabytes, dus het moet worden gedownload We kunnen niet bepalen welke %1$s versie is geïnstalleerd omdat %2$s de module is uitgeschakeld. Vraag je hostingmaatschappij om het in te schakelen.De systeemcontrole kan niet bepalen welke versie van %1$s is geïnstalleerd vanwege een verbindingsprobleem tussen je site en onze server.Het systeem heeft enkele compatibiliteitsproblemen gevonden op uw installatie.%1$sklik hier%2$s om meer te weten te komenEr is een fout opgetreden met je verzoek, probeer het later opnieuw a.u.b.Deze actie kan niet ongedaan gemaakt worden en je zult deze gegevens niet kunnen herstellen.Waarden aan elkaar koppelenTotale Database grootteJa, verplaatsen naar prullenbakURL FOpenBijwerken naar de laatste versie, om te profiteren van alle nieuwe opties en veiligheidsupdates.UploadWaardeWP debug.log bestandWaarschuwing!We hebben je hulp nodigWooCommerceWooCommerce VersieWordPress CronWordPress VersieWordPress raadt een minimale MySQL versie aan van 5.6. Bekijk: %sWordPress vereistenNEEJAYITHYITH laatste updatesYITH Plugin Framework VersieYITH PluginsYITH Systeem InformatieJaYITHhelp ons door een goede beoordeling achter te latengeladen door %som de plugin te blijven bijwerken en verbeteren. A.u.b.,plugin-fw/languages/yith-plugin-fw-it_IT.mo000064400000043644151327614500014667 0ustar00�����@A[,s �
����
"61Nh%�3�,2>
q��������	!
03>4r3�'�	"!8Z@b���
��!&(O\4e%����-�-
5@ZV��E9
�!�/�7�B$@g;�=�g"3��-���'�&�6p?��J�'Gey���	��
����d�
P[
q���#��� - M e u � � )� '� (� &(!O!n!�!�!�!�!�!�!�!�	"0�#0�#1$'G$
o$Oz$�$�$
�$�$�$%
%
+%9%F%S%e%v%�%�%�%�%�%�%�%	�%	�%�%&&
3&A&M&`&v&�&�&>�&H�&:='�x'}(l�(=�(K+)6w)�),�)	�)]�)W*^*d*v**�*�*�*�*<�*+')+(Q+z++�+�+�+�+�+ �+,2(,5[,�-'�-4�-).
2.=.J.Y.'y.�.�.B�.^
/#l/6�/.�/A�/80D0X0e0v0}0�0�0�0�0�0�0�0�02
14=11r10�1�1�1�1�1�1C
2N2!g2�2
�2!�2�2�2�2�233:$3(_3�3�3"�3�3	�3
�3�3l4�{4h5�6
�6�6'�6�6%�6"767U7Pt7�7�7�7��7�8�8%�8[�8#M9q9U~9�9	�9�9�9:3:K:]:f:w:�:�:�:n�:;;/;?;V;c;v;"~;�;�;	�;�;
�;�;<<#<5<
><I<R<Z<s<{<	�<
�<�<
�<
�<	�<��<�>�>5�>�>?Z?k?s?
�?
�? �?%�?�?@@*@;@K@_@n@�@�@ �@�@�@�@	
A	A!A,.A$[A�A�A�A�A�A
�A�A?�AE#BOiB��B�ZC~�CDnDT�DEE4E	LEpVE�E�E�E�E �EF F8FGF>]F�F�F�F�F�F�F�FGGG5$GZG:iGq�gWa5�6R X=7{�Y��x
��4��&
��%I~���?'H�Q�V�S,��}U��E3l.p>��KeD�	����MP[]t�*��"��b���B�����w��#!|-mN�+�����$�1�u�/�k<s�d9Z�OrF@;�A)o��y:\�n�z0f���^�`�ThG��J��(i�cj_��v2�CL�8����%1$s (#%2$s &ndash; %3$s)%1$s needs %2$s enabled%1$s needs at least %2$s of available memory%1$s needs at least %2$s version:) Thanks!Action linksSettingsAdd AllAdd Images to GalleryAdd custom product tabAdd imagesAdd to galleryAn error has occurred during import. Please try again.An error has occurred, which probably means the feed is down. Try again later.Are you sure you want to delete "%s"?Are you sure you want to delete the selected items?Are you sure you want to move "%s" to trash?Are you sure you want to trash the selected items?Are you sure?Available MemoryBack to "%s"Back to the listButton labelCloseButton textCancelButton textConfirmChoose a sidebarClearClear colorClose allColor valueConfirm deleteConfirm trashContact your hosting company in order to enable it.Contact your hosting company in order to install it.Contact your hosting company in order to update it.Content of the tab. (HTML is supported)Copied!Copy CodeCopy-to-clipboard button textCopyCopy-to-clipboard messageCopied!Custom:Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$sDatabase Data SizeDatabase Free SizeDatabase Index SizeDatabase InfoDatabase imported correctly.DefaultDefined WP_CACHEDeleteDelete confirmation actionYes, deleteDelete imageDisabledDiscover all our plugins available on: %1$s and %2$sDo you want to remove the custom tab?DownloadElement deleted correctly.Element updated correctly.Elementor Widget - section title%s - OptionsEnabledExpand allExternal object cacheFor optimal functioning of our plugins, we suggest setting at least %s of available memoryFrom now on, you can find all plugin options in YITH menu. Plugin customization settings will be available as a new entry in YITH menu.From now on, you can find the option panel of YITH plugins in YITH menu. Every time one of our plugins is added, a new entry will be added to this menu. For example, after the update, plugin options (such as for YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from previous location to YITH menu.Further actionsGD LibraryHelp tab FAQ linkView all FAQs >Help tab FAQ titleLast FAQs in our Help CenterHelp tab Read Documentation linkRead the documentationHelp tab Read Documentation linkto learn from basics how it worksHelp tab Watch Videotutorials linkVideos are also available in:Help tab Watch Videotutorials linkWatch our videotutorialsHelp tab Watch Videotutorials linkWe show you some use casesHelp tab default descriptionWe want to help you to enjoy a wonderful experience with all our products.Help tab default titleThank you for purchasing %s!Help tab nameHelpHelp tab submit ticket buttonSubmit a ticketHelp tab submit ticket descriptionIf you are experiencing some technical issue ask help to our developers. Submit a ticket in our support desk and we will help you as soon as possible.Help tab submit ticket titleNeed help?Help tab view FAQs linkCheck the FAQsHelp tab view FAQs linkto find answers to your doubtsHelp tab view all video linkCheck the full <a href="%s" target="_blank">Playlist on Youtube</a> to learn more >How to install premium versionIconv ModuleIf you continue with this action, you will reset all options in this page.Image height field labelHeightImage width field labelWidthImageMagick VersionLatest news from YITH BlogLeft SidebarLeft sidebarLicenseLog FilesMultiByte StringMySQL versionN/ANameNoNo Log file available. Enable the WordPress debug by adding this in the %s file of your installationNo sidebarOPCache Save CommentsOptions SavedOutput IP AddressPHP VersionPHP error_log filePHPInfoPlugin FWLatest update released onPlugin FWView ChangelogPlugin Row MetaDocumentationPlugin Row MetaLive DemoPlugin Row MetaPremium versionPlugin Row MetaSupportPlugin SettingsPlugins ActivatedPlugins RequirementsPlugins UpgradedPosition in the "Dimensions" fieldBottomPosition in the "Dimensions" fieldLeftPosition in the "Dimensions" fieldRightPosition in the "Dimensions" fieldTopPost actionDelete PermanentlyPost actionDuplicatePost actionEditPost actionPreviewPost actionRestorePost actionTrashPost actionViewPreview:Privacy Policy ContentPaymentsPrivacy Policy ContentThis sample language includes the basics around what personal data your store may be collecting, storing and sharing, as well as who may have access to that data. Depending on what settings are enabled and which additional plugins are used, the specific information shared by your store will vary. We recommend consulting with a lawyer when deciding what information to disclose on your privacy policy.Privacy Policy ContentWhat we collect and storePrivacy Policy ContentWhat we share with othersPrivacy Policy ContentWho on our team has accessPrivacy Policy Guide TitleYITH PluginsRSS Error:Read more %1$shere%2$s or contact your hosting company in order to increase it.RemoveRemove %1$s from %2$s fileRemove AllResetReset DefaultsReset to defaultRight SidebarRight sidebarSave ChangesSave OptionsSearch CategoriesSearch CustomersSearch PostsSearch ProductSelect ColorSelect default colorSet DefaultSettingsSettings resetSettings savedSimpleXMLSite InfoSite URLSorry, import is disabled.Sorting successful.System StatusTLS VersionTerm actionDeleteTerm actionDuplicateTerm actionEditTerm actionViewThe added file is not valid.The changes you have made will be lost if you leave this page.The element you have entered already exists. Please, enter another name.The file size exceeds 8 megabytes so it must be downloadedThe system check cannot determine which %1$s version is installed because %2$s module is disabled. Ask your hosting company to enable it.The system check cannot determine which %1$s version is installed due to a connection issue between your site and our server.The system check has detected some compatibility issues on your installation.%1$sClick here%2$s to know moreThere was an error with your request; please try again later.This action cannot be undone and you will not be able to recover this data.Tooltip in the "Dimensions" fieldLink values togetherTotal Database SizeTrash confirmation actionYes, move to trashURL FOpenUpdate it to the latest version in order to benefit of all new features and security updates.UploadValueWP debug.log fileWarning!We need your supportWooCommerceWooCommerce VersionWordPress CronWordPress VersionWordPress recommends a minimum MySQL version of 5.6. See: %sWordPress requirementsYES/NO button: use MAX 4 characters!NOYES/NO button: use MAX 4 characters!YESYITHYITH Latest UpdatesYITH Plugin Framework VersionYITH PluginsYITH System InformationYes[gutenberg]: Category NameYITHhelp us by leaving a good reviewloaded by %sto keep updating and improving the plugin. Please,Project-Id-Version: YITH Framework
Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>
PO-Revision-Date: 2021-09-28 14:05:29+0000
Language: it
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
%1$s (#%2$s &ndash; %3$s)%1$s necessita dell'attivazione di %2$s%1$s necessita di almeno %2$s di memoria disponibile%1$s necessita almeno della versione %2$s:) Grazie!ImpostazioniAggiungi tuttiAggiungi immagini alla galleriaAggiungi scheda prodotto personalizzataAggiungi immaginiAggiungi alla galleriaSi è verificato un errore durante l'importazione. Prova di nuovo.Si è verificato un errore probabilmente causato dal feed non disponibile. Riprova più tardi.Sei sicuro di voler eliminare "%s"?Se sicuro di voler eliminare gli elementi selezionati?Sei sicuro di voler spostare "%s" nel cestino?Se sicuro di voler spostare nel cestino gli elementi selezionati?Sei sicuro?Memoria disponibileTorna a "%s"Torna all'elencoChiudiAnnullaConfermaScegli una barra lateraleRimuoviRimuovi coloreChiudi tuttiValore del coloreConferma eliminazioneConferma eliminazionePer attivarlo contatta il tuo servizio di hosting.Per installarlo contatta il tuo servizio di hosting.Contatta il tuo servizio hosting per aggiornarlo.Contenuto della scheda (codice HTML supportato).Copiato!Copia codiceCopiaCopiato!Personalizzato:Dati: %1$.2fMB | Indice: %2$.2fMB | Libero: %3$.2fMB | Motore: %4$sDimensione dati databaseDimensione spazio libero databaseDimensione indice databaseInfo databaseDatabase importato correttamente.PredefinitoDefined WP_CACHERimuoviSì, eliminaRimuovi immagineDisabilitatoScopri tutti i nostri plugin disponibili su: %1$s and %2$sVuoi rimuovere la scheda personalizzata?ScaricaElemento rimosso correttamente.Elemento aggiornato correttamente.%s - OpzioniAbilitatoEspandi tuttiExternal object cachePer il funzionamento ottimale dei nostri plugin consigliamo di impostare almeno %s della memoria disponibileD'ora in poi puoi trovare tutte le opzioni dei plugin nel menù YITH. Le impostazioni di personalizzazione saranno disponibili come una nuova voce in YITH.D'ora in poi puoi trovare il pannello opzioni dei plugin YITH nel menù YITH. Ogni volta che viene aggiunto uno dei nostri plugin comparirà una nuova voce in questo menù. Ad esempio, dopo l'aggiornamento, le opzioni del plugin (come per YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) saranno spostate dalla posizione precedente al menù YITH.Altre azioniGD LibraryVedi tutte le FAQUltime FAQ nel nostro Centro AssistenzaConsulta la documentazioneper imparare dalle basi come funzionaI video sono disponibili anche in:Guarda i nostri video tutorialTi mostriamo alcuni casi d'usoVogliamo aiutarti ad avere un'esperienza fantastica con tutti i nostri prodotti.Grazie per aver acquistato %s!HelpInvia un ticketSe stai riscontrando problemi tecnici chiedi aiuto ai nostri sviluppatori. Invia un ticket dalla nostra piattaforma di supporto e ti daremo assistenza il più presto possibile.Ti serve aiuto?Controlla le FAQper trovare le risposte ai tuoi dubbiPer saperne di più, vedi la <a href="%s" target="_blank">Playlist completa su Youtube</a>>Come installare la versione premiumIconv ModuleSe prosegui con questa azione, tutte le opzioni di questa pagina saranno reimpostate.AltezzaLarghezzaVersione di ImageMagickUltime novità dal blog YITHBarra laterale sinistraBarra laterale sinistraChiave di licenzaFile logMultiByte StringVersione MySQLN.D.NomeNoNessun file log disponibile. Abilita il debug WordPress aggiungendo questo nel file %s della tua installazioneNessuna barra lateraleOPCache Save CommentsOpzioni salvateIndirizzo IP di outputVersione PHPPHP error_log filePHPInfoUltimo aggiornamento rilasciato ilVisualizza il changelogDocumentazioneLive DemoVersione premiumAssistenzaImpostazioni pluginPlugin attivatiRequisiti pluginPlugin aggiornatiIn bassoA sinistraA destraIn altoCancella definitivamenteDuplicaModificaAnteprimaRipristinaCestinaVisualizzaAnteprima:PagamentiQuesto esempio include gli elementi di base sulla raccolta dei dati personali, la memorizzazione e la condivisione, nonché su chi è autorizzato ad accedere a tali dati. In base alle impostazioni abilitate e ai moduli di estensione aggiuntivi utilizzati, le informazioni specifiche condivise dal nostro negozio possono variare. Ti consigliamo di consultare un legale al momento di decidere quali informazioni divulgare nell'informativa sulla privacy.Cosa raccogliamo e salviamoCosa condividiamo con gli altriPersone del nostro gruppo di lavoro che hanno accessoYITH PluginsErrore RSS:Per maggiori informazioni %1$sleggi questo%2$s oppure contatta il tuo host per un upgrade.RimuoviRimuovi %1$s dal file %2$sRimuovi tuttiRipristinaRipristina impostazioni inizialiRipristina configurazione predefinitaBarra laterale destraBarra laterale destraSalva modificheSalva le opzioniCerca categorieCerca fra i clientiCerca articoliCerca un prodottoSeleziona il coloreSeleziona il colore predefinitoRipristina impostazioni inizialiImpostazioniImpostazioni azzerateImpostazioni salvateSimpleXMLInfo sitoURL del sitoCi dispiace, l'importazione è disabilitata.Ordinamento effettuato con successo.Stato del sistemaVersione TLSEliminaDuplicaModificaVisualizzaIl file aggiunto non è valido.Perderai tutti i cambiamenti effettuati se lasci questa pagina.L'elemento inserito esiste già. Per favore, inserisci un altro nome.La dimensione del file supera gli 8 megabyte ed è quindi necessario scaricarloNon ci è stato possibile determinare quale versione di %1$s è installata in quanto il modulo %2$s è disattivato. Chiedi al tuo servizio hosting di attivarlo.Non ci è stato possibile determinare quale versione di %1$s è installata a causa di un problema di connessione fra il tuo sito e il nostro server.Il controllo di sistema ha individuato delle incompatibilità con la tua installazione. %1$sVedi qui%2$s per maggiori dettagliSi è verificato un errore con la tua richiesta. Riprova più tardi.Quest'azione non può essere annullata e non sarà possibile recuperare questi dati.Collega i valoriDimensione totale databaseSì, sposta nel cestinoURL FOpenAggiorna all'ultima versione per beneficiare di tutte le nuove funzionalità e degli aggiornamenti di sicurezza.CaricaValoreWP debug.log fileAttenzione!Abbiamo bisogno del tuo sostegnoWooCommerceVersione di WooCommerceCron WordPressVersione di WordPressWordPress consiglia una versione minima 5.6 di MySQL. Vedi: %sRequisiti WordPressNOSÌYITHUltimi aggiornamenti da YITHYITH Plugin Framework VersionPlugin YITHYITH System InformationSìYITHPuoi darci una mano lasciando una recensione positivacaricato da %sper poter continuare ad aggiornare e migliorare il plugin.plugin-fw/languages/yith-plugin-fw-es_ES.po000064400000072073151327614500014656 0ustar00# Translation of YITH Framework in Spanish (Spain)
# This file is distributed under the same license as the YITH Framework package.
msgid ""
msgstr ""
"Project-Id-Version: YITH Framework\n"
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
"POT-Creation-Date: 2021-10-21 06:52:18+00:00\n"
"PO-Revision-Date: 2021-09-28 13:56:41+0000\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"

#: includes/class-yit-assets.php:146 yit-functions.php:1979
msgid "Confirm trash"
msgstr "Confirmar el traslado a la papelera"

#: includes/class-yit-assets.php:147
msgid "Are you sure you want to trash the selected items?"
msgstr ""
"¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?"

#: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
#: yit-functions.php:1981 yit-functions.php:1999
msgid "No"
msgstr "No"

#: includes/class-yit-assets.php:150 yit-functions.php:1997
#: yit-functions.php:2125
msgid "Confirm delete"
msgstr "Confirmar el borrado"

#: includes/class-yit-assets.php:151
msgid "Are you sure you want to delete the selected items?"
msgstr "¿Estás seguro de que quieres borrar los elementos seleccionados?"

#: includes/class-yit-assets.php:151 yit-functions.php:1913
#: yit-functions.php:2073
msgid ""
"This action cannot be undone and you will not be able to recover this data."
msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."

#: includes/class-yit-assets.php:164
msgid "Clear"
msgstr "Borrar"

#: includes/class-yit-assets.php:165
msgid "Clear color"
msgstr "Borrar color"

#: includes/class-yit-assets.php:166
msgid "Default"
msgstr "Predeterminado"

#: includes/class-yit-assets.php:167
msgid "Select default color"
msgstr "Seleccionar color predeterminado"

#: includes/class-yit-assets.php:168
msgid "Select Color"
msgstr "Seleccionar color"

#: includes/class-yit-assets.php:169
msgid "Color value"
msgstr "Valor del color"

#: includes/class-yit-help-desk.php:152
msgid "There was an error with your request; please try again later."
msgstr ""
"Se ha producido un error en tu solicitud; inténtalo de nuevo más tarde."

#: includes/class-yit-plugin-panel-woocommerce.php:423
msgid "The changes you have made will be lost if you leave this page."
msgstr "Los cambios que has hecho se perderán si abandonas esta página."

#: includes/class-yit-plugin-panel.php:83
msgid "Plugin Settings"
msgstr "Ajustes del plugin"

#: includes/class-yit-plugin-panel.php:84
msgid "Settings"
msgstr "Ajustes"

#: includes/class-yit-plugin-panel.php:451
#: includes/class-yit-plugin-panel.php:454
msgid "How to install premium version"
msgstr "Cómo instalar la versión premium"

#: includes/class-yit-plugin-panel.php:652
#: includes/class-yit-plugin-subpanel.php:132
msgid "Save Changes"
msgstr "Guardar cambios"

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid ""
"If you continue with this action, you will reset all options in this page."
msgstr ""
"Si continúas con esta acción, restablecerás todas las opciones en esta "
"página."

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid "Are you sure?"
msgstr "¿Estás seguro?"

#: includes/class-yit-plugin-panel.php:661
#: includes/class-yit-plugin-subpanel.php:139
msgid "Reset to default"
msgstr "Restablecer valores predeterminados"

#: includes/class-yit-plugin-panel.php:979
msgid ""
"The element you have entered already exists. Please, enter another name."
msgstr ""
"El elemento que has introducido ya existe. Por favor, introduce otro nombre."

#: includes/class-yit-plugin-panel.php:980
msgid "Settings saved"
msgstr "Ajustes guardados"

#: includes/class-yit-plugin-panel.php:981
msgid "Settings reset"
msgstr "Restablecer ajustes"

#: includes/class-yit-plugin-panel.php:982
msgid "Element deleted correctly."
msgstr "Elemento eliminado correctamente."

#: includes/class-yit-plugin-panel.php:983
#: includes/class-yit-plugin-panel.php:984
msgid "Element updated correctly."
msgstr "Elemento actualizado correctamente."

#: includes/class-yit-plugin-panel.php:985
msgid "Database imported correctly."
msgstr "Base de datos importada correctamente."

#: includes/class-yit-plugin-panel.php:986
msgid "An error has occurred during import. Please try again."
msgstr ""
"Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."

#: includes/class-yit-plugin-panel.php:987
msgid "The added file is not valid."
msgstr "El archivo añadido no es válido."

#: includes/class-yit-plugin-panel.php:988
msgid "Sorry, import is disabled."
msgstr "Lo siento, la importación está desactivada."

#: includes/class-yit-plugin-panel.php:989
msgid "Sorting successful."
msgstr "Clasificación realizada con éxito"

#: includes/class-yit-plugin-panel.php:1457
msgid "We need your support"
msgstr "Necesitamos tu apoyo"

#: includes/class-yit-plugin-panel.php:1458
msgid "to keep updating and improving the plugin. Please,"
msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"

#: includes/class-yit-plugin-panel.php:1460
msgid "help us by leaving a good review"
msgstr "ayúdanos dejando una buena valoración"

#: includes/class-yit-plugin-panel.php:1461
msgid ":) Thanks!"
msgstr ":) ¡Gracias!"

#: includes/class-yit-pointers.php:80
msgid "Plugins Activated"
msgstr "Plugins activados"

#: includes/class-yit-pointers.php:81
msgid ""
"From now on, you can find all plugin options in YITH menu. Plugin "
"customization settings will be available as a new entry in YITH menu."
msgstr ""
"Desde ahora, puedes encontrar todas las opciones de los plugins en el menú "
"YITH plugins. La personalización de los ajustes del plugins estará "
"disponible como una nueva entrada en el menú YITH plugins."

#. translators: 1. YITH site link; 2. WordPress site link.
#: includes/class-yit-pointers.php:84 includes/class-yit-pointers.php:100
msgid "Discover all our plugins available on: %1$s and %2$s"
msgstr "Descubre todos nuestros plugins disponibles en: %1$s y %2$s"

#: includes/class-yit-pointers.php:96
msgid "Plugins Upgraded"
msgstr "Plugins mejorados"

#: includes/class-yit-pointers.php:97
msgid ""
"From now on, you can find the option panel of YITH plugins in YITH menu. "
"Every time one of our plugins is added, a new entry will be added to this "
"menu. For example, after the update, plugin options (such as for YITH "
"WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from "
"previous location to YITH menu."
msgstr ""
"Desde ahora puedes encontrar la opción en el panel de Plugins de YITH en el "
"menú YITH plugins. Cada vez que uno de nuestros plugins es añadido, una "
"nueva entrada será añadida a este menú. Por ejemplo, tras la actualización, "
"las opciones de los plugins (tales como YITH WooCommerce Wishlist, YITH "
"WooCommerce Ajax Search, etc.) serán movidos de la ubicación previa a la "
"pestaña de YITH plugins."

#: includes/class-yith-dashboard.php:35
msgid "YITH Latest Updates"
msgstr "Últimas actualizaciones de YITH"

#: includes/class-yith-dashboard.php:36
msgid "Latest news from YITH Blog"
msgstr "Últimas novedades del Blog de YITH"

#: includes/class-yith-dashboard.php:56
msgid "RSS Error:"
msgstr "Error RSS:"

#: includes/class-yith-dashboard.php:63
msgid ""
"An error has occurred, which probably means the feed is down. Try again "
"later."
msgstr ""
"Ha ocurrido un error, lo que puede que signifique que el feed ha caído. "
"Inténtalo de nuevo más tarde."

#. translators: %s is the name of the post type (example Back to "Membership
#. Plans").
#: includes/class-yith-post-type-admin.php:286
msgid "Back to \"%s\""
msgstr "Volver a \"%s\""

#: includes/class-yith-post-type-admin.php:286
msgid "Back to the list"
msgstr "Volver a la lista"

#: includes/class-yith-system-status.php:110
msgid "WordPress Version"
msgstr "Versión de WordPress"

#: includes/class-yith-system-status.php:111
msgid "WooCommerce Version"
msgstr "Versión de WooCommerce"

#: includes/class-yith-system-status.php:112
msgid "Available Memory"
msgstr "Memoria disponible"

#: includes/class-yith-system-status.php:113
msgid "PHP Version"
msgstr "Versión PHP"

#: includes/class-yith-system-status.php:114
msgid "TLS Version"
msgstr "Versión TLS"

#: includes/class-yith-system-status.php:115
msgid "WordPress Cron"
msgstr "Cron de WordPress"

#: includes/class-yith-system-status.php:116
msgid "SimpleXML"
msgstr "SimpleXML"

#: includes/class-yith-system-status.php:117
msgid "MultiByte String"
msgstr "Cadena MultiByte"

#: includes/class-yith-system-status.php:118
msgid "ImageMagick Version"
msgstr "Versión ImageMagick"

#: includes/class-yith-system-status.php:119
msgid "GD Library"
msgstr "Biblioteca GD"

#: includes/class-yith-system-status.php:120
msgid "Iconv Module"
msgstr "Módulo Iconv"

#: includes/class-yith-system-status.php:121
msgid "OPCache Save Comments"
msgstr "Guardar comentarios OPCache"

#: includes/class-yith-system-status.php:122
msgid "URL FOpen"
msgstr "URL FOpen"

#: includes/class-yith-system-status.php:140
#: includes/class-yith-system-status.php:141
#: templates/sysinfo/system-information-panel.php:11
msgid "System Status"
msgstr "Estado del sistema"

#: includes/class-yith-system-status.php:183
msgid "YITH Plugins"
msgstr "YITH Plugins"

#: includes/class-yith-system-status.php:191
msgid "WooCommerce"
msgstr "WooCommerce"

#: includes/class-yith-system-status.php:342
msgid "Warning!"
msgstr "¡Atención!"

#. translators: %1$s open link tag, %2$s open link tag
#: includes/class-yith-system-status.php:346
msgid ""
"The system check has detected some compatibility issues on your installation."
"%1$sClick here%2$s to know more"
msgstr ""
"La comprobación del sistema ha detectado algunos problemas de compatibilidad "
"en tu instalación.%1$sHaz clic quí%2$s para saber más"

#: includes/class-yith-system-status.php:488
msgid "Enabled"
msgstr "Activado"

#: includes/class-yith-system-status.php:488
msgid "Disabled"
msgstr "Desactivado"

#: includes/class-yith-system-status.php:493
msgid "N/A"
msgstr "N/D"

#. translators: %1$s plugin name, %2$s requirement name
#: includes/class-yith-system-status.php:520
msgid "%1$s needs %2$s enabled"
msgstr "%1$s necesita %2$s activado"

#. translators: %1$s plugin name, %2$s required memory amount
#: includes/class-yith-system-status.php:523
msgid "%1$s needs at least %2$s of available memory"
msgstr "%1$s necesita al menos %2$s de memoria disponible"

#. translators: %1$s plugin name, %2$s version number
#: includes/class-yith-system-status.php:526
msgid "%1$s needs at least %2$s version"
msgstr "%1$s necesita al menos la versión %2$s"

#: includes/class-yith-system-status.php:550
msgid ""
"Update it to the latest version in order to benefit of all new features and "
"security updates."
msgstr ""
"Actualízalo a la última versión para beneficiarte de todas las "
"características y actualizaciones de seguridad."

#: includes/class-yith-system-status.php:554
#: includes/class-yith-system-status.php:560
msgid "Contact your hosting company in order to update it."
msgstr "Ponte en contacto con tu empresa de hosting para actualizarlo."

#: includes/class-yith-system-status.php:558
msgid "Contact your hosting company in order to install it."
msgstr "Ponte en contacto con tu empresa de hosting para instalarlo."

#. translators: %1$s code, %2$s file name
#: includes/class-yith-system-status.php:565
msgid "Remove %1$s from %2$s file"
msgstr "Eliminar %1$s desde el archivo %2$s "

#: includes/class-yith-system-status.php:573
msgid "Contact your hosting company in order to enable it."
msgstr "Contacta con tu empresa de hosting para activarlo."

#. translators: %1$s opening link tag, %2$s closing link tag
#: includes/class-yith-system-status.php:577
#: includes/class-yith-system-status.php:600
msgid ""
"Read more %1$shere%2$s or contact your hosting company in order to increase "
"it."
msgstr ""
"Lee más %1$saquí%2$s o contacta a tu empresa de hosting para incrementarlo."

#. translators: %s recommended memory amount
#: includes/class-yith-system-status.php:597
msgid ""
"For optimal functioning of our plugins, we suggest setting at least %s of "
"available memory"
msgstr ""
"Para el óptimo funcionamiento de nuestros plugins, sugerimos al menos %s de "
"memoria disponible"

#. translators: %1$s TLS label, %2$s cURL label
#: includes/class-yith-system-status.php:605
msgid ""
"The system check cannot determine which %1$s version is installed because "
"%2$s module is disabled. Ask your hosting company to enable it."
msgstr ""
"La comprobación del sistema no ha podido determinar qué versión de %1$s está "
"instalada porque el módulo %2$s está desactivado. Solicita a tu compañia de "
"hosting que lo active."

#. translators: %1$s TLS label
#: includes/class-yith-system-status.php:608
msgid ""
"The system check cannot determine which %1$s version is installed due to a "
"connection issue between your site and our server."
msgstr ""
"La comprobación del sistema no ha podido determinar qué versión de %1$s está "
"instalada debido a un error entre tu sitio y nuestro servidor."

#: templates/fields/ajax-customers.php:41
msgid "Search Customers"
msgstr "Buscar clientes"

#. translators: 1. user display name; 2. user ID; 3. user email.
#: templates/fields/ajax-customers.php:68
#: templates/fields/ajax-customers.php:79
msgid "%1$s (#%2$s &ndash; %3$s)"
msgstr "%1$s (#%2$s &ndash; %3$s)"

#: templates/fields/ajax-posts.php:41
msgid "Search Posts"
msgstr "Buscar entradas"

#: templates/fields/ajax-products.php:14
msgid "Search Product"
msgstr "Buscar producto"

#: templates/fields/ajax-terms.php:41
msgid "Search Categories"
msgstr "Buscar categorías"

#: templates/fields/customtabs.php:17
msgid "Close all"
msgstr "Cerrar todo"

#: templates/fields/customtabs.php:17
msgid "Expand all"
msgstr "Expandir todo"

#: templates/fields/customtabs.php:25 templates/fields/customtabs.php:68
msgid "Remove"
msgstr "Eliminar"

#: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
msgid "Name"
msgstr "Nombre"

#: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
msgid "Value"
msgstr "Valor"

#: templates/fields/customtabs.php:41 templates/fields/customtabs.php:82
msgid "Content of the tab. (HTML is supported)"
msgstr "Contenido de la pestaña. (Compatible con HTML)"

#: templates/fields/customtabs.php:52
msgid "Add custom product tab"
msgstr "Añadir pestaña de producto personalizada"

#: templates/fields/customtabs.php:93
msgid "Do you want to remove the custom tab?"
msgstr "¿Quieres eliminar la pestaña personalizada?"

#: templates/fields/date-format.php:65
msgid "Custom:"
msgstr "Personalizado:"

#: templates/fields/date-format.php:70
msgid "Preview:"
msgstr "Vista previa:"

#: templates/fields/icons.php:78
msgid "Set Default"
msgstr "Establecer predeterminado"

#: templates/fields/image-gallery.php:29 templates/fields/image-gallery.php:40
msgid "Delete image"
msgstr "Eliminar imagen"

#: templates/fields/image-gallery.php:37
msgid "Add Images to Gallery"
msgstr "Añadir imágenes a la Galería"

#: templates/fields/image-gallery.php:38
msgid "Add to gallery"
msgstr "Añadir a la galería"

#: templates/fields/image-gallery.php:39
msgid "Add images"
msgstr "Añadir imágenes"

#: templates/fields/image-gallery.php:41
msgid "Delete"
msgstr "Eliminar"

#: templates/fields/select-buttons.php:19
msgid "Add All"
msgstr "Añadir todo"

#: templates/fields/select-buttons.php:32
msgid "Remove All"
msgstr "Eliminar todo"

#: templates/fields/sidebars.php:20
msgid "Left sidebar"
msgstr "Barra lateral izquierda"

#: templates/fields/sidebars.php:23
msgid "Right sidebar"
msgstr "Barra lateral derecha"

#: templates/fields/sidebars.php:26 templates/fields/sidebars.php:29
msgid "No sidebar"
msgstr "Sin barra lateral"

#: templates/fields/sidebars.php:39
msgid "Left Sidebar"
msgstr "Barra lateral izquierda"

#: templates/fields/sidebars.php:41 templates/fields/sidebars.php:56
msgid "Choose a sidebar"
msgstr "Elige una barra lateral"

#: templates/fields/sidebars.php:54
msgid "Right Sidebar"
msgstr "Barra lateral derecha"

#: templates/fields/upload.php:34
#: templates/panel/woocommerce/woocommerce-upload.php:37
msgid "Upload"
msgstr "Subir"

#: templates/fields/upload.php:39
msgid "Reset"
msgstr "Restablecer"

#: templates/panel/woocommerce/woocommerce-form.php:28
#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Save Options"
msgstr "Guardar Opciones"

#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Options Saved"
msgstr "Opciones guardadas"

#: templates/panel/woocommerce/woocommerce-form.php:38
msgid "Reset Defaults"
msgstr "Restablecer valores predeterminados"

#: templates/sysinfo/system-information-panel.php:12
msgid "PHPInfo"
msgstr "Información PHP"

#: templates/sysinfo/system-information-panel.php:13
#: templates/sysinfo/tabs/error-log.php:25
msgid "Log Files"
msgstr "Archivos de registro"

#: templates/sysinfo/system-information-panel.php:22
msgid "YITH System Information"
msgstr "Información de Sistema de YITH"

#: templates/sysinfo/tabs/error-log.php:13
msgid "WP debug.log file"
msgstr "Archivo WP debug.log"

#: templates/sysinfo/tabs/error-log.php:18
msgid "PHP error_log file"
msgstr "Archivo PHP error_log"

#: templates/sysinfo/tabs/error-log.php:60
msgid "Download"
msgstr "Descargar"

#: templates/sysinfo/tabs/error-log.php:72
msgid "The file size exceeds 8 megabytes so it must be downloaded"
msgstr "El archivo excede los 8 megabytes por lo que debe ser descargado"

#. translators: %s file name.
#: templates/sysinfo/tabs/error-log.php:96
msgid ""
"No Log file available. Enable the WordPress debug by adding this in the %s "
"file of your installation"
msgstr ""
"No hay archivo de registro disponible. Activa la depuración de WordPress "
"añadiendo este código en el archivo %s de tu instalación"

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copied!"
msgstr "¡Copiado!"

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copy Code"
msgstr "Copiar código"

#: templates/sysinfo/tabs/main.php:17
msgid "Site Info"
msgstr "Información del sitio"

#: templates/sysinfo/tabs/main.php:22
msgid "Site URL"
msgstr "URL del sitio"

#: templates/sysinfo/tabs/main.php:31
msgid "Output IP Address"
msgstr "Dirección IP de salida"

#: templates/sysinfo/tabs/main.php:39
msgid "Defined WP_CACHE"
msgstr "WP_CACHE definido"

#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
msgid "Yes"
msgstr "Sí"

#: templates/sysinfo/tabs/main.php:47
msgid "External object cache"
msgstr "Caché objeto externo"

#: templates/sysinfo/tabs/main.php:55
msgid "YITH Plugin Framework Version"
msgstr "Versión del YITH Plugin Framework "

#. translators: %s is the name of the plugin that is loading the framework.
#: templates/sysinfo/tabs/main.php:64
msgid "loaded by %s"
msgstr "cargado por %s"

#: templates/sysinfo/tabs/main.php:73
msgid "Plugins Requirements"
msgstr "Requerimientos de los plugins"

#: templates/sysinfo/tabs/main.php:108
msgid "Database Info"
msgstr "Información de la base de datos"

#: templates/sysinfo/tabs/main.php:113
msgid "MySQL version"
msgstr "Versión de MySQL"

#. Translators: %s: Codex link.
#: templates/sysinfo/tabs/main.php:123
msgid "WordPress recommends a minimum MySQL version of 5.6. See: %s"
msgstr "WordPress recomienda como versión mínima para MySQL la 5.6. Ver: %s"

#: templates/sysinfo/tabs/main.php:123
msgid "WordPress requirements"
msgstr "Requerimientos de WordPress"

#: templates/sysinfo/tabs/main.php:130
msgid "Total Database Size"
msgstr "Tamaño total de la base de datos:"

#: templates/sysinfo/tabs/main.php:138
msgid "Database Data Size"
msgstr "Tamaño de los datos en la base de datos:"

#: templates/sysinfo/tabs/main.php:146
msgid "Database Index Size"
msgstr "Tamaño del índice en la base de datos:"

#: templates/sysinfo/tabs/main.php:154
msgid "Database Free Size"
msgstr "Espacio libre en la base de datos:"

#. Translators: %1$f: Table size, %2$f: Index size, %3$f: Free size, %4$s
#. Engine.
#: templates/sysinfo/tabs/main.php:168
msgid "Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$s"
msgstr "Datos: %1$.2fMB | Índice: %2$.2fMB | Libre: %3$.2fMB | Motor: %4$s"

#. translators: %s is the title of the post object.
#: yit-functions.php:1911
msgid "Are you sure you want to move \"%s\" to trash?"
msgstr "¿Estás seguro de que quieres mover \"%s\" a la papelera?"

#. translators: %s is the title of the post object.
#: yit-functions.php:1913 yit-functions.php:2073
msgid "Are you sure you want to delete \"%s\"?"
msgstr "¿Estás seguro de que quieres borrar \"%s\"?"

#: yit-functions.php:2011 yit-functions.php:2019 yit-functions.php:2136
msgid "Further actions"
msgstr "Otras acciones"

#: yit-plugin.php:205
msgid "License"
msgstr "Licencia"

#. Author of the plugin/theme
msgid "YITH"
msgstr "YITH"

#. translators: %s it the Elementor Widget title.
#: includes/builders/elementor/class-yith-elementor-widget.php:252
msgctxt "Elementor Widget - section title"
msgid "%s - Options"
msgstr "%s - Opciones"

#: includes/builders/gutenberg/class-yith-gutenberg.php:149
msgctxt "[gutenberg]: Category Name"
msgid "YITH"
msgstr "YITH"

#: includes/class-yit-assets.php:134
msgctxt "Button text"
msgid "Confirm"
msgstr "Confirmar"

#: includes/class-yit-assets.php:135
msgctxt "Button text"
msgid "Cancel"
msgstr "Cancelar"

#: includes/class-yit-assets.php:148 yit-functions.php:1982
msgctxt "Trash confirmation action"
msgid "Yes, move to trash"
msgstr "Sí, mover a la papelera"

#: includes/class-yit-assets.php:152 yit-functions.php:2000
#: yit-functions.php:2127
msgctxt "Delete confirmation action"
msgid "Yes, delete"
msgstr "Si, borrar"

#: includes/class-yit-plugin-panel.php:488
msgctxt "Help tab name"
msgid "Help"
msgstr "Ayuda"

#. translators: 1. Plugin name.
#: includes/class-yit-plugin-panel.php:798
msgctxt "Help tab default title"
msgid "Thank you for purchasing %s!"
msgstr "¡Gracias por comprar %s!"

#: includes/class-yit-plugin-panel.php:799
msgctxt "Help tab default description"
msgid ""
"We want to help you to enjoy a wonderful experience with all our products."
msgstr ""
"Queremos ayudarte a disfrutar de una experiencia maravillosa con todos "
"nuestros productos."

#: includes/class-yith-dashboard.php:96
msgctxt "Plugin FW"
msgid "View Changelog"
msgstr "Ver Registro de cambios"

#: includes/class-yith-dashboard.php:97
msgctxt "Plugin FW"
msgid "Latest update released on"
msgstr "Última actualización publicada el"

#: includes/class-yith-dashboard.php:137
msgctxt "Button label"
msgid "Close"
msgstr "Cerrar"

#: includes/privacy/class-yith-privacy.php:61
msgctxt "Privacy Policy Guide Title"
msgid "YITH Plugins"
msgstr "Plugins de YITH"

#: includes/privacy/class-yith-privacy.php:93
msgctxt "Privacy Policy Content"
msgid ""
"This sample language includes the basics around what personal data your "
"store may be collecting, storing and sharing, as well as who may have access "
"to that data. Depending on what settings are enabled and which additional "
"plugins are used, the specific information shared by your store will vary. "
"We recommend consulting with a lawyer when deciding what information to "
"disclose on your privacy policy."
msgstr ""
"Este idioma de prueba incluye la información principal sobre qué tipo de "
"información puede estar recopilando, almacenando y compartiendo tu tienda, "
"así como quién tiene acceso a esa información. Dependiendo de los ajustes "
"configurados y qué plugins adicionales sean usados, la información "
"específica compartida por tu sitio variará. Recomendamos consultar con un "
"abogado cuando decidas qué información mostrar en tu política de privacidad."

#: includes/privacy/class-yith-privacy.php:97
msgctxt "Privacy Policy Content"
msgid "What we collect and store"
msgstr "Qué recopilamos y almacenamos"

#: includes/privacy/class-yith-privacy.php:100
msgctxt "Privacy Policy Content"
msgid "Who on our team has access"
msgstr "Quién en nuestro equipo tiene acceso"

#: includes/privacy/class-yith-privacy.php:103
msgctxt "Privacy Policy Content"
msgid "What we share with others"
msgstr "Qué compartimos con otros"

#: includes/privacy/class-yith-privacy.php:106
msgctxt "Privacy Policy Content"
msgid "Payments"
msgstr "Pagos"

#: templates/fields/copy-to-clipboard.php:41
msgctxt "Copy-to-clipboard message"
msgid "Copied!"
msgstr "¡Copiado!"

#: templates/fields/copy-to-clipboard.php:45
msgctxt "Copy-to-clipboard button text"
msgid "Copy"
msgstr "Copiar"

#: templates/fields/dimensions.php:13
msgctxt "Position in the \"Dimensions\" field"
msgid "Top"
msgstr "Parte superior"

#: templates/fields/dimensions.php:14
msgctxt "Position in the \"Dimensions\" field"
msgid "Right"
msgstr "Derecha"

#: templates/fields/dimensions.php:15
msgctxt "Position in the \"Dimensions\" field"
msgid "Bottom"
msgstr "Parte inferior"

#: templates/fields/dimensions.php:16
msgctxt "Position in the \"Dimensions\" field"
msgid "Left"
msgstr "Izquierda"

#: templates/fields/dimensions.php:94
msgctxt "Tooltip in the \"Dimensions\" field"
msgid "Link values together"
msgstr "Enlazar valores juntos"

#: templates/fields/image-dimensions.php:18
msgctxt "Image width field label"
msgid "Width"
msgstr "Anchura"

#: templates/fields/image-dimensions.php:23
msgctxt "Image height field label"
msgid "Height"
msgstr "Altura"

#: templates/fields/onoff.php:28
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "YES"
msgstr "SÍ"

#: templates/fields/onoff.php:29
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "NO"
msgstr "NO"

#. translators: 1. Url to EN playlist.
#: templates/panel/help-tab.php:87
msgctxt "Help tab view all video link"
msgid ""
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
"learn more >"
msgstr ""
"Consulta la <a href=\"%s\" target=\"_blank\">Lista de reproducción en "
"Youtube</a> para saber más >"

#: templates/panel/help-tab.php:94
msgctxt "Help tab Watch Videotutorials link"
msgid "Videos are also available in:"
msgstr "Los vídeos también están disponibles en:"

#: templates/panel/help-tab.php:137
msgctxt "Help tab Watch Videotutorials link"
msgid "Watch our videotutorials"
msgstr "Vea nuestros videotutoriales"

#: templates/panel/help-tab.php:140
msgctxt "Help tab Watch Videotutorials link"
msgid "We show you some use cases"
msgstr "Te mostramos algunos ejemplos de uso"

#: templates/panel/help-tab.php:124
msgctxt "Help tab Read Documentation link"
msgid "Read the documentation"
msgstr "Lee la documentación"

#: templates/panel/help-tab.php:127
msgctxt "Help tab Read Documentation link"
msgid "to learn from basics how it works"
msgstr "para aprender desde lo más básico cómo funciona"

#: templates/panel/help-tab.php:150
msgctxt "Help tab view FAQs link"
msgid "Check the FAQs"
msgstr "Comprueba los FAQ"

#: templates/panel/help-tab.php:153
msgctxt "Help tab view FAQs link"
msgid "to find answers to your doubts"
msgstr "para encontrar respuestas a tus dudas"

#: templates/panel/help-tab.php:169
msgctxt "Help tab FAQ title"
msgid "Last FAQs in our Help Center"
msgstr "Últimos FAQs en nuestro Centro de Ayuda"

#: templates/panel/help-tab.php:183
msgctxt "Help tab FAQ link"
msgid "View all FAQs >"
msgstr "Ver todos los FAQs >"

#: templates/panel/help-tab.php:192
msgctxt "Help tab submit ticket title"
msgid "Need help?"
msgstr "¿Necesitas ayuda?"

#: templates/panel/help-tab.php:195
msgctxt "Help tab submit ticket description"
msgid ""
"If you are experiencing some technical issue ask help to our developers. "
"Submit a ticket in our support desk and we will help you as soon as possible."
msgstr ""
"Si tienes algún problema técnico, pide ayuda a nuestros desarrolladores. "
"Envía un ticket en nuestro panel de soporte y te ayudaremos lo antes posible."

#: templates/panel/help-tab.php:203
msgctxt "Help tab submit ticket button"
msgid "Submit a ticket"
msgstr "Enviar ticket"

#: yit-functions.php:1925
msgctxt "Post action"
msgid "Preview"
msgstr "Previsualizar"

#: yit-functions.php:1934
msgctxt "Post action"
msgid "View"
msgstr "Ver"

#: yit-functions.php:1945
msgctxt "Post action"
msgid "Edit"
msgstr "Editar"

#: yit-functions.php:1953
msgctxt "Post action"
msgid "Duplicate"
msgstr "Duplicar"

#: yit-functions.php:1965
msgctxt "Post action"
msgid "Restore"
msgstr "Restaurar"

#: yit-functions.php:1973
msgctxt "Post action"
msgid "Trash"
msgstr "A la papelera"

#: yit-functions.php:1990
msgctxt "Post action"
msgid "Delete Permanently"
msgstr "Borrar permanentemente"

#: yit-functions.php:2087
msgctxt "Term action"
msgid "View"
msgstr "Ver"

#: yit-functions.php:2097
msgctxt "Term action"
msgid "Edit"
msgstr "Editar"

#: yit-functions.php:2105
msgctxt "Term action"
msgid "Duplicate"
msgstr "Duplicar"

#: yit-functions.php:2118
msgctxt "Term action"
msgid "Delete"
msgstr "Borrar"

#: yit-plugin.php:84
msgctxt "Plugin Row Meta"
msgid "Live Demo"
msgstr "Demostración en vivo"

#: yit-plugin.php:88
msgctxt "Plugin Row Meta"
msgid "Documentation"
msgstr "Documentación"

#: yit-plugin.php:92
msgctxt "Plugin Row Meta"
msgid "Support"
msgstr "Soporte"

#: yit-plugin.php:96
msgctxt "Plugin Row Meta"
msgid "Premium version"
msgstr "Versión premium"

#: yit-plugin.php:201
msgctxt "Action links"
msgid "Settings"
msgstr "Ajustes"
plugin-fw/languages/yith-plugin-fw.pot000064400000055201151327614500014040 0ustar00# Copyright (C) 2021
# This file is distributed under the same license as the  package.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
"POT-Creation-Date: 2021-10-21 06:52:18+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: YITH <info@yithemes.com>\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Country: United States\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: "
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
"X-Poedit-Basepath: ../\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-Bookmarks: \n"
"X-Textdomain-Support: yes\n"
"X-Generator: grunt-wp-i18n 1.0.3\n"

#: includes/class-yit-assets.php:146 yit-functions.php:1979
msgid "Confirm trash"
msgstr ""

#: includes/class-yit-assets.php:147
msgid "Are you sure you want to trash the selected items?"
msgstr ""

#: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
#: yit-functions.php:1981 yit-functions.php:1999
msgid "No"
msgstr ""

#: includes/class-yit-assets.php:150 yit-functions.php:1997
#: yit-functions.php:2125
msgid "Confirm delete"
msgstr ""

#: includes/class-yit-assets.php:151
msgid "Are you sure you want to delete the selected items?"
msgstr ""

#: includes/class-yit-assets.php:151 yit-functions.php:1913
#: yit-functions.php:2073
msgid "This action cannot be undone and you will not be able to recover this data."
msgstr ""

#: includes/class-yit-assets.php:164
msgid "Clear"
msgstr ""

#: includes/class-yit-assets.php:165
msgid "Clear color"
msgstr ""

#: includes/class-yit-assets.php:166
msgid "Default"
msgstr ""

#: includes/class-yit-assets.php:167
msgid "Select default color"
msgstr ""

#: includes/class-yit-assets.php:168
msgid "Select Color"
msgstr ""

#: includes/class-yit-assets.php:169
msgid "Color value"
msgstr ""

#: includes/class-yit-help-desk.php:152
msgid "There was an error with your request; please try again later."
msgstr ""

#: includes/class-yit-plugin-panel-woocommerce.php:423
msgid "The changes you have made will be lost if you leave this page."
msgstr ""

#: includes/class-yit-plugin-panel.php:83
msgid "Plugin Settings"
msgstr ""

#: includes/class-yit-plugin-panel.php:84
msgid "Settings"
msgstr ""

#: includes/class-yit-plugin-panel.php:451
#: includes/class-yit-plugin-panel.php:454
msgid "How to install premium version"
msgstr ""

#: includes/class-yit-plugin-panel.php:652
#: includes/class-yit-plugin-subpanel.php:132
msgid "Save Changes"
msgstr ""

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid "If you continue with this action, you will reset all options in this page."
msgstr ""

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid "Are you sure?"
msgstr ""

#: includes/class-yit-plugin-panel.php:661
#: includes/class-yit-plugin-subpanel.php:139
msgid "Reset to default"
msgstr ""

#: includes/class-yit-plugin-panel.php:979
msgid "The element you have entered already exists. Please, enter another name."
msgstr ""

#: includes/class-yit-plugin-panel.php:980
msgid "Settings saved"
msgstr ""

#: includes/class-yit-plugin-panel.php:981
msgid "Settings reset"
msgstr ""

#: includes/class-yit-plugin-panel.php:982
msgid "Element deleted correctly."
msgstr ""

#: includes/class-yit-plugin-panel.php:983
#: includes/class-yit-plugin-panel.php:984
msgid "Element updated correctly."
msgstr ""

#: includes/class-yit-plugin-panel.php:985
msgid "Database imported correctly."
msgstr ""

#: includes/class-yit-plugin-panel.php:986
msgid "An error has occurred during import. Please try again."
msgstr ""

#: includes/class-yit-plugin-panel.php:987
msgid "The added file is not valid."
msgstr ""

#: includes/class-yit-plugin-panel.php:988
msgid "Sorry, import is disabled."
msgstr ""

#: includes/class-yit-plugin-panel.php:989
msgid "Sorting successful."
msgstr ""

#: includes/class-yit-plugin-panel.php:1457
msgid "We need your support"
msgstr ""

#: includes/class-yit-plugin-panel.php:1458
msgid "to keep updating and improving the plugin. Please,"
msgstr ""

#: includes/class-yit-plugin-panel.php:1460
msgid "help us by leaving a good review"
msgstr ""

#: includes/class-yit-plugin-panel.php:1461
msgid ":) Thanks!"
msgstr ""

#: includes/class-yit-pointers.php:80
msgid "Plugins Activated"
msgstr ""

#: includes/class-yit-pointers.php:81
msgid ""
"From now on, you can find all plugin options in YITH menu. Plugin "
"customization settings will be available as a new entry in YITH menu."
msgstr ""

#: includes/class-yit-pointers.php:84 includes/class-yit-pointers.php:100
#. translators: 1. YITH site link; 2. WordPress site link.
msgid "Discover all our plugins available on: %1$s and %2$s"
msgstr ""

#: includes/class-yit-pointers.php:96
msgid "Plugins Upgraded"
msgstr ""

#: includes/class-yit-pointers.php:97
msgid ""
"From now on, you can find the option panel of YITH plugins in YITH menu. "
"Every time one of our plugins is added, a new entry will be added to this "
"menu. For example, after the update, plugin options (such as for YITH "
"WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved "
"from previous location to YITH menu."
msgstr ""

#: includes/class-yith-dashboard.php:35
msgid "YITH Latest Updates"
msgstr ""

#: includes/class-yith-dashboard.php:36
msgid "Latest news from YITH Blog"
msgstr ""

#: includes/class-yith-dashboard.php:56
msgid "RSS Error:"
msgstr ""

#: includes/class-yith-dashboard.php:63
msgid ""
"An error has occurred, which probably means the feed is down. Try again "
"later."
msgstr ""

#: includes/class-yith-post-type-admin.php:286
#. translators: %s is the name of the post type (example Back to "Membership
#. Plans").
msgid "Back to \"%s\""
msgstr ""

#: includes/class-yith-post-type-admin.php:286
msgid "Back to the list"
msgstr ""

#: includes/class-yith-system-status.php:110
msgid "WordPress Version"
msgstr ""

#: includes/class-yith-system-status.php:111
msgid "WooCommerce Version"
msgstr ""

#: includes/class-yith-system-status.php:112
msgid "Available Memory"
msgstr ""

#: includes/class-yith-system-status.php:113
msgid "PHP Version"
msgstr ""

#: includes/class-yith-system-status.php:114
msgid "TLS Version"
msgstr ""

#: includes/class-yith-system-status.php:115
msgid "WordPress Cron"
msgstr ""

#: includes/class-yith-system-status.php:116
msgid "SimpleXML"
msgstr ""

#: includes/class-yith-system-status.php:117
msgid "MultiByte String"
msgstr ""

#: includes/class-yith-system-status.php:118
msgid "ImageMagick Version"
msgstr ""

#: includes/class-yith-system-status.php:119
msgid "GD Library"
msgstr ""

#: includes/class-yith-system-status.php:120
msgid "Iconv Module"
msgstr ""

#: includes/class-yith-system-status.php:121
msgid "OPCache Save Comments"
msgstr ""

#: includes/class-yith-system-status.php:122
msgid "URL FOpen"
msgstr ""

#: includes/class-yith-system-status.php:140
#: includes/class-yith-system-status.php:141
#: templates/sysinfo/system-information-panel.php:11
msgid "System Status"
msgstr ""

#: includes/class-yith-system-status.php:183
msgid "YITH Plugins"
msgstr ""

#: includes/class-yith-system-status.php:191
msgid "WooCommerce"
msgstr ""

#: includes/class-yith-system-status.php:342
msgid "Warning!"
msgstr ""

#: includes/class-yith-system-status.php:346
#. translators: %1$s open link tag, %2$s open link tag
msgid ""
"The system check has detected some compatibility issues on your "
"installation.%1$sClick here%2$s to know more"
msgstr ""

#: includes/class-yith-system-status.php:488
msgid "Enabled"
msgstr ""

#: includes/class-yith-system-status.php:488
msgid "Disabled"
msgstr ""

#: includes/class-yith-system-status.php:493
msgid "N/A"
msgstr ""

#: includes/class-yith-system-status.php:520
#. translators: %1$s plugin name, %2$s requirement name
msgid "%1$s needs %2$s enabled"
msgstr ""

#: includes/class-yith-system-status.php:523
#. translators: %1$s plugin name, %2$s required memory amount
msgid "%1$s needs at least %2$s of available memory"
msgstr ""

#: includes/class-yith-system-status.php:526
#. translators: %1$s plugin name, %2$s version number
msgid "%1$s needs at least %2$s version"
msgstr ""

#: includes/class-yith-system-status.php:550
msgid ""
"Update it to the latest version in order to benefit of all new features and "
"security updates."
msgstr ""

#: includes/class-yith-system-status.php:554
#: includes/class-yith-system-status.php:560
msgid "Contact your hosting company in order to update it."
msgstr ""

#: includes/class-yith-system-status.php:558
msgid "Contact your hosting company in order to install it."
msgstr ""

#: includes/class-yith-system-status.php:565
#. translators: %1$s code, %2$s file name
msgid "Remove %1$s from %2$s file"
msgstr ""

#: includes/class-yith-system-status.php:573
msgid "Contact your hosting company in order to enable it."
msgstr ""

#: includes/class-yith-system-status.php:577
#: includes/class-yith-system-status.php:600
#. translators: %1$s opening link tag, %2$s closing link tag
msgid ""
"Read more %1$shere%2$s or contact your hosting company in order to increase "
"it."
msgstr ""

#: includes/class-yith-system-status.php:597
#. translators: %s recommended memory amount
msgid ""
"For optimal functioning of our plugins, we suggest setting at least %s of "
"available memory"
msgstr ""

#: includes/class-yith-system-status.php:605
#. translators: %1$s TLS label, %2$s cURL label
msgid ""
"The system check cannot determine which %1$s version is installed because "
"%2$s module is disabled. Ask your hosting company to enable it."
msgstr ""

#: includes/class-yith-system-status.php:608
#. translators: %1$s TLS label
msgid ""
"The system check cannot determine which %1$s version is installed due to a "
"connection issue between your site and our server."
msgstr ""

#: templates/fields/ajax-customers.php:41
msgid "Search Customers"
msgstr ""

#: templates/fields/ajax-customers.php:68
#: templates/fields/ajax-customers.php:79
#. translators: 1. user display name; 2. user ID; 3. user email.
msgid "%1$s (#%2$s &ndash; %3$s)"
msgstr ""

#: templates/fields/ajax-posts.php:41
msgid "Search Posts"
msgstr ""

#: templates/fields/ajax-products.php:14
msgid "Search Product"
msgstr ""

#: templates/fields/ajax-terms.php:41
msgid "Search Categories"
msgstr ""

#: templates/fields/customtabs.php:17
msgid "Close all"
msgstr ""

#: templates/fields/customtabs.php:17
msgid "Expand all"
msgstr ""

#: templates/fields/customtabs.php:25 templates/fields/customtabs.php:68
msgid "Remove"
msgstr ""

#: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
msgid "Name"
msgstr ""

#: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
msgid "Value"
msgstr ""

#: templates/fields/customtabs.php:41 templates/fields/customtabs.php:82
msgid "Content of the tab. (HTML is supported)"
msgstr ""

#: templates/fields/customtabs.php:52
msgid "Add custom product tab"
msgstr ""

#: templates/fields/customtabs.php:93
msgid "Do you want to remove the custom tab?"
msgstr ""

#: templates/fields/date-format.php:65
msgid "Custom:"
msgstr ""

#: templates/fields/date-format.php:70
msgid "Preview:"
msgstr ""

#: templates/fields/icons.php:78
msgid "Set Default"
msgstr ""

#: templates/fields/image-gallery.php:29 templates/fields/image-gallery.php:40
msgid "Delete image"
msgstr ""

#: templates/fields/image-gallery.php:37
msgid "Add Images to Gallery"
msgstr ""

#: templates/fields/image-gallery.php:38
msgid "Add to gallery"
msgstr ""

#: templates/fields/image-gallery.php:39
msgid "Add images"
msgstr ""

#: templates/fields/image-gallery.php:41
msgid "Delete"
msgstr ""

#: templates/fields/select-buttons.php:19
msgid "Add All"
msgstr ""

#: templates/fields/select-buttons.php:32
msgid "Remove All"
msgstr ""

#: templates/fields/sidebars.php:20
msgid "Left sidebar"
msgstr ""

#: templates/fields/sidebars.php:23
msgid "Right sidebar"
msgstr ""

#: templates/fields/sidebars.php:26 templates/fields/sidebars.php:29
msgid "No sidebar"
msgstr ""

#: templates/fields/sidebars.php:39
msgid "Left Sidebar"
msgstr ""

#: templates/fields/sidebars.php:41 templates/fields/sidebars.php:56
msgid "Choose a sidebar"
msgstr ""

#: templates/fields/sidebars.php:54
msgid "Right Sidebar"
msgstr ""

#: templates/fields/upload.php:34
#: templates/panel/woocommerce/woocommerce-upload.php:37
msgid "Upload"
msgstr ""

#: templates/fields/upload.php:39
msgid "Reset"
msgstr ""

#: templates/panel/woocommerce/woocommerce-form.php:28
#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Save Options"
msgstr ""

#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Options Saved"
msgstr ""

#: templates/panel/woocommerce/woocommerce-form.php:38
msgid "Reset Defaults"
msgstr ""

#: templates/sysinfo/system-information-panel.php:12
msgid "PHPInfo"
msgstr ""

#: templates/sysinfo/system-information-panel.php:13
#: templates/sysinfo/tabs/error-log.php:25
msgid "Log Files"
msgstr ""

#: templates/sysinfo/system-information-panel.php:22
msgid "YITH System Information"
msgstr ""

#: templates/sysinfo/tabs/error-log.php:13
msgid "WP debug.log file"
msgstr ""

#: templates/sysinfo/tabs/error-log.php:18
msgid "PHP error_log file"
msgstr ""

#: templates/sysinfo/tabs/error-log.php:60
msgid "Download"
msgstr ""

#: templates/sysinfo/tabs/error-log.php:72
msgid "The file size exceeds 8 megabytes so it must be downloaded"
msgstr ""

#: templates/sysinfo/tabs/error-log.php:96
#. translators: %s file name.
msgid ""
"No Log file available. Enable the WordPress debug by adding this in the %s "
"file of your installation"
msgstr ""

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copied!"
msgstr ""

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copy Code"
msgstr ""

#: templates/sysinfo/tabs/main.php:17
msgid "Site Info"
msgstr ""

#: templates/sysinfo/tabs/main.php:22
msgid "Site URL"
msgstr ""

#: templates/sysinfo/tabs/main.php:31
msgid "Output IP Address"
msgstr ""

#: templates/sysinfo/tabs/main.php:39
msgid "Defined WP_CACHE"
msgstr ""

#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
msgid "Yes"
msgstr ""

#: templates/sysinfo/tabs/main.php:47
msgid "External object cache"
msgstr ""

#: templates/sysinfo/tabs/main.php:55
msgid "YITH Plugin Framework Version"
msgstr ""

#: templates/sysinfo/tabs/main.php:64
#. translators: %s is the name of the plugin that is loading the framework.
msgid "loaded by %s"
msgstr ""

#: templates/sysinfo/tabs/main.php:73
msgid "Plugins Requirements"
msgstr ""

#: templates/sysinfo/tabs/main.php:108
msgid "Database Info"
msgstr ""

#: templates/sysinfo/tabs/main.php:113
msgid "MySQL version"
msgstr ""

#: templates/sysinfo/tabs/main.php:123
#. Translators: %s: Codex link.
msgid "WordPress recommends a minimum MySQL version of 5.6. See: %s"
msgstr ""

#: templates/sysinfo/tabs/main.php:123
msgid "WordPress requirements"
msgstr ""

#: templates/sysinfo/tabs/main.php:130
msgid "Total Database Size"
msgstr ""

#: templates/sysinfo/tabs/main.php:138
msgid "Database Data Size"
msgstr ""

#: templates/sysinfo/tabs/main.php:146
msgid "Database Index Size"
msgstr ""

#: templates/sysinfo/tabs/main.php:154
msgid "Database Free Size"
msgstr ""

#: templates/sysinfo/tabs/main.php:168
#. Translators: %1$f: Table size, %2$f: Index size, %3$f: Free size, %4$s
#. Engine.
msgid "Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$s"
msgstr ""

#: yit-functions.php:1911
#. translators: %s is the title of the post object.
msgid "Are you sure you want to move \"%s\" to trash?"
msgstr ""

#: yit-functions.php:1913 yit-functions.php:2073
#. translators: %s is the title of the post object.
msgid "Are you sure you want to delete \"%s\"?"
msgstr ""

#: yit-functions.php:2011 yit-functions.php:2019 yit-functions.php:2136
msgid "Further actions"
msgstr ""

#: yit-plugin.php:205
msgid "License"
msgstr ""

#. Author of the plugin/theme
msgid "YITH"
msgstr ""

#: includes/builders/elementor/class-yith-elementor-widget.php:252
#. translators: %s it the Elementor Widget title.
msgctxt "Elementor Widget - section title"
msgid "%s - Options"
msgstr ""

#: includes/builders/gutenberg/class-yith-gutenberg.php:149
msgctxt "[gutenberg]: Category Name"
msgid "YITH"
msgstr ""

#: includes/class-yit-assets.php:134
msgctxt "Button text"
msgid "Confirm"
msgstr ""

#: includes/class-yit-assets.php:135
msgctxt "Button text"
msgid "Cancel"
msgstr ""

#: includes/class-yit-assets.php:148 yit-functions.php:1982
msgctxt "Trash confirmation action"
msgid "Yes, move to trash"
msgstr ""

#: includes/class-yit-assets.php:152 yit-functions.php:2000
#: yit-functions.php:2127
msgctxt "Delete confirmation action"
msgid "Yes, delete"
msgstr ""

#: includes/class-yit-plugin-panel.php:488
msgctxt "Help tab name"
msgid "Help"
msgstr ""

#: includes/class-yit-plugin-panel.php:798
#. translators: 1. Plugin name.
msgctxt "Help tab default title"
msgid "Thank you for purchasing %s!"
msgstr ""

#: includes/class-yit-plugin-panel.php:799
msgctxt "Help tab default description"
msgid "We want to help you to enjoy a wonderful experience with all our products."
msgstr ""

#: includes/class-yith-dashboard.php:96
msgctxt "Plugin FW"
msgid "View Changelog"
msgstr ""

#: includes/class-yith-dashboard.php:97
msgctxt "Plugin FW"
msgid "Latest update released on"
msgstr ""

#: includes/class-yith-dashboard.php:137
msgctxt "Button label"
msgid "Close"
msgstr ""

#: includes/privacy/class-yith-privacy.php:61
msgctxt "Privacy Policy Guide Title"
msgid "YITH Plugins"
msgstr ""

#: includes/privacy/class-yith-privacy.php:93
msgctxt "Privacy Policy Content"
msgid ""
"This sample language includes the basics around what personal data your "
"store may be collecting, storing and sharing, as well as who may have "
"access to that data. Depending on what settings are enabled and which "
"additional plugins are used, the specific information shared by your store "
"will vary. We recommend consulting with a lawyer when deciding what "
"information to disclose on your privacy policy."
msgstr ""

#: includes/privacy/class-yith-privacy.php:97
msgctxt "Privacy Policy Content"
msgid "What we collect and store"
msgstr ""

#: includes/privacy/class-yith-privacy.php:100
msgctxt "Privacy Policy Content"
msgid "Who on our team has access"
msgstr ""

#: includes/privacy/class-yith-privacy.php:103
msgctxt "Privacy Policy Content"
msgid "What we share with others"
msgstr ""

#: includes/privacy/class-yith-privacy.php:106
msgctxt "Privacy Policy Content"
msgid "Payments"
msgstr ""

#: templates/fields/copy-to-clipboard.php:41
msgctxt "Copy-to-clipboard message"
msgid "Copied!"
msgstr ""

#: templates/fields/copy-to-clipboard.php:45
msgctxt "Copy-to-clipboard button text"
msgid "Copy"
msgstr ""

#: templates/fields/dimensions.php:13
msgctxt "Position in the \"Dimensions\" field"
msgid "Top"
msgstr ""

#: templates/fields/dimensions.php:14
msgctxt "Position in the \"Dimensions\" field"
msgid "Right"
msgstr ""

#: templates/fields/dimensions.php:15
msgctxt "Position in the \"Dimensions\" field"
msgid "Bottom"
msgstr ""

#: templates/fields/dimensions.php:16
msgctxt "Position in the \"Dimensions\" field"
msgid "Left"
msgstr ""

#: templates/fields/dimensions.php:94
msgctxt "Tooltip in the \"Dimensions\" field"
msgid "Link values together"
msgstr ""

#: templates/fields/image-dimensions.php:18
msgctxt "Image width field label"
msgid "Width"
msgstr ""

#: templates/fields/image-dimensions.php:23
msgctxt "Image height field label"
msgid "Height"
msgstr ""

#: templates/fields/onoff.php:28
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "YES"
msgstr ""

#: templates/fields/onoff.php:29
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "NO"
msgstr ""

#: templates/panel/help-tab.php:87
#. translators: 1. Url to EN playlist.
msgctxt "Help tab view all video link"
msgid ""
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
"learn more >"
msgstr ""

#: templates/panel/help-tab.php:94
msgctxt "Help tab Watch Videotutorials link"
msgid "Videos are also available in:"
msgstr ""

#: templates/panel/help-tab.php:137
msgctxt "Help tab Watch Videotutorials link"
msgid "Watch our videotutorials"
msgstr ""

#: templates/panel/help-tab.php:140
msgctxt "Help tab Watch Videotutorials link"
msgid "We show you some use cases"
msgstr ""

#: templates/panel/help-tab.php:124
msgctxt "Help tab Read Documentation link"
msgid "Read the documentation"
msgstr ""

#: templates/panel/help-tab.php:127
msgctxt "Help tab Read Documentation link"
msgid "to learn from basics how it works"
msgstr ""

#: templates/panel/help-tab.php:150
msgctxt "Help tab view FAQs link"
msgid "Check the FAQs"
msgstr ""

#: templates/panel/help-tab.php:153
msgctxt "Help tab view FAQs link"
msgid "to find answers to your doubts"
msgstr ""

#: templates/panel/help-tab.php:169
msgctxt "Help tab FAQ title"
msgid "Last FAQs in our Help Center"
msgstr ""

#: templates/panel/help-tab.php:183
msgctxt "Help tab FAQ link"
msgid "View all FAQs >"
msgstr ""

#: templates/panel/help-tab.php:192
msgctxt "Help tab submit ticket title"
msgid "Need help?"
msgstr ""

#: templates/panel/help-tab.php:195
msgctxt "Help tab submit ticket description"
msgid ""
"If you are experiencing some technical issue ask help to our developers. "
"Submit a ticket in our support desk and we will help you as soon as "
"possible."
msgstr ""

#: templates/panel/help-tab.php:203
msgctxt "Help tab submit ticket button"
msgid "Submit a ticket"
msgstr ""

#: yit-functions.php:1925
msgctxt "Post action"
msgid "Preview"
msgstr ""

#: yit-functions.php:1934
msgctxt "Post action"
msgid "View"
msgstr ""

#: yit-functions.php:1945
msgctxt "Post action"
msgid "Edit"
msgstr ""

#: yit-functions.php:1953
msgctxt "Post action"
msgid "Duplicate"
msgstr ""

#: yit-functions.php:1965
msgctxt "Post action"
msgid "Restore"
msgstr ""

#: yit-functions.php:1973
msgctxt "Post action"
msgid "Trash"
msgstr ""

#: yit-functions.php:1990
msgctxt "Post action"
msgid "Delete Permanently"
msgstr ""

#: yit-functions.php:2087
msgctxt "Term action"
msgid "View"
msgstr ""

#: yit-functions.php:2097
msgctxt "Term action"
msgid "Edit"
msgstr ""

#: yit-functions.php:2105
msgctxt "Term action"
msgid "Duplicate"
msgstr ""

#: yit-functions.php:2118
msgctxt "Term action"
msgid "Delete"
msgstr ""

#: yit-plugin.php:84
msgctxt "Plugin Row Meta"
msgid "Live Demo"
msgstr ""

#: yit-plugin.php:88
msgctxt "Plugin Row Meta"
msgid "Documentation"
msgstr ""

#: yit-plugin.php:92
msgctxt "Plugin Row Meta"
msgid "Support"
msgstr ""

#: yit-plugin.php:96
msgctxt "Plugin Row Meta"
msgid "Premium version"
msgstr ""

#: yit-plugin.php:201
msgctxt "Action links"
msgid "Settings"
msgstr ""plugin-fw/languages/yith-plugin-fw-el.mo000064400000036564151327614500014262 0ustar00��������,+ X
y����
��6�N 

o
}
�
�
�
�
	�
�
3�
43C'w�	�������4%Agp��
��Z�
*5TJa�����	�!d$
������#� >Xx����)�'(*&Sz���0M0~1�'�
	Odk
����
�
����,AMVe	t	~���
���>�H6:��}Dl�6/	f]p�����+:'L(t������2�82k;�W�B\s�7�Q�!*(L{u��� � � ,!-!%B!%h!�!p�!u"l�"J�"G#f#�#@�#�#�#$)$ I$dj$X�$(%<;%Bx%�%�%3�%�&&�&M'S'�h'�'*(,>(,k(*�(!�(�(�(
�()�)&�)"*(8*a*r*�*G�*2�*!+	2+<+Q+%f+-�++�++�+,,
,,7,D,`,�q,9>08x0?�0�01�1�1.�1�12/*22Z2&�2&�2#�2'�2!'3I3%i3�3<�3'�34%'4-M4	{4#�4�4P�4 5'65^5Jo5��5|?6��60A7!r8��9�:	�:��:�;�;�;�;;�;<<4<C<Z<a<h<2m<�<*�<�<�<��<U�\�C$P��.A,�o:M~�Q0�tyegDG%f&+#q{-dYSzT='�@V9;`7h��n/>?*1bZ�2�v	F]x 6c3kruJ�RLaN
[p
5s^<}HI4�W8_�B!O"K)X|i(jlwmE%1$s (#%2$s &ndash; %3$s)%1$s needs %2$s enabled%1$s needs at least %2$s of available memory%1$s needs at least %2$s version:) Thanks!Action linksSettingsAdd AllAdd Images to GalleryAdd custom product tabAdd imagesAdd to galleryAn error has occurred during import. Please try again.An error has occurred, which probably means the feed is down. Try again later.Are you sure?Available MemoryButton labelCloseChoose a sidebarClearClear colorClose allColor valueContact your hosting company in order to enable it.Contact your hosting company in order to install it.Contact your hosting company in order to update it.Content of the tab. (HTML is supported)Copied!Copy CodeCustom:Database imported correctly.DefaultDefined WP_CACHEDeleteDelete imageDisabledDiscover all our plugins available on: %1$s and %2$sDo you want to remove the custom tab?DownloadElement deleted correctly.Element updated correctly.EnabledExpand allExternal object cacheFor optimal functioning of our plugins, we suggest setting at least %s of available memoryGD LibraryHow to install premium versionIconv ModuleIf you continue with this action, you will reset all options in this page.ImageMagick VersionLatest news from YITH BlogLeft SidebarLeft sidebarLicenseLog FilesMultiByte StringN/ANameNoNo Log file available. Enable the WordPress debug by adding this in the %s file of your installationNo sidebarOPCache Save CommentsOutput IP AddressPHP VersionPHP error_log filePHPInfoPlugin FWLatest update released onPlugin FWView ChangelogPlugin Row MetaDocumentationPlugin Row MetaLive DemoPlugin Row MetaPremium versionPlugin Row MetaSupportPlugin SettingsPlugins ActivatedPlugins RequirementsPlugins UpgradedPosition in the "Dimensions" fieldBottomPosition in the "Dimensions" fieldLeftPosition in the "Dimensions" fieldRightPosition in the "Dimensions" fieldTopPreview:Privacy Policy ContentPaymentsPrivacy Policy ContentThis sample language includes the basics around what personal data your store may be collecting, storing and sharing, as well as who may have access to that data. Depending on what settings are enabled and which additional plugins are used, the specific information shared by your store will vary. We recommend consulting with a lawyer when deciding what information to disclose on your privacy policy.Privacy Policy ContentWhat we collect and storePrivacy Policy ContentWhat we share with othersPrivacy Policy ContentWho on our team has accessPrivacy Policy Guide TitleYITH PluginsRSS Error:Read more %1$shere%2$s or contact your hosting company in order to increase it.RemoveRemove %1$s from %2$s fileRemove AllResetReset DefaultsReset to defaultRight SidebarRight sidebarSave ChangesSearch CategoriesSearch CustomersSearch PostsSearch ProductSelect ColorSelect default colorSet DefaultSettingsSettings resetSettings savedSimpleXMLSite InfoSite URLSorry, import is disabled.Sorting successful.System StatusTLS VersionThe added file is not valid.The changes you have made will be lost if you leave this page.The element you have entered already exists. Please, enter another name.The file size exceeds 8 megabytes so it must be downloadedThe system check cannot determine which %1$s version is installed because %2$s module is disabled. Ask your hosting company to enable it.The system check cannot determine which %1$s version is installed due to a connection issue between your site and our server.The system check has detected some compatibility issues on your installation.%1$sClick here%2$s to know moreTooltip in the "Dimensions" fieldLink values togetherURL FOpenUpdate it to the latest version in order to benefit of all new features and security updates.UploadValueWP debug.log fileWarning!We need your supportWooCommerceWooCommerce VersionWordPress CronWordPress VersionYES/NO button: use MAX 4 characters!NOYES/NO button: use MAX 4 characters!YESYITHYITH Latest UpdatesYITH PluginsYITH System InformationYes[gutenberg]: Category NameYITHto keep updating and improving the plugin. Please,Project-Id-Version: YITH Framework
Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>
PO-Revision-Date: 2021-02-11 18:07:46+0000
Language: el_GR
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
%1$s (#%2$s &ndash; %3$s)%1$s χρειάζεται %2$s ενεργοποιημένο%1$s χρειάζεται τουλάχιστον %2$s διαθέσιμης μνήμης%1$s χρειάζεται τουλάχιστον %2$s έκδοση:) Ευχαριστώ!ΡυθμίσειςΠροσθήκη ΌλωνΠροσθέστε Εικόνες στη ΣυλλογήΠροσθέστε καρτέλα προσαρμοσμένου προϊόντοςΠροσθέστε εικόνεςΠροσθέστε στη συλλογήΠαρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά.Παρουσιάστηκε σφάλμα, που πιθανότατα σημαίνει ότι έπεσε το τροφοδοτικό. Προσπαθήστε ξανά αργότερα.Είστε σίγουρος;Διαθέσιμη ΜνήμηΑπενεργοποίησηΕπιλέξτε πλευρική στήληΚαθαρισμόςΚαθαρισμός χρώματοςΑπενεργοποίηση όλωνΑξία χρώματοςΕπικοινωνήστε με την εταιρεία hosting σας για να ενεργοποιήσετε.Επικοινωνήστε με την εταιρεία hosting σας για να το ενεργοποιήσετε.Επικοινωνήστε με την εταιρεία hosting σας για να αναβαθμίσετε.Περιεχόμενο καρτέλας. (Υποστηρίζεται HTML)Έγινε αντιγραφή!Αντιγραφή ΚώδικαΠροσαρμογή:Επιτυχής εισαγωγή βάσης δεδομένων.ΠροεπιλεγμένοΚαθορισμένο WP_CACHEΔιαγραφήΔιαγραφή εικόναςΑπενεργοποιημένοΑνακαλύψτε όλα τα διαθέσιμά μας πρόσθετα στο: %1$s και %2$sΘέλετε να αφαιρέσετε την προσαρμοσμένη καρτέλα;ΚατέβασμαΤο στοιχείο διαγράφηκε επιτυχώς.Το στοιχείο αναβαθμίστηκε επιτυχώς.ΕνεργοποιημένοΑνάπτυξη όλωνCache εξωτερικού αντικειμένουΓια την βέλτιστη λειτουργικότητα των προσθέτων μας, προτείνουμε να ορίσετε τουλάχιστον %s διαθέσιμης μνήμηςΒιβλιοθήκη GDΠώς να εγκαταστήσετε την προηγμένη έκδοσηΆρθρωμα IconvΑν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη σελίδα.Έκδοση ImageMagickΤελευταία νέα από YITH BlogΑριστερή Πλευρική ΣτήληΑριστερή πλευρική στήληΆδεια χρήσης προϊόντοςΑρχεία ΚαταγραφήςMultiByte StringN/AΌνομαΌχιΔεν υπάρχει διαθέσιμο αρχείο Καταγραφής. Ενεργοποιήστε την αποσφαλμάτωση WordPress προσθέτοντάς το στο αρχείο %s της εγκατάστασής σαςΧωρίς πλευρική στήληOPCache Save CommentsΔιεύθυνση IP ΠαραγωγήςΈκδοση PHPΑρχείο PHP error_logPHPInfoΤελευταία αναβάθμιση κυκλοφόρησε στιςΠροβολή Αρχείου ΚαταγραφήςΕγχειρίδιο χρήσηςLive DemoPremium έκδοσηΥποστήριξηΡυθμίσεις ΠροσθέτουΕνεργοποιημένα ΠρόσθεταΠροϋποθέσεις ΠρόσθετωνΑναβαθμισμένα ΠρόσθεταΚάτωΑριστεράΔεξιάΚορυφήΠροεπισκόπηση:ΠληρωμέςΑυτό το δείγμα γλώσσας περιλαμβάνει τα βασικά στοιχεία γύρω από το τι προσωπικά δεδομένα το κατάστημά σας μπορεί να συλλέγει, την αποθήκευση και την κοινή χρήση, καθώς και ποιοι μπορεί να έχουν πρόσβαση σε αυτά τα δεδομένα. Ανάλογα με τις ρυθμίσεις που είναι ενεργοποιημένες και ποια επιπλέον πρόσθετα χρησιμοποιούνται, οι συγκεκριμένες πληροφορίες που κοινοποιούνται από το κατάστημά σας θα ποικίλλουν. Συνιστούμε τη διαβούλευση με έναν δικηγόρο, όταν αποφασίζετε ποιες πληροφορίες να αποκαλύπτετε στην πολιτική απορρήτου σας.Τι συλλέγουμε και αποθηκεύουμεΤι μοιραζόμαστε με τους άλλουςΠοιος στην ομάδα μας έχει πρόσβασηΠρόσθετα YITHΣφάλμα RSS:Μάθετε περισσότερα %1$sεδώ%2$s ή επικοινωνήστε με την εταιρεία hosting σας για να το βελτιώσετε.ΑφαίρεσηΑφαίρεση %1$s από αρχείο %2$sΑφαίρεση ΌλωνΕπαναφοράΕπαναφορά ΠροεπιλεγμένωνΕπαναφορά σε προεπιλεγμένοΔεξιά Πλευρική ΣτήληΔεξιά πλευρική στήληΑποθήκευση ΑλλαγώνΑναζήτηση ΚατηγοριώνΑναζήτηση ΠελατώνΑναζήτηση ΆρθρουΑναζήτηση ΠροϊόντοςΕπιλογή ΧρώματοςΕπιλογή προεπιλεγμένου χρώματοςΟρίστε ΠροεπιλεγμένοΡυθμίσειςΕπαναφορά ρυθμίσεωνΡυθμίσεις αποθηκεύτηκανSimpleXMLΣτοιχεία ΙστότοπουURL ΙστοσελίδαςΣυγνώμη, η εισαγωγή είναι απενεργοποιημένη.Διαλογή επιτυχής.Κατάσταση ΣυστήματοςΈκδοση TLSΤο προστιθέμενο αρχείο δεν είναι έγκυρο.Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα.Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα.Το μέγεθος αρχείου υπερβαίνει τα 8 megabytes οπότε θα πρέπει να το κατεβάσετεΤο σύστημα δεν μπορεί να καθορίσει ποια %1$s έκδοση έχει εγκατασταθεί γιατί το %2$s άρθρωμα είναι απενεργοποιημένο. Ζητήστε από την εταιρεία hosting σας να το ενεργοποιήσει.Ο έλεγχος συστήματος δεν μπορεί να διευκρινήσει ποια έκδοση %1$s έχει εγκατασταθεί λόγω προβλήματος σύνδεσης ανάμεσα στον ιστότοπο σας και τον διακομιστή μας.Ο έλεγχος συστήματος έχει εντοπίσει κάποια προβλήματα συμβατότητας στην εγκατάστασή σας.%1$sΚάντε κλικ εδώ%2$s για να μάθετε περισσότεραΣυνδέστε αξίεςURL FOpenΚάντε αναβάθμιση της τελευταίας έκδοσης για να επωφεληθείτε από τα νέα χαρακτηριστικά και τις αναβαθμίσεις προστασίας.ΑνέβασμαΤιμήΑρχείο WP debug.logΠροσοχή!Χρειαζόμαστε την υποστήριξή σαςWooCommerceΈκδοση WooCommerceWordPress CronΈκδοση WordPressΟΧΙΝΑΙYITHΤελευταίες Αναβαθμίσεις YITHΠρόσθετα YITHΣύστημα Πληροφοριών YITHΝαιYITHγια να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,plugin-fw/languages/yith-plugin-fw-nl_NL.po000064400000071100151327614500014650 0ustar00# Translation of YITH Framework in Dutch
# This file is distributed under the same license as the YITH Framework package.
msgid ""
msgstr ""
"Project-Id-Version: YITH Framework\n"
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
"POT-Creation-Date: 2021-10-21 06:52:18+00:00\n"
"PO-Revision-Date: 2021-09-29 11:02:22+0000\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"

#: includes/class-yit-assets.php:146 yit-functions.php:1979
msgid "Confirm trash"
msgstr "Verplaatsen naar prullenbak bevestigen"

#: includes/class-yit-assets.php:147
msgid "Are you sure you want to trash the selected items?"
msgstr ""
"Weet je zeker dat je het geselecteerde item naar de prullenbak wilt "
"verplaatsen?"

#: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
#: yit-functions.php:1981 yit-functions.php:1999
msgid "No"
msgstr "Nee"

#: includes/class-yit-assets.php:150 yit-functions.php:1997
#: yit-functions.php:2125
msgid "Confirm delete"
msgstr "Verwijderen bevestigen"

#: includes/class-yit-assets.php:151
msgid "Are you sure you want to delete the selected items?"
msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?"

#: includes/class-yit-assets.php:151 yit-functions.php:1913
#: yit-functions.php:2073
msgid ""
"This action cannot be undone and you will not be able to recover this data."
msgstr ""
"Deze actie kan niet ongedaan gemaakt worden en je zult deze gegevens niet "
"kunnen herstellen."

#: includes/class-yit-assets.php:164
msgid "Clear"
msgstr "Wissen"

#: includes/class-yit-assets.php:165
msgid "Clear color"
msgstr "Kleur wissen"

#: includes/class-yit-assets.php:166
msgid "Default"
msgstr "Standaard"

#: includes/class-yit-assets.php:167
msgid "Select default color"
msgstr "Standaardkleur selecteren"

#: includes/class-yit-assets.php:168
msgid "Select Color"
msgstr "Kleur selecteren"

#: includes/class-yit-assets.php:169
msgid "Color value"
msgstr "Kleurwaarde"

#: includes/class-yit-help-desk.php:152
msgid "There was an error with your request; please try again later."
msgstr ""
"Er is een fout opgetreden met je verzoek, probeer het later opnieuw a.u.b."

#: includes/class-yit-plugin-panel-woocommerce.php:423
msgid "The changes you have made will be lost if you leave this page."
msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."

#: includes/class-yit-plugin-panel.php:83
msgid "Plugin Settings"
msgstr "Plugin instellingen"

#: includes/class-yit-plugin-panel.php:84
msgid "Settings"
msgstr "Instellingen"

#: includes/class-yit-plugin-panel.php:451
#: includes/class-yit-plugin-panel.php:454
msgid "How to install premium version"
msgstr "Hoe installeer ik de premium versie"

#: includes/class-yit-plugin-panel.php:652
#: includes/class-yit-plugin-subpanel.php:132
msgid "Save Changes"
msgstr "Wijzigingen opslaan"

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid ""
"If you continue with this action, you will reset all options in this page."
msgstr ""
"Als je doorgaat met deze actie, zal je alle opties op deze pagina resetten."

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid "Are you sure?"
msgstr "Weet je het zeker?"

#: includes/class-yit-plugin-panel.php:661
#: includes/class-yit-plugin-subpanel.php:139
msgid "Reset to default"
msgstr "Resetten naar standaard"

#: includes/class-yit-plugin-panel.php:979
msgid ""
"The element you have entered already exists. Please, enter another name."
msgstr "Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in."

#: includes/class-yit-plugin-panel.php:980
msgid "Settings saved"
msgstr "Instellingen opgeslagen"

#: includes/class-yit-plugin-panel.php:981
msgid "Settings reset"
msgstr "Instellingen resetten"

#: includes/class-yit-plugin-panel.php:982
msgid "Element deleted correctly."
msgstr "Element juist verwijderd."

#: includes/class-yit-plugin-panel.php:983
#: includes/class-yit-plugin-panel.php:984
msgid "Element updated correctly."
msgstr "Element juist geüpdatet."

#: includes/class-yit-plugin-panel.php:985
msgid "Database imported correctly."
msgstr "Database juist geïmporteerd."

#: includes/class-yit-plugin-panel.php:986
msgid "An error has occurred during import. Please try again."
msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."

#: includes/class-yit-plugin-panel.php:987
msgid "The added file is not valid."
msgstr "Het toegevoegde bestand is niet geldig."

#: includes/class-yit-plugin-panel.php:988
msgid "Sorry, import is disabled."
msgstr "Sorry, importeren is uitgeschakeld."

#: includes/class-yit-plugin-panel.php:989
msgid "Sorting successful."
msgstr "Succesvol gesorteerd."

#: includes/class-yit-plugin-panel.php:1457
msgid "We need your support"
msgstr "We hebben je hulp nodig"

#: includes/class-yit-plugin-panel.php:1458
msgid "to keep updating and improving the plugin. Please,"
msgstr "om de plugin te blijven bijwerken en verbeteren. A.u.b.,"

#: includes/class-yit-plugin-panel.php:1460
msgid "help us by leaving a good review"
msgstr "help ons door een goede beoordeling achter te laten"

#: includes/class-yit-plugin-panel.php:1461
msgid ":) Thanks!"
msgstr ":) Bedankt!"

#: includes/class-yit-pointers.php:80
msgid "Plugins Activated"
msgstr "Plugins geactiveerd"

#: includes/class-yit-pointers.php:81
msgid ""
"From now on, you can find all plugin options in YITH menu. Plugin "
"customization settings will be available as a new entry in YITH menu."
msgstr ""
"Vanaf nu kun je alle plugin opties vinden in het YITH Plugins menu. Plugin "
"aanpassingen instellingen zullen beschikbaar zijn als nieuwe toegang in het "
"YITH menu."

#. translators: 1. YITH site link; 2. WordPress site link.
#: includes/class-yit-pointers.php:84 includes/class-yit-pointers.php:100
msgid "Discover all our plugins available on: %1$s and %2$s"
msgstr "Ontdek al onze beschikbare plugins op: %1$s and %2$s"

#: includes/class-yit-pointers.php:96
msgid "Plugins Upgraded"
msgstr "Plugins Upgraded"

#: includes/class-yit-pointers.php:97
msgid ""
"From now on, you can find the option panel of YITH plugins in YITH menu. "
"Every time one of our plugins is added, a new entry will be added to this "
"menu. For example, after the update, plugin options (such as for YITH "
"WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from "
"previous location to YITH menu."
msgstr ""
"Vanaf nu kun je het optiepaneel van YITH plugins vinden in het YITH menu. "
"Elke keer dat een van onze plugins wordt toegevoegd, wordt er een nieuw item "
"aan dit menu toegevoegd. Bijvoorbeeld na de update worden plugin opties "
"(zoals voor YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, enz.) "
"verplaatst van de vorige locatie naar het YITH menu."

#: includes/class-yith-dashboard.php:35
msgid "YITH Latest Updates"
msgstr "YITH laatste updates"

#: includes/class-yith-dashboard.php:36
msgid "Latest news from YITH Blog"
msgstr "Laatste nieuws van YITH Blog"

#: includes/class-yith-dashboard.php:56
msgid "RSS Error:"
msgstr "RSS-fout:"

#: includes/class-yith-dashboard.php:63
msgid ""
"An error has occurred, which probably means the feed is down. Try again "
"later."
msgstr ""
"Er is een fout opgetreden, wat waarschijnlijk betekent dat de feed niet "
"werkt. Probeer het later opnieuw."

#. translators: %s is the name of the post type (example Back to "Membership
#. Plans").
#: includes/class-yith-post-type-admin.php:286
msgid "Back to \"%s\""
msgstr "Terug naar \"%s\""

#: includes/class-yith-post-type-admin.php:286
msgid "Back to the list"
msgstr "Terug naar de lijst"

#: includes/class-yith-system-status.php:110
msgid "WordPress Version"
msgstr "WordPress Versie"

#: includes/class-yith-system-status.php:111
msgid "WooCommerce Version"
msgstr "WooCommerce Versie"

#: includes/class-yith-system-status.php:112
msgid "Available Memory"
msgstr "Beschikbaar geheugen"

#: includes/class-yith-system-status.php:113
msgid "PHP Version"
msgstr "PHP Versie"

#: includes/class-yith-system-status.php:114
msgid "TLS Version"
msgstr "TLS Versie"

#: includes/class-yith-system-status.php:115
msgid "WordPress Cron"
msgstr "WordPress Cron"

#: includes/class-yith-system-status.php:116
msgid "SimpleXML"
msgstr "SimpleXML"

#: includes/class-yith-system-status.php:117
msgid "MultiByte String"
msgstr "MultiByte String"

#: includes/class-yith-system-status.php:118
msgid "ImageMagick Version"
msgstr "ImageMagick Versie"

#: includes/class-yith-system-status.php:119
msgid "GD Library"
msgstr "GD Library"

#: includes/class-yith-system-status.php:120
msgid "Iconv Module"
msgstr "Verzendmodule inschakelen"

#: includes/class-yith-system-status.php:121
msgid "OPCache Save Comments"
msgstr "OPCache Opmerkingen opslaan"

#: includes/class-yith-system-status.php:122
msgid "URL FOpen"
msgstr "URL FOpen"

#: includes/class-yith-system-status.php:140
#: includes/class-yith-system-status.php:141
#: templates/sysinfo/system-information-panel.php:11
msgid "System Status"
msgstr "Systeem Status"

#: includes/class-yith-system-status.php:183
msgid "YITH Plugins"
msgstr "YITH Plugins"

#: includes/class-yith-system-status.php:191
msgid "WooCommerce"
msgstr "WooCommerce"

#: includes/class-yith-system-status.php:342
msgid "Warning!"
msgstr "Waarschuwing!"

#. translators: %1$s open link tag, %2$s open link tag
#: includes/class-yith-system-status.php:346
msgid ""
"The system check has detected some compatibility issues on your installation."
"%1$sClick here%2$s to know more"
msgstr ""
"Het systeem heeft enkele compatibiliteitsproblemen gevonden op uw "
"installatie.%1$sklik hier%2$s om meer te weten te komen"

#: includes/class-yith-system-status.php:488
msgid "Enabled"
msgstr "Ingeschakeld"

#: includes/class-yith-system-status.php:488
msgid "Disabled"
msgstr "Uitgeschakeld"

#: includes/class-yith-system-status.php:493
msgid "N/A"
msgstr "N.v.t"

#. translators: %1$s plugin name, %2$s requirement name
#: includes/class-yith-system-status.php:520
msgid "%1$s needs %2$s enabled"
msgstr "%1$s heeft nodig %2$s ingeschakeld"

#. translators: %1$s plugin name, %2$s required memory amount
#: includes/class-yith-system-status.php:523
msgid "%1$s needs at least %2$s of available memory"
msgstr "%1$ss heeft ten minste %2$s beschikbaar geheugen nodig"

#. translators: %1$s plugin name, %2$s version number
#: includes/class-yith-system-status.php:526
msgid "%1$s needs at least %2$s version"
msgstr "%1$s heeft minstens %2$s versie nodig"

#: includes/class-yith-system-status.php:550
msgid ""
"Update it to the latest version in order to benefit of all new features and "
"security updates."
msgstr ""
"Bijwerken naar de laatste versie, om te profiteren van alle nieuwe opties en "
"veiligheidsupdates."

#: includes/class-yith-system-status.php:554
#: includes/class-yith-system-status.php:560
msgid "Contact your hosting company in order to update it."
msgstr "Neem contact op met uw hosting provider om het bij te werken."

#: includes/class-yith-system-status.php:558
msgid "Contact your hosting company in order to install it."
msgstr "Neem contact op met je hostingbedrijf om het te installeren."

#. translators: %1$s code, %2$s file name
#: includes/class-yith-system-status.php:565
msgid "Remove %1$s from %2$s file"
msgstr "Verwijder %1$s uit %2$s bestand"

#: includes/class-yith-system-status.php:573
msgid "Contact your hosting company in order to enable it."
msgstr "Neem contact op met uw hosting provider om het in te schakelen."

#. translators: %1$s opening link tag, %2$s closing link tag
#: includes/class-yith-system-status.php:577
#: includes/class-yith-system-status.php:600
msgid ""
"Read more %1$shere%2$s or contact your hosting company in order to increase "
"it."
msgstr ""
"Lees %1$s hier%2$s meer, of neem contact op met uw hostingmaatschappij om "
"het te verhogen."

#. translators: %s recommended memory amount
#: includes/class-yith-system-status.php:597
msgid ""
"For optimal functioning of our plugins, we suggest setting at least %s of "
"available memory"
msgstr ""
"Om de plugins optimaal te laten functioneren, adviseren wij minstens %s "
"beschikbaar geheugen"

#. translators: %1$s TLS label, %2$s cURL label
#: includes/class-yith-system-status.php:605
msgid ""
"The system check cannot determine which %1$s version is installed because "
"%2$s module is disabled. Ask your hosting company to enable it."
msgstr ""
"We kunnen niet bepalen welke %1$s versie is geïnstalleerd omdat %2$s de "
"module is uitgeschakeld. Vraag je hostingmaatschappij om het in te schakelen."

#. translators: %1$s TLS label
#: includes/class-yith-system-status.php:608
msgid ""
"The system check cannot determine which %1$s version is installed due to a "
"connection issue between your site and our server."
msgstr ""
"De systeemcontrole kan niet bepalen welke versie van %1$s is geïnstalleerd "
"vanwege een verbindingsprobleem tussen je site en onze server."

#: templates/fields/ajax-customers.php:41
msgid "Search Customers"
msgstr "Klanten zoeken"

#. translators: 1. user display name; 2. user ID; 3. user email.
#: templates/fields/ajax-customers.php:68
#: templates/fields/ajax-customers.php:79
msgid "%1$s (#%2$s &ndash; %3$s)"
msgstr "%1$s (#%2$s &ndash; %3$s)"

#: templates/fields/ajax-posts.php:41
msgid "Search Posts"
msgstr "Posts zoeken"

#: templates/fields/ajax-products.php:14
msgid "Search Product"
msgstr "Zoek Product"

#: templates/fields/ajax-terms.php:41
msgid "Search Categories"
msgstr "Zoek categorieën"

#: templates/fields/customtabs.php:17
msgid "Close all"
msgstr "Sluit allen"

#: templates/fields/customtabs.php:17
msgid "Expand all"
msgstr "Open allen"

#: templates/fields/customtabs.php:25 templates/fields/customtabs.php:68
msgid "Remove"
msgstr "Verwijderen"

#: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
msgid "Name"
msgstr "Name"

#: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
msgid "Value"
msgstr "Waarde"

#: templates/fields/customtabs.php:41 templates/fields/customtabs.php:82
msgid "Content of the tab. (HTML is supported)"
msgstr "Inhoud van het tabblad. (HTML wordt ondersteund)"

#: templates/fields/customtabs.php:52
msgid "Add custom product tab"
msgstr "Aangepaste product tabblad toevoegen"

#: templates/fields/customtabs.php:93
msgid "Do you want to remove the custom tab?"
msgstr "Wil je dit aangepaste tabblad verwijderen?"

#: templates/fields/date-format.php:65
msgid "Custom:"
msgstr "Aangepast:"

#: templates/fields/date-format.php:70
msgid "Preview:"
msgstr "Voorbeeld:"

#: templates/fields/icons.php:78
msgid "Set Default"
msgstr "Op standaard instellen"

#: templates/fields/image-gallery.php:29 templates/fields/image-gallery.php:40
msgid "Delete image"
msgstr "Afbeelding verwijderen"

#: templates/fields/image-gallery.php:37
msgid "Add Images to Gallery"
msgstr "Afbeeldingen toevoegen aan galerij"

#: templates/fields/image-gallery.php:38
msgid "Add to gallery"
msgstr "Aan galerij toevoegen"

#: templates/fields/image-gallery.php:39
msgid "Add images"
msgstr "Voeg images toe"

#: templates/fields/image-gallery.php:41
msgid "Delete"
msgstr "Verwijderen"

#: templates/fields/select-buttons.php:19
msgid "Add All"
msgstr "Allen toevoegen"

#: templates/fields/select-buttons.php:32
msgid "Remove All"
msgstr "Allen verwijderen"

#: templates/fields/sidebars.php:20
msgid "Left sidebar"
msgstr "Linker sidebar"

#: templates/fields/sidebars.php:23
msgid "Right sidebar"
msgstr "Rechter sidebar"

#: templates/fields/sidebars.php:26 templates/fields/sidebars.php:29
msgid "No sidebar"
msgstr "Geen sidebar"

#: templates/fields/sidebars.php:39
msgid "Left Sidebar"
msgstr "Linker sidebar"

#: templates/fields/sidebars.php:41 templates/fields/sidebars.php:56
msgid "Choose a sidebar"
msgstr "Kies een sidebar"

#: templates/fields/sidebars.php:54
msgid "Right Sidebar"
msgstr "Rechter sidebar"

#: templates/fields/upload.php:34
#: templates/panel/woocommerce/woocommerce-upload.php:37
msgid "Upload"
msgstr "Upload"

#: templates/fields/upload.php:39
msgid "Reset"
msgstr "Resetten"

#: templates/panel/woocommerce/woocommerce-form.php:28
#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Save Options"
msgstr "Opties opslaan"

#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Options Saved"
msgstr "Opties opgeslagen"

#: templates/panel/woocommerce/woocommerce-form.php:38
msgid "Reset Defaults"
msgstr "Reset Standaard instellingen"

#: templates/sysinfo/system-information-panel.php:12
msgid "PHPInfo"
msgstr "PHPInfo"

#: templates/sysinfo/system-information-panel.php:13
#: templates/sysinfo/tabs/error-log.php:25
msgid "Log Files"
msgstr "Log bestanden"

#: templates/sysinfo/system-information-panel.php:22
msgid "YITH System Information"
msgstr "YITH Systeem Informatie"

#: templates/sysinfo/tabs/error-log.php:13
msgid "WP debug.log file"
msgstr "WP debug.log bestand"

#: templates/sysinfo/tabs/error-log.php:18
msgid "PHP error_log file"
msgstr "PHP error_log bestand"

#: templates/sysinfo/tabs/error-log.php:60
msgid "Download"
msgstr "Download"

#: templates/sysinfo/tabs/error-log.php:72
msgid "The file size exceeds 8 megabytes so it must be downloaded"
msgstr ""
"De bestandsgrootte overschrijd 8 megabytes, dus het moet worden gedownload "

#. translators: %s file name.
#: templates/sysinfo/tabs/error-log.php:96
msgid ""
"No Log file available. Enable the WordPress debug by adding this in the %s "
"file of your installation"
msgstr ""
"Geen log bestand beschikbaar. WordPress debug inschakelen door dit bestand "
"toe te voegen aan het %s bestand van je installatie "

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copied!"
msgstr "Gekopieerd!"

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copy Code"
msgstr "Code kopiëren"

#: templates/sysinfo/tabs/main.php:17
msgid "Site Info"
msgstr "Site informatie"

#: templates/sysinfo/tabs/main.php:22
msgid "Site URL"
msgstr "Site URL"

#: templates/sysinfo/tabs/main.php:31
msgid "Output IP Address"
msgstr "Output IP Adres"

#: templates/sysinfo/tabs/main.php:39
msgid "Defined WP_CACHE"
msgstr "Gedefinieerde WP_CACHE"

#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
msgid "Yes"
msgstr "Ja"

#: templates/sysinfo/tabs/main.php:47
msgid "External object cache"
msgstr "Externe object cache"

#: templates/sysinfo/tabs/main.php:55
msgid "YITH Plugin Framework Version"
msgstr "YITH Plugin Framework Versie"

#. translators: %s is the name of the plugin that is loading the framework.
#: templates/sysinfo/tabs/main.php:64
msgid "loaded by %s"
msgstr "geladen door %s"

#: templates/sysinfo/tabs/main.php:73
msgid "Plugins Requirements"
msgstr "Plugin benodigdheden"

#: templates/sysinfo/tabs/main.php:108
msgid "Database Info"
msgstr "Database Info"

#: templates/sysinfo/tabs/main.php:113
msgid "MySQL version"
msgstr "MySQL versie"

#. Translators: %s: Codex link.
#: templates/sysinfo/tabs/main.php:123
msgid "WordPress recommends a minimum MySQL version of 5.6. See: %s"
msgstr "WordPress raadt een minimale MySQL versie aan van 5.6. Bekijk: %s"

#: templates/sysinfo/tabs/main.php:123
msgid "WordPress requirements"
msgstr "WordPress vereisten"

#: templates/sysinfo/tabs/main.php:130
msgid "Total Database Size"
msgstr "Totale Database grootte"

#: templates/sysinfo/tabs/main.php:138
msgid "Database Data Size"
msgstr "Database Data grootte"

#: templates/sysinfo/tabs/main.php:146
msgid "Database Index Size"
msgstr "Database Index grootte"

#: templates/sysinfo/tabs/main.php:154
msgid "Database Free Size"
msgstr "Database gratis grootte"

#. Translators: %1$f: Table size, %2$f: Index size, %3$f: Free size, %4$s
#. Engine.
#: templates/sysinfo/tabs/main.php:168
msgid "Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$s"
msgstr "Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$s"

#. translators: %s is the title of the post object.
#: yit-functions.php:1911
msgid "Are you sure you want to move \"%s\" to trash?"
msgstr "Weet je zeker dat je \"%s\" naar de prullenbak wilt verplaatsen?"

#. translators: %s is the title of the post object.
#: yit-functions.php:1913 yit-functions.php:2073
msgid "Are you sure you want to delete \"%s\"?"
msgstr "Weet je zeker dat je \"%s\" wilt verwijderen?"

#: yit-functions.php:2011 yit-functions.php:2019 yit-functions.php:2136
msgid "Further actions"
msgstr "Verdere acties"

#: yit-plugin.php:205
msgid "License"
msgstr "Licentie"

#. Author of the plugin/theme
msgid "YITH"
msgstr "YITH"

#. translators: %s it the Elementor Widget title.
#: includes/builders/elementor/class-yith-elementor-widget.php:252
msgctxt "Elementor Widget - section title"
msgid "%s - Options"
msgstr "%s - Opties"

#: includes/builders/gutenberg/class-yith-gutenberg.php:149
msgctxt "[gutenberg]: Category Name"
msgid "YITH"
msgstr "YITH"

#: includes/class-yit-assets.php:134
msgctxt "Button text"
msgid "Confirm"
msgstr "Bevestigen"

#: includes/class-yit-assets.php:135
msgctxt "Button text"
msgid "Cancel"
msgstr "Annuleren"

#: includes/class-yit-assets.php:148 yit-functions.php:1982
msgctxt "Trash confirmation action"
msgid "Yes, move to trash"
msgstr "Ja, verplaatsen naar prullenbak"

#: includes/class-yit-assets.php:152 yit-functions.php:2000
#: yit-functions.php:2127
msgctxt "Delete confirmation action"
msgid "Yes, delete"
msgstr "Ja, verwijderen"

#: includes/class-yit-plugin-panel.php:488
msgctxt "Help tab name"
msgid "Help"
msgstr "Help"

#. translators: 1. Plugin name.
#: includes/class-yit-plugin-panel.php:798
msgctxt "Help tab default title"
msgid "Thank you for purchasing %s!"
msgstr "Bedankt voor het kopen van %s!"

#: includes/class-yit-plugin-panel.php:799
msgctxt "Help tab default description"
msgid ""
"We want to help you to enjoy a wonderful experience with all our products."
msgstr ""
"We willen je helpen om te genieten van de geweldige ervaringen met al onze "
"producten."

#: includes/class-yith-dashboard.php:96
msgctxt "Plugin FW"
msgid "View Changelog"
msgstr "Bekijk wijzigingenlogboek"

#: includes/class-yith-dashboard.php:97
msgctxt "Plugin FW"
msgid "Latest update released on"
msgstr "Laatste update uitgebracht op"

#: includes/class-yith-dashboard.php:137
msgctxt "Button label"
msgid "Close"
msgstr "Sluiten"

#: includes/privacy/class-yith-privacy.php:61
msgctxt "Privacy Policy Guide Title"
msgid "YITH Plugins"
msgstr "YITH Plugins"

#: includes/privacy/class-yith-privacy.php:93
msgctxt "Privacy Policy Content"
msgid ""
"This sample language includes the basics around what personal data your "
"store may be collecting, storing and sharing, as well as who may have access "
"to that data. Depending on what settings are enabled and which additional "
"plugins are used, the specific information shared by your store will vary. "
"We recommend consulting with a lawyer when deciding what information to "
"disclose on your privacy policy."
msgstr ""
"Dit geschreven voorbeeld bevat de basis rondom welke persoonlijke gegevens "
"je winkel mag verzamelen, bewaren en delen, en wie toegang heeft tot deze "
"gegevens. Afhankelijk van welke instellingen zijn ingeschakeld en welke "
"aanvullende plugins worden gebruikt, zal de informatie die wordt gedeeld "
"door je winkel variëren. We raden aan om een advocaat te raadplegen wanneer "
"je besluit je privacy beleid op te stellen."

#: includes/privacy/class-yith-privacy.php:97
msgctxt "Privacy Policy Content"
msgid "What we collect and store"
msgstr "Wat we verzamelen en bewaren"

#: includes/privacy/class-yith-privacy.php:100
msgctxt "Privacy Policy Content"
msgid "Who on our team has access"
msgstr "Wie van ons team heeft toegang"

#: includes/privacy/class-yith-privacy.php:103
msgctxt "Privacy Policy Content"
msgid "What we share with others"
msgstr "Wat wij delen met anderen"

#: includes/privacy/class-yith-privacy.php:106
msgctxt "Privacy Policy Content"
msgid "Payments"
msgstr "Betalingen"

#: templates/fields/copy-to-clipboard.php:41
msgctxt "Copy-to-clipboard message"
msgid "Copied!"
msgstr "Gekopieerd!"

#: templates/fields/copy-to-clipboard.php:45
msgctxt "Copy-to-clipboard button text"
msgid "Copy"
msgstr "Kopieer"

#: templates/fields/dimensions.php:13
msgctxt "Position in the \"Dimensions\" field"
msgid "Top"
msgstr "Boven"

#: templates/fields/dimensions.php:14
msgctxt "Position in the \"Dimensions\" field"
msgid "Right"
msgstr "Rechts"

#: templates/fields/dimensions.php:15
msgctxt "Position in the \"Dimensions\" field"
msgid "Bottom"
msgstr "Onder"

#: templates/fields/dimensions.php:16
msgctxt "Position in the \"Dimensions\" field"
msgid "Left"
msgstr "Links"

#: templates/fields/dimensions.php:94
msgctxt "Tooltip in the \"Dimensions\" field"
msgid "Link values together"
msgstr "Waarden aan elkaar koppelen"

#: templates/fields/image-dimensions.php:18
msgctxt "Image width field label"
msgid "Width"
msgstr "Breedte"

#: templates/fields/image-dimensions.php:23
msgctxt "Image height field label"
msgid "Height"
msgstr "Hoogte"

#: templates/fields/onoff.php:28
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "YES"
msgstr "JA"

#: templates/fields/onoff.php:29
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "NO"
msgstr "NEE"

#. translators: 1. Url to EN playlist.
#: templates/panel/help-tab.php:87
msgctxt "Help tab view all video link"
msgid ""
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
"learn more >"
msgstr ""
"Bekijk de volledige <a href=\"%s\" target=\"_blank\">Playlist op Youtube</a> "
"om meer te weten te komen >"

#: templates/panel/help-tab.php:94
msgctxt "Help tab Watch Videotutorials link"
msgid "Videos are also available in:"
msgstr "Videos zijn ook beschikbaar in:"

#: templates/panel/help-tab.php:137
msgctxt "Help tab Watch Videotutorials link"
msgid "Watch our videotutorials"
msgstr "Bekijk onze video uitleg"

#: templates/panel/help-tab.php:140
msgctxt "Help tab Watch Videotutorials link"
msgid "We show you some use cases"
msgstr "We tonen je enkele gebruikscasussen"

#: templates/panel/help-tab.php:124
msgctxt "Help tab Read Documentation link"
msgid "Read the documentation"
msgstr "Lees de documentatie"

#: templates/panel/help-tab.php:127
msgctxt "Help tab Read Documentation link"
msgid "to learn from basics how it works"
msgstr "om vanaf de basis te leren hoe het werkt"

#: templates/panel/help-tab.php:150
msgctxt "Help tab view FAQs link"
msgid "Check the FAQs"
msgstr "Check de FAQs"

#: templates/panel/help-tab.php:153
msgctxt "Help tab view FAQs link"
msgid "to find answers to your doubts"
msgstr "om je twijfels te beantwoorden"

#: templates/panel/help-tab.php:169
msgctxt "Help tab FAQ title"
msgid "Last FAQs in our Help Center"
msgstr "Laatste FAQs in ons Help Center"

#: templates/panel/help-tab.php:183
msgctxt "Help tab FAQ link"
msgid "View all FAQs >"
msgstr "Bekijk alle FAQs >"

#: templates/panel/help-tab.php:192
msgctxt "Help tab submit ticket title"
msgid "Need help?"
msgstr "Hulp nodig?"

#: templates/panel/help-tab.php:195
msgctxt "Help tab submit ticket description"
msgid ""
"If you are experiencing some technical issue ask help to our developers. "
"Submit a ticket in our support desk and we will help you as soon as possible."
msgstr ""
"Als je een technisch probleem ondervindt, vraag dan hulp aan onze "
"developers. Je kunt een ticket indienen bij onze supportdesk en we helpen je "
"zo snel mogelijk verder."

#: templates/panel/help-tab.php:203
msgctxt "Help tab submit ticket button"
msgid "Submit a ticket"
msgstr "Verstuur een ticket"

#: yit-functions.php:1925
msgctxt "Post action"
msgid "Preview"
msgstr "Voorbeeld"

#: yit-functions.php:1934
msgctxt "Post action"
msgid "View"
msgstr "Bekijken"

#: yit-functions.php:1945
msgctxt "Post action"
msgid "Edit"
msgstr "Bewerken"

#: yit-functions.php:1953
msgctxt "Post action"
msgid "Duplicate"
msgstr "Dupliceren"

#: yit-functions.php:1965
msgctxt "Post action"
msgid "Restore"
msgstr "Herstellen"

#: yit-functions.php:1973
msgctxt "Post action"
msgid "Trash"
msgstr "Prullenbak"

#: yit-functions.php:1990
msgctxt "Post action"
msgid "Delete Permanently"
msgstr "Permanent verijwderen"

#: yit-functions.php:2087
msgctxt "Term action"
msgid "View"
msgstr "Bekijken"

#: yit-functions.php:2097
msgctxt "Term action"
msgid "Edit"
msgstr "Bewerken"

#: yit-functions.php:2105
msgctxt "Term action"
msgid "Duplicate"
msgstr "Dupliceren"

#: yit-functions.php:2118
msgctxt "Term action"
msgid "Delete"
msgstr "Verwijderen"

#: yit-plugin.php:84
msgctxt "Plugin Row Meta"
msgid "Live Demo"
msgstr "Live Demo"

#: yit-plugin.php:88
msgctxt "Plugin Row Meta"
msgid "Documentation"
msgstr "Documentatie"

#: yit-plugin.php:92
msgctxt "Plugin Row Meta"
msgid "Support"
msgstr "Ondersteuning"

#: yit-plugin.php:96
msgctxt "Plugin Row Meta"
msgid "Premium version"
msgstr "Premium versie"

#: yit-plugin.php:201
msgctxt "Action links"
msgid "Settings"
msgstr "Instellingen"
plugin-fw/languages/yith-plugin-fw-it_IT.po000064400000071327151327614500014671 0ustar00# Translation of YITH Framework in Italian
# This file is distributed under the same license as the YITH Framework package.
msgid ""
msgstr ""
"Project-Id-Version: YITH Framework\n"
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
"POT-Creation-Date: 2021-10-21 06:52:18+00:00\n"
"PO-Revision-Date: 2021-09-28 14:05:29+0000\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"

#: includes/class-yit-assets.php:146 yit-functions.php:1979
msgid "Confirm trash"
msgstr "Conferma eliminazione"

#: includes/class-yit-assets.php:147
msgid "Are you sure you want to trash the selected items?"
msgstr "Se sicuro di voler spostare nel cestino gli elementi selezionati?"

#: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
#: yit-functions.php:1981 yit-functions.php:1999
msgid "No"
msgstr "No"

#: includes/class-yit-assets.php:150 yit-functions.php:1997
#: yit-functions.php:2125
msgid "Confirm delete"
msgstr "Conferma eliminazione"

#: includes/class-yit-assets.php:151
msgid "Are you sure you want to delete the selected items?"
msgstr "Se sicuro di voler eliminare gli elementi selezionati?"

#: includes/class-yit-assets.php:151 yit-functions.php:1913
#: yit-functions.php:2073
msgid ""
"This action cannot be undone and you will not be able to recover this data."
msgstr ""
"Quest'azione non può essere annullata e non sarà possibile recuperare questi "
"dati."

#: includes/class-yit-assets.php:164
msgid "Clear"
msgstr "Rimuovi"

#: includes/class-yit-assets.php:165
msgid "Clear color"
msgstr "Rimuovi colore"

#: includes/class-yit-assets.php:166
msgid "Default"
msgstr "Predefinito"

#: includes/class-yit-assets.php:167
msgid "Select default color"
msgstr "Seleziona il colore predefinito"

#: includes/class-yit-assets.php:168
msgid "Select Color"
msgstr "Seleziona il colore"

#: includes/class-yit-assets.php:169
msgid "Color value"
msgstr "Valore del colore"

#: includes/class-yit-help-desk.php:152
msgid "There was an error with your request; please try again later."
msgstr "Si è verificato un errore con la tua richiesta. Riprova più tardi."

#: includes/class-yit-plugin-panel-woocommerce.php:423
msgid "The changes you have made will be lost if you leave this page."
msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."

#: includes/class-yit-plugin-panel.php:83
msgid "Plugin Settings"
msgstr "Impostazioni plugin"

#: includes/class-yit-plugin-panel.php:84
msgid "Settings"
msgstr "Impostazioni"

#: includes/class-yit-plugin-panel.php:451
#: includes/class-yit-plugin-panel.php:454
msgid "How to install premium version"
msgstr "Come installare la versione premium"

#: includes/class-yit-plugin-panel.php:652
#: includes/class-yit-plugin-subpanel.php:132
msgid "Save Changes"
msgstr "Salva modifiche"

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid ""
"If you continue with this action, you will reset all options in this page."
msgstr ""
"Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
"reimpostate."

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid "Are you sure?"
msgstr "Sei sicuro?"

#: includes/class-yit-plugin-panel.php:661
#: includes/class-yit-plugin-subpanel.php:139
msgid "Reset to default"
msgstr "Ripristina configurazione predefinita"

#: includes/class-yit-plugin-panel.php:979
msgid ""
"The element you have entered already exists. Please, enter another name."
msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."

#: includes/class-yit-plugin-panel.php:980
msgid "Settings saved"
msgstr "Impostazioni salvate"

#: includes/class-yit-plugin-panel.php:981
msgid "Settings reset"
msgstr "Impostazioni azzerate"

#: includes/class-yit-plugin-panel.php:982
msgid "Element deleted correctly."
msgstr "Elemento rimosso correttamente."

#: includes/class-yit-plugin-panel.php:983
#: includes/class-yit-plugin-panel.php:984
msgid "Element updated correctly."
msgstr "Elemento aggiornato correttamente."

#: includes/class-yit-plugin-panel.php:985
msgid "Database imported correctly."
msgstr "Database importato correttamente."

#: includes/class-yit-plugin-panel.php:986
msgid "An error has occurred during import. Please try again."
msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."

#: includes/class-yit-plugin-panel.php:987
msgid "The added file is not valid."
msgstr "Il file aggiunto non è valido."

#: includes/class-yit-plugin-panel.php:988
msgid "Sorry, import is disabled."
msgstr "Ci dispiace, l'importazione è disabilitata."

#: includes/class-yit-plugin-panel.php:989
msgid "Sorting successful."
msgstr "Ordinamento effettuato con successo."

#: includes/class-yit-plugin-panel.php:1457
msgid "We need your support"
msgstr "Abbiamo bisogno del tuo sostegno"

#: includes/class-yit-plugin-panel.php:1458
msgid "to keep updating and improving the plugin. Please,"
msgstr "per poter continuare ad aggiornare e migliorare il plugin."

#: includes/class-yit-plugin-panel.php:1460
msgid "help us by leaving a good review"
msgstr "Puoi darci una mano lasciando una recensione positiva"

#: includes/class-yit-plugin-panel.php:1461
msgid ":) Thanks!"
msgstr ":) Grazie!"

#: includes/class-yit-pointers.php:80
msgid "Plugins Activated"
msgstr "Plugin attivati"

#: includes/class-yit-pointers.php:81
msgid ""
"From now on, you can find all plugin options in YITH menu. Plugin "
"customization settings will be available as a new entry in YITH menu."
msgstr ""
"D'ora in poi puoi trovare tutte le opzioni dei plugin nel menù YITH. Le "
"impostazioni di personalizzazione saranno disponibili come una nuova voce in "
"YITH."

#. translators: 1. YITH site link; 2. WordPress site link.
#: includes/class-yit-pointers.php:84 includes/class-yit-pointers.php:100
msgid "Discover all our plugins available on: %1$s and %2$s"
msgstr "Scopri tutti i nostri plugin disponibili su: %1$s and %2$s"

#: includes/class-yit-pointers.php:96
msgid "Plugins Upgraded"
msgstr "Plugin aggiornati"

#: includes/class-yit-pointers.php:97
msgid ""
"From now on, you can find the option panel of YITH plugins in YITH menu. "
"Every time one of our plugins is added, a new entry will be added to this "
"menu. For example, after the update, plugin options (such as for YITH "
"WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from "
"previous location to YITH menu."
msgstr ""
"D'ora in poi puoi trovare il pannello opzioni dei plugin YITH nel menù YITH. "
"Ogni volta che viene aggiunto uno dei nostri plugin comparirà una nuova voce "
"in questo menù. Ad esempio, dopo l'aggiornamento, le opzioni del plugin "
"(come per YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) "
"saranno spostate dalla posizione precedente al menù YITH."

#: includes/class-yith-dashboard.php:35
msgid "YITH Latest Updates"
msgstr "Ultimi aggiornamenti da YITH"

#: includes/class-yith-dashboard.php:36
msgid "Latest news from YITH Blog"
msgstr "Ultime novità dal blog YITH"

#: includes/class-yith-dashboard.php:56
msgid "RSS Error:"
msgstr "Errore RSS:"

#: includes/class-yith-dashboard.php:63
msgid ""
"An error has occurred, which probably means the feed is down. Try again "
"later."
msgstr ""
"Si è verificato un errore probabilmente causato dal feed non disponibile. "
"Riprova più tardi."

#. translators: %s is the name of the post type (example Back to "Membership
#. Plans").
#: includes/class-yith-post-type-admin.php:286
msgid "Back to \"%s\""
msgstr "Torna a \"%s\""

#: includes/class-yith-post-type-admin.php:286
msgid "Back to the list"
msgstr "Torna all'elenco"

#: includes/class-yith-system-status.php:110
msgid "WordPress Version"
msgstr "Versione di WordPress"

#: includes/class-yith-system-status.php:111
msgid "WooCommerce Version"
msgstr "Versione di WooCommerce"

#: includes/class-yith-system-status.php:112
msgid "Available Memory"
msgstr "Memoria disponibile"

#: includes/class-yith-system-status.php:113
msgid "PHP Version"
msgstr "Versione PHP"

#: includes/class-yith-system-status.php:114
msgid "TLS Version"
msgstr "Versione TLS"

#: includes/class-yith-system-status.php:115
msgid "WordPress Cron"
msgstr "Cron WordPress"

#: includes/class-yith-system-status.php:116
msgid "SimpleXML"
msgstr "SimpleXML"

#: includes/class-yith-system-status.php:117
msgid "MultiByte String"
msgstr "MultiByte String"

#: includes/class-yith-system-status.php:118
msgid "ImageMagick Version"
msgstr "Versione di ImageMagick"

#: includes/class-yith-system-status.php:119
msgid "GD Library"
msgstr "GD Library"

#: includes/class-yith-system-status.php:120
msgid "Iconv Module"
msgstr "Iconv Module"

#: includes/class-yith-system-status.php:121
msgid "OPCache Save Comments"
msgstr "OPCache Save Comments"

#: includes/class-yith-system-status.php:122
msgid "URL FOpen"
msgstr "URL FOpen"

#: includes/class-yith-system-status.php:140
#: includes/class-yith-system-status.php:141
#: templates/sysinfo/system-information-panel.php:11
msgid "System Status"
msgstr "Stato del sistema"

#: includes/class-yith-system-status.php:183
msgid "YITH Plugins"
msgstr "Plugin YITH"

#: includes/class-yith-system-status.php:191
msgid "WooCommerce"
msgstr "WooCommerce"

#: includes/class-yith-system-status.php:342
msgid "Warning!"
msgstr "Attenzione!"

#. translators: %1$s open link tag, %2$s open link tag
#: includes/class-yith-system-status.php:346
msgid ""
"The system check has detected some compatibility issues on your installation."
"%1$sClick here%2$s to know more"
msgstr ""
"Il controllo di sistema ha individuato delle incompatibilità con la tua "
"installazione. %1$sVedi qui%2$s per maggiori dettagli"

#: includes/class-yith-system-status.php:488
msgid "Enabled"
msgstr "Abilitato"

#: includes/class-yith-system-status.php:488
msgid "Disabled"
msgstr "Disabilitato"

#: includes/class-yith-system-status.php:493
msgid "N/A"
msgstr "N.D."

#. translators: %1$s plugin name, %2$s requirement name
#: includes/class-yith-system-status.php:520
msgid "%1$s needs %2$s enabled"
msgstr "%1$s necessita dell'attivazione di %2$s"

#. translators: %1$s plugin name, %2$s required memory amount
#: includes/class-yith-system-status.php:523
msgid "%1$s needs at least %2$s of available memory"
msgstr "%1$s necessita di almeno %2$s di memoria disponibile"

#. translators: %1$s plugin name, %2$s version number
#: includes/class-yith-system-status.php:526
msgid "%1$s needs at least %2$s version"
msgstr "%1$s necessita almeno della versione %2$s"

#: includes/class-yith-system-status.php:550
msgid ""
"Update it to the latest version in order to benefit of all new features and "
"security updates."
msgstr ""
"Aggiorna all'ultima versione per beneficiare di tutte le nuove funzionalità "
"e degli aggiornamenti di sicurezza."

#: includes/class-yith-system-status.php:554
#: includes/class-yith-system-status.php:560
msgid "Contact your hosting company in order to update it."
msgstr "Contatta il tuo servizio hosting per aggiornarlo."

#: includes/class-yith-system-status.php:558
msgid "Contact your hosting company in order to install it."
msgstr "Per installarlo contatta il tuo servizio di hosting."

#. translators: %1$s code, %2$s file name
#: includes/class-yith-system-status.php:565
msgid "Remove %1$s from %2$s file"
msgstr "Rimuovi %1$s dal file %2$s"

#: includes/class-yith-system-status.php:573
msgid "Contact your hosting company in order to enable it."
msgstr "Per attivarlo contatta il tuo servizio di hosting."

#. translators: %1$s opening link tag, %2$s closing link tag
#: includes/class-yith-system-status.php:577
#: includes/class-yith-system-status.php:600
msgid ""
"Read more %1$shere%2$s or contact your hosting company in order to increase "
"it."
msgstr ""
"Per maggiori informazioni %1$sleggi questo%2$s oppure contatta il tuo host "
"per un upgrade."

#. translators: %s recommended memory amount
#: includes/class-yith-system-status.php:597
msgid ""
"For optimal functioning of our plugins, we suggest setting at least %s of "
"available memory"
msgstr ""
"Per il funzionamento ottimale dei nostri plugin consigliamo di impostare "
"almeno %s della memoria disponibile"

#. translators: %1$s TLS label, %2$s cURL label
#: includes/class-yith-system-status.php:605
msgid ""
"The system check cannot determine which %1$s version is installed because "
"%2$s module is disabled. Ask your hosting company to enable it."
msgstr ""
"Non ci è stato possibile determinare quale versione di %1$s è installata in "
"quanto il modulo %2$s è disattivato. Chiedi al tuo servizio hosting di "
"attivarlo."

#. translators: %1$s TLS label
#: includes/class-yith-system-status.php:608
msgid ""
"The system check cannot determine which %1$s version is installed due to a "
"connection issue between your site and our server."
msgstr ""
"Non ci è stato possibile determinare quale versione di %1$s è installata a "
"causa di un problema di connessione fra il tuo sito e il nostro server."

#: templates/fields/ajax-customers.php:41
msgid "Search Customers"
msgstr "Cerca fra i clienti"

#. translators: 1. user display name; 2. user ID; 3. user email.
#: templates/fields/ajax-customers.php:68
#: templates/fields/ajax-customers.php:79
msgid "%1$s (#%2$s &ndash; %3$s)"
msgstr "%1$s (#%2$s &ndash; %3$s)"

#: templates/fields/ajax-posts.php:41
msgid "Search Posts"
msgstr "Cerca articoli"

#: templates/fields/ajax-products.php:14
msgid "Search Product"
msgstr "Cerca un prodotto"

#: templates/fields/ajax-terms.php:41
msgid "Search Categories"
msgstr "Cerca categorie"

#: templates/fields/customtabs.php:17
msgid "Close all"
msgstr "Chiudi tutti"

#: templates/fields/customtabs.php:17
msgid "Expand all"
msgstr "Espandi tutti"

#: templates/fields/customtabs.php:25 templates/fields/customtabs.php:68
msgid "Remove"
msgstr "Rimuovi"

#: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
msgid "Name"
msgstr "Nome"

#: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
msgid "Value"
msgstr "Valore"

#: templates/fields/customtabs.php:41 templates/fields/customtabs.php:82
msgid "Content of the tab. (HTML is supported)"
msgstr "Contenuto della scheda (codice HTML supportato)."

#: templates/fields/customtabs.php:52
msgid "Add custom product tab"
msgstr "Aggiungi scheda prodotto personalizzata"

#: templates/fields/customtabs.php:93
msgid "Do you want to remove the custom tab?"
msgstr "Vuoi rimuovere la scheda personalizzata?"

#: templates/fields/date-format.php:65
msgid "Custom:"
msgstr "Personalizzato:"

#: templates/fields/date-format.php:70
msgid "Preview:"
msgstr "Anteprima:"

#: templates/fields/icons.php:78
msgid "Set Default"
msgstr "Ripristina impostazioni iniziali"

#: templates/fields/image-gallery.php:29 templates/fields/image-gallery.php:40
msgid "Delete image"
msgstr "Rimuovi immagine"

#: templates/fields/image-gallery.php:37
msgid "Add Images to Gallery"
msgstr "Aggiungi immagini alla galleria"

#: templates/fields/image-gallery.php:38
msgid "Add to gallery"
msgstr "Aggiungi alla galleria"

#: templates/fields/image-gallery.php:39
msgid "Add images"
msgstr "Aggiungi immagini"

#: templates/fields/image-gallery.php:41
msgid "Delete"
msgstr "Rimuovi"

#: templates/fields/select-buttons.php:19
msgid "Add All"
msgstr "Aggiungi tutti"

#: templates/fields/select-buttons.php:32
msgid "Remove All"
msgstr "Rimuovi tutti"

#: templates/fields/sidebars.php:20
msgid "Left sidebar"
msgstr "Barra laterale sinistra"

#: templates/fields/sidebars.php:23
msgid "Right sidebar"
msgstr "Barra laterale destra"

#: templates/fields/sidebars.php:26 templates/fields/sidebars.php:29
msgid "No sidebar"
msgstr "Nessuna barra laterale"

#: templates/fields/sidebars.php:39
msgid "Left Sidebar"
msgstr "Barra laterale sinistra"

#: templates/fields/sidebars.php:41 templates/fields/sidebars.php:56
msgid "Choose a sidebar"
msgstr "Scegli una barra laterale"

#: templates/fields/sidebars.php:54
msgid "Right Sidebar"
msgstr "Barra laterale destra"

#: templates/fields/upload.php:34
#: templates/panel/woocommerce/woocommerce-upload.php:37
msgid "Upload"
msgstr "Carica"

#: templates/fields/upload.php:39
msgid "Reset"
msgstr "Ripristina"

#: templates/panel/woocommerce/woocommerce-form.php:28
#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Save Options"
msgstr "Salva le opzioni"

#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Options Saved"
msgstr "Opzioni salvate"

#: templates/panel/woocommerce/woocommerce-form.php:38
msgid "Reset Defaults"
msgstr "Ripristina impostazioni iniziali"

#: templates/sysinfo/system-information-panel.php:12
msgid "PHPInfo"
msgstr "PHPInfo"

#: templates/sysinfo/system-information-panel.php:13
#: templates/sysinfo/tabs/error-log.php:25
msgid "Log Files"
msgstr "File log"

#: templates/sysinfo/system-information-panel.php:22
msgid "YITH System Information"
msgstr "YITH System Information"

#: templates/sysinfo/tabs/error-log.php:13
msgid "WP debug.log file"
msgstr "WP debug.log file"

#: templates/sysinfo/tabs/error-log.php:18
msgid "PHP error_log file"
msgstr "PHP error_log file"

#: templates/sysinfo/tabs/error-log.php:60
msgid "Download"
msgstr "Scarica"

#: templates/sysinfo/tabs/error-log.php:72
msgid "The file size exceeds 8 megabytes so it must be downloaded"
msgstr ""
"La dimensione del file supera gli 8 megabyte ed è quindi necessario "
"scaricarlo"

#. translators: %s file name.
#: templates/sysinfo/tabs/error-log.php:96
msgid ""
"No Log file available. Enable the WordPress debug by adding this in the %s "
"file of your installation"
msgstr ""
"Nessun file log disponibile. Abilita il debug WordPress aggiungendo questo "
"nel file %s della tua installazione"

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copied!"
msgstr "Copiato!"

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copy Code"
msgstr "Copia codice"

#: templates/sysinfo/tabs/main.php:17
msgid "Site Info"
msgstr "Info sito"

#: templates/sysinfo/tabs/main.php:22
msgid "Site URL"
msgstr "URL del sito"

#: templates/sysinfo/tabs/main.php:31
msgid "Output IP Address"
msgstr "Indirizzo IP di output"

#: templates/sysinfo/tabs/main.php:39
msgid "Defined WP_CACHE"
msgstr "Defined WP_CACHE"

#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
msgid "Yes"
msgstr "Sì"

#: templates/sysinfo/tabs/main.php:47
msgid "External object cache"
msgstr "External object cache"

#: templates/sysinfo/tabs/main.php:55
msgid "YITH Plugin Framework Version"
msgstr "YITH Plugin Framework Version"

#. translators: %s is the name of the plugin that is loading the framework.
#: templates/sysinfo/tabs/main.php:64
msgid "loaded by %s"
msgstr "caricato da %s"

#: templates/sysinfo/tabs/main.php:73
msgid "Plugins Requirements"
msgstr "Requisiti plugin"

#: templates/sysinfo/tabs/main.php:108
msgid "Database Info"
msgstr "Info database"

#: templates/sysinfo/tabs/main.php:113
msgid "MySQL version"
msgstr "Versione MySQL"

#. Translators: %s: Codex link.
#: templates/sysinfo/tabs/main.php:123
msgid "WordPress recommends a minimum MySQL version of 5.6. See: %s"
msgstr "WordPress consiglia una versione minima 5.6 di MySQL. Vedi: %s"

#: templates/sysinfo/tabs/main.php:123
msgid "WordPress requirements"
msgstr "Requisiti WordPress"

#: templates/sysinfo/tabs/main.php:130
msgid "Total Database Size"
msgstr "Dimensione totale database"

#: templates/sysinfo/tabs/main.php:138
msgid "Database Data Size"
msgstr "Dimensione dati database"

#: templates/sysinfo/tabs/main.php:146
msgid "Database Index Size"
msgstr "Dimensione indice database"

#: templates/sysinfo/tabs/main.php:154
msgid "Database Free Size"
msgstr "Dimensione spazio libero database"

#. Translators: %1$f: Table size, %2$f: Index size, %3$f: Free size, %4$s
#. Engine.
#: templates/sysinfo/tabs/main.php:168
msgid "Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$s"
msgstr "Dati: %1$.2fMB | Indice: %2$.2fMB | Libero: %3$.2fMB | Motore: %4$s"

#. translators: %s is the title of the post object.
#: yit-functions.php:1911
msgid "Are you sure you want to move \"%s\" to trash?"
msgstr "Sei sicuro di voler spostare \"%s\" nel cestino?"

#. translators: %s is the title of the post object.
#: yit-functions.php:1913 yit-functions.php:2073
msgid "Are you sure you want to delete \"%s\"?"
msgstr "Sei sicuro di voler eliminare \"%s\"?"

#: yit-functions.php:2011 yit-functions.php:2019 yit-functions.php:2136
msgid "Further actions"
msgstr "Altre azioni"

#: yit-plugin.php:205
msgid "License"
msgstr "Chiave di licenza"

#. Author of the plugin/theme
msgid "YITH"
msgstr "YITH"

#. translators: %s it the Elementor Widget title.
#: includes/builders/elementor/class-yith-elementor-widget.php:252
msgctxt "Elementor Widget - section title"
msgid "%s - Options"
msgstr "%s - Opzioni"

#: includes/builders/gutenberg/class-yith-gutenberg.php:149
msgctxt "[gutenberg]: Category Name"
msgid "YITH"
msgstr "YITH"

#: includes/class-yit-assets.php:134
msgctxt "Button text"
msgid "Confirm"
msgstr "Conferma"

#: includes/class-yit-assets.php:135
msgctxt "Button text"
msgid "Cancel"
msgstr "Annulla"

#: includes/class-yit-assets.php:148 yit-functions.php:1982
msgctxt "Trash confirmation action"
msgid "Yes, move to trash"
msgstr "Sì, sposta nel cestino"

#: includes/class-yit-assets.php:152 yit-functions.php:2000
#: yit-functions.php:2127
msgctxt "Delete confirmation action"
msgid "Yes, delete"
msgstr "Sì, elimina"

#: includes/class-yit-plugin-panel.php:488
msgctxt "Help tab name"
msgid "Help"
msgstr "Help"

#. translators: 1. Plugin name.
#: includes/class-yit-plugin-panel.php:798
msgctxt "Help tab default title"
msgid "Thank you for purchasing %s!"
msgstr "Grazie per aver acquistato %s!"

#: includes/class-yit-plugin-panel.php:799
msgctxt "Help tab default description"
msgid ""
"We want to help you to enjoy a wonderful experience with all our products."
msgstr ""
"Vogliamo aiutarti ad avere un'esperienza fantastica con tutti i nostri "
"prodotti."

#: includes/class-yith-dashboard.php:96
msgctxt "Plugin FW"
msgid "View Changelog"
msgstr "Visualizza il changelog"

#: includes/class-yith-dashboard.php:97
msgctxt "Plugin FW"
msgid "Latest update released on"
msgstr "Ultimo aggiornamento rilasciato il"

#: includes/class-yith-dashboard.php:137
msgctxt "Button label"
msgid "Close"
msgstr "Chiudi"

#: includes/privacy/class-yith-privacy.php:61
msgctxt "Privacy Policy Guide Title"
msgid "YITH Plugins"
msgstr "YITH Plugins"

#: includes/privacy/class-yith-privacy.php:93
msgctxt "Privacy Policy Content"
msgid ""
"This sample language includes the basics around what personal data your "
"store may be collecting, storing and sharing, as well as who may have access "
"to that data. Depending on what settings are enabled and which additional "
"plugins are used, the specific information shared by your store will vary. "
"We recommend consulting with a lawyer when deciding what information to "
"disclose on your privacy policy."
msgstr ""
"Questo esempio include gli elementi di base sulla raccolta dei dati "
"personali, la memorizzazione e la condivisione, nonché su chi è autorizzato "
"ad accedere a tali dati. In base alle impostazioni abilitate e ai moduli di "
"estensione aggiuntivi utilizzati, le informazioni specifiche condivise dal "
"nostro negozio possono variare. Ti consigliamo di consultare un legale al "
"momento di decidere quali informazioni divulgare nell'informativa sulla "
"privacy."

#: includes/privacy/class-yith-privacy.php:97
msgctxt "Privacy Policy Content"
msgid "What we collect and store"
msgstr "Cosa raccogliamo e salviamo"

#: includes/privacy/class-yith-privacy.php:100
msgctxt "Privacy Policy Content"
msgid "Who on our team has access"
msgstr "Persone del nostro gruppo di lavoro che hanno accesso"

#: includes/privacy/class-yith-privacy.php:103
msgctxt "Privacy Policy Content"
msgid "What we share with others"
msgstr "Cosa condividiamo con gli altri"

#: includes/privacy/class-yith-privacy.php:106
msgctxt "Privacy Policy Content"
msgid "Payments"
msgstr "Pagamenti"

#: templates/fields/copy-to-clipboard.php:41
msgctxt "Copy-to-clipboard message"
msgid "Copied!"
msgstr "Copiato!"

#: templates/fields/copy-to-clipboard.php:45
msgctxt "Copy-to-clipboard button text"
msgid "Copy"
msgstr "Copia"

#: templates/fields/dimensions.php:13
msgctxt "Position in the \"Dimensions\" field"
msgid "Top"
msgstr "In alto"

#: templates/fields/dimensions.php:14
msgctxt "Position in the \"Dimensions\" field"
msgid "Right"
msgstr "A destra"

#: templates/fields/dimensions.php:15
msgctxt "Position in the \"Dimensions\" field"
msgid "Bottom"
msgstr "In basso"

#: templates/fields/dimensions.php:16
msgctxt "Position in the \"Dimensions\" field"
msgid "Left"
msgstr "A sinistra"

#: templates/fields/dimensions.php:94
msgctxt "Tooltip in the \"Dimensions\" field"
msgid "Link values together"
msgstr "Collega i valori"

#: templates/fields/image-dimensions.php:18
msgctxt "Image width field label"
msgid "Width"
msgstr "Larghezza"

#: templates/fields/image-dimensions.php:23
msgctxt "Image height field label"
msgid "Height"
msgstr "Altezza"

#: templates/fields/onoff.php:28
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "YES"
msgstr "SÌ"

#: templates/fields/onoff.php:29
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "NO"
msgstr "NO"

#. translators: 1. Url to EN playlist.
#: templates/panel/help-tab.php:87
msgctxt "Help tab view all video link"
msgid ""
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
"learn more >"
msgstr ""
"Per saperne di più, vedi la <a href=\"%s\" target=\"_blank\">Playlist "
"completa su Youtube</a>>"

#: templates/panel/help-tab.php:94
msgctxt "Help tab Watch Videotutorials link"
msgid "Videos are also available in:"
msgstr "I video sono disponibili anche in:"

#: templates/panel/help-tab.php:137
msgctxt "Help tab Watch Videotutorials link"
msgid "Watch our videotutorials"
msgstr "Guarda i nostri video tutorial"

#: templates/panel/help-tab.php:140
msgctxt "Help tab Watch Videotutorials link"
msgid "We show you some use cases"
msgstr "Ti mostriamo alcuni casi d'uso"

#: templates/panel/help-tab.php:124
msgctxt "Help tab Read Documentation link"
msgid "Read the documentation"
msgstr "Consulta la documentazione"

#: templates/panel/help-tab.php:127
msgctxt "Help tab Read Documentation link"
msgid "to learn from basics how it works"
msgstr "per imparare dalle basi come funziona"

#: templates/panel/help-tab.php:150
msgctxt "Help tab view FAQs link"
msgid "Check the FAQs"
msgstr "Controlla le FAQ"

#: templates/panel/help-tab.php:153
msgctxt "Help tab view FAQs link"
msgid "to find answers to your doubts"
msgstr "per trovare le risposte ai tuoi dubbi"

#: templates/panel/help-tab.php:169
msgctxt "Help tab FAQ title"
msgid "Last FAQs in our Help Center"
msgstr "Ultime FAQ nel nostro Centro Assistenza"

#: templates/panel/help-tab.php:183
msgctxt "Help tab FAQ link"
msgid "View all FAQs >"
msgstr "Vedi tutte le FAQ"

#: templates/panel/help-tab.php:192
msgctxt "Help tab submit ticket title"
msgid "Need help?"
msgstr "Ti serve aiuto?"

#: templates/panel/help-tab.php:195
msgctxt "Help tab submit ticket description"
msgid ""
"If you are experiencing some technical issue ask help to our developers. "
"Submit a ticket in our support desk and we will help you as soon as possible."
msgstr ""
"Se stai riscontrando problemi tecnici chiedi aiuto ai nostri sviluppatori. "
"Invia un ticket dalla nostra piattaforma di supporto e ti daremo assistenza "
"il più presto possibile."

#: templates/panel/help-tab.php:203
msgctxt "Help tab submit ticket button"
msgid "Submit a ticket"
msgstr "Invia un ticket"

#: yit-functions.php:1925
msgctxt "Post action"
msgid "Preview"
msgstr "Anteprima"

#: yit-functions.php:1934
msgctxt "Post action"
msgid "View"
msgstr "Visualizza"

#: yit-functions.php:1945
msgctxt "Post action"
msgid "Edit"
msgstr "Modifica"

#: yit-functions.php:1953
msgctxt "Post action"
msgid "Duplicate"
msgstr "Duplica"

#: yit-functions.php:1965
msgctxt "Post action"
msgid "Restore"
msgstr "Ripristina"

#: yit-functions.php:1973
msgctxt "Post action"
msgid "Trash"
msgstr "Cestina"

#: yit-functions.php:1990
msgctxt "Post action"
msgid "Delete Permanently"
msgstr "Cancella definitivamente"

#: yit-functions.php:2087
msgctxt "Term action"
msgid "View"
msgstr "Visualizza"

#: yit-functions.php:2097
msgctxt "Term action"
msgid "Edit"
msgstr "Modifica"

#: yit-functions.php:2105
msgctxt "Term action"
msgid "Duplicate"
msgstr "Duplica"

#: yit-functions.php:2118
msgctxt "Term action"
msgid "Delete"
msgstr "Elimina"

#: yit-plugin.php:84
msgctxt "Plugin Row Meta"
msgid "Live Demo"
msgstr "Live Demo"

#: yit-plugin.php:88
msgctxt "Plugin Row Meta"
msgid "Documentation"
msgstr "Documentazione"

#: yit-plugin.php:92
msgctxt "Plugin Row Meta"
msgid "Support"
msgstr "Assistenza"

#: yit-plugin.php:96
msgctxt "Plugin Row Meta"
msgid "Premium version"
msgstr "Versione premium"

#: yit-plugin.php:201
msgctxt "Action links"
msgid "Settings"
msgstr "Impostazioni"
plugin-fw/languages/yith-plugin-fw-el.po000064400000074331151327614500014257 0ustar00# Translation of YITH Framework in Greek
# This file is distributed under the same license as the YITH Framework package.
msgid ""
msgstr ""
"Project-Id-Version: YITH Framework\n"
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
"POT-Creation-Date: 2021-10-21 06:52:18+00:00\n"
"PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
"Language: el_GR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"

#: includes/class-yit-assets.php:146 yit-functions.php:1979
msgid "Confirm trash"
msgstr ""

#: includes/class-yit-assets.php:147
msgid "Are you sure you want to trash the selected items?"
msgstr ""

#: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
#: yit-functions.php:1981 yit-functions.php:1999
msgid "No"
msgstr "Όχι"

#: includes/class-yit-assets.php:150 yit-functions.php:1997
#: yit-functions.php:2125
msgid "Confirm delete"
msgstr ""

#: includes/class-yit-assets.php:151
msgid "Are you sure you want to delete the selected items?"
msgstr ""

#: includes/class-yit-assets.php:151 yit-functions.php:1913
#: yit-functions.php:2073
msgid ""
"This action cannot be undone and you will not be able to recover this data."
msgstr ""

#: includes/class-yit-assets.php:164
msgid "Clear"
msgstr "Καθαρισμός"

#: includes/class-yit-assets.php:165
msgid "Clear color"
msgstr "Καθαρισμός χρώματος"

#: includes/class-yit-assets.php:166
msgid "Default"
msgstr "Προεπιλεγμένο"

#: includes/class-yit-assets.php:167
msgid "Select default color"
msgstr "Επιλογή προεπιλεγμένου χρώματος"

#: includes/class-yit-assets.php:168
msgid "Select Color"
msgstr "Επιλογή Χρώματος"

#: includes/class-yit-assets.php:169
msgid "Color value"
msgstr "Αξία χρώματος"

#: includes/class-yit-help-desk.php:152
msgid "There was an error with your request; please try again later."
msgstr ""

#: includes/class-yit-plugin-panel-woocommerce.php:423
msgid "The changes you have made will be lost if you leave this page."
msgstr ""
"Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."

#: includes/class-yit-plugin-panel.php:83
msgid "Plugin Settings"
msgstr "Ρυθμίσεις Προσθέτου"

#: includes/class-yit-plugin-panel.php:84
msgid "Settings"
msgstr "Ρυθμίσεις"

#: includes/class-yit-plugin-panel.php:451
#: includes/class-yit-plugin-panel.php:454
msgid "How to install premium version"
msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"

#: includes/class-yit-plugin-panel.php:652
#: includes/class-yit-plugin-subpanel.php:132
msgid "Save Changes"
msgstr "Αποθήκευση Αλλαγών"

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid ""
"If you continue with this action, you will reset all options in this page."
msgstr ""
"Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
"σελίδα."

#: includes/class-yit-plugin-panel.php:657
#: includes/class-yit-plugin-subpanel.php:136
#: templates/panel/woocommerce/woocommerce-form.php:14
msgid "Are you sure?"
msgstr "Είστε σίγουρος;"

#: includes/class-yit-plugin-panel.php:661
#: includes/class-yit-plugin-subpanel.php:139
msgid "Reset to default"
msgstr "Επαναφορά σε προεπιλεγμένο"

#: includes/class-yit-plugin-panel.php:979
msgid ""
"The element you have entered already exists. Please, enter another name."
msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."

#: includes/class-yit-plugin-panel.php:980
msgid "Settings saved"
msgstr "Ρυθμίσεις αποθηκεύτηκαν"

#: includes/class-yit-plugin-panel.php:981
msgid "Settings reset"
msgstr "Επαναφορά ρυθμίσεων"

#: includes/class-yit-plugin-panel.php:982
msgid "Element deleted correctly."
msgstr "Το στοιχείο διαγράφηκε επιτυχώς."

#: includes/class-yit-plugin-panel.php:983
#: includes/class-yit-plugin-panel.php:984
msgid "Element updated correctly."
msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."

#: includes/class-yit-plugin-panel.php:985
msgid "Database imported correctly."
msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."

#: includes/class-yit-plugin-panel.php:986
msgid "An error has occurred during import. Please try again."
msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."

#: includes/class-yit-plugin-panel.php:987
msgid "The added file is not valid."
msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."

#: includes/class-yit-plugin-panel.php:988
msgid "Sorry, import is disabled."
msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."

#: includes/class-yit-plugin-panel.php:989
msgid "Sorting successful."
msgstr "Διαλογή επιτυχής."

#: includes/class-yit-plugin-panel.php:1457
msgid "We need your support"
msgstr "Χρειαζόμαστε την υποστήριξή σας"

#: includes/class-yit-plugin-panel.php:1458
msgid "to keep updating and improving the plugin. Please,"
msgstr ""
"για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"

#: includes/class-yit-plugin-panel.php:1460
msgid "help us by leaving a good review"
msgstr ""

#: includes/class-yit-plugin-panel.php:1461
msgid ":) Thanks!"
msgstr ":) Ευχαριστώ!"

#: includes/class-yit-pointers.php:80
msgid "Plugins Activated"
msgstr "Ενεργοποιημένα Πρόσθετα"

#: includes/class-yit-pointers.php:81
msgid ""
"From now on, you can find all plugin options in YITH menu. Plugin "
"customization settings will be available as a new entry in YITH menu."
msgstr ""

#. translators: 1. YITH site link; 2. WordPress site link.
#: includes/class-yit-pointers.php:84 includes/class-yit-pointers.php:100
msgid "Discover all our plugins available on: %1$s and %2$s"
msgstr "Ανακαλύψτε όλα τα διαθέσιμά μας πρόσθετα στο: %1$s και %2$s"

#: includes/class-yit-pointers.php:96
msgid "Plugins Upgraded"
msgstr "Αναβαθμισμένα Πρόσθετα"

#: includes/class-yit-pointers.php:97
msgid ""
"From now on, you can find the option panel of YITH plugins in YITH menu. "
"Every time one of our plugins is added, a new entry will be added to this "
"menu. For example, after the update, plugin options (such as for YITH "
"WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from "
"previous location to YITH menu."
msgstr ""

#: includes/class-yith-dashboard.php:35
msgid "YITH Latest Updates"
msgstr "Τελευταίες Αναβαθμίσεις YITH"

#: includes/class-yith-dashboard.php:36
msgid "Latest news from YITH Blog"
msgstr "Τελευταία νέα από YITH Blog"

#: includes/class-yith-dashboard.php:56
msgid "RSS Error:"
msgstr "Σφάλμα RSS:"

#: includes/class-yith-dashboard.php:63
msgid ""
"An error has occurred, which probably means the feed is down. Try again "
"later."
msgstr ""
"Παρουσιάστηκε σφάλμα, που πιθανότατα σημαίνει ότι έπεσε το τροφοδοτικό. "
"Προσπαθήστε ξανά αργότερα."

#. translators: %s is the name of the post type (example Back to "Membership
#. Plans").
#: includes/class-yith-post-type-admin.php:286
msgid "Back to \"%s\""
msgstr ""

#: includes/class-yith-post-type-admin.php:286
msgid "Back to the list"
msgstr ""

#: includes/class-yith-system-status.php:110
msgid "WordPress Version"
msgstr "Έκδοση WordPress"

#: includes/class-yith-system-status.php:111
msgid "WooCommerce Version"
msgstr "Έκδοση WooCommerce"

#: includes/class-yith-system-status.php:112
msgid "Available Memory"
msgstr "Διαθέσιμη Μνήμη"

#: includes/class-yith-system-status.php:113
msgid "PHP Version"
msgstr "Έκδοση PHP"

#: includes/class-yith-system-status.php:114
msgid "TLS Version"
msgstr "Έκδοση TLS"

#: includes/class-yith-system-status.php:115
msgid "WordPress Cron"
msgstr "WordPress Cron"

#: includes/class-yith-system-status.php:116
msgid "SimpleXML"
msgstr "SimpleXML"

#: includes/class-yith-system-status.php:117
msgid "MultiByte String"
msgstr "MultiByte String"

#: includes/class-yith-system-status.php:118
msgid "ImageMagick Version"
msgstr "Έκδοση ImageMagick"

#: includes/class-yith-system-status.php:119
msgid "GD Library"
msgstr "Βιβλιοθήκη GD"

#: includes/class-yith-system-status.php:120
msgid "Iconv Module"
msgstr "Άρθρωμα Iconv"

#: includes/class-yith-system-status.php:121
msgid "OPCache Save Comments"
msgstr "OPCache Save Comments"

#: includes/class-yith-system-status.php:122
msgid "URL FOpen"
msgstr "URL FOpen"

#: includes/class-yith-system-status.php:140
#: includes/class-yith-system-status.php:141
#: templates/sysinfo/system-information-panel.php:11
msgid "System Status"
msgstr "Κατάσταση Συστήματος"

#: includes/class-yith-system-status.php:183
msgid "YITH Plugins"
msgstr "Πρόσθετα YITH"

#: includes/class-yith-system-status.php:191
msgid "WooCommerce"
msgstr "WooCommerce"

#: includes/class-yith-system-status.php:342
msgid "Warning!"
msgstr "Προσοχή!"

#. translators: %1$s open link tag, %2$s open link tag
#: includes/class-yith-system-status.php:346
msgid ""
"The system check has detected some compatibility issues on your installation."
"%1$sClick here%2$s to know more"
msgstr ""
"Ο έλεγχος συστήματος έχει εντοπίσει κάποια προβλήματα συμβατότητας στην "
"εγκατάστασή σας.%1$sΚάντε κλικ εδώ%2$s για να μάθετε περισσότερα"

#: includes/class-yith-system-status.php:488
msgid "Enabled"
msgstr "Ενεργοποιημένο"

#: includes/class-yith-system-status.php:488
msgid "Disabled"
msgstr "Απενεργοποιημένο"

#: includes/class-yith-system-status.php:493
msgid "N/A"
msgstr "N/A"

#. translators: %1$s plugin name, %2$s requirement name
#: includes/class-yith-system-status.php:520
msgid "%1$s needs %2$s enabled"
msgstr "%1$s χρειάζεται %2$s ενεργοποιημένο"

#. translators: %1$s plugin name, %2$s required memory amount
#: includes/class-yith-system-status.php:523
msgid "%1$s needs at least %2$s of available memory"
msgstr "%1$s χρειάζεται τουλάχιστον %2$s διαθέσιμης μνήμης"

#. translators: %1$s plugin name, %2$s version number
#: includes/class-yith-system-status.php:526
msgid "%1$s needs at least %2$s version"
msgstr "%1$s χρειάζεται τουλάχιστον %2$s έκδοση"

#: includes/class-yith-system-status.php:550
msgid ""
"Update it to the latest version in order to benefit of all new features and "
"security updates."
msgstr ""
"Κάντε αναβάθμιση της τελευταίας έκδοσης για να επωφεληθείτε από τα νέα "
"χαρακτηριστικά και τις αναβαθμίσεις προστασίας."

#: includes/class-yith-system-status.php:554
#: includes/class-yith-system-status.php:560
msgid "Contact your hosting company in order to update it."
msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να αναβαθμίσετε."

#: includes/class-yith-system-status.php:558
msgid "Contact your hosting company in order to install it."
msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να το ενεργοποιήσετε."

#. translators: %1$s code, %2$s file name
#: includes/class-yith-system-status.php:565
msgid "Remove %1$s from %2$s file"
msgstr "Αφαίρεση %1$s από αρχείο %2$s"

#: includes/class-yith-system-status.php:573
msgid "Contact your hosting company in order to enable it."
msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να ενεργοποιήσετε."

#. translators: %1$s opening link tag, %2$s closing link tag
#: includes/class-yith-system-status.php:577
#: includes/class-yith-system-status.php:600
msgid ""
"Read more %1$shere%2$s or contact your hosting company in order to increase "
"it."
msgstr ""
"Μάθετε περισσότερα %1$sεδώ%2$s ή επικοινωνήστε με την εταιρεία hosting σας "
"για να το βελτιώσετε."

#. translators: %s recommended memory amount
#: includes/class-yith-system-status.php:597
msgid ""
"For optimal functioning of our plugins, we suggest setting at least %s of "
"available memory"
msgstr ""
"Για την βέλτιστη λειτουργικότητα των προσθέτων μας, προτείνουμε να ορίσετε "
"τουλάχιστον %s διαθέσιμης μνήμης"

#. translators: %1$s TLS label, %2$s cURL label
#: includes/class-yith-system-status.php:605
msgid ""
"The system check cannot determine which %1$s version is installed because "
"%2$s module is disabled. Ask your hosting company to enable it."
msgstr ""
"Το σύστημα δεν μπορεί να καθορίσει ποια %1$s έκδοση έχει εγκατασταθεί γιατί "
"το %2$s άρθρωμα είναι απενεργοποιημένο. Ζητήστε από την εταιρεία hosting σας "
"να το ενεργοποιήσει."

#. translators: %1$s TLS label
#: includes/class-yith-system-status.php:608
msgid ""
"The system check cannot determine which %1$s version is installed due to a "
"connection issue between your site and our server."
msgstr ""
"Ο έλεγχος συστήματος δεν μπορεί να διευκρινήσει ποια έκδοση %1$s έχει "
"εγκατασταθεί λόγω προβλήματος σύνδεσης ανάμεσα στον ιστότοπο σας και τον "
"διακομιστή μας."

#: templates/fields/ajax-customers.php:41
msgid "Search Customers"
msgstr "Αναζήτηση Πελατών"

#. translators: 1. user display name; 2. user ID; 3. user email.
#: templates/fields/ajax-customers.php:68
#: templates/fields/ajax-customers.php:79
msgid "%1$s (#%2$s &ndash; %3$s)"
msgstr "%1$s (#%2$s &ndash; %3$s)"

#: templates/fields/ajax-posts.php:41
msgid "Search Posts"
msgstr "Αναζήτηση Άρθρου"

#: templates/fields/ajax-products.php:14
msgid "Search Product"
msgstr "Αναζήτηση Προϊόντος"

#: templates/fields/ajax-terms.php:41
msgid "Search Categories"
msgstr "Αναζήτηση Κατηγοριών"

#: templates/fields/customtabs.php:17
msgid "Close all"
msgstr "Απενεργοποίηση όλων"

#: templates/fields/customtabs.php:17
msgid "Expand all"
msgstr "Ανάπτυξη όλων"

#: templates/fields/customtabs.php:25 templates/fields/customtabs.php:68
msgid "Remove"
msgstr "Αφαίρεση"

#: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
msgid "Name"
msgstr "Όνομα"

#: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
msgid "Value"
msgstr "Τιμή"

#: templates/fields/customtabs.php:41 templates/fields/customtabs.php:82
msgid "Content of the tab. (HTML is supported)"
msgstr "Περιεχόμενο καρτέλας. (Υποστηρίζεται HTML)"

#: templates/fields/customtabs.php:52
msgid "Add custom product tab"
msgstr "Προσθέστε καρτέλα προσαρμοσμένου προϊόντος"

#: templates/fields/customtabs.php:93
msgid "Do you want to remove the custom tab?"
msgstr "Θέλετε να αφαιρέσετε την προσαρμοσμένη καρτέλα;"

#: templates/fields/date-format.php:65
msgid "Custom:"
msgstr "Προσαρμογή:"

#: templates/fields/date-format.php:70
msgid "Preview:"
msgstr "Προεπισκόπηση:"

#: templates/fields/icons.php:78
msgid "Set Default"
msgstr "Ορίστε Προεπιλεγμένο"

#: templates/fields/image-gallery.php:29 templates/fields/image-gallery.php:40
msgid "Delete image"
msgstr "Διαγραφή εικόνας"

#: templates/fields/image-gallery.php:37
msgid "Add Images to Gallery"
msgstr "Προσθέστε Εικόνες στη Συλλογή"

#: templates/fields/image-gallery.php:38
msgid "Add to gallery"
msgstr "Προσθέστε στη συλλογή"

#: templates/fields/image-gallery.php:39
msgid "Add images"
msgstr "Προσθέστε εικόνες"

#: templates/fields/image-gallery.php:41
msgid "Delete"
msgstr "Διαγραφή"

#: templates/fields/select-buttons.php:19
msgid "Add All"
msgstr "Προσθήκη Όλων"

#: templates/fields/select-buttons.php:32
msgid "Remove All"
msgstr "Αφαίρεση Όλων"

#: templates/fields/sidebars.php:20
msgid "Left sidebar"
msgstr "Αριστερή πλευρική στήλη"

#: templates/fields/sidebars.php:23
msgid "Right sidebar"
msgstr "Δεξιά πλευρική στήλη"

#: templates/fields/sidebars.php:26 templates/fields/sidebars.php:29
msgid "No sidebar"
msgstr "Χωρίς πλευρική στήλη"

#: templates/fields/sidebars.php:39
msgid "Left Sidebar"
msgstr "Αριστερή Πλευρική Στήλη"

#: templates/fields/sidebars.php:41 templates/fields/sidebars.php:56
msgid "Choose a sidebar"
msgstr "Επιλέξτε πλευρική στήλη"

#: templates/fields/sidebars.php:54
msgid "Right Sidebar"
msgstr "Δεξιά Πλευρική Στήλη"

#: templates/fields/upload.php:34
#: templates/panel/woocommerce/woocommerce-upload.php:37
msgid "Upload"
msgstr "Ανέβασμα"

#: templates/fields/upload.php:39
msgid "Reset"
msgstr "Επαναφορά"

#: templates/panel/woocommerce/woocommerce-form.php:28
#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Save Options"
msgstr ""

#: templates/panel/woocommerce/woocommerce-form.php:32
msgid "Options Saved"
msgstr ""

#: templates/panel/woocommerce/woocommerce-form.php:38
msgid "Reset Defaults"
msgstr "Επαναφορά Προεπιλεγμένων"

#: templates/sysinfo/system-information-panel.php:12
msgid "PHPInfo"
msgstr "PHPInfo"

#: templates/sysinfo/system-information-panel.php:13
#: templates/sysinfo/tabs/error-log.php:25
msgid "Log Files"
msgstr "Αρχεία Καταγραφής"

#: templates/sysinfo/system-information-panel.php:22
msgid "YITH System Information"
msgstr "Σύστημα Πληροφοριών YITH"

#: templates/sysinfo/tabs/error-log.php:13
msgid "WP debug.log file"
msgstr "Αρχείο WP debug.log"

#: templates/sysinfo/tabs/error-log.php:18
msgid "PHP error_log file"
msgstr "Αρχείο PHP error_log"

#: templates/sysinfo/tabs/error-log.php:60
msgid "Download"
msgstr "Κατέβασμα"

#: templates/sysinfo/tabs/error-log.php:72
msgid "The file size exceeds 8 megabytes so it must be downloaded"
msgstr ""
"Το μέγεθος αρχείου υπερβαίνει τα 8 megabytes οπότε θα πρέπει να το κατεβάσετε"

#. translators: %s file name.
#: templates/sysinfo/tabs/error-log.php:96
msgid ""
"No Log file available. Enable the WordPress debug by adding this in the %s "
"file of your installation"
msgstr ""
"Δεν υπάρχει διαθέσιμο αρχείο Καταγραφής. Ενεργοποιήστε την αποσφαλμάτωση "
"WordPress προσθέτοντάς το στο αρχείο %s της εγκατάστασής σας"

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copied!"
msgstr "Έγινε αντιγραφή!"

#: templates/sysinfo/tabs/error-log.php:105
msgid "Copy Code"
msgstr "Αντιγραφή Κώδικα"

#: templates/sysinfo/tabs/main.php:17
msgid "Site Info"
msgstr "Στοιχεία Ιστότοπου"

#: templates/sysinfo/tabs/main.php:22
msgid "Site URL"
msgstr "URL Ιστοσελίδας"

#: templates/sysinfo/tabs/main.php:31
msgid "Output IP Address"
msgstr "Διεύθυνση IP Παραγωγής"

#: templates/sysinfo/tabs/main.php:39
msgid "Defined WP_CACHE"
msgstr "Καθορισμένο WP_CACHE"

#: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
msgid "Yes"
msgstr "Ναι"

#: templates/sysinfo/tabs/main.php:47
msgid "External object cache"
msgstr "Cache εξωτερικού αντικειμένου"

#: templates/sysinfo/tabs/main.php:55
msgid "YITH Plugin Framework Version"
msgstr ""

#. translators: %s is the name of the plugin that is loading the framework.
#: templates/sysinfo/tabs/main.php:64
msgid "loaded by %s"
msgstr ""

#: templates/sysinfo/tabs/main.php:73
msgid "Plugins Requirements"
msgstr "Προϋποθέσεις Πρόσθετων"

#: templates/sysinfo/tabs/main.php:108
msgid "Database Info"
msgstr ""

#: templates/sysinfo/tabs/main.php:113
msgid "MySQL version"
msgstr ""

#. Translators: %s: Codex link.
#: templates/sysinfo/tabs/main.php:123
msgid "WordPress recommends a minimum MySQL version of 5.6. See: %s"
msgstr ""

#: templates/sysinfo/tabs/main.php:123
msgid "WordPress requirements"
msgstr ""

#: templates/sysinfo/tabs/main.php:130
msgid "Total Database Size"
msgstr ""

#: templates/sysinfo/tabs/main.php:138
msgid "Database Data Size"
msgstr ""

#: templates/sysinfo/tabs/main.php:146
msgid "Database Index Size"
msgstr ""

#: templates/sysinfo/tabs/main.php:154
msgid "Database Free Size"
msgstr ""

#. Translators: %1$f: Table size, %2$f: Index size, %3$f: Free size, %4$s
#. Engine.
#: templates/sysinfo/tabs/main.php:168
msgid "Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$s"
msgstr ""

#. translators: %s is the title of the post object.
#: yit-functions.php:1911
msgid "Are you sure you want to move \"%s\" to trash?"
msgstr ""

#. translators: %s is the title of the post object.
#: yit-functions.php:1913 yit-functions.php:2073
msgid "Are you sure you want to delete \"%s\"?"
msgstr ""

#: yit-functions.php:2011 yit-functions.php:2019 yit-functions.php:2136
msgid "Further actions"
msgstr ""

#: yit-plugin.php:205
msgid "License"
msgstr "Άδεια χρήσης προϊόντος"

#. Author of the plugin/theme
msgid "YITH"
msgstr "YITH"

#. translators: %s it the Elementor Widget title.
#: includes/builders/elementor/class-yith-elementor-widget.php:252
msgctxt "Elementor Widget - section title"
msgid "%s - Options"
msgstr ""

#: includes/builders/gutenberg/class-yith-gutenberg.php:149
msgctxt "[gutenberg]: Category Name"
msgid "YITH"
msgstr "YITH"

#: includes/class-yit-assets.php:134
msgctxt "Button text"
msgid "Confirm"
msgstr ""

#: includes/class-yit-assets.php:135
msgctxt "Button text"
msgid "Cancel"
msgstr ""

#: includes/class-yit-assets.php:148 yit-functions.php:1982
msgctxt "Trash confirmation action"
msgid "Yes, move to trash"
msgstr ""

#: includes/class-yit-assets.php:152 yit-functions.php:2000
#: yit-functions.php:2127
msgctxt "Delete confirmation action"
msgid "Yes, delete"
msgstr ""

#: includes/class-yit-plugin-panel.php:488
msgctxt "Help tab name"
msgid "Help"
msgstr ""

#. translators: 1. Plugin name.
#: includes/class-yit-plugin-panel.php:798
msgctxt "Help tab default title"
msgid "Thank you for purchasing %s!"
msgstr ""

#: includes/class-yit-plugin-panel.php:799
msgctxt "Help tab default description"
msgid ""
"We want to help you to enjoy a wonderful experience with all our products."
msgstr ""

#: includes/class-yith-dashboard.php:96
msgctxt "Plugin FW"
msgid "View Changelog"
msgstr "Προβολή Αρχείου Καταγραφής"

#: includes/class-yith-dashboard.php:97
msgctxt "Plugin FW"
msgid "Latest update released on"
msgstr "Τελευταία αναβάθμιση κυκλοφόρησε στις"

#: includes/class-yith-dashboard.php:137
msgctxt "Button label"
msgid "Close"
msgstr "Απενεργοποίηση"

#: includes/privacy/class-yith-privacy.php:61
msgctxt "Privacy Policy Guide Title"
msgid "YITH Plugins"
msgstr "Πρόσθετα YITH"

#: includes/privacy/class-yith-privacy.php:93
msgctxt "Privacy Policy Content"
msgid ""
"This sample language includes the basics around what personal data your "
"store may be collecting, storing and sharing, as well as who may have access "
"to that data. Depending on what settings are enabled and which additional "
"plugins are used, the specific information shared by your store will vary. "
"We recommend consulting with a lawyer when deciding what information to "
"disclose on your privacy policy."
msgstr ""
"Αυτό το δείγμα γλώσσας περιλαμβάνει τα βασικά στοιχεία γύρω από το τι "
"προσωπικά δεδομένα το κατάστημά σας μπορεί να συλλέγει, την αποθήκευση και "
"την κοινή χρήση, καθώς και ποιοι μπορεί να έχουν πρόσβαση σε αυτά τα "
"δεδομένα. Ανάλογα με τις ρυθμίσεις που είναι ενεργοποιημένες και ποια "
"επιπλέον πρόσθετα χρησιμοποιούνται, οι συγκεκριμένες πληροφορίες που "
"κοινοποιούνται από το κατάστημά σας θα ποικίλλουν. Συνιστούμε τη διαβούλευση "
"με έναν δικηγόρο, όταν αποφασίζετε ποιες πληροφορίες να αποκαλύπτετε στην "
"πολιτική απορρήτου σας."

#: includes/privacy/class-yith-privacy.php:97
msgctxt "Privacy Policy Content"
msgid "What we collect and store"
msgstr "Τι συλλέγουμε και αποθηκεύουμε"

#: includes/privacy/class-yith-privacy.php:100
msgctxt "Privacy Policy Content"
msgid "Who on our team has access"
msgstr "Ποιος στην ομάδα μας έχει πρόσβαση"

#: includes/privacy/class-yith-privacy.php:103
msgctxt "Privacy Policy Content"
msgid "What we share with others"
msgstr "Τι μοιραζόμαστε με τους άλλους"

#: includes/privacy/class-yith-privacy.php:106
msgctxt "Privacy Policy Content"
msgid "Payments"
msgstr "Πληρωμές"

#: templates/fields/copy-to-clipboard.php:41
msgctxt "Copy-to-clipboard message"
msgid "Copied!"
msgstr ""

#: templates/fields/copy-to-clipboard.php:45
msgctxt "Copy-to-clipboard button text"
msgid "Copy"
msgstr ""

#: templates/fields/dimensions.php:13
msgctxt "Position in the \"Dimensions\" field"
msgid "Top"
msgstr "Κορυφή"

#: templates/fields/dimensions.php:14
msgctxt "Position in the \"Dimensions\" field"
msgid "Right"
msgstr "Δεξιά"

#: templates/fields/dimensions.php:15
msgctxt "Position in the \"Dimensions\" field"
msgid "Bottom"
msgstr "Κάτω"

#: templates/fields/dimensions.php:16
msgctxt "Position in the \"Dimensions\" field"
msgid "Left"
msgstr "Αριστερά"

#: templates/fields/dimensions.php:94
msgctxt "Tooltip in the \"Dimensions\" field"
msgid "Link values together"
msgstr "Συνδέστε αξίες"

#: templates/fields/image-dimensions.php:18
msgctxt "Image width field label"
msgid "Width"
msgstr ""

#: templates/fields/image-dimensions.php:23
msgctxt "Image height field label"
msgid "Height"
msgstr ""

#: templates/fields/onoff.php:28
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "YES"
msgstr "ΝΑΙ"

#: templates/fields/onoff.php:29
msgctxt "YES/NO button: use MAX 4 characters!"
msgid "NO"
msgstr "ΟΧΙ"

#. translators: 1. Url to EN playlist.
#: templates/panel/help-tab.php:87
msgctxt "Help tab view all video link"
msgid ""
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
"learn more >"
msgstr ""

#: templates/panel/help-tab.php:94
msgctxt "Help tab Watch Videotutorials link"
msgid "Videos are also available in:"
msgstr ""

#: templates/panel/help-tab.php:137
msgctxt "Help tab Watch Videotutorials link"
msgid "Watch our videotutorials"
msgstr ""

#: templates/panel/help-tab.php:140
msgctxt "Help tab Watch Videotutorials link"
msgid "We show you some use cases"
msgstr ""

#: templates/panel/help-tab.php:124
msgctxt "Help tab Read Documentation link"
msgid "Read the documentation"
msgstr ""

#: templates/panel/help-tab.php:127
msgctxt "Help tab Read Documentation link"
msgid "to learn from basics how it works"
msgstr ""

#: templates/panel/help-tab.php:150
msgctxt "Help tab view FAQs link"
msgid "Check the FAQs"
msgstr ""

#: templates/panel/help-tab.php:153
msgctxt "Help tab view FAQs link"
msgid "to find answers to your doubts"
msgstr ""

#: templates/panel/help-tab.php:169
msgctxt "Help tab FAQ title"
msgid "Last FAQs in our Help Center"
msgstr ""

#: templates/panel/help-tab.php:183
msgctxt "Help tab FAQ link"
msgid "View all FAQs >"
msgstr ""

#: templates/panel/help-tab.php:192
msgctxt "Help tab submit ticket title"
msgid "Need help?"
msgstr ""

#: templates/panel/help-tab.php:195
msgctxt "Help tab submit ticket description"
msgid ""
"If you are experiencing some technical issue ask help to our developers. "
"Submit a ticket in our support desk and we will help you as soon as possible."
msgstr ""

#: templates/panel/help-tab.php:203
msgctxt "Help tab submit ticket button"
msgid "Submit a ticket"
msgstr ""

#: yit-functions.php:1925
msgctxt "Post action"
msgid "Preview"
msgstr ""

#: yit-functions.php:1934
msgctxt "Post action"
msgid "View"
msgstr ""

#: yit-functions.php:1945
msgctxt "Post action"
msgid "Edit"
msgstr ""

#: yit-functions.php:1953
msgctxt "Post action"
msgid "Duplicate"
msgstr ""

#: yit-functions.php:1965
msgctxt "Post action"
msgid "Restore"
msgstr ""

#: yit-functions.php:1973
msgctxt "Post action"
msgid "Trash"
msgstr ""

#: yit-functions.php:1990
msgctxt "Post action"
msgid "Delete Permanently"
msgstr ""

#: yit-functions.php:2087
msgctxt "Term action"
msgid "View"
msgstr ""

#: yit-functions.php:2097
msgctxt "Term action"
msgid "Edit"
msgstr ""

#: yit-functions.php:2105
msgctxt "Term action"
msgid "Duplicate"
msgstr ""

#: yit-functions.php:2118
msgctxt "Term action"
msgid "Delete"
msgstr ""

#: yit-plugin.php:84
msgctxt "Plugin Row Meta"
msgid "Live Demo"
msgstr "Live Demo"

#: yit-plugin.php:88
msgctxt "Plugin Row Meta"
msgid "Documentation"
msgstr "Εγχειρίδιο χρήσης"

#: yit-plugin.php:92
msgctxt "Plugin Row Meta"
msgid "Support"
msgstr "Υποστήριξη"

#: yit-plugin.php:96
msgctxt "Plugin Row Meta"
msgid "Premium version"
msgstr "Premium έκδοση"

#: yit-plugin.php:201
msgctxt "Action links"
msgid "Settings"
msgstr "Ρυθμίσεις"
plugin-fw/languages/yith-plugin-fw-es_ES.mo000064400000044406151327614500014652 0ustar00�����@A[,s �
����
"61Nh%�3�,2>
q��������	!
03>4r3�'�	"!8Z@b���
��!&(O\4e%����-�-
5@ZV��E9
�!�/�7�B$@g;�=�g"3��-���'�&�6p?��J�'Gey���	��
����d�
P[
q���#��� - M e u � � )� '� (� &(!O!n!�!�!�!�!�!�!�!�	"0�#0�#1$'G$
o$Oz$�$�$
�$�$�$%
%
+%9%F%S%e%v%�%�%�%�%�%�%�%	�%	�%�%&&
3&A&M&`&v&�&�&>�&H�&:='�x'}(l�(=�(K+)6w)�),�)	�)]�)W*^*d*v**�*�*�*�*<�*+')+(Q+z++�+�+�+�+�+ �+,2(,5[,�-�-1�-'�-
!./.7.D.*d.�.�.M�.h/+n/B�/8�/O0f0w0
�0�0�0�0	�0�0�0�0�0�01#!12E1<x1>�1/�1
$2/2>2
E2P2C_2)�2"�2(�2 3&:3a3p3�3
�3�3�3;�3-�3	4!&4#H4
l4z4
�4�4_�4�5��5h7
w7�7(�7�72�7+888$U8Zz8�8�8
�8�9�9�9%�9`�9"I:
l:Rz:�:�:�:#�:;-;E;N;c;t;�;�;�;��;<,<H<[<s<�<�<#�<�<�<�<==!=4=F=d=v=	�=�=�=�=�=�=
�=	�=
�=�=
�=>�>�?�?%
@0@
@@MK@�@$�@
�@�@#�@#A)A?AUAeAvA�A�A�A�A �A�ABB"B	4B>B
UB-cB#�B�B�B�B�B�B�B"�BACLUC@�C��C��D�*EI�ED�E@F"WFzF	�Fr�FGGG1G>GSG_GwG�GE�G�GHHH 
H#.HRH_HH�H'�H�HF�Hq�gWa5�6R X=7{�Y��x
��4��&
��%I~���?'H�Q�V�S,��}U��E3l.p>��KeD�	����MP[]t�*��"��b���B�����w��#!|-mN�+�����$�1�u�/�k<s�d9Z�OrF@;�A)o��y:\�n�z0f���^�`�ThG��J��(i�cj_��v2�CL�8����%1$s (#%2$s &ndash; %3$s)%1$s needs %2$s enabled%1$s needs at least %2$s of available memory%1$s needs at least %2$s version:) Thanks!Action linksSettingsAdd AllAdd Images to GalleryAdd custom product tabAdd imagesAdd to galleryAn error has occurred during import. Please try again.An error has occurred, which probably means the feed is down. Try again later.Are you sure you want to delete "%s"?Are you sure you want to delete the selected items?Are you sure you want to move "%s" to trash?Are you sure you want to trash the selected items?Are you sure?Available MemoryBack to "%s"Back to the listButton labelCloseButton textCancelButton textConfirmChoose a sidebarClearClear colorClose allColor valueConfirm deleteConfirm trashContact your hosting company in order to enable it.Contact your hosting company in order to install it.Contact your hosting company in order to update it.Content of the tab. (HTML is supported)Copied!Copy CodeCopy-to-clipboard button textCopyCopy-to-clipboard messageCopied!Custom:Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$sDatabase Data SizeDatabase Free SizeDatabase Index SizeDatabase InfoDatabase imported correctly.DefaultDefined WP_CACHEDeleteDelete confirmation actionYes, deleteDelete imageDisabledDiscover all our plugins available on: %1$s and %2$sDo you want to remove the custom tab?DownloadElement deleted correctly.Element updated correctly.Elementor Widget - section title%s - OptionsEnabledExpand allExternal object cacheFor optimal functioning of our plugins, we suggest setting at least %s of available memoryFrom now on, you can find all plugin options in YITH menu. Plugin customization settings will be available as a new entry in YITH menu.From now on, you can find the option panel of YITH plugins in YITH menu. Every time one of our plugins is added, a new entry will be added to this menu. For example, after the update, plugin options (such as for YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) will be moved from previous location to YITH menu.Further actionsGD LibraryHelp tab FAQ linkView all FAQs >Help tab FAQ titleLast FAQs in our Help CenterHelp tab Read Documentation linkRead the documentationHelp tab Read Documentation linkto learn from basics how it worksHelp tab Watch Videotutorials linkVideos are also available in:Help tab Watch Videotutorials linkWatch our videotutorialsHelp tab Watch Videotutorials linkWe show you some use casesHelp tab default descriptionWe want to help you to enjoy a wonderful experience with all our products.Help tab default titleThank you for purchasing %s!Help tab nameHelpHelp tab submit ticket buttonSubmit a ticketHelp tab submit ticket descriptionIf you are experiencing some technical issue ask help to our developers. Submit a ticket in our support desk and we will help you as soon as possible.Help tab submit ticket titleNeed help?Help tab view FAQs linkCheck the FAQsHelp tab view FAQs linkto find answers to your doubtsHelp tab view all video linkCheck the full <a href="%s" target="_blank">Playlist on Youtube</a> to learn more >How to install premium versionIconv ModuleIf you continue with this action, you will reset all options in this page.Image height field labelHeightImage width field labelWidthImageMagick VersionLatest news from YITH BlogLeft SidebarLeft sidebarLicenseLog FilesMultiByte StringMySQL versionN/ANameNoNo Log file available. Enable the WordPress debug by adding this in the %s file of your installationNo sidebarOPCache Save CommentsOptions SavedOutput IP AddressPHP VersionPHP error_log filePHPInfoPlugin FWLatest update released onPlugin FWView ChangelogPlugin Row MetaDocumentationPlugin Row MetaLive DemoPlugin Row MetaPremium versionPlugin Row MetaSupportPlugin SettingsPlugins ActivatedPlugins RequirementsPlugins UpgradedPosition in the "Dimensions" fieldBottomPosition in the "Dimensions" fieldLeftPosition in the "Dimensions" fieldRightPosition in the "Dimensions" fieldTopPost actionDelete PermanentlyPost actionDuplicatePost actionEditPost actionPreviewPost actionRestorePost actionTrashPost actionViewPreview:Privacy Policy ContentPaymentsPrivacy Policy ContentThis sample language includes the basics around what personal data your store may be collecting, storing and sharing, as well as who may have access to that data. Depending on what settings are enabled and which additional plugins are used, the specific information shared by your store will vary. We recommend consulting with a lawyer when deciding what information to disclose on your privacy policy.Privacy Policy ContentWhat we collect and storePrivacy Policy ContentWhat we share with othersPrivacy Policy ContentWho on our team has accessPrivacy Policy Guide TitleYITH PluginsRSS Error:Read more %1$shere%2$s or contact your hosting company in order to increase it.RemoveRemove %1$s from %2$s fileRemove AllResetReset DefaultsReset to defaultRight SidebarRight sidebarSave ChangesSave OptionsSearch CategoriesSearch CustomersSearch PostsSearch ProductSelect ColorSelect default colorSet DefaultSettingsSettings resetSettings savedSimpleXMLSite InfoSite URLSorry, import is disabled.Sorting successful.System StatusTLS VersionTerm actionDeleteTerm actionDuplicateTerm actionEditTerm actionViewThe added file is not valid.The changes you have made will be lost if you leave this page.The element you have entered already exists. Please, enter another name.The file size exceeds 8 megabytes so it must be downloadedThe system check cannot determine which %1$s version is installed because %2$s module is disabled. Ask your hosting company to enable it.The system check cannot determine which %1$s version is installed due to a connection issue between your site and our server.The system check has detected some compatibility issues on your installation.%1$sClick here%2$s to know moreThere was an error with your request; please try again later.This action cannot be undone and you will not be able to recover this data.Tooltip in the "Dimensions" fieldLink values togetherTotal Database SizeTrash confirmation actionYes, move to trashURL FOpenUpdate it to the latest version in order to benefit of all new features and security updates.UploadValueWP debug.log fileWarning!We need your supportWooCommerceWooCommerce VersionWordPress CronWordPress VersionWordPress recommends a minimum MySQL version of 5.6. See: %sWordPress requirementsYES/NO button: use MAX 4 characters!NOYES/NO button: use MAX 4 characters!YESYITHYITH Latest UpdatesYITH Plugin Framework VersionYITH PluginsYITH System InformationYes[gutenberg]: Category NameYITHhelp us by leaving a good reviewloaded by %sto keep updating and improving the plugin. Please,Project-Id-Version: YITH Framework
Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>
PO-Revision-Date: 2021-09-28 13:56:41+0000
Language: es
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
%1$s (#%2$s &ndash; %3$s)%1$s necesita %2$s activado%1$s necesita al menos %2$s de memoria disponible%1$s necesita al menos la versión %2$s:) ¡Gracias!AjustesAñadir todoAñadir imágenes a la GaleríaAñadir pestaña de producto personalizadaAñadir imágenesAñadir a la galeríaHa ocurrido un error durante la importación. Por favor, inténtalo de nuevo.Ha ocurrido un error, lo que puede que signifique que el feed ha caído. Inténtalo de nuevo más tarde.¿Estás seguro de que quieres borrar "%s"?¿Estás seguro de que quieres borrar los elementos seleccionados?¿Estás seguro de que quieres mover "%s" a la papelera?¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?¿Estás seguro?Memoria disponibleVolver a "%s"Volver a la listaCerrarCancelarConfirmarElige una barra lateralBorrarBorrar colorCerrar todoValor del colorConfirmar el borradoConfirmar el traslado a la papeleraContacta con tu empresa de hosting para activarlo.Ponte en contacto con tu empresa de hosting para instalarlo.Ponte en contacto con tu empresa de hosting para actualizarlo.Contenido de la pestaña. (Compatible con HTML)¡Copiado!Copiar códigoCopiar¡Copiado!Personalizado:Datos: %1$.2fMB | Índice: %2$.2fMB | Libre: %3$.2fMB | Motor: %4$sTamaño de los datos en la base de datos:Espacio libre en la base de datos:Tamaño del índice en la base de datos:Información de la base de datosBase de datos importada correctamente.PredeterminadoWP_CACHE definidoEliminarSi, borrarEliminar imagenDesactivadoDescubre todos nuestros plugins disponibles en: %1$s y %2$s¿Quieres eliminar la pestaña personalizada?DescargarElemento eliminado correctamente.Elemento actualizado correctamente.%s - OpcionesActivadoExpandir todoCaché objeto externoPara el óptimo funcionamiento de nuestros plugins, sugerimos al menos %s de memoria disponibleDesde ahora, puedes encontrar todas las opciones de los plugins en el menú YITH plugins. La personalización de los ajustes del plugins estará disponible como una nueva entrada en el menú YITH plugins.Desde ahora puedes encontrar la opción en el panel de Plugins de YITH en el menú YITH plugins. Cada vez que uno de nuestros plugins es añadido, una nueva entrada será añadida a este menú. Por ejemplo, tras la actualización, las opciones de los plugins (tales como YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) serán movidos de la ubicación previa a la pestaña de YITH plugins.Otras accionesBiblioteca GDVer todos los FAQs >Últimos FAQs en nuestro Centro de AyudaLee la documentaciónpara aprender desde lo más básico cómo funcionaLos vídeos también están disponibles en:Vea nuestros videotutorialesTe mostramos algunos ejemplos de usoQueremos ayudarte a disfrutar de una experiencia maravillosa con todos nuestros productos.¡Gracias por comprar %s!AyudaEnviar ticketSi tienes algún problema técnico, pide ayuda a nuestros desarrolladores. Envía un ticket en nuestro panel de soporte y te ayudaremos lo antes posible.¿Necesitas ayuda?Comprueba los FAQpara encontrar respuestas a tus dudasConsulta la <a href="%s" target="_blank">Lista de reproducción en Youtube</a> para saber más >Cómo instalar la versión premiumMódulo IconvSi continúas con esta acción, restablecerás todas las opciones en esta página.AlturaAnchuraVersión ImageMagickÚltimas novedades del Blog de YITHBarra lateral izquierdaBarra lateral izquierdaLicenciaArchivos de registroCadena MultiByteVersión de MySQLN/DNombreNoNo hay archivo de registro disponible. Activa la depuración de WordPress añadiendo este código en el archivo %s de tu instalaciónSin barra lateralGuardar comentarios OPCacheOpciones guardadasDirección IP de salidaVersión PHPArchivo PHP error_logInformación PHPÚltima actualización publicada elVer Registro de cambiosDocumentaciónDemostración en vivoVersión premiumSoporteAjustes del pluginPlugins activadosRequerimientos de los pluginsPlugins mejoradosParte inferiorIzquierdaDerechaParte superiorBorrar permanentementeDuplicarEditarPrevisualizarRestaurarA la papeleraVerVista previa:PagosEste idioma de prueba incluye la información principal sobre qué tipo de información puede estar recopilando, almacenando y compartiendo tu tienda, así como quién tiene acceso a esa información. Dependiendo de los ajustes configurados y qué plugins adicionales sean usados, la información específica compartida por tu sitio variará. Recomendamos consultar con un abogado cuando decidas qué información mostrar en tu política de privacidad.Qué recopilamos y almacenamosQué compartimos con otrosQuién en nuestro equipo tiene accesoPlugins de YITHError RSS:Lee más %1$saquí%2$s o contacta a tu empresa de hosting para incrementarlo.EliminarEliminar %1$s desde el archivo %2$s Eliminar todoRestablecerRestablecer valores predeterminadosRestablecer valores predeterminadosBarra lateral derechaBarra lateral derechaGuardar cambiosGuardar OpcionesBuscar categoríasBuscar clientesBuscar entradasBuscar productoSeleccionar colorSeleccionar color predeterminadoEstablecer predeterminadoAjustesRestablecer ajustesAjustes guardadosSimpleXMLInformación del sitioURL del sitioLo siento, la importación está desactivada.Clasificación realizada con éxitoEstado del sistemaVersión TLSBorrarDuplicarEditarVerEl archivo añadido no es válido.Los cambios que has hecho se perderán si abandonas esta página.El elemento que has introducido ya existe. Por favor, introduce otro nombre.El archivo excede los 8 megabytes por lo que debe ser descargadoLa comprobación del sistema no ha podido determinar qué versión de %1$s está instalada porque el módulo %2$s está desactivado. Solicita a tu compañia de hosting que lo active.La comprobación del sistema no ha podido determinar qué versión de %1$s está instalada debido a un error entre tu sitio y nuestro servidor.La comprobación del sistema ha detectado algunos problemas de compatibilidad en tu instalación.%1$sHaz clic quí%2$s para saber másSe ha producido un error en tu solicitud; inténtalo de nuevo más tarde.Esta acción no se puede revertir y no podrá recuperar estos datos.Enlazar valores juntosTamaño total de la base de datos:Sí, mover a la papeleraURL FOpenActualízalo a la última versión para beneficiarte de todas las características y actualizaciones de seguridad.SubirValorArchivo WP debug.log¡Atención!Necesitamos tu apoyoWooCommerceVersión de WooCommerceCron de WordPressVersión de WordPressWordPress recomienda como versión mínima para MySQL la 5.6. Ver: %sRequerimientos de WordPressNOSÍYITHÚltimas actualizaciones de YITHVersión del YITH Plugin Framework YITH PluginsInformación de Sistema de YITHSíYITHayúdanos dejando una buena valoracióncargado por %spara que podamos seguir actualizando y mejorando el plugin. Por favor,plugin-fw/templates/sysinfo/system-information-panel.php000064400000003253151327614500017630 0ustar00<?php
/**
 * The Template for displaying the System Information Panel.
 *
 * @package YITH\PluginFramework\Templates\SysInfo
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$section_tabs = array(
	'main'      => esc_html__( 'System Status', 'yith-plugin-fw' ),
	'php-info'  => esc_html__( 'PHPInfo', 'yith-plugin-fw' ),
	'error-log' => esc_html__( 'Log Files', 'yith-plugin-fw' ),
);

$current_tab = isset( $_GET['tab'] ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : 'main'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$tab_path    = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';

?>
<div id="yith-sysinfo" class="wrap yith-system-info yith-plugin-ui">
	<h2 class="yith-sysinfo-title">
		<span class="yith-logo"><img src="<?php echo esc_url( yith_plugin_fw_get_default_logo() ); ?>"/></span> <?php esc_html_e( 'YITH System Information', 'yith-plugin-fw' ); ?>
	</h2>

	<h2 class="nav-tab-wrapper">
		<ul class="yith-plugin-fw-tabs">
			<?php foreach ( $section_tabs as $key => $tab_value ) : ?>
				<?php
				$active_class = ( $current_tab === $key ) ? ' nav-tab-active' : '';
				$url          = add_query_arg( array( 'tab' => $key ) );
				?>
				<li class="yith-plugin-fw-tab-element">
					<a class="nav-tab <?php echo esc_attr( $active_class ); ?>" href="<?php echo esc_url( $url ); ?>"><?php echo esc_html( $tab_value ); ?></a>
				</li>
			<?php endforeach; ?>
		</ul>
	</h2>
	<div id="wrap" class="yith-plugin-fw plugin-option yit-admin-panel-container">
		<div class="yith-system-info-wrap">
			<?php require_once $tab_path . "/templates/sysinfo/tabs/$current_tab.php"; ?>
		</div>
	</div>
</div>
plugin-fw/templates/sysinfo/tabs/php-info.php000064400000002002151327614500015324 0ustar00<?php
/**
 * The Template for displaying PHP Information.
 *
 * @package YITH\PluginFramework\Templates\SysInfo
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

ob_start();
phpinfo( 61 ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure_phpinfo
$php_info = ob_get_contents();
ob_end_clean();

$php_info = preg_replace( '%^.*<div class="center">(.*)</div>.*$%ms', '$1', $php_info );
$php_info = preg_replace( '%^<h1>(.*)</h1>$%ms', '', $php_info );
$php_info = preg_replace( '%(^.*)<a name=\".*\">(.*)</a>(.*$)%m', '$1$2$3', $php_info );
$php_info = preg_replace( '%^<h2>((\w*-*\w*)|(\w*\s*\w*))</h2>$%m', '</div><div id="$1"><h2>$1</h2>', $php_info );
$php_info = str_replace( '<table>', '<table class="form-table" role="presentation">', $php_info );
$php_info = str_replace( '<td class="e">', '<th class="e">', $php_info );
$php_info = str_replace( '<hr />', '', $php_info );

?>
<div class="yith-phpinfo-wrap">
	<?php
	echo '<div id="main">' . $php_info; //phpcs:ignore
	?>
</div>
plugin-fw/templates/sysinfo/tabs/main.php000064400000013152151327614500014540 0ustar00<?php
/**
 * The Template for displaying the Main page of the System Information.
 *
 * @package YITH\PluginFramework\Templates\SysInfo
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$system_info    = get_option( 'yith_system_info' );
$output_ip      = YITH_System_Status()->get_output_ip();
$labels         = YITH_System_Status()->requirement_labels;
$plugin_fw_info = YITH_System_Status()->get_plugin_fw_info();
$database_info  = YITH_System_Status()->get_database_info();
?>
<h2>
	<?php esc_html_e( 'Site Info', 'yith-plugin-fw' ); ?>
</h2>
<table class="form-table" role="presentation">
	<tr>
		<th scope="row">
			<?php esc_html_e( 'Site URL', 'yith-plugin-fw' ); ?>
		</th>
		<td class="info-value">
			<?php echo esc_html( get_site_url() ); ?>
		</td>

	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'Output IP Address', 'yith-plugin-fw' ); ?>
		</th>
		<td class="info-value">
			<?php echo esc_html( $output_ip ); ?>
		</td>
	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'Defined WP_CACHE', 'yith-plugin-fw' ); ?>
		</th>
		<td class="info-value">
			<?php echo( defined( 'WP_CACHE' ) && WP_CACHE ? esc_html__( 'Yes', 'yith-plugin-fw' ) : esc_html__( 'No', 'yith-plugin-fw' ) ); ?>
		</td>
	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'External object cache', 'yith-plugin-fw' ); ?>
		</th>
		<td class="info-value">
			<?php echo( wp_using_ext_object_cache() ? esc_html__( 'Yes', 'yith-plugin-fw' ) : esc_html__( 'No', 'yith-plugin-fw' ) ); ?>
		</td>
	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'YITH Plugin Framework Version', 'yith-plugin-fw' ); ?>
		</th>
		<td class="info-value">
			<?php
			echo esc_html(
				sprintf(
					'%s (%s)',
					$plugin_fw_info['version'],
					// translators: %s is the name of the plugin that is loading the framework.
					sprintf( __( 'loaded by %s', 'yith-plugin-fw' ), $plugin_fw_info['loaded_by'] )
				)
			);
			?>
		</td>
	</tr>
</table>

<h2>
	<?php esc_html_e( 'Plugins Requirements', 'yith-plugin-fw' ); ?>
</h2>
<table class="form-table" role="presentation">
	<?php foreach ( $system_info['system_info'] as $key => $item ) : ?>
		<?php
		$has_errors   = isset( $item['errors'] );
		$has_warnings = isset( $item['warnings'] );
		?>
		<tr>
			<th scope="row">
				<?php echo esc_html( $labels[ $key ] ); ?>
			</th>
			<td class="requirement-value <?php echo( $has_errors ? 'has-errors' : '' ); ?> <?php echo( $has_warnings ? 'has-warnings' : '' ); ?>">
				<span class="dashicons dashicons-<?php echo( $has_errors || $has_warnings ? 'warning' : 'yes' ); ?>"></span>
				<?php
				YITH_System_Status()->format_requirement_value( $key, $item['value'] );
				?>
			</td>
			<td class="requirement-messages">
				<?php
				if ( $has_errors ) {
					YITH_System_Status()->print_error_messages( $key, $item, $labels[ $key ] );
					YITH_System_Status()->print_solution_suggestion( $key, $item, $labels[ $key ] );
				} elseif ( $has_warnings ) {
					YITH_System_Status()->print_warning_messages( $key );
				}
				?>
			</td>
		</tr>
	<?php endforeach; ?>
</table>
<?php
$db_error = version_compare( $database_info['mysql_version'], '5.6', '<' ) && ! strstr( $database_info['mysql_version_string'], 'MariaDB' );
?>
<h2>
	<?php esc_html_e( 'Database Info', 'yith-plugin-fw' ); ?>
</h2>
<table class="form-table" role="presentation">
	<tr>
		<th scope="row">
			<?php esc_html_e( 'MySQL version', 'yith-plugin-fw' ); ?>
		</th>
		<td class="requirement-value <?php echo( $db_error ? 'has-errors' : '' ); ?>" style="width:auto!important">
			<span class="dashicons dashicons-<?php echo( $db_error ? 'warning' : 'yes' ); ?>"></span>
			<?php echo esc_attr( $database_info['mysql_version'] . ' - ' . $database_info['mysql_version_string'] ); ?>
		</td>
		<td class="requirement-messages">
			<?php
			if ( $db_error ) {
				/* Translators: %s: Codex link. */
				echo sprintf( esc_html__( 'WordPress recommends a minimum MySQL version of 5.6. See: %s', 'yith-plugin-fw' ), '<a href="https://wordpress.org/about/requirements/" target="_blank">' . esc_html__( 'WordPress requirements', 'yith-plugin-fw' ) . '</a>' );
			}
			?>
		</td>
	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'Total Database Size', 'yith-plugin-fw' ); ?>
		</th>
		<td colspan="2">
			<?php printf( '%.2fMB', esc_html( $database_info['database_size']['data'] + $database_info['database_size']['index'] + $database_info['database_size']['free'] ) ); ?>
		</td>
	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'Database Data Size', 'yith-plugin-fw' ); ?>
		</th>
		<td colspan="2">
			<?php printf( '%.2fMB', esc_html( $database_info['database_size']['data'] ) ); ?>
		</td>
	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'Database Index Size', 'yith-plugin-fw' ); ?>
		</th>
		<td colspan="2">
			<?php printf( '%.2fMB', esc_html( $database_info['database_size']['index'] ) ); ?>
		</td>
	</tr>
	<tr>
		<th scope="row">
			<?php esc_html_e( 'Database Free Size', 'yith-plugin-fw' ); ?>
		</th>
		<td colspan="2">
			<?php printf( '%.2fMB', esc_html( $database_info['database_size']['free'] ) ); ?>
		</td>
	</tr>
	<?php foreach ( $database_info['database_tables'] as $table => $table_data ) : ?>
		<tr>
			<th scope="row">
				<?php echo esc_html( $table ); ?>
			</th>
			<td colspan="2">
				<?php
				/* Translators: %1$f: Table size, %2$f: Index size, %3$f: Free size, %4$s Engine. */
				printf( esc_html__( 'Data: %1$.2fMB | Index: %2$.2fMB | Free: %3$.2fMB | Engine: %4$s', 'yith-plugin-fw' ), esc_html( number_format( $table_data['data'], 2 ) ), esc_html( number_format( $table_data['index'], 2 ) ), esc_html( number_format( $table_data['free'], 2 ) ), esc_html( $table_data['engine'] ) );
				?>
			</td>
		</tr>
	<?php endforeach; ?>
</table>
plugin-fw/templates/sysinfo/tabs/error-log.php000064400000005456151327614500015534 0ustar00<?php
/**
 * The Template for displaying the Error Log.
 *
 * @package YITH\PluginFramework\Templates\SysInfo
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$debug_files = array(
	// WordPress' debug.log file.
	'debug.log' => array(
		'label' => __( 'WP debug.log file', 'yith-plugin-fw' ),
		'path'  => WP_CONTENT_DIR . '/debug.log',
	),
	// PHP error_log file.
	'error_log' => array(
		'label' => __( 'PHP error_log file', 'yith-plugin-fw' ),
		'path'  => ABSPATH . 'error_log',
	),
);

?>
<h2>
	<?php esc_html_e( 'Log Files', 'yith-plugin-fw' ); ?>
</h2>
<table class="form-table" role="presentation">
	<?php
	global $wp_filesystem;

	if ( empty( $wp_filesystem ) ) {
		require_once ABSPATH . '/wp-admin/includes/file.php';
		WP_Filesystem();
	}

	$max_file_size = 8388608; // 8 MB.
	$missing_files = 0;
	?>

	<?php foreach ( $debug_files as $key => $debug_file ) : ?>
		<?php
		if ( ! file_exists( $debug_file['path'] ) ) {
			$missing_files ++;
			continue;
		}

		$file_size = filesize( $debug_file['path'] );
		?>
		<tr>
			<th scope="row"><label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $debug_file['label'] ); ?></label></th>
			<td>
				<?php
				if ( $file_size > $max_file_size ) {
					yith_plugin_fw_get_field(
						array(
							'id'      => $key,
							'type'    => 'buttons',
							'buttons' => array(
								array(
									'name'  => __( 'Download', 'yith-plugin-fw' ),
									'class' => 'yith-download-log',
									'data'  => array(
										'action' => 'yith_create_log_file',
										'file'   => $key,
									),
								),
							),
						),
						true
					);

					echo '<span class="description">' . esc_html__( 'The file size exceeds 8 megabytes so it must be downloaded', 'yith-plugin-fw' ) . '</span>';

				} else {
					yith_plugin_fw_get_field(
						array(
							'id'                => $key,
							'type'              => 'textarea',
							'value'             => $wp_filesystem->get_contents( $debug_file['path'] ),
							'class'             => 'yith-system-info-debug',
							'custom_attributes' => 'readonly',
						),
						true
					);
				}
				?>
			</td>
		</tr>
	<?php endforeach; ?>

	<?php if ( 2 === $missing_files ) : ?>
		<tr>
			<td>
				<?php
				// translators: %s file name.
				echo sprintf( esc_html__( 'No Log file available. Enable the WordPress debug by adding this in the %s file of your installation', 'yith-plugin-fw' ), '<code>wp-config.php</code>' );
				?>
				<br/>
				<br/>
				<span class="debug-code">
					define( 'WP_DEBUG', true );<br/>
					define( 'WP_DEBUG_LOG', true );<br/>
					define( 'WP_DEBUG_DISPLAY', false );<br/>
				</span>
				<a href="#" data-tooltip="<?php esc_attr_e( 'Copied!', 'yith-plugin-fw' ); ?>" class="copy-link"><?php esc_html_e( 'Copy Code', 'yith-plugin-fw' ); ?></a>
			</td>
		</tr>
	<?php endif; ?>
</table>
plugin-fw/templates/upgrade/error.php000064400000006527151327614500013761 0ustar00<?php
/**
 * The Template for displaying the plugin changelog error.
 *
 * @var string $error The error.
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<meta name="viewport" content="width=device-width">
	<meta name="robots" content="noindex,follow">
	<title>WordPress › Error</title>
	<style type="text/css">
		html {
			background : #f1f1f1;
		}

		.container {
			background         : #fff;
			color              : #444;
			font-family        : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
			margin             : 2em auto;
			padding            : 1em 2em;
			max-width          : 700px;
			-webkit-box-shadow : 0 1px 3px rgba(0, 0, 0, 0.13);
			box-shadow         : 0 1px 3px rgba(0, 0, 0, 0.13);
		}

		h1 {
			border-bottom  : 1px solid #dadada;
			clear          : both;
			color          : #666;
			font-size      : 24px;
			margin         : 30px 0 0 0;
			padding        : 0 0 7px 0;
		}

		#error {
			margin-top : 50px;
		}

		#error p {
			font-size   : 14px;
			line-height : 1.5;
			margin      : 25px 0 20px;
		}

		#error code {
			font-family : Consolas, Monaco, monospace;
		}

		ul li {
			margin-bottom : 10px;
			font-size     : 14px;
		}

		a {
			color : #0073aa;
		}

		a:hover,
		a:active {
			color : #00a0d2;
		}

		a:focus {
			color              : #124964;
			-webkit-box-shadow : 0 0 0 1px #5b9dd9,
			0 0 2px 1px rgba(30, 140, 190, .8);
			box-shadow         : 0 0 0 1px #5b9dd9,
			0 0 2px 1px rgba(30, 140, 190, .8);
			outline            : none;
		}

		.button {
			background            : #f7f7f7;
			border                : 1px solid #ccc;
			color                 : #555;
			display               : inline-block;
			text-decoration       : none;
			font-size             : 13px;
			line-height           : 26px;
			height                : 28px;
			margin                : 0;
			padding               : 0 10px 1px;
			cursor                : pointer;
			-webkit-border-radius : 3px;
			-webkit-appearance    : none;
			border-radius         : 3px;
			white-space           : nowrap;
			-webkit-box-sizing    : border-box;
			-moz-box-sizing       : border-box;
			box-sizing            : border-box;

			-webkit-box-shadow    : 0 1px 0 #ccc;
			box-shadow            : 0 1px 0 #ccc;
			vertical-align        : top;
		}

		.button.button-large {
			height      : 30px;
			line-height : 28px;
			padding     : 0 12px 2px;
		}

		.button:hover,
		.button:focus {
			background   : #fafafa;
			border-color : #999;
			color        : #23282d;
		}

		.button:focus {
			border-color       : #5b9dd9;
			-webkit-box-shadow : 0 0 3px rgba(0, 115, 170, .8);
			box-shadow         : 0 0 3px rgba(0, 115, 170, .8);
			outline            : none;
		}

		.button:active {
			background         : #eee;
			border-color       : #999;
			-webkit-box-shadow : inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
			box-shadow         : inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
			-webkit-transform  : translateY(1px);
			-ms-transform      : translateY(1px);
			transform          : translateY(1px);
		}

	</style>
</head>
<body>
<div id="error" class="container">
	<p><?php echo wp_kses_post( $error ); ?></p>
</div>

</body>
</html>
plugin-fw/templates/upgrade/changelog.php000064400000002421151327614500014544 0ustar00<?php
/**
 * The Template for displaying the plugin changelog.
 *
 * @var string $plugin_name The plugin name.
 * @var string $changelog   The changelog.
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<meta name="viewport" content="width=device-width">
	<meta name="robots" content="noindex,follow">
	<title><?php echo esc_html( $plugin_name ); ?> - Changelog</title>
	<style type="text/css">
		body {
			background  : #ffffff;
			color       : #444;
			font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
			font-size   : 13px;
			line-height : 1.4em;
			padding     : 10px;
		}

		h2.yith-plugin-changelog-title {
			text-transform : uppercase;
			font-size      : 17px;
		}

		ul {
			list-style : none;
			padding    : 0;
		}

		li {
			display       : list-item;
			margin-bottom : 6px;
		}
	</style>
</head>
<body>
	<h2 class='yith-plugin-changelog-title'><?php echo esc_html( $plugin_name ); ?> - Changelog</h2>
	<div class='yith-plugin-changelog'><?php echo wp_kses_post( $changelog ); ?></div>
</body>
</html>
plugin-fw/templates/panel/panel-field-container.php000064400000002523151327614500016430 0ustar00<?php
/**
 * The Template for displaying the panel field container.
 *
 * @var array $option   The field.
 * @var mixed $db_value The field value stored in DB.
 * @author     Leanza Francesco <leanzafrancesco@gmail.com>
 * @since      3.0.0
 * @package    YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$field_id   = $this->get_id_field( $option['id'] );
$name       = $this->get_name_field( $option['id'] );
$field_type = $option['type'];

$field          = $option;
$field['id']    = $field_id;
$field['name']  = $name;
$field['value'] = $db_value;
if ( ! empty( $custom_attributes ) ) {
	$field['custom_attributes'] = $custom_attributes;
}

$container_id      = $field_id . '-container';
$container_classes = array(
	'yit_options',
	'yith-plugin-fw-field-wrapper',
	"yith-plugin-fw-{$field_type}-field-wrapper",
);
$container_classes = implode( ' ', $container_classes );
?>
<div id="<?php echo esc_attr( $container_id ); ?>" class="<?php echo esc_attr( $container_classes ); ?>" <?php echo yith_panel_field_deps_data( $option, $this ); ?>>
	<div class="option">
		<?php yith_plugin_fw_get_field( $field, true, false ); ?>
	</div>

	<?php if ( ! empty( $field['desc'] ) ) : ?>
		<span class="description"><?php echo wp_kses_post( $field['desc'] ); ?></span>
	<?php endif; ?>

	<div class="clear"></div>
</div>
plugin-fw/templates/panel/woocommerce/woocommerce-panel.php000064400000001366151327614500020227 0ustar00<?php
/**
 * The Template for displaying the WooCommerce Panel.
 *
 * @var YIT_Plugin_Panel_WooCommerce $this           The YITH WooCommerce Panel.
 * @var string                       $page           The current page.
 * @var string                       $wrap_class     The wrapper class.
 * @var array                        $available_tabs The available tabs.
 * @package    YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

add_thickbox();
?>
<div class="wrap <?php echo esc_attr( $wrap_class ); ?>">
	<div id="icon-users" class="icon32"><br/></div>
	<?php

	do_action( 'yith_plugin_fw_before_woocommerce_panel', $page );

	if ( ! empty( $available_tabs ) ) {
		$this->print_panel_content();
	}
	?>
</div>
plugin-fw/templates/panel/woocommerce/woocommerce-form.php000064400000004536151327614500020075 0ustar00<?php
/**
 * The Template for displaying the WooCommerce form.
 *
 * @var YIT_Plugin_Panel_WooCommerce $this       The YITH WooCommerce Panel.
 * @var string                       $option_key The current option key ( see YIT_Plugin_Panel::get_current_option_key() ).
 * @package    YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
$container_id  = $this->settings['page'] . '_' . $option_key;
$reset_warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) . '\n' . __( 'Are you sure?', 'yith-plugin-fw' );
?>

<div id="<?php echo esc_attr( $container_id ); ?>" class="yith-plugin-fw  yit-admin-panel-container">

	<?php do_action( 'yit_framework_before_print_wc_panel_content', $option_key ); ?>

	<div class="<?php echo esc_attr( $content_class ); ?>">
		<form id="plugin-fw-wc" method="post">

			<?php $this->add_fields(); ?>

			<p class="submit" style="float: left;margin: 0 10px 0 0;">
				<?php wp_nonce_field( 'yit_panel_wc_options_' . $this->settings['page'], 'yit_panel_wc_options_nonce' ); ?>
				<input class="button-primary" id="main-save-button" type="submit" value="<?php esc_html_e( 'Save Options', 'yith-plugin-fw' ); ?>"/>
			</p>

			<?php if ( apply_filters( 'yit_framework_show_float_save_button', true ) ) : ?>
				<button id="yith-plugin-fw-float-save-button" class="button button-primary yith-plugin-fw-animate__appear-from-bottom" data-default-label="<?php esc_attr_e( 'Save Options', 'yith-plugin-fw' ); ?>" data-saved-label="<?php esc_attr_e( 'Options Saved', 'yith-plugin-fw' ); ?>"><i class="yith-icon yith-icon-save"></i> <?php esc_html_e( 'Save Options', 'yith-plugin-fw' ); ?></button>
			<?php endif; ?>
		</form>
		<form id="plugin-fw-wc-reset" method="post">
			<input type="hidden" name="yit-action" value="wc-options-reset"/>
			<?php wp_nonce_field( 'yith_wc_reset_options_' . $this->settings['page'], 'yith_wc_reset_options_nonce' ); ?>
			<input type="submit" name="yit-reset" class="button-secondary" value="<?php esc_html_e( 'Reset Defaults', 'yith-plugin-fw' ); ?>"
					onclick="return confirm('<?php echo esc_attr( $reset_warning ); ?>');"/>
		</form>
	</div>

	<?php do_action( 'yit_framework_after_print_wc_panel_content', $option_key ); ?>

</div>
plugin-fw/templates/panel/woocommerce/woocommerce-option-row.php000064400000003515151327614500021243 0ustar00<?php
/**
 * The Template for displaying the WooCommerce option row.
 *
 * @var array  $field       The field.
 * @var string $description The description.
 * @package    YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$default_field   = array(
	'id'    => '',
	'title' => isset( $field['name'] ) ? $field['name'] : '',
	'desc'  => '',
);
$field           = wp_parse_args( $field, $default_field );
$extra_row_class = isset( $field['extra_row_class'] ) ? $field['extra_row_class'] : '';

$display_row = ! in_array( $field['type'], array( 'hidden', 'html', 'sep', 'simple-text', 'title', 'list-table' ), true );
$display_row = isset( $field['yith-display-row'] ) ? ! ! $field['yith-display-row'] : $display_row;
$is_required = ! empty( $field['required'] );

$extra_row_classes = $is_required ? array( 'yith-plugin-fw--required' ) : array();
$extra_row_classes = (array) apply_filters( 'yith_plugin_fw_panel_wc_extra_row_classes', $extra_row_classes, $field );

$row_classes = array( 'yith-plugin-fw-panel-wc-row', $field['type'] );
$row_classes = array_merge( $row_classes, $extra_row_classes, array( $extra_row_class ) );
$row_classes = implode( ' ', $row_classes );

?>
<tr valign="top" class="<?php echo esc_attr( $row_classes ); ?>" <?php echo yith_field_deps_data( $field ); ?>>
	<?php if ( $display_row ) : ?>
		<th scope="row" class="titledesc">
			<label for="<?php echo esc_attr( $field['id'] ); ?>"><?php echo wp_kses_post( $field['title'] ); ?></label>
		</th>
		<td class="forminp forminp-<?php echo esc_attr( $field['type'] ); ?>">
			<?php yith_plugin_fw_get_field( $field, true ); ?>
			<?php echo '<span class="description">' . wp_kses_post( $field['desc'] ) . '</span>'; ?>
		</td>
	<?php else : ?>
		<td colspan="2">
			<?php yith_plugin_fw_get_field( $field, true ); ?>
		</td>
	<?php endif; ?>
</tr>
plugin-fw/templates/panel/woocommerce/woocommerce-upload.php000064400000004473151327614500020416 0ustar00<?php
/**
 * The Template for displaying WooCommerce upload.
 *
 * @var YIT_Plugin_Panel_WooCommerce $this   The YITH WooCommerce Panel.
 * @var string                       $id     The option ID.
 * @var string                       $name   The name.
 * @var array                        $option The option array.
 * @var string                       $value  The value.
 * @var string                       $desc   The description.
 * @author     Emanuela Castorina <emanuela.castorina@yithemes.it>
 * @package    YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$hidden_val = get_option( $id . '-yith-attachment-id', 0 );

?>

<tr valign="top">
	<th scope="row" class="image_upload">
		<label for="<?php echo esc_attr( $id ); ?>"><?php echo esc_html( $name ); ?></label>
	</th>
	<td class="forminp forminp-color plugin-option">
		<div id="<?php echo esc_attr( $id ); ?>-container" class="yit_options rm_option rm_input rm_text rm_upload"
			<?php if ( isset( $option['deps'] ) ) : ?>
				data-field="<?php echo esc_attr( $id ); ?>"
				data-dep="<?php echo esc_attr( $this->get_id_field( $option['deps']['ids'] ) ); ?>"
				data-value="<?php echo esc_attr( $option['deps']['values'] ); ?>"
			<?php endif ?>
		>
			<div class="option">
				<input type="text" name="<?php echo esc_attr( $id ); ?>" id="<?php echo esc_attr( $id ); ?>"
						value="<?php echo in_array( $value, array( '1', 1 ), true ) ? '' : esc_attr( $value ); ?>" class="yith-plugin-fw-upload-img-url"/>
				<input type="hidden" name="<?php echo esc_attr( $id ); ?>-yith-attachment-id" id="<?php echo esc_attr( $id ); ?>-yith-attachment-id" value="<?php echo esc_attr( $hidden_val ); ?>"/>
				<input type="button" value="<?php esc_attr_e( 'Upload', 'yith-plugin-fw' ); ?>" id="<?php echo esc_attr( $id ); ?>-button"
						class="yith-plugin-fw-upload-button"/>
			</div>
			<div class="clear"></div>
			<span class="description"><?php echo wp_kses_post( $desc ); ?></span>

			<div class="yith-plugin-fw-upload-img-preview" style="margin-top:10px;">
				<?php
				$file = $value;
				if ( preg_match( '/(jpg|jpeg|png|gif|ico)$/', $file ) ) {
					$file_url = YIT_CORE_PLUGIN_URL . 'assets/images/sleep.png';
					echo '<img src="' . esc_url( $file_url ) . '" data-src="' . esc_attr( $file ) . '" />';
				}
				?>
			</div>
		</div>
	</td>
</tr>
plugin-fw/templates/panel/custom-tab.php000064400000002742151327614500014351 0ustar00<?php
/**
 * The Template for displaying the custom tab.
 *
 * @var array  $options         Array of options.
 * @var string $current_tab     The current tab.
 * @var string $current_sub_tab The current sub-tab.
 *
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$defaults       = array(
	'action'         => '',
	'show_container' => false,
	'title'          => '',
);
$is_sub_tab     = ! ! $current_sub_tab;
$options        = wp_parse_args( $options, $defaults );
$the_action     = $options['action'];
$show_container = $options['show_container'];
$the_title      = $options['title'];
$tab_id         = sanitize_key( implode( '-', array_filter( array( 'yith-plugin-fw-panel-custom-tab', $current_tab, $current_sub_tab ) ) ) );
?>
<?php if ( $show_container ) : ?>
	<div id='<?php echo esc_attr( $tab_id ); ?>' class='yith-plugin-fw-panel-custom-tab-container'>
	<?php if ( $is_sub_tab ) : ?>
		<div class='yith-plugin-fw-panel-custom-sub-tab-container'>
	<?php endif; ?>
<?php endif; ?>

<?php if ( $the_title ) : ?>
	<h2 class="yith-plugin-fw-panel-custom-tab-title"><?php echo wp_kses_post( $the_title ); ?></h2>
<?php endif; ?>

<?php do_action( $the_action ); ?>

<?php if ( $show_container ) : ?>
	<?php if ( $is_sub_tab ) : ?>
		</div><!-- /.yith-plugin-fw-panel-custom-sub-tab-container -->
	<?php endif; ?>
	</div><!-- /.yith-plugin-fw-panel-custom-tab-container -->
<?php endif; // phpcs:ignore Generic.Files.EndFileNewline.NotFound ?>plugin-fw/templates/panel/infobox.php000064400000001276151327614500013740 0ustar00<?php
/**
 * The Template for displaying info-box.
 *
 * @var string $id      The CSS of the box.
 * @var string $name    The name of the box.
 * @var array  $default Array of defaults.
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

?>
<div id="<?php echo esc_attr( $id ); ?>" class="meta-box-sortables">
	<div id="<?php echo esc_attr( $id ); ?>-content-panel" class="postbox " style="display: block;">
		<h3><?php echo esc_html( $name ); ?></h3>
		<div class="inside">
			<p>Lorem ipsum ... </p>
			<p class="submit"><a href="<?php echo esc_url( $default['buy_url'] ); ?>" class="button-primary">Buy Plugin</a></p>
		</div>
	</div>
</div>
plugin-fw/templates/panel/help-tab.php000064400000017512151327614500013770 0ustar00<?php
/**
 * The Template for displaying the Help tab.
 *
 * @var array  $options         Array of options.
 * @var string $current_tab     The current tab.
 * @var string $current_sub_tab The current sub-tab.
 * @var array  $latest_articles Latest HC articles.
 *
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$current_locale       = substr( get_user_locale(), 0, 2 );
$the_title            = $options['title'];
$the_description      = $options['description'];
$show_articles        = $options['show_hc_articles'] && ! empty( $latest_articles );
$show_submit_ticket   = $options['show_submit_ticket'] && $options['submit_ticket_url'];
$has_video            = $options['main_video'] && ! empty( $options['main_video']['url'] );
$show_view_all_faq    = ! ! $options['hc_url'];
$has_any_playlist     = ! ! $options['playlists'];
$has_additional_links = $has_any_playlist || ! ! $options['doc_url'] || $show_view_all_faq;
$has_default_playlist = $options['playlists'] && ! empty( $options['playlists'] );

// search for correct video url.
$video_url = false;

if ( $has_video ) {
	if ( is_array( $options['main_video']['url'] ) ) {
		if ( ! empty( $options['main_video']['url'][ $current_locale ] ) ) {
			$video_url = $options['main_video']['url'][ $current_locale ];
		} elseif ( ! empty( $options['main_video']['url']['en'] ) ) {
			$video_url = $options['main_video']['url']['en'];
		}
	} else {
		$video_url = $options['main_video']['url'];
	}
}

// search for correct playlist.
$default_playlist = false;

if ( $has_default_playlist ) {
	if ( is_array( $options['playlists'] ) ) {
		if ( ! empty( $options['playlists'][ $current_locale ] ) ) {
			$default_playlist = $options['playlists'][ $current_locale ];
		} elseif ( ! empty( $options['playlists']['en'] ) ) {
			$default_playlist = $options['playlists']['en'];
		}
	} else {
		$default_playlist = $options['playlists'];
	}
}
?>

<div id='yith_plugin_fw_panel_help_tab' class='yith-plugin-fw-panel-help-tab-container'>
	<div class="yith-plugin-fw-panel-help-tab-content">
		<?php if ( $the_title ) : ?>
			<h2 class="yith-plugin-fw-panel-help-tab-title"><?php echo wp_kses_post( $the_title ); ?></h2>
		<?php endif; ?>

		<?php if ( $the_description ) : ?>
			<p class="yith-plugin-fw-panel-tab-description">
				<?php echo wp_kses_post( $the_description ); ?>
			</p>
		<?php endif; ?>

		<?php if ( $has_video || $has_additional_links ) : ?>
			<div class="row">
				<?php if ( $video_url ) : ?>
					<div class="yith-plugin-fw-help-tab-video <?php echo $has_additional_links ? 'column-left' : 'full-width'; ?>">
						<?php if ( isset( $options['main_video']['desc'] ) ) : ?>
							<p class="video-description"><?php echo wp_kses_post( $options['main_video']['desc'] ); ?></p>
						<?php endif; ?>

						<div class="video-container">
							<iframe src="<?php echo esc_url( $video_url ); ?>"></iframe>
						</div>

						<?php if ( $has_any_playlist ) : ?>
							<div class="video-caption">
								<?php if ( $default_playlist ) : ?>
									<p>
										<?php
										// translators: 1. Url to EN playlist.
										echo wp_kses_post( sprintf( _x( 'Check the full <a href="%s" target="_blank">Playlist on Youtube</a> to learn more >', 'Help tab view all video link', 'yith-plugin-fw' ), $default_playlist ) );
										?>
									</p>
								<?php endif; ?>

								<p>
									<b>
										<?php echo esc_html_x( 'Videos are also available in:', 'Help tab Watch Videotutorials link', 'yith-plugin-fw' ); ?>
									</b>
									<?php $first = true; ?>
									<?php foreach ( $options['playlists'] as $lang => $url ) : ?>
										<?php
										if ( $url === $default_playlist ) {
												continue;
										}
										?>
										<?php if ( ! $first ) : ?>
											<span class="separator">|</span>
										<?php endif; ?>

										<a target="_blank" href="<?php echo esc_url( $url ); ?>"><?php echo esc_html( yit_get_language_from_locale( $lang, true ) ); ?></a>

										<?php $first = false; ?>
									<?php endforeach; ?>
								</p>
							</div>
						<?php endif; ?>
					</div>
				<?php endif; ?>

				<?php if ( $has_additional_links ) : ?>
					<ul class="yith-plugin-fw-help-tab-actions <?php echo $video_url ? 'column-right' : 'full-width'; ?>">

						<?php if ( $options['doc_url'] ) : ?>
							<li class="read-documentation box-with-shadow">
								<a target="_blank" href="<?php echo esc_url( $options['doc_url'] ); ?>">
									<h4>
										<?php echo esc_html_x( 'Read the documentation', 'Help tab Read Documentation link', 'yith-plugin-fw' ); ?>
									</h4>
									<p class="description">
										<?php echo esc_html_x( 'to learn from basics how it works', 'Help tab Read Documentation link', 'yith-plugin-fw' ); ?>
									</p>
								</a>
							</li>
						<?php endif; ?>

						<?php if ( $default_playlist ) : ?>
							<li class="watch-videotutorials box-with-shadow">
								<a target="_blank" href="<?php echo esc_url( $default_playlist ); ?>">
									<h4>
										<?php echo esc_html_x( 'Watch our videotutorials', 'Help tab Watch Videotutorials link', 'yith-plugin-fw' ); ?>
									</h4>
									<p class="description">
										<?php echo esc_html_x( 'We show you some use cases', 'Help tab Watch Videotutorials link', 'yith-plugin-fw' ); ?>
									</p>
								</a>
							</li>
						<?php endif; ?>

						<?php if ( $show_view_all_faq ) : ?>
							<li class="check-faqs box-with-shadow">
								<a target="_blank" href="<?php echo esc_url( $options['hc_url'] ); ?>">
									<h4>
										<?php echo esc_html_x( 'Check the FAQs', 'Help tab view FAQs link', 'yith-plugin-fw' ); ?>
									</h4>
									<p class="description">
										<?php echo esc_html_x( 'to find answers to your doubts', 'Help tab view FAQs link', 'yith-plugin-fw' ); ?>
									</p>
								</a>
							</li>
						<?php endif; ?>

					</ul>
				<?php endif; ?>
			</div>
		<?php endif; ?>


		<?php if ( $show_articles || $show_submit_ticket ) : ?>
			<div class="row">
				<?php if ( $show_articles ) : ?>
					<div class="yith-plugin-fw-hc-articles <?php echo $show_submit_ticket ? 'column-left' : 'full-width'; ?>">
						<h3 class="yith-plugin-fw-hc-articles-title"><?php echo esc_html_x( 'Last FAQs in our Help Center', 'Help tab FAQ title', 'yith-plugin-fw' ); ?></h3>

						<ul class="yith-plugin-fw-hc-articles-list">
							<?php foreach ( $latest_articles as $article ) : ?>
								<li>
									<a target="_blank" href="<?php echo esc_url( $article['url'] ); ?>">
										<?php echo esc_html( $article['title'] ); ?>
									</a>
								</li>
							<?php endforeach; ?>
						</ul>

						<?php if ( $show_view_all_faq ) : ?>
							<a target="_blank" class="button button-secondary" href="<?php echo esc_url( $options['hc_url'] ); ?>">
								<?php echo esc_html_x( 'View all FAQs >', 'Help tab FAQ link', 'yith-plugin-fw' ); ?>
							</a>
						<?php endif; ?>
					</div>
				<?php endif; ?>

				<?php if ( $show_submit_ticket ) : ?>
					<div class="yith-plugin-fw-submit-ticket <?php echo $show_articles ? 'column-right' : 'full-width'; ?>">
						<div class="box-with-shadow">
							<h3><?php echo esc_html_x( 'Need help?', 'Help tab submit ticket title', 'yith-plugin-fw' ); ?></h3>
							<p>
								<?php
									echo esc_html_x(
										'If you are experiencing some technical issue ask help to our developers. Submit a ticket in our support desk and we will help you as soon as possible.',
										'Help tab submit ticket description',
										'yith-plugin-fw'
									);
								?>
							</p>
							<a target="_blank" href="<?php echo esc_url( $options['submit_ticket_url'] ); ?>" class="yit-plugin-fw-submit-ticket-button button button-primary">
								<?php echo esc_html_x( 'Submit a ticket', 'Help tab submit ticket button', 'yith-plugin-fw' ); ?>
							</a>
						</div>
					</div>
				<?php endif; ?>
			<?php endif; ?>
		</div>
	</div>
</div>
plugin-fw/templates/panel/sub-tabs-nav.php000064400000002654151327614500014577 0ustar00<?php
/**
 * The Template for displaying the sub-tabs navigation.
 *
 * @var array  $sub_tabs        The sub-tabs.
 * @var string $current_tab     The current tab.
 * @var string $current_sub_tab The current sub-tab.
 * @var string $page            The current page.
 * @package    YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

?>
<?php if ( ! empty( $sub_tabs ) ) : ?>
	<div class="yith-plugin-fw-sub-tabs-nav">
		<h3 class="nav-tab-wrapper yith-nav-sub-tab-wrapper">
			<?php foreach ( $sub_tabs as $_key => $_tab ) : ?>
				<?php
				$_defaults = array(
					'title' => '',
					'class' => '',
					'icon'  => '',
					'url'   => $this->get_nav_url( $page, $current_tab, $_key ),
				);
				$_tab      = (object) wp_parse_args( $_tab, $_defaults );

				if ( is_array( $_tab->class ) ) {
					$_tab->class = implode( ' ', $_tab->class );
				}

				if ( $current_sub_tab === $_key ) {
					$_tab->class = 'nav-tab-active ' . $_tab->class;
				}
				?>
				<a href="<?php echo esc_url( $_tab->url ); ?>" class="yith-nav-sub-tab nav-tab <?php echo esc_attr( $_tab->class ); ?>">
					<span class="yith-nav-sub-tab__title"><?php echo esc_html( $_tab->title ); ?></span>
					<?php if ( $_tab->icon ) : ?>
						<span class="yith-nav-sub-tab__icon yith-icon yith-icon-<?php echo esc_attr( $_tab->icon ); ?>"></span>
					<?php endif; ?>
				</a>
			<?php endforeach; ?>
		</h3>
	</div>
<?php endif; ?>
plugin-fw/templates/metaboxes/field-row.php000064400000003006151327614500015045 0ustar00<?php
/**
 * The Template for displaying field rows in meta-boxes.
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

// Meta-box backward compatibility.
if ( isset( $field['label'] ) ) {
	$field['title'] = $field['label'];
}

$default_field = array(
	'id'    => '',
	'title' => isset( $field['name'] ) ? $field['name'] : '',
	'desc'  => '',
);
$field         = wp_parse_args( $field, $default_field );

$display_field_only = isset( $field['display-field-only'] ) ? $field['display-field-only'] : false;
$is_required        = ! empty( $field['required'] );

$extra_row_classes = $is_required ? array( 'yith-plugin-fw--required' ) : array();
$extra_row_classes = apply_filters( 'yith_plugin_fw_metabox_extra_row_classes', $extra_row_classes, $field );
$extra_row_classes = is_array( $extra_row_classes ) ? implode( ' ', $extra_row_classes ) : '';

?>
<div id="<?php echo esc_attr( $field['id'] ); ?>-container" <?php echo yith_field_deps_data( $field ); ?> class="yith-plugin-fw-metabox-field-row <?php echo esc_attr( $extra_row_classes ); ?>">
	<?php if ( $display_field_only ) : ?>
		<?php yith_plugin_fw_get_field( $field, true ); ?>
	<?php else : ?>
		<label for="<?php echo esc_attr( $field['id'] ); ?>"><?php echo wp_kses_post( $field['title'] ); ?></label>
		<?php yith_plugin_fw_get_field( $field, true ); ?>
		<div class="clear"></div>
		<span class="description"><?php echo wp_kses_post( $field['desc'] ); ?></span>
	<?php endif; ?>
</div>
plugin-fw/templates/metaboxes/tab.php000064400000015576151327614500013742 0ustar00<?php
/**
 * The Template for displaying meta-box tabs.
 *
 * @var array  $tabs        The tabs.
 * @var string $class       The CSS Class.
 * @var string $meta_box_id The ID of the meta-box.
 *
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

global $post;
$classes  = apply_filters( 'yith_plugin_fw_metabox_class', $class, $post );
$classes  = yith_plugin_fw_remove_duplicate_classes( $classes );
$ul_style = count( $tabs ) <= 1 ? 'display:none;' : '';
$i        = 0;
do_action( 'yit_before_metaboxes_tab' );

// Allow SVGs.
$label_extra_allowed_tags = array(
	'svg'      => array(
		'class'           => true,
		'aria-hidden'     => true,
		'aria-labelledby' => true,
		'role'            => true,
		'xmlns'           => true,
		'width'           => true,
		'height'          => true,
		'viewbox'         => true,
		'version'         => true,
		'x'               => true,
		'y'               => true,
		'style'           => true,
	),
	'circle'   => array(
		'class' => true,
		'cx'    => true,
		'cy'    => true,
		'r'     => true,
	),
	'g'        => array( 'fill' => true ),
	'polyline' => array(
		'class'  => true,
		'points' => true,
	),
	'polygon'  => array(
		'class'  => true,
		'points' => true,
	),
	'line'     => array(
		'class' => true,
		'x1'    => true,
		'x2'    => true,
		'y1'    => true,
		'y2'    => true,
	),
	'title'    => array( 'title' => true ),
	'path'     => array(
		'class' => true,
		'd'     => true,
		'fill'  => true,
	),
	'rect'     => array(
		'class'  => true,
		'x'      => true,
		'y'      => true,
		'fill'   => true,
		'width'  => true,
		'height' => true,
	),
	'style'    => array(
		'type' => true,
	),
);

$label_allowed_tags = array_merge( wp_kses_allowed_html( 'post' ), $label_extra_allowed_tags );
$label_allowed_tags = apply_filters( 'yith_plugin_fw_metabox_label_allowed_tags', $label_allowed_tags, $meta_box_id );

?>
	<div class="yith-plugin-fw metaboxes-tab <?php echo esc_attr( $classes ); ?>">
		<?php do_action( 'yit_before_metaboxes_labels' ); ?>
		<ul class="metaboxes-tabs clearfix" style="<?php echo esc_attr( $ul_style ); ?>">
			<?php foreach ( $tabs as $key => $_tab ) : ?>

				<?php
				if ( empty( $_tab['fields'] ) ) {
					continue;
				}
				$anchor_id = 'yith-plugin-fw-metabox-tab-' . urldecode( $key ) . '-anchor';

				// Parse deps for the tab visibility.
				if ( isset( $_tab['deps'] ) ) {
					$_tab['deps']['target-id'] = isset( $_tab['deps']['target-id'] ) ? $_tab['deps']['target-id'] : $anchor_id;
					if ( isset( $_tab['deps']['id'] ) && strpos( $_tab['deps']['id'], '_' ) !== 0 ) {
						$_tab['deps']['id'] = '_' . $_tab['deps']['id'];
					}
					if ( isset( $_tab['deps']['ids'] ) && strpos( $_tab['deps']['ids'], '_' ) !== 0 ) {
						$_tab['deps']['ids'] = '_' . $_tab['deps']['ids'];
					}

					$_tab['deps']['type'] = 'hideme';
				}

				$class = ! $i ? 'tabs' : '';
				$i ++;
				?>
				<li id="<?php echo esc_attr( $anchor_id ); ?>" class="<?php echo esc_attr( $class ); ?>" <?php echo yith_field_deps_data( $_tab ); ?>>
					<a href="#<?php echo esc_attr( urldecode( $key ) ); ?>">
						<?php echo wp_kses( $_tab['label'], $label_allowed_tags ); ?>
					</a>
				</li>
			<?php endforeach; ?>
		</ul>

		<?php do_action( 'yit_after_metaboxes_labels' ); ?>

		<?php
		if ( isset( $_tab['label'] ) ) {
			do_action( 'yit_before_metabox_option_' . urldecode( $key ) );
		}
		?>

		<?php wp_nonce_field( 'metaboxes-fields-nonce', 'yit_metaboxes_nonce' ); ?>

		<?php foreach ( $tabs as $key => $_tab ) : ?>
			<div class="tabs-panel" id="<?php echo esc_attr( urldecode( $key ) ); ?>">
				<?php
				if ( empty( $_tab['fields'] ) ) {
					continue;
				}

				$_tab['fields'] = apply_filters( 'yit_metabox_' . $key . '_tab_fields', $_tab['fields'] );
				?>

				<?php foreach ( $_tab['fields'] as $id_tab => $field ) : ?>
					<?php
					$field_name = $field['name'];
					$field_name = str_replace( 'yit_metaboxes[', '', $field_name );
					$pos        = strpos( $field_name, ']' );
					if ( $pos ) {
						$field_name = substr_replace( $field_name, '', $pos, 1 );
					}

					/**
					 * APPLY_FILTER: yith_plugin_fw_metabox_{meta_box_id}_field_pre_get_value
					 * Allow filtering values for meta-box fields instead of retrieving them by post_meta(s).
					 *
					 * @param mixed|null $value      The value to be filtered. Set 'null' to retrieve it by the related post_meta (Default: null).
					 * @param int        $post_id    The post ID.
					 * @param string     $field_name The field name.
					 * @param array      $field      The field.
					 *
					 * @since 3.7.6
					 */
					$value = apply_filters( "yith_plugin_fw_metabox_{$meta_box_id}_field_pre_get_value", null, $post->ID, $field_name, $field );
					if ( is_null( $value ) ) {
						$value = yit_get_post_meta( $post->ID, $field_name );
					}

					$field['value']         = false === $value ? ( isset( $field['std'] ) ? $field['std'] : '' ) : $value;
					$field['checkboxgroup'] = ( 'checkbox' === $field['type'] && isset( $field['checkboxgroup'] ) ) ? ' ' . $field['checkboxgroup'] : '';
					$container_classes      = 'the-metabox ' . $field['type'] . $field['checkboxgroup'] . ' clearfix ';
					$extra_row_class        = isset( $field['extra_row_class'] ) ? $field['extra_row_class'] : '';

					$container_classes .= empty( $field['label'] ) ? 'no-label' : '';
					$container_classes .= ' ' . $extra_row_class;

					?>
					<div class="<?php echo esc_attr( $container_classes ); ?>">
						<?php
						$field_template_path = yith_plugin_fw_get_field_template_path( $field );
						if ( $field_template_path ) {
							$display_row                 = 'hidden' !== $field['type'];
							$display_row                 = isset( $field['yith-display-row'] ) ? ! ! $field['yith-display-row'] : $display_row;
							$field['display-field-only'] = in_array( $field['type'], array( 'hidden', 'html', 'sep', 'simple-text', 'title', 'list-table' ), true );

							if ( $display_row ) {

								$field_row_path = apply_filters( 'yith_plugin_fw_metabox_field_row_template_path', YIT_CORE_PLUGIN_TEMPLATE_PATH . '/metaboxes/field-row.php', $field );
								file_exists( $field_row_path ) && include $field_row_path;
							} else {
								yith_plugin_fw_get_field( $field, true );
							}
						} else {
							// Backward compatibility.
							$args       = apply_filters(
								'yit_fw_metaboxes_type_args',
								array(
									'basename' => YIT_CORE_PLUGIN_PATH,
									'path'     => '/metaboxes/types/',
									'type'     => $field['type'],
									'args'     => array( 'args' => $field ),
								)
							);
							$basename   = $args['basename'];
							$field_path = $args['path'];
							$field_type = $args['type'];
							$field_args = $args['args'];

							yit_plugin_get_template( $basename, $field_path . $field_type . '.php', $field_args );
						}
						?>
					</div>
				<?php endforeach ?>
			</div>
		<?php endforeach ?>
	</div>

<?php

do_action( 'yit_after_metaboxes_tab' );
plugin-fw/templates/fields/textarea-editor.php000064400000003710151327614500015537 0ustar00<?php
/**
 * Template for displaying the textarea-editor field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'custom_attributes', 'data' );

// Handle deprecated param 'classes' (since 3.5): use 'class' instead.
if ( isset( $field['classes'] ) && ! isset( $class ) ) {
	$class = $field['classes'];
}

if ( ! function_exists( 'wp_editor' ) ) {
	$field['type'] = 'textarea';
	yith_plugin_fw_get_field( $field, true, false );

	return;
}

$class = isset( $class ) ? $class : '';

$editor_args = wp_parse_args(
	$field,
	array(
		'wpautop'       => true, // Choose if you want to use wpautop.
		'media_buttons' => true, // Choose if showing media button(s).
		'textarea_name' => $name, // Set the textarea name to something different, square brackets [] can be used here.
		'textarea_rows' => 20, // Set the number of rows.
		'tabindex'      => '',
		'editor_css'    => '', // Intended for extra styles for both visual and HTML editors buttons, needs to include the <style> tags, can use "scoped".
		'editor_class'  => '', // Add extra class(es) to the editor textarea.
		'teeny'         => false, // Output the minimal editor config used in Press This.
		'dfw'           => false, // Replace the default fullscreen with DFW (needs specific DOM elements and css).
		'tinymce'       => true, // Load TinyMCE, can be used to pass settings directly to TinyMCE using an array().
		'quicktags'     => true, // Load Quicktags, can be used to pass settings directly to Quicktags using an array().
	)
);
?>
<div class="editor <?php echo esc_attr( $class ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
><?php wp_editor( $value, $field_id, $editor_args ); ?></div>
plugin-fw/templates/fields/ajax-terms.php000064400000007514151327614500014517 0ustar00<?php
/**
 * Template for displaying the ajax-terms field
 * Note: the stored value is an array if WooCommerce >= 3.0; string otherwise
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

yith_plugin_fw_enqueue_enhanced_select();

$default_field = array(
	'id'       => '',
	'name'     => '',
	'class'    => 'yith-term-search',
	'no_value' => false,
	'multiple' => false,
	'data'     => array(),
	'style'    => 'width:400px',
	'value'    => '',
);

foreach ( $default_field as $field_key => $field_value ) {
	if ( empty( $field[ $field_key ] ) ) {
		$field[ $field_key ] = $field_value;
	}
}
unset( $field_key );
unset( $field_value );

list ( $field_id, $class, $no_value, $multiple, $data, $name, $style, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'no_value', 'multiple', 'data', 'name', 'style', 'value' );

if ( $no_value ) {
	$value = array();
}

$default_data = array(
	'action'      => 'yith_plugin_fw_json_search_terms',
	'placeholder' => __( 'Search Categories', 'yith-plugin-fw' ),
	'allow_clear' => false,
	'taxonomy'    => 'category',
	'term_field'  => 'id',
);
$data         = wp_parse_args( $data, $default_data );
$show_id      = isset( $data['show_id'] ) && $data['show_id'];

// Separate select2 needed data and other data.
$select2_custom_attributes = array();
$select2_data              = array();
$select2_data_keys         = array( 'placeholder', 'allow_clear', 'action' );
foreach ( $data as $d_key => $d_value ) {
	if ( in_array( $d_key, $select2_data_keys, true ) ) {
		$select2_data[ $d_key ] = $d_value;
	} else {
		$select2_custom_attributes[ 'data-' . $d_key ] = $d_value;
	}
}

$term_field = $data['term_field'];

// Populate data-selected by value.
$data_selected = array();
if ( ! empty( $value ) ) {
	if ( $multiple ) {
		if ( 'id' === $term_field ) {
			$value = is_array( $value ) ? array_map( 'absint', $value ) : explode( ',', $value );
		} else {
			$value = is_array( $value ) ? $value : explode( ',', $value );
		}
		foreach ( $value as $term_value ) {
			$the_term = get_term_by( $term_field, $term_value, $data['taxonomy'] );
			if ( is_object( $the_term ) ) {
				$term_title                   = wp_kses_post( html_entity_decode( $the_term->name, ENT_QUOTES, get_bloginfo( 'charset' ) ) );
				$term_title_suffix            = $show_id ? " (#{$the_term->term_id})" : '';
				$data_selected[ $term_value ] = $term_title . $term_title_suffix;
			} else {
				$data_selected[ $term_value ] = '#' . $term_value;
			}
		}
	} else {
		$term_value = 'id' === $term_field ? absint( $value ) : $value;
		$the_term   = get_term_by( $term_field, $term_value, $data['taxonomy'] );
		if ( is_object( $the_term ) ) {
			$term_title                   = wp_kses_post( html_entity_decode( $the_term->name, ENT_QUOTES, get_bloginfo( 'charset' ) ) );
			$term_title_suffix            = $show_id ? " (#{$the_term->term_id})" : '';
			$data_selected[ $term_value ] = $term_title . $term_title_suffix;
		} else {
			$data_selected[ $term_value ] = '#' . $term_value;
		}
	}
}

// Parse $value to string to prevent issue with wc2.6.
$value = is_array( $value ) ? implode( ',', $value ) : $value;
?>
<div class="yith-plugin-fw-select2-wrapper">
	<?php
	if ( function_exists( 'yit_add_select2_fields' ) ) {
		yit_add_select2_fields(
			array(
				'id'                => $field_id,
				'name'              => $name,
				'class'             => $class,
				'data-multiple'     => $multiple,
				'data-placeholder'  => $select2_data['placeholder'],
				'data-allow_clear'  => $select2_data['allow_clear'],
				'data-action'       => $select2_data['action'],
				'custom-attributes' => $select2_custom_attributes,
				'style'             => $style,
				'value'             => $value,
				'data-selected'     => $data_selected,
				'data-term-field'   => $term_field,
			)
		);
	}
	?>
</div>
plugin-fw/templates/fields/customtabs.php000064400000012423151327614500014623 0ustar00<?php
/**
 * Template for displaying the customtabs field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $name, $value ) = yith_plugin_fw_extract( $field, 'name', 'value' );

$value = ! ! $value && is_array( $value ) ? $value : array();
?>
<div id="yit_custom_tabs" class="panel wc-metaboxes-wrapper" style="display: block;">
	<p class="toolbar">
		<a href="#" class="close_all"><?php esc_html_e( 'Close all', 'yith-plugin-fw' ); ?></a><a href="#" class="expand_all"><?php esc_html_e( 'Expand all', 'yith-plugin-fw' ); ?></a>
	</p>

	<div class="yit_custom_tabs wc-metaboxes ui-sortable">

		<?php foreach ( $value as $i => $the_tab ) : ?>
			<div class="yit_custom_tab wc-metabox closed" rel="0">
				<h3>
					<button type="button" class="remove_row button"><?php esc_html_e( 'Remove', 'yith-plugin-fw' ); ?></button>
					<div class="handlediv" title="Click to toggle"></div>
					<strong class="attribute_name"><?php echo esc_html( $the_tab['name'] ); ?></strong>
				</h3>

				<table cellpadding="0" cellspacing="0" class="woocommerce_attribute_data wc-metabox-content" style="display: table;">
					<tbody>
					<tr>
						<td class="attribute_name">
							<label><?php esc_html_e( 'Name', 'yith-plugin-fw' ); ?>:</label>
							<input type="text" class="attribute_name" name="<?php echo esc_attr( $name ); ?>[<?php echo esc_attr( $i ); ?>][name]" value="<?php echo esc_attr( $the_tab['name'] ); ?>">
							<input type="hidden" name="<?php echo esc_attr( $name ); ?>[<?php echo esc_attr( $i ); ?>][position]" class="attribute_position" value="<?php echo esc_attr( $i ); ?>">
						</td>

						<td rowspan="3">
							<label><?php esc_html_e( 'Value', 'yith-plugin-fw' ); ?>:</label>
							<textarea name="<?php echo esc_attr( $name ); ?>[<?php echo esc_attr( $i ); ?>][value]" cols="5" rows="5" placeholder="<?php esc_attr_e( 'Content of the tab. (HTML is supported)', 'yith-plugin-fw' ); ?>"><?php echo wp_kses_post( $the_tab['value'] ); ?></textarea>
						</td>
					</tr>
					</tbody>
				</table>

			</div>
		<?php endforeach ?>
	</div>

	<p class="toolbar">
		<button type="button" class="button button-primary add_custom_tab"><?php esc_html_e( 'Add custom product tab', 'yith-plugin-fw' ); ?></button>
	</p>

	<div class="clear"></div>
</div>

<script>
	jQuery( document ).ready( function ( $ ) {
		// Add rows
		$( 'button.add_custom_tab' ).on( 'click', function () {

			var size        = $( '.yit_custom_tabs .yit_custom_tab' ).size() + 1;

			// Add custom attribute row
			$( '.yit_custom_tabs' ).append( '<div class="yit_custom_tab wc-metabox">\
						<h3>\
							<button type="button" class="remove_row button"><?php esc_html_e( 'Remove', 'yith-plugin-fw' ); ?></button>\
							<div class="handlediv" title="Click to toggle"></div>\
							<strong class="attribute_name"></strong>\
						</h3>\
						<table cellpadding="0" cellspacing="0" class="woocommerce_attribute_data">\
							<tbody>\
								<tr>\
									<td class="attribute_name">\
										<label><?php esc_html_e( 'Name', 'yith-plugin-fw' ); ?>:</label>\
										<input type="text" class="attribute_name" name="<?php echo esc_attr( $name ); ?>[' + size + '][name]" />\
										<input type="hidden" name="<?php echo esc_attr( $name ); ?>[' + size + '][position]" class="attribute_position" value="' + size + '" />\
									</td>\
									<td rowspan="3">\
										<label><?php esc_html_e( 'Value', 'yith-plugin-fw' ); ?>:</label>\
										<textarea name="<?php echo esc_attr( $name ); ?>[' + size + '][value]" cols="5" rows="5" placeholder="<?php echo esc_attr( addslashes( __( 'Content of the tab. (HTML is supported)', 'yith-plugin-fw' ) ) ); ?>"></textarea>\
									</td>\
								</tr>\
							</tbody>\
						</table>\
					</div>' );

		} );


		$( '.yit_custom_tabs' ).on( 'click', 'button.remove_row', function () {
			var answer = confirm( "<?php esc_attr_e( 'Do you want to remove the custom tab?', 'yith-plugin-fw' ); ?>" );
			if ( answer ) {
				var $parent = $( this ).parent().parent();

				$parent.remove();
				attribute_row_indexes();
			}
			return false;
		} );

		// Attribute ordering
		$( '.yit_custom_tabs' ).sortable(
			{
				items               : '.yit_custom_tab',
				cursor              : 'move',
				axis                : 'y',
				handle              : 'h3',
				scrollSensitivity   : 40,
				forcePlaceholderSize: true,
				helper              : 'clone',
				opacity             : 0.65,
				placeholder         : 'wc-metabox-sortable-placeholder',
				start               : function ( event, ui ) {
					ui.item.css( 'background-color', '#f6f6f6' );
				},
				stop                : function ( event, ui ) {
					ui.item.removeAttr( 'style' );
					attribute_row_indexes();
				}
			}
		);

		function attribute_row_indexes() {
			$( '.yit_custom_tabs .yit_custom_tab' ).each( function ( index, el ) {
				var newVal = '[' + $( el ).index( '.yit_custom_tabs .yit_custom_tab' ) + ']';
				var oldVal = '[' + $( '.attribute_position', el ).val() + ']';

				$( ':input:not(button)', el ).each( function () {
					var name = $( this ).attr( 'name' );
					$( this ).attr( 'name', name.replace( oldVal, newVal ) );
				} );

				$( '.attribute_position', el ).val( $( el ).index( '.yit_custom_tabs .yit_custom_tab' ) );
			} );
		}

	} );
</script>
plugin-fw/templates/fields/upload.php000064400000003205151327614500013721 0ustar00<?php
/**
 * Template for displaying the text field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $std, $default, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'std', 'default', 'custom_attributes', 'data' );

$file = $value;
?>
<div class="yith-plugin-fw-upload-container <?php echo ! empty( $class ) ? esc_attr( $class ) : ''; ?>">
	<div class="yith-plugin-fw-upload-img-preview" style="margin-top:10px;">
		<?php if ( preg_match( '/(jpg|jpeg|png|gif|ico|svg)$/', $file ) ) : ?>
			<img src="<?php echo esc_url( $file ); ?>" style="max-width:600px; max-height:300px;"/>
		<?php endif ?>
	</div>
	<input type="text"
			id="<?php echo esc_attr( $field_id ); ?>"
			name="<?php echo esc_attr( $name ); ?>"
			class="yith-plugin-fw-upload-img-url"
			value="<?php echo esc_attr( $value ); ?>"

		<?php if ( isset( $default ) ) : ?>
			data-std="<?php echo esc_attr( $default ); ?>"
		<?php endif; ?>

		<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
		<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
	/>
	<button class="yith-plugin-fw-upload-button" id="<?php echo esc_attr( $field_id ); ?>-button"><?php esc_html_e( 'Upload', 'yith-plugin-fw' ); ?></button>
	<button type="button"
			id="<?php echo esc_attr( $field_id ); ?>-button-reset"
			class="yith-plugin-fw-upload-button-reset"
			data-default="<?php echo isset( $default ) ? esc_attr( $default ) : ''; ?>"
	><?php esc_html_e( 'Reset', 'yith-plugin-fw' ); ?></button>
</div>
plugin-fw/templates/fields/select-images.php000064400000004250151327614500015160 0ustar00<?php
/**
 * Template for displaying the select-images field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $options, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'options', 'custom_attributes', 'data' );

$class = isset( $class ) ? $class : 'yith-plugin-fw-select-images';
?>
<div id="<?php echo esc_attr( $field_id ); ?>-wrapper" class="yith-plugin-fw-select-images__wrapper" data-type="select-images">
	<select id="<?php echo esc_attr( $field_id ); ?>"
			name="<?php echo esc_attr( $name ); ?>"
			class="<?php echo esc_attr( $class ); ?>"
			style="display: none"
		<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
		<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
	>
		<?php foreach ( $options as $key => $item ) : ?>
			<?php
			$label = ! empty( $item['label'] ) ? $item['label'] : $key;
			?>
			<option value="<?php echo esc_attr( $key ); ?>" <?php selected( $key, $value ); ?> ><?php echo esc_html( $label ); ?></option>
		<?php endforeach; ?>
	</select>

	<ul class="yith-plugin-fw-select-images__list">
		<?php foreach ( $options as $key => $item ) : ?>
			<?php
			$label = ! empty( $item['label'] ) ? $item['label'] : $key;
			$image = ! empty( $item['image'] ) ? $item['image'] : '';
			?>
			<?php if ( $image ) : ?>
				<?php
				$selected_class = 'yith-plugin-fw-select-images__item--selected';
				$current_class  = $key === $value ? $selected_class : '';
				?>
				<li class="yith-plugin-fw-select-images__item <?php echo esc_attr( $current_class ); ?>"
						data-type="select-images-item"
						data-key="<?php echo esc_attr( $key ); ?>"
					<?php echo isset( $item['data'] ) ? yith_plugin_fw_html_data_to_string( $item['data'] ) : ''; ?>
				>
					<?php if ( $label ) : ?>
						<div class="yith-plugin-fw-select-images__item__label"><?php echo esc_html( $label ); ?></div>
					<?php endif; ?>
					<img class="yith-plugin-fw-select-images_src" src="<?php echo esc_url( $image ); ?>"/>
				</li>
			<?php endif; ?>
		<?php endforeach; ?>
	</ul>
</div>
plugin-fw/templates/fields/textarea-codemirror.php000064400000002153151327614500016416 0ustar00<?php
/**
 * Template for displaying the textarea-codemirror field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $custom_attributes, $data, $settings ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'custom_attributes', 'data', 'settings' );

$default_settings = array(
	'type' => 'text/javascript',
);
$settings         = isset( $settings ) ? $settings : array();
$settings         = wp_parse_args( $settings, $default_settings );
$settings         = wp_enqueue_code_editor( $settings );

$class = isset( $class ) ? $class : 'codemirror';
?>
<textarea id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		rows="8" cols="50"
		data-settings="<?php echo esc_attr( wp_json_encode( $settings ) ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
><?php echo esc_textarea( $value ); ?></textarea>
plugin-fw/templates/fields/buttons.php000064400000001643151327614500014137 0ustar00<?php
/**
 * Template for displaying the buttons field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $buttons ) = yith_plugin_fw_extract( $field, 'buttons' );
?>
<?php if ( ! empty( $buttons ) && is_array( $buttons ) ) : ?>
	<?php foreach ( $buttons as $button ) : ?>
		<?php
		$button_default_args = array(
			'name'  => '',
			'class' => '',
			'data'  => array(),
		);
		$button              = wp_parse_args( $button, $button_default_args );
		list ( $button_class, $button_name, $button_data ) = yith_plugin_fw_extract( $button, 'class', 'name', 'data' );
		?>
		<input type="button" class="<?php echo esc_attr( $button_class ); ?> button button-secondary"
				value="<?php echo esc_attr( $button_name ); ?>" <?php echo yith_plugin_fw_html_data_to_string( $button_data ); ?>/>
	<?php endforeach; ?>
<?php endif; ?>
plugin-fw/templates/fields/hidden.php000064400000001732151327614500013673 0ustar00<?php
/**
 * Template for displaying the hidden field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'data', 'custom_attributes' );

$class = ! ! $class ? $class : '';

// Backward compatibility.
if ( ! isset( $value ) ) {
	if ( isset( $field['val'] ) ) {
		$value = $field['val'];
	} else {
		$value = '';
	}
}
?>
<input type="hidden" id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		value="<?php echo esc_attr( $value ); ?>"
	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo esc_attr( $std ); ?>"
	<?php endif; ?>
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
/>
plugin-fw/templates/fields/inline-fields.php000064400000004654151327614500015170 0ustar00<?php
/**
 * Template for displaying the inline-fields field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $name, $class, $fields, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'name', 'class', 'fields', 'value', 'data', 'custom_attributes' );

$class         = ! ! $class ? $class : '';
$value         = maybe_unserialize( $value );
$allowed_types = array( 'select', 'select-buttons', 'number', 'text', 'slider', 'hidden', 'html', 'datepicker' );
$default_args  = array( 'type' => 'select' );
?>
<?php if ( ! empty( $fields ) && is_array( $fields ) ) : ?>
	<div id="<?php echo esc_attr( $field_id ); ?>" class="<?php echo esc_attr( $class ); ?> yith-inline-fields"
		<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
		<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
	>
		<?php foreach ( $fields as $key => $inline_field ) : ?>
			<?php
			if ( ! in_array( $inline_field['type'], $allowed_types, true ) ) {
				continue;
			}

			if ( ! isset( $inline_field['default'] ) && isset( $inline_field['std'] ) ) {
				$inline_field['default'] = $inline_field['std'];
			}
			$default = isset( $inline_field['default'] ) ? $inline_field['default'] : '';

			$inline_field['value'] = isset( $value[ $key ] ) ? maybe_unserialize( $value[ $key ] ) : $default;
			$inline_field['class'] = isset( $inline_field['class'] ) ? $inline_field['class'] : '';
			$inline_field['id']    = $field_id . '_' . $key;
			$inline_field['name']  = $name . '[' . $key . ']';

			if ( in_array( $inline_field['type'], array( 'select', 'select-buttons' ), true ) ) {
				$inline_field['class'] .= ' wc-enhanced-select';
			}
			?>
			<?php if ( ! empty( $inline_field['inline-label'] ) ) : ?>
				<div class="option-element">
					<span><?php echo esc_html( $inline_field['inline-label'] ); ?></span>
				</div>
			<?php endif; ?>
			<div class="option-element <?php echo esc_attr( $inline_field['type'] ); ?> <?php echo esc_attr( $inline_field['class'] ); ?>">
				<?php if ( isset( $inline_field['label'] ) && '' !== $inline_field['label'] ) : ?>
					<label for="<?php echo esc_attr( $inline_field['id'] ); ?>"><?php echo esc_html( $inline_field['label'] ); ?></label>
				<?php endif; ?>
				<?php yith_plugin_fw_get_field( $inline_field, true ); ?>
			</div>
		<?php endforeach; ?>
	</div>
<?php endif; ?>
plugin-fw/templates/fields/list-table.php000064400000004236151327614500014502 0ustar00<?php
/**
 * Template for displaying the list-table field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $the_title, $the_post_type, $args, $add_new_button, $add_new_url, $list_table_class, $list_table_class_dir, $search_form, $desc ) = yith_plugin_fw_extract( $field, 'id', 'class', 'title', 'post_type', 'args', 'add_new_button', 'add_new_url', 'list_table_class', 'list_table_class_dir', 'search_form', 'desc' );

$show_button = false;
if ( isset( $add_new_button ) && isset( $the_post_type ) ) {
	$show_button         = true;
	$admin_url           = admin_url( 'post-new.php' );
	$params['post_type'] = $the_post_type;
	$add_new_url         = apply_filters( 'yith_plugin_fw_add_new_post_url', esc_url( add_query_arg( $params, $admin_url ) ), $params, isset( $args ) ? $args : false );
}

if ( isset( $list_table_class, $list_table_class_dir ) && ! class_exists( $list_table_class ) && file_exists( $list_table_class_dir ) ) {
	include_once $list_table_class_dir;
}
?>
<?php if ( class_exists( $list_table_class ) ) : ?>
	<?php
	$list_table = isset( $args ) ? new $list_table_class( $args ) : new $list_table_class();
	?>
	<div id="<?php echo esc_attr( $field_id ); ?>" class="yith-plugin-fw-list-table <?php echo esc_attr( $class ); ?>">
		<div class="yith-plugin-fw-list-table-container">
			<div class="list-table-title">
				<h2>
					<?php echo isset( $the_title ) ? wp_kses_post( $the_title ) : ''; ?>
				</h2>
				<?php if ( $show_button ) : ?>
					<a href="<?php echo esc_url( $add_new_url ); ?>" class="yith-add-button"><?php echo esc_html( $add_new_button ); ?></a>
				<?php endif ?>
			</div>

			<?php if ( isset( $desc ) && ! empty( $desc ) ) : ?>
				<p class="yith-section-description"><?php echo wp_kses_post( $desc ); ?></p>
			<?php endif; ?>

			<?php
			$list_table->prepare_items();
			$list_table->views();
			?>

			<form method="post">
				<?php
				if ( isset( $search_form ) ) {
					$list_table->search_box( $search_form['text'], $search_form['input_id'] );
				}
				$list_table->display();
				?>
			</form>
		</div>
	</div>
<?php endif; ?>
plugin-fw/templates/fields/checkbox.php000064400000002025151327614500014222 0ustar00<?php
/**
 * Template for displaying the checkbox field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $name, $class, $std, $value, $data, $custom_attributes, $desc_inline ) = yith_plugin_fw_extract( $field, 'id', 'name', 'class', 'std', 'value', 'data', 'custom_attributes', 'desc-inline' );
?>
<input type="checkbox" id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>" value="1"
		class="<?php echo ! empty( $class ) ? esc_attr( $class ) : ''; ?>"
	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo esc_attr( $std ); ?>"
	<?php endif; ?>
	<?php checked( true, yith_plugin_fw_is_true( $value ) ); ?>
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
/>
<?php if ( isset( $desc_inline ) ) : ?>
	<span class='description inline'><?php echo wp_kses_post( $desc_inline ); ?></span>
<?php endif; ?>
plugin-fw/templates/fields/multi-select.php000064400000002557151327614500015055 0ustar00<?php
/**
 * Template for displaying the multi-select field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $selects, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'selects', 'value' );

if ( empty( $selects ) ) {
	return;
}

$selects_count = count( $selects );
?>
<div class="yith-plugin-fw-multi-select" id="<?php echo esc_attr( $field_id ); ?>">
	<?php for ( $i = 0; $i < $selects_count; $i ++ ) : ?>
		<?php if ( ! ( $i % 2 ) ) : ?>
			<div class="yith-select-group">
		<?php endif; ?>

		<div class="yith-single-select">
			<?php
			$select          = $selects[ $i ];
			$select['type']  = 'select';
			$select['title'] = isset( $select['title'] ) ? $select['title'] : $select['name'];
			$select['name']  = $name . "[{$select['id']}]";
			$select['value'] = isset( $value[ $select['id'] ] ) ? $value[ $select['id'] ] : $select['default'];
			$select['id']    = $name . '_' . $select['id'];
			$select['class'] = $class
			?>
			<label for="<?php echo esc_attr( $select['id'] ); ?>"><?php echo esc_html( $select['title'] ); ?></label>
			<?php yith_plugin_fw_get_field( $select, true, false ); ?>
		</div>

		<?php if ( ( $i % 2 ) !== 0 || ! isset( $selects[ $i + 1 ] ) ) : ?>
			</div>
		<?php endif; ?>
	<?php endfor; ?>
</div>
plugin-fw/templates/fields/sep.php000064400000000515151327614500013225 0ustar00<?php
/**
 * Template for displaying the sep field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

/**
 * Do nothing, allow to stamp the container of this option with sep class:
 * <div class="the-metabox sep clearfix"></div>
 */
plugin-fw/templates/fields/icons.php000064400000006056151327614500013557 0ustar00<?php
/**
 * Template for displaying the icons field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $name, $filter_icons, $std, $value ) = yith_plugin_fw_extract( $field, 'id', 'name', 'filter_icons', 'std', 'value' );

wp_enqueue_style( 'font-awesome' );

$filter_icons      = ! ! $filter_icons ? $filter_icons : '';
$default_icon_text = isset( $std ) ? $std : false;
$default_icon_data = YIT_Icons()->get_icon_data_array( $default_icon_text, $filter_icons );
$default_icon      = '';
if ( isset( $default_icon_data['icon'] ) ) {
	$default_icon = $default_icon_data['icon'];
	$default_icon = str_replace( '&#x', '', $default_icon );
	unset( $default_icon_data['icon'] );
}

$current_icon_data = YIT_Icons()->get_icon_data_array( $value, $filter_icons );
$current_icon_text = $value;
$current_icon      = '';
if ( isset( $current_icon_data['icon'] ) ) {
	$current_icon = $current_icon_data['icon'];
	$current_icon = str_replace( '&#x', '', $current_icon );
	unset( $current_icon_data['icon'] );
}

$yit_icons = YIT_Icons()->get_icons( $filter_icons );
?>

<div id="yit-icons-manager-wrapper-<?php echo esc_attr( $field_id ); ?>" class="yit-icons-manager-wrapper">

	<div class="yit-icons-manager-text">
		<div class="yit-icons-manager-icon-preview"
			<?php echo yith_plugin_fw_html_data_to_string( $current_icon_data ); ?>
			<?php if ( $current_icon ) : ?>
				data-icon="&#x<?php echo esc_attr( $current_icon ); ?>"
			<?php endif; ?>
		></div>
		<input class="yit-icons-manager-icon-text" type="text"
				id="<?php echo esc_attr( $field_id ); ?>"
				name="<?php echo esc_attr( $name ); ?>"
				value="<?php echo esc_attr( $current_icon_text ); ?>"
		/>
		<div class="clear"></div>
	</div>


	<div class="yit-icons-manager-list-wrapper">
		<ul class="yit-icons-manager-list">
			<?php foreach ( $yit_icons as $font => $icons ) : ?>
				<?php foreach ( $icons as $key => $icon_name ) : ?>
					<?php
					$data_icon  = str_replace( '\\', '', $key );
					$icon_text  = $font . ':' . $icon_name;
					$icon_class = $icon_text === $current_icon_text ? 'active' : '';

					$icon_class .= $icon_text === $default_icon_text ? ' default' : '';
					?>
					<li class="<?php echo esc_attr( $icon_class ); ?>"
							data-font="<?php echo esc_attr( $font ); ?>"
							data-icon="&#x<?php echo esc_attr( $data_icon ); ?>"
							data-key="<?php echo esc_attr( $key ); ?>"
							data-name="<?php echo esc_attr( $icon_name ); ?>"></li>
				<?php endforeach; ?>
			<?php endforeach; ?>
		</ul>
	</div>

	<div class="yit-icons-manager-actions">
		<?php if ( $default_icon_text ) : ?>
			<div class="yit-icons-manager-action-set-default button"><?php esc_html_e( 'Set Default', 'yith-plugin-fw' ); ?>
				<i class="yit-icons-manager-default-icon-preview"
					<?php echo yith_plugin_fw_html_data_to_string( $default_icon_data ); ?>
					<?php if ( $default_icon ) : ?>
						data-icon="&#x<?php echo esc_attr( $default_icon ); ?>"
					<?php endif; ?>
				></i>
			</div>
		<?php endif ?>
	</div>
</div>
plugin-fw/templates/fields/date-format.php000064400000005616151327614500014650 0ustar00<?php
/**
 * Template for displaying the date-format field
 *
 * @var array $field The field.
 * @since   3.1.30
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $js, $format, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'js', 'format', 'value', 'data', 'custom_attributes' );

$class = isset( $class ) ? $class : '';
$class = 'yith-plugin-fw-radio yith-plugin-fw-date-format ' . $class;

$format  = isset( $format ) ? $format : 'date';
$options = 'time' === $format ? yith_get_time_formats() : yith_get_date_formats( $js );
$custom  = true;
$js      = isset( $js ) && 'date' === $format ? $js : false;

$data            = isset( $data ) ? $data : array();
$data['current'] = date_i18n( 'Y-m-d H:i:s' );
$data['js']      = ! ! $js ? 'yes' : 'no';
$data['format']  = $format;

$loop = 0;

wp_enqueue_script( 'yith-date-format' );
?>
<div class="<?php echo esc_attr( $class ); ?>"
		id="<?php echo esc_attr( $field_id ); ?>"
		value="<?php echo esc_attr( $value ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php foreach ( $options as $key => $label ) : ?>
		<?php
		$loop ++;
		$checked  = '';
		$radio_id = $field_id . '-' . $loop . '-' . sanitize_key( $key );
		if ( $value === $key ) { // checked() doesn't use strict comparison.
			$checked = " checked='checked'";
			$custom  = false;
		}
		?>
		<div class="yith-plugin-fw-radio__row">
			<input type="radio" id="<?php echo esc_attr( $radio_id ); ?>" name="<?php echo esc_attr( $name ); ?>"
					class="yith-plugin-fw-date-format__option"
					value="<?php echo esc_attr( $key ); ?>" <?php echo esc_html( $checked ); ?>
					data-preview="<?php echo esc_attr( date_i18n( $label ) ); ?>"
			/>
			<label for="<?php echo esc_attr( $radio_id ); ?>">
				<?php echo esc_html( date_i18n( $label ) ); ?>
				<code><?php echo esc_html( $key ); ?></code>
			</label>
		</div>
	<?php endforeach; ?>
	<?php $radio_id = $field_id . '-custom'; ?>
	<div class="yith-plugin-fw-radio__row">
		<input type="radio" id="<?php echo esc_attr( $radio_id ); ?>" name="<?php echo esc_attr( $name ); ?>"
				value="\c\u\s\t\o\m" <?php checked( $custom ); ?>
				data-format-custom="<?php echo esc_attr( $value ); ?>"
		/>
		<label for="<?php echo esc_attr( $radio_id ); ?>"> <?php esc_html_e( 'Custom:', 'yith-plugin-fw' ); ?></label>
		<input type="text" name="<?php echo esc_attr( $name . '_text' ); ?>"
				id="<?php echo esc_attr( $radio_id ); ?>_text" value="<?php echo esc_attr( $value ); ?>"
				class="small-text yith-date-format-custom"/>
		<p>
			<strong><?php esc_html_e( 'Preview:', 'yith-plugin-fw' ); ?></strong>
			<span class="example"><?php echo ! $js ? esc_html( date_i18n( $value ) ) : ''; ?></span>
			<span class="spinner"></span>
		</p>
	</div>
</div>
plugin-fw/templates/fields/custom.php000064400000000432151327614500013746 0ustar00<?php
/**
 * Template for displaying the custom field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( isset( $field['action'] ) ) {
	do_action( $field['action'], $field );
}
plugin-fw/templates/fields/password.php000064400000001773151327614500014307 0ustar00<?php
/**
 * Template for displaying the password field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $std, $value, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'std', 'value', 'custom_attributes', 'data' );

$class = isset( $class ) ? $class : 'yith-plugin-fw-text-input';
$class = $class . ' yith-password';
?>
<div class="yith-password-wrapper">
	<input type="password" id="<?php echo esc_attr( $field_id ); ?>"
			name="<?php echo esc_attr( $name ); ?>"
			class="<?php echo esc_attr( $class ); ?>"
			value="<?php echo esc_attr( $value ); ?>"
		<?php if ( isset( $std ) ) : ?>
			data-std="<?php echo esc_attr( $std ); ?>"
		<?php endif; ?>
		<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
		<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
	/>
	<span class="yith-password-eye"></span>
</div>
plugin-fw/templates/fields/dimensions.php000064400000011601151327614500014604 0ustar00<?php
/**
 * Template for displaying the dimensions field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$default_options = array(
	'dimensions'   => array(
		'top'    => _x( 'Top', 'Position in the "Dimensions" field', 'yith-plugin-fw' ),
		'right'  => _x( 'Right', 'Position in the "Dimensions" field', 'yith-plugin-fw' ),
		'bottom' => _x( 'Bottom', 'Position in the "Dimensions" field', 'yith-plugin-fw' ),
		'left'   => _x( 'Left', 'Position in the "Dimensions" field', 'yith-plugin-fw' ),
	),
	'units'        => array(
		'px'         => 'px',
		'percentage' => '%',
	),
	'allow_linked' => true,
	'min'          => false,
	'max'          => false,
);

$field = wp_parse_args( $field, $default_options );

list ( $field_id, $class, $name, $dimensions, $units, $allow_linked, $min, $max, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'dimensions', 'units', 'allow_linked', 'min', 'max', 'value', 'data', 'custom_attributes' );

$class = isset( $class ) ? $class : '';
$class = 'yith-plugin-fw-dimensions ' . $class;

$value = ! empty( $value ) ? $value : array();

$unit_value        = isset( $value['unit'] ) ? $value['unit'] : current( array_keys( $units ) );
$dimensions_values = isset( $value['dimensions'] ) ? $value['dimensions'] : array();
$linked            = isset( $value['linked'] ) ? $value['linked'] : 'yes';

if ( $allow_linked && 'yes' === $linked ) {
	$class .= ' yith-plugin-fw-dimensions--linked-active';
}
?>
<div id="<?php echo esc_attr( $field_id ); ?>" class="<?php echo esc_attr( $class ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<div class="yith-plugin-fw-dimensions__dimensions">
		<?php foreach ( $dimensions as $key => $dimension ) : ?>
			<?php
			$d_key        = sanitize_title( $key );
			$d_id         = "{$field_id}-dimension-{$d_key}";
			$d_name       = "{$name}[dimensions][{$d_key}]";
			$d_value      = isset( $dimensions_values[ $key ] ) ? $dimensions_values[ $key ] : 0;
			$d_attributes = array();
			$d_label      = $dimension;
			$d_min        = $min;
			$d_max        = $max;

			if ( is_array( $dimension ) ) {
				$d_label = isset( $dimension['label'] ) ? $dimension['label'] : $key;
				if ( isset( $dimension['custom_attributes'] ) && is_array( $dimension['custom_attributes'] ) ) {
					$d_attributes = array_merge( $d_attributes, $dimension['custom_attributes'] );
				}
				$d_min = isset( $dimension['min'] ) ? $dimension['min'] : $d_min;
				$d_max = isset( $dimension['max'] ) ? $dimension['max'] : $d_max;
			}

			if ( false !== $d_max ) {
				$d_attributes['max'] = $d_max;
			}

			if ( false !== $d_min ) {
				$d_attributes['min'] = $d_min;
			}

			?>
			<div class="yith-plugin-fw-dimensions__dimension yith-plugin-fw-dimensions__dimension--<?php echo esc_attr( $d_key ); ?>">
				<label for="<?php echo esc_attr( $d_id ); ?>" class="yith-plugin-fw-dimensions__dimension__label"><?php echo esc_html( $d_label ); ?></label>
				<input id="<?php echo esc_attr( $d_id ); ?>" class="yith-plugin-fw-dimensions__dimension__number"
						type="number" name="<?php echo esc_attr( $d_name ); ?>" value="<?php echo esc_attr( $d_value ); ?>"
					<?php if ( false !== $d_max ) : ?>
						max="<?php echo esc_attr( $d_max ); ?>"
					<?php endif; ?>
					<?php if ( false !== $d_min ) : ?>
						min="<?php echo esc_attr( $d_min ); ?>"
					<?php endif; ?>
					<?php echo yith_plugin_fw_html_attributes_to_string( $d_attributes ); ?>
				>
			</div>
		<?php endforeach ?>

		<?php if ( $allow_linked ) : ?>
			<div class="yith-plugin-fw-dimensions__linked" title="<?php echo esc_attr_x( 'Link values together', 'Tooltip in the "Dimensions" field', 'yith-plugin-fw' ); ?>">
				<input class='yith-plugin-fw-dimensions__linked__value' type="hidden" name="<?php echo esc_attr( $name ); ?>[linked]" value="<?php echo esc_attr( $linked ); ?>">
				<span class="dashicons dashicons-admin-links"></span>
			</div>
		<?php endif; ?>
	</div>
	<div class="yith-plugin-fw-dimensions__units">
		<input class='yith-plugin-fw-dimensions__unit__value' type="hidden" name="<?php echo esc_attr( $name ); ?>[unit]" value="<?php echo esc_attr( $unit_value ); ?>">
		<?php foreach ( $units as $key => $label ) : ?>
			<?php
			$key     = sanitize_title( $key );
			$classes = array(
				'yith-plugin-fw-dimensions__unit',
				"yith-plugin-fw-dimensions__unit--{$key}-unit",
			);
			if ( $unit_value === $key ) {
				$classes[] = 'yith-plugin-fw-dimensions__unit--selected';
			}

			if ( count( $units ) < 2 ) {
				$classes[] = 'yith-plugin-fw-dimensions__unit--unique';
			}

			$classes = implode( ' ', $classes );
			?>
			<span class="<?php echo esc_attr( $classes ); ?>" data-value="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $label ); ?></span>
		<?php endforeach ?>
	</div>
</div>
plugin-fw/templates/fields/ajax-products.php000064400000001112151327614500015214 0ustar00<?php
/**
 * Template for displaying the ajax-products field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$field['type'] = 'ajax-posts';
$field_data    = array(
	'post_type'   => 'product',
	'placeholder' => __( 'Search Product', 'yith-plugin-fw' ),
	'action'      => 'yith_plugin_fw_json_search_products',
);
if ( isset( $field['data'] ) ) {
	$field_data = wp_parse_args( $field['data'], $field_data );
}

$field['data'] = $field_data;

yith_plugin_fw_get_field( $field, true );
plugin-fw/templates/fields/preview.php000064400000001303151327614500014113 0ustar00<?php
/**
 * Template for displaying the preview field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $value, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'value', 'custom_attributes', 'data' );

$class = ! empty( $class ) ? $class : 'yith-plugin-fw-preview-field';

?>
<img id="<?php echo esc_attr( $field_id ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		src="<?php echo esc_url( $value ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
plugin-fw/templates/fields/datepicker.php000064400000001444151327614500014553 0ustar00<?php
/**
 * Template for displaying the datepicker field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'data', 'custom_attributes' );

$class = ! empty( $class ) ? $class : 'yith-plugin-fw-datepicker';
?>
<input type="text"
		name="<?php echo esc_attr( $name ); ?>"
		id="<?php echo esc_attr( $field_id ); ?>"
		value="<?php echo esc_attr( $value ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		autocomplete="off"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
/>
plugin-fw/templates/fields/html.php000064400000000565151327614500013407 0ustar00<?php
/**
 * Template for displaying the html field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $html ) = yith_plugin_fw_extract( $field, 'html' );

$html = ! ! $html ? $html : '';

echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
plugin-fw/templates/fields/select-buttons.php000064400000002150151327614500015406 0ustar00<?php
/**
 * Template for displaying the select-buttons field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

wp_enqueue_script( 'wc-enhanced-select' );

$field['type'] = 'select';

if ( empty( $field['class'] ) ) {
	unset( $field['class'] );
}
// 'add_all_button_label' is deprecated, use 'add_all_label' instead.
$add_all_label    = $field['add_all_label'] ?? $field['add_all_button_label'] ?? __( 'Add All', 'yith-plugin-fw' );
$remove_all_label = $field['remove_all_label'] ?? __( 'Remove All', 'yith-plugin-fw' );
$default_args     = array(
	'multiple' => true,
	'class'    => 'wc-enhanced-select',
	'buttons'  => array(
		array(
			'name'  => $add_all_label,
			'class' => 'yith-plugin-fw-select-all',
			'data'  => array(
				'select-id' => $field['id'],
			),
		),
		array(
			'name'  => $remove_all_label,
			'class' => 'yith-plugin-fw-deselect-all',
			'data'  => array(
				'select-id' => $field['id'],
			),
		),
	),
);

$field = wp_parse_args( $field, $default_args );

yith_plugin_fw_get_field( $field, true );
plugin-fw/templates/fields/ajax-customers.php000064400000006407151327614500015411 0ustar00<?php
/**
 * Template for displaying the ajax-customers field
 * Note: the stored value is an array if WooCommerce >= 3.0; string otherwise
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

yith_plugin_fw_enqueue_enhanced_select();

$default_field = array(
	'id'       => '',
	'name'     => '',
	'class'    => 'yith-customer-search',
	'no_value' => false,
	'multiple' => false,
	'data'     => array(),
	'style'    => 'width:400px',
	'value'    => '',
);

foreach ( $default_field as $field_key => $field_value ) {
	if ( empty( $field[ $field_key ] ) ) {
		$field[ $field_key ] = $field_value;
	}
}
unset( $field_key );
unset( $field_value );

list ( $field_id, $class, $no_value, $multiple, $data, $name, $style, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'no_value', 'multiple', 'data', 'name', 'style', 'value' );

if ( $no_value ) {
	$value = array();
}

$default_data = array(
	'action'      => 'woocommerce_json_search_customers',
	'placeholder' => __( 'Search Customers', 'yith-plugin-fw' ),
	'allow_clear' => false,
);
$data         = wp_parse_args( $data, $default_data );
$show_id      = isset( $data['show_id'] ) && $data['show_id'];

// Separate select2 needed data and other data.
$select2_custom_attributes = array();
$select2_data              = array();
$select2_data_keys         = array( 'placeholder', 'allow_clear', 'action' );
foreach ( $data as $d_key => $d_value ) {
	if ( in_array( $d_key, $select2_data_keys, true ) ) {
		$select2_data[ $d_key ] = $d_value;
	} else {
		$select2_custom_attributes[ 'data-' . $d_key ] = $d_value;
	}
}

// Populate data-selected by value.
$data_selected = array();
if ( ! empty( $value ) ) {
	if ( $multiple ) {
		$value = is_array( $value ) ? $value : explode( ',', $value );
		foreach ( $value as $user_id ) {
			$user                      = get_user_by( 'id', $user_id );
			$data_selected[ $user_id ] = sprintf(
			// translators: 1. user display name; 2. user ID; 3. user email.
				esc_html__( '%1$s (#%2$s &ndash; %3$s)', 'woocommerce' ),
				$user->display_name,
				absint( $user->ID ),
				$user->user_email
			);
		}
	} else {
		$user_id                   = absint( $value );
		$user                      = get_user_by( 'id', $user_id );
		$data_selected[ $user_id ] = sprintf(
		// translators: 1. user display name; 2. user ID; 3. user email.
			esc_html__( '%1$s (#%2$s &ndash; %3$s)', 'woocommerce' ),
			$user->display_name,
			absint( $user->ID ),
			$user->user_email
		);
	}
}

// Parse $value to string to prevent issue with wc2.6.
$value = is_array( $value ) ? implode( ',', $value ) : $value;
?>
<div class="yith-plugin-fw-select2-wrapper">
	<?php
	if ( function_exists( 'yit_add_select2_fields' ) ) {
		yit_add_select2_fields(
			array(
				'id'                => $field_id,
				'name'              => $name,
				'class'             => $class,
				'data-multiple'     => $multiple,
				'data-placeholder'  => $select2_data['placeholder'],
				'data-allow_clear'  => $select2_data['allow_clear'],
				'data-action'       => $select2_data['action'],
				'custom-attributes' => $select2_custom_attributes,
				'style'             => $style,
				'value'             => $value,
				'data-selected'     => $data_selected,
			)
		);
	}
	?>
</div>
plugin-fw/templates/fields/copy-to-clipboard.php000064400000003534151327614500015771 0ustar00<?php
/**
 * The Template for displaying the 'copy-to-clipboard'
 *
 * @var array $field The field.
 *
 * @package YITH\PluginFramework\Templates\Fields\Resources
 * @since   3.6.2
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $force_value, $readonly, $std, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'force_value', 'readonly', 'std', 'custom_attributes', 'data' );

$readonly      = isset( $readonly ) ? ! ! $readonly : true;
$wrapper_id    = ! ! $field_id ? $field_id . '-wrapper' : '';
$wrapper_class = 'yith-plugin-fw-copy-to-clipboard';
if ( $readonly ) {
	$wrapper_class .= ' yith-plugin-fw-copy-to-clipboard--readonly';
}
if ( isset( $force_value ) ) {
	$value = $force_value;
}
?>
<div id="<?php echo esc_attr( $wrapper_id ); ?>" class="<?php echo esc_attr( $wrapper_class ); ?>">

	<div class="yith-plugin-fw-copy-to-clipboard__field-wrap">
		<input type="text"
				id="<?php echo esc_attr( $field_id ); ?>"
				name="<?php echo esc_attr( $name ); ?>"
				class="yith-plugin-fw-copy-to-clipboard__field <?php echo esc_attr( $class ); ?>"
				value="<?php echo esc_attr( $value ); ?>"

			<?php if ( $readonly ) : ?>
				readonly
			<?php endif; ?>

			<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
			<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
		>
		<div class="yith-plugin-fw-copy-to-clipboard__tip"><?php echo esc_html_x( 'Copied!', 'Copy-to-clipboard message', 'yith-plugin-fw' ); ?></div>
	</div>
	<div class="yith-plugin-fw-copy-to-clipboard__copy">
		<i class="yith-plugin-fw-copy-to-clipboard__copy__icon yith-icon yith-icon-copy"></i>
		<span class="yith-plugin-fw-copy-to-clipboard__copy__text"><?php echo esc_html_x( 'Copy', 'Copy-to-clipboard button text', 'yith-plugin-fw' ); ?></span>
	</div>
</div>
plugin-fw/templates/fields/resources/select2.php000064400000002512151327614500016010 0ustar00<?php
/**
 * The Template for displaying the select2 field.
 *
 * @var array  $args              Array of arguments.
 * @var string $custom_attributes Custom attributes.
 * @package YITH\PluginFramework\Templates\Fields\Resources
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

?>
<select
		id="<?php echo esc_attr( $args['id'] ); ?>"
		class="<?php echo esc_attr( $args['class'] ); ?>"
		name="<?php echo esc_attr( $args['name'] ); ?>"
		data-placeholder="<?php echo esc_attr( $args['data-placeholder'] ); ?>"
		data-allow_clear="<?php echo esc_attr( $args['data-allow_clear'] ); ?>"
	<?php echo ! empty( $args['data-action'] ) ? 'data-action="' . esc_attr( $args['data-action'] ) . '"' : ''; ?>
	<?php echo ! empty( $args['data-multiple'] ) ? 'multiple="multiple"' : ''; ?>
		style="<?php echo esc_attr( $args['style'] ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
>
	<?php if ( ! empty( $args['value'] ) ) : ?>
		<?php
		$values = $args['value'];

		if ( ! is_array( $values ) ) {
			$values = explode( ',', $values );
		}
		?>
		<?php foreach ( $values as $value ) : ?>
			<option value="<?php echo esc_attr( $value ); ?>" <?php selected( true, true, true ); ?> >
				<?php echo esc_html( $args['data-selected'][ $value ] ); ?>
			</option>
		<?php endforeach; ?>
	<?php endif; ?>
</select>
plugin-fw/templates/fields/resources/select2-wc-2.6.php000064400000002243151327614500016723 0ustar00<?php
/**
 * The Template for displaying the select2 field, just for WooCommerce < 3.0.
 *
 * @var array  $args              Array of arguments.
 * @var string $custom_attributes Custom attributes.
 * @package YITH\PluginFramework\Templates\Fields\Resources
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

?>
<input
		type="hidden"
		id="<?php echo esc_attr( $args['id'] ); ?>"
		class="<?php echo esc_attr( $args['class'] ); ?>"
		name="<?php echo esc_attr( $args['name'] ); ?>"
		data-placeholder="<?php echo esc_attr( $args['data-placeholder'] ); ?>"
		data-allow_clear="<?php echo esc_attr( $args['data-allow_clear'] ); ?>"
		data-selected="<?php echo is_array( $args['data-selected'] ) ? esc_attr( wp_json_encode( $args['data-selected'] ) ) : esc_attr( $args['data-selected'] ); ?>"
		data-multiple="<?php echo ! ! $args['data-multiple'] ? 'true' : 'false'; ?>"
	<?php echo( ! empty( $args['data-action'] ) ? 'data-action="' . esc_attr( $args['data-action'] ) . '"' : '' ); ?>
		value="<?php echo esc_attr( $args['value'] ); ?>"
		style="<?php echo esc_attr( $args['style'] ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
/>
plugin-fw/templates/fields/text.php000064400000001567151327614500013432 0ustar00<?php
/**
 * Template for displaying the text field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $std, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'std', 'custom_attributes', 'data' );

$class = isset( $class ) ? $class : 'yith-plugin-fw-text-input';
?>
<input type="text"
		id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		value="<?php echo esc_attr( $value ); ?>"

	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo esc_attr( $std ); ?>"
	<?php endif; ?>

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
/>


plugin-fw/templates/fields/ajax-posts.php000064400000006502151327614500014531 0ustar00<?php
/**
 * Template for displaying the ajax-customers field
 * Note: the stored value is an array if WooCommerce >= 3.0; string otherwise
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

yith_plugin_fw_enqueue_enhanced_select();

$default_field = array(
	'id'       => '',
	'name'     => '',
	'class'    => 'yith-post-search',
	'no_value' => false,
	'multiple' => false,
	'data'     => array(),
	'style'    => 'width:400px',
	'value'    => '',
);

foreach ( $default_field as $field_key => $field_value ) {
	if ( empty( $field[ $field_key ] ) ) {
		$field[ $field_key ] = $field_value;
	}
}
unset( $field_key );
unset( $field_value );

list ( $field_id, $class, $no_value, $multiple, $data, $name, $style, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'no_value', 'multiple', 'data', 'name', 'style', 'value' );

if ( $no_value ) {
	$value = array();
}

$default_data  = array(
	'action'      => 'yith_plugin_fw_json_search_posts',
	'placeholder' => __( 'Search Posts', 'yith-plugin-fw' ),
	'allow_clear' => false,
);
$data          = wp_parse_args( $data, $default_data );
$show_id       = isset( $data['show_id'] ) && $data['show_id'];
$the_post_type = isset( $data['post_type'] ) ? $data['post_type'] : 'post';

if ( ! isset( $data['show_id'] ) && in_array( $data['action'], array( 'woocommerce_json_search_products', 'woocommerce_json_search_products_and_variations' ), true ) ) {
	$show_id = true; // Set show_id to true by default if this is a WC product search, since it includes the product ID by default.
}

// Separate select2 needed data and other data.
$select2_custom_attributes = array();
$select2_data              = array();
$select2_data_keys         = array( 'placeholder', 'allow_clear', 'action' );
foreach ( $data as $d_key => $d_value ) {
	if ( in_array( $d_key, $select2_data_keys, true ) ) {
		$select2_data[ $d_key ] = $d_value;
	} else {
		$select2_custom_attributes[ 'data-' . $d_key ] = $d_value;
	}
}

// Populate data-selected by value.
$data_selected = array();
if ( ! empty( $value ) ) {
	if ( $multiple ) {
		$value        = is_array( $value ) ? $value : explode( ',', $value );
		$selected_ids = array_filter( array_map( 'absint', $value ) );
	} else {
		$selected_ids = array( absint( $value ) );
	}

	foreach ( $selected_ids as $selected_id ) {
		$the_title = yith_plugin_fw_get_post_formatted_name(
			$selected_id,
			array(
				'post-type' => $the_post_type,
				'show-id'   => $show_id,
			)
		);

		$data_selected[ $selected_id ] = wp_strip_all_tags( $the_title );
	}
}

// Parse $value to string to prevent issue with wc2.6.
$value = is_array( $value ) ? implode( ',', $value ) : $value;
?>
<div class="yith-plugin-fw-select2-wrapper">
	<?php
	if ( function_exists( 'yit_add_select2_fields' ) ) {
		yit_add_select2_fields(
			array(
				'id'                => $field_id,
				'name'              => $name,
				'class'             => $class,
				'data-multiple'     => $multiple,
				'data-placeholder'  => $select2_data['placeholder'],
				'data-allow_clear'  => $select2_data['allow_clear'],
				'data-action'       => $select2_data['action'],
				'custom-attributes' => $select2_custom_attributes,
				'style'             => $style,
				'value'             => $value,
				'data-selected'     => $data_selected,
			)
		);
	}
	?>
</div>
plugin-fw/templates/fields/image-dimensions.php000064400000002466151327614500015675 0ustar00<?php
/**
 * Template for displaying the image-dimensions field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value' );

$value = isset( $value ) && is_array( $value ) ? $value : array();

?>
<div class="yith-plugin-fw-image-dimensions" id="<?php echo esc_attr( $field_id ); ?>">
	<div class="yith-image-width">
		<label for="<?php echo esc_attr( $name . '_width' ); ?>"><?php echo esc_html_x( 'Width', 'Image width field label', 'yith-plugin-fw' ); ?></label>
		<input type="number" id="<?php echo esc_attr( $name . '_width' ); ?>" name="<?php echo esc_attr( $name . '[width]' ); ?>"
				value="<?php echo isset( $value['width'] ) ? absint( $value['width'] ) : 0; ?>" step="1" min="0" />
	</div>
	<div class="yith-image-height">
		<label for="<?php echo esc_attr( $name . '_height' ); ?>"><?php echo esc_html_x( 'Height', 'Image height field label', 'yith-plugin-fw' ); ?></label>
		<input type="number" id="<?php echo esc_attr( $name . '_height' ); ?>" name="<?php echo esc_attr( $name . '[height]' ); ?>"
				value="<?php echo isset( $value['height'] ) ? absint( $value['height'] ) : 0; ?>" step="1" min="0" />
	</div>
</div>
plugin-fw/templates/fields/country-select.php000064400000004425151327614500015422 0ustar00<?php
/**
 * Template for displaying the country-select field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! function_exists( 'WC' ) ) {
	return;
}

list ( $field_id, $name, $class, $placeholder, $std, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'name', 'class', 'placeholder', 'std', 'value', 'data', 'custom_attributes' );

$placeholder     = isset( $placeholder ) ? ' data-placeholder = "' . $placeholder . '" ' : '';
$country_setting = (string) $value;

if ( strstr( $country_setting, ':' ) ) {
	$country_setting  = explode( ':', $country_setting );
	$selected_country = current( $country_setting );
	$selected_state   = end( $country_setting );
} else {
	$selected_country = $country_setting;
	$selected_state   = '*';
}
$countries = WC()->countries->get_countries();
$class     = isset( $class ) ? $class : 'yith-plugin-fw-select';
?>
<select id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="wc-enhanced-select <?php echo esc_attr( $class ); ?>"
	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo esc_attr( $std ); ?>"
	<?php endif; ?>
	<?php if ( isset( $placeholder ) ) : ?>
		data-placeholder="<?php echo esc_attr( $placeholder ); ?>"
	<?php endif; ?>
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php
	if ( $countries ) {
		foreach ( $countries as $key => $value ) {
			$states = WC()->countries->get_states( $key );
			if ( $states ) {
				echo '<optgroup label="' . esc_attr( $value ) . '">';
				foreach ( $states as $state_key => $state_value ) {
					echo '<option value="' . esc_attr( $key ) . ':' . esc_attr( $state_key ) . '"';

					if ( $selected_country === $key && $selected_state === $state_key ) {
						echo ' selected="selected"';
					}

					echo '>' . esc_html( $value ) . ' &mdash; ' . esc_html( $state_value ) . '</option>';
				}
				echo '</optgroup>';
			} else {
				echo '<option';
				if ( $selected_country === $key && '*' === $selected_state ) {
					echo ' selected="selected"';
				}
				echo ' value="' . esc_attr( $key ) . '">' . esc_html( $value ) . '</option>';
			}
		}
	}
	?>
</select>
plugin-fw/templates/fields/sidebarlist.php000064400000001711151327614500014742 0ustar00<?php
/**
 * Template for displaying the sidebarlist field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'custom_attributes', 'data' );

$class   = isset( $class ) ? $class : 'yith-plugin-fw-select';
$options = yit_registered_sidebars();
?>
<select id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo esc_attr( $class ); ?>"

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php foreach ( $options as $key => $item ) : ?>
		<option value="<?php echo esc_attr( $key ); ?>"<?php selected( $key, $value ); ?>><?php echo esc_html( $item ); ?></option>
	<?php endforeach; ?>
</select>
plugin-fw/templates/fields/text-array.php000064400000004011151327614500014531 0ustar00<?php
/**
 * Template for displaying the text-array field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $name, $value, $fields, $size, $inline ) = yith_plugin_fw_extract( $field, 'id', 'name', 'value', 'fields', 'size', 'inline' );

if ( empty( $fields ) ) {
	return;
}

$value = isset( $value ) && is_array( $value ) ? $value : array();

// Let's build the text array!
$text_array = array();
foreach ( $fields as $field_name => $single_field ) {
	$text_array[ $field_name ]['label'] = $single_field;
	$text_array[ $field_name ]['name']  = "{$name}[{$field_name}]";
	$text_array[ $field_name ]['id']    = "{$field_id}_{$field_name}";
	$text_array[ $field_name ]['value'] = isset( $value[ $field_name ] ) ? $value[ $field_name ] : '';
}

if ( empty( $inline ) ) : ?>

	<table class="yith-plugin-fw-text-array-table">
		<?php foreach ( $text_array as $key => $single ) : ?>
			<tr>
				<td><?php echo esc_html( $single['label'] ); ?></td>
				<td>
					<input type="text" id="<?php echo esc_attr( $single['id'] ); ?>"
							name="<?php echo esc_attr( $single['name'] ); ?>"
							value="<?php echo esc_attr( $single['value'] ); ?>"
						<?php if ( isset( $size ) ) : ?>
							style="width: <?php echo absint( $size ); ?>px"
						<?php endif; ?>
					/>
				</td>
			</tr>
		<?php endforeach ?>
	</table>

<?php else : ?>

	<div class="yith-plugin-fw-text-array-inline">
		<?php foreach ( $text_array as $key => $single ) : ?>
			<div class="yith-single-text"
				<?php if ( isset( $size ) ) : ?>
					style="width: <?php echo absint( $size ); ?>px"
				<?php endif; ?>
			>
				<label for="<?php echo esc_attr( $single['id'] ); ?>"><?php echo esc_html( $single['label'] ); ?></label>
				<input type="text" id="<?php echo esc_attr( $single['id'] ); ?>"
						name="<?php echo esc_attr( $single['name'] ); ?>"
						value="<?php echo esc_attr( $single['value'] ); ?>"
				/>
			</div>
		<?php endforeach ?>
	</div>

<?php endif; ?>
plugin-fw/templates/fields/multi-colorpicker.php000064400000004303151327614500016101 0ustar00<?php
/**
 * Template for displaying the multi-colorpicker field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $colorpickers, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'colorpickers', 'value' );

wp_enqueue_style( 'wp-color-picker' );

if ( ! isset( $colorpickers ) ) {
	return;
}
$class               = ! empty( $class ) ? $class : 'yith-plugin-fw-multi-colorpicker';
$color_pickers_count = count( $colorpickers );
$items_to_process    = array();
?>
<div class="<?php echo esc_attr( $class ); ?>" id="<?php echo esc_attr( $field_id ); ?>">
	<?php for ( $i = 0; $i < $color_pickers_count; $i ++ ) : ?>
		<?php
		$items = $colorpickers[ $i ];

		// Make sure that we have at least one group.
		if ( isset( $items['id'] ) ) {
			$items_to_process[] = $items;
			$next               = isset( $colorpickers[ $i + 1 ] ) ? $colorpickers[ $i + 1 ] : false;

			if ( isset( $next['id'] ) ) {
				continue;
			}
		} else {
			$items_to_process = $items;
		}

		if ( isset( $items_to_process['desc'] ) ) {
			$group_desc = $items_to_process['desc'];
			unset( $items_to_process['desc'] );
		}
		?>
		<div class="yith-colorpicker-group">
			<?php foreach ( $items_to_process as $color_picker ) : ?>
				<?php
				if ( ! is_array( $color_picker ) ) {
					continue;
				}

				$color_picker['type']  = 'colorpicker';
				$color_picker['title'] = $color_picker['name'];
				$color_picker['name']  = $name . "[{$color_picker['id']}]";
				$color_picker['value'] = isset( $value[ $color_picker['id'] ] ) ? $value[ $color_picker['id'] ] : $color_picker['default'];
				$color_picker['id']    = $name . '_' . $color_picker['id'];
				?>
				<div class="yith-single-colorpicker colorpicker">
					<label for="<?php echo esc_attr( $color_picker['id'] ); ?>"><?php echo esc_html( $color_picker['title'] ); ?></label>
					<?php yith_plugin_fw_get_field( $color_picker, true, false ); ?>
				</div>
			<?php endforeach; ?>

			<?php if ( ! empty( $group_desc ) ) : ?>
				<span class="description"><?php echo wp_kses_post( $group_desc ); ?></span>
			<?php endif; ?>

		</div>
	<?php endfor; ?>
</div>
plugin-fw/templates/fields/title.php000064400000001304151327614500013554 0ustar00<?php
/**
 * Template for displaying the title field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $desc, $std, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'desc', 'std', 'custom_attributes', 'data' );

$class = isset( $class ) ? $class : 'title';
?>
<h3 id="<?php echo esc_attr( $field_id ); ?>"
		class="<?php echo esc_attr( $class ); ?>"

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php echo wp_kses_post( $desc ); ?>
</h3>
plugin-fw/templates/fields/toggle-element.php000064400000033346151327614500015356 0ustar00<?php
/**
 * Template for displaying the toggle-element field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$defaults = array(
	'id'                => '',
	'class'             => '',
	'name'              => '',
	'add_button'        => '',
	'elements'          => array(),
	'title'             => '',
	'subtitle'          => '',
	'onoff_field'       => array(),
	'sortable'          => false,
	'save_button'       => array(),
	'delete_button'     => array(),
	'custom_attributes' => '',
);
$field    = wp_parse_args( $field, $defaults );

list ( $field_id, $class, $name, $value, $add_button, $elements, $the_title, $subtitle, $onoff_field, $sortable, $save_button, $delete_button, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'add_button', 'elements', 'title', 'subtitle', 'onoff_field', 'sortable', 'save_button', 'delete_button', 'custom_attributes' );

$show_add_button   = isset( $add_button ) && $add_button;
$add_button_closed = isset( $add_button_closed ) ? $add_button_closed : '';
$values            = isset( $value ) ? $value : get_option( $name, array() );
$values            = maybe_unserialize( $values );
$sortable          = isset( $sortable ) ? $sortable : false;
$class_wrapper     = $sortable ? 'ui-sortable' : '';
$onoff_id          = isset( $onoff_field['id'] ) ? $onoff_field['id'] : '';
$ajax_nonce        = wp_create_nonce( 'save-toggle-element' );

if ( empty( $values ) && ! $show_add_button && $elements ) {
	$values = array();
	// Populate toggle element with the default values.
	foreach ( $elements as $element ) {
		$values[0][ $element['id'] ] = $element['default'];
	}
}

?>
<div class="yith-toggle_wrapper <?php echo esc_attr( $class_wrapper ); ?>" id="<?php echo esc_attr( $field_id ); ?>" data-nonce="<?php echo esc_attr( $ajax_nonce ); ?>">
	<?php if ( ! empty( $label ) ) : ?>
		<label for="<?php esc_attr( $field_id ); ?>"><?php echo esc_html( $label ); ?></label>
	<?php endif; ?>
	<?php if ( $show_add_button ) : ?>
		<button class="yith-add-button yith-add-box-button"
				data-box_id="<?php echo esc_attr( $field_id ); ?>_add_box"
				data-closed_label="<?php echo esc_attr( $add_button_closed ); ?>"
				data-opened_label="<?php echo esc_attr( $add_button ); ?>"><?php echo esc_html( $add_button ); ?></button>
		<div id="<?php echo esc_attr( $field_id ); ?>_add_box" class="yith-add-box"></div>
		<script type="text/template" id="tmpl-yith-toggle-element-add-box-content-<?php echo esc_attr( $field_id ); ?>">
			<?php foreach ( $elements as $element ) : ?>
				<?php
				$element['title'] = $element['name'];
				$element['type']  = isset( $element['yith-type'] ) ? $element['yith-type'] : $element['type'];

				unset( $element['yith-type'] );

				$element['value'] = isset( $element['default'] ) ? $element['default'] : '';
				$element['id']    = 'new_' . $element['id'];
				$element['name']  = $name . '[{{{data.index}}}][' . $element['id'] . ']';
				$class_element    = isset( $element['class_row'] ) ? $element['class_row'] : '';
				if ( ! empty( $element['deps']['id'] ) ) {
					$element['deps']['id'] = 'new_' . $element['deps']['id'];
				}
				if ( ! empty( $element['deps']['target-id'] ) ) {
					$element['deps']['target-id'] = 'new_' . $element['deps']['target-id'];
				}

				if ( ! empty( $element['required'] ) ) {
					$class_element .= ' yith-plugin-fw--required';
				}
				?>
				<div class="yith-add-box-row yith-toggle-content-row <?php echo esc_attr( $class_element ); ?> <?php echo '{{{data.index}}}'; ?>" <?php echo yith_field_deps_data( $element ); ?>>

					<label for="<?php echo esc_attr( $element['id'] ); ?>"><?php echo esc_html( $element['title'] ); ?></label>
					<div class="yith-plugin-fw-option-with-description">
						<?php yith_plugin_fw_get_field( $element, true ); ?>
						<span class="description"><?php echo ! empty( $element['desc'] ) ? wp_kses_post( $element['desc'] ) : ''; ?></span>
					</div>
				</div>
			<?php endforeach; ?>

			<?php if ( ! empty( $save_button ) ) : ?>
				<div class="yith-add-box-buttons">
					<button class="button-primary yith-save-button">
						<?php echo esc_html( $save_button['name'] ); ?>
					</button>
				</div>
			<?php endif; ?>
		</script>
	<?php endif; ?>

	<div class="yith-toggle-elements">
		<?php if ( $values ) : ?>
			<?php foreach ( $values as $i => $value ) : ?>
				<?php
				$title_element    = yith_format_toggle_title( $the_title, $value );
				$title_element    = apply_filters( 'yith_plugin_fw_toggle_element_title_' . $field_id, $title_element, $elements, $value );
				$subtitle_element = yith_format_toggle_title( $subtitle, $value );
				$subtitle_element = apply_filters( 'yith_plugin_fw_toggle_element_subtitle_' . $field_id, $subtitle_element, $elements, $value );
				?>
				<div id="<?php echo esc_attr( $field_id ); ?>_<?php echo esc_attr( $i ); ?>"
						class="yith-toggle-row <?php echo ! empty( $subtitle ) ? 'with-subtitle' : ''; ?> <?php echo esc_attr( $class ); ?>"
						data-item_key="<?php echo esc_attr( $i ); ?>"
					<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
				>
					<div class="yith-toggle-title">
						<h3>
							<span class="title" data-title_format="<?php echo esc_attr( $the_title ); ?>"><?php echo wp_kses_post( $title_element ); ?></span>
							<?php if ( ! empty( $subtitle_element ) ) : ?>
								<div class="subtitle" data-subtitle_format="<?php echo esc_attr( $subtitle ); ?>"><?php echo wp_kses_post( $subtitle_element ); ?></div>
							<?php endif; ?>
						</h3>
						<span class="yith-toggle"><span class="yith-icon yith-icon-arrow_right ui-sortable-handle"></span></span>
						<?php if ( ! empty( $onoff_field ) && is_array( $onoff_field ) ) : ?>
							<?php
							$onoff_field['value'] = isset( $value[ $onoff_id ] ) ? $value[ $onoff_id ] : ( isset( $onoff_field['default'] ) ? $onoff_field['default'] : '' );
							$onoff_field['type']  = 'onoff';
							$onoff_field['name']  = "{$name}[{$i}][{$onoff_id}]";
							$onoff_field['id']    = $onoff_id . '_' . $i;
							unset( $onoff_field['yith-type'] );
							?>
							<span class="yith-toggle-onoff"
								<?php if ( ! empty( $onoff_field['ajax_action'] ) ) : ?>
									data-ajax_action="<?php echo esc_attr( $onoff_field['ajax_action'] ); ?>"
								<?php endif ?>
							>
								<?php yith_plugin_fw_get_field( $onoff_field, true ); ?>
							</span>

							<?php if ( $sortable ) : ?>
								<span class="yith-icon yith-icon-drag"></span>
							<?php endif ?>
						<?php endif; ?>
					</div>
					<div class="yith-toggle-content">
						<?php if ( $elements && count( $elements ) > 0 ) : ?>
							<?php foreach ( $elements as $element ) : ?>
								<?php
								$element['type'] = isset( $element['yith-type'] ) ? $element['yith-type'] : $element['type'];
								unset( $element['yith-type'] );
								$element['title']     = $element['name'];
								$element['name']      = $name . "[$i][" . $element['id'] . ']';
								$element['value']     = isset( $value[ $element['id'] ] ) ? $value[ $element['id'] ] : ( isset( $element['default'] ) ? $element['default'] : '' );
								$element['id']        = $element['id'] . '_' . $i;
								$element['class_row'] = isset( $element['class_row'] ) ? $element['class_row'] : '';

								if ( ! empty( $element['deps']['id'] ) ) {
									$element['deps']['id'] = $element['deps']['id'] . '_' . $i;
								}
								if ( ! empty( $element['deps']['target-id'] ) ) {
									$element['deps']['target-id'] = $element['deps']['target-id'] . '_' . $i;
								}

								if ( ! empty( $element['required'] ) ) {
									$element['class_row'] .= ' yith-plugin-fw--required';
								}
								?>
								<div class="yith-toggle-content-row <?php echo esc_attr( $element['class_row'] . ' ' . $element['type'] ); ?>" <?php echo yith_field_deps_data( $element ); ?>>
									<label for="<?php echo esc_attr( $element['id'] ); ?>"><?php echo esc_html( $element['title'] ); ?></label>
									<div class="yith-plugin-fw-option-with-description">
										<?php yith_plugin_fw_get_field( $element, true ); ?>
										<span class="description"><?php echo ! empty( $element['desc'] ) ? wp_kses_post( $element['desc'] ) : ''; ?></span>
									</div>
								</div>
							<?php endforeach; ?>
						<?php endif; ?>
						<div class="yith-toggle-content-buttons">
							<div class="spinner"></div>
							<?php if ( $save_button && ! empty( $save_button['id'] ) ) : ?>
								<?php
								$save_button_class = isset( $save_button['class'] ) ? $save_button['class'] : '';
								$save_button_name  = isset( $save_button['name'] ) ? $save_button['name'] : '';
								?>
								<button id="<?php echo esc_attr( $save_button['id'] ); ?>" class="button-primary yith-save-button <?php echo esc_attr( $save_button_class ); ?>">
									<?php echo esc_html( $save_button_name ); ?>
								</button>
							<?php endif; ?>
							<?php if ( $delete_button && ! empty( $delete_button['id'] ) ) : ?>
								<?php
								$delete_button_class = isset( $delete_button['class'] ) ? $delete_button['class'] : '';
								$delete_button_name  = isset( $delete_button['name'] ) ? $delete_button['name'] : '';
								?>
								<button id="<?php echo esc_attr( $delete_button['id'] ); ?>"
										class="button-secondary yith-delete-button <?php echo esc_attr( $delete_button_class ); ?>">
									<?php echo esc_html( $delete_button_name ); ?>
								</button>
							<?php endif; ?>
						</div>
					</div>

				</div>
			<?php endforeach; ?>
		<?php endif; ?>
	</div>
	<script type="text/template" id="tmpl-yith-toggle-element-item-<?php echo esc_attr( $field_id ); ?>">
		<div id="<?php echo esc_attr( $field_id ); ?>_{{{data.index}}}"
				class="yith-toggle-row highlight <?php echo ! empty( $subtitle ) ? 'with-subtitle' : ''; ?> <?php echo esc_attr( $class ); ?>"
				data-item_key="{{{data.index}}}"
			<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
		>
			<div class="yith-toggle-title">
				<h3>
					<span class="title" data-title_format="<?php echo esc_attr( $the_title ); ?>"><?php echo wp_kses_post( $the_title ); ?></span>
					<div class="subtitle" data-subtitle_format="<?php echo esc_attr( $subtitle ); ?>"><?php echo wp_kses_post( $subtitle ); ?></div>
				</h3>
				<span class="yith-toggle"><span class="yith-icon yith-icon-arrow_right"></span></span>
				<?php if ( ! empty( $onoff_field ) && is_array( $onoff_field ) ) : ?>
					<?php
					$onoff_field['value'] = isset( $onoff_field['default'] ) ? $onoff_field['default'] : '';
					$onoff_field['type']  = 'onoff';
					$onoff_field['name']  = $name . '[{{{data.index}}}][' . $onoff_id . ']';
					$onoff_field['id']    = $onoff_id;
					unset( $onoff_field['yith-type'] );
					?>
					<span class="yith-toggle-onoff"
						<?php if ( ! empty( $onoff_field['ajax_action'] ) ) : ?>
							data-ajax_action="<?php echo esc_attr( $onoff_field['ajax_action'] ); ?>"
						<?php endif ?>
					>
						<?php yith_plugin_fw_get_field( $onoff_field, true ); ?>
					</span>
				<?php endif; ?>
				<?php if ( $sortable ) : ?>
					<span class="yith-icon yith-icon-drag ui-sortable-handle"></span>
				<?php endif ?>
			</div>
			<div class="yith-toggle-content">
				<?php if ( $elements && count( $elements ) > 0 ) : ?>
					<?php foreach ( $elements as $element ) : ?>
						<?php
						$element['type'] = isset( $element['yith-type'] ) ? $element['yith-type'] : $element['type'];
						unset( $element['yith-type'] );
						$element['title'] = $element['name'];
						$element['name']  = $name . '[{{{data.index}}}][' . $element['id'] . ']';
						$element['id']    = $element['id'] . '_{{{data.index}}}';
						$class_element    = isset( $element['class_row'] ) ? $element['class_row'] : '';

						if ( ! empty( $element['deps']['id'] ) ) {
							$element['deps']['id'] = $element['deps']['id'] . '_{{{data.index}}}';
						}
						if ( ! empty( $element['deps']['target-id'] ) ) {
							$element['deps']['target-id'] = $element['deps']['target-id'] . '_{{{data.index}}}';
						}

						if ( ! empty( $element['required'] ) ) {
							$class_element .= ' yith-plugin-fw--required';
						}

						?>
						<div class="yith-toggle-content-row <?php echo esc_attr( $class_element . ' ' . $element['type'] ); ?>" <?php echo yith_field_deps_data( $element ); ?>>
							<label for="<?php echo esc_attr( $element['id'] ); ?>"><?php echo esc_html( $element['title'] ); ?></label>
							<div class="yith-plugin-fw-option-with-description">
								<?php yith_plugin_fw_get_field( $element, true ); ?>
								<span class="description"><?php echo ! empty( $element['desc'] ) ? wp_kses_post( $element['desc'] ) : ''; ?></span>
							</div>
						</div>
					<?php endforeach; ?>
				<?php endif; ?>
				<div class="yith-toggle-content-buttons">
					<div class="spinner"></div>
					<?php if ( $save_button && ! empty( $save_button['id'] ) ) : ?>
						<?php
						$save_button_class = isset( $save_button['class'] ) ? $save_button['class'] : '';
						$save_button_name  = isset( $save_button['name'] ) ? $save_button['name'] : '';
						?>
						<button id="<?php echo esc_attr( $save_button['id'] ); ?>" class="yith-save-button <?php echo esc_attr( $save_button_class ); ?>">
							<?php echo esc_html( $save_button_name ); ?>
						</button>
					<?php endif; ?>
					<?php if ( $delete_button && ! empty( $delete_button['id'] ) ) : ?>
						<?php
						$delete_button_class = isset( $delete_button['class'] ) ? $delete_button['class'] : '';
						$delete_button_name  = isset( $delete_button['name'] ) ? $delete_button['name'] : '';
						?>
						<button id="<?php echo esc_attr( $delete_button['id'] ); ?>" class="button-secondary yith-delete-button <?php echo esc_attr( $delete_button_class ); ?>">
							<?php echo esc_html( $delete_button_name ); ?>
						</button>
					<?php endif; ?>
				</div>
			</div>
		</div>
	</script>
</div>
plugin-fw/templates/fields/image-gallery.php000064400000003325151327614500015157 0ustar00<?php
/**
 * Template for displaying the image-gallery field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $name, $value ) = yith_plugin_fw_extract( $field, 'id', 'name', 'value' );

$image_ids = ! empty( $value ) ? array_filter( explode( ',', $value ) ) : array();
?>
<div class="yith-plugin-fw-image-gallery">
	<ul id="<?php echo esc_attr( $field_id ); ?>-extra-images" class="slides-wrapper extra-images ui-sortable clearfix">
		<?php foreach ( $image_ids as $image_id ) : ?>
			<li class="image" data-attachment_id= <?php echo esc_attr( $image_id ); ?>>
				<a href="#">
					<?php
					if ( function_exists( 'yit_image' ) ) {
						yit_image( "id=$image_id&size=admin-post-type-thumbnails" );
					} else {
						echo wp_get_attachment_image( $image_id, array( 80, 80 ) );
					}
					?>
				</a>
				<ul class="actions">
					<li><a href="#" class="delete" title="<?php esc_attr_e( 'Delete image', 'yith-plugin-fw' ); ?>">x</a></li>
				</ul>
			</li>
		<?php endforeach; ?>
	</ul>
	<input type="button"
			id="<?php echo esc_attr( $field_id ); ?>-button"
			class="image-gallery-button button button-secondary"
			data-choose="<?php esc_attr_e( 'Add Images to Gallery', 'yith-plugin-fw' ); ?>"
			data-update="<?php esc_attr_e( 'Add to gallery', 'yith-plugin-fw' ); ?>"
			value="<?php esc_attr_e( 'Add images', 'yith-plugin-fw' ); ?>"
			data-delete="<?php esc_attr_e( 'Delete image', 'yith-plugin-fw' ); ?>"
			data-text="<?php esc_attr_e( 'Delete', 'yith-plugin-fw' ); ?>"
	/>
	<input type="hidden" class="image_gallery_ids" name="<?php echo esc_attr( $name ); ?>" value="<?php echo esc_attr( $value ); ?>"/>
</div>
plugin-fw/templates/fields/toggle-element-fixed.php000064400000006331151327614500016445 0ustar00<?php
/**
 * Template for displaying the toggle-element-fixed field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

$defaults = array(
	'id'                  => '',
	'class'               => '',
	'name'                => '',
	'elements'            => array(),
	'title'               => '',
	'subtitle'            => '',
	'onoff_field'         => true,
	'save_single_options' => false,
	'custom_attributes'   => '',
);
$field    = wp_parse_args( $field, $defaults );

list ( $field_id, $class, $name, $elements, $the_title, $subtitle, $onoff_field, $save_single_options, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'elements', 'title', 'subtitle', 'onoff_field', 'save_single_options', 'subtitle', 'custom_attributes' );

$name  = ! empty( $name ) ? $name : $field_id;
$value = get_option( $name, array() );
?>
<div class="yith-toggle_fixed_wrapper" id="<?php echo esc_attr( $field_id ); ?>">
	<div class="yith-toggle-elements">
		<div id="<?php echo esc_attr( $field_id ); ?>"
				class="yith-toggle-row fixed <?php echo ! empty( $subtitle ) ? 'with-subtitle' : ''; ?> <?php echo esc_attr( $class ); ?>"
			<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
		>
			<div class="yith-toggle-title">
				<h3>
					<span class="title"><?php echo wp_kses_post( $the_title ); ?></span>
					<?php if ( ! empty( $subtitle ) ) : ?>
						<span class="subtitle"><?php echo wp_kses_post( $subtitle ); ?></span>
					<?php endif; ?>
				</h3>
				<span class="yith-toggle"><span class="yith-icon yith-icon-arrow_right ui-sortable-handle"></span></span>
				<?php if ( ! empty( $onoff_field ) ) : ?>
					<span class="yith-toggle-onoff">
						<?php
						yith_plugin_fw_get_field(
							array(
								'type'  => 'onoff',
								'name'  => "{$name}[enabled]",
								'id'    => "{$field_id}_enabled",
								'value' => isset( $value['enabled'] ) ? $value['enabled'] : 'no',
							),
							true
						);
						?>
					</span>
				<?php endif; ?>
			</div>
			<div class="yith-toggle-content">
				<?php foreach ( $elements as $element ) : ?>
					<?php
					$element_id       = $element['id'];
					$element['name']  = false === $save_single_options ? "{$name}[{$element_id}]" : $element_id;
					$element['id']    = "{$field_id}_{$element_id}";
					$element['value'] = '';
					$element_default  = isset( $element['default'] ) ? $element['default'] : '';
					if ( false === $save_single_options ) {
						$element['value'] = isset( $value[ $element_id ] ) ? $value[ $element_id ] : $element_default;
					} else {
						$element['value'] = get_option( $element_id, $element_default );
					}
					?>
					<div class="yith-toggle-content-row <?php echo esc_attr( $element['type'] ); ?>">
						<label for="<?php echo esc_attr( $element['id'] ); ?>"><?php echo esc_html( $element['title'] ); ?></label>
						<div class="yith-plugin-fw-option-with-description">
							<?php yith_plugin_fw_get_field( $element, true ); ?>
							<span class="description"><?php echo ! empty( $element['desc'] ) ? wp_kses_post( $element['desc'] ) : ''; ?></span>
						</div>
					</div>
				<?php endforeach; ?>
			</div>
		</div>
	</div>
</div>
plugin-fw/templates/fields/select.php000064400000004600151327614500013714 0ustar00<?php
/**
 * Template for displaying the select field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $options, $multiple, $placeholder, $buttons, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'options', 'multiple', 'placeholder', 'buttons', 'custom_attributes', 'data' );

$multiple = ! empty( $multiple );
$class    = isset( $class ) ? $class : 'yith-plugin-fw-select';
$name     = isset( $name ) ? $name : '';
$name     = ! ! $name && $multiple ? $name . '[]' : $name;

if ( $multiple && ! is_array( $value ) ) {
	$value = array();
}

?>
<select id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		data-value="<?php echo $multiple ? esc_attr( implode( ',', $value ) ) : esc_attr( $value ); ?>"

	<?php if ( $multiple ) : ?>
		multiple
	<?php endif; ?>

	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo $multiple && is_array( $std ) ? esc_attr( implode( ',', $std ) ) : esc_attr( $std ); ?>"
	<?php endif; ?>

	<?php if ( isset( $placeholder ) ) : ?>
		data-placeholder="<?php echo esc_attr( $placeholder ); ?>"
	<?php endif; ?>

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php foreach ( $options as $key => $item ) : ?>
		<?php if ( is_array( $item ) ) : ?>
			<optgroup label="<?php echo esc_attr( $item['label'] ); ?>">
				<?php foreach ( $item['options'] as $option_key => $option ) : ?>
					<option value="<?php echo esc_attr( $option_key ); ?>" <?php selected( $option_key, $value ); ?>><?php echo esc_html( $option ); ?></option>
				<?php endforeach; ?>
			</optgroup>
		<?php else : ?>
			<option value="<?php echo esc_attr( $key ); ?>"
				<?php
				if ( $multiple ) {
					selected( true, in_array( $key, $value ) ); // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
				} else {
					selected( $key, $value );
				}
				?>
			><?php echo esc_html( $item ); ?></option>
		<?php endif; ?>
	<?php endforeach; ?>
</select>

<?php
// Let's add buttons if they are set.
if ( isset( $buttons ) ) {
	$button_field = array(
		'type'    => 'buttons',
		'buttons' => $buttons,
	);
	yith_plugin_fw_get_field( $button_field, true );
}
?>
plugin-fw/templates/fields/textarea.php000064400000002054151327614500014253 0ustar00<?php
/**
 * Template for displaying the textarea field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $std, $rows, $cols, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'std', 'rows', 'cols', 'custom_attributes', 'data' );

$class = isset( $class ) ? $class : 'yith-plugin-fw-textarea';
$rows  = isset( $rows ) ? $rows : 5;
$cols  = isset( $cols ) ? $cols : 50;
?>
<textarea id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		rows="<?php echo esc_attr( $rows ); ?>"
		cols="<?php echo esc_attr( $cols ); ?>"

	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo esc_attr( $std ); ?>"
	<?php endif; ?>

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
><?php echo esc_textarea( $value ); ?></textarea>
plugin-fw/templates/fields/onoff.php000064400000002606151327614500013550 0ustar00<?php
/**
 * Template for displaying the onoff field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $std, $value, $custom_attributes, $data, $desc_inline ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'std', 'value', 'custom_attributes', 'data', 'desc-inline' );

?>
<div class="yith-plugin-fw-onoff-container <?php echo ! empty( $class ) ? esc_attr( $class ) : ''; ?>"
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<input type="checkbox" id="<?php echo esc_attr( $field_id ); ?>"
			class="on_off"
			name="<?php echo esc_attr( $name ); ?>"
			value="<?php echo esc_attr( $value ); ?>"
		<?php if ( isset( $std ) ) : ?>
			data-std="<?php echo esc_attr( $std ); ?>"
		<?php endif; ?>
		<?php checked( true, yith_plugin_fw_is_true( $value ) ); ?>
		<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	/>
	<span class="yith-plugin-fw-onoff"
			data-text-on="<?php echo esc_attr_x( 'YES', 'YES/NO button: use MAX 4 characters!', 'yith-plugin-fw' ); ?>"
			data-text-off="<?php echo esc_attr_x( 'NO', 'YES/NO button: use MAX 4 characters!', 'yith-plugin-fw' ); ?>"></span>
</div>

<?php if ( isset( $desc_inline ) ) : ?>
	<span class='description inline'><?php echo wp_kses_post( $desc_inline ); ?></span>
<?php endif; ?>
plugin-fw/templates/fields/select-mailchimp.php000064400000002552151327614500015661 0ustar00<?php
/**
 * Template for displaying the select-mailchimp field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $multiple, $std, $value, $options, $button_name, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'multiple', 'std', 'value', 'options', 'button_name', 'custom_attributes', 'data' );

$multiple = ! empty( $multiple );
?>

<select id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="yith-plugin-fw-select"

	<?php if ( $multiple ) : ?>
		multiple
	<?php endif; ?>

	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo $multiple && is_array( $std ) ? esc_attr( implode( ',', $std ) ) : esc_attr( $std ); ?>"
	<?php endif; ?>

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php foreach ( $options as $key => $item ) : ?>
		<option value="<?php echo esc_attr( $key ); ?>"<?php selected( $key, $value ); ?>><?php echo esc_html( $item ); ?></option>
	<?php endforeach; ?>
</select>
<input type="button" class="button-secondary <?php echo isset( $class ) ? esc_attr( $class ) : ''; ?>" value="<?php echo esc_attr( $button_name ); ?>"/>
<span class="spinner"></span>
plugin-fw/templates/fields/colorpicker.php000064400000002251151327614500014751 0ustar00<?php
/**
 * Template for displaying the colorpicker field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

wp_enqueue_style( 'wp-color-picker' );

list ( $field_id, $name, $class, $default, $alpha_enabled, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'name', 'class', 'default', 'alpha_enabled', 'value', 'data', 'custom_attributes' );

$class         = ! empty( $class ) ? $class : 'yith-plugin-fw-colorpicker color-picker';
$alpha_enabled = isset( $alpha_enabled ) ? $alpha_enabled : true;
$default       = isset( $default ) ? $default : '';
?>
<input type="text"
		name="<?php echo esc_attr( $name ); ?>"
		id="<?php echo esc_attr( $field_id ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		value="<?php echo esc_attr( $value ); ?>"
		data-alpha-enabled="<?php echo $alpha_enabled ? 'true' : 'false'; ?>"
	<?php if ( $default ) : ?>
		data-default-color="<?php echo esc_attr( $default ); ?>"
	<?php endif ?>
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
/>
plugin-fw/templates/fields/text-button.php000064400000003025151327614500014732 0ustar00<?php
/**
 * Template for displaying the text-button field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $std, $buttons, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'std', 'buttons', 'custom_attributes', 'data' );

$backward_compatibility = false;
if ( ! isset( $buttons ) ) {
	$backward_compatibility = true;
	$button_data            = array();

	if ( isset( $field['button-class'] ) ) {
		$button_data['class'] = $field['button-class'];
	}
	if ( isset( $field['button-name'] ) ) {
		$button_data['name'] = $field['button-name'];
	}
	if ( isset( $field['data'] ) ) {
		$button_data['data'] = $field['data'];
	}

	$buttons = array( $button_data );
}
$class = isset( $class ) ? $class : 'yith-plugin-fw-text-input';
?>
<input type="text"
		id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		value="<?php echo esc_attr( $value ); ?>"

	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo esc_attr( $std ); ?>"
	<?php endif; ?>

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php
	if ( ! $backward_compatibility ) {
		yith_plugin_fw_html_data_to_string( $data, true );
	}
	?>
/>
<?php
if ( isset( $buttons ) ) {
	$button_field = array(
		'type'    => 'buttons',
		'buttons' => $buttons,
	);
	yith_plugin_fw_get_field( $button_field, true );
}
?>
plugin-fw/templates/fields/sidebars.php000064400000010544151327614500014235 0ustar00<?php
/**
 * Template for displaying the sidebars field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $name, $value ) = yith_plugin_fw_extract( $field, 'id', 'name', 'value' );

$layout        = ! isset( $value['layout'] ) ? 'sidebar-no' : $value['layout'];
$sidebar_left  = ! isset( $value['sidebar-left'] ) ? '-1' : $value['sidebar-left'];
$sidebar_right = ! isset( $value['sidebar-right'] ) ? '-1' : $value['sidebar-right'];
?>
<div class="yith-plugin-fw-sidebar-layout">
	<div class="option">
		<input type="radio" name="<?php echo esc_attr( $name ); ?>[layout]" id="<?php echo esc_attr( $field_id ) . '-left'; ?>" value="sidebar-left" <?php checked( $layout, 'sidebar-left' ); ?> />
		<img src="<?php echo esc_url( YIT_CORE_PLUGIN_URL ); ?>/assets/images/sidebar-left.png" title="<?php esc_attr_e( 'Left sidebar', 'yith-plugin-fw' ); ?>" alt="<?php esc_attr_e( 'Left sidebar', 'yith-plugin-fw' ); ?>" class="<?php echo esc_attr( $field_id ) . '-left'; ?>" data-type="left"/>

		<input type="radio" name="<?php echo esc_attr( $name ); ?>[layout]" id="<?php echo esc_attr( $field_id ) . '-right'; ?>" value="sidebar-right" <?php checked( $layout, 'sidebar-right' ); ?> />
		<img src="<?php echo esc_url( YIT_CORE_PLUGIN_URL ); ?>/assets/images/sidebar-right.png" title="<?php esc_attr_e( 'Right sidebar', 'yith-plugin-fw' ); ?>" alt="<?php esc_attr_e( 'Right sidebar', 'yith-plugin-fw' ); ?>" class="<?php echo esc_attr( $field_id ) . '-right'; ?>" data-type="right"/>

		<input type="radio" name="<?php echo esc_attr( $name ); ?>[layout]" id="<?php echo esc_attr( $field_id ) . '-double'; ?>" value="sidebar-double" <?php checked( $layout, 'sidebar-double' ); ?> />
		<img src="<?php echo esc_url( YIT_CORE_PLUGIN_URL ); ?>/assets/images/double-sidebar.png" title="<?php esc_attr_e( 'No sidebar', 'yith-plugin-fw' ); ?>" alt="<?php esc_attr_e( 'No sidebar', 'yith-plugin-fw' ); ?>" class="<?php echo esc_attr( $field_id ) . '-double'; ?>" data-type="double"/>

		<input type="radio" name="<?php echo esc_attr( $name ); ?>[layout]" id="<?php echo esc_attr( $field_id ) . '-no'; ?>" value="sidebar-no" <?php checked( $layout, 'sidebar-no' ); ?> />
		<img src="<?php echo esc_url( YIT_CORE_PLUGIN_URL ); ?>/assets/images/no-sidebar.png" title="<?php esc_attr_e( 'No sidebar', 'yith-plugin-fw' ); ?>" alt="<?php esc_attr_e( 'No sidebar', 'yith-plugin-fw' ); ?>" class="<?php echo esc_attr( $field_id ) . '-no'; ?>" data-type="none"/>
	</div>
	<div class="clearfix"></div>
	<div class="option" id="choose-sidebars">
		<div class="side">
			<div class="yith-plugin-fw-sidebar-layout-sidebar-left-container select-mask"
				<?php if ( ! in_array( $layout, array( 'sidebar-double', 'sidebar-left' ), true ) ) : ?>
					style="display:none"
				<?php endif; ?>
			>
				<label for="<?php echo esc_attr( $field_id ); ?>-sidebar-left"><?php esc_html_e( 'Left Sidebar', 'yith-plugin-fw' ); ?></label>
				<select class="yith-plugin-fw-select" name="<?php echo esc_attr( $name ); ?>[sidebar-left]" id="<?php echo esc_attr( $field_id ); ?>-sidebar-left">
					<option value="-1"><?php esc_html_e( 'Choose a sidebar', 'yith-plugin-fw' ); ?></option>
					<?php foreach ( yit_registered_sidebars() as $val => $option ) { ?>
						<option value="<?php echo esc_attr( $val ); ?>" <?php selected( $sidebar_left, $val ); ?>><?php echo esc_html( $option ); ?></option>
					<?php } ?>
				</select>
			</div>
		</div>
		<div class="side" style="clear: both">
			<div class="yith-plugin-fw-sidebar-layout-sidebar-right-container select-mask"
				<?php if ( ! in_array( $layout, array( 'sidebar-double', 'sidebar-right' ), true ) ) : ?>
					style="display:none"
				<?php endif; ?>
			>
				<label for="<?php echo esc_attr( $field_id ); ?>-sidebar-right"><?php esc_html_e( 'Right Sidebar', 'yith-plugin-fw' ); ?></label>
				<select class="yith-plugin-fw-select" name="<?php echo esc_attr( $name ); ?>[sidebar-right]" id="<?php echo esc_attr( $field_id ); ?>-sidebar-right">
					<option value="-1"><?php esc_html_e( 'Choose a sidebar', 'yith-plugin-fw' ); ?></option>
					<?php foreach ( yit_registered_sidebars() as $val => $option ) { ?>
						<option value="<?php echo esc_attr( $val ); ?>" <?php selected( $sidebar_right, $val ); ?>><?php echo esc_html( $option ); ?></option>
					<?php } ?>
				</select>
			</div>
		</div>
	</div>
</div>
plugin-fw/templates/fields/simple-text.php000064400000001337151327614500014714 0ustar00<?php
/**
 * Template for displaying the simple-text field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $desc, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'desc', 'custom_attributes', 'data' );

$field_id = ! empty( $field_id ) ? $field_id : '';
$class    = ! empty( $class ) ? $class : '';
?>
<p id="<?php echo esc_attr( $field_id ); ?>"
		class="<?php echo esc_attr( $class ); ?>"

	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php echo wp_kses_post( $desc ); ?>
</p>
plugin-fw/templates/fields/checkbox-array.php000064400000002443151327614500015342 0ustar00<?php
/**
 * Template for displaying the checkbox-array field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 * @since   3.4.0
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $name, $class, $options, $value, $data, $custom_attributes ) = yith_plugin_fw_extract( $field, 'id', 'name', 'class', 'options', 'value', 'data', 'custom_attributes' );

$class = isset( $class ) ? $class : '';
$class = 'yith-plugin-fw-checkbox-array ' . $class;

$value = is_array( $value ) ? $value : array();
?>
<div class="<?php echo esc_attr( $class ); ?>" id="<?php echo esc_attr( $field_id ); ?>"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php foreach ( $options as $key => $label ) : ?>
		<?php
		$checkbox_id = sanitize_key( $field_id . '-' . $key );
		?>
		<div class="yith-plugin-fw-checkbox-array__row">
			<input type="checkbox" id="<?php echo esc_attr( $checkbox_id ); ?>" name="<?php echo esc_attr( $name ); ?>[]" value="<?php echo esc_attr( $key ); ?>" <?php checked( in_array( $key, $value, true ) ); ?> />
			<label for="<?php echo esc_attr( $checkbox_id ); ?>"><?php echo wp_kses_post( $label ); ?></label>
		</div>
	<?php endforeach; ?>
</div>
plugin-fw/templates/fields/slider.php000064400000003473151327614500013726 0ustar00<?php
/**
 * Template for displaying the slider field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value,
	/**
	 * Array of option containing min and max value
	 * This is deprecated since 3.5 | use 'min' and 'max' instead.
	 */
	$option,
	$min, $max, $step, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'option', 'min', 'max', 'step', 'custom_attributes', 'data' );

// Handle the deprecated attribute 'option': use 'min' and 'max' instead.
if ( ! isset( $min ) && isset( $option, $option['min'] ) ) {
	$min = $option['min'];
}

if ( ! isset( $max ) && isset( $option, $option['max'] ) ) {
	$max = $option['max'];
}

$min  = isset( $min ) ? $min : 0;
$max  = isset( $max ) ? $max : 100;
$step = isset( $step ) ? $step : 1;
?>
<div class="yith-plugin-fw-slider-container <?php echo ! empty( $class ) ? esc_attr( $class ) : ''; ?>">
	<div class="ui-slider">
		<span class="minCaption"><?php echo esc_html( $min ); ?></span>
		<div id="<?php echo esc_attr( $field_id ); ?>-div"
				class="ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all"
				data-step="<?php echo esc_attr( $step ); ?>"
				data-min="<?php echo esc_attr( $min ); ?>"
				data-max="<?php echo esc_attr( $max ); ?>"
				data-val="<?php echo esc_attr( $value ); ?>"

			<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
			<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
		>
			<input id="<?php echo esc_attr( $field_id ); ?>"
					type="hidden"
					name="<?php echo esc_attr( $name ); ?>"
					value="<?php echo esc_attr( $value ); ?>"
			/>
		</div>
		<span class="maxCaption"><?php echo esc_html( $max ); ?></span>
	</div>
</div>
plugin-fw/templates/fields/number.php000064400000002207151327614500013726 0ustar00<?php
/**
 * Template for displaying the number field
 *
 * @var array $field The field.
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $std, $value, $min, $max, $step, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'std', 'value', 'min', 'max', 'step', 'custom_attributes', 'data' );

?>
<input type="number" id="<?php echo esc_attr( $field_id ); ?>"
		name="<?php echo esc_attr( $name ); ?>"
		class="<?php echo ! empty( $class ) ? esc_attr( $class ) : ''; ?>"
		value="<?php echo esc_attr( $value ); ?>"
	<?php if ( isset( $min ) ) : ?>
		min="<?php echo esc_attr( $min ); ?>"
	<?php endif; ?>
	<?php if ( isset( $max ) ) : ?>
		max="<?php echo esc_attr( $max ); ?>"
	<?php endif; ?>
	<?php if ( isset( $step ) ) : ?>
		step="<?php echo esc_attr( $step ); ?>"
	<?php endif; ?>
	<?php if ( isset( $std ) ) : ?>
		data-std="<?php echo esc_attr( $std ); ?>"
	<?php endif; ?>
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
/>
plugin-fw/templates/fields/radio.php000064400000004054151327614500013536 0ustar00<?php
/**
 * Template for displaying the radio field
 *
 * @var array $field The field.
 * @since   3.0.13
 * @package YITH\PluginFramework\Templates\Fields
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $field_id, $class, $name, $value, $options, $custom_attributes, $data ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value', 'options', 'custom_attributes', 'data' );

$class = isset( $class ) ? $class : '';
$class = 'yith-plugin-fw-radio ' . $class;

$label_extra_allowed_tags = array(
	'input'  => array(
		'checked'     => true,
		'disabled'    => true,
		'max'         => true,
		'min'         => true,
		'name'        => true,
		'placeholder' => true,
		'type'        => true,
		'value'       => true,
	),
	'option' => array(
		'disabled' => true,
		'selected' => true,
		'value'    => true,
	),
	'select' => array(
		'disabled' => true,
		'name'     => true,
		'value'    => true,
	),
);

$label_extra_allowed_tags = array_map( 'yith_plugin_fw_add_kses_global_attributes', $label_extra_allowed_tags );

$label_allowed_tags = array_merge( wp_kses_allowed_html( 'post' ), $label_extra_allowed_tags );
$label_allowed_tags = apply_filters( 'yith_plugin_fw_radio_field_label_allowed_tags', $label_allowed_tags, $field );
?>
<div id="<?php echo esc_attr( $field_id ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
		data-value="<?php echo esc_attr( $value ); ?>"
		data-type="radio"
	<?php yith_plugin_fw_html_attributes_to_string( $custom_attributes, true ); ?>
	<?php yith_plugin_fw_html_data_to_string( $data, true ); ?>
>
	<?php foreach ( $options as $key => $label ) : ?>
		<?php
		$radio_id = $field_id . '-' . sanitize_key( $key );
		?>
		<div class="yith-plugin-fw-radio__row">
			<input type="radio" id="<?php echo esc_attr( $radio_id ); ?>"
					name="<?php echo esc_attr( $name ); ?>"
					value="<?php echo esc_attr( $key ); ?>"
				<?php checked( $key, $value ); ?>
			/>
			<label for="<?php echo esc_attr( $radio_id ); ?>">
				<?php echo wp_kses( $label, $label_allowed_tags ); ?>
			</label>
		</div>
	<?php endforeach; ?>
</div>
plugin-fw/templates/components/list-table-blank-state.php000064400000004153151327614500017622 0ustar00<?php
/**
 * Template for displaying the list-table-blank-state component
 *
 * @var array $component The component.
 * @package YITH\PluginFramework\Templates\Components
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $component_id, $class, $icon, $icon_class, $icon_url, $message, $cta, $attributes, $data ) = yith_plugin_fw_extract( $component, 'id', 'class', 'icon', 'icon_class', 'icon_url', 'message', 'cta', 'attributes', 'data' );
?>
<div id="<?php echo esc_attr( $component_id ); ?>"
		class="yith-plugin-fw__list-table-blank-state <?php echo esc_attr( $class ); ?>"
	<?php echo yith_plugin_fw_html_attributes_to_string( $attributes ); ?>
	<?php echo yith_plugin_fw_html_data_to_string( $data ); ?>
>
	<?php if ( $icon ) : ?>
		<i class="yith-plugin-fw__list-table-blank-state__icon yith-icon yith-icon-<?php echo esc_attr( $icon ); ?>"></i>
	<?php elseif ( $icon_class ) : ?>
		<i class="yith-plugin-fw__list-table-blank-state__icon <?php echo esc_attr( $icon_class ); ?>"></i>
	<?php elseif ( $icon_url ) : ?>
		<img class="yith-plugin-fw__list-table-blank-state__icon" src="<?php echo esc_url( $icon_url ); ?>"/>
	<?php endif; ?>
	<div class="yith-plugin-fw__list-table-blank-state__message"><?php echo wp_kses_post( $message ); ?></div>
	<?php if ( $cta && ! empty( $cta['title'] ) ) : ?>
		<?php
		$cta_url     = ! empty( $cta['url'] ) ? $cta['url'] : '';
		$cta_classes = array( 'yith-plugin-fw__list-table-blank-state__cta', 'yith-plugin-fw__button--primary', 'yith-plugin-fw__button--xxl' );
		if ( ! empty( $cta['class'] ) ) {
			$cta_classes[] = $cta['class'];
		}
		if ( ! empty( $cta['icon'] ) ) {
			$cta_classes[] = 'yith-plugin-fw__button--with-icon';
		}
		$cta_classes = implode( ' ', $cta_classes );
		?>
		<div class="yith-plugin-fw__list-table-blank-state__cta-wrapper">
			<a href="<?php echo esc_url( $cta_url ); ?>" class="<?php echo esc_attr( $cta_classes ); ?>">
				<?php if ( ! empty( $cta['icon'] ) ) : ?>
					<i class="yith-icon yith-icon-<?php echo esc_attr( $cta['icon'] ); ?>"></i>
				<?php endif; ?>
				<?php echo esc_html( $cta['title'] ); ?>
			</a>
		</div>
	<?php endif; ?>
</div>
plugin-fw/templates/components/action-button.php000064400000004757151327614500016157 0ustar00<?php
/**
 * Template for displaying the action-button component
 *
 * @var array $component The component.
 * @package YITH\PluginFramework\Templates\Components
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

list ( $component_id, $class, $the_title, $attributes, $data, $button_action, $icon, $icon_class, $url, $action_button_menu, $confirm_data ) = yith_plugin_fw_extract( $component, 'id', 'class', 'title', 'attributes', 'data', 'action', 'icon', 'icon_class', 'url', 'menu', 'confirm_data' );

$button_action      = isset( $button_action ) ? $button_action : '';
$icon               = isset( $icon ) ? $icon : $button_action;
$icon_class         = isset( $icon_class ) ? $icon_class : "yith-icon yith-icon-{$icon}";
$url                = isset( $url ) ? $url : '#';
$class              = isset( $class ) ? $class : '';
$the_title          = isset( $the_title ) ? $the_title : '';
$action_button_menu = isset( $action_button_menu ) ? $action_button_menu : array();
$confirm_data       = isset( $confirm_data ) ? $confirm_data : array();

$classes = array( 'yith-plugin-fw__action-button', "yith-plugin-fw__action-button--{$button_action}-action", $class );

if ( ! ! $action_button_menu ) {
	$classes[] = 'yith-plugin-fw__action-button--has-menu';
}

$link_classes = array( 'yith-plugin-fw__action-button__link' );
$link_data    = array();
if ( isset( $confirm_data['title'], $confirm_data['message'] ) && '#' !== $url ) {
	$link_classes[] = 'yith-plugin-fw__require-confirmation-link';
	$link_data      = $confirm_data;
}

if ( $the_title ) {
	$link_classes[] = 'yith-plugin-fw__tips';
}

$class      = implode( ' ', $classes );
$link_class = implode( ' ', array_filter( $link_classes ) );
?>
<span
		id="<?php echo esc_attr( $component_id ); ?>"
		class="<?php echo esc_attr( $class ); ?>"
	<?php echo yith_plugin_fw_html_attributes_to_string( $attributes ); ?>
	<?php echo yith_plugin_fw_html_data_to_string( $data ); ?>
	>
<a class="<?php echo esc_attr( $link_class ); ?>"

		href="<?php echo esc_url( $url ); ?>"
	<?php if ( $the_title ) : ?>
		data-tip="<?php echo esc_attr( $the_title ); ?>"
	<?php endif; ?>

	<?php yith_plugin_fw_html_data_to_string( $link_data, true ); ?>
>
	<?php if ( $icon ) : ?>
		<i class="yith-plugin-fw__action-button__icon <?php echo esc_attr( $icon_class ); ?>"></i>
	<?php endif; ?>
</a>
	<?php if ( $action_button_menu ) : ?>
		<?php yith_plugin_fw_include_fw_template( '/components/resources/action-button-menu.php', compact( 'action_button_menu' ) ); ?>
	<?php endif; ?>
</span>
plugin-fw/templates/components/resources/action-button-menu.php000064400000004257151327614500021126 0ustar00<?php
/**
 * Template for displaying the action-button-submenu
 *
 * @var array $action_button_menu The menu.
 * @package YITH\PluginFramework\Templates\Components\Resources
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
?>
<span class="yith-plugin-fw__action-button__menu">
	<?php foreach ( $action_button_menu as $menu_key => $menu_item ) : ?>
		<?php
		$item_name            = isset( $menu_item['name'] ) ? $menu_item['name'] : '';
		$item_url             = isset( $menu_item['url'] ) ? $menu_item['url'] : '';
		$item_class           = isset( $menu_item['class'] ) ? $menu_item['class'] : '';
		$item_attributes      = isset( $menu_item['attributes'] ) ? $menu_item['attributes'] : array();
		$item_data            = isset( $menu_item['data'] ) ? $menu_item['data'] : array();
		$item_open_in_new_tab = isset( $menu_item['open_in_new_tab'] ) ? ! ! $menu_item['open_in_new_tab'] : false;
		$item_confirm_data    = isset( $menu_item['confirm_data'] ) ? $menu_item['confirm_data'] : array();

		$item_classes = array( 'yith-plugin-fw__action-button__menu__item', "yith-plugin-fw__action-button__menu__item--{$menu_key}-key", $item_class );

		if ( isset( $item_confirm_data['title'], $item_confirm_data['message'] ) && ! ! $item_url ) {
			$item_classes[] = 'yith-plugin-fw__require-confirmation-link';
			$item_data      = array_merge( $item_data, $item_confirm_data );
		}

		$item_classes = implode( ' ', array_filter( $item_classes ) );
		?>
		<?php if ( ! ! $item_url ) : ?>
			<a
					class="<?php echo esc_attr( $item_classes ); ?>"
					href="<?php echo esc_url( $item_url ); ?>"
				<?php if ( ! ! $item_open_in_new_tab ) : ?>
					target="_blank"
				<?php endif; ?>
				<?php
				yith_plugin_fw_html_attributes_to_string( $item_attributes, true );
				yith_plugin_fw_html_data_to_string( $item_data, true );
				?>
			><?php echo esc_html( $item_name ); ?></a>
		<?php else : ?>
			<span
					class="<?php echo esc_attr( $item_classes ); ?>"
					<?php
					yith_plugin_fw_html_attributes_to_string( $item_attributes, true );
					yith_plugin_fw_html_data_to_string( $item_data, true );
					?>
			><?php echo esc_html( $item_name ); ?></span>
		<?php endif; ?>

	<?php endforeach; ?>
</span>
plugin-fw/templates/privacy/html-policy-content.php000064400000002304151327614500016554 0ustar00<?php
/**
 * The Template for displaying privacy content policy.
 *
 * @var array $sections The sections.
 * @package YITH\PluginFramework\Templates
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

?>
<div class="wp-suggested-text">
	<?php do_action( 'yith_plugin_fw_privacy_guide_content_before' ); ?>

	<?php
	foreach ( $sections as $key => $section ) {
		$privacy_action = "yith_plugin_fw_privacy_guide_content_{$key}";
		$content        = apply_filters( 'yith_plugin_fw_privacy_guide_content', '', $key );

		if ( has_action( $privacy_action ) || ! empty( $section['tutorial'] ) || ! empty( $section['description'] ) || $content ) {
			if ( ! empty( $section['title'] ) ) {
				echo '<h2>' . esc_html( $section['title'] ) . '</h2>';
			}

			if ( ! empty( $section['tutorial'] ) ) {
				echo '<p class="privacy-policy-tutorial">' . wp_kses_post( $section['tutorial'] ) . '</p>';
			}

			if ( ! empty( $section['description'] ) ) {
				echo '<p >' . wp_kses_post( $section['description'] ) . '</p>';
			}

			if ( ! empty( $content ) ) {
				echo wp_kses_post( $content );
			}
		}

		do_action( $privacy_action );
	}
	?>

	<?php do_action( 'yith_plugin_fw_privacy_guide_content_after' ); ?>
</div>
plugin-fw/assets/images/yith-icon.svg000064400000003730151327614500013656 0ustar00<?xml version="1.0" standalone="no"?><!-- Generator: Gravit.io -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 20.5 20.479" width="20.5" height="20.479">
    <defs>
        <clipPath id="_clipPath_BBRuGaomYLKjPKjOOHpnNdPxBnLPFPyk">
            <rect width="20.5" height="20.479"/>
        </clipPath>
    </defs>
    <g clip-path="url(#_clipPath_BBRuGaomYLKjPKjOOHpnNdPxBnLPFPyk)">
        <g>
            <path d=" M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z  M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z "
                  fill="rgb(255,255,255)"/>
        </g>
    </g>
</svg>plugin-fw/assets/images/banner-premium.png000064400000025441151327614500014664 0ustar00�PNG


IHDR�-�}tEXtSoftwareAdobe ImageReadyq�e<iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c142 79.160924, 2017/07/13-01:06:39        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:7706a20a-f17b-42fc-a8cf-79ea14e11515" xmpMM:DocumentID="xmp.did:CE50FF6F1CCD11EAB070D6715D83780A" xmpMM:InstanceID="xmp.iid:CE50FF6E1CCD11EAB070D6715D83780A" xmp:CreatorTool="Adobe Photoshop CC (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:332f214f-4285-494b-aba3-ee79c39d514b" stRef:documentID="adobe:docid:photoshop:9b92e163-aedb-084f-b2a6-b6296c8ae3b3"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>W��'8IDATx��	��y���=3���
� � ���H"eZGtT�	e�%���v�*q9Uq�R����J�QUb9q�\�L�\:LJq,J�	R�$I��I,`q-vg�������kvz�gwv���
����y��������/��6+Θ&V�P钏�H��.ڠ�.5C"b���|MՏ[���SA*�$}��F�8D<!F�~3Rq#�:��sz,�P�'4�/i��A9�sI�A�t�ǟz��Oa�?�U��~�K�"]�(Y5�L���."7
�F�,�~T3jD�t���Е6���q�x� R�&��w�����d�zX���꫸=]��4�������Ta��=,!�9�P��@�Y�!sI!�G	�^�� �u����k�G$�tIƅX�̇��J���<`�{P��5瞩Q�u�Z��&)lF�u���J"7��|���+����3u�r�(7>F*" s���%��"��q���@;X��?t���AѬ�]s�,�GX�9�Pv+��`�=f-a��ej<N�
"�7����Ԉ�훑Z������V�#�0��w��E�&��e����yғ��k*#�a�<�xf�@��}&2W{���"][2[�ZY���u��`_�#e�9���6��4Y��W3tIi��
��Q��~u#Z�ZGJ/~oR��R��L�"Z�h��i0'(g���4��S�����g5,������qၲ�6l=}�Zˎ���Xv�;�ؖ�֑�d%�ܬޓeu���Δ��J�CS��pg>�
k�"IM���-�_m�����0'J�z�=���]�6�o㇒�7�؇��:�����%�m7�ﰼ��U�1Ҏ�����t�9���6O�H�H>�{0�h<N�������:�Ò��{���:3p!9�=)�U�'3�,I���7��SA��!L��"%�0��s6Xi*��R<����i�2�%��'�A�CK8r
2�!�9��th��'�5��w�fH(g�L�\�V�jJZY�/�
"�{��{�IhQT��5�ju��d��4��|�H�s.�TcS����6R�'�M6�]�8R۶n�{��b-K���+P�n�-F���4/U)Iʹ��y#�J�x�a�����p��4g�B��p�'�;�����π��I�h���t�i�8A)2��J�qT����w+�1m�EI!�0�Mp\�UO!��3ֈT#�r����i����׈5χ�X_yH�2JL���Sͯ����W�>>~�_|��Oܳg*[��1$�p	k�,�kD�F��G���}�c�*+�o���'���O�H+�{�wt�@�Y�d�K[����W��ڡ�*�Za4s/+;-L2��{�6��k3�b}��BO�
<�8�B�΅�Q�kܾ���".|ئk3>�}'�ݣO9q�	��q�&==��;������
�������k�A?+�u���P�nng�L�o
,1�`C
�4�F�Ol=�����ڊ:��d���@�t��0�M!7���4n���:z�x(U,r�3����ӂU4�r��o�f�� R����9~�
U�֛׎l_;���r:ܭj���2��iq���w�"<16�SB�d
*��x
���G�y��b��ѽ��Ћ`�Q���j��1dr�����N�ˆ��G��-����=����Gk�a�t���[�����D͚�fC�T�.M
��O���x�U|���;7�n�Qm�����[�m�z΅<u�hM��.�3g�Q#T�ZT��/~F�H�x(1���{r�HDU��������ƣ�5p��pK��s�ND,��y�+(}q��=\�4n���U`Ӌ�ӈ��
<<��̈p{'i���- D���k��3q6lc
�+)��KSg�ͤ���n����AzX�?�O�VO�R
�i{TC�*�H�0�S2����ԭ���=�Ĭ��,����U�Q)�P��I�,vx->��s�h[
��qZ9��D�qe�Ȧb�Uv��!X��e��{"�쉿Hk��{��H/OE�Hi_
F,Ժ�{A�2-���х�f3R뇫�S�۶�}q�C�^���*��VN��d͐U��G��vn�%�߈"O�PiMT�%�wF�n���h�r��A�}*5�K晣�<7��;�{	!�&�R�%��V���u�y!��g0bK�9
,*=�w 𬒉��z��×�YP����d#j+���
X�O:f?uCE!�i���H���Co��;<�Ž�N^�|��]�u��w.��+�N}�}N�Q�ut���y�櫂��p�?���/<����ް��w�̬��wN��p�o���M�G�^�˗�lD�k��ᑓ_~���F�����!8�S��%�n��M6�~��h�}G#,�Y3Ɠ��Ii4)��R��e������U�>X����>�T��J'ɨiu�:A��7xN]���l�fi�Ë��{��E�
,wrk<���K���Ǟ�O���mz��k�O<��_}<h4�g�|���>ņ�=�7J�T*��~�w{�ܹ��@��صq��ܰ+"����GY��<������ֵZ�Ƚ{���W�a�8�'�o۽��7�Q'le�K�
*�;�	��|9�����U=��B)���П���_<vC̄/K0�'�G,�z���Ł-<`��R�&OK�N��.t���X*���:{4�����`#rm-����ҧ���F��V���o�=9�?��AӾ.����A���1_�!����׾wnb���}������9~�~z�Άj�k�����ޖ�����ML�i���s%=�37��D?zs�[�ɚ��m�'�Hů���|!<Q�m���)!lCTB��=}���3���	��s\�xNԹ�8�`�L$"���L0��X�t#�H��R!�q\R��?񺊧q<��6lq��'9|<R��f�{�y��_06����]9ל��U�����S��L�+��sQU����+�(DRn�R�e��H�����S�}��Sf�H��{���{�L�Hſq�����k_�NF�o�ժ�Y�/7�an9��^�~A��O�Y,��~uш�,CQ��ݥNŏSD��|��'����]�P�97�}�=���S�H9�x:�ȉLĔ&�J���Vn&�_�TDg�Z��{�5��!���I����_y���vC���o��s4m_7���r����O<��o>E�Ӵ �q�6~����r�놪O�y��$Nv�e�
<!nܾ)>�z3���+�ݸcS=��h2��F���AȄ�b�h�'��҇�1���I_�Lq�_<���;A���$a対�j�|2�5!~Շ���U�;��kK��%V�����ƻ�fI���2��3H;`�/;�M7M�O����:894�f�ٱ�O����ؽ��7�<�Ƒ�f)�ۺ�3~�M����?z�w�/0��]��#��׏~��j�cg'�z��K��Hm��Qe#�և�/�Fh����9r�Ƶ� 
"��ɋ�f3��_���X?�8T�<!4єՁr�6�!jэt�9������͘�S��ݽ^F=�~G����V%�BׯR/Z�'Dm{Q�)�^+���1w�4[��u�&e/wZO�u8cP���}P�K P,�J���_'�`��rm����m�/>�"Ū�Ɋ͖
�֡҂�&�N�3;�C�@���o�y޷��en�&��e��e�#��vKv��D�6�ׯ�0\��:�a/ԛ�0bJ_�e�F�M5�?<v�̅m�F>|�&j�[�)�Bɠ�~��hI)�
٠g	=�7�m!�^�"���V]&gc����9�̔�!JJeE�h��,{1�;h<��\���yR��<K���egi=n�e�{K;�v����.�]웎���(2ꎑvf���ɖ@DE_m<�a��|�)'S���:Τ4/iZ��j�8V�����^z�>Yg��VٴfHi)-�ػL'ѭ�֬�U�֩s��D��g�Pu��gyœ�CAop��m��~�w���ةsFg�3���/�}�d3��,z+�@ϔ'�}U�6S��c��a�1?}
M�.<�R |[ڜ��U�o�Qw�\�)o͆����T�1�����B4��K��`k"ꤗ�4�Q>�� �ĕ�E&���s���D�+QiSbǩ�4��bO��n����g(0`xyw�8xj���
�k�k���jU��*O<���}̓��F��mQ���'�^O��۵qԅ�l�~��d/{���׮Ĝ�8Ŕf�ʳ?9��\o���OY�ypl<����|���[\m��B�(Qm"s�{�t�p��rn/�ĝ�%̍���;l��e�W�Y:��Fi'�h�<74�dxf�����;����3������{����VIKv��"yq��2Z&<�d)+K�3rYל��j����X�]^g"M��<��K,0 ����5'Fba&�v���h͏_��ؿ���5A�Q����n��J�5����N����]�y��UW�����cgq��Hů�^3���EVm=4}���Wl�������[֍p�J�0����̴�I���i<��'ץ-A�Ɣ��_z��N#�S�v>�I+=�*�g����R>��N���e�J�*�&[�f��]-1��7-����C��zG"u�L�>B�یA�?ᳬw���:*��'
5o����
��̮��듲�z<!<_78n����x���i�E/��'�;���������vL�{.�lm�r�<�����7���U�LL��'^�����og�I�&��*�kSa��k?�����ڵ#����f��1���_�e��T�^�U7�s��ҥ�x�|d�ޑ*A|2jS�����[L��k�哲➉���1!�,[W��,Γ�G�'�E]�D9WV�g!snjRG�&1��t|ڎ��+U�}��3�e���:��6ۛ��8�4c^2�βCm*l���iT�^z�*2U��x|��
J�T��x"u��D"�0�9:~��t��q4I������;�����G�'�v��<�?T���������{ir6�{�ػ��O�����/�{��I�+O� �G��ޫv��x��s�;�_3t��
U��掠��/�qC=�:��	�����Ń�DZ��-���a��N}�ϗZ���6�e�I
B٪H�&e�V�.ڙ.<!*ުHXSD��wgvb1ec��Mױ��!��9�_���'�0�k2eR��oa����Ob^,c(s
�k����ũ\�:�4=�n����(�ؒ4��(�����w��X���ɝ�M5���C�k�M��fx��m�Fj�<n������W^��ޔR��G�z��G�M�Iq�����3L��ё�{�_{�F�|:�㽾��Af�x~�������߹��@�g'���o<Z��M��y�=��?���-l=�,��Γ�Kx��#M�eQ��d�Z��ѮO*�'��a{9���<)dB����Nٙ��m�X�[���|Y�r��h�G3_�%픢��<�m�1���d��I�v�
��z;s��xi�B^���3z�����-��8�N�<�J�K����5��s�������|��
�z��$��C�U<�s��뇢D�a6r�{����>���췞fN�b��GO���=W����{�e�z�ȴ�Z���F׎|�c�m_7�g_k�l��yӺ���|y��u|��u��8c'�OL5ø
��^���j����?r��헚A�S����!JpϘ�ŧ���8O�C��+���y�X�k5G�8�8'�*I�4-yW��D4*n�Ո&��\t��}�L��.o�J�:�:��'�e ��j����BՒ|d*�H+��߾��+��x�\Yl~�5��&'���[�
}�'�J�\|{)@7`ȩ�yB���7?��;���$eU�r��-��[���{��w�G�ۯ���˝����$w\}�k�Ʋc1)�qק~���wl�hw\�����r>�aM<OW�����O��[�ߺq��ё��d#P&�it���D�<�q��g>����۹���M�x]z?
V4DhM$%4L���\��}.��є#����4��HS<��H���z�F�RYIAb��ɴW)���Cb�И�_3+�V&����1��h����{K����Nk�i�l��sW����4�����D�K�T���V@�������S�䁱�'�:6�v�ݳc����j|���lモ�m���nX��_}h�pm�����J��g^���1�Wo^���wݹ{[œ�0�8;�x���8*�q��gǖ���y�e��P�C՗������n�f�P�3���_�y��۹etx*l9��ˏ6T}o�+��˴�/4T񫲨��*z�\A�#�w��G�
�f�m#O�-��w�'B�TE��c�V�j+"cu����l흯�@�)�d���7�����m��'��ߍ�����I�7��z���@��K/�2�'M>�5U��ً_ܻ/�9{��}[���f��o�����dTK�O}a��W�IoֈTv��'�'�o�[�W<Ϥϊ��КZe�7�U���K�����[6#]�B
ꁂʊ5�24���_<oXܞ@�2�ʗr��i�NQ���x��WK�o�Q��I��K1�& -S������,�s,�?J�:,"S�+�(��}��i�l��+C�@�ȸ/w�� �P�c���?fJ� +"�z�;�&R���'^;���-vl�t�܄��ޯ���J��I/ZS���?hK���m�ڕo��.0��Q+j`��J��45ێP"��i��;�mt^J�5MT��1ֿ��M��\���O#��,�u�d�2M�TZ�.2�e�]v/��3�u�H¶�I6Er9�Y�%`V��!Ӂ�A{�X<9��6	����}�cM��|�]�.xz���Q���G�/��G�y�շч������7�2!=�Y�sӕ{vlv.�v\ԬÑ�3_�<W���>%⅕W����`�rD*/i��m�K��z<��O�z�����iyŭ��W{�﴿�^_'�~Ei=cB_����M��C't����_�gB�Ip-�pz�M��.�AZ'��b���@����I����‡��H/O���8�����c�b������[�+�=r���&z'�/�y�'D�T)�,h�p��fNe�GE��mIy^FG��	�{��s���ӥRo����� ��g�N������iyqL-{��:���)���tc���3D��$N�x|���|�5CL�>�ȯ�k��ԓ\�kjb�5b�C��Ln{��+��d-�G }P���'ęK����=~������^�ٿz�[/�nf���w��vg��o
�Q�?Yژ
t�º���U�%.e\)s*/�jZԇ@��t��7���O9�u��-��Ӓv�J�Dڹv��|ծ�tzs00�,EI"�Tڙ�佾�I��(pb��Ӟ�?XZ�t){�uAD�ȱ�۔SQċ�@���x*�����:v�
U��_{�����8sa�y�PZ�C�_�V^��d���tQ#ݷRܖ*x��p�6GܒRΓ\��RƮo�O�'\��J��!��8�����f,:긵S��u�fi�����m�;XB��1�l:Ye֝S��[��m�D����4h�F���\�9T� �z��N����d]xz�ȧ��~O�޷O0O��у0:�L�d�f���~ۮ�N]�*-P̛��H�v�����BW����F)����Rտ2+�T�~ρ�df�5b��ٹ�h�LG1��mt]�We'R&U��ȭ\����j$x۔�De:4k��WNʎ��̼��b�'�L]b�F:�I������Şzz"����%��GM4�V��[���s����D#�2o����f��}+Óu@�]Ff4�K���rl<I��)K���$�`0B��V߬�j4�e�P�Q�A:�'Q|2��%d��[o*�ș. �3<:n]J3��ϦS��N�i�$�$n4�3*{�5A@�����*��꧂.>2�nȧ��o�R�9��Xy�_k�?u�����Hq����Y@	��_�����s[���@�Qx
Gݹ��4a��M]j�����{U�%�;C�i[�mд-�S����vh���&��0�v���"�R}8K2V�0O�8���!f�8�Ό�<:�|�n���h�^|PO'nkdB�L(g�1i�V�I�3�=�j�T�Z�B�5�X�����x�gr<�L
�&&ćo��3}`Ӛ��fPnݓބ�H�F����0 D�НqB������f��aI��8�ᔉ��b��Rxv,��یT��nܪ}K��R��<�����M�6�gu�e�2�����V��mg� ��F-�wݒ��e&�o?�}���O�f\�:�K鰁�s�9��E�6y2��'�RfŭibO����b.h���'N���1�G�\m�0���w��|�?z��ً�җo}���a��ZS���ނ�q���h�}q�<]�%'�#�(��Ħ3�e�]��-T^<���'ShLu%�O�0�<b髭��G�N�)0m��4u'y0�����:'\���.���L핽yۼvj��A��i�.$eKf�G�����˕�j9�H���D��=M�4��Ȳ"ɸ�K���7x{�o�s�U7���T$��Q`n��iF�+w�s���q�r�޺y��`�Z:m&�bD��S��X1*��t5�ǖ(�z�%�4�W����K���5߫X;Z{*��'�\"�Ԉn%]�Ӽ;m�Of�H];-u'Cs	�\"�lGb�5{fܡY��y��ʣ���Z)ݬ�#�jʲ��闀թ�̙r�t�5��t�4����?�ɇ*�a����Y�p�R��	;ב�
���E���I!o)=�	h��m�f4w��ű�mb�)����S5���#�B�Х�Kl�s] n�1e2��\�-�\\��n�
<s&�fS�,S�=<�#jб�ΌuZ�^Ms�d[RW���z:�f
eK�p�x�SZ	k��\R+����Y�R�ɾAn��_%rN7�gg�2N<�}QډD�]JS���ɜb����4I�+i!.(=��+�X���ʍPu�;����j�Ѣv_��C\��JQ�� ԺD���}�;�,]X�G��?���r����ls�9��<��I�����j�"Ut�C�4KЬ7�^Ǵu$�ΜG��E�T}�r����`J�ډ�:��fI�|u�9��-�j=���H���}n��lv�Q���V�1G67��r(`��=�./�X�1��������0��^���ٽi݌TXj���綳e���Q�$�q�U��V�/;�/�6��A���f�?k�m�i�S�M��hk�q��Z\�ԝĻ�<���o����V}��!�|�͚��.�����2�e���93�Q|���&OdJI��a<���:^�#+ۣҚ=�c��nn��F!y���%�P���/��ڶqx���IEND�B`�plugin-fw/assets/images/sidebar-right.png000064400000001710151327614500014460 0ustar00�PNG


IHDRK2i
�ptEXtSoftwareAdobe ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmpMM:InstanceID="xmp.iid:72CC82938CEA11E39B63972533DE18E4" xmpMM:DocumentID="xmp.did:72CC82948CEA11E39B63972533DE18E4"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:72CC82918CEA11E39B63972533DE18E4" stRef:documentID="xmp.did:72CC82928CEA11E39B63972533DE18E4"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>Lj�c	PLTE������������tRNS@��fIDAT(�cX�V����0������
+1��3����IEND�B`�plugin-fw/assets/images/ui-icons_2e83ff_256x240.png000064400000010705151327614500015555 0ustar00�PNG


IHDR��IJ�PLTE.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.����oYtRNS3P���/"Uq@f`2�
!<BHK Z#'1S,�4���j���8E���|��������)��Q$�
��b�J��mߜGc?o�h�@^�bKGD�H	pHYsHHF�k>dIDATx��]c۶�H�阒]�K���d��%٫뺮��lm���w]��|�p��X�m�-��}<�w(1$��	;�F�@��%��?����B,Lh{�t���#��T@�/?j�9	m��N� #���+`��`��I�
��_�-s�ʹU0�M��[��
s�4`x��š�#��
�D<�~؀�K��.4�]`��PDDDDDDĈq����Ek@����A�~�*���	!Y���X�`hv3\LX�Ot�J2b�ؓl�QI<��� �6�-X�lֈ�6�H��|=j�`E�iq���Cv:�q���C?�?���x�,�r*t�ݻ}|;kP�4���d�Y���f���K��~[	>�X:+�i����ĆQV9\����e�'���A�tOS�:7��2����YsxM�ہ��B��&���z�>n�C��@��r@�*a�ӝ��%��MFDDDDDD�T�ߖ���H,���E���RU��n
ب<��V-
@�/Nm�թ��������Hw����*�+��#��$o�e�{�% �7\X��ǀ���2��~0��&n��sbA,�D��
�A�V�I��|�
�Og���鴋�	�7�y	7Jf����:_�w^�H	v{/O�9���<���Y�`+�� HRٰ����[��?��
�����=���c""""""F�˽�sG�<*k9c��E�8薽�������zfm��r�1�N������nq�w��&=O�\}K`
#���2��~��L�|?�m>�\�f�͹�:}�4ᦋ���{�)�n[��
�̰E
KY��D�ۇ-��	�+�Kl=�Ӄ��L`љ�|�%��n�	a�	���N�#��5�	(4��?����EDDDD\o�W�Ffq;��\E��_������,���W!%�zE!F�¶.�(USHQ0d�w)T���8#p,�x�B��K���� *�x��X��E�e������
K솎%mK�X~s�FE���~������tdc�a��I���1��Af4��dH��c�G�S�B`��0�wev`����"�{��	�.�GDDDD�,d�O�6�k"qk��Me�fS_����U��KŌ&g~>n� �H�})��L���F%8(�)r���!�[4统qQk�0�m[Le���_�7���0�@>1 X0A��Z���Vc�E�V ���Lt�k�3�EJ��44�Zﮊ�N`rt�>`�˥�	�	�
A��HBLH�@��c���Uq=j������cM����2�s����J��CL�iR �NQ�������0=��Yi�-�|4�V��]��]��B^�ޞ���_H�����$�<�$�	
a����=��d@�	(Z�Ap_�}�~s���:�N{DC>����m�^��ƒ����S�&�, ;�N����&�B} ��<_A��B]H�u��N(B0�{h���1�IK���Ds��j����'��M���8�.�ӫ1�h3�df}mq��	��n�U{��L�o�z\=?@	((��e�|=ơ麄�C�i����1r<|�OO�;�
`�H��p�Qy�zԈu�����Z���V��Ʋ�!�)��5m�C��2�Ly�g�;���֑�R���jW�a@��@V�L�&W���ru=Z
�̥�=U���5}���������7�;b(�����nP&�s��k�4����8�ͥ��0���1�U�W�v�k�18dq���T��ՌE]qH8������G�F�����K���'��r����Or�r�̧��6"fp��T�^3c��"�����n��Mم-�/��W=�tJ,�X�)���{�P
Rm|K��>mX�8v5h��<������_{ꘀ�Y�F�|&_G;&�>^�����W⁃�&�K���(��81�EB@F&��;"L���'wfw��E-6��o&/̫'X�e,>~�ee��|��A����=)	d��Q�`}P[���K��N��˂����/�~)����O[d�O=�3E�l5'Y�$?��7�m��Tzզ.�\��.��` WE���"""""v�)��V���<��K�ZX.Ex�~Ч)��ߚ����W_}�5|��s��/!?��'poդ���tC3����@�Q�)��t��`���b!,dY9�6A2���������/튮���n�t�TK>���#]�L;zq�J��r���²[��\-t�ҽ�5
@�ͷϟ��n�T@��+;�c���Qh�C*���T�ڙ��A<Sku�µb�E
/��$�Z���.e�j�����_ʤrWaB6d���(��S�s[�|���竕
/5R���(�4X�����76��`3|���P�p�'�H~<R?M�2�)�  ��g��Vp��B�n�=�|W�ͬ\��V0_�81Oׄ�Kz||lP_��ω���lxX;ǀ�Ju<��Ng[��]=�(�#]������p�P�a���i���s�f��
V�z�]ౚ����z>�Vr�?�f�?����
�Q�1�T`��} H�k���,{�VZˋT��ϛ�?I̯u�QK�LM�e͆��~��q������y�m0�9�S�;���j�����5 ��i��Q��]7k0�U�ޭ���G�kX����3#���lY��_Цx����j޶9��`�#
M	[z��KuO_z˿Dܭ��*��kOJ�(7��n��\�e�
I�T�ƨ�l�/�U������߶uw�.�~���;#�r��.�����8
�o# 5L��h>1�i�����p��V�M?�/u7��0� X@��L��+M�+�����{��Fkt�{�ŧ89�0`��. ĀC�R+\��/��t�R����;
�TӲ���]�aL���|�efđ��	�>�ۣ��G�|�P`P��8C1K՛�A�̍<�2��ۂ��K�r�l@L
L��������8�@�E>`n����PNԍ,��p�����E��Ɔ���Z�FlÎ;���F��7��Ȯ;�
��s�wSz)g7�{r�s��S��gȋ��(߄~�AWytX�$�NV����R�_��<6�p.�O�8�O[�OdDk>_��O�O�}���JS���d��mV�?�W(_��m� ��j��~=H IԁF>T/��{*]IGJ@i��qam�NF|Q�5���0+���E�S8�:�v�`p~v���j:B����p96�o�ys%��������
�|@H�����]��+�@��t]W�k}}���7��Fʮr���A�����B���\m�-�_�2PY8�����x�ՎN�.h�~��@+7��z5������t�_/�����/�?���0�S>��)���z�i0n�/�B����`{D��W���#`����B��o���[,�g��FVЁ�pP߾���C]Bz�� ��,X�����X�fԃ����A�:H�� k�7��d�Z9��oc}o�]�0�vd�:R]�0�ve���]刈����j����у����|
	?�+(��OǍ�+	�#��ys���ߍ�n�p���Fru<��.HȺotM�3h���}��߆P}�������˗��v�����P�}mǀ���?��W��Z@���������}��������@��@��FD�������l�%tEXtdate:create2013-02-01T05:33:10-08:00)`��%tEXtdate:modify2013-02-01T05:33:10-08:00X=x.tEXtSoftwareAdobe ImageReadyq�e<IEND�B`�plugin-fw/assets/images/x.png000064400000001317151327614500012206 0ustar00�PNG


IHDR�W�?)PLTE������EEE���$$$���444���XXX������lll��������������򻻻�����������ƹ��������������������������������������������������������󩩩��������������������������Ę��������UUU���ppp���uuuVVVttt������[P�{BtRNS	MM%
M�MEMQM$"�MM�M�M��

(
*-HJ.�):Q���Q6IJ=(G�H�Q�b�IDATx^M��v!���%�JܭI��V➺��C8{�n����k�_nEi���s_=SX%2o,�9����$��m�����gA��NUeL���@ƪE�(�<��m��9��)j�"�x���{_c6S-B���q�Y����:B1€��u�K��
i�ܶ�.��LLy�|$xl4b��2��J'�~G^�v�:���I�ã揯yr��'��Ţ���:!��a�J4ʥ�P*7)� I���bXq*W�:5C�Iu,��2B�P�
ZA��
gIEND�B`�plugin-fw/assets/images/yithemes-icon.png000064400000000674151327614500014521 0ustar00�PNG


IHDR(-S�PLTE!0A /@ /@ /@ /@!1B#3E#3E /@"2C#3E /@#3E#3E#3E#3E#3E#3E#3E#3E"1C /@#3E#3E#3E!1B#3E#3E /@!0A#3E#3E#3E /@"1C#3E /@O\j^iw��󘠨���@N^���{��lw����2AQ�����������#3E�:߷%tRNS������"z�q�hr�w�u��ft�|��s��l�,[�IDATx�=���0F�9�{�&�Z5Cx�W+D��|�@1�i�O��d�f�F��c+b�!�P���I�
��XW�%�G�9ϯSb�p��Q�FDw�):��UV�&�a��� ��hi���,��]� ��
:���~�v᭺�_��Jp�h*nz�X<tC4
���+��
��IEND�B`�plugin-fw/assets/images/ui-icons_454545_256x240.png000064400000015520151327614500015332 0ustar00�PNG


IHDR�E�r@bKGDE�;�-	pHYsHHF�k>mIDATx��{leG}�?g�K��$����U�!�>T��؈�J��i6A"�V��R%;��"��*UP)�
�/���z�RJ�F��QP��z��BQH�VU������5sμ�9��^�3ߕ��{~��7s�7��<���.��`���� c���Ab/�@�[�V�D��0��3AX9�0�N��_�B��&��>~�>�
c�;ab�D�ߎE����Qz�'k���M�ayԉ�6�!�:u:�:@RŤ�B�yDD���'�L��-�f�]S��q!�f�
S�Q�&�S��7MC��r==3dJ��{��f�Z���S0�Ms��:0K٦g�ʿ��&H�U�=�mc�4�i?UĔG��U4�hc��Qb�]�!�hL���W/
����@������pxh8�~�|�A��Qf?�ێ�1f¸����=u����Q�GJH��p����PϠI�w״m췥���ԧ>2���"�WÓP&{��n���T:s�f�q���H@���.c�I�����~S�s+�^|B�n�29�dH����]��v�-ˌ-m�e�h�>�����q&ت��g�9x�#c�n�~!����pxh8�4^/
����o�#�Z@��S���^�4� KZKP�d�9���C@F[�����,��a+����]8��v��K�qHl�w9ק�84�KB��ץ|��&��#��[�\C����`��R��!�����:�F
z��C���6��)A���T1wU.I�җ!4��ig�3w��������E:��q7����n�0uA���mP��y
�T�K(5ͬ�lNæb�T���rw�DV�]��t�e4���7�
�L���[��C��0��P��&��0���+�+�
����@������pxh8�4����Y��`��O����E�Z<��h�\J!��䞋��j
�;TK�Vr�0��ͬq�cˇ��u���a����p����E{B�w"�K��5���n-��c"w�v�T�6
T�hzီ|6�ŝ���Ι��N{	t��]��K��^m1(�6��m�3��'�R�f���`Ô�� �_�>��j�,�*�-E)�e��{�U�,��
\u���oV��:
`o��m�Ke�t��_W�O��dW3���Z
Քrv|�~^�g��`jyc���p�*���f��b�]M5��9��.��L��N��q+%����ۯ�0�vc�c�J��EM5���kk�#I�<���x_��	�I#0D�w��4xh8�4^/
��^c���
����d�r��DM{w�Q�t�e�{��^�`��b�r./��M:0գ��*���z���`]|S�B�(�e)�h͎/V����ܮ�"aO!�o�
,�u�^���Љ�^�=�z��t`�WeCC�MQϱo��0q��%���U�o?�<��@6��HG/���������uAQ-_�u||���ִ*2l��ٍ�uG�@� j
!�B��r�����	q�L!*)�h����.�V�{3���-��!�w�$dP�*�����/P[�t1���l3�hl�y�p������0b��g�L�} �3���$�%\/��.)TwQ�"uK7d�+�2�!�@������pxh8�4�'�aY$m��f�6�lB'�.D��
��Р��x7S�x��tI��eW�e}���d0�R�W��^ݢ��0](U�݋T�x����|��T�|����@v�^Df׹Lb��(�2��H��0n8;���_�Q�O��}D���&3{��Y��W�w��5*��e˗?�̖�G�
�:H iZӖ)/MP���(:�!�/�|B��[i����:�Gf
�L�`�~��:z$aa���^����ʭ|P�- kbݞ<ەL&�xJ�AABȼ�Hvᑢ�[�yS��ə�w�NJuy��%pw�0�_a"z��x���� �3i�1|��=����@����%�JW����A��m�\���
��l��X�m9+�(��)������S��� or��ro*E`�Z��1��&=�ޗ�g�!�Rt<<�A.-V���+�l�|����suK��,&�ȇ��%����y�q�s��(A�K�*�q^�~���anb�1`�6��G�P�a�&.�	�)b���muL��I���fnE! k̠Ò�c��m���c�ȱD�-B֥֙�D`:G��e�tQ	��7�0���0��������YQ�Ӕ،?�mb�/�e׸L{8�<�
q�{��X4��$s���D@���s�9����e8�\c(���Y���"�r���7��q6�u-	|��B���R��ix!��9^P�HD����g�t7K���|��2��"�.�t���V����w�E�u>�b�������f���a?q�h'y'r�y���#\��&��
o+��Ԫ���|�Y�%�_Hp��"����k��1��*ɫ���U[��&x�9�xA��s�mf�e��<�_����7�;y�6m���i
�
:�[��)�EB���7̰����8f��CH��`⾿�h�)�����}�(�%m���'��&���
;��(�ݚ!�{:^����R��@���N���Kү"�*�<�V�敡�=��o�h~q���+`6I��i�I<#�����Z=^IE\`�0]1���%�D��A��^�a0f��,���c %[�Gxh8�4^/�����rdh9�����M7L)-�ӂ-���?K(����stբ�h-?�:��[ڧC�r�]�G�(�YB�3�|�C|
l�eXW��_�x�V8Ɗ�b����bQ����7����V�4J�]������l!��=�
D?��'a`^���a�q��8��:-��O��YP��x�ۀ���֝��X�5Q"�Gִ����W}���
���I>ȓ<�c��b�YV
6=��*��ۿ�-\��įi|��BH���J_F�Wx�CWғ�_�K�`B]J��"}�`�_R��β��&nDsp����t%G-�^���V����yIc�b�9.hM�u�K��ĭ��6T���6��5Ko(�
%Hz߲�:.��n�z�ōO>���c��lpVZM_gڰ�C�v��eG{����<_d�����0՗e���N�%N�y�ƍ��Ȅp��~�Ú�/���k�������n������|��(G�����#.�s��9�J�ۇ��l���[��6�ɻ�&�.X���{�����SDf�†�<����y?O�~��ƅDP���*~b���gco��s{;�����'�Z9�Z��.��O�孁���e��U�~?�Ӆ1N3��ڶD�(��1Gx�x�k�S�H�I~ی?O�����k���,��i�(���ׁۈ�{.�h�_���5�؋�nF�7��0Q��O����S5�:�'���/��ա���J�r����
�.���KN�wu�e��r>n��-�U�$U`I�v%�����.A�U����e�d��
��;�Ә:�+�a&�XĎ �y����������������G�с���	��"�4��pxh8�4^��	@d6�((�Ԕ{�C::[�>�H,
�ɴNVN����hr.�~N������Z��`�3�᝼���K��Q�|$�%�t��!�Vn%�=�*�7����f��g(�m!fy��"�k�I6Y�/�eZ�ٳ���+��z�g�6W8ɦbQ%�y�{9����Ï�*ŕ�#�7��b-t��X�͕8y��nO�{]�!ټ�*���\� �(��p�2.�H�ٙ�d�.�^Z�(N��&�l�2�&k�	�U&ף���#~�.���7�����6���58A7����}P:��BlkU�[�8�)�j�w0�$��W� �!s\�������QF�n(qRK��:'�X���@����=$��x����|�5:��@��]���2�S�i�.�&��
��$`
8�t����S =�&[#�߫��U3���Wҳq��^H{���➇�Z��4������"��A��H��#����U��0+̱�1�Ɏ�;���O9���"�D�E
�C+n�U:�|a��ɔ�M|�?H�����W1�$~=�k��U�џ�V������V����l{��7�	�����^�;<�,�t[�����T"�3SU9l��˾�H���x^�&�a�@���)�E��&�<<B4�(b����p�����Ƶ\˫\�u�f����7r����������^��Ci�[��.��h���_�^��mD�"DD�_3��e������e��X�	�,�B@�fU���/�?���g���B�R���C�&��2��P�8��@3ZtS�<����v7�^#�另�;c'�Nȹ����6�g[�J!Az^ ?�<̯�oɛ�_s[Kg{(e�}�E�~J��,�m<<�����U���g
"&B%�7�~�{�/
G�l�4^���j����Ԓt���cA��0\(�����ܓ�Ԡ�Q�8��YN�Bݝ�?[���R��$�k���\�{�u���׾~�Q��q�)�8���z:G�G��UK�:�
07��6�-��
WMY<�����
��2�Ѱ��$5�&v�}%��8�)#9&)/��K^2�+��B̳�i���\Ҥ����V�}�LD���1/i��n�]2č��>��I?U�7x���G�4�c�*�i��
�5)ñ>�wH�����f5[q���O�.���d&J_�~W\`G{�
|-���e/���Чk��d� E�����(���N�i�v=��C`�̲�Z���+��%m
)s�!ī�6Fei�N��%���O*㪞v,s��@��%���4���tS/<E�%��0wr��k{ʉ2b�6ɻ��*���;�����zs�]�۝,�B��!,ų�uM�zȐ"�={����O��E����۴��w80��ۙ��%�\PL����
��H�[/
����@������G����9��A�Pi�G
ѫ+!��'��^��u'þ��:�Z�@�LxZ�:�Ɩ����oQA_�RR�`��E��,���~�]M�y_��xD�$��&J�B�k�Q�@����3����=�A_��هA`��RN�#�"��tX��孋�0Z죡�Ԭa�t����R��Mi�C-k��r�a�fH4@�C��ܓ���-��`$�~���Ul�$^�Ufr)�0�*-C�n9W-��@M�1��a���@7�g!�7
?̣|�l�R��/ᭁytX5��L݇��p�����@������pxh8�`:{�1����J��5��#;���ǾD"-��s�ct�Ln3�<D��B���d1w]���=4H�α�'�!���r�+t��d����eG���{h	@�.���k�q���v�e�5V�h.0�©|U������
��C��u����k��G��O��C��Y�	�"@�E�"mNzP�S,��1���rzk�M}�����y�.�{+j{���xL��wE^DPk�$�3�cA�Y�~Y���
�/�C�H�F�����<m�47Ṟ�Q�3��Wa�o�~o�)�C�d݇��E�ƀl7�(̢b��s��ڸ���<<�Fx�~?@��m
����@������v@]��<���=���~��WD�`��.��f���~�o��ʈ�n�VA{_��ե�M����
�^��y��M�Q|��ߟ^-{�~��>������Ѓ
��(��g��X���7��i��&�X
5WJ"�*V���J6s{��I��w�oO_��5~���YX�w(�R��!�m���)^�'��D������ɸ�����5�=�@��+���~���j�yQ`O�`�$�D��<B�F0C<�^%�@��?t�k3�}�@����{�^�y��U��|���pS�nĦ�t���e��=��$�v��>`��H_�B���T#%].Xx��D�ѫ�OR��2�E���\K"��R\T|��:m�O���
�x��*y
=���2��~����/?J,����+%q�	�W�ޛ���3����?ܕ�?����
�^��e�����	+R����oҎ�5س�~�o����Bo
l8�4^/
����@�!��/ON�G����ۮ2t]��С8�cݮ5�z=7��������ˮ���g��@�/�aE[��y#�3�#z��7L�.|��
��(cR�c�S��m�Q�$�6�ץ{D���a�{T�_j8�4^/
����@ñ`�/���_g�"d���`�ɾ���0�
���{�����
�����C�j����_9��jD�Ջa�~?�	dc�[�����0�*a��������,&
0��&�+���O�B4!��1��~��Ix���>�8�c��&�G)�j���I�����=@�5@�v�&J?��Q�l�Ç@��Q�����?��^����%tEXtdate:create2013-02-01T05:33:10-08:00)`��%tEXtdate:modify2013-02-01T05:33:10-08:00X=x.tEXtSoftwareAdobe ImageReadyq�e<IEND�B`�plugin-fw/assets/images/sidebar-left.png000064400000001710151327614500014275 0ustar00�PNG


IHDRK2i
�ptEXtSoftwareAdobe ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmpMM:InstanceID="xmp.iid:6471D63E8CEA11E3A6B2CFA97FF7973C" xmpMM:DocumentID="xmp.did:6471D63F8CEA11E3A6B2CFA97FF7973C"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6471D63C8CEA11E3A6B2CFA97FF7973C" stRef:documentID="xmp.did:6471D63D8CEA11E3A6B2CFA97FF7973C"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>l��'	PLTE������������tRNS@��fIDAT(�c


Y�V0������
+1�13��%�IEND�B`�plugin-fw/assets/images/colorbox/border1.png000064400000001165151327614500015125 0ustar00�PNG


IHDR2b��H�<IDATx��1N�@��]�$T��{�p�W��!P(9%��&%g����$3��o
V���l��;�ݯ�g��̺r�4�>�&�������Ds0�Dl�k;)�#|�LL60��I1�X�-b��R� E�H�`~t�-a'�왞D�|ҙ��9D)��$ vJ- ��O6Rr�j-A`��"��	J2�3��k|5{5a"V��(��I�j:<,�i���_����+I�1�EX�R@RM����۳0+M�4²$��Wi�1'a	�Ѵ�D��<>%�v��*����$)@��0G�,�G�X#��>9��xD��r����`aBH@(��^��f" �����D�ٯ&��8|tH����$��¾>����d"�:�w;vl�@�B$�4���Qf�!���exw���.��+>Fp������/$�pb*ܠ:��(��b����~�AS�!�*�&��@�@�yd
�)�%��@6@>o����H� A�	$�D�]&��2�a��s�L��ef�Vd����_���IEND�B`�plugin-fw/assets/images/colorbox/border2.png000064400000000160151327614500015120 0ustar00�PNG


IHDR26�597IDAT[cd```�Bf da`e`c`B������	'1�`�	��~3�a���!\�F��IEND�B`�plugin-fw/assets/images/colorbox/loading.gif000064400000014144151327614500015166 0ustar00GIF89a  �����������������������퀀������㸸������٨����񱱱�����������乹���綶�������XXX���ddd���VVV������qqq���}}}��۠����܃����������恁����\\\������```yyyYYY��ͣ��������zzz������]]]������ooouuu������nnn�����▖������ґ��������|||��������������ǿ��vvv��ԛ����Ƈ�����������xxx___rrr�����������ݕ����Ë�����ttt������ccc��ј��������kkkfff������mmmggghhhaaajjjZZZUUU!�NETSCAPE2.0!��,  @����������_@^@$3 �*��B�&�D�,��J�������=i����,D
G�
D���̜V;�n4K�F3gC��ئD�*:BKK8�E�JJל�
��EJ�"vM	�*\ȰІ-+|1SR��3�L��&�/Kf�%Ƅp�	8�`-lfLqa�1��8 kVONEDı��DNƅC4		3��s���y�<$k-�20U�8��C��T�	�
0�jf�ۆx�&!�,��������Vg?5��J_]/e�i&�L�9J�q%-.��x9�I-LX�J)]xW���Z7	9LTupR�'7X3�b��Y7-VӉi1��Jڃ&PM=��$�+b�Qf�f�H:b�PQO��
�RHCA
b!��T,��6�@��@!�,��������KpB��7pj-�1D�	pvL�r!Q�)�X��GNhrV�eJK.�`!WWsw+`&�B`e_M*;;�T��i��Gkܑ���1==T��QV=.,�(k�Q�O��"DtPpЀ	
#J��a� )�q�8B�!�,�����$���?sZ��J!?oW��?w-�=NU5�e�_��+NFF>�I�I�qo_
VYNca&$@^dMx <T�GYU`�&�a Z��k�Z?�;ډ*�*��
TD��
�;6�D��A"G
R�`�J�H�� 	��A"�h?�XT��_ !�,�����fQ���M9SP���c9@m�J�`3@r��Jc3g!�G�H"qH�U3^lK#-,�(+BqYD.X9Q2/4�V[Y=�b(�l�4V�G�[�+<h�D
��:d��
��p��A"�#�P!�#J�H��E�J,8��ŏ�$H
!�,�����G=>J����8_).��'_	l*���`�
�(>D�A_Xc�No9b�RM*q_%A�Nv2�=fP0r_>t�]0�Td$+5�
�*Ij2<I�d8��Z�I��df���$����0��� 2�pJ��,j�ȱ���Gy�d1!�,�����EE����>la1���Ba!"��J�N�1Q�D��eA�Y#oZ�JiVE�ZaeK�6Cwt!*�;�.
1lI�$#�p�,:=;��lotF�5,�Puc��VG��
��rt��(��A�M�ԙ�@��| 	�@м���J���Ǐ C.��1!�,�����*����P���6N��*6UB�*H>��*�"�9@M�(;
$6nZ[\g#`�*
D&T;A&.�#?$�Db;�A@#CN��,��#sU���0=������
B�fF�
zB�a	%	jA1AD���H�Ca"�<�I��I^R!�,���������J;J���TMB1��Q������VM[+�GZ_	8�
E�0M8�)XLU�D


QW	L3.�DD��K�\6�
G�RL\Y�GƊ50���a^L>*E�+2]]-�۷�� X�fʍ{�
P��ŋ3P@(!�,���������,Q.���V$Q��
J���8a!��VV*8IeWq��,�0f�:�W7��
��!W)[���V�֓�Jk5��*��n3g%N��t�pu1��j�jt:�'�H&L"� 8�C�D9q'aV ���� L9!!�,�����*����(���1�,��:1�dY'&���5T='Uc$���&:6�`5��J�$NcIMƐ5Fm+Аk���܃,)%L`D�[##?�U�o��U�
U--RT�ǏP'q�$D�8���F��:��@&�!�,���������J���,DD,�����
�JHV���DbE�1Z["D��EDGb+Bqq����0�'R���"A$��(;���

���"!WU��ZL9�3Y��O@��Y���Yr��F���y�T�IS��.2�4���.>&hB�"	�J��qR�!�,���������J*��������,�ET���D(.$$�
��E=$PG��*�fPZ0���bOVJƼE�͏���Ona`q҂WW__[�P	���`�[��J��55넞��c��$]����]��RX�&�X�!�,	�����
�������,��:;��;10>*��,�.;���
0H��
�����"Y'M�Fca�M�$!!h�+�ZNN+�����dV܃Zo?�*epwsAJ�N>Mppu?k�Y8�Oʤ��E�IV.�B�/2j�!�,	����*��������G���
D
��DD&
�������&TD���������=P+�i"q66Y5�VN��i�K$G���G=>݃+@3qܙ(,J?g\"�gw�s?^\R$58�!DY�ya�⑉9lU�3���:4��Ç�G�d80��ɓ�!�,	��������������J,��
���D��DD���
�����J��T==b��PMM�TB�B+G�dM+��*J*�i1J�	_Ɛ*&�`3X)O�[2?:$S3%)=�g4<I���+qb#	C��t$˔f ��� �n�|�!�	,��	��	�������		E���
��*�����*�*
H�0QVVk�bf�f:,�:.di����1��R!a�(�N_emJ�pSk	)_rmi�\]F�O-�[�^�a�)Wd�l]p8�8��i	%*\!�,	��������������������
������EE*�(&
�1�1�&kkb���(�b;�VUY�G�Z�;D*"anA��d?Rs\:QmalH�
`B�%tC'*h����
~Йc���I¤I���0�(1�퐀t�<�d�K
�H�@���@!�,	�����G�������*��E����������
��D�D�����
E������D��,P?�1B+5J�jU�
�6Z>�.] <.P@-H:�O&�@oO7#\�RYK>��L#�8�t�̉b��&0�"t$� ':e	H��d��I2!�>,	��>��>���������,*������������
��>��
,��81�*
�% 28�;$=��4<�(>.+8&�>'4/=>	!>+�&3#�!97�0����79)"�5:*�kacЄ����ŃM��$2j�!�,	��������������������E*�����
$k�G�-/pf�1�Z<26
�k=5T�Y2joQRen(bf=>�(X\PJcWI8�TR=kՊGhWmZ�*
H
��mWhO��`�+�Z�:&A��Q !�,��������������������EHi���&h	'�����Q�G�Wjo$�DD�husK�
�D;bD�$�og=VnKEk��Kto#O�'c'�D�,�b_9P�ncA$�J
!0�@�1.ē$��'f^�x�ᕀTL�ȑc !�,��E����G�r-nK���#  ��VL#n����G���fi��!sg����as#SO��D�ĹC�X05K��D,�e#@9$Bqk�
D�B@3KqOϟ��1kJ��P���`AO�0���5d8�����!�,��������������������=^Cc�^�d�@//<.�,Q	S�J��.:��
aSXV�
�U\L)G��-e�Q���aL	W�*P.b�
��	_�+P���T�PPR�UR�"�XAR@ӄ"J�!�,
��G�����QS^l��\]<<V��,9jjd��iW%Y����VH*��-e>��G6)mR�J��$7hlbi����ci�QQ
�Eтhad�.QT,�J�;&�VQH걂Qk���o���!�,	���1&�����[U����XN(��
$��G*��N3@SF��Rttpp$��.o��R�A	X7qG�JG��>;΃"mnH�mFA0�J�dIFK�(E���*KFN6k&D�E����C�

���H���8��o�(�`�%B�!�,���������	��� #:��K I��
%(��>���G��F	L%N�I?�CCM�F@��$�&F!B������GH(��&�A"OHԃ
��>'"
�"BM�,9��"
O�h04`�@��!�@�A�#BJ8
0`�ɓ'!�,��������&#P���Y/4]:��B<xK��)<vV��85����7_Y��n9933\�*A	��.�b'aal+��GGŏ҂GfO��dZD�DRi��DfVE�Jk>�*�,��	`�€�}*L!�,���������X@���"j]1��Zpv][��pt0��R���G��b"`hm[��J*6WW_77V�*!��Q��EB''q$��*�����
ɇiR>�k0T
��=0k(ыG�G>1�0��֡��O�b8�H	!�,�����V����N	b��T%\8�g-���6ouo@��Cotw:a��hCwp6����sf��V*�Ã
ZUU�Ocaa`I>�MN���,V��J։J
�;H(G�
T(���dG��!�@*
)��/��{�:`�b`�@!�	,��	���	P.J��V;�A4Z��*"^Sf�\ '��e@#g$�3���B3@?^1	+p?D�	F3gCK���,l3S.ŋ=ĩJуf[KK8�Qq6YY'H�iB���G>$$k��JJ֕*G��Xi�O"�
N�����A:�+4�����1	B��;plugin-fw/assets/images/sleep.png000064400000000165151327614500013047 0ustar00�PNG


IHDR:~�UsRGB���gAMA���a	pHYs���o�d
IDATc�6_g�IEND�B`�plugin-fw/assets/images/no-sidebar.png000064400000001652151327614500013764 0ustar00�PNG


IHDRK2.���tEXtSoftwareAdobe ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmpMM:InstanceID="xmp.iid:7FEEC4A48CEA11E394E3E99B3656B41C" xmpMM:DocumentID="xmp.did:7FEEC4A58CEA11E394E3E99B3656B41C"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:7FEEC4A28CEA11E394E3E99B3656B41C" stRef:documentID="xmp.did:7FEEC4A38CEA11E394E3E99B3656B41C"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>X��PLTE����a6KIDATc`��&��lIEND�B`�plugin-fw/assets/images/double-sidebar.png000064400000001712151327614500014617 0ustar00�PNG


IHDRK2i
�ptEXtSoftwareAdobe ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmpMM:InstanceID="xmp.iid:27C197D68CEA11E387BDBAA23E7E1159" xmpMM:DocumentID="xmp.did:27C197D78CEA11E387BDBAA23E7E1159"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:27C197D48CEA11E387BDBAA23E7E1159" stRef:documentID="xmp.did:27C197D58CEA11E387BDBAA23E7E1159"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>O2�+	PLTE������������tRNS@��fIDAT(�c


Y+@\�Q�Q�Q�a%x'�T�
u�IEND�B`�plugin-fw/assets/images/licence-error.png000064400000003156151327614500014473 0ustar00�PNG


IHDR#"Յ`�tEXtSoftwareAdobe ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmpMM:InstanceID="xmp.iid:67C022AA9BDE11E4B16BA691703D4DA1" xmpMM:DocumentID="xmp.did:67C022AB9BDE11E4B16BA691703D4DA1"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:67C022A89BDE11E4B16BA691703D4DA1" stRef:documentID="xmp.did:67C022A99BDE11E4B16BA691703D4DA1"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>_�B�IDATxڴ��KTQ��8��ٴ�m�6����$J��0��ͺ���qY���jaX�$Е�����C	e�uN|o�w{��~8�e��w�9��޹��;^�y�fI?IG�)RI\/B%�=B�Ο�AౌQ�􊛤/�m�f�rA �g~w'@܊�a�w���v��}/
*�O�U�YDǯ���+���$�:���0@���%mZ h-V#�_��5D�p�.7�I'�Z�C�5�)@B�!Ʈ����h��|#�t���e�ci������񛦓��H����w�}�#��q�˩ͪ�Q�jDp��������Q��K1�Þ}�1��M�1 Q0�㻫���H�I�@��tH�1@&�Z�z��8@Z�=��
3咀Jb��q�e-1c�K���Q��t�<��ȵ,k�t��o�\��w?^^�r̓D��0�k�=�H�����y�>O��L��`�ŷ�q�O���.,_2�&�_s$p�kya�kͣLkL
�aH���@�ia��P�Og�}�^d��3�ع���^��x�4s�4/��UB�zy�QˌE�26L��j/K�װad�
9��׊�������B0�S/�	!��=����JΣ�J̙�q�n����8M]�~�iRBs�sn<w= ��t���k��=7��d�_������s�!�&���~�|��UԵY��1[�.��Ck�a�iԪ�ԓ�g�$��Y�[����biD�IEND�B`�plugin-fw/assets/images/ui-icons_888888_256x240.png000064400000015527151327614500015366 0ustar00�PNG


IHDR�E�r@bKGD�I�( 	pHYsHHF�k>tIDATx��{le�}�?g�
k�u��J�>D�C�^�Q���M��H��*MU��
h�(*$H���R�*j�	�D�]����)Ż(M6��F�6!6�-
�xI���i�-�� HN�8��s�uι��g�����f����7��3����ƣ��7�x^/2&�v&v^DL�	l6I�-�o?��cn��D Iy�e�#d0+�0�3��~�����0�g'L�V���[��R�C:B�~(��)$q�vXu�B@��E@`H�NG��`TA�%=]�qAw��J)��u)�9�:e9d`V��0�A{�=��BS*�ڦ�S��gFA�-(D��R˷@�"����g'�U�,eSwʿ���j��*�)l[����.HLyϰ��9�����j�a�I6��MR~��~�nG�ٕ�3�
����@������pxh8�4~=@>���(��mE��3a\`~��=u����Q����[�f3W��A���i��oK}3wէ�gV�����,j���n2��*ߕ���m��M�]
y=��xn"�co�.�L"�7]��EC�:dHz�E@W�.�f+^�eƦ6vռE4��O���`��̴�.�)l�:��7����){�_Я��~"����pxh8�4^/
����/�#�\@��S��^�T�0sZs1�J�1�Pr��h�w�V��E�g���S��T��Q5�[	\B���O
`+�˾>}����\�6��/0��k�g���1[
�Kh��l�Xʿ��_�Z�^IA���^�N�4v���OW=%i^�<��9�t�f �2����С��B�Hg�6���!u�\ҭZ�&蒶�
�2����s	���U�]��i�T����� ��]�Uaq;]�A
�:�rG-3�<F�n��*�ݴ�T�ݯ	4<;�������@������pxh8�4^ysh�,ux��$\j��"Z-�mo��SJ��9���{�
���e˹[
�\�fָ�ұ��y�2LT��0�K@�9Լ��Ţ=���?Х��B���=c"��v�T�6
Tokza���9T���s&�6��ո���v�� }3�':��[�5�)�,�xU!��҃@}����U� �kc��
ꈡ����Y,]��`&߬('u*�^�v	��O�wu�?}2�&�C����Ȗr�}ݾ^g�[`�yc*�9s�"���f_��b��
uuT?�M���f�

e���ۏ�0e�vb�c�J��EM%�6���Po��l�M`n�~Esչd�j|�z��)miOq/{�ک��Jq���A�G������pxh8�4^��a��+ ����ʥ�5�݃F�����+��Y�&{�˾���I�
�z��\e�X�����oJ}Hȯ�iW��)~�n��m߮ɞh�����l*7TP3k���XJ7R"�����"NX�U�}ٔއA���/(qW�\���v6�$2�
��-��˶Ezd��j��0u]PT{�[�:>>�LDkZ�Y���ֺ�14�ZC�WU���b�d�12zB���Y�$i".�~A�i=�����Œ��۪>���E��AI�b�\Ϋ�������
c6��O�SB\��ɅJ#"�RE�Ȱ_'�I.�aluI��������	��YX^/
����@����=h��$i3�7[��d:Qu!Ztw�Ul�~F��Ż�b�k�K"$-c��.�3���@�,�y�;i�-�JӉR�޽H���!���ɷjN��;��Ldw�Ed�p��� fO�,�j�T�q��������+
򩸹�h[@Vef��6KV��x��\�b���|���l}_�$U+�W!��?o[�����y�B(�p3
��r_�5P�2ݚ�la�˱*�x��GXG$�`�W~9?�r+��y�-k��d����.�@ <]�����#<R�y0/��99����T����^w�
����.�?0�ꠁ{�]0j"<�v�g��Qxh8�4^��$S�L��@����oԆ�5	�l\q+�VN�!��߆���j��L�b-����=UK<��׳�6��R���?S�j����b�s�'�\
>U��\Z,��W����4Ig��9��L�1�sa��R���O�^�.�P����(�>�K��\�c�6m^�um
��Ql��g�"�y[ө�D�/����[V�*3谨�X�m�@[�q�X#r,a��5�	kLK"0���񢐻(����q��A�O�VP�U
j�(�iJ�l�Wq���l�i�����x�S�� T!s��XD@��s�9�k��y8��\a���Y���"�r������v֗u-	��v!���H�
���
�4<��@��(B$"Pd�V�Z��5Ɯ��	�ߦ�����s0k��B�5h$�=�dpϪ�_�@0+�����4@"h�O�t���c�ky5�v��z�K���\��1@ޒZ��]��B�_.܋ؿ�!�I�Xd��WpW0�Z%y9�s9�jaK���0��h�sN��,�lU�����X!����h�f!�2.)��0����� 6�B|Iq/�Ӽ��0�jD��F[,�5�
!m`�-������$�J~1w�WQ�J�D#"YO��
�6hV�Q��5C��t��/���7	�8�-*�"����_E�U�y0�x�+Cxg�h|����+`6H��i�A|]�����Z=^JE\`20
�~]���f 5X��`?S�0��Q^��?J�1�%[�Gxh8�4^/{��S�"��rؘ���ɛn�RZԧ[v�-�P����O��I'�Z~tt����O�N�z����q����g���آ�4��X�����ԃ,s�e��q�9
,2�)�^���Ķ/�����(��rS?�=<��B|W{|�&~�OO�������
�t�q���uZt�E��A��)n��7
�;O&-��+�D쏬iEcG����F�	?�c|�Ǹ��54�:�,lz��O�l	�7s��'~C���%B�f�2:`��ě਒�T��T��bjn�
F�E���,�,p�n��F4'өkLWr�"�P[oa��o��s��k�qNkҭ����\��n������.�Y�xS�V(A����q��t+/ԫ-�u�p0w�-z��4��ƴaY�=zt���n�g~��2�7Y,,耄��L
d�=|�|�|Y�p�z��?2�\���f�˼��\~'f�{�[j,�	>#���(�9�a:��,��وK� �x�R�.  ��B%�f6����n�ϻV���/Σ������� %O��+|���!��I��6���3�e��HW���O�� vXIK�O�rZ�8���g�g8=C��2�9Ǫ[�P��B'���rAmK"zʻ�!����
���m���6�뱾�3����y5����ܓ��"�[<
�J��sϏ��U9Z^��8_�fD!Zq��_\��- ��-`<uQS,�y����b�]z@h`�*�*GZ�����>��)����D�g��鲔��iqIb.JXT���bj�k�$��M��1^�K6�<��˿�9��C_��fr��E���M~���8]�T�xX��u5�_<���t_0PA���𶀆�@������p4O"�qGA餦�����v�GbQ��p�rz��E��3�3�U
�6����+��$�q?�W
1��X�K<�8�
���[����sC!��}E~5C~=C�n1[x�LO
��g�U�X���=�����̪�y�hs��l(&U�'/qg�v�|�^�8Sx(��o(�B�x�e�\�ӑ�����ľ�U��s���:�҅ͅ2k
W�!�B�Ԝ�i�
V���EO�f�X6�g�A5�kOد2���jS��6ۼ�[J���S��j����Q��:(���Z��0Ne
�Z�]L2�$����4@��8�B,��,�Nj(�t'�8.��JC�L�K�U���i��5�#�Xx�#|�U:��@��m��??d,^q5�L!�]�Mr��I4�pZ��;��>�g@��M�F�K�)(�}�f��U�.�{���]��~5��5������>�"����$c�����+�ן?��Q��c�#
�mK-6�)࿁���_�Y�n��G+��:�|a������"�~ϯ��ٯb�q�~=�+���,j�?�M��y
9"�y��D��ʍn��g����6-z<�,+tK�����xW"����'l��˾�H��[yJ�&�a�@�~/�9�"�a�%�$iѣ��6.S��8ظ�+y�+�*�o�jo�mp-���k��1	�u����%�=�����-�"�
��4wq�-��Ր�E���K
�|�Uf�G�
-��Ua]X�r���x.�\���˅h�:"����LF�dF���5p���f�覊�)n�Yͣ�n��Fh�
1{�'��\��<ϫlik)$H�䇙�5��%y�kni�b
��/���O���E���OjZ�<�,�b�������P	���p�+�@��<[��/
���#/�Z�wp6�$�5�D��E�����
���|6w�^>7��{ԇ�Nĭ��Pw���f�>��k�7�/��c͗=��cM��ﴯ߁A�E`�q��:N*��N��Q��b�UG�`��ʟ�Ƴ���Cᨉ"��5�w5�.��&�v;����.ܱ��7e$�$��y�K�YE<[�y�8����M
n�m%�U�4@��[��&����EC�(�.�/��b���C��>Z�1�_P�O�^�;�����!�N�wc��l�^���]`C1�L�����8GO{�
<��fpY�8���:�X�! ��W�Z���Vc��ʺ��b���+����_ݖ�fp9U�4��u
*��QD�I�3cv�1e\�ݎe�(ֲ$��ؿ��.�]��z�)�/�>�>.|mO9Q��HN
�P��{����;�=�YJ���7'�[��ɂ-����b<
Xӌ�2��@}�޺Pw������aŨ�M�	lqG{R\p��Dx�s��T3�X�ؓ����@������pxh8��ѱx��e l TZ�B��H�a�e�c��t*ZHF��b52�iiS�[:�DH�S
�))%��_rp�S���eUӮ@��*I�3�*�C�
3��=���&�&5�CB���`����Ê�,o]���~����]3�t������ح�jXe�x����0CTA3œy �5�{�t����!k@QV+Vr��
3�e!�̰Bː�ۓ��O�A����԰‰	#	���U4V��D�ч�D����*Oݕ��<:�Xl��Bxh8�L`������pxh8�4y0�؃���J��k5��#;��ǮD"-�鞺#t�Ln3ã|��Áysɩ�q�v��A2t�>�}�<���Jw�Z,ӱ:�-�*��%��A$-�lp�I�d���5�S/���BGs�iN�z,v�~�79P�r5�q��p]MM�O?�m���~"g�ǀ����9VhAmn`��0G�)�����ԧ_ԇ��U�����W�1}�3�y
A�����p��;d��U��>X����J��x��<mV5'Ṟ�a�0�Wa��s��w��A2�����<w�F}b@�`fQ���=�{Ɂ�h����s<���5P�ŏ�.�_�px[@������pxh82��P�~���G�Mt��M���-�v@]���ܠ�.߰�	�����~��K�9�4}��6��. �/n�:��&"O�'�"�'G�SH��;U�k�A��'��U峕_������4]|]̅�+%�w~�tUFD�w_���/}�����e��7��%~�B*E����K����e�Uپ^̀���Y��`]�����2���Y��O�ޯF��g��E��OB�O���Z5��v�*)���*�C��63ه
��(��/�w0��zP_���WL��
7��AlJ���(�� ��p��
,���Y����j�c����w�(6z�I�V�?+�_�Ԓ�༔���D��O+��9�7��Q��*y
=���2��|��/?J,����+%q�{^�?�@�r_O�ץ�����^��c�A�o���.�J��㻏�,K��ҟ��E;��7|B`�N�]�a�+�/i8�5����pxh8�4^/
�hr?<}4� [��o���u�#�bP�u���\��������l�{l��V��{h��102p�1#=�СG�y����/��(�b0V!9�9�z��&@%!m�]���A�ju�G�����@������pxh8�4�W&��P? @�y��)B���	6��SY&�ϰak�����ͽY6��pakݞ�}���(|�!,���W/�	���/��A�lj�֮�x�)T�I#}ˏ�YL`2eM�)���
w�B4!��1����FIx���>�8�c��&�G)�j���I�����}@�5��V�&J?��	Y����!�\=jb��<�����h�jo%tEXtdate:create2013-02-01T05:33:10-08:00)`��%tEXtdate:modify2013-02-01T05:33:10-08:00X=x.tEXtSoftwareAdobe ImageReadyq�e<IEND�B`�plugin-fw/assets/images/arrow_down.svg000064400000001001151327614500014121 0ustar00<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 600 600" style="enable-background:new 0 0 600 600;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#d9d9d9;}
</style>
<polygon class="st0" points="50,200 300.01,449.99 550,200 499.99,150.01 300.01,349.99 99.99,150.01 "/>
</svg>
plugin-fw/assets/images/spinner.png000064400000000231151327614500013407 0ustar00�PNG


IHDR(/D�=PLTE������522744���744'�K�tRNS��™� .IDAT�cpqqa�cF

��Q�a������l��l��A6U�c����IEND�B`�plugin-fw/assets/images/ui-icons_222222_256x240.png000064400000015412151327614500015313 0ustar00�PNG


IHDR�E�r@bKGD"�b�	pHYsHHF�k>'IDATx��{he�}�?g����{��1)�����]K&qq�U�4kbiK�R(H��B��P(I�vJ�_��ӮIV�@nB�5i�N��iG�jq�&
~A#Q����rX'����9�:�ܫ{�3�E{�=�y�o~3g~��Mp�&��1Xxh8<�#dlЅ�Mx1�&��$�5~��V��	��c�$�ױ���,��	��ƹ�i���N:�Z
��ߊY���>�"�B��H!�������-C�u�8t�}����8�!�B��	*�OF�.[�aͲ��l��B&���1h�>��M]hN���4MAb��̐!(�hE�1�5jձcO�<6�e7�,e���S(�f�o�16+3�y
JR|{�^3�^����{�88������~'����pxh8<4��
�g����������2�n6e̘�����{�����Q����pӀ��P�A��iۺߖ�f�S����(�D��'�L�6=����T:s�f�q��羀l��.c�I
���ǧ�=�i���M�>��ڠLN{U��&������&��{u��o����.�.��4~#����pxh8<4��
�g��Û��p���^i����/�0���TW�c����Q��� �@)��y��u}`L��Uc��%T�������ȥ
�A��R��@�?��P�-`����BKl�
b����Z}�������Ш��͢uJ��%U�]�K2��e
ts�Y���@,ee���豅r��jcܭs��M�n�0
A���mP��y
�D�K(5�,�lN�&b�D�m�rwYDV����t�e$��謷�
�L���[��C��0O��	P��&��0���+�;�
�g���3@������pxh8<4����Y��`��O����F�Z<��h�\J!c��`����j
�;TK�Vr�0��ʹqc�cGz�䟾c�[ ̕P5�t�h�)���ti���З߭ty��׎����&��M/Е����S���u����@��݅���n���b�9��`y�9�󉡔�Ya�SX�0e���q�J`nB���g����b�����3���4P�- k�**�@HC�z(}�򯂬�U����cj2��=��Ob����3�
���R��05���1U�\8SMi�U��}���΀�l�Hl�N�
���J��q+%e�7s���"�<։�ּ�z���M�L�T��ƾP�1f�1i�Ѹ��Vp������pxh8<4�z�A��+ o`�I_�R�����~�~��f��սh`�Ic�K�h����Q�p��xx`=�j�`]|S�B�(����(��v���F3�4v�؁6��T��4
���5���:���*��-D#�n6��a��J<U���~�y(�1��(,�|t�z�}��d��j��0u]PT��-D}@����
�n�+[�Ύ� A�B�T���(V� K������BT<𑹗[F{m��=��-�ڤ����$��.��JR�U
j��:X��e�n�e���bՅ��"C	��e2�@�Ј�݂�	�Ѱ��xxh8<4��
��1@kX6I��<��M*�Љ�Ѣ�+�b���04(�.�M3Z�<]&i�UuY�a�^2�w�ͻ�ɨn�U�@�n����E�4
���O�Us�.J���}��dw�Ed�p��� �me^f���mF
gg�����T��G4�Ѱ����m��������N��է��N�c�����������5�L�xi���D��9�|��%ܔ�h�P=�áb����o�p�VBG�X ,�#E��+�\�^��oʼdM��ɳ]�d����.�@ 䮚��D���e��FU6'g6��)��52p|��f��X�_a�"z��x���� �w�.c�t�
�
�g���3@ñ�`"�i��K�9���s
D07�
ӕS��E�oC�Y�Z�l'N��~_Sƞ��y���a��xK�������z�-&|(�ϜC�K�����Xg�d����5Ig��8k8YTL=�,/
]s��w-~��t�����e�	^�~�&6vh�}�Զ�:g��?m�bG!����1�:O8���]�%��2�����v
�E�@�5"�6	Y�rXcRb��ݎ���E%���`�#�D��r¤��Z�:�ϛ!�x�R��h�!��}v�۴��ϳ����x�y}FrA1#�*�u�T�?>��!�x#�~��G���k���@3K@�:>P�R����M�A|��e]K�g�F.B����t�l�OY d��!(v�V�X��%m�#��I[RR�`2�T��	��H��w�Y�u=��b�YPEc�U%�&@�Ĺ�]��}�q���o7*�G�L�
��e�QX�5�U����-����³��8| ���_�ݟ��5\�5�p�VH^��\
�Fآ��a��a��5�l1�4[�#�b�o�P�1�E��is��wMJ'5�T���06�B|I�,b�����`�ՈP���X�k��B�$�[��-E�OHt�|�3�D�(i��d9�N6@x/ؠm�(�#�wj�P�t��/Z���obq%[:��3^�~a��5���5���|E닃�^�E��$�L�-���_s,
߫��㕔Ņ�&��
�_�,�������#F�}����&���.��<4��
�g���O��rdh9�����M7L(5꓂.���?M(�����stզ��-?�:��[ڧC�r�]�'��YB�2�l�C|
l�eXS��pG��0KcI��~�u�L0/��y�Lt�r�I�?�R�%�����-�w�Ƿ�h��$L�J�V���Ϳ�Ӣ,���g�
x�_7��l��4�*��u�M+�@�x�<}���q>��<�#��`�i�
:=��*��ۿ�{��)��_�8hs���������p�CWғ�K�`B]H��"}���_P�N���t�Q�l��1Y�Q�h+����&?��x�5:�	֘aY�ҭ���=\��En������.�Yʸ��J���E%uTj5�����F�'�����b;[��v�ט4�u��6]�lkw�3�÷���,: �%&��
�[|��|��|Yi�q`:�����qXc�2+u|~/�wrz�[j-�I>#���,�9�Q:�#,2����5@�@%��S@@6ÅJ�{��6��{��)h���W�~q]����t��<�+|�'�0O�a����6���3�U��HW������l;�����'�Z9�Z\�o��O�嵁���e�e�Ƣ[o��da����rEm&�ʧ�������3m���6��=�g�^S��x
Hj���mi�(v��ۈ�{.�h�_���%�8��nF�7y{����O���FS5�:����/��ա���W�P�H+b�����Gx��/9��I�Yy�.����M�t�T�eە,�ѿ�-�R���e�d��
��;�Ә:�9k��T�5��m���������E�G��|\Wu���ǣ��@^L��E�
��4��
�g���y��;
J'U��䐎N׷�<�p2m���ӫ��.Z������Z5<� V
,��p�3��w�=~�3j��ǿě�#����ʭ�|�S��f�yk��=C�n1]�C�'I_O��*,�J՞�D\\I���}�E�\�$�M�(�E��\�߮�?ƫw
�����NJ��E�b�6��t�z�:<��u��d��k��vs!��PfM��7dT����3	��*S,�AZl+N����l�R�&{�I��T�G�O�*�M~�;�����XFS��j����^�Q���N�n3�Z��0Ne�R�]�3�8��<�$@�˜c.�t�=�.{e��'�TI�s��u���>-?B��p���?��X�J	$�x�QJ}�!#��Ո2�Ht!VɽV�\'��Y�3�6����6Yu��JOAa�[5e���]p9=7����t�_�y��?�OS���<V��q.��Ի���;�8�~��YE����KSȀ��Xjq@M�
���/�p�X�۴�[�S��c7�'S6	�E� ������_Ձ'�_��)^3�b�h���+Z	��"rLz�ZA��#��[��'?�Z7{mZl�Ӭ�Q�De+^��o�*D��g��r؈;/�."�HF�Ƴ5�)F	��2�c.�W�~�`����VEl���6�R��8ظ�ky�k�.����`��Fp7pps"�"��KR{(us�[�%6
u�s�ͻ���,BD����/�ȷ�_Pt?�Y�Vy�.s���Y�3����3���\�V*#��y�f2j��g���A��Ѣ�
�g�-�5����Fh�-1�9�v��<�s	�����m�� =/�_f�WX�M�&�לi�†RvٗQt��_��"����Q<�(�1[��_~��b"T z3��sxh8��������p�`Z�/�NΧ���F��{�"p�i`��
�gsO��s�.�G}��t<��9�ug���g�R`���&��X�t�岇�}�	�����7���2J�X�e\��	08j=�XJ�Ql�l���x�6z(\5Q��I�=�l
8�7Ɏ��E�a4�O�;�-�M�1Iy�vV�y^�b�EN��sQ���Cw[
�2	��V�Ǽ�	o�yw�7J����K'�Tu�l�>_�i���T��<͛<�iM
�p������7�YMW���=�ӡl(����u�+���^j��>3��2N묳}��jH�Q
RT�Ȣ�� ���n�fݮ�~�+��c�iQ��<
����Ma=��|�*����
�$@'��Ԍ��ǕqUO;�5~@��eI�2��9�w��"��O�~��s��s��k{‰��$�m��>����v�z��^2���v�ow�`a������4c��M C����b�>����q:��o�=�-�p`_2�ng:6K��XV,����2�Ǿ��6��
�g���3@�� ��ś�sa���R��WWB
g-N�;F[��Ւa�A�V�L�F�<-m
VbMC����7���K)�X��P�y�
�s�~��=�����<�ܒ�{�x!�=����Ãq�R��l�]���/��� 0�l)'�}�#�^tX��孋�t�8FC�Y�$)�PUBE�(~��Ҟ��V�2^��*SL�H�l��S��'IA[������Z���x-V�"ȥ�J�+���\�|�5u�W��nLJ�k�ܟ���(0�0����JyꞄ���a���f��g����6��
�g���3@Ñg��[�}��Z����Q�k?ҳ=��z�I$Т�:�9FW��m�x��:\(�W���+��e���F�9�,��*�!Gh�D��L��8�[v��o����)�A�a�K�5�S/�)^c����(��W�H�N�W8T�r=op��p]MC�O?���*��
D΢Ob/�hs�0�ڜb�9�1C�9-����o�ۿ���ԗ��u���Q��Fc���|W�%@�HB�2�9�����/Dx�D`�U:�Ƈ�gi����"`�%��ᄽ
������t
�E`t���6�2k�)P�E�ѿO,�?�k��_�yh(/����=@��u
�g���3@������v@]��<���]���~��WD�`��.��f���~�o��ʈ�N�VA�߈�ե�M����
�^��y��M�Q|��ߛ^-{o�~��>��w���Ѓ
��(��g��X���ץ�i��&�X
u��D�U���͕l� ��ғޥ�ߞ���k������PH�H�C�J�~��S�@O�� �׋�ѓy7���
�k {��25���of����ϫ�o���{��'!�'��Z%��q�*)�g���C\���#��\���'�0���P_���WL��7��&AlJ���\��� Z��p��,���Y�x��j�c�����O�(6z�I�V�� u�:ג��T��D��O��9�ׄ�Q<��*y
=���2��~����/?J,����WJ�Q�W�>����W��u�?��#G��/���4�"�K���{㧏�',I��ҟ综E;���|R�ݠ��~��W�7i8�6����pxh8<4��
��r�<}8� kG�o;��u�C��P��v�)��A�<$��ց;��{l��� ���� �#`�F���C�!f�	Ӆ/`7��(��0R!9�9�z���@%!/m�]���Ad�hv�G�����3@������pxh8<4{���P/ 3@�}��	B&�^�16�{.
����ߠa�Q�o
���2l���mt���!\%@�X���?5��ճa�~
��ʠM65wk��a�)T��F��_�
2�$�x�5�_9!�VxRd�1!}����'�`�$���Uԇ��r�?�	�Q
�`7`�.��k����_V����zԄ��p�]]�GO�LXCk�3�%tEXtdate:create2013-02-01T05:33:10-08:00)`��%tEXtdate:modify2013-02-01T05:33:10-08:00X=x.tEXtSoftwareAdobe ImageReadyq�e<IEND�B`�plugin-fw/assets/fonts/yith-icon.eot000064400000033164151327614500013536 0ustar00t6�5�LPl���yith-iconRegularVersion 1.0yith-icon�0GSUB����8BOS/28�K
|Vcmapнp���glyf73K�(�headd���6hhea51�$hmtxs����loca���xmaxpYV name��	f0�"post[�g23 �.����;��l_<�ݠ3�ݠ3����;J

�
,DFLTliga��fGf��PfEd@��.
�����������������,��,
���$���������PR	",.54.
*039-(
8:'2)6#/ 7%+1$!&�=��������	����������"�	�	�
�
,��.��5�
�
4������.��������
����*��0��3��9��-��(������
��� � �!�!�"�"�#�#8�$�$:����'����2��)��6�	�	#�
�
��/���
�
 ��7��%������������+��1����$��!��&$6J\n~��b�B�n���4N�2f�^	�	�
.
d
�L�$��
�����8t�0���B~�+/?CSWgk{�������#5!#"3!2654&%3#!#";26=4&53#";26=4&535#";26=4&537#";26=4&537#";26=4&53'#";26=4&53#";264&3#";264&#3#";264&+";264&3#";264&�+��+r����GrG�����((c(d)d(\'
T

-

M�dd��dHH��d��99�+�****dd�dd++y���%77����d����%'77���s������	j��������%'7o�����������'7'7���������7'7'7����������%''	���x������%''7�����}�����#/;GS_dhm�7#";264&3#";264&3#";264&";264&#3";264&+";264&3#";264&3#";264&'?'577#32#!"54;7#"3!2654&t66'+�66L�LQqba�&4�<����MP/�T$����Q��
��

��#',15<@Fdhmv326=4/&;#"3!26=4&+535+53%57!5"953#50#!7%35>4'&'57&'5#&7'47&7"264&"&462����=  �U��Y��;  ��9��

	
	
%



$				,6��	4�  <�yx�ӗ��  \ e			B
�$$=				#'+EQ#54&+"#54&+"#"3!2654&'3#'3##%3;26=;26=3##33535#�UrU���V�9UrV�9999��w�ddd���))((�999
#'5CGKe���5#326=##5#73354&+";#'3#73354&+"3#5#;26=#'3#73#7#3#%35#"3!2654&#5.'75&'&546753&''54'69r99�99qUV�9UU��	
.5�E))))�;E(((�w��w���	
#	$\	9	#'+/SW[u3#73#73#73#3#73#73#73#3#73#73#73##54&+"#54&+"#"3!2654&'3#'3##%3;26=;26=3rUUV�UUV�UUVqUrU���V�9UrV++S�w�ddd���))((�$-CYb!"3!2654&#!"543!2"264&"&4627#";#";26=4&#53264&+";264&3'.3�<�
�<��""0""y		"		�		"��]J��

��J"0""0"Xd	H	e	eH		e	-RZm���	'7������b� �w!".4>2"2>4.'77EvEEv�vEEvE>h>>h|h>>hQV?jEv�vEEv�vE�>h|h>>h|h>��N9���7'7���0��~+;7"&=46;2354&+";5#"&=46;2";26=4&#A�&�&&U)�&&�&&����UU&&�&�&�&&�&1����''7'77����������������'���V�����V��V#'?O46;5#"33#%354&';5#"&3##5##"#3;26=4&+"&=46;2&1
��$`__@r=&$$&�&&
���&7_�$��$$&=r&&�&����#/;GS!"3!2654&!2!54!"=!'3#'#";264&+";264&3#";264&3#";264&�<��0��8�<�f  �<o6���77����c ����#57'7#7'7'3'7'537�)�+KO+�-OL)�+KO+�-OO+�-OL)�*LO+�-OL)�*L
	7#'77��z�)@B?��LB�y�@D@�WKD���':KN&'&'#"'327676?"+32654'&#"67632&#"&76�
),;4 +FN! +-GA.'��

%�i(&=@.,
$,m��V&-IC'	%>;�#2$*
 %	#$

i%		$l��%+'%	=P
���$-6%"'&'&/76762%2767&'&""&462'"264&GA.'-Z�Z.'.A�� ,E�F+ &-I�I-�%%4%%z %		!<=!		% �%+*$%,+c$4%%4$`
��15Wco|�������%&1#6765&'&'54&+";26=3276767>5&#53'&'57613767167673&462"'"/&462"&4?627&4?62"'746312#1"46372#'"&%32#'"&463327676'5654&"+"'53'2#54'&'&546�



\;U<!%)���C0/?E	*B
	!�(�''�()z)(R

�9989�
&6&N�


|


bx\	
2	
	a)w))''�''+8	6hB#

	&&&5G
�


 (1:!"3!2654&'&"'&"7)41/7264&"72"&46�8�GX�fq���sNQ�$$1##
�8���FX�f��p��qNPr$1##1$\3#3#!"3!2654&!��8��-��+*�|�8���8!!".4>2"2>4.3#3#EvEEv�vEEvE>h>>h|h>>hLEv�vEEv�vE�>h|h>>h|h>d+*����%(BV[7'75'7/7'"/!!3''#53&'#53467#5365#5#!?67654.#"6'�/##/#/m
H��$]	N�..7''[.2d$#U�E	*&5)�GE�.
^
/B.��	H�eX3NS1��!,	.d�9w)5%'	4GF��#3@#54."#"3!26=4&%4>2##!"&=463!2#5&5462�(DPD(*�� 7A7!���		*�
'B(D((D(B��B 7!!7 B�		�I
??��#8J%'>54."32672644>2".%.#"763232>6=4&"326�z<ewf;;f;)Kz�4XiX33XiX4<A&.&%5	zK);f;;fwe<z4X44XiX33X�#
d				
�'3'7'#5#!"&546;#"76754+5325"/3!2�VR/�<�������	���RV0�ɑ��

����ř���!5�**�!!�@`iz75&/&'&5332654./.4>753+'.#"#".4>2654."327&7"264&"/.62762�	
!
'	
%6!#>h>>h|h>
	Ev�vEEvE-,O%44J44/	(	�	


  		
	

	e>h|h>>h>#"	,.EvEEv�vE
�4I44I4H3	+	�+264&"264&"264&"G##�$$�##$$$�-Pl'#"';7676?676;7676'&?676;7676'&'&+;7676?676761'1&'471�l9M
			FA



M9l
��	
M9l%.]�		
_B		9	
#$'�!Y ^
_ Y *��_ Y$!/#�e�S
%
��*3<EO.#!"3!2654&'#5!;'+#53264&+327+53264&+327#3##5�/��r$,��T�

#{!"}.,,�/��&,���U	���%c0!'
.cH<O'c
���#,5OSX^264&"72"&467264&"72"&46264&"72"&46#54&+"#"3!26=4&#737#0+53V'�''8'' �(	Ay�y���zy����yz	((E'8''8'j  �((E]=

=
��ո�����%##5#53533��*��*����*����!!3#����!7'7'!2#!!2>=4.|��.VR4A 44 ��c&B''B�-RV65@ 4'B'@'B&��+7'77#4>32.#"''7"&'732>53KG35B6]7<dW3/P/�45JG�<dV4/P/6]�I53-7]7A7.8/P{53GJ�A6/8/Q/7]7��#!%!"3!27632'"264&7!!�V�8~���g�!//B//?���V����8�g�/B//B/�S��+LQV%'&'&'&/7676?6767&'&'#5.'75&'&546753&''54'65&6'-X

I336&5�I*00*I/*CC*�

07	+?Yu
')$$
uY?+
P�[55[� $$ �
&
'a 
;	��%'775'7���������������'7''7'W������+����Q���U%#"&46;2'6=4&".';264&+"'4>726=4'''.#"2>54�		!:d<8_<:b;'F�)>�<#W0EvEEv�vE��6?<f>7[7;f>		�-D> "Ev�vEEvEJ�!)!3;27653+"&5!3#'3#335#3�L#�#?�6ya�����**��  ;����;WW!";7'7#!#32654&�8�.RV4�ț��81UR2��8�$*04?V"2>4.4>32.".%7#'>?'.54632"&'7!?4&'>54'7FuEEu�uEEu��>h>K=*2;4%- 7JN!&0�+ 1"(
J)L,&3!%>hEu�uEEu�uE�>h>..0)E(O|%
RV
7$
0	%-��(E)7U/>h>
�2=KN7!27654&#!"45!2!!."#";267!264&"&476272?>/&7&�
�L��G��$A		B#=��
4MN%%�
	
��		�d	�-8	c	Q����%&"3!264%'3#53#�����%�����
	��JW+���$&,138>@�I"2>4.67#='#&'67#63&&'6377&'53757"#&&'6?64/&"&'6'54&+"&/&"";2?67;26=6'672?64/&'677326=4&+'#"/&/+"&=&75'&/"/&4?6?'&/+"&=46;2376?'&/&4?6276?5&=46;276?6236;2�#;##;E;##;!U!< TT P"<!Tp	
'
		
'
		
'
	
'
	

	

	





�";F;"";F;"T:

 +


 +7

&

		

&

&

		

&

B	









	�<B676'&632#"767654&6327676732767676"767�$7=J=		"3
'-.	U&6U85-!:'	��
E$A^QATG.+ -` 
'&,ME;c2�"A�				"	-
+6a	t	�	�	�	�	�	
V�	&6yith-iconRegularyith-iconyith-iconVersion 1.0yith-iconGenerated by svg2ttf from Fontello project.http://fontello.comyith-iconRegularyith-iconyith-iconVersion 1.0yith-iconGenerated by svg2ttf from Fontello project.http://fontello.com;	

 !"#$%&'()*+,-./0123456789:;<
accountingarrow-down-alt
arrow-downarrow-left-alt
arrow-leftarrow-right-altarrow-rightarrow-up-altarrow-up
bank-checkbankcalendar-addcalendar-moneycalendarcash	check-altcheck-circlecheckclone	close-altclosecopycredit-carddragedit
eye-closedeyehelping-handimageinfo-squaredinfolist-searchlock	magnifiermail-out	minus-altminusmoney-checkmorepaypalpdfpeopleplus-altplusreplyresetsaveshield-moneysort-altsort
time-checktrashuploaduser-offvideowarning-triangleworld-settingsyithplugin-fw/assets/fonts/yith-icon.woff2000064400000015334151327614500013771 0ustar00wOF2�5��BV�H
�|�r6$�lx �"�%~,E�!��"*6M��䶙�Z�3���U#�l1�b�{���t���G��G؇�|�J	����I��k,X�B(�B
�_I�����9�1�+�i+&�H��/��JW�*�U�~�,��X�^����v��,���$��B
���1� ř���24@C���O��)1?��`��%wx��(]48O���^�(�bw�SN{߳�o�9�-�	�#M6��U8�p]g��H��m^D�3Z�*P�%���˘@c,�tuۢ�;�fiw�<UU�V�ʺ������f�&9����$)JxJ�i�7F�+dY����������� �__��.u�R��;F�1������u��������X�=%~Ģ�1�X����|%����ߌ>8A2���i�}M�֑MZ�������2�B��D���N�ee���T��D�[��������Z;9�Y���Ԑ����up�2�d���:��*����Ά�6Zz.�_DL��N�H�V�=����=C� �2�,�C2�Ġ�90�$�SB��NPG(�.�5HS�T4�
4�����6U
u�[hh7h+h3hIhm �*�@@�N,]$�
p�p�7�
�30�7�"���9�`ΐ���
y�
`ZP��A	��`Ɛ�8���
&�01�Aja�P��z�4����M�b��~��ҷ�.���QbN;%-�ݜ(3vI�'ƶ�_Z�ǘ���ƺ���`4�
8�0Q��Y�!*�!%8~AHǃD�#oH"�0%����S���H
"]'#�HcQ���#��Ѓ֥��^!Ę���Ft"y��1�;54��V��i��ٖ���^+��bWOHV��ZC��•(���xn�3����'-bdʈ37���it!aHŐ����ǘ��m���2<D&�fpR~q8p��"�:�[��%�=��T*�l�F	���fWb�~�5�+o�5��B��~��|��p�G�B�v�_�v��M�,8Q��9�!��<Ӑ��S��+�]̈��%�)b���c��q�X*Q}C7�6
8�+�5�[�
[�yS��a�&e4N�VO:�ס�d�D$B�d_��C*�RmdFG�����;*^M���Ϟ��&��E�I��C2N@��!C
������G�u�u1q�W,ǮVe~<�,E_��%`��8�ց0鸅v	;,�hXAGi>qY�1 {�~oG.�͌��p�U߬�ks�u���Y��+��h�� ��id>h+%�z_�K�,H:�&��n�!CKM��l�'9o�ڷ�L�lM��A��Q�
۪ FC�t�a4"Rw�=�p��(D<y��ݍ�YC;~u���ek���^u�)�ar{���|9o����[�tP�[�q�,+E��qtF����ú�q��9��r
�Yۻk���vau�p����Z���U�U_ԗ�-��_v���]��&��b���ΏI��טwֆ�����&�"�
95�uR/�\�ٶcj�x-�<Y�1]ZNJ�*H�/D5*��:p]���L���w�zw~�}na���-N��Qt��ɻ�����$�؎�؊�류��z�?q�t��R(ܜ�&!�[��'��ʬ_-Ʊ��a�JZ�Գ�A�xsc��9+&���(���a����X%���j2�R��o%��‹[�1���v���cJL+���8�h��J?&R.2����G��&u������9K6#�rV�n |�!h�P�|#@�5_���Y+3d� ��-/6t�k����g��
x��@�}#7�3g�>A��>��B����HHKx�$ǚ��6��9<Wj����Qe:U�w���ʷ��hKƔSIIC��2��0�h�g��\��Y�7:����v�;�)��86�2���a:M}C�bp��Y׬��:73�G95�� ;! ��È��#/��d�!�Mr�MN%+90��]���}"�SDi���q�C�&��]#�q7dk�-���
��q.T(���P�����S��I�j���
���z�%{x2?���ضy����z�����M^���S��}4���\����m�[�|��\�36�}��X��č<G	�?M�t���.~�L`�.
��NOD�����mn�ou@�,�G��r��L|���hٟ{�)�&	&����.d;�,G�k�y�,Ca��ex�ҟ_�?�XAA��(T�[��=LO.��R��w��W�G*�t�ϐi�#�~&��i�^�4d�����p;�o���wci�`a���=���+nL���<;���5w
@�Y����{�����|Cp�V�ߛ=A&xSw��PVK�A�}(`�s��H �O������V��(�o���Mj|�m�ߺ]f�a�(���ڒ�b���O�Y�/��!���a٧��]O�ʴ7��b�F�m6����곳 ϕn����y�X��k���'���9�ѷLߚ[W�z��
�t�;lj�woM�GE�#�e��1�-�8���鍜_���pq���M��-Վ��hO��$��F,��l$�^���&�n�)Aj���zO�������o��F�ۥ�"���n�~	�48ZՁ~��
Qf���@v����M=/�\7�P;��r�jr{��$���|�
~8��'��^�R�|Ҟ�]�p��V7-��\�D�K�A�vb�I���*�`�h��'���k60�Q&՞{t��Fp��9�;.x/c����u+��768��2&H!�6�p�a�dx󥙘�0�)Ӈ���T!�Ϳr��ؚ�6d:/������W9ȏ�:=fZ|(�\���Tޱ�W�a6�F��
J�'��6����07���̉�"-t�����I{��4LSH�l��b�I�^L�+B(�<�Pbk���p�鬴�
6�f

Grd���BR�0��`�U�𻿐c��үT�\!�Vt~l�Z�O�<~�/��?|x�w{�y�v����éV��3�p1GPO�@E�O;��w�I��^bO��!(��1X�g�À�+�bNxan�Ks��^��Ǻ�1k~ݹ�H}_���I�סׄT�R�5����&��X<�ӆ�����G��B����J�4YIU!�|����~�j��F�J`��**�v���m��eRy�Auv�����9w�����I:�|Jz��	Ox��
�v�;�;(^��������\5^��*DkN Ӷ{�6��zNc� ����>g ��qL��-��{�TRҗn���O%8B�P��h�E)ES"�$9�^��2�T�
5_р:�B��f�*���e
������+������p_"�z��h[���1�!�����
[K�4E����F`C������*���Z��iI�@�o��ڟ�!�v����x��pXUXьI�䘃�c~؛�k��&ϒbv��'�?Ν�Y�M
	������Z{�����'�&���L~�5�؟^��V=-@�O#/�(Ò���vf1\��p �g���Ѡ�LZ���BY��/��*��/���DxV���Ngg�ye���X,���<��)��fy�j�ƃ��1!��\��O�x� ��=���r|������J/T����5�c@�+ʭ&�lz�{�t��@++F���(�Bt�}�o�������]LNAA.�c߉s�����}nc��Q/jlau��}w��x9�R�>/�f�1�y�e
)�}S�+"S��m�_��C�V�y�Dë8bf��f�:�󭞊��u1̞/�`~�i���Y��3U�x^F/^�]���[/E0Xs<�<$eא�W5��m���������kL!]/^L֔z~_��Act3x�3ԋ�-;}����R	��j�0ŶM\���N�4��!K%��q��F���	�ƈ�;���>�m�X�tZ��.����?/�L���C��]�f��8�`�U8�=�ƃ݄�qF�Lfp;�4-o�,�0��߳8��M�V�qq�ګ���31;n��ªdt"fVc3����܅:�}W*�.��JK�%.���G$T�qϑTJ�Ӳ�~�R�/2C(��~�p��yPw�٤!4��+�PYI&�}��:�����
�t�`bbc�b�=��\��^�^~�
�B��Գ���^�?�=6$�r��|C��{�߈�F�����/�e�j��=3g@�p��m�s����7K"����atduI��d,mC�"-��gL�ɶ�_f�yԬ�T���9�f�1fs��h�5�2���6X����^�R(3��y=Z7��?�z�9�P���5�\�~E���*2�2�HpV���^_���	II��%�+��+�ɶ��q��P}��a'�I
S^������屵�d�<��@많b�ݨ�5P�����N�Y��k"&�����d8ڦ�[���
l��6j�*�Z{��7�B���fB����:V����=�g�ЁP���o��+y��{����
ñ��ڙ�w��}P��G�����#P��^^���Mo���s?�G:�&������<<����LG�ld��jA�������~%S�>�Y����_ ue�)^(���з�����5�Uc���l	j����ʙu&�f�uuK,�h���ҕ"�<h�B�5x}dȄ�j���6G�̹>bI���U#;0S���W�9��-^S�x�6NOc̚��k�'����N�D#�wQ��2᪶5J,��)�>��
�*D���(�H��/�OQߏ�}�~J$�N�R"ULN+�E*�e�A
+X�����._��ݒn)i�ILU%:����*���\dB��C}ɵ���D@� J�?��%�8MH�}���ߜ{�P�:��VH��7���t�~��A?z
�.L�П����IPi}��}*h�Z�ޥAڠ���BΟ�,C�^����OH�j�:���������S4z&�l������K���(*�`A��2��������b��o��Z���z�H��=�XnI֞��q����Ǟ*W��2Y���?S҉?���;�h�bn������
�.�-׫nܨwh٪Ӟ
�[y�^���M�&;��S�W�@4g�P��5ڇ#��R�@�vnX�	Ά�G���2��Z���~�.
^�����f��KcvŽo2p3R�*�i?1��b4�?2>e�9�e����$U�Iی�4�A8�4��1�Vv�קޣ��2��)�U2�@_S�/Mp�|��*�O�)3���Jy�#��G�=?36~
]�[N勞ܮ�K-Ś��w�mY'��,�2����L���'�M�����Kk�LIyH�'z���×U�Ss�f�[C_�?<7��[Ys*��c��lKH.�׉]E�Ì�މ��|�8�4*�W
���M-�!@����� >�y�Mk�vO@o��K��n��Y��X�P��Fq���56�d��}��+�A�	��V��(��?�w��$h���v[��l��j��c�9t��}�d����de�@�G�z����wiZJ�z?�9�P���z �3�G7�����ģ.W�
����j��b�EC����d]29��p,��x\��T�*�G7��4>�o7�	�
��noM-�@Mki���X�9��x���\C�ne�u���i%-�2\1b�&	Oʋ�r���䦭÷���h궶�mH�����%u�С�i�s���Wߺ��ɦ�#VTl�ׄ�	�3��Z����F����Ǹ(��!%��H��g"t�[�tA��x�q���U#疪�YR�<K��xާb�X�L�O$�}���}˲z��F���"�l/��|X�ZP�g#���,+�w5]@�P@��T�]"^@n��� �/�|F� ��k;J����6�P���r.�+c�H�-������ً|X���W�Q�XR��HL���6�|+G�ј�ők��\`ߪ��8�w�j�(O�*D�/3�����e������G�����x�ss���І���kل�G�!�r��ÖR*�h%��o�H;%���>J~��z��b�9���+����H�Nv�z���0�(��N8WYѥ��\.��7D�Bħ�Ac����rW���(���px}���6�
�G0�<We���pP#�k"j��|��@��S�?�F4�oӫ��P��u�}~W����	��bJ<V�ot:E���x�K���F��_8����J#�<�ћɫ��@b��'W�l���;uxi�p���DH�$�����ot�w4�/N� �&�rS���ܩ��98����l�	^���K�+��^��66��wv����ON��/.�W�7�w��O�/�o��`8ǽ(��"����XH�{�s/�0(�tF��7�{�t8�{��mR�Pn�Et7�=�A��A,xBP��f�c��}�$����%�(L���a8�5��w���:o��l[w��������C�Tk���P�@f<P	l�I�y0�O��6q�$v����
���@�r�m��[������6,��’	���ê"W\��	Ss)�,�#5T��	����Ƣb�ҶS�(�*͓˪���7��Xa��G�<@JɪTF���`���Vw73��Oplugin-fw/assets/fonts/yith-icon.ttf000064400000032710151327614500013540 0ustar00�0GSUB����8BOS/28�K
|Vcmapнp���glyf73K�(�headd���6hhea51�$hmtxs����loca���xmaxpYV name��	f0�"post[�g23 �.����;��l_<�ݠ3�ݠ3����;J

�
,DFLTliga��fGf��PfEd@��.
�����������������,��,
���$���������PR	",.54.
*039-(
8:'2)6#/ 7%+1$!&�=��������	����������"�	�	�
�
,��.��5�
�
4������.��������
����*��0��3��9��-��(������
��� � �!�!�"�"�#�#8�$�$:����'����2��)��6�	�	#�
�
��/���
�
 ��7��%������������+��1����$��!��&$6J\n~��b�B�n���4N�2f�^	�	�
.
d
�L�$��
�����8t�0���B~�+/?CSWgk{�������#5!#"3!2654&%3#!#";26=4&53#";26=4&535#";26=4&537#";26=4&537#";26=4&53'#";26=4&53#";264&3#";264&#3#";264&+";264&3#";264&�+��+r����GrG�����((c(d)d(\'
T

-

M�dd��dHH��d��99�+�****dd�dd++y���%77����d����%'77���s������	j��������%'7o�����������'7'7���������7'7'7����������%''	���x������%''7�����}�����#/;GS_dhm�7#";264&3#";264&3#";264&";264&#3";264&+";264&3#";264&3#";264&'?'577#32#!"54;7#"3!2654&t66'+�66L�LQqba�&4�<����MP/�T$����Q��
��

��#',15<@Fdhmv326=4/&;#"3!26=4&+535+53%57!5"953#50#!7%35>4'&'57&'5#&7'47&7"264&"&462����=  �U��Y��;  ��9��

	
	
%



$				,6��	4�  <�yx�ӗ��  \ e			B
�$$=				#'+EQ#54&+"#54&+"#"3!2654&'3#'3##%3;26=;26=3##33535#�UrU���V�9UrV�9999��w�ddd���))((�999
#'5CGKe���5#326=##5#73354&+";#'3#73354&+"3#5#;26=#'3#73#7#3#%35#"3!2654&#5.'75&'&546753&''54'69r99�99qUV�9UU��	
.5�E))))�;E(((�w��w���	
#	$\	9	#'+/SW[u3#73#73#73#3#73#73#73#3#73#73#73##54&+"#54&+"#"3!2654&'3#'3##%3;26=;26=3rUUV�UUV�UUVqUrU���V�9UrV++S�w�ddd���))((�$-CYb!"3!2654&#!"543!2"264&"&4627#";#";26=4&#53264&+";264&3'.3�<�
�<��""0""y		"		�		"��]J��

��J"0""0"Xd	H	e	eH		e	-RZm���	'7������b� �w!".4>2"2>4.'77EvEEv�vEEvE>h>>h|h>>hQV?jEv�vEEv�vE�>h|h>>h|h>��N9���7'7���0��~+;7"&=46;2354&+";5#"&=46;2";26=4&#A�&�&&U)�&&�&&����UU&&�&�&�&&�&1����''7'77����������������'���V�����V��V#'?O46;5#"33#%354&';5#"&3##5##"#3;26=4&+"&=46;2&1
��$`__@r=&$$&�&&
���&7_�$��$$&=r&&�&����#/;GS!"3!2654&!2!54!"=!'3#'#";264&+";264&3#";264&3#";264&�<��0��8�<�f  �<o6���77����c ����#57'7#7'7'3'7'537�)�+KO+�-OL)�+KO+�-OO+�-OL)�*LO+�-OL)�*L
	7#'77��z�)@B?��LB�y�@D@�WKD���':KN&'&'#"'327676?"+32654'&#"67632&#"&76�
),;4 +FN! +-GA.'��

%�i(&=@.,
$,m��V&-IC'	%>;�#2$*
 %	#$

i%		$l��%+'%	=P
���$-6%"'&'&/76762%2767&'&""&462'"264&GA.'-Z�Z.'.A�� ,E�F+ &-I�I-�%%4%%z %		!<=!		% �%+*$%,+c$4%%4$`
��15Wco|�������%&1#6765&'&'54&+";26=3276767>5&#53'&'57613767167673&462"'"/&462"&4?627&4?62"'746312#1"46372#'"&%32#'"&463327676'5654&"+"'53'2#54'&'&546�



\;U<!%)���C0/?E	*B
	!�(�''�()z)(R

�9989�
&6&N�


|


bx\	
2	
	a)w))''�''+8	6hB#

	&&&5G
�


 (1:!"3!2654&'&"'&"7)41/7264&"72"&46�8�GX�fq���sNQ�$$1##
�8���FX�f��p��qNPr$1##1$\3#3#!"3!2654&!��8��-��+*�|�8���8!!".4>2"2>4.3#3#EvEEv�vEEvE>h>>h|h>>hLEv�vEEv�vE�>h|h>>h|h>d+*����%(BV[7'75'7/7'"/!!3''#53&'#53467#5365#5#!?67654.#"6'�/##/#/m
H��$]	N�..7''[.2d$#U�E	*&5)�GE�.
^
/B.��	H�eX3NS1��!,	.d�9w)5%'	4GF��#3@#54."#"3!26=4&%4>2##!"&=463!2#5&5462�(DPD(*�� 7A7!���		*�
'B(D((D(B��B 7!!7 B�		�I
??��#8J%'>54."32672644>2".%.#"763232>6=4&"326�z<ewf;;f;)Kz�4XiX33XiX4<A&.&%5	zK);f;;fwe<z4X44XiX33X�#
d				
�'3'7'#5#!"&546;#"76754+5325"/3!2�VR/�<�������	���RV0�ɑ��

����ř���!5�**�!!�@`iz75&/&'&5332654./.4>753+'.#"#".4>2654."327&7"264&"/.62762�	
!
'	
%6!#>h>>h|h>
	Ev�vEEvE-,O%44J44/	(	�	


  		
	

	e>h|h>>h>#"	,.EvEEv�vE
�4I44I4H3	+	�+264&"264&"264&"G##�$$�##$$$�-Pl'#"';7676?676;7676'&?676;7676'&'&+;7676?676761'1&'471�l9M
			FA



M9l
��	
M9l%.]�		
_B		9	
#$'�!Y ^
_ Y *��_ Y$!/#�e�S
%
��*3<EO.#!"3!2654&'#5!;'+#53264&+327+53264&+327#3##5�/��r$,��T�

#{!"}.,,�/��&,���U	���%c0!'
.cH<O'c
���#,5OSX^264&"72"&467264&"72"&46264&"72"&46#54&+"#"3!26=4&#737#0+53V'�''8'' �(	Ay�y���zy����yz	((E'8''8'j  �((E]=

=
��ո�����%##5#53533��*��*����*����!!3#����!7'7'!2#!!2>=4.|��.VR4A 44 ��c&B''B�-RV65@ 4'B'@'B&��+7'77#4>32.#"''7"&'732>53KG35B6]7<dW3/P/�45JG�<dV4/P/6]�I53-7]7A7.8/P{53GJ�A6/8/Q/7]7��#!%!"3!27632'"264&7!!�V�8~���g�!//B//?���V����8�g�/B//B/�S��+LQV%'&'&'&/7676?6767&'&'#5.'75&'&546753&''54'65&6'-X

I336&5�I*00*I/*CC*�

07	+?Yu
')$$
uY?+
P�[55[� $$ �
&
'a 
;	��%'775'7���������������'7''7'W������+����Q���U%#"&46;2'6=4&".';264&+"'4>726=4'''.#"2>54�		!:d<8_<:b;'F�)>�<#W0EvEEv�vE��6?<f>7[7;f>		�-D> "Ev�vEEvEJ�!)!3;27653+"&5!3#'3#335#3�L#�#?�6ya�����**��  ;����;WW!";7'7#!#32654&�8�.RV4�ț��81UR2��8�$*04?V"2>4.4>32.".%7#'>?'.54632"&'7!?4&'>54'7FuEEu�uEEu��>h>K=*2;4%- 7JN!&0�+ 1"(
J)L,&3!%>hEu�uEEu�uE�>h>..0)E(O|%
RV
7$
0	%-��(E)7U/>h>
�2=KN7!27654&#!"45!2!!."#";267!264&"&476272?>/&7&�
�L��G��$A		B#=��
4MN%%�
	
��		�d	�-8	c	Q����%&"3!264%'3#53#�����%�����
	��JW+���$&,138>@�I"2>4.67#='#&'67#63&&'6377&'53757"#&&'6?64/&"&'6'54&+"&/&"";2?67;26=6'672?64/&'677326=4&+'#"/&/+"&=&75'&/"/&4?6?'&/+"&=46;2376?'&/&4?6276?5&=46;276?6236;2�#;##;E;##;!U!< TT P"<!Tp	
'
		
'
		
'
	
'
	

	

	





�";F;"";F;"T:

 +


 +7

&

		

&

&

		

&

B	









	�<B676'&632#"767654&6327676732767676"767�$7=J=		"3
'-.	U&6U85-!:'	��
E$A^QATG.+ -` 
'&,ME;c2�"A�				"	-
+6a	t	�	�	�	�	�	
V�	&6yith-iconRegularyith-iconyith-iconVersion 1.0yith-iconGenerated by svg2ttf from Fontello project.http://fontello.comyith-iconRegularyith-iconyith-iconVersion 1.0yith-iconGenerated by svg2ttf from Fontello project.http://fontello.com;	

 !"#$%&'()*+,-./0123456789:;<
accountingarrow-down-alt
arrow-downarrow-left-alt
arrow-leftarrow-right-altarrow-rightarrow-up-altarrow-up
bank-checkbankcalendar-addcalendar-moneycalendarcash	check-altcheck-circlecheckclone	close-altclosecopycredit-carddragedit
eye-closedeyehelping-handimageinfo-squaredinfolist-searchlock	magnifiermail-out	minus-altminusmoney-checkmorepaypalpdfpeopleplus-altplusreplyresetsaveshield-moneysort-altsort
time-checktrashuploaduser-offvideowarning-triangleworld-settingsyithplugin-fw/assets/css/colorbox.css000064400000007635151327614500013126 0ustar00/*
    Colorbox Core Style:
    The following CSS is consistent between example themes and should not be altered.
*/
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden; -webkit-transform: translate3d(0,0,0);}
#cboxWrapper {max-width:none;}
#cboxOverlay{position:fixed; width:100%; height:100%;}
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
#cboxContent{position:relative;}
#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
#cboxTitle{margin:0;}
#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}

/* 
    User Style:
    Change the following styles to modify the appearance of Colorbox.  They are
    ordered & tabbed in a way that represents the nesting of the generated HTML.
*/
#cboxOverlay{background:#fff; opacity: 0.9; filter: alpha(opacity = 90);}
#colorbox{outline:0;}
    #cboxTopLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat 0 0;}
    #cboxTopCenter{height:25px; background:url(../images/colorbox/border1.png) repeat-x 0 -50px;}
    #cboxTopRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat -25px 0;}
    #cboxBottomLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat 0 -25px;}
    #cboxBottomCenter{height:25px; background:url(../images/colorbox/border1.png) repeat-x 0 -75px;}
    #cboxBottomRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat -25px -25px;}
    #cboxMiddleLeft{width:25px; background:url(../images/colorbox/border2.png) repeat-y 0 0;}
    #cboxMiddleRight{width:25px; background:url(../images/colorbox/border2.png) repeat-y -25px 0;}
    #cboxContent{background:#fff; overflow:hidden;}
        .cboxIframe{background:#fff;}
        #cboxError{padding:50px; border:1px solid #ccc;}
        #cboxLoadedContent{margin-bottom:20px;}
        #cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;}
        #cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;}
        #cboxLoadingOverlay{background:#fff url(../images/colorbox/loading.gif) no-repeat 5px 5px;}

        /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
        #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
        
        /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
        #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}

        #cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;}
        #cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
        #cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
        #cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}

/*
  The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
  when an alpha filter (opacity change) is set on the element or ancestor element.  This style is not applied to or needed in IE9.
  See: http://jacklmoore.com/notes/ie-transparency-problems/
*/
.cboxIE #cboxTopLeft,
.cboxIE #cboxTopCenter,
.cboxIE #cboxTopRight,
.cboxIE #cboxBottomLeft,
.cboxIE #cboxBottomCenter,
.cboxIE #cboxBottomRight,
.cboxIE #cboxMiddleLeft,
.cboxIE #cboxMiddleRight {
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
}plugin-fw/assets/css/yith-icon.css000064400000040432151327614500013172 0ustar00/**
 * DO NOT EDIT THIS FILE DIRECTLY
 * This file is automatically built using a build process
 */

/* stylelint-disable function-url-quotes, declaration-colon-newline-after */
@font-face {
	font-family: yith-icon;
	src: url("../fonts/yith-icon.eot?47f77c3e4343c8aa92110ae8ec8e9276");
	src: url("../fonts/yith-icon.eot?47f77c3e4343c8aa92110ae8ec8e9276#iefix") format("embedded-opentype"),
		url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAACAQAAsAAAAANcgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAAQAAAAFY4xksKY21hcAAAAXwAAAGpAAAEyNC9cJFnbHlmAAADKAAAGPkAACj8NzNL12hlYWQAABwkAAAAMAAAADYcZKiiaGhlYQAAHFQAAAAeAAAAJAQ1AjFobXR4AAAcdAAAAC0AAADsc+X/6GxvY2EAABykAAAAeAAAAHgUux7ebWF4cAAAHRwAAAAfAAAAIAFZAVZuYW1lAAAdPAAAATAAAAIiyMcJZnBvc3QAAB5sAAABpAAAAqVbl2cyeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/M44gYGVgYNBjDGNgYHBHUp/ZZBkaGFgYGJgZWbACgLSXFMYHF4yfJRiAnH1mNgYeIE0I4gDAI+GCE54nO3UV47bQBCE4Z+SqJyztDl4ndY5G/AdDB/TB/KTL9CAX/oE6xqWj2EKn0AO0wy6i0ANtOVeOlD9pqJsvzRaNeNths14h5867uvXgrjNVh4fHrRHVlmXvWardP47P5qn1vQYMGXJhgPXcs9LPvCeC/baO+HImImueMZr3vGFFzxhpGcMmbFjwTmf+cqWx6x4y1M+csMZrzjlkk880kw6dPXGOc95w5pbrrjTJLr838blr/Xn39G3Uikr9Y7KSv2jZaoW0TbVjeiY6kPUploSXVNViZ6ptkTfVGliYM340EqPxchUfWJs6ghiYuoNYmrqEmJm6hdibs29C1MPEUtTNxErK6uPtVGevbFmLVtT1xE7U/8Re1MnEgdTTxJHU3cSJ6Y+JU6NsqYzK5mJcyu5iQujrOPSKO+8Mso6ro1y342p75UxUwKUMVMWyJYpFWRtygfZNSWF7JkyQ/ZN6SEHphyRQ1OiyJEpW+TYlDJyYsobOTUlj5yZMkjOrXwXcmHlW5JLo8xrZZS5rI1y38aUX3JrSjK5M8q1e1O6yYMp5+TRuPsL0OuV/gAAAHicrVoJsB1lle7T2999e7m37+3l3Xv77ku/fbtL5/G25MHLRggJ5CVBdvKC4EApOIiJKFFrUARkrHGMJhFxFwZrxnIDtSAzBRh0SlEGBqFw1DwdF8rBODNuod+cv/u+JQmiVs2rm9P/3v85/1m+83cYk8E/eIZlmBTjMFmmjxlippmzmQuZXcxrmb9i3sLcytzN/B3zEeYB5kHmUeZJHF1plaxKWbQM026URtsto1mvNawKZ5QMDttzYNrjMNqehGadtBoWeYW21iu0+X9mm/cKbfS9UUuz3lhVrqyu9MErD4KH+oKFPjWRUOFGpMETCwsb4MYNC7SFkpcWvp6j5ZxiGN25VcU9rmoYKiXd7jxtUmhnT25+VfslhON5jhJPoaUYJwjcjpDGsD4Qixp5/rzlgXBkfj6hBkfogjCvJjZuDA7AfHAExqIX07eM5XJHDCVOa0j64vEDCVWnb9XVRK+u955em6cjca0D8/N9p8yDfbzIv8qPqsdiwDAswDsZgWFq4Du+A0ywmD/+o8I8QP748TyOCfXoZGeMF405af70p+YbQxp2M8ziIrybBTpGkMEhDrwuWAyXAPqHz844JO+Ek0tr4bjXn6TL8CFdWeuD0VqO53s+fIDuJFolHywur3NXtI5Pxzjvo3s5yYcU+VoM+fpg9B7iyQDHozXgzeEzXGaZt7uWxiFvP6UrnHxrSGm3SgnLwG8YBe2oglY0zmxAK7qcmWeuYa5n7sId/BEdXV12VqvuKs1l//RU8Ig1jTL1SAsl5ldIYxQttFIqo32Og3+awf61TjVQR21rx1lBYONhiWogJR4thCP6ohKS4686A9Qt79+y3U24N1zlXvn+ut5k2WCCZX+u/q+aTKrwKNJHz1Su815d92Db0C93VH9jZJP/Vvhw8sj2HBsELAssm0tqQRAuzGpJRovOEX1YhfGYfmaEaTETzFpmfUf2b0IfxkAj9BZDUI9Dx31YHUdCZUIdSR9Qz0RpDUVoEavUIuUxrObYSksYrpR8oUZsx2q0pqDp1b2W7fhIK5YOpoPtdd82idf0sUCPhR4KKdeb7VHbFGFBFyXpV4T8SpLEBFDbhMeRKpPFAhSDuYWFi4IXx6FYhPsgGAP4evDrWMI1TEuTU7om6zYtSqZZ07S8ppnJTKaaySSJLOuyDP2S2Jb4Axz3dl5uitJThlqgL0BSLE4cdPP73lxwn3rq4MGDbrF4SRH2WiqbMlmzIIt8niWWzKZSrIU1Icc6gsHOxLg0/+MsvqCanaQv0GWq+atk3MfMMtvDSBB51dzq0qmK5mFkoP/ArNRSDWvJbTvLpQapWBWrgVJttCpwfC70cTeGTm5uWUyHcrmv53Kwk8pm9Yidz7tjY/iDxwrUpRUiaqjBzeHU21WjMD8/H3wELfo9PdRx90A3fXQforNchtGW+eIYgymE3LUw/m1gzmX2MrcxdzB/i3ziGZNQf3CrWDZtn+53ieNxNmLxlMaGE42MmFzqr/jIqhGKonWaoDhcehA833Zada/earZ91EbbIXUPqW2ZotcSLdNpelYbxm4cQxG4ORdF4YaCwLI75rrHwybatdQ+FrbfMBeJbkWi/24nXFk1uhwlkemyM4aSSDixRHow0cKY8JmcO4uywj+MGB2huq473inOdkdCzIV/wc1Uuu5qoQf3dXWBTDIaWxGJYibTXJfDKlmZrQph9ZI8r8pjspin4YVJrDoDgv4z3sEihY6uDYVo5GLmJgQpS2Ls/BP+RD31/6KhN7ruXC6Hv52uu8j8scoNf6Hqgtv56zvtCRf+hcqM4iOd+PM0Si/LVJkB1OGLmKtQd0unqVknJGDdIme4qaUYZS0HlhBhVVqNJQC1hLww4DgNbxCI0IAfBRPLXj4W+n14lF3oKpeHy+Uu3HvaMPYVRFkWDROdoFjG4kumQYthaxlLwGfyOc5Wgn+4FDYn1SDQkkkNWDUZ/CD0+OxmuthweXeyK4m/eVmVNuI/Sdwryns3SiousxeXUWUYuOA1isJdH+IWGhc4+C71XjLQsM1ywZNP5f4RLHgouOpo8V64maFaF8qOpVE8jVrHlMqD0JyC0TyYOnBldO95GEWfPwhcB9nMvml29k3voWR26pqpqWtuoWT7TnP6dXanHQksdDqQBEe3WmPvSHawRADPdjCJA853/jX1RUg7w1+1PgVvM5b3Q+2B4vFxHFeu4zG0Uew2OpbW6oNoCZXVnabInQqOK+vith3/Ztx269lvZuv17Bz0hE9KftLps+Pf7jzn5jp97rc745HASKcXyQoe+ip8FW2VCRFHiK2Ql/yR/JGlHzCrKlS4OPZL8KXQxnEWeCkgAB81g/tNE3biA75Iy7AzJMyyTlM5UJ+QDr3BNHM+egHKbpRCNAhabi30ux7Jg4D/wq469RQCdcHhMBpgVoSSMkWU4LLYLNeOSxLyTG1vxM13CVoyeNHlq11dXbp5xeWXw9ob3clsvVqNZBJbEQc8EkqW+Jd/GAdXeZe1vi84BTcJBfcgHT/p3tiRYvDfy9JGtqSOvd6LnDmhp1tCjGdYrFAazUGp1cT2SShZZuiv/oy05hRwuNpEg2E0z2ANPI6WCseuLhaP6Usob2K59PrlUnsZ+MFHqGVGuEtNuqzvs8Hv2UOH2D1F51Xzh98v/poV8RzRtoBgYHR8jzg+umj6QH7CB+Zx+ICvmD3/3Geee77Z9y8D5vlbTqkBPh+KWh/stbZg7RtR7QmsdeyGsCLDo3w1avPEhwpqJ306cDi4Vd8Pb+9ZOzMdfH+LBKkZVgxu3afDgbXnrA12SedC8hy6hLD4B1xHgB/jyXjMWYgEtuK+MSh7iP5EIlbKWGiM+m2/PQ1CuQ9ord1qIgA3xRSpV8oER8UBMaFNcxcBBzZGHdpBIzip+6QNJzWrp98abxb71m8tFZ2+gQ3rBj1LIcFJdO+OpmVqomPed213fXLtYL+jSyRmVvuvN+Hzwc76wKazMzkP42uNmxr/TEoERU9WHDs3Ws32Sl1a0amlEnLFEaoZTXM43QTxWrVg11JxWY4nq851uMqTtWyf5HG1DJEnc9tSIQziO3zfzthhBGljtlNGrutDQHkddewCUM6IWEPOKP/Yh7w6S9HDW4onwHS4kQoDr3ngNYN5iSiWN7gueK7YP3tkfV8RWbht08BDmVqtWatldNN0TXM/7ttMyHKpMDFZKMlyIlVziu+qZfp6s9Vatr8vu6eKg5vVK+hg1+xgN/gs/DZE/LuYPczrmVuY25mDzCeYzzGPM08yP0YO6uGWR3SoIA8UWhFEUqfGsknoHKc/Ba06eo2GI4b43m87OhAdnBHRbmDNH6GDGhauyFGeC2DrUPbwYYplTC2widh48iJKZBrao370iJo8v9lujKC7IWZlpEyw4o/i9IpXrtcaSyVsJZaIehNtyGuhXtVRrA71WB4iQtPDFUzKUwhpvAgrwidjKT0RS5ox1SQ8xLouyY7rSkLRQzI3UTJrPXacYyG4T9efdc8eHprOz9pyryOgDybCjBvriku6TJJW6XleUvhuHojCP+DRMiV38YBtisT38Mp+nlIpbLgAJEEkoGmHJGFMlIBSAuYaLBJxTJAk4W6IKTabUkQOoKverm/lJEhAIZ5wJEHiCpwoSs7dKstKvKqCFBOIKiUdwgkxXY/dQkncEFU3rnGSqFz15ktkwsdGWWKIgsrTd8sxno3LPHIR1y24klcI3Rzhb+5ZKqp8xAKSd64U+9aIRBbbyjWCyEqqxJG8pEgsUchMRYtpoGInV3e70He3NnAxluP/xk5IWkzixGyXwJNYPJYIY6G4jB3ijMsUmW7UxbPO9OHEQEuJQ0jS4EMPNEfQqhyLo+ZCzcanBkTPHxaCNeHNzzFKN/Aqv/swrwhX3wBicDvcw75x6/avdVWrI5VKGjFSBlM3xlBWprjBd9cLwu6DPH81xIMn3hAsAnvD1m03QopOGaleksrQWaG9L++dxmSKuEN8bVHcfNr+wSgZJ2h8PLFqc8EAHIMDfb2fhltW7yBw4Viw5pT1Ka7KMaVXQ1ak8+Y/gq220Je/MrSaxx3QeLp4EuPpy4irFMzkangSM8xOzBoY36E3Ni0aY4ZYGmhQNdFYSckoOQgX0Jgc2+QaXkr00PLrlGDyhdRqOy1EEEZpmqWuAzdJHbiTR8fedjyROHeYQ5VUPJ6qDJluSOH6mORIGyF4B1Qvha6svFV6enDQ97yLBx0prlrG6Hy1MncCZiUi6pLs9KbrLeAKXameOzZw/Ow/mYN5W7tMswpD5oxu5wfN4DuyJG18O8vs3W00cra1VXLgwpHgE7qe6yq56f5EDmR1cD4Yu1kQ1ETK6upJt2pK2pMlvrlBENZHZwCPQxDipwazNsraBwFlH2ZCqy9AatHRYLtgipgmhAgJO6nLEgnmp9TVjNpwGLrP2XZONyTT6ST0Ig1+WPTX+aWXICuJwTMU00OvKL1bwgwwYSfAm+k+pxt/M+nkt+gcJDNFv1TyizO/o4O/RVOBTZLGTU9LCUxEI91ZXAx1x8Z9r2E205s39M7RzlFrMOL6Dg02K/qEulWjZ4QOOw805GKUaqB2OSFz9OjQb1LPitF3fyY3sffmq8fHrx7vOTe/n1elwG3uvnZ3o4GkCRPWuvpgXUCHIBRqhVZCIILEmixmHMCi+rCi1LU/f27POF3g5r0Tucx+XlIh0dzd7CzyrkIlwyvoOGw3I4rKvKrI1OEQ5DYGZDnngBOouR6eC5Oi95weylgwItmj2bXDRCwHDoaCVpNeTI3aXCvUXsvEczlq7rzAGnJBRVgWwrtPfYr9xTMcz3784wjPnuZl7jjNxOAO64KdqeHHnnjfSlrlstl7DrHgsm4yOPHYhzj20GPsCrY/ATbdIVilFpxAe7Z6e1f1xWlfqmSVdPRVLujusq1TrL6WuYK5ltmPdtdC4EDDU8NqUFhAz24IBrnmFBtdbdgUUPSBF9kVnmkB8pyps8RyEGMtOQq0T9tprz54f+V+zQmFMQg0FCNCycN/yRqbELg8OqyUGBM8Oa6IRE0pBUWLiQLHuhiGkrqRFCWxpiRUkegptV2qLDkaRZONJecz0K+eX2s2NzebyhAvcXkORJmzuzlU7jtzmLtIKVliNU1VRElgY6ykxM24SthikRUFRZJlPoaHTiSeVTgpppsJTWZze5WO35qqlGW1f3DJ1yViH2tuauJvY4PnMpxMuFQfL8odPYGHoA/1xGAyKPeI8TKiw9MLG9KVNP7em66m8Xd3VAMmSWvp5CmPzrroMRHnbWOuw3IHVXgUvcbZEMB6poP4KMS51AOOgx1ikjogqFlV9RBMhSCLw5NaPQHhU3jKZCREjd5I3Wv6I/CcLmWvGzuP1zCYcxYyK0vrOUFfJ8XEGGtzvBjT+PPGrsvGOC640+J4Ikd1hRdrg5e+T5ZJjLscgBeVGQknj5ksT8fYhlKReA5Rr2fqiCjg05lSJn1R0UCAI5HL4pLIAkhofmi9+uVEQuhjFC8qFnqDo8u1amkoWwkHBHvx6AgtBheKBHsRPLFiPq7VkhrHsrxKwitRKfp+Bi8wKfRUBaYXbXmCmaVZKqpl5bQw6pFKCzUzTEUNz6ZpqEXvVkiYxlmo2mHbKS1RWMRhcGRIIsHPlr5TCWq1P3gKEpK44+WYZWt2xRZ4RVHjylv0bK5UzrJSwlD1+FsH+/tt+OSQlFCDA+HkOo+gqD84DAfmRDlYeE6qGe6eYcEgJU8bzO7ZKOUSE+en7JS3h2FioR8GWOjoX4XpR6x9Puapu5nLUBvPgC/+GS3OmS2n3MWtjkBCxW8gxyknNUzFsDOVy3m5nCkpiqEon3c9b43nuQnHKTrOV8xcrtt1TTnsW7fPUD+kGvvCm7LHaJL7mf2w78uH4dAHYN9+kOnQ7tysmlDxF6fLrPFeR5cpOg+f0nfppGYY2qShfZku9aBqPP1g7mlIQfDLB1f7xxP07qMWXge3GtTDwYkXel/A3y8oeaFz30HHhfcd1FumGkYl9JgLLnWawARuZz1Wge8wtFKKEuJSGIQxolVwGgawSQqQ4Jbg8cEUOvwmrCs2C4VmMbgH9tRnPG8G7h5AD2+2C63CWuzKeTPeWm+mvozx4GX4FuIiK7xPYqK7GlJB90pDJKHuVwch/K5FynXPpz4WQ20DN3DuBqvRMmfc9qX+xHw6Y+1qDG0bgr9vtszNG14OW3Y2sQX7f77JRDEM+JciEFAG1wxtewsusGHzoXVtdWjN0PYh7OjsZ/G3YVznQ3up0LsgBJe1FUuhkdsyvOXLSR+FAO/dGayBtwXviECmgLZMXvuh0tDQzNDQdPAjjPcLO4P3wjE3AqIsSvTe1/4n7Z0Z+tiFNKcP5fAC/C6UwRZmO2JDRBT1lfR2GqKAFGW4hKOeqx3luIj1ROcvuJ5nRMtt1dtJVvUGdmMub25qNFQ22a63XOuos6l3eLh3kzPUe3Y+f3bvB20jH9OSmbSSdDO2m1SMZFoxssOGn0iInOz0TV90k8Zj9tzjONVqOs5rN1003WfHYNttF7ey2dbFt8WtYrVaNB9Pd0GMuDpbx4BnpbJcOs0qboz1BEmxk9kri7wWG5fFAt/RzaOICYVQi0N9CPGxA/BI/qP35h+mlH04f++9+VsfeQQfnTmPsEw0J0IrRqitu8yHHzbvv59S6DOPHjUfCLZ/1jp61IogzlIOoDBz1GKo/dNLNxQYQbFhet1BZ6jwziDrrVxqEQ811A/dQ+gcvHx41+ikvI7KRrlDqwnfzwmyLOTo/a9VOmt+ArGYxK+5fELgedoo5gQezrpqHLAZvPXuwR5r6g/mRGXX8FL4/Qn24O/jZnt64uopjheWpnH+xT5HV2PHr57iOTZ6Ecux+fThgdQ5wJlTxfISYNi8rGfPhflglPP0ULumH31oaETlbhkNLrp/bBkl0vn2wNFPR+jo4blgS8U00ifShlmZNvUTugntfbnclbkcuTP3eA7e5QYv9nZZVlcvmMGL2WIxC+b49773PbhrfNeuJf8Uyju/koVisFm6cUNTw9d0krpOpvk/g9R7NJ+FY4cPY30pnwRrxJy7wBo9SdM5N8rtlr4zhDldFaPdMNNkpqktwepkDkLfQl0LtmK0c5DSWs1EVOETmkJVEM1PU+yHpkTdEEc9T2kaVSGE+dQLUe0AZv1Ns7M33UlJ8AzipnMne+Oj4828mawNgJorgp+23M1bS/Vh7j9yYl/R0q30SLmrO7a5Z0s+A6IO/fWkKTRKtalrWKazEpJFBhcbHLQz7rDr9MSTs926Xjj/FrsWUy/YGVP8aqwwrDiiXLMLA04quD+XcSHZPZuM9zi67hfmhnD6cv4fg2fD6DjKTEa3hX4pPOlmvYMAHDvVbJUQpFoloYRSEUnnchYl1sbBqPECDY3hLZvp26PTMIVguU61Hy2tDl8wJcHUgi2qIUgJ+AJwEGyAp4NHBbea49fRJGpGyFZcASZRc4MPE1vjSYbwTU7iziMgbiVxt1a7JybKwGFc04KXZSxm6f90COYNxzFQxw3TpA9XTsRFRRHjX2PZAS7BrxEkeY+8PWsx/OLLFAuEZx99o2NqXL1MODGM381aFqgut2gW//JLfJI/wUkSLCCCqj3//M9oAu/ADwkJcpImKTJ8Kdi8q+8H76GWEmIMFnDdJK6aRt2tMvXwS34Dc78pzCk+B5vQ65xyYdBGX1yZBNtBzIpuuO3Tb/OVNmYP9IKu7ljY5jR8emVLP9M3RL/llyt1OhTxK/2fAOU4iLS6ch8o4uB6p8csAGrr0i0hunraQk+Gvlhc+TzYxlfbnR66Kq36jc6XM2rpdH/hdTC9J6Q3gThoCGiTFX6yib5F1P2W12mO7hJxOTSQsGnV1wrkqNMc3S3imjT1mYbWqs9ANgqh0xyOoG+NNtCIvngElfFKZXyWErOUNYU50zBKrG4aydSEW9zBC7Cj6JrbUkmjDNhqmBPZ0g5efAPL6xIGX5nXdV3zNEEWEkmAbMpMoS6lErwsYCv2JWTRSWWzKTSgRGeoJCRSy0OTCWFpKC9j/iRpBIeDQqSElMRcQFAx8xbwGRdERVBjdlrBTpMowCpZW5EFVcAuHYcoJCbGRU4jcoIo4XyNw4bYynyVj8Xs7Mr8tB1TV89X8cklxRjOhwPl8fXj5ZDs4Ewnf1aWiylpl1NiXNHk8vk+VsMU1XHPaPYBjIQQE7Q6cqshT5jrq5SnlKgSZJAIGjJbR2yZjGSQQiuMxlKBitFYnIITZT4ai8sljI7IZjpbl7VTti7qIpeQDNJhPc6J2umsOxmN7fCOoovFThWdJnLxlfkJDhdcJXqUkxyJfjmWwzdYDjOcGSyJJEz/CPXfBMFq2Q+vyeqhsmMjvTQSnTBJ9CNQJXau2c22QAeLcKzquxw3udlWdSUOMNmF/MpyNm2UG0lbiIMLoBnewGAqKcpz9TZP5ta0BkpneXLwkgbsbBXWpTOXbV/HsjuEpJrfkIsP9sUzRZbND9iGBVd0FZMWxxW0RMH23Hr/ebPje3JZYfQ5xSyvY/4PDjEZNQAAAHicY2BkYGAA4jufbkyJ57f5ysDNxAACdxcYX4PR/3/9/8zEzcQG5HIwgKUBkWwN/3icY2BkYGBiAAI9Job/v/5/ZeJmYGRABdYAXzsEagAAeJxjYGBgYALj//+Y4Gxk/P8/djY+MRT5X1D6Nwgz3sOnlhb4/18YGwDYOREyAAAAAAAAAAESASQBNgFKAVwBbgF+AZIBpAJiAxQDgARCBOQFbgWCBbgFygYaBjQGTga8BzIHZgeKCAYIXgmgCf4KLgpkCvALTAu8DAgMFgwkDNAM/A2gDhAOmA6sDsAO8A84D3QP+hAUEDAQqBDoERgRoBIWEkIUFhR+eJxjYGRgYLBm9GIQYQABJiDmAkIGhv9gPgMAF6MBsQB4nG2PPW7CQBCFn/mLAlKEEilSulWKNBHmp6DgANBT0Buz/kG211oWJC6QE+QMOUNOkDJnyFHybEYuEnal1ffevNnRABjiCx6q4+G2fqvTwg3VhdukoXCH/CTcxQDPwj36I+E+XjEXHuABAX/wOtVv93DCLdzhTbhN/124Q/4Q7uIRn8I9+t/CfWzwIzzAizc/py4ZpaEp1jo+ZoFtdAMbbQ+pKdTUnzTeShfaBk7v1PasDqd45lykImtytTSF01lmVGnNXofOT5wrF+NxJL4fmhxnpNwm4dYpQhgUWEMjxhEZN7ZX6v+dDTssDtSVUpjCx+RKbsVcUWcDVjR2zG6ZU+w9ceaMrkNEHTFjkJOWdWeVzngNnbKu7emE9H1OqLpKLDDmjf7k/Xp2/gurBGCqeJxtkVeXmzAQRvnWwsGYeDe9916U3jd/RpEG0LGQFAnWh38fijfZh+hB594zRcyQHCTzSZP/n2McYAGGFEucQ4YVcqxR4Dw2OMQRLuAiLuEyruAqruE6buAmbuE27uAu7uE+HuAhHuExnuApnuE5XuAlXuE1ON7gLd7hPT7gIz7hM77gK77hO37gGD+TXEjpOttqW21ECG7HldtZLkyb/9N9xFDZnomMejhj0FU9hdZnvJi582MgO5X8l7BbLmuSWzZiIYUhq0TgQqnNX2mcpT47VSZFrFdT0dismEnqIA2lk6TSDBWr4Y40pqQTMel8v5aBlG65FEExFUTFRs2pJz4lqcWARU3GD0vgtbAq1Y2oqNC2dDz+7sRQz0ZZGx1bHkkEWTPj5HY15FldagpZI7ThrmtXjbZdnD5hovU0yX7gxgVaetF7YRZelUtPzhvKvJkr2AhpIG/64Y7UsihOqIi1JqP2K4kuTJtmI+StbmjunbZh2NGy88YJlXWRAndlmZ5oRe5oJ4Idh2uDFrYytNm5MHQcXhh/fGS9busk+QOYc8P5") format("woff"),
		url("../fonts/yith-icon.ttf?47f77c3e4343c8aa92110ae8ec8e9276") format("truetype");
	font-weight: 400;
	font-style: normal;
}
/* stylelint-enable */


[class^="yith-icon-"], [class*=" yith-icon-"] {
	font-family: yith-icon !important;
	speak: never;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

	width: 1em;
	height: 1em;
	font-size: 20px;
}

/* Icons */

.yith-icon-accounting:before {
	content: "\e91d";
}

.yith-icon-arrow-down-alt:before {
	content: "\f110";
}

.yith-icon-arrow-down:before {
	content: "\e900";
}

.yith-icon-arrow-left-alt:before {
	content: "\f111";
}

.yith-icon-arrow-left:before {
	content: "\e901";
}

.yith-icon-arrow-right-alt:before {
	content: "\f112";
}

.yith-icon-arrow-right:before {
	content: "\e902";
}

.yith-icon-arrow-up-alt:before {
	content: "\f113";
}

.yith-icon-arrow-up:before {
	content: "\e903";
}

.yith-icon-bank-check:before {
	content: "\e91e";
}

.yith-icon-bank:before {
	content: "\e91c";
}

.yith-icon-calendar-add:before {
	content: "\e913";
}

.yith-icon-calendar-money:before {
	content: "\e914";
}

.yith-icon-calendar:before {
	content: "\e904";
}

.yith-icon-calendar2:before {
	content: "\e915";
}

.yith-icon-cash:before {
	content: "\e91f";
}

.yith-icon-check-alt:before {
	content: "\f114";
}

.yith-icon-check-circle:before {
	content: "\e921";
}

.yith-icon-check:before {
	content: "\e905";
}

.yith-icon-clone:before {
	content: "\f105";
}

.yith-icon-close-alt:before {
	content: "\f117";
}

.yith-icon-close:before {
	content: "\e906";
}

.yith-icon-copy:before {
	content: "\f101";
}

.yith-icon-credit-card:before {
	content: "\e920";
}

.yith-icon-drag:before {
	content: "\e90f";
}

.yith-icon-edit:before {
	content: "\e907";
}

.yith-icon-eye-closed:before {
	content: "\e912";
}

.yith-icon-eye:before {
	content: "\e911";
}

.yith-icon-helping-hand:before {
	content: "\f10c";
}

.yith-icon-image:before {
	content: "\f10a";
}

.yith-icon-info-squared:before {
	content: "\e922";
}

.yith-icon-info:before {
	content: "\e90e";
}

.yith-icon-list-search:before {
	content: "\f10d";
}

.yith-icon-lock:before {
	content: "\f119";
}

.yith-icon-magnifier:before {
	content: "\e908";
}

.yith-icon-mail-out:before {
	content: "\f109";
}

.yith-icon-minus-alt:before {
	content: "\f118";
}

.yith-icon-minus:before {
	content: "\f10f";
}

.yith-icon-money-check:before {
	content: "\f11a";
}

.yith-icon-more:before {
	content: "\f102";
}

.yith-icon-paypal:before {
	content: "\e91b";
}

.yith-icon-pdf:before {
	content: "\f107";
}

.yith-icon-pencil:before {
	content: "\e909";
}

.yith-icon-people:before {
	content: "\e916";
}

.yith-icon-plus-alt:before {
	content: "\f115";
}

.yith-icon-plus:before {
	content: "\e90a";
}

.yith-icon-reply:before {
	content: "\e91a";
}

.yith-icon-reset:before {
	content: "\e910";
}

.yith-icon-save:before {
	content: "\f10b";
}

.yith-icon-shield-money:before {
	content: "\e917";
}

.yith-icon-sort-alt:before {
	content: "\f116";
}

.yith-icon-sort:before {
	content: "\f106";
}

.yith-icon-time-check:before {
	content: "\e918";
}

.yith-icon-trash:before {
	content: "\e90d";
}

.yith-icon-update:before {
	content: "\e90b";
}

.yith-icon-upload:before {
	content: "\e90c";
}

.yith-icon-user-off:before {
	content: "\f108";
}

.yith-icon-video:before {
	content: "\f10e";
}

.yith-icon-warning-triangle:before {
	content: "\e923";
}

.yith-icon-world-settings:before {
	content: "\e919";
}

.yith-icon-yith:before {
	content: "\e924";
}

/** -------------------------------------------
* Deprecated icons
*/

/** Deprecated: use yith-icon-paypal instead */
.yith-icon-paypal-svgrepo-com:before {
  content: "\e91b";
}

/** Deprecated: use yith-icon-arrow-down instead */
.yith-icon-arrow_down:before {
	content: "\e900";
}

/** Deprecated: use yith-icon-eye instead */
.yith-icon-arrow_eye:before {
	content: "\e911";
}

/** Deprecated: use yith-icon-eye-closed instead */
.yith-icon-arrow_eye_closed:before {
	content: "\e912";
}

/** Deprecated: use yith-icon-arrow-left instead */
.yith-icon-arrow_left:before {
	content: "\e901";
}

/** Deprecated: use yith-icon-arrow-right instead */
.yith-icon-arrow_right:before {
	content: "\e902";
}

/** Deprecated: use yith-icon-arrow-up instead */
.yith-icon-arrow_up:before {
	content: "\e903";
}

/** Deprecated: use yith-icon-calendar instead */
.yith-icon-calendar2:before {
	content: "\e904";
}

/** Deprecated: use yith-icon-calendar-add instead */
.yith-icon-calendar_add:before {
	content: "\e913";
}

/** Deprecated: use yith-icon-calendar-money instead */
.yith-icon-calendar_money:before {
	content: "\e914";
}

/** Deprecated: use yith-icon-shield-money instead */
.yith-icon-shield_money:before {
	content: "\e917";
}

/** Deprecated: use yith-icon-time-check instead */
.yith-icon-time_check:before {
	content: "\e918";
}

/** Deprecated: use yith-icon-world-settings instead */
.yith-icon-world_settings:before {
	content: "\e919";
}

/** Deprecated: use yith-icon-edit instead */
.yith-icon-pencil:before {
    content: "\e907";
}

/** Deprecated: use yith-icon-reset instead */
.yith-icon-update:before {
    content: "\e910";
}plugin-fw/assets/css/scss/yith-plugin-ui/_wp-pages.scss000064400000003560151327614500017174 0ustar00/**
 * YITH Plugin UI - WP Pages
 */

.yith-plugin-fw-wp-page-wrapper {

  .yith-plugin-fw__back-to-wp-list__wrapper {
    margin: -5px 0 15px;

    .yith-plugin-fw__back-to-wp-list {
      text-decoration: none;
      font-weight: 600;
      text-transform: uppercase;
      color: var(--yith-link);
      vertical-align: middle;

      &:before {
        content: "\e901";
        font-family: yith-icon;
        margin-right: 5px;
        font-size: .8em;
        vertical-align: middle;
      }
    }
  }

  .wrap div#message.updated {
    display: none;
    padding: 15px 40px 15px 45px;
    margin: 15px 0 20px;
    border-radius: 5px;
    background: var(--yith-success-lightest);
    border: 1px solid var(--yith-success-light);
    font-weight: 600;
    font-size: 14px;
    text-align: left;
    color: var(--yith-content-text);
    box-shadow: 1px 1px 2px var(--yith-success-lighter);


    &:before {
      font-family: yith-icon;
      content: "\e921";
      position: absolute;
      top: 50%;
      left: 13px;
      font-size: 21px;
      font-weight: 400;
      transform: translateY(-50%);
      color: var(--yith-success);
    }

    p {
      padding: 0;
      margin: 0;
    }

    .notice-dismiss {
      position: absolute;
      top: 50%;
      right: 10px;
      transform: translateY(-50%);
      border-radius: 50%;
      color: var(--yith-success);
      padding: 7px;
      background: transparent;
      box-shadow: 0 0 0 5px rgba(0, 0, 0, 0);
      transition: all .3s ease-in-out;

      &:before {
        font-family: yith-icon;
        content: "\e906";
        font-weight: 600;
        font-size: 12px;
        color: inherit;
      }

      &:hover {
        box-shadow: 0 0 0 0 var(--yith-success-lighter);
        background: var(--yith-success-lighter);
      }

      &:hover:before, &:active:before, &:focus:before {
        color: inherit;
      }
    }
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/_animations.scss000064400000003127151327614500017612 0ustar00/**
 * YITH Animations
 */

.yith-plugin-fw-animate__appear-from-bottom{
  animation: yith-plugin-fw-appear-from-bottom .3s forwards;
}

.yith-plugin-fw-animate__appear-from-top{
  animation: yith-plugin-fw-appear-from-top .3s forwards;
}

.yith-plugin-fw-animate__fade-in{
  animation: yith-plugin-fw-fade-in .3s forwards;
}


@-webkit-keyframes yith-plugin-fw-appear-from-top {
  from {
    opacity: 0;
    transform: translateY(-30%);
    -webkit-transform: translateY(-30%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@keyframes yith-plugin-fw-appear-from-top {
  from {
    opacity: 0;
    transform: translateY(-30%);
    -webkit-transform: translateY(-30%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@-webkit-keyframes yith-plugin-fw-appear-from-bottom {
  from {
    opacity: 0;
    transform: translateY(+30%);
    -webkit-transform: translateY(+30%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@keyframes yith-plugin-fw-appear-from-bottom {
  from {
    opacity: 0;
    transform: translateY(+30%);
    -webkit-transform: translateY(+30%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@-webkit-keyframes yith-plugin-fw-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes yith-plugin-fw-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/_components.scss000064400000000417151327614500017634 0ustar00/**
 * YITH Plugin UI - Components
 */

@import "components/action-button";
@import "components/buttons";
@import "components/boxed-row";
@import "components/confirm";
@import "components/list-table-blank-state";
@import "components/modal";
@import "components/tip-tip";
plugin-fw/assets/css/scss/yith-plugin-ui/components/_tip-tip.scss000064400000002336151327614500021224 0ustar00@import "../mixins/buttons";

#tiptip_holder {
  display: none;
  z-index: 8675309;
  position: absolute;
  top: 0;

  /*rtl:ignore*/
  left: 0;


  &.tip_top {
    padding-bottom: 5px;

    #tiptip_arrow_inner {
      margin-top: -7px;
      margin-left: -6px;
      border-top-color: #333;
    }
  }

  &.tip_bottom {
    padding-top: 5px;

    #tiptip_arrow_inner {
      margin-top: -5px;
      margin-left: -6px;
      border-bottom-color: #333;
    }
  }

  &.tip_right {
    padding-left: 5px;

    #tiptip_arrow_inner {
      margin-top: -6px;
      margin-left: -5px;
      border-right-color: #333;
    }
  }

  &.tip_left {
    padding-right: 5px;

    #tiptip_arrow_inner {
      margin-top: -6px;
      margin-left: -7px;
      border-left-color: #333;
    }
  }


  #tiptip_content {
    color: #fff;
    font-size: 0.8em;
    max-width: 150px;
    background: #333;
    text-align: center;
    border-radius: 3px;
    padding: 0.618em 1em;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);

    code {
      padding: 1px;
      background: #888;
    }
  }

  #tiptip_arrow,
  #tiptip_arrow_inner {
    position: absolute;
    border-color: transparent;
    border-style: solid;
    border-width: 6px;
    height: 0;
    width: 0;
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/components/_modal.scss000064400000004703151327614500020732 0ustar00.yith-plugin-fw__modal__wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999999;
  background: rgba(34, 59, 80, 0.7);
  animation: yith-plugin-fw-fade-in .3s forwards;
  box-sizing: border-box;

  .yith-plugin-fw__modal__main {
    position: relative;
    background: #fff;
    border-radius: 10px;
    box-shadow: 1px 3px 16px rgba(0, 22, 59, .4);
    animation: yith-plugin-fw-appear-from-top .3s forwards;
    overflow: hidden;
    max-width: calc(100% - 20px);
    max-height: calc(100% - 20px);
    display: flex;
    flex-direction: column;
  }

  .yith-plugin-fw__modal__close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #aaa;
    cursor: pointer;

    &:hover {
      color: #444;
    }
  }

  .yith-plugin-fw__modal__title {
    padding: 20px 25px;
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.5em;
    color: var(--yith-primary);
  }

  .yith-plugin-fw__modal__content {
    padding: 0 25px 25px;
  }

  .yith-plugin-fw__modal__footer {
    padding: 25px;
    background: #f7f7f7;
  }

  &.yith-plugin-fw__modal__wrap--scroll-content {
    .yith-plugin-fw__modal__content {
      overflow-y: auto;
    }
  }
}

.yith-plugin-fw__modal--opened {
  overflow: hidden;
}

// Allow seeing WP Menu.

.yith-plugin-fw__modal--allow-wp-menu {
  .yith-plugin-fw__modal__wrap {
    z-index: 99;
    padding-left: $wp_menu_size;
    padding-top: $wp_top_bar_size;
  }

  #adminmenuback {
    z-index: 100;
  }
}

@media only screen and (max-width: 960px) {
  .folded {
    .yith-plugin-fw__modal__wrap {
      padding-left: $wp_menu_folded_size;
    }
  }

  .auto-fold {
    .yith-plugin-fw__modal--allow-wp-menu {
      .yith-plugin-fw__modal__wrap {
        padding-left: $wp_menu_folded_size;
      }
    }
  }
}

@media screen and (max-width: 782px) {
  .auto-fold {
    .yith-plugin-fw__modal--allow-wp-menu {
      .yith-plugin-fw__modal__wrap {
        z-index: 999999;
        width: 100%;
        height: 100%;
        padding-left: 0;
        padding-top: 0;
      }
    }

    .yith-plugin-fw__modal--allow-wp-menu-in-mobile {
      .yith-plugin-fw__modal__wrap {
        z-index: 99;
        padding-top: $wp_top_bar_mobile_size;
      }

      &.wp-responsive-open {
        .yith-plugin-fw__modal__wrap {
          padding-left: $wp_menu_mobile_size;
        }
      }
    }


  }
}plugin-fw/assets/css/scss/yith-plugin-ui/components/_list-table-blank-state.scss000064400000000735151327614500024102 0ustar00.yith-plugin-fw__list-table-blank-state {
  padding: 30px 30px 0;
  text-align: center;
  display: flex;
  flex-direction: column;

  & > * {
    margin-bottom: 30px;
  }

  img.yith-plugin-fw__list-table-blank-state__icon {
    width: 100px;
    margin: 0 auto 30px;
  }

  i.yith-plugin-fw__list-table-blank-state__icon {
    font-size: 65px;
    margin: 0 auto 30px;
  }

  .yith-plugin-fw__list-table-blank-state__message {
    font-size: 1.4em;
    line-height: 1.5;
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/components/_boxed-row.scss000064400000000674151327614500021547 0ustar00
.yith-plugin-fw__boxed-row, .yith-plugin-fw__boxed-row--hover-highlight {
  background: var(--yith-content-bg);
  border-radius: 5px;
  box-shadow: 0 0 0 1px var(--yith-light-border-color), 0 3px 11px 6px var(--yith-light-shadow);
  transition: background-color .2s ease-in-out;
  padding: 25px;
  margin-bottom: 25px;
  margin-top: 25px;
}

.yith-plugin-fw__boxed-row--hover-highlight:hover {
  background: var(--yith-table-row-highlight);
}
plugin-fw/assets/css/scss/yith-plugin-ui/components/_action-button.scss000064400000003571151327614500022426 0ustar00.yith-plugin-ui .yith-plugin-fw__action-button, .yith-plugin-fw__action-button {
  height: 35px;
  width: 35px;
  background-color: var(--yith-content-bg);
  display: inline-block;
  border: 0;
  border-radius: 50%;
  transition: .3s;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(170, 198, 222, .5);
  outline: none;
  position: relative;
  margin: 0 5px 5px 0;
  vertical-align: middle;

  .yith-plugin-fw__action-button__link {
    height: 100%;
    width: 100%;
    display: inline-block;
  }

  .yith-plugin-fw__action-button__icon {
    position: absolute;
    color: var(--yith-link);
    font-size: 17px;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
  }

  &.yith-plugin-fw__action-button--trash-action .yith-plugin-fw__action-button__icon,
  &.yith-plugin-fw__action-button--delete-action .yith-plugin-fw__action-button__icon {
    color: #a10000;
  }

  .yith-plugin-fw__action-button__menu {
    position: absolute;
    display: none;
    flex-direction: column;
    width: max-content;
    right: 0;
    margin: 5px 0 0 0;
    padding: 8px 0;
    background: var(--yith-content-bg);
    border-radius: 5px;
    box-shadow: 0 2px 7px rgba(170, 198, 222, .5);
    z-index: 10;
    animation: yith-plugin-fw-appear-from-top .3s forwards;
  }

  .yith-plugin-fw__action-button__menu__item {
    margin: 0;
    display: block;
    padding: 7px 25px;
    color: var(--yith-content-text);
    cursor: pointer;
    text-decoration: none;
    text-align: right;

    &:hover {
      color: var(--yith-link);
    }
  }

  &.yith-plugin-fw__action-button--has-menu {
    .yith-plugin-fw__action-button__icon {
      color: var(--yith-content-text);
    }

    &.yith-plugin-fw__action-button--opened {
      .yith-plugin-fw__action-button__icon {
        color: var(--yith-link);
      }

      .yith-plugin-fw__action-button__menu {
        display: flex;
      }
    }
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/components/_confirm.scss000064400000001362151327614500021271 0ustar00@import "../mixins/buttons";

.yith-plugin-fw__confirm__wrap {

  .yith-plugin-fw__confirm__message {
    margin-bottom: 20px;
  }

  .yith-plugin-fw__confirm__footer {
    text-align: right;
  }


  .yith-plugin-fw__confirm__button {
    height: auto;
    line-height: 33px;
    border-radius: 4px;
    padding: 0 20px;
    font-weight: 600;
    cursor: pointer;
    display: inline-block;
    margin-right: 10px;
    white-space: nowrap;

    &:last-child {
      margin-right: 0;
    }

    &.yith-plugin-fw__confirm__button--cancel {
      @include button-secondary;
    }

    &.yith-plugin-fw__confirm__button--confirm {
      @include button-primary;
    }

    &.yith-plugin-fw__confirm__button--delete {
      @include button-delete;
    }
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/components/_buttons.scss000064400000012453151327614500021335 0ustar00@import "../mixins/buttons";

.yith-plugin-ui, .wp-core-ui .yith-plugin-ui {

    // WordPress Buttons.
    .button-primary, .button-secondary {
        border-radius   : 3px;
        text-transform  : none;
        box-shadow      : none;
        border          : 1px solid;
        font-weight     : 600;
        padding         : 0 12px;
        outline         : none;
        height          : auto;
        transition      : all ease 0.3s;
        text-shadow     : none;
        display         : inline-block;
        text-decoration : none;
        cursor          : pointer;
        white-space     : nowrap;

        &:focus {
            outline    : none;
            box-shadow : none;
        }

        &.button-small {
            padding : 0 8px;
        }
    }

    .button-secondary {
        @include button-secondary;
    }

    .button-primary {
        @include button-primary;
    }

    .button.action,
    #doaction,
    #doaction2,
    #post-query-submit,
    #posts-filter #delete_all,
    #search-submit,
    .button.filter-button {
        @include button;
        @include button-secondary;
        height        : auto;
        line-height   : 33px;
        border-radius : 8px;
        padding       : 0 15px;
        font-weight   : 600;
    }

    #posts-filter #delete_all {
        @include button-delete-outline;
    }

    .tablenav .tablenav-pages .button,
    .tablenav .tablenav-pages .tablenav-pages-navspan {
        @include button-secondary;
    }

    @media screen and (max-width : 782px) {
        .tablenav .tablenav-pages .button, .tablenav .tablenav-pages .tablenav-pages-navspan {
            min-width   : 44px;
            padding     : 12px 8px;
            font-size   : 18px;
            line-height : 1;
        }
    }

    // YITH Buttons.
    .yith-plugin-fw__button, [class^="yith-plugin-fw__button--"], [class*=" yith-plugin-fw__button--"],
    .yith-add-button, .yith-edit-button, .yith-update-button, .yith-remove-button, .yith-plugin-fw-upload-button, .yith-save-button, .yith-plugin-fw-select-all, .yith-plugin-fw-deselect-all, .yith-plugin-fw-upload-button-reset // Old buttons.
    {
        @include button;
    }

    .yith-plugin-fw__button--primary {
        @include button-primary;
    }

    .yith-plugin-fw__button--secondary {
        @include button-secondary;
    }

    .yith-plugin-fw__button--delete {
        @include button-delete;
    }

    .yith-plugin-fw__button--add, .yith-add-button {
        @include button-primary;

        @include button-with-icon("\f115");

        &:before {
            display                    : inline-block;
            margin                     : 0 10px 0 -5px;
            font-size                  : .95em;
            transition                 : transform .2s, margin .2s, font-size .2s;
            transition-timing-function : ease-in-out;
        }

        &.closed {
            @include button-secondary;

            &:before {
                font-size : 1.15em;
                margin    : 0 8px 0 -5px;
                transform : rotate(-45deg);
            }
        }
    }

    .yith-plugin-fw__button--close {
        @include button-secondary;

        @include button-with-icon("\f117");
    }

    .yith-plugin-fw__button--edit, .yith-edit-button {
        @include button-secondary;

        @include button-with-icon("\e907");
    }

    .yith-plugin-fw__button--update, .yith-update-button {
        @include button-update;

        @include button-with-icon("\e90b");
    }

    .yith-plugin-fw__button--trash, .yith-remove-button {
        @include button-delete;

        @include button-with-icon("\e90d");
    }

    .yith-plugin-fw__button--upload, .yith-plugin-fw-upload-button {
        @include button-primary;

        @include button-with-icon("\e90c");
    }

    // Old buttons.
    .yith-save-button {
        @include button-primary;
    }

    .yith-plugin-fw-select-all,
    .yith-plugin-fw-deselect-all,
    .yith-plugin-fw-upload-button-reset {
        @include button-secondary;
    }

    // with icons.
    .button-secondary span.yith-icon {
        margin-left  : 0;
        margin-right : 10px;
        line-height  : normal;

        &:before {
            color       : inherit;
            font-size   : 15px;
            font-weight : 400;
        }
    }

    // With icon
    .yith-plugin-fw__button--with-icon {
        position     : relative;
        padding-left : 30px;

        i {
            position    : absolute;
            top         : 50%;
            left        : 10px;
            transform   : translateY(-50%);
            font-size   : 1em;
            font-weight : 400;
        }
    }


    // Button Sizes
    .yith-plugin-fw__button--xl, .button-xl {
        padding     : 0 20px;
        font-size   : 14px;
        line-height : 38px;

        &::before {
            margin : 0 10px 0 -5px;
        }

        &.yith-plugin-fw__button--with-icon {
            padding-left : 40px;

            i {
                left : 14px;
            }
        }
    }

    .yith-plugin-fw__button--xxl {
        padding     : 0 28px;
        font-size   : 16px;
        line-height : 45px;

        &::before {
            margin : 0 15px 0 -10px;
        }

        &.yith-plugin-fw__button--with-icon {
            padding-left : 45px;

            i {
                left : 15px;
            }
        }
    }
}

plugin-fw/assets/css/scss/yith-plugin-ui/_head_comment.scss000064400000000222151327614500020064 0ustar00/**
 * YITH Plugin UI style
 *
 * IMPORTANT: This file is automatically generated through SCSS files.
 * Please don't edit it manually!
 */
plugin-fw/assets/css/scss/yith-plugin-ui/_taxonomy.scss000064400000001372151327614500017326 0ustar00/**
 * YITH Plugin UI - Taxonomy Style
 */

.yith-plugin-ui.yith-plugin-ui--taxonomy-type, .yith-plugin-ui--taxonomy-type {

  // List

  #col-container {
    display: flex;
  }

  #col-left {
    padding: 20px;
    background: #f1f1f1;
    border-radius: 8px;
    box-sizing: border-box;
    margin-right: 15px;
  }

  #col-right {
    flex: 1;
  }

  h2 {
    border: none;
    padding: 0;
    font-size: 14px;
    background: transparent;
  }

  // Edit Tax
  .wrap h1 {
    color: #2a8db0;
    font-size: 16px;
    font-weight: 600;
  }
}

@media screen and (max-width: 782px) {
  .yith-plugin-ui.yith-plugin-ui--taxonomy-type {
    #col-container {
      display: block;
    }

    #col-left, #col-right {
      float: none;
      width: 100%;
    }
  }
}

plugin-fw/assets/css/scss/yith-plugin-ui/_variables.scss000064400000010646151327614500017424 0ustar00/**
 * YITH CSS Variables
 */

$content_bg: #ffffff; // Content Background.
$content_text: #3c434a; // Content Text.

$primary: #00799f; // Primary color, for buttons
$primary_hover: #0094c4; // Primary hover color, for buttons
$primary_focus: #bddce6; // Primary focus color, for buttons
$primary_text: #ffffff; // Text on primary color bg

$delete: #c41d04; // color for delete buttons
$delete_hover: lighten($delete, 5%); // color for delete buttons - hover
$delete_text: #ffffff; // Text on delete buttons
$delete_focus: #f0d2cd; // Delete focus color, for buttons

// Outline is used to stylize Secondary buttons.
$outline_text: #0087b3; // outline button - text color
$outline_border: #0094c4; // outline button - border color
$outline_bg: rgba(255, 255, 255, 0); // outline button - background color
$outline_bg_hover: rgba(157, 198, 205, .2); // outline button - background color on hover
$outline_border_hover: #007ba3; // outline button - border color on hover
$outline_focus: #dfeef2; // Outline focus color, for buttons

$delete_outline_text: $delete; // Delete-outline button - text color
$delete_outline_border: $delete; // Delete-outline button - border color
$delete_outline_bg: rgba(205, 157, 157, 0); // Delete-outline button - background color
$delete_outline_bg_hover: rgba(232, 184, 184, 0.15); // Delete-outline button - background color on hover
$delete_outline_border_hover: #db2b11; // Delete-outline button - border color on hover
$delete_outline_focus: #ffe9e7; // Delete-outline focus color, for buttons

$update: #94aa09; // Update button - background
$update_hover: darken($update, 5%); // Update button - hover
$update_text: #ffffff; // Text on update button background
$update_focus: #e7eccc; // Text on update button background

$accent: #98aa36;

$light_bg: #f0f6fb;
$light_border_color: #d7e3e7;
$light_shadow: rgba(145, 191, 227, 0.11);
$light_accent: #0079b0;

$success: #98aa36;
$success_light: lighten($success, 30%);
$success_lighter: lighten($success, 43%);
$success_lightest: lighten($success, 50%);


$table_row_highlight: #f0f6fb;
$table_row_striped: #f6f7f7;
$table_border_light: #eff0f0;

$field_border_color: #d8d8d8;
$field_border_weight: 1px;
$field_border: $field_border_weight solid $field_border_color;

$link: #0079b0; // Link Color.

// Extra variables: these will be not converted to CSS Variables
$wp_menu_size: 160px;
$wp_menu_folded_size: 36px;
$wp_menu_mobile_size: 190px;
$wp_top_bar_size: 32px;
$wp_top_bar_mobile_size: 46px;

// export vars as CSS vars
:root {
  --yith-content-bg: #{$content_bg};
  --yith-content-text: #{$content_text};
  --yith-primary: #{$primary};
  --yith-primary-hover: #{$primary_hover};
  --yith-primary-focus: #{$primary_focus};
  --yith-primary-text: #{$primary_text};

  --yith-delete: #{$delete};
  --yith-delete-hover: #{$delete_hover};
  --yith-delete-text: #{$delete_text};
  --yith-delete-focus: #{$delete_focus};

  --yith-update: #{$update};
  --yith-update-hover: #{$update_hover};
  --yith-update-text: #{$update_text};
  --yith-update-focus: #{$update_focus};

  --yith-outline-text: #{$outline_text};
  --yith-outline-border: #{$outline_border};
  --yith-outline-bg: #{$outline_bg};
  --yith-outline-bg-hover: #{$outline_bg_hover};
  --yith-outline-border-hover: #{$outline_border_hover};
  --yith-outline-focus: #{$outline_focus};

  --yith-delete-outline-text: #{$delete_outline_text};
  --yith-delete-outline-border: #{$delete_outline_border};
  --yith-delete-outline-bg: #{$delete_outline_bg};
  --yith-delete-outline-bg-hover: #{$delete_outline_bg_hover};
  --yith-delete-outline-border-hover: #{$delete_outline_border_hover};
  --yith-delete-outline-focus: #{$delete_outline_focus};

  --yith-accent: #{$accent};

  --yith-light-bg: #{$light_bg};
  --yith-light-border-color: #{$light_border_color};
  --yith-light-shadow: #{$light_shadow};
  --yith-light-accent: #{$light_accent};

  --yith-success: #{$success};
  --yith-success-light: #{$success_light};
  --yith-success-lighter: #{$success_lighter};
  --yith-success-lightest: #{$success_lightest};

  --yith-table-row-highlight: #{$table_row_highlight};
  --yith-table-row-striped: #{$table_row_striped};
  --yith-table-border-light: #{$table_border_light};

  --yith-field-border-color: #{$field_border_color};
  --yith-field-border-weight: #{$field_border_color};
  --yith-field-border: #{$field_border};
  --yith-link: #{$link};
}
plugin-fw/assets/css/scss/yith-plugin-ui/mixins/_tables.scss000064400000005603151327614500020232 0ustar00@mixin table-action-buttons {

  thead th.column-actions, tfoot th.column-actions {
    visibility: hidden;
  }

  th.column-actions, td.column-actions {
    text-align: right;
  }

  .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
    opacity: 0;
    transition: .3s;
  }

  tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
    opacity: 1;
  }
}

@mixin wp-table-commons {

  tfoot {
    display: none;
  }

  .check-column {
    width: 2em;
  }

  th.sortable a, th.sorted a {
    padding: 0 8px 0 0;
    color: inherit;

    &:hover {
      color: var(--yith-link);
    }
  }

  .sorting-indicator {
    visibility: visible;

    &:before {
      font-family: yith-icon;
      content: "\f116";
      color: inherit;
      font-size: 10px;
      top: 0;
      left: 0;
    }
  }

  th.sorted.asc .sorting-indicator:before,
  th.desc:hover span.sorting-indicator:before,
  th.desc a:focus span.sorting-indicator:before {
    content: "\f113";
    font-weight: 600;
  }

  th.sorted.desc .sorting-indicator:before,
  th.asc:hover span.sorting-indicator:before,
  th.asc a:focus span.sorting-indicator:before {
    content: "\f110";
    font-weight: 600;
  }
  @include table-action-buttons;
}

@mixin classic-table {
  border: 2px solid var(--yith-table-border-light);
  background: var(--yith-content-bg);
  box-shadow: none;
  border-spacing: 0;

  th, thead td, tfoot td {
    text-align: left;
    line-height: 1.3em;
    font-size: 14px;
  }

  thead th, thead td {
    border-bottom: 0;
  }

  tfoot th, tfoot td {
    border-top: 0;
  }

  tbody tr th, tbody tr td {
    vertical-align: middle;
    padding: 15px;
  }

  tbody tr:hover {
    background: var(--yith-table-row-highlight);
  }

  thead td, thead th, tfoot td, tfoot th {
    padding: 15px;
    font-weight: 600;
  }

  tbody > :nth-child(odd) {
    background-color: var(--yith-table-row-striped);
  }
}


@mixin boxed-table {
  border: 0;
  border-spacing: 0 20px;
  box-shadow: none;
  background: transparent;

  th, thead td, tfoot td {
    text-align: left;
    line-height: 1.3em;
    font-size: 14px;
  }

  thead th, thead td {
    border-bottom: 0;
    padding: 0 0 0 25px;
    font-weight: 600;
  }

  tbody tr {
    background: var(--yith-content-bg);
    border-radius: 5px;
    box-shadow: 0 0 0 1px var(--yith-light-border-color), 0 3px 11px 6px var(--yith-light-shadow);
    transition: background-color .2s ease-in-out;
  }

  tbody tr th, tbody tr td {
    background: transparent;
    vertical-align: middle;
    padding: 25px 0 25px 25px;
  }

  tbody tr td:last-child {
    padding-right: 25px;
  }

  tbody tr th:first-child,
  tbody tr td:first-child {
    border-radius: 5px 0 0 5px;
  }

  tbody tr th:last-child,
  tbody tr td:last-child {
    padding-right: 25px;
    border-radius: 0 5px 5px 0;
  }


  tbody tr:hover {
    background: var(--yith-table-row-highlight);
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/mixins/_buttons.scss000064400000005704151327614500020460 0ustar00@mixin button {
  display: inline-block;
  height: auto;
  line-height: 30px;
  border-radius: 4px;
  padding: 0 17px;
  font-weight: 600;
  cursor: pointer;
  transition: all .3s ease-in-out;
  text-decoration: none;
  white-space: nowrap;

  &:focus {
    outline: none;
    box-shadow: none;
  }
}

@mixin button-primary {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);

  &:focus {
    background: var(--yith-primary);
    color: var(--yith-primary-text);
    border: 1px solid var(--yith-primary);
    box-shadow: 0 0 0 3px var(--yith-primary-focus);
  }

  &:hover, &:active {
    background: var(--yith-primary-hover);
    color: var(--yith-primary-text);
    border: 1px solid var(--yith-primary-hover);
  }
}

@mixin button-secondary {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);

  &:focus {
    background: var(--yith-outline-bg);
    border: 1px solid var(--yith-outline-border);
    color: var(--yith-outline-text);
    box-shadow: 0 0 0 3px var(--yith-outline-focus);
  }

  &:hover, &:active {
    background: var(--yith-outline-bg-hover);
    border-color: var(--yith-outline-border-hover);
    color: var(--yith-outline-text);
  }
}

@mixin button-update {
  background: var(--yith-update);
  color: var(--yith-update-text);
  border: 1px solid var(--yith-update);

  &:focus {
    background: var(--yith-update);
    color: var(--yith-update-text);
    border: 1px solid var(--yith-update);
    box-shadow: 0 0 0 3px var(--yith-update-focus);
  }

  &:hover, &:active {
    background: var(--yith-update-hover);
    color: var(--yith-update-text);
    border: 1px solid var(--yith-update-hover);
  }
}

@mixin button-delete {
  background: var(--yith-delete);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete);

  &:focus {
    background: var(--yith-delete);
    color: var(--yith-delete-text);
    border: 1px solid var(--yith-delete);
    box-shadow: 0 0 0 3px var(--yith-delete-focus);
  }

  &:hover, &:active {
    background: var(--yith-delete-hover);
    color: var(--yith-delete-text);
    border: 1px solid var(--yith-delete-hover);
  }
}

@mixin button-delete-outline {
  background: var(--yith-delete-outline-bg);
  border: 1px solid var(--yith-delete-outline-border);
  color: var(--yith-delete-outline-text);

  &:focus {
    background: var(--yith-delete-outline-bg);
    border: 1px solid var(--yith-delete-outline-border);
    color: var(--yith-delete-outline-text);
    box-shadow: 0 0 0 3px var(--yith-delete-outline-focus);
  }

  &:hover, &:active {
    background: var(--yith-delete-outline-bg-hover);
    border-color: var(--yith-delete-outline-border-hover);
    color: var(--yith-delete-outline-text);
  }
}

@mixin button-with-icon($icon) {

  &:before {
    font-family: yith-icon;
    content: $icon;
    margin: 0 8px 0 -5px;
    font-size: 1.15em;
    font-weight: 400;
    vertical-align: top;
  }
}plugin-fw/assets/css/scss/yith-plugin-ui/_tables.scss000064400000001706151327614500016723 0ustar00/**
 * YITH Plugin UI - Post Type Style
 */

@import "mixins/tables";

table.yith-plugin-fw__classic-table {
  @include classic-table;

  &.wp-list-table{
    @include wp-table-commons;
  }
}

table.yith-plugin-fw__boxed-table {
  @include boxed-table;

  &.wp-list-table{
    @include wp-table-commons;
  }
}

// WP List Tables
.yith-plugin-ui--classic-wp-list-style, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style {

  table.wp-list-table {
    @include classic-table;

    @include wp-table-commons;
  }

  .tablenav.bottom {
    display: none;

    .yith-plugin-fw__list-table-blank-state {
      display: flex;
    }
  }
}

.yith-plugin-ui--boxed-wp-list-style, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style {

  table.wp-list-table {
    @include boxed-table;

    @include wp-table-commons;
  }

  .tablenav.bottom {
    display: none;

    .yith-plugin-fw__list-table-blank-state {
      display: flex;
    }
  }
}
plugin-fw/assets/css/scss/yith-plugin-ui.scss000064400000000375151327614500015313 0ustar00@import "yith-plugin-ui/head_comment";

@import "yith-plugin-ui/variables";
@import "yith-plugin-ui/wp-pages";
@import "yith-plugin-ui/taxonomy";
@import "yith-plugin-ui/components";
@import "yith-plugin-ui/tables";
@import "yith-plugin-ui/animations";
plugin-fw/assets/css/yit-upgrader.css000064400000000634151327614500013703 0ustar00/* === Plugins Upgrader === */

.yit-plugin-changelog-wrapper {
    display: none;
}

.yit-plugin-changelog-title {
    text-transform: uppercase;
}

.yit-plugin-changelog {
    height     : calc(100% - 15px);
    width      : calc(100% - 15px);
    overflow-x : hidden;
    overflow-y : auto;
    z-index    : 999;
    background: #fcfcfc;
}

.yith-updating:before{
    animation: rotation 2s infinite linear;
}plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png000064400000000156151327614500021237 0ustar00�PNG


IHDR��:��5IDATx���Pᙽ�m#���	���x�[��Ru���\�h�'<u�ߪn��!N|IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png000064400000000131151327614500021273 0ustar00�PNG


IHDR�J3U IDAT8�cx��0
�ČP��Lp>�h��A	�F�(IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-icons_888888_256x240.png000064400000007301151327614500020077 0ustar00�PNG


IHDR��IJ�PLTEGpL�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������菿[tRNSX�G|"2���wf�����ZNz�@e�S�F��caM�hm�s�}�����䁎]����������b�p�
Ιi�8*�yѧȓ�د�͐���ǫ��e�
IDATx����6�a�7��s#@�-l	����Y�xZ�-v�����c~x�n�y��*f6߸��u��h1��-���b�Ҁ��T3=��H����B�S���&F�Z��`L!����
(�
����_�L�~�S`
f6�E�p8���G�	ν^�~`JC���P�?�=|�VK��4 >���i���cZ�~��^q�S��~&XX���U<�
O1lS�mt�W�}�\]�˜����p8��k���}o������PN�z���,C�t����P���9�PK9���
�)���vY1 e�w��k� �����	������XO�\��D{�fq��+��}A�S�C]�^ĭ�J���p8�Y/����Q4��7<W�
(Q��Z��Y��RŴ
��F70G��ǡh �^��]k+����GHs�ڿ��m;��"�� l�a�<b] �8AT��G~ʈ�[�a��<c@�2�˨���y	�!V��y����񕛘l �))n�m��M0���_��s�啨�������p8�+��,3��VG���!�0���5OO���Z6L���8��bׯ�E�7�������-��6�����ʌY��2���)�Rm���ne��{�#+����W
��j�i@�G�Y��a���P�����E�yf���_����yϹ-���p8<�����\���7���L�S�������u,�ﱱ��d����%���(�ӽ�`���l3��׀=�g��ǽPږw�Sl�ߏ
q	�}d<��t����2�O���F���{@���@���Swm����x���W{�ݶ�E��=�1d�`L��J��{�L]���ccp�4>ږf�n�{���!�$U&��d2��y�X�D	K�� J�%�+���>X�~UP�M���G�n%py�Y!��q]���@i�����m<+�N��w6h�&:ꢢ(����d�F��c�@]�n�	d�	 J�b	�B����C��b
!���B�d2J+��:��"2pk��~�$��D?$��=�N�z��N�>��0�t;�p<t8�=�(��K�0.�(�l\���8�A��x�E�O�/�����D��c���/?�X:��� ��x0@��iz`<.��Hq�QW�^e��A�Ԕ=� �Sj�Qs�S���
�g��"�~\�c���tϬa������
ՠ��������P��t������
�rE��?^�I8%P�yMV�,P��2`��%�A-��?s���뀝N�0F�<G��r��^vo'��j��^�8��'�sD�C&��d�^�8pJ��׆x!h	��#֌����VoyS���Nԥi��~���pV����F��}j�Q����蹟��j�@j��8p��4��K�h�m��&�}:�����1q�*���d����ׄTBU����$r5�4��>�q*iM0<�'�[Ѻ^��ƛO^-��)�u���ۋ�w���s�**{�KP�
w��=4�74n-�<+��TH�s̻<O\?^w������gBD��M4t��k@����CV|��tj��{��u�SO/>L�����\�������k<�+��
�,x:����ݽS�(OQj
ԩ<L�f&��?}��ᣟ}��1��yT�b�)�a���Zohþd@rNB	��y!@J�$����e�:�8�b$��x#�q��YF�A��b�~{`���u(f�7Q��4pq��e-�\+�A�J�!u�~�5��$��d2%�
����n�RT�п�1�4��g�&�_}���|����<������%J�vB��w��aY~�I�K
�*���L3{5>%8�.���Tj�͍�;E�/�a:�{���s��P��
{h��3`�5@\���?|����n�Q*��##��m:&�3��F��xA���2�d�f~@�8��~G7�/�Տ����OD���*�ш�U�����(�3�؊R$������ǀ�9Z���umg}N�8N�4�;J������7�o�9��a&
���k��X�VLo�i��'''�:���O�t�%ǀ�|���o�rH��1 ��&���)�
�TfǜE	 �4�<��{n�i 9�~>�3'}�Y�%��V��h�akԢvm�?�)G�A���@��9J{�xI�K���� ��qr�e�{����p�����v��w8�q�4���Ir_:;��''�C&�ɔe$7��.?��
�†_tQx�����0Qį@-C�}1`r�p���������"j�ĽP��v&~Y��@"��+A�~��܌�����GA:8Gh�1���
ԡ�D9��5��~�,0���l���Ԋ�W]4/ԟ�uZ�BRA00x&�	^�-8���!Կ�8� X8G��F�
��
��{�;��7��`�q���, ��1 j��A��g0g�s������3�L&�95V	ú�/$�ϥK�~�0�q<.^���7���>Z/�����Vױ*j
��x��Ǫ<�@@��
��y�6%��lTv�8���)UqZ��=���1����Y���Y _d2�L&C���S����-�3w��g(��q
T��Pɀ}����e���/1S�b���;�=��U�Z��-���8E�R���⃍����[����9<gZr�׆����8�x�`<`����|�,<�Ϙ0�����0.������w�{�!������ii8��`���
U��k���J�3�s�H&��d����<D������ؿ���1���l�������탔;�������!��]�
p#8XWb~ؾٟ��;")v��V���Z��_��-˧�[G�/a�D��������gH8ץ��E���/o�z<�|���4R�
 �3]��;t�\���K�izh���m[:�Ǚ��G�	��҃Z;�HRXWb~b��u���p�Ә�����_������R�n��O&��d2����(����q�@A������ۀ�D�#r�1 �2�L&��\X�~�^����~a��`@������g0�t�E]?�c�t��\�����t@���rH�Q�B����7�_�8���9��IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-icons_222222_256x240.png000064400000007277151327614500020047 0ustar00�PNG


IHDR��IJ�PLTEGpL"""�Q�EZtRNSw��2��XG|�Z�f����Ȉ���cp�@ys
S�m�㲼h}��Mثz�8���]�aF"��b����N��i�e�ݭ�*ǰ���������ֹz^Y�
IDATx^�QN�@D���� �EB��Z!L�u	>Bٴ��tb2�0����p��#IA�`�����-h�$j�`��u�
((�4�t/�`���%����`�����r�x�c��/�K�>!���3��>�|���`0���G=�yځ
��@-�?��:�����~��Wa*��C�?W,�r0��4����?U\��
�56t�+Q���&.�sx��`0p-����<�9z��oC�E�O3��Cz:��* �a�����^����AJ�d^?��؀@@V��c@�.E�C�(�0��k��t��‚<�� ��sC�M[Ef�.������`0�������⼘9P�R}k���k%�Q��.��z����%@\.��X�j\� �h@i��6�@ԏHr~g�f[� <{�����
�/^��I�@]"��i:U��i��s>"z:�jC���@�q�1,@��!��(�:���$*�Q�7�t!v@�_� 2���[y@������Տ�AE��5������_�G
hZ:ϙX �� �!)�:hX��xP�ߏ#�?8��(�(@�$G�Yk�B��(+������P�η��n���JGd�B�sf���@�����ו���<�<��`0��}�<�K���z�z��8����m�i������{v�m2�n�K�������4~go�Y3��<{�lz�g�'�A{��Xu��e1ԯ���r��
�����g������|8^��@:�
�v���=��}�5�!����O;g��&�m���d'J
*YmW%N%��P���5�<�}����D�
��Z��|X�ڀ��{.YH ��|���T[���"|	�z�.�,�9��T	$��~ؑ�N���,q�e%M �~�Ĉ��l��͞9v��Gc҄4%I�4���7S&���dYV��2�`	�t
V�@�j�+�
�0%��뇴X,B����H;�)VPQ2�1�����U%�$����=��v��	�֭[��M�>�E;�����'�zA5�Z�[��r��A@A��g�	��?�i�E�	�r���_�0v+�x<��Ǩ��|���LJ('��v��?�W)�DG�D�@.��e�Q~�p�Ň��;w�@�[aR��`���y�'��$IƝ�,�_WK�o�H]t*`d�#�nT��KӾ
��@���z�{R�4g��cW.�3�辟����p�����r��C�y����喿[��2m��q`g�?�g�L�������Ǐ��B�������jY�k�����Ή��M�)��K��m�!X�8LJl�3��]�wm��#,���|�$g�H���
��#�0Gڇ}����,���x-~�Z�T� �^�������%���K�LK9�y��L��W�J�&@@�7��´�<�����R
�RA�
�v���mH���֩���}�
�(^��ZZД���P��@E����9�yL�?A�@������ֺ�T�i������\?$ {}�_Q�j�sw�!��S��Z�����ź�L��oV�_k=������s _�aOV����H�'-5���8��\����[�[��XO8f�Dm�e�G������׵�4�HE!����Y>j �����̿o�f���#i���&���"�z��(�ݜ?���5�e��s��O�
E�av[�ngr�G����D(6�>*��vpG��&@�K�Dx�#(�I�Q��,�/����;�+$=|��'�x�s�E�1��~E�w�j´,�u�7	 'QBn�1������Wk�XK1+I���wu�j����z=!D�zԹ�b*�x��r�����������7#��r��@�@�����,�NV��pƬ�
��>�~{B�35����눪�wj�k�����Fw_O
�.VPjn�
@f8Y.�$1]Θ��;��{��m͜�@�|��
��浝׳�8��&�C�d���>�<]r�cx�L�n._�`���&��y�]�P|����	�󙟯�l�G7�YoX.'�I�	>+�)��{���Y�
z����tdmO�n7nP����eX.�,��7}��>��L]f��W��DVXؓ�юx�i�yMO�\����KڧP���#��Y�n�v��E'����4!�Y�燣�׏d����f�{��sr3���+��E����r̻�,<xt,�HV2�{ �#ӦX��fES�Y�E��'��}�E��p�o���0�x���o�4ͽ��[A������c1���cG�9��'�i�� ����o��m�'��S2��R̭ �X,�f�?���o���3����p���* 2�m�@0�
|ӻj�jo�����$�5TX���rW��΀�߹p����K�����@��ۄi����{���mu.��h�M��?t�5z�j����2g/E�m���i�9�ʞۡ�m���*�&�n0�
�p,�)�v�0u�z�$��V�c���x��g*��Y`���S�Y���PpX\"�L����d� ���g��/Ŭ����9�Y�K
�K/3ݷ��\ӵ60#�^��kn�f����4]��R��H����0/8�	`�f<�
ƌ���ۙ����L����
��
��0�4�>x��|2%��3U
�d^�.lL��v��,�k]T���D�������~@\���Ϊ�x[�q�����FwV��ۆ>�+4\9I�)Ϫ�x[�q��
m�+� �7�ճ�߽��&�}!���P�O��9�����r��)�]�i�������
i	�
�I�G�+�:C"�������# ����
�Ky$�u���5H�������>y=��6L� @�B"����:�55�75k��{�^�g{O���ĶKӰ4eۧ1?�t�mOd�x��q�?����P��[�N�;�T�iP<��+ %�]@H"��PC`8\Z��m�(�����0����+��z�vV�z�	���_����BM��g|*���q+ ��z�_�y��+{��`l�s��r�QCq���IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png000064400000007301151327614500020330 0ustar00�PNG


IHDR��IJ�PLTEGpL��

�

�

��

�

�

�		�

�

�

�		�

�		�

�		��		�

�		��

�		�		�		�

�

�

�

�

�		�		�		�		�		��		�

�

�		�

�

�

�		�

�		�

�

�

�

�

�		�		�

�		�

�		�		�		�

�

�		�

��		�

�		�

�		���		�

�

�		�

�

�

�		�		�

�		�		�

�		�

�		�

�

;
�[tRNSX�G|"2���wf�����ZNz�@e�S�F��caM�hm�s�}�����䁎]����������b�p�
Ιi�8*�yѧȓ�د�͐���ǫ��e�
IDATx����6�a�7��s#@�-l	����Y�xZ�-v�����c~x�n�y��*f6߸��u��h1��-���b�Ҁ��T3=��H����B�S���&F�Z��`L!����
(�
����_�L�~�S`
f6�E�p8���G�	ν^�~`JC���P�?�=|�VK��4 >���i���cZ�~��^q�S��~&XX���U<�
O1lS�mt�W�}�\]�˜����p8��k���}o������PN�z���,C�t����P���9�PK9���
�)���vY1 e�w��k� �����	������XO�\��D{�fq��+��}A�S�C]�^ĭ�J���p8�Y/����Q4��7<W�
(Q��Z��Y��RŴ
��F70G��ǡh �^��]k+����GHs�ڿ��m;��"�� l�a�<b] �8AT��G~ʈ�[�a��<c@�2�˨���y	�!V��y����񕛘l �))n�m��M0���_��s�啨�������p8�+��,3��VG���!�0���5OO���Z6L���8��bׯ�E�7�������-��6�����ʌY��2���)�Rm���ne��{�#+����W
��j�i@�G�Y��a���P�����E�yf���_����yϹ-���p8<�����\���7���L�S�������u,�ﱱ��d����%���(�ӽ�`���l3��׀=�g��ǽPږw�Sl�ߏ
q	�}d<��t����2�O���F���{@���@���Swm����x���W{�ݶ�E��=�1d�`L��J��{�L]���ccp�4>ږf�n�{���!�$U&��d2��y�X�D	K�� J�%�+���>X�~UP�M���G�n%py�Y!��q]���@i�����m<+�N��w6h�&:ꢢ(����d�F��c�@]�n�	d�	 J�b	�B����C��b
!���B�d2J+��:��"2pk��~�$��D?$��=�N�z��N�>��0�t;�p<t8�=�(��K�0.�(�l\���8�A��x�E�O�/�����D��c���/?�X:��� ��x0@��iz`<.��Hq�QW�^e��A�Ԕ=� �Sj�Qs�S���
�g��"�~\�c���tϬa������
ՠ��������P��t������
�rE��?^�I8%P�yMV�,P��2`��%�A-��?s���뀝N�0F�<G��r��^vo'��j��^�8��'�sD�C&��d�^�8pJ��׆x!h	��#֌����VoyS���Nԥi��~���pV����F��}j�Q����蹟��j�@j��8p��4��K�h�m��&�}:�����1q�*���d����ׄTBU����$r5�4��>�q*iM0<�'�[Ѻ^��ƛO^-��)�u���ۋ�w���s�**{�KP�
w��=4�74n-�<+��TH�s̻<O\?^w������gBD��M4t��k@����CV|��tj��{��u�SO/>L�����\�������k<�+��
�,x:����ݽS�(OQj
ԩ<L�f&��?}��ᣟ}��1��yT�b�)�a���Zohþd@rNB	��y!@J�$����e�:�8�b$��x#�q��YF�A��b�~{`���u(f�7Q��4pq��e-�\+�A�J�!u�~�5��$��d2%�
����n�RT�п�1�4��g�&�_}���|����<������%J�vB��w��aY~�I�K
�*���L3{5>%8�.���Tj�͍�;E�/�a:�{���s��P��
{h��3`�5@\���?|����n�Q*��##��m:&�3��F��xA���2�d�f~@�8��~G7�/�Տ����OD���*�ш�U�����(�3�؊R$������ǀ�9Z���umg}N�8N�4�;J������7�o�9��a&
���k��X�VLo�i��'''�:���O�t�%ǀ�|���o�rH��1 ��&���)�
�TfǜE	 �4�<��{n�i 9�~>�3'}�Y�%��V��h�akԢvm�?�)G�A���@��9J{�xI�K���� ��qr�e�{����p�����v��w8�q�4���Ir_:;��''�C&�ɔe$7��.?��
�†_tQx�����0Qį@-C�}1`r�p���������"j�ĽP��v&~Y��@"��+A�~��܌�����GA:8Gh�1���
ԡ�D9��5��~�,0���l���Ԋ�W]4/ԟ�uZ�BRA00x&�	^�-8���!Կ�8� X8G��F�
��
��{�;��7��`�q���, ��1 j��A��g0g�s������3�L&�95V	ú�/$�ϥK�~�0�q<.^���7���>Z/�����Vױ*j
��x��Ǫ<�@@��
��y�6%��lTv�8���)UqZ��=���1����Y���Y _d2�L&C���S����-�3w��g(��q
T��Pɀ}����e���/1S�b���;�=��U�Z��-���8E�R���⃍����[����9<gZr�׆����8�x�`<`����|�,<�Ϙ0�����0.������w�{�!������ii8��`���
U��k���J�3�s�H&��d����<D������ؿ���1���l�������탔;�������!��]�
p#8XWb~ؾٟ��;")v��V���Z��_��-˧�[G�/a�D��������gH8ץ��E���/o�z<�|���4R�
 �3]��;t�\���K�izh���m[:�Ǚ��G�	��҃Z;�HRXWb~b��u���p�Ә�����_������R�n��O&��d2����(����q�@A������ۀ�D�#r�1 �2�L&��\X�~�^����~a��`@������g0�t�E]?�c�t��\�����t@���rH�Q�B����7�_�8���9��IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png000064400000000122151327614500021317 0ustar00�PNG


IHDR�J3UIDAT8Oc��0
�%�!6�QHs�%����n�IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png000064400000000157151327614500021243 0ustar00�PNG


IHDR��:��6IDATx�� ��_6��5=� ���8Go"BZU#�[�҄S�;M�#�o5��0�IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png000064400000000126151327614500023106 0ustar00�PNG


IHDRdbG�IDAT�cx��@�!$��`3i��,��}�
IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-icons_2e83ff_256x240.png000064400000007301151327614500020275 0ustar00�PNG


IHDR��IJ�PLTEGpL-��.��.��-��.��.��.��.��-��-��-��.��-��-��.��.��-��-��.��.��.��.��.��-��.��/��.��.��'��.��-��.��.��.��-��.��.��.��.��-��.��.��.��-��-��-��-��.��-��.��.��,��/��-�.��.��.��.��-��-��-��-��-��.��.��.��.�.��-�-��.��.��-��-��.��0��.��.��.��-��.��-��-��-��-��-��.��.��-��.��wx��ZtRNSw��2��XG|�Z�f����Ȉ���cp�@ys
S�m�㲼h}��Mثz�8���]�aF"��b����N��i�e�ݭ�*�Dž��������ֹkL5
IDATx^�[n�0D�G���!(�+��p�8=�=�D�i=�~�5�E}x��\�������1��
���/���JQȿC��-@AY�A�vw6��%p�1�]��i]���Z@��Xl��X!U�K���
6�Bi��Y��Кf!4��`�+���B�ky�� ���Z	�֟*��6�w�@z�������!ǟ#6�zE=
��Y�
~��l�+��\�Dq����0�,0��`��b�T�<5�D��/�hA�M���&�s� v����ņ��HD�
�&s�q�l��b{w�(�f�
��jP��$�%;}�1�=��!����� �E�炶�~0k�s�y���`0xĿ����~1s����-�Ё�b9�~�D5*�Jh|�y��-@L�\�,B5.VT��ݾ̢�G��؝E�$�+T���=Yl
@�P��/ӀN	v,�^ {�i���<D����>"�5�� ���W&J�`zGaа$;Q�e:�%P�m`go���`..���Č=�!�C�C��@��jl6H��8a0�0@�I˥���͉n$��M��M5���q�@�~�"��(pR4��Z�Yuc��<P�r����������<p�T@������'@��1�L���$��םȨЬs��`0�-�~^�5�-��FG>g�j�pXԼګ�V���֒�`9?���I�Jf�r���?8��	��7@so�-��^��@G��ް�f�>��W��h��
����}��^;s|qh����{�i��D�\�ۭ��8q�����`��	w�H���$�8���@V�݉��d�t'�O����`Y�:.���^�)	�$�{�㩔S�xm�����#*`X���P@�E�Z��+�L��'Jp��H����EQa;*� $�#9�-�e�|�����g�9YM�H?��2a@�+.wP�;%
d`	����@��F/+�D����/���t:J�X��P�������NHU�"�eXjD��g�,�/�)��ݻ�tMRێ8��z@@�F�;�,��A�D5�ђ/��ǝ�}�>%����\S������{�?K`�Q������$�*��Hx���x��F�6�����8E|*���{@�
 ���Xܿ�d�AU
�p���?��3~Ȳ'd� /;�f~!�ȣ*�g�[P�k����T�A�'�����3�e��@FC��`��̿����<=�6h�2��eӦWZ�ю8K����:7��M@�gD�kCGGGGdzgjŁS�@�x�>�5T�P5���^�x6�XK��Sja3��ei��%0́���&:=�=�uզ�?���	��<�e��i���X١��Hp�ʉ�K�xu8��Yl����fA�0����2CdBY��Y>3-�P��7�3݃��TQ:�:�<�\�i=u���W��?��6
�z��m� �E���Εg����wv��h�>�!�%es�O��
@	��������������
0�P[���� �فA�Z2�D��=H����l���y��3�O�ZlY�>�`��i7��8Š�Y�N-]���(Rx"���L�ɏw�w��^�4�6э�0˃�%�c��"���P0�v���R=���
���ޭ��ͯ{R�뛫K\�(�G�D	3��< ��ަ��r���Ƿ�g��'I�
�&��}"���\tttttT`}����;&@�O2�L-:7���1�������޳���IO^�9��$�[T4T��wT���êz$?%��L���X�x6>Yi~q��Q�L%�����T�߆��W���:[�1/�Z@���߰,�o��s�o�H%�J��� �X:d�k,����`��nj�d,Iٍ�3����.tD]�#�p����� ��J@u2��|�e��j�X��T		Rb�=��{�{�W�pK6�
�g��1p�K펀�����y�b�bΑx�Xn/��~�A��f��JG��h6���ɂO�'{�|>�&����d���l	�p2�`b�LJa	 ��ڞ<a�o7�H�����s�$o�ۿ�X�B!�^�S�p��b{4g��,I����4��y����j�+ �/��Q
�=� ���{���:�<�p��,�<t����x��v����*7�x������J�M�ۺ.<xڈ�����(Qh[L���[��;�;�*��H<َ�f�%�cvZҪ0H���h_�i���CӉ��;��� �0���м�����ҕ`�����ӟ1���"@S�<r�1��%C.)��Fx��)^;������-T���`�K��~P)
+�����!nz7M�L6A8��m�. ��1�Ɗn��=��)�R�`�[�����6tttttt�r�0,Z�!�}<���]A����(����z+�;=(�x[@�PKQhW�E`�@�؇�^x@�����i��6�%��4R�A��D�qZ"�l`�Mre{�����]���q����Ƹ?�7�8��5��P�)0�Yq2E�����ʘ?�7b�2$N��՟C_@��7�Y	�x�!N�0#�,�g��Fϖ��MꜜZ_D<G�8«!+a�8L08�?���>�����X�q����eX_�_J�;}RJ*�]T1���n���ѣ��EAh]U���Lב�����~@��Q�O�v�����L�2��i����`ō
t���:��.t��j
�aO��F����&�J�7�#��bM�TR0k@�ހxq4KLK{{��� �k��q�HǯH��?4]#�a�T$4{�^dH���P���x�#�M�k�[���D�ׄ��i�ؼ�����e�j׆�t�6�^!-���l�55���5��d�"�J�'��bM۸m�[�m,��t+�����ۍng�SY��Nt;԰u}i ?�
��
����4�=����t@H�M���@w��ttttttt��e�V��_����?9�>	�W��o�/g�_n�X�E���=�/	��c��C���~��_��@�����K��}�{���/s�QCh̬IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png000064400000000126151327614500021067 0ustar00�PNG


IHDR(d�9PLTE���~��IDATxc��X\�RIEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png000064400000000131151327614500021075 0ustar00�PNG


IHDR�J3U IDATx�cz��0
�����Ȑ��	*>
�
a���IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png000064400000000112151327614500021214 0ustar00�PNG


IHDR(d�O�IDATxc��%G�Qʑ�J��7IEND�B`�plugin-fw/assets/css/jquery-ui/images/ui-icons_454545_256x240.png000064400000007301151327614500020052 0ustar00�PNG


IHDR��IJ�PLTEGpLBBBCCCDDDCCCCCCBBBCCCBBBCCCBBBBBBCCCCCCCCCCCCCCCBBBDDDAAABBBCCCCCCDDDCCCCCCCCCAAABBBCCCBBBAAABBBBBBBBBCCCCCCBBBBBBCCCBBBBBBCCCBBBBBBBBBCCCCCCBBBAAACCCBBBCCCCCCBBBCCCBBBBBBCCCCCCBBBCCCBBBBBBCCC:::BBBBBBDDDBBBDDDBBBEEE???CCCCCCCCCCCCCCCCCCCCCCCCCCCBBBCCCCCCCCCBBBBBBBBBCCC�_\f[tRNSX�G|"2���wf�����ZNz�@e�S�F��caM�hm�s�}�����䁎]����������b�p�
Ιi�8*�yѧȓ�د�͐���ǫ��e�
IDATx����6�a�7��s#@�-l	����Y�xZ�-v�����c~x�n�y��*f6߸��u��h1��-���b�Ҁ��T3=��H����B�S���&F�Z��`L!����
(�
����_�L�~�S`
f6�E�p8���G�	ν^�~`JC���P�?�=|�VK��4 >���i���cZ�~��^q�S��~&XX���U<�
O1lS�mt�W�}�\]�˜����p8��k���}o������PN�z���,C�t����P���9�PK9���
�)���vY1 e�w��k� �����	������XO�\��D{�fq��+��}A�S�C]�^ĭ�J���p8�Y/����Q4��7<W�
(Q��Z��Y��RŴ
��F70G��ǡh �^��]k+����GHs�ڿ��m;��"�� l�a�<b] �8AT��G~ʈ�[�a��<c@�2�˨���y	�!V��y����񕛘l �))n�m��M0���_��s�啨�������p8�+��,3��VG���!�0���5OO���Z6L���8��bׯ�E�7�������-��6�����ʌY��2���)�Rm���ne��{�#+����W
��j�i@�G�Y��a���P�����E�yf���_����yϹ-���p8<�����\���7���L�S�������u,�ﱱ��d����%���(�ӽ�`���l3��׀=�g��ǽPږw�Sl�ߏ
q	�}d<��t����2�O���F���{@���@���Swm����x���W{�ݶ�E��=�1d�`L��J��{�L]���ccp�4>ږf�n�{���!�$U&��d2��y�X�D	K�� J�%�+���>X�~UP�M���G�n%py�Y!��q]���@i�����m<+�N��w6h�&:ꢢ(����d�F��c�@]�n�	d�	 J�b	�B����C��b
!���B�d2J+��:��"2pk��~�$��D?$��=�N�z��N�>��0�t;�p<t8�=�(��K�0.�(�l\���8�A��x�E�O�/�����D��c���/?�X:��� ��x0@��iz`<.��Hq�QW�^e��A�Ԕ=� �Sj�Qs�S���
�g��"�~\�c���tϬa������
ՠ��������P��t������
�rE��?^�I8%P�yMV�,P��2`��%�A-��?s���뀝N�0F�<G��r��^vo'��j��^�8��'�sD�C&��d�^�8pJ��׆x!h	��#֌����VoyS���Nԥi��~���pV����F��}j�Q����蹟��j�@j��8p��4��K�h�m��&�}:�����1q�*���d����ׄTBU����$r5�4��>�q*iM0<�'�[Ѻ^��ƛO^-��)�u���ۋ�w���s�**{�KP�
w��=4�74n-�<+��TH�s̻<O\?^w������gBD��M4t��k@����CV|��tj��{��u�SO/>L�����\�������k<�+��
�,x:����ݽS�(OQj
ԩ<L�f&��?}��ᣟ}��1��yT�b�)�a���Zohþd@rNB	��y!@J�$����e�:�8�b$��x#�q��YF�A��b�~{`���u(f�7Q��4pq��e-�\+�A�J�!u�~�5��$��d2%�
����n�RT�п�1�4��g�&�_}���|����<������%J�vB��w��aY~�I�K
�*���L3{5>%8�.���Tj�͍�;E�/�a:�{���s��P��
{h��3`�5@\���?|����n�Q*��##��m:&�3��F��xA���2�d�f~@�8��~G7�/�Տ����OD���*�ш�U�����(�3�؊R$������ǀ�9Z���umg}N�8N�4�;J������7�o�9��a&
���k��X�VLo�i��'''�:���O�t�%ǀ�|���o�rH��1 ��&���)�
�TfǜE	 �4�<��{n�i 9�~>�3'}�Y�%��V��h�akԢvm�?�)G�A���@��9J{�xI�K���� ��qr�e�{����p�����v��w8�q�4���Ir_:;��''�C&�ɔe$7��.?��
�†_tQx�����0Qį@-C�}1`r�p���������"j�ĽP��v&~Y��@"��+A�~��܌�����GA:8Gh�1���
ԡ�D9��5��~�,0���l���Ԋ�W]4/ԟ�uZ�BRA00x&�	^�-8���!Կ�8� X8G��F�
��
��{�;��7��`�q���, ��1 j��A��g0g�s������3�L&�95V	ú�/$�ϥK�~�0�q<.^���7���>Z/�����Vױ*j
��x��Ǫ<�@@��
��y�6%��lTv�8���)UqZ��=���1����Y���Y _d2�L&C���S����-�3w��g(��q
T��Pɀ}����e���/1S�b���;�=��U�Z��-���8E�R���⃍����[����9<gZr�׆����8�x�`<`����|�,<�Ϙ0�����0.������w�{�!������ii8��`���
U��k���J�3�s�H&��d����<D������ؿ���1���l�������탔;�������!��]�
p#8XWb~ؾٟ��;")v��V���Z��_��-˧�[G�/a�D��������gH8ץ��E���/o�z<�|���4R�
 �3]��;t�\���K�izh���m[:�Ǚ��G�	��҃Z;�HRXWb~b��u���p�Ә�����_������R�n��O&��d2����(����q�@A������ۀ�D�#r�1 �2�L&��\X�~�^����~a��`@������g0�t�E]?�c�t��\�����t@���rH�Q�B����7�_�8���9��IEND�B`�plugin-fw/assets/css/jquery-ui/jquery-ui.min.css000064400000072542151327614500015744 0ustar00/*! jQuery UI - v1.11.4 - 2015-03-11
* http://jqueryui.com
* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */

.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{-webkit-filter:inherit;filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}plugin-fw/assets/css/yith-select2-no-wc.css000064400000052514151327614500014630 0ustar00.select2-container {
    -webkit-box-sizing : border-box;
    box-sizing         : border-box;
    display            : inline-block;
    margin             : 0;
    position           : relative;
    vertical-align     : middle
}

.select2-container .select2-selection--single {
    -webkit-box-sizing  : border-box;
    box-sizing          : border-box;
    cursor              : pointer;
    display             : block;
    height              : 28px;
    margin              : 0 0 -4px;
    -moz-user-select    : none;
    -ms-user-select     : none;
    user-select         : none;
    -webkit-user-select : none
}

.select2-container .select2-selection--single .select2-selection__rendered {
    display       : block;
    padding-left  : 8px;
    padding-right : 20px;
    overflow      : hidden;
    text-overflow : ellipsis;
    white-space   : nowrap
}

.select2-container .select2-selection--single .select2-selection__clear {
    position : relative
}

.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered {
    padding-right : 8px;
    padding-left  : 20px
}

.select2-container .select2-selection--multiple {
    -webkit-box-sizing  : border-box;
    box-sizing          : border-box;
    cursor              : pointer;
    display             : block;
    min-height          : 32px;
    -moz-user-select    : none;
    -ms-user-select     : none;
    user-select         : none;
    -webkit-user-select : none
}

.select2-container .select2-selection--multiple .select2-selection__rendered {
    display       : inline-block;
    overflow      : hidden;
    padding-left  : 8px;
    text-overflow : ellipsis;
    white-space   : nowrap
}

.select2-container .select2-search--inline {
    float   : left;
    padding : 0
}

.select2-container .select2-search--inline .select2-search__field {
    -webkit-box-sizing : border-box;
    box-sizing         : border-box;
    border             : none;
    font-size          : 100%;
    margin             : 0;
    padding            : 0
}

.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
    -webkit-appearance : none
}

.select2-dropdown {
    background-color   : #fff;
    border             : 1px solid #aaa;
    border-radius      : 4px;
    -webkit-box-sizing : border-box;
    box-sizing         : border-box;
    display            : block;
    position           : absolute;
    left               : -100000px;
    width              : 100%;
    z-index            : 1051
}

.select2-results {
    display : block
}

.select2-results__options {
    list-style : none;
    margin     : 0;
    padding    : 0
}

.select2-results__option {
    padding             : 6px;
    -moz-user-select    : none;
    -ms-user-select     : none;
    user-select         : none;
    -webkit-user-select : none
}

.select2-results__option[aria-selected], .select2-results__option[data-selected] {
    cursor : pointer
}

.select2-container--open .select2-dropdown {
    left : 0
}

.select2-container--open .select2-dropdown--above {
    border-bottom              : none;
    border-bottom-left-radius  : 0;
    border-bottom-right-radius : 0
}

.select2-container--open .select2-dropdown--below {
    border-top              : none;
    border-top-left-radius  : 0;
    border-top-right-radius : 0
}

.select2-search--dropdown {
    display : block;
    padding : 4px
}

.select2-search--dropdown .select2-search__field {
    padding            : 4px;
    width              : 100%;
    -webkit-box-sizing : border-box;
    box-sizing         : border-box
}

.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
    -webkit-appearance : none
}

.select2-search--dropdown.select2-search--hide {
    display : none
}

.select2-close-mask {
    border           : 0;
    margin           : 0;
    padding          : 0;
    display          : block;
    position         : fixed;
    left             : 0;
    top              : 0;
    min-height       : 100%;
    min-width        : 100%;
    height           : auto;
    width            : auto;
    opacity          : 0;
    z-index          : 99;
    background-color : #fff
}

.select2-hidden-accessible {
    border   : 0 !important;
    clip     : rect(0 0 0 0) !important;
    height   : 1px !important;
    margin   : -1px !important;
    overflow : hidden !important;
    padding  : 0 !important;
    position : absolute !important;
    width    : 1px !important
}

.select2-container--default .select2-selection--single {
    background-color : #fff;
    border           : 1px solid #aaa;
    border-radius    : 4px
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color       : #444;
    line-height : 28px
}

.select2-container--default .select2-selection--single .select2-selection__clear {
    cursor      : pointer;
    float       : right;
    font-weight : 700
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color : #999
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height   : 26px;
    position : absolute;
    top      : 1px;
    right    : 1px;
    width    : 20px
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color : #888 transparent transparent transparent;
    border-style : solid;
    border-width : 5px 4px 0 4px;
    height       : 0;
    left         : 50%;
    margin-left  : -4px;
    margin-top   : -2px;
    position     : absolute;
    top          : 50%;
    width        : 0
}

.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear {
    float : left
}

.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow {
    left  : 1px;
    right : auto
}

.select2-container--default.select2-container--disabled .select2-selection--single {
    background-color : #eee;
    cursor           : default
}

.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
    display : none
}

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color : transparent transparent #888 transparent;
    border-width : 0 4px 5px 4px
}

.select2-container--default .select2-selection--multiple {
    background-color : #fff;
    border           : 1px solid #aaa;
    cursor           : text;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    -webkit-box-sizing : border-box;
    box-sizing         : border-box;
    list-style         : none;
    margin             : 0;
    padding            : 0 5px;
    width              : 100%
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
    list-style : none;
    margin     : 5px 5px 0 0
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered li:before {
    content : '';
    display : none
}

.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
    color      : #999;
    margin-top : 5px;
    float      : left
}

.select2-container--default .select2-selection--multiple .select2-selection__clear {
    cursor       : pointer;
    float        : right;
    font-weight  : 700;
    margin-top   : 5px;
    margin-right : 10px
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color : #e4e4e4;
    border           : 1px solid #aaa;
    border-radius    : 4px;
    cursor           : default;
    float            : left;
    margin-right     : 5px;
    margin-top       : 5px;
    padding          : 0 5px
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color        : #999;
    cursor       : pointer;
    display      : inline-block;
    font-weight  : 700;
    margin-right : 2px
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color : #333
}

.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline, .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder {
    float : right
}

.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice {
    margin-left  : 5px;
    margin-right : auto
}

.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove {
    margin-left  : 2px;
    margin-right : auto
}

.select2-container--default.select2-container--focus .select2-selection--multiple {
    border  : solid #000 1px;
    outline : 0
}

.select2-container--default.select2-container--disabled .select2-selection--multiple {
    background-color : #eee;
    cursor           : default
}

.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
    display : none
}

.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple, .select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
    border-top-left-radius  : 0;
    border-top-right-radius : 0
}

.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple, .select2-container--default.select2-container--open.select2-container--below .select2-selection--single {
    border-bottom-left-radius  : 0;
    border-bottom-right-radius : 0
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    border : 1px solid #aaa
}

.select2-container--default .select2-search--inline .select2-search__field {
    background         : 0 0;
    border             : none;
    outline            : 0;
    -webkit-box-shadow : none;
    box-shadow         : none;
    -webkit-appearance : textfield
}

.select2-container--default .select2-results > .select2-results__options {
    max-height : 200px;
    overflow-y : auto
}

.select2-container--default .select2-results__option[role=group] {
    padding : 0
}

.select2-container--default .select2-results__option[aria-disabled=true] {
    color : #999
}

.select2-container--default .select2-results__option[aria-selected=true], .select2-container--default .select2-results__option[data-selected=true] {
    background-color : #ddd
}

.select2-container--default .select2-results__option .select2-results__option {
    padding-left : 1em
}

.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
    padding-left : 0
}

.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
    margin-left  : -1em;
    padding-left : 2em
}

.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left  : -2em;
    padding-left : 3em
}

.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left  : -3em;
    padding-left : 4em
}

.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left  : -4em;
    padding-left : 5em
}

.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
    margin-left  : -5em;
    padding-left : 6em
}

.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] {
    background-color : #0073aa;
    color            : #fff
}

.select2-container--default .select2-results__group {
    cursor  : default;
    display : block;
    padding : 6px
}

.select2-container--classic .select2-selection--single {
    background-color  : #f7f7f7;
    border            : 1px solid #aaa;
    border-radius     : 4px;
    outline           : 0;
    background-image  : -webkit-gradient(linear, left top, left bottom, color-stop(50%, #fff), to(#eee));
    background-image  : -webkit-linear-gradient(top, #fff 50%, #eee 100%);
    background-image  : linear-gradient(to bottom, #fff 50%, #eee 100%);
    background-repeat : repeat-x
}

.select2-container--classic .select2-selection--single:focus {
    border : 1px solid #0073aa
}

.select2-container--classic .select2-selection--single .select2-selection__rendered {
    color       : #444;
    line-height : 28px
}

.select2-container--classic .select2-selection--single .select2-selection__clear {
    cursor       : pointer;
    float        : right;
    font-weight  : 700;
    margin-right : 10px
}

.select2-container--classic .select2-selection--single .select2-selection__placeholder {
    color : #999
}

.select2-container--classic .select2-selection--single .select2-selection__arrow {
    background-color           : #ddd;
    border                     : none;
    border-left                : 1px solid #aaa;
    border-top-right-radius    : 4px;
    border-bottom-right-radius : 4px;
    height                     : 26px;
    position                   : absolute;
    top                        : 1px;
    right                      : 1px;
    width                      : 20px;
    background-image           : -webkit-gradient(linear, left top, left bottom, color-stop(50%, #eee), to(#ccc));
    background-image           : -webkit-linear-gradient(top, #eee 50%, #ccc 100%);
    background-image           : linear-gradient(to bottom, #eee 50%, #ccc 100%);
    background-repeat          : repeat-x
}

.select2-container--classic .select2-selection--single .select2-selection__arrow b {
    border-color : #888 transparent transparent transparent;
    border-style : solid;
    border-width : 5px 4px 0 4px;
    height       : 0;
    left         : 50%;
    margin-left  : -4px;
    margin-top   : -2px;
    position     : absolute;
    top          : 50%;
    width        : 0
}

.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear {
    float : left
}

.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow {
    border                    : none;
    border-right              : 1px solid #aaa;
    border-radius             : 0;
    border-top-left-radius    : 4px;
    border-bottom-left-radius : 4px;
    left                      : 1px;
    right                     : auto
}

.select2-container--classic.select2-container--open .select2-selection--single {
    border : 1px solid #0073aa
}

.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
    background : 0 0;
    border     : none
}

.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color : transparent transparent #888 transparent;
    border-width : 0 4px 5px 4px
}

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
    border-top              : none;
    border-top-left-radius  : 0;
    border-top-right-radius : 0;
    background-image        : -webkit-gradient(linear, left top, left bottom, from(white), color-stop(50%, #eee));
    background-image        : -webkit-linear-gradient(top, #fff 0, #eee 50%);
    background-image        : linear-gradient(to bottom, #fff 0, #eee 50%);
    background-repeat       : repeat-x
}

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
    border-bottom              : none;
    border-bottom-left-radius  : 0;
    border-bottom-right-radius : 0;
    background-image           : -webkit-gradient(linear, left top, left bottom, color-stop(50%, #eee), to(white));
    background-image           : -webkit-linear-gradient(top, #eee 50%, #fff 100%);
    background-image           : linear-gradient(to bottom, #eee 50%, #fff 100%);
    background-repeat          : repeat-x
}

.select2-container--classic .select2-selection--multiple {
    background-color : #fff;
    border           : 1px solid #aaa;
    border-radius    : 4px;
    cursor           : text;
    outline          : 0
}

.select2-container--classic .select2-selection--multiple:focus {
    border : 1px solid #0073aa
}

.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
    list-style : none;
    margin     : 0;
    padding    : 0 5px
}

.select2-container--classic .select2-selection--multiple .select2-selection__clear {
    display : none
}

.select2-container--classic .select2-selection--multiple .select2-selection__choice {
    background-color : #e4e4e4;
    border           : 1px solid #aaa;
    border-radius    : 4px;
    cursor           : default;
    float            : left;
    margin-right     : 5px;
    margin-top       : 5px;
    padding          : 0 5px
}

.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
    color        : #888;
    cursor       : pointer;
    display      : inline-block;
    font-weight  : 700;
    margin-right : 2px
}

.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
    color : #555
}

.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice {
    float : right
}

.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice {
    margin-left  : 5px;
    margin-right : auto
}

.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove {
    margin-left  : 2px;
    margin-right : auto
}

.select2-container--classic.select2-container--open .select2-selection--multiple {
    border : 1px solid #0073aa
}

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
    border-top              : none;
    border-top-left-radius  : 0;
    border-top-right-radius : 0
}

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
    border-bottom              : none;
    border-bottom-left-radius  : 0;
    border-bottom-right-radius : 0
}

.select2-container--classic .select2-search--dropdown .select2-search__field {
    border  : 1px solid #aaa;
    outline : 0
}

.select2-container--classic .select2-search--inline .select2-search__field {
    outline            : 0;
    -webkit-box-shadow : none;
    box-shadow         : none
}

.select2-container--classic .select2-dropdown {
    background-color : #fff;
    border           : 1px solid transparent
}

.select2-container--classic .select2-dropdown--above {
    border-bottom : none
}

.select2-container--classic .select2-dropdown--below {
    border-top : none
}

.select2-container--classic .select2-results > .select2-results__options {
    max-height : 200px;
    overflow-y : auto
}

.select2-container--classic .select2-results__option[role=group] {
    padding : 0
}

.select2-container--classic .select2-results__option[aria-disabled=true] {
    color : grey
}

.select2-container--classic .select2-results__option--highlighted[aria-selected], .select2-container--classic .select2-results__option--highlighted[data-selected] {
    background-color : #3875d7;
    color            : #fff
}

.select2-container--classic .select2-results__group {
    cursor  : default;
    display : block;
    padding : 6px
}

.select2-container--classic.select2-container--open .select2-dropdown {
    border-color : #0073aa
}


.select2-drop, .select2-dropdown {
    z-index : 999999 !important
}

.select2-results {
    line-height : 1.5em
}

.select2-results .select2-results__group, .select2-results .select2-results__option {
    margin  : 0;
    padding : 8px
}

.select2-results .description {
    display     : block;
    color       : #999;
    padding-top : 4px
}

.select2-dropdown {
    border-color : #ddd
}

.select2-dropdown--below {
    -webkit-box-shadow : 0 1px 1px rgba(0, 0, 0, .1);
    box-shadow         : 0 1px 1px rgba(0, 0, 0, .1)
}

.select2-dropdown--above {
    -webkit-box-shadow : 0 -1px 1px rgba(0, 0, 0, .1);
    box-shadow         : 0 -1px 1px rgba(0, 0, 0, .1)
}

.select2-container .select2-selection__rendered.ui-sortable li {
    cursor : move
}

.select2-container .select2-selection {
    border-color : #ddd
}

.select2-container .select2-search__field {
    min-width : 150px
}

.select2-container .select2-selection--single {
    height : 32px
}

.select2-container .select2-selection--single .select2-selection__rendered {
    line-height   : 32px;
    padding-right : 24px
}

.select2-container .select2-selection--single .select2-selection__arrow {
    right  : 3px;
    height : 30px
}

.select2-container .select2-selection--multiple {
    min-height    : 28px;
    border-radius : 0;
    line-height   : 1.5
}

.select2-container .select2-selection--multiple li {
    margin : 0
}

.select2-container .select2-selection--multiple .select2-selection__choice {
    padding : 2px 6px
}

.select2-container .select2-selection--multiple .select2-selection__choice .description {
    display : none
}

.select2-container .select2-selection__clear {
    color      : #999;
    margin-top : -1px
}

.select2-container .select2-search--inline .select2-search__field {
    font-family : inherit;
    font-size   : inherit;
    font-weight : inherit;
    padding     : 3px 0
}plugin-fw/assets/css/yit-upgrade-to-pro.css000064400000003545151327614500014743 0ustar00/* === Upgrade to Premium Landing page === */

#upgrade-to-premium {
    width : 900px;
}

#upgrade-to-premium h1 {
    font-family    : 'Raleway', sans-serif;
    text-transform : uppercase;
    font-size      : 30px;
    font-weight    : 700;
    color          : #808a97;
}

#upgrade-to-premium h3 {
    font-family : 'Raleway', sans-serif;
    font-size   : 20px;
    line-height : 29px;
    font-weight : 700;
    color       : #808a97;
}

#upgrade-to-premium p {
    font-family : 'Open Sans', sans-serif;
    font-size   : 15px;
    line-height : 29px;
    font-weight : 400;
    color       : #6a6a6b;
}

#upgrade-to-premium p.highlighted {
    font-family : 'Raleway', sans-serif;
    font-size   : 20px;
    line-height : 27px;
    color       : #808a97;
    font-weight : 400;
}

#upgrade-to-premium ol {
    counter-reset   : item;
    list-style-type : none;
    margin-left     : 0;
}

#upgrade-to-premium li.step {
    font-family   : 'open sans', sans-serif;
    font-size     : 15px;
    color         : #6a6a6b;
    font-weight   : 400;
    position      : relative;
    padding-left  : 50px;
    line-height   : 25px;
    margin-bottom : 25px;
}

#upgrade-to-premium li.step:before {
    content           : counters(item, ".") " ";
    counter-increment : item;
    position          : absolute;
    left              : 0;
    top               : 0;
    border            : 1px solid #808a97;
    width             : 30px;
    height            : 30px;
    border-radius     : 16px;
    background-color  : #808a97;
    color             : #ffffff;
    font-weight       : 700;
    font-size         : 18px;
    text-align        : center;
    line-height       : 27px;
}

#upgrade-to-premium li.step img {
    border  : 1px solid #b8b8b8;
    width   : 600px;
    display : block;
    margin  : 15px 0 25px 0;
}

#cboxLoadedContent {
    margin-bottom : 60px !important;
}plugin-fw/assets/css/yith-fields.css000064400000174730151327614500013521 0ustar00.yith-plugin-fw span.description {
    display    : block;
    margin-top : 5px;
    font-size  : 12px;
    color      : #777;
    font-style : italic;
    clear      : both;
}

.yith-plugin-fw span.description.inline {
    display   : inline-block;
    margin    : 0 0 0 5px;
    min-width : 0;
    max-width : 100%;
}

.yith-disabled {
    opacity        : 0.3;
    pointer-events : none;
}

.yith-plugin-fw-field-wrapper:not(.yith-plugin-fw-title-field-wrapper) {
    display : block;
    width   : 100%;
}

.yith-plugin-fw-field-wrapper .yith-inline-fields > div {
    display        : inline-block;
    vertical-align : middle;
    margin-right   : 5px;
}

.yith-plugin-fw-field-wrapper span.desc {
    display : block;
    width   : 100%;
}

.yith-plugin-fw-title-field-wrapper h3.title {
    width   : 100%;
    padding : 0 !important;
}

.the-metabox .yith-plugin-fw-title-field-wrapper h3.title {
    float : left;
}

.yith-plugin-fw span.color-alpha {
    height : 100% !important;
    width  : 100% !important;
    border : 1px solid #d9d9d9;
    margin : -1px;
}

.yith-plugin-fw .wp-color-result-text {
    height : 100%;
}

.yith-plugin-fw input[type=email],
.yith-plugin-fw input[type=number],
.yith-plugin-fw input[type=text]:not(.select2-search__field),
.yith-plugin-fw select,
.woocommerce .yith-plugin-fw table.form-table input[type=email],
.woocommerce .yith-plugin-fw table.form-table input[type=number],
.yith-plugin-ui input[type=password],
.woocommerce .yith-plugin-fw table.form-table input[type=text]:not(.select2-search__field),
.woocommerce .yith-plugin-fw table.form-table select {
    width       : 400px;
    max-width   : 100%;
    height      : 30px;
    padding     : 5px;
    line-height : 1;
}

.yith-plugin-fw input[type=number],
.woocommerce .yith-plugin-fw table.form-table input[type=number] {
    width     : 70px;
    min-width : 70px;
}

.woocommerce .yith-plugin-fw table.form-table input[type=text].wp-color-picker,
.woocommerce .yith-plugin-fw table.form-table input[type=text].yith-plugin-fw-colorpicker,
.yith-plugin-fw input[type=text].wp-color-picker,
.yith-plugin-fw input[type=text].yith-plugin-fw-colorpicker {
    width     : 6em;
    max-width : none;
    height    : auto;
    padding   : 3px 5px;
}

.wp-core-ui .yith-plugin-fw-colorpicker-field-wrapper button {
    border-color : #7e8993;
}

.woocommerce .yith-plugin-fw table.form-table input[type=text].colorpick,
.yith-plugin-fw input[type=text].colorpick {
    width     : 6em;
    max-width : none;
    height    : auto;
    padding   : 6px;
}

.yith-plugin-fw input.select2-search__field,
.yith-plugin-fw .select2-container .select2-search--inline .select2-search__field,
.woocommerce .yith-plugin-fw input.select2-search__field,
.woocommerce .yith-plugin-fw table.form-table input.select2-search__field {
    padding   : 3px;
    min-width : 380px;
}

.yith-plugin-fw .select2-container .select2-selection--single .select2-selection__rendered {
    line-height : 27px;
}

.yith-plugin-fw textarea:not(.wp-editor-area) {
    width     : 400px;
    max-width : 100%;
    padding   : 5px;
}

/* ------------- ICONS ------------- */
.yit-icons-manager-wrapper {
    width     : 100%;
    max-width : 400px;
}

.yit-icons-manager-text {
    width : 100%;
}

.yit-icons-manager-icon-text {
    width  : calc(100% - 35px) !important;
    height : 30px;
    float  : left;
    margin : 0;
}

.yit-icons-manager-icon-preview {
    width        : 30px;
    height       : 30px;
    margin-right : 5px;
    float        : left;
    padding-top  : 6px;
    box-sizing   : border-box;
    text-align   : center;
    background   : #f1f1f1;
}

.yit-icons-manager-list-wrapper {
    margin     : 10px 0;
    box-shadow : 0 0 0 1px #ddd;
}

ul.yit-icons-manager-list {
    width      : 100%;
    height     : 300px;
    overflow-y : scroll;
    margin     : 0;
}

ul.yit-icons-manager-list li {
    float       : left;
    width       : 30px;
    height      : 30px;
    padding-top : 6px;
    box-sizing  : border-box;
    text-align  : center;
    background  : #f1f1f1;
    margin      : 1px;
    cursor      : pointer;
}

ul.yit-icons-manager-list li:hover {
    background : #c5dcf6;
}

ul.yit-icons-manager-list li.active {
    background : #d4f0ff;
}

.yit-icons-manager-action-set-default {
    margin-bottom : 0;
}

.yit-icons-manager-default-icon-preview {
    height       : 100%;
    display      : inline-block;
    padding-left : 10px;
    border-left  : 1px solid #ccc;
    margin-left  : 10px;
}

/* ------- Text Array ------- */
.yith-plugin-fw-text-array-table td {
    padding : 1px;
}

.yith-plugin-fw-text-array-table input[type=text],
.woocommerce table.form-table table.yith-plugin-fw-text-array-table input[type=text] {
    width : 100%;
}

/* ------- Image Gallery ------- */
.yith-plugin-fw .yith-plugin-fw-image-gallery ul li {
    display     : inline-block;
    width       : 80px;
    margin-left : 10px;
    position    : relative;
}

.yith-plugin-fw .yith-plugin-fw-image-gallery ul li img {
    width  : 80px;
    border : 1px solid #ccc;
}

.yith-plugin-fw .yith-plugin-fw-image-gallery ul li ul {
    position : absolute;
    top      : -6px;
    right    : -1px;
    width    : 20px;
    height   : 20px;
}

.yith-plugin-fw .yith-plugin-fw-image-gallery ul a.delete {
    background  : url(../images/x.png) no-repeat;
    width       : 20px;
    height      : 20px;
    display     : block;
    text-indent : -99999px;
}

/* ------- OnOff ------- */
.yith-plugin-fw-onoff-container {
    display    : inline-block;
    text-align : left;
}

.yith-plugin-fw-onoff-container input {
    display : none;
}

.yith-plugin-fw-onoff-container input + span {
    cursor        : pointer;
    text-indent   : -9999px;
    display       : block;
    width         : 36px;
    line-height   : 1;
    height        : 20px;
    background    : #a4a4a4;
    border-radius : 24px;
    position      : relative;
    transition    : all 0.3s;
}


.yith-plugin-fw-onoff-container input + span:before {
    content       : '';
    background    : #fff;
    width         : 16px;
    height        : 16px;
    border-radius : 50%;
    position      : absolute;
    top           : 2px;
    left          : 2px;
    transition    : all 0.3s;
}

.yith-plugin-fw-onoff-container input:checked + span,
.yith-plugin-fw-onoff-container input.onoffchecked + span {
    background : #0073aa;
}

.yith-plugin-fw-onoff-container input:checked + span:before,
.yith-plugin-fw-onoff-container input.onoffchecked + span:before {
    left : 18px;
}

/* ------- Preview ------- */
.yith-plugin-fw-preview-field {
    max-height : 200px;
}

/* ------- Radio ------- */
.yith-plugin-fw-radio input[type=radio] {
    margin : 0 3px 0 0;
}

.yith-plugin-fw-radio__row {
    margin-bottom : 8px;
}

/* ------- Checkbox Array ------- */
.yith-plugin-fw-checkbox-array input[type=checkbox] {
    margin : 2px 3px 0 0;
}

.yith-plugin-fw-checkbox-array__row {
    margin-bottom : 10px;
    display       : flex;
}

.yith-plugin-fw-checkbox-array__row label {
    display     : inline-block !important;
    width       : auto !important;
    float       : none !important;
    margin      : 0 0 0 10px !important;
    padding     : 0 !important;
    font-weight : 400 !important;
}

.yith-plugin-fw-checkbox-array__row label small {
    display     : block;
    line-height : 2em;
}

/* ------- Sidebar Layout ------- */
.yith-plugin-fw-sidebar-layout input[type="radio"] {
    display : none;
    width   : 0px;
}

.yith-plugin-fw-sidebar-layout input[type="radio"]:first-child {
    margin-right : -2px;
}

.yith-plugin-fw-sidebar-layout input[type="radio"] + img {
    border  : 2px solid #fff;
    padding : 1px;
}

.yith-plugin-fw-sidebar-layout input[type="radio"] + img:hover {
    cursor : pointer;
}

.yith-plugin-fw-sidebar-layout input[checked] + img {
    border  : 2px solid #f2ad35;
    padding : 1px;
}

.yith-plugin-fw-sidebar-layout select {
    vertical-align : 12px;
}

.yit-admin-panel-content-wrap .yith-plugin-fw-sidebar-layout label {
    font-weight : bold;
    width       : 200px;
    float       : left;
    line-height : 23px;
    margin-left : -230px;
}

/* ------- Slider ------- */
.yith-plugin-fw .slider {
    padding-top : 20px;
}

.yith-plugin-fw-slider-container .ui-slider .minCaption {
    position     : absolute;
    right        : 95%;
    top          : -6px;
    margin-right : 11px;
}

.yith-plugin-fw-slider-container .ui-slider .maxCaption {
    position    : absolute;
    left        : 95%;
    top         : -6px;
    margin-left : 20px;
}

.yith-plugin-fw-slider-container .ui-slider-horizontal .ui-slider-handle {
    background    : #fff;
    border        : 0px !important;
    top           : -12px !important;
    border-radius : 50%;
    width         : 27px !important;
    height        : 27px !important;
    box-sizing    : border-box;
    box-shadow    : 0 1px 7px -1px rgba(0, 0, 0, 0.5);
    font-size     : 13px;
    padding       : 6px 0;
    font-weight   : 600;
    color         : #555;
    text-align    : center;
}

.yith-plugin-fw-slider-container .ui-slider.ui-widget-content {
    background    : #ccc;
    border        : none !important;
    height        : 3px !important;
    border-radius : 3px !important;
    width         : 90%;
    margin        : 15px 5% 20px 5%;
}

.yith-plugin-fw-slider-container .ui-slider.ui-widget-content .ui-widget-header {
    background            : #4b93ff;
    left                  : 0px !important;
    -webkit-border-radius : 3px;
    -moz-border-radius    : 3px;
    -khtml-border-radius  : 3px;
    border-radius         : 3px;
}

/* ------- Select2 ------- */
.yith-plugin-fw-select2-wrapper {
    width : 400px;
}

/* ------- Textarea ------- */
.yith-plugin-fw-textarea-editor-field-wrapper {
    max-width : 1000px;
    clear     : both;
}

.yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area,
.woocommerce table.form-table .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area {
    width : 100%;
}

/* ------- Buttons ------- */
.yith-plugin-fw-buttons-field-wrapper {
    margin-top : 7px;
}

/* ------- Select Images ------- */
.yith-plugin-fw-select-images__list {
    margin    : 0;
    display   : flex;
    flex-wrap : wrap;
}

.yith-plugin-fw-select-images__item {
    width           : calc(20% - 10px);
    min-width       : 150px;
    margin          : 0 10px 10px 0;
    padding         : 10px;
    box-sizing      : border-box;
    cursor          : pointer;
    transition      : all .3s;
    border          : 2px solid #eee;
    display         : flex;
    flex-direction  : column;
    justify-content : space-between;
}

.yith-plugin-fw-select-images__item:hover,
.yith-plugin-fw-select-images__item.yith-plugin-fw-select-images__item--selected {
    border-color : #07bcce;
}

.yith-plugin-fw-select-images__item__label {
    text-align    : center;
    font-weight   : 600;
    margin-bottom : 10px;
}

.yith-plugin-fw-select-images__item img {
    display   : block;
    max-width : 100%;
    margin    : 0 auto;
}

/****************
WordPress 5.3 with old panel fixes
 ****************/
.yith-plugin-fw-field-wrapper .select2-container .select2-selection--single {
    height      : auto;
    line-height : 1;
}

.yith-plugin-fw-field-wrapper .select2-container .select2-selection--single .select2-selection__arrow {
    height : 100%;
}

/****************
YITH UI
 ****************/
.yith-plugin-fw-banner {
    width         : 100%;
    height        : 45px;
    background    : #cfd9dd url(../images/banner-premium.png) no-repeat;
    display       : flex;
    align-items   : center;
    padding-right : -23px;
}

.yith-plugin-fw-banner h1 {
    text-transform : uppercase;
    color          : #0c5777;
    font-size      : 15px;
    padding        : 0 0 0 110px;
    font-weight    : 700;
    text-align     : left;
    display        : inline-block;
    box-sizing     : border-box;
}

.yith-plugin-fw-banner span {
    font-style     : italic;
    display        : block;
    font-size      : 15px;
    color          : #214249;
    text-transform : none;
    text-align     : right;
}

.yith-plugin-fw-banner a,
.yith-plugin-fw-banner a:focus {
    text-decoration : none;
    outline         : none;
    box-shadow      : none;
}

.yith-plugin-fw-rate {
    margin : 20px 0;
}

.yith-plugin-fw-rate .dashicons-star-filled {
    font-size : 12px;
    margin    : 4px -4px;
    color     : #0c5777;
}

.yith-plugin-fw-rate a {
    text-decoration : none;
}

.yith-plugin-ui a {
    outline    : none;
    box-shadow : none;
}

.yith-plugin-ui {
    font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

.yith-plugin-ui #wpwrap h2.nav-tab-wrapper, .yith-plugin-ui #wpbody-content h2.nav-tab-wrapper {
    margin-top : 10px;
}

.yith-plugin-ui .nav-tab {
    background-color : #336374;
    color            : #fff;
    font-size        : 13px;
    padding          : 7px 15px;
    border           : 0;
    margin           : 0 4px 0 0;
    transition       : background-color 0.3s linear;
    float            : none;
    display          : inline-block;
}

.yith-plugin-ui .nav-tab.yith-premium {
    background-color : #be421c;
}

.yith-plugin-ui .yith-nav-tab-wrapper .yith-plugin-fw-tab-element:hover > a.nav-tab:not(.nav-tab-active),
.yith-plugin-ui .yith-nav-tab-wrapper .nav-tab:not(.nav-tab-active):hover {
    background-color : #207a92;
}

.yith-plugin-ui .yith-nav-tab-wrapper .yith-plugin-fw-tab-element:hover > a.nav-tab.yith-premium:not(.nav-tab-active),
.yith-plugin-ui .yith-nav-tab-wrapper .nav-tab.yith-premium:not(.nav-tab-active):hover {
    background-color : #d24318;
}

.yith-plugin-ui .nav-tab-active,
.yith-plugin-ui .nav-tab-active:hover,
.yith-plugin-ui .nav-tab-active:focus,
.yith-plugin-ui .nav-tab-active:focus:active {
    background-color : #fff;
    color            : #336374;
    box-shadow       : 0 3px 0 -1px #fff;
    border-bottom    : 0;
}

.yith-plugin-ui .nav-tab-active.yith-premium,
.yith-plugin-ui .nav-tab-active.yith-premium:hover,
.yith-plugin-ui .nav-tab-active.yith-premium:focus,
.yith-plugin-ui .nav-tab-active.yith-premium:focus:active {
    background-color : #fff;
    color            : #be421c;
    box-shadow       : none;
}

.yith-plugin-ui .yith-plugin-fw-tab-element:first-child .nav-tab-active {
    border-left : 1px solid #ddd;
}

.yith-plugin-ui #plugin-fw-wc {
    padding-top : 0px;
}

.yith-plugin-ui .form-table td {
    padding : 15px 20px;
}

.yith-plugin-ui.metaboxes-tab label {
    color       : #33373b;
    font-size   : 14px;
    margin-left : -248px;
}

.yith-plugin-ui.metaboxes-tab .the-metabox {
    margin      : 40px 0 40px 290px;
    margin-left : 264px;
}

.yith-plugin-ui.metaboxes-tab label {
    width       : 200px;
    font-weight : 600;
}

.yith-plugin-ui span.description {
    color       : #716269;
    font-size   : 13px;
    font-style  : normal;
    font-weight : 400;
    margin-top  : 15px;
    margin-left : 0;
}

#wpwrap .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-ui h2.nav-tab-wrapper {
    border           : 0;
    border-bottom    : 1px solid #ddd;
    margin-right     : 15px;
    margin-bottom    : 0;
    background-color : transparent;
    padding-left     : 0;
}

.yith-plugin-ui #plugin-fw-wc table.form-table,
.yith-plugin-ui #yith-plugin-fw-panel table.form-table,
.yith-plugin-ui table.form-table {
    border        : 1px solid #d8d8d8;
    border-top    : 0;
    margin-bottom : 40px;
}

.yith-plugin-ui #wpwrap h2.nav-tab-wrapper, .yith-plugin-ui #wpbody-content h2.nav-tab-wrapper {
    background-color : transparent;
    border           : 0;
    text-transform   : none;
    border-bottom    : 1px solid #ddd;
}

.yith-plugin-ui h2 {
    color            : #2a8db0;
    font-size        : 16px;
    border           : 1px solid #d8d8d8;
    border-bottom    : 0;
    background-color : #fff;
    padding          : 35px 20px;
    margin           : 0px;
}

.yith-plugin-ui .yith-plugin-fw-custom-tab h2 {
    border       : 0px solid #d8d8d8;
    padding-left : 0;
}

.yith-plugin-ui #plugin-fw-wc table.form-table th, #yith-plugin-fw-panel table.form-table th.titledesc, .yith-plugin-ui #plugin-fw-wc table.form-table td, #yith-plugin-fw-panel table.form-table td.forminp {
    padding : 30px 20px;
}

.yith-plugin-ui #plugin-fw-wc table.form-table tr.toggle-element-fixed td, #yith-plugin-fw-panel table.form-table tr.toggle-element-fixed td.forminp {
    padding : 0 20px 30px;
}

.yith-plugin-ui #plugin-fw-wc h2 + div {
    background     : #fff;
    border-left    : 1px solid #d9d9d9;
    border-right   : 1px solid #d9d9d9;
    margin         : -20px 0 0 0;
    padding-left   : 20px;
    padding-bottom : 5px;
}

.yith-plugin-ui #plugin-fw-wc h2 + div p, .yith-plugin-ui p.info-box {
    background    : #f1f1f1;
    font-size     : 14px;
    font-weight   : 700;
    width         : 50%;
    display       : block;
    padding       : 15px;
    margin-bottom : 0;
}

.yith-plugin-ui #plugin-fw-wc h2 + div p:before, .yith-plugin-ui p.info-box:before {
    content      : "\e90e";
    font-family  : yith-icon;
    font-size    : 30px;
    font-weight  : normal;
    display      : block;
    margin-top   : -12px;
    float        : left;
    margin-right : 15px;
}

.yith-plugin-ui h2:first-child {
    border-top : 0;
}

/*** Icon ***/
.yith-plugin-ui .yith-icon--right-overlay {
    position    : relative;
    left        : -33px;
    line-height : 36px;
    width       : 0;
}

/*** General Input Style ***/

.yith-plugin-ui .yith-plugin-fw select,
.yith-plugin-ui textarea:not(.wp-editor-area),
.yith-plugin-ui input[type=number],
.yith-plugin-ui.metaboxes-tab input[type=number],
.yith-plugin-ui input[type=text],
.yith-plugin-ui input[type=email],
.yith-plugin-ui input[type=password],
.yith-plugin-ui .search-box input[name="s"],
.yith-plugin-fw.yith-plugin-ui input[type=text]:not(.select2-search__field),
.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text],
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field),
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area),
.woocommerce .yith-plugin-fw table.form-table input[type=password],
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number],
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text] {
    border        : 1px solid #d8d8d8;
    border-radius : 8px;
    padding       : 8px 10px;
    height        : 38px;
    min-width     : 90px;
    box-shadow    : none;
    color         : #716269;
}


.yith-plugin-ui input::-webkit-input-placeholder {
    color : #999999;
}

.yith-plugin-ui input:-ms-input-placeholder {
    color : #999999;
}

.yith-plugin-ui input::-ms-input-placeholder {
    color : #999999;
}

.yith-plugin-ui input::placeholder {
    color : #999999;
}

.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number] {
    min-width : 70px;
}

.yith-plugin-ui textarea:not(.wp-editor-area),
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area) {
    height  : auto;
    padding : 8px;
}

.yith-plugin-ui input[type=text]:not(.select2-search__field).wp-color-picker,
.yith-plugin-ui table.form-table input[type=text].wp-color-picker,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].wp-color-picker {
    border    : 0;
    height    : 30px;
    max-width : 121px;
    font-size : 11px;
    padding   : 0;
}

.yith-plugin-ui .search-box input[name="s"] {
    height : 35px;
}

.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].small-text,
.yith-plugin-ui input[type=text].small-text {
    width  : 100px;
    height : 25px;
    border : 1px solid #d9d9d9;
}


.yith-plugin-ui select:focus,
.yith-plugin-ui .yith-plugin-fw select:focus,
.woocommerce .yith-plugin-ui table.form-table select:focus,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select:focus,
.yith-plugin-ui input[type=text]:not(.select2-search__field):focus,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field):focus,
.yith-plugin-ui input[type=number]:focus,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number]:focus,
.yith-plugin-ui textarea:not(.wp-editor-area):focus,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area):focus {
    border-color : #a7d9ec;
}

.woocommerce .yith-plugin-ui table.form-table select,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
.yith-plugin-ui select {
    -webkit-appearance : none;
    line-height        : 1.2em;
    min-height         : 35px;
    background         : #fff url("../images/arrow_down.svg") no-repeat right center;
    background-size    : 35px 13px;
    border-radius      : 8px;
    padding-right      : 30px;
}

.yith-plugin-ui .form-table th {
    width         : 200px;
    padding-right : 50px;
}

/** SELECT 2 **/
.yith-plugin-ui .select2-container,
.yith-plugin-ui .select2-selection--single {
    height  : auto;
    padding : 2px;
    outline : none;
}

.yith-plugin-ui .select2-container .select2-selection--single,
.yith-plugin-ui .select2-container .select2-selection--multiple,
.yith-plugin-ui .select2-container.select2-container--focus .select2-selection--single,
.yith-plugin-ui .select2-container.select2-container--focus .select2-selection--multiple,
.yith-plugin-ui .select2-container.select2-container--open .select2-selection--single,
.yith-plugin-ui .select2-container.select2-container--open .select2-selection--multiple {
    margin     : 0;
    border     : 0;
    box-shadow : none !important;
}

.yith-plugin-ui .select2-container .select2-selection--single .select2-selection__arrow {
    background : none;
}

/* old panel*/

.yith-plugin-fw-select2-container {
    z-index : 9999;
}

.yith-plugin-ui span.select2.select2-container.select2-container--default,
span.select2.select2-container.select2-container--default.yith-plugin-fw-select2-container {
    border        : 1px solid #d8d8d8;
    border-radius : 8px;
}

.yith-plugin-ui span.select2.select2-container.select2-container--default:hover,
.yith-plugin-ui span.select2.select2-container.select2-container--default:active,
.yith-plugin-ui span.select2.select2-container.select2-container--default:focus {
    border-color : #a7d9ec;
}

.yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color : #fff;
}

.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].select2-search__field,
.yith-plugin-ui .yith-plugin-fw table.form-table input.select2-search__field {
    border    : 0;
    padding   : 0;
    height    : initial;
    min-width : 380px;
}

.yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice,
.yith-plugin-ui .select2-selection__choice {
    color            : #fff;
    background-color : #4e8ba2;
    border-radius    : 12px;
    padding          : 3px 11px;
    border-color     : #4e8ba2;
    font-size        : 13px;
}

.wc-wp-version-gte-53 .yith-plugin-ui .select2-container .select2-selection--single .select2-selection__arrow {
    background-image : none;
}

.yith-plugin-ui .select2-container--default .select2-selection--single .select2-selection__arrow:before {
    content     : "\e900";
    font-family : 'yith-icon' !important;
    line-height : 36px;
    color       : #d9d9d9;
}

.yith-plugin-ui .select2-container--default .select2-selection--single .select2-selection__arrow b {
    display : none;
}

.yith-plugin-fw-select2-container.select2-container--open .select2-dropdown:after {
    display : none;
}

.yith-plugin-fw-select2-container.select2-container--open .select2-dropdown--below,
.yith-plugin-fw-select2-container.select2-container--open .select2-dropdown--above {
    margin-top    : 10px;
    border-radius : 8px;
    box-shadow    : 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !important;
    border        : 0;
}

.yith-plugin-fw-select2-container.select2-container--open .select2-dropdown--above {
    margin-top : -10px;
}

.yith-plugin-fw-select2-container.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,
.yith-plugin-fw-select2-container.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
    border-radius : 8px;
}

.yith-plugin-fw-select2-container .select2-results .select2-results__group, .select2-results .select2-results__option:first-child {
    border-top-left-radius  : 8px;
    border-top-right-radius : 8px;
}

.yith-plugin-fw-select2-container .select2-results .select2-results__group,
.yith-plugin-fw-select2-container .select2-results .select2-results__option:last-child {
    border-bottom-left-radius  : 8px;
    border-bottom-right-radius : 8px;
}

.yith-plugin-fw-select2-container .select2-dropdown {
    border : 0;
}

.yith-plugin-fw-select2-container.select2-container--default .select2-results__option[data-selected=true] {
    background-color : #fff;
    outline          : none;
}

.yith-plugin-fw-select2-container.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color : #e8eff1;
    color            : #4e8ba2;
    outline          : none;
}

.yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove,
.yith-plugin-fw-panel .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    float        : right;
    padding-left : 15px;
    text-indent  : -9999px;
}

.yith-plugin-fw-panel .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after,
.yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
    float       : right;
    color       : #fff;
    content     : "\e906";
    font-family : 'yith-icon' !important;
    font-size   : 9px;
    line-height : 21px;
    text-indent : 0;
}

.yith-plugin-ui .select2-container .select2-selection--multiple,
.yith-plugin-ui .select2-container--default.select2-container--focus .select2-selection--multiple,
.wc-wp-version-gte-53 .yith-plugin-ui .select2-container.select2-container--open .select2-selection--multiple {
    border     : 0;
    box-shadow : none;
}

.yith-plugin-fw .select2-search input[type=text] {
    border  : 0;
    padding : 0;
    height  : auto;
}

.yith-plugin-ui .yith-plugin-fw-select-field-wrapper span.yith-icon.yith-icon-magnifier,
.yith-plugin-fw-panel .yith-plugin-fw-select-field-wrapper span.yith-icon.yith-icon-magnifier {
    position    : absolute;
    padding-top : 5px;
}

.yith-plugin-ui input[type=text].select2-search__field {
    border  : 0;
    padding : 0;
    height  : 30px;
}

.yith-plugin-ui .select2-container--default .select2-search--dropdown .select2-search__field,
.yith-plugin-fw-panel .select2-container--default .select2-search--dropdown .select2-search__field {
    border        : 1px solid #d9d9d9;
    border-radius : 8px;
    box-shadow    : none;
}

.yith-plugin-ui .select2-dropdown,
.yith-plugin-fw-panel .select2-dropdown {
    border : 1px solid #d9d9d9;
}

/** RADIO BUTTON **/
.yith-plugin-ui [type="radio"]:checked,
.yith-plugin-ui [type="radio"]:not(:checked) {
    position : absolute;
    left     : -9999px;
}

.yith-plugin-ui [type="radio"]:checked + label,
.yith-plugin-ui [type="radio"]:not(:checked) + label {
    position     : relative;
    padding-left : 35px;
    cursor       : pointer;
    line-height  : 20px;
    display      : inline-block;
    color        : #716269;
    font-size    : 14px;
}

.yith-plugin-ui [type="radio"]:checked + label:before,
.yith-plugin-ui [type="radio"]:not(:checked) + label:before {
    content       : '';
    position      : absolute;
    left          : 0;
    top           : 0;
    width         : 19px;
    height        : 19px;
    border        : 1px solid #d8d8d8;
    border-radius : 100%;
    background    : #fff;
}

.yith-plugin-ui [type="radio"]:checked + label:after,
.yith-plugin-ui [type="radio"]:not(:checked) + label:after {
    content            : '';
    width              : 13px;
    height             : 13px;
    background         : #4e8ba2;
    position           : absolute;
    top                : 4px;
    left               : 4px;
    border-radius      : 100%;
    -webkit-transition : all 0.2s ease;
    transition         : all 0.2s ease;
}

.yith-plugin-ui [type="radio"]:not(:checked) + label:after {
    opacity           : 0;
    -webkit-transform : scale(0);
    transform         : scale(0);
}

.yith-plugin-ui [type="radio"]:checked + label:after {
    opacity           : 1;
    -webkit-transform : scale(1);
    transform         : scale(1);
}

/** CHECKBOX **/
.yith-plugin-ui input[type="checkbox"] {
    -webkit-appearance : none;
    background-color   : #fff;
    border             : 1px solid #d8d8d8;
    box-shadow         : none;
    width              : 18px;
    height             : 18px;
    border-radius      : 3px;
    display            : inline-block;
    position           : relative;
}

.yith-plugin-ui input[type="checkbox"]:checked {
    background-color : #4e8ba2;
    border-color     : #488197;
}

.yith-plugin-ui .forminp-checkbox span.description.inline {
    margin-left : 10px;
}

.yith-plugin-ui input[type="checkbox"]:checked:before {
    display : none;
}

.yith-plugin-ui input[type="checkbox"]:checked:after {
    content     : "\e905";
    font-family : 'yith-icon';
    font-size   : 10px;
    position    : absolute;
    font-weight : 600;
    top         : 8px;
    left        : 3px;
    color       : #fff;
}

/** ONOFF **/
.yith-plugin-ui .yith-plugin-fw-onoff-container input[type="checkbox"] {
    display : none;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
    border           : 1px solid #d8d8d8;
    background-color : #fff;
    width            : 60px;
    height           : 24px;
    line-height      : 14px;
    padding          : 4px;
    box-sizing       : border-box;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
    background-color : #d8d8d8;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
    width            : 13px;
    height           : 13px;
    top              : 5px;
    left             : 6px;
    background-color : #d8d8d8;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input + span:after {
    content      : attr(data-text-off);
    height       : 14px;
    font-size    : 12px;
    font-weight  : 600;
    padding-left : 18px;
    color        : #979797;
    display      : block;
    white-space  : nowrap;
    text-align   : center;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span,
.yith-plugin-ui .yith-plugin-fw-onoff-container input.onoffchecked + span {
    background-color : #fff;
    border-color     : #98aa36;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:before,
.yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:before {
    background-color : #98aa36;
    left             : 38px;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after,
.yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:after {
    content       : attr(data-text-on);
    color         : #98aa36;
    height        : 14px;
    font-size     : 12px;
    font-weight   : 600;
    padding-left  : 0;
    padding-right : 18px;
    display       : block;
    white-space   : nowrap;
    text-align    : center;
}

.yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
    text-indent : 0;
}


/**
DATEPICKER
 */
.yith-plugin-ui .yith-plugin-fw-datepicker + .yith-icon-calendar,
.yith-plugin-fw-datepicker + .yith-icon-calendar {
    color     : #ccc;
    font-size : 18px;
}

div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
    border     : 0;
    box-shadow : 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !important;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-header.ui-widget-header {
    background  : #4e8ba2;
    color       : #fff;
    font-size   : 11px;
    line-height : 25px;
    border      : 0;
    min-height  : 25px;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-title {
    line-height : 25px;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker th {
    color : #716269;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-icon,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-hover,
#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-prev,
#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-next,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-w,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-e {
    background  : none;
    content     : "";
    border      : 0;
    text-indent : 0;
    width       : 15px;
    height      : 20px;
    display     : block;
    overflow    : hidden;
}

.yith-plugin-ui .yith-password-wrapper {
    display  : inline-block;
    width    : auto;
    position : relative;
}

.yith-plugin-ui .yith-password-wrapper .yith-password-eye-closed:before,
.yith-plugin-ui .yith-password-wrapper .yith-password-eye:before {
    content     : '\e911';
    color       : #999;
    font-family : 'yith-icon';
    font-size   : 20px;
    font-weight : normal;
    width       : 15px;
    display     : block;
    position    : absolute;
    right       : 13px;
    top         : 0;
    line-height : 38px;
    bottom      : 0;
    cursor      : pointer;
}

.yith-plugin-ui .yith-password-wrapper .yith-password-eye-closed:before {
    content : '\e912';
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-w:before {
    content     : "\e901";
    color       : #fff;
    font-family : 'yith-icon';
    font-size   : 12px;
    font-weight : normal;
    width       : 15px;
    display     : block;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-e:before {
    content     : "\e902";
    color       : #fff;
    text-indent : 0;
    font-family : 'yith-icon';
    font-size   : 12px;
    font-weight : normal;
    width       : 15px;
    display     : block;
}

/* arrow */
#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-prev,
#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-next,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-prev-hover,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-next-hover {
    top    : 1px;
    cursor : pointer;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-prev,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-prev-hover {
    left : 5px;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-next,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-next.ui-datepicker-next-hover {
    right : 1px;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker table {
    font-size : 10px;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-state-default,
#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-widget-content .ui-state-default,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-default {
    background : #fff;
    border     : 1px solid #d9d9d9;

}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-state-hover,
#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-widget-content .ui-state-hover,
#ui-datepicker-div.yith-plugin-fw-datepicker-div a.ui-state-default:focus,
#ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-widget-content .ui-state-focus,
#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-focus {
    background : #ebf1f3;
    border     : 1px solid #bfd5dd;
    outline    : none;
    box-shadow : none;
}

#ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-hover,
.woocommerce #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-state-focus {
    background : none;
    border     : 0;
}

/** colorpicker **/
.yith-plugin-ui .iris-slider-offset.ui-slider.ui-widget-content {
    background : transparent !important;
    height     : auto !important;
}

.yith-plugin-ui .yith-plugin-fw-field-wrapper .yith-colorpicker-group:not(:first-child) {
    margin-top : 20px;
}

.yith-plugin-ui .yith-plugin-fw-field-wrapper .iris-picker,
.yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-holder {
    display : none !important;
}

.yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-input-wrap,
.yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-input-wrap > * {
    display        : inline-block !important;
    vertical-align : middle;
}

.yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-active .iris-picker,
.yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-active .wp-picker-holder {
    display : block !important;
}

.woocommerce .yith-plugin-ui .wp-picker-container .iris-picker, .yith-plugin-ui .wp-picker-container .iris-picker {
    z-index       : 100;
    position      : absolute;
    margin-top    : 20px;
    border        : 1px solid #d8d8d8;
    border-radius : 4px;
    box-shadow    : 0 1px 3px rgba(0, 0, 0, .2);
}

.yith-plugin-ui .yith-plugin-fw input[type=text].wp-color-picker {
    border  : 0;
    padding : 2px 5px;
    height  : 30px;
}

.yith-plugin-ui .wp-color-result-text {
    display : none;
}

.yith-plugin-ui .wp-picker-container .wp-color-result.button {
    width          : 30px;
    height         : 30px;
    box-shadow     : none;
    border         : 1px solid #d9d9d9;
    margin-bottom  : 0;
    padding        : 0;
    display        : inline-block;
    vertical-align : middle;
    box-sizing     : content-box;
}

.yith-plugin-ui .wp-picker-default-custom {
    cursor         : pointer;
    width          : 25px;
    padding        : 0 5px;
    display        : inline-block;
    vertical-align : middle;
    position       : relative;
}

.yith-plugin-ui .wp-picker-default-custom input.button {
    opacity  : 0;
    margin   : 0;
    padding  : 0;
    position : absolute;
    top      : 0;
    right    : 0;
    left     : 0;
    bottom   : 0;
    z-index  : 2;
}

.yith-plugin-ui .wp-picker-default-custom:before {
    content     : "\e91a";
    text-indent : 0;
    font-family : 'yith-icon';
    font-size   : 16px;
    color       : #d8d8d8;
    font-weight : normal;
    width       : 15px;
    display     : block;
    background  : none;
    line-height : 20px;
    margin-left : 8px;
}

.yith-plugin-ui .wp-picker-container {
    width         : auto;
    display       : inline-block;
    border        : 1px solid #d9d9d9;
    border-radius : 8px;
    padding       : 5px;
}

.yith-plugin-ui .iris-picker .iris-square-inner {
    box-shadow : 0 0 0 1px #d9d9d9 inset;
}

.yith-plugin-ui .iris-picker .iris-square-value {
    width      : 0;
    height     : 0;
    background : transparent;
    border     : 0;
}

.yith-plugin-ui .yith-single-colorpicker {
    display       : inline-block;
    width         : 220px;
    margin-bottom : 10px;
}

.yith-plugin-ui .yith-single-colorpicker > label {
    display        : block;
    font-size      : 11px;
    font-weight    : 600;
    margin         : 0 0 10px 0;
    text-transform : uppercase;
}

.yith-plugin-ui .the-metabox.multi-colorpicker span.description,
.yith-plugin-ui .yith-plugin-fw-panel-wc-row.multi-colorpicker span.description,
.yith-plugin-ui .yith-plugin-fw-multi-colorpicker-field-wrapper span.description {
    margin-top : 0;
}

/* RANGE SLIDER */
.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider-horizontal .ui-slider-handle {
    top : -45px !important;
}

.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider-horizontal .ui-slider-handle {
    position           : absolute;
    top                : -33px;
    left               : 0;
    width              : auto !important;
    height             : auto !important;
    padding            : 2px 8px;
    margin-left        : -15px;
    font-size          : 12px;
    line-height        : 20px;
    color              : #4e8ba2;
    text-align         : center;
    background-color   : #fff;
    border             : 1px solid #fff;
    border-radius      : 3px;
    -webkit-transition : opacity .3s ease-in-out 0s;
    transition         : opacity .3s ease-in-out 0s;
    box-shadow         : 0px 1px 7px 0px rgba(1, 1, 1, 0.13);
}

.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider-horizontal .ui-slider-handle:before {
    position          : absolute;
    bottom            : -3px;
    left              : 50%;
    display           : inline-block;
    width             : 6px;
    height            : 6px;
    margin-left       : -3px;
    content           : "";
    background-color  : #fff;
    -webkit-transform : rotate(-45deg);
    -ms-transform     : rotate(-45deg);
    transform         : rotate(-45deg);
}

.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider.ui-widget-content .ui-widget-header {
    background : #4e8ba2;
}

.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider-horizontal .ui-slider-handle:after {
    content       : '';
    width         : 17px;
    height        : 17px;
    display       : block;
    position      : absolute;
    background    : #fff;
    top           : 37px;
    border-radius : 50%;
    box-shadow    : 0px 1px 6px 0px rgba(1, 1, 1, 0.25);
    cursor        : grab;
}

.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider-horizontal .ui-slider-handle:active:after {
    cursor : grabbing;
}

.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider.ui-widget-content {
    height : 5px !important;
}

.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider .minCaption,
.yith-plugin-ui .yith-plugin-fw-slider-container .ui-slider .maxCaption {
    font-weight : 700;
    font-size   : 12px;
}


/* ADD_BOX AND TOGGLE */
.yith-plugin-ui .yith-add-box,
.yith-plugin-ui .yith-toggle-row {
    width         : 70%;
    border        : 1px solid #d9d9d9;
    box-shadow    : none;
    border-radius : 4px;
    margin        : 20px 0;
    padding       : 10px;
    box-sizing    : border-box;
    background    : white;
}

.yith-plugin-ui .yith-toggle-row {
    cursor     : pointer;
    transition : all ease 0.5s;
}

.yith-plugin-ui .yith-toggle-row.fixed {
    margin : 0;
}

.yith-plugin-ui .yith-toggle-row.highlight {
    transition : all ease 0.5s;
    /*box-shadow: 0 0 7px rgb(81, 117, 129);*/
    box-shadow : 0 0 7px rgb(30, 140, 190);

    display    : block;
}

.yith-plugin-ui .yith-add-box {
    padding : 25px;
    display : none;
}

.yith-plugin-ui .yith-toggle-title {
    position : relative;
}

.yith-plugin-ui #plugin-fw-wc .yith-toggle-title h3,
.yith-plugin-ui.metaboxes-tab h3,
.yith-plugin-ui .yith-toggle-title h3,
.metaboxes-tab.yith-plugin-ui .yith-toggle-title h3 {
    padding        : 0px 20px 0px 30px;
    margin         : 3px 0;
    display        : inline-block;
    position       : relative;
    min-width      : 173px;
    box-sizing     : border-box;
    font-weight    : 600;
    font-size      : 15px;
    color          : #23282d;
    text-transform : inherit;
}

.yith-plugin-ui .yith-toggle-title .subtitle {
    padding-left : 0;
    padding-top  : 8px;
    font-size    : 12px;
}

.yith-plugin-ui .yith-toggle {
    position        : absolute;
    width           : 25px;
    cursor          : pointer;
    left            : 0;
    top             : 0;
    bottom          : 0;
    margin          : auto;
    display         : flex;
    align-items     : center;
    box-sizing      : border-box;
    align-items     : center;
    justify-content : center;
}

.yith-plugin-ui .yith-toggle > span:before {
    color : #405e69;
}

.yith-plugin-ui .yith-toggle > span {
    position    : absolute;
    /* right       : 50%; */
    transition  : transform .3s;
    line-height : 1;
    font-size   : 13px;
    font-weight : 600;
}


.yith-plugin-ui .yith-toggle-row-opened .yith-toggle span {
    transform : rotateZ(90deg);
}

.yith-plugin-ui .yith-toggle-content {
    display  : none;
    position : relative;
    padding  : 30px 25px;
}

.yith-plugin-ui .yith-toggle-row-opened .yith-toggle-content {
    /*  display: block;*/
}

.yith-plugin-ui .yith-add-box-row,
.yith-plugin-ui .yith-toggle-content .yith-toggle-content-row {
    display       : table;
    margin-bottom : 40px;
}

.yith-plugin-ui .yith-add-box-row > label,
.yith-plugin-ui .yith-toggle-content .yith-toggle-content-row > label {
    display        : table-cell;
    min-width      : 180px;
    padding-right  : 20px;
    color          : #33373b;
    font-size      : 14px;
    vertical-align : top;
    font-weight    : 600;
}

.yith-plugin-ui .yith-add-box-row .yith-plugin-fw-field-wrapper:not(.yith-plugin-fw-title-field-wrapper),
.yith-plugin-ui .yith-plugin-fw-field-wrapper:not(.yith-plugin-fw-title-field-wrapper) {
    /* display: table-cell;*/
    width          : auto;
    float          : none;
    vertical-align : middle;
    position       : relative;
}

.yith-plugin-ui .yith-add-box-row span.yith-icon,
.yith-plugin-ui .yith-toggle-content .yith-toggle-content-row span.yith-icon {
    position : absolute;
    right    : 15px;
    top      : 0;
    bottom   : 0;
}

.yith-plugin-ui .yith-add-box-buttons,
.yith-plugin-ui .yith-toggle-content-buttons {
    text-align : right;
}

.yith-plugin-ui .yith-toggle-onoff {
    position : absolute;
    cursor   : pointer;
    right    : 0;
}

.yith-plugin-ui .yith-toggle_wrapper.ui-sortable .yith-toggle-onoff {
    right : 30px;
}

.yith-plugin-ui .yith-toggle-row .yith-icon-drag {
    position  : absolute;
    right     : 2px;
    top       : 50%;
    transform : translateY(-50%);
    font-size : 18px;
}

.yith-plugin-ui .yith-toggle-row.with-subtitle .yith-toggle-onoff {
    top : 25%;
}

/** SPINNER **/
.yith-plugin-ui .spinner {
    vertical-align : -5px;
    float          : none;
}

.yith-plugin-ui .spinner.show {
    visibility : visible;
}

/* LIST TABLE */
.yith-plugin-ui .form-table .list-table td {
    padding : 15px 0px;
}

.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table .bulkactions select {
    border     : 1px solid #d8d8d8;
    max-width  : 200px;
    max-height : 30px;
    padding    : 0 10px;
}

.yith-plugin-ui .form-table .list-table th {
    width : initial;
}

.yith-plugin-ui #plugin-fw-wc table.form-table th.check-column {
    padding-left : 3px;
}

.yith-plugin-ui #plugin-fw-wc table.wp-list-table tbody td {
    padding-left : 20px;
}

.yith-plugin-ui #plugin-fw-wc table.wp-list-table th,
.yith-plugin-ui #plugin-fw-wc table.wp-list-table td {
    padding : 15px 20px 15px 20px;
}

.yith-plugin-ui #plugin-fw-wc table.wp-list-table thead td,
.yith-plugin-ui #plugin-fw-wc table.wp-list-table thead th,
.yith-plugin-ui #plugin-fw-wc table.wp-list-table tfoot td,
.yith-plugin-ui #plugin-fw-wc table.wp-list-table tfoot th {
    padding : 3px 20px;
}

.yith-plugin-ui #plugin-fw-wc table.wp-list-table thead a,
.yith-plugin-ui #plugin-fw-wc table.wp-list-table tfoot a {
    padding-left : 0;
}

.yith-plugin-ui .yith-plugin-fw-list-table .list-table-title {
    margin-bottom : 20px;
    line-height   : 1.2;
}

.yith-plugin-ui .yith-plugin-fw-list-table .list-table-title > * {
    vertical-align : middle;
}

.yith-plugin-ui .yith-plugin-fw-list-table h2 {
    border       : 0;
    padding      : 0;
    display      : inline-block;
    margin-right : 10px;
    line-height  : inherit;
}

.yith-plugin-ui .form-table .yith-plugin-fw-list-table table th {
    vertical-align : middle;
}

.yith-plugin-ui #doaction, .yith-plugin-ui #doaction2,
.yith-plugin-ui #post-query-submit,
.yith-plugin-ui #search-submit,
.yith-plugin-ui .button.filter-button {
    line-height : 33px;
}

.yith-plugin-ui .tablenav {
    margin : 20px 0;
}

.yith-plugin-ui .form-table td p.yith-section-description {
    color         : #716269;
    margin-bottom : 20px;
}

/** Time picker width*/
.yith-plugin-ui input.ui-timepicker-input {
    width : 100px !important;
}

/** date format **/
.yith-plugin-ui .yith-plugin-fw-date-format code {
    margin-left : 30px;
}

.yith-plugin-ui .yith-plugin-fw-date-format input[type=text].small-text {
    margin-left : 45px;
}

/** checkbox columns **/
.yith-plugin-ui td.forminp-checkbox.two-cols fieldset {
    width         : calc(50% - 20px);
    padding-right : 20px;
    float         : left;
}

.yith-plugin-ui td.forminp-checkbox.two-cols fieldset:nth-child(2n+1) {
    clear : both;
}

.yith-plugin-ui td.forminp-checkbox.three-cols fieldset {
    width         : calc(33% - 10px);
    padding-right : 10px;
    float         : left;
}

.yith-plugin-ui td.forminp-checkbox.three-cols fieldset:nth-child(3n+1) {
    clear : both;
}

.yith-plugin-fw-checkbox-field-wrapper {
    display      : inline-block !important;
    margin-right : 10px;
}

.yith-plugin-fw-checkbox-field-wrapper + span.description {
    display        : inline-block;
    vertical-align : middle;
    margin         : 0;
}

.yith-plugin-ui span.description {
    margin-top  : 10px;
    line-height : 20px;
    max-width   : 40%;
    min-width   : min(100%, 360px);
}

.yith-plugin-fw-option-with-description {
    display        : table-cell;
    width          : 90%;
    vertical-align : top;
}


/**
 * Required
 */
.yith-plugin-fw-panel-wc-row.yith-plugin-fw--required th.titledesc > label:after,
.yith-plugin-fw-metabox-field-row.yith-plugin-fw--required label:first-child:after,
.yith-plugin-fw-toggle-element-field-wrapper .yith-plugin-fw--required > label:first-child:after {
    content     : '*';
    color       : #ea0034;
    font-weight : 800;
    margin-left : 4px;
}

/** YITH PANEL **/
.yith-plugin-ui #yith-plugin-fw-panel {
    margin-top : -10px;
}

.yith-plugin-ui #plugin-fw-wc, .yith-plugin-ui #yith-plugin-fw-panel {
    padding-top : 0;
}

.yith-plugin-ui .plugin-option tr {
    border : 0;
}

/** MULTI SELECT AND TEXT ARRAY INLINE STYLE **/
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select,
.yith-plugin-ui .yith-plugin-fw-text-array-inline .yith-single-text {
    display      : inline-block;
    width        : 30%;
    margin-right : 3%;
    max-width    : 400px;
}

.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select label,
.yith-plugin-ui .yith-plugin-fw-text-array-inline .yith-single-text label {
    display     : block;
    font-size   : 11px;
    font-weight : 600;
    margin      : 0 0 10px 0;
}

.yith-plugin-ui .yith-plugin-fw-text-array-inline .yith-single-text input,
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select select,
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select span.select2 {
    width     : 100% !important;
    min-width : auto !important;
}

/**
 * Dimensions
 */

.yith-plugin-fw-dimensions {
    display     : flex;
    align-items : flex-end;
}

.yith-plugin-fw-dimensions__units {
    flex          : 1;
    display       : flex;
    margin-left   : 5px;
    width         : calc(100% - 105px);
    flex-wrap     : wrap;
    min-height    : 38px;
    margin-bottom : -8px;
}

.yith-plugin-fw-dimensions__unit {
    display     : inline-block;
    padding     : 0 3px;
    cursor      : pointer;
    font-weight : 700;
}

.yith-plugin-fw-dimensions__unit--selected {
    text-decoration : underline;
    color           : #007694;
}

.yith-plugin-fw-dimensions__unit--unique {
    text-decoration : none;
    cursor          : default;
}

.yith-plugin-fw-dimensions__dimensions {
    display     : flex;
    margin      : 0;
    align-items : flex-end;
    max-width   : 400px;
    width       : 400px;
}

.yith-plugin-fw-dimensions__dimension {
    text-align : center;
    flex       : 1;
}

.yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.yith-plugin-ui .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.woocommerce .yith-plugin-fw table.form-table .yith-plugin-fw-dimensions__dimension > input[type=number].yith-plugin-fw-dimensions__dimension__number {
    width         : 100%;
    min-width     : 0;
    border-radius : 0;
    border        : 1px solid #d8d8d8;
    border-left   : none;
    height        : 38px;
    text-align    : center;
    padding-right : 0;
}

.yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.yith-plugin-ui .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.woocommerce .yith-plugin-fw table.form-table .yith-plugin-fw-dimensions__dimension:first-child > input[type=number].yith-plugin-fw-dimensions__dimension__number {
    border-left   : 1px solid #d8d8d8;
    border-radius : 6px 0 0 6px;
}

.yith-plugin-fw-dimensions__dimension:last-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui .yith-plugin-fw-dimensions__dimension:last-child > input[type=number].yith-plugin-fw-dimensions__dimension__number,
.yith-plugin-ui .yith-plugin-fw-dimensions__dimension:last-child > input[type=number].yith-plugin-fw-dimensions__dimension__number {
    border-radius : 0 6px 6px 0;
}

.metaboxes-tab .yith-plugin-fw-dimensions__dimension__label,
.yith-plugin-ui.metaboxes-tab label.yith-plugin-fw-dimensions__dimension__label {
    float       : none;
    margin      : 0;
    width       : auto;
    font-weight : inherit;
    line-height : inherit;
}

.yith-plugin-fw-dimensions__dimension__label,
.metaboxes-tab .yith-plugin-fw-dimensions__dimension__label,
.yith-plugin-ui.metaboxes-tab label.yith-plugin-fw-dimensions__dimension__label {
    text-transform : uppercase;
    letter-spacing : 1px;
    font-size      : 9px;
    margin-bottom  : 5px;
    display        : inline-block;
}

.yith-plugin-fw-dimensions__linked {
    cursor : pointer;
}

.yith-plugin-fw-dimensions__linked span {
    border        : 1px solid #d8d8d8;
    border-left   : none;
    height        : 38px;
    border-radius : 0 6px 6px 0;
    box-sizing    : border-box;
    padding       : 8px 10px;
    width         : 100%;
}

.yith-plugin-fw-dimensions--linked-active .yith-plugin-fw-dimensions__linked span {
    color        : #fff;
    background   : #007694;
    border-color : #007694;
}

/**
 * Image dimensions
 */
.yith-plugin-ui .yith-plugin-fw-image-dimensions > div {
    display      : inline-block;
    width        : 30%;
    margin-right : 3%;
    max-width    : 100px;
}

.yith-plugin-ui .yith-plugin-fw-image-dimensions label {
    display        : block;
    font-size      : 11px;
    font-weight    : 600;
    text-transform : uppercase;
    margin         : 0 0 10px 0;
}

/**
 * Copy to clipboard
 */
.yith-plugin-fw-copy-to-clipboard {
    background    : #ffffff;
    border-radius : 8px;
    border        : 1px solid #d8d8d8;
    display       : flex;
    align-items   : center;
    padding       : 0 12px;
    max-width     : 400px;
    box-sizing    : border-box;
}

.yith-plugin-fw-copy-to-clipboard.yith-plugin-fw-copy-to-clipboard--readonly {
    background : #f1f1f1;
    border     : 1px dashed #cccccc;
}

.yith-plugin-fw-copy-to-clipboard__field-wrap {
    position : relative;
    flex     : 1;
}

.yith-plugin-fw-copy-to-clipboard__tip {
    display        : none;
    position       : absolute;
    background     : rgba(30, 30, 30, 0.9);
    color          : #ffffff;
    padding        : 7px 10px;
    border-radius  : 3px;
    right          : 8px;
    top            : 50%;
    transform      : translateY(-50%);
    pointer-events : none;
    font-size      : 12px;
    line-height    : 1;
}


.yith-plugin-fw-copy-to-clipboard input[type=text].yith-plugin-fw-copy-to-clipboard__field,
.yith-plugin-fw.yith-plugin-ui .yith-plugin-fw-copy-to-clipboard input[type=text].yith-plugin-fw-copy-to-clipboard__field,
.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].yith-plugin-fw-copy-to-clipboard__field,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].yith-plugin-fw-copy-to-clipboard__field {
    height        : 38px;
    width         : 100%;
    background    : transparent;
    padding       : 0 10px 0 0;
    border        : 0;
    border-radius : 0;
    box-shadow    : none;
    outline       : none;
}

.yith-plugin-fw-copy-to-clipboard.yith-plugin-fw-copy-to-clipboard--readonly input[type=text].yith-plugin-fw-copy-to-clipboard__field,
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table .yith-plugin-fw-copy-to-clipboard--readonly input[type=text].yith-plugin-fw-copy-to-clipboard__field {
    color  : #999;
    cursor : default;
}

.yith-plugin-fw-copy-to-clipboard__copy {
    display       : flex;
    align-items   : center;
    cursor        : pointer;
    border-radius : 2px;
    padding       : 1px;
    user-select   : none;
    line-height   : 1;
    transition    : all .2s ease-in-out;
}

.yith-plugin-fw-copy-to-clipboard__copy:hover {
    box-shadow       : 0 0 0 4px rgba(15, 67, 60, .12);
    background-color : rgba(15, 67, 60, .12);
}

.yith-plugin-fw-copy-to-clipboard__copy__text {
    font-size   : 12px;
    font-weight : 600;
}

.yith-plugin-fw-copy-to-clipboard__copy__icon {
    margin-right : 4px;
    font-size    : 14px;
}

/** OVERRIDE WOOCOMMERCE CLASSES FOR 5.3 */
.branch-5-3 .yith-plugin-fw .select2-container .select2-selection--single .select2-selection__arrow {
    background : none;
}

.branch-5-3 .yith-plugin-fw .select2-container.select2-container--focus .select2-selection--single, .branch-5-3 .yith-plugin-fw .select2-container.select2-container--open .select2-selection--multiple, .branch-5-3 .yith-plugin-fw .select2-container.select2-container--open .select2-selection--single {
    box-shadow : none;
}

@media screen and (max-width : 1440px) {
    .yith-plugin-ui .yith-add-box,
    .yith-plugin-ui .yith-toggle-row:not(.fixed) {
        width : 80%;
    }


    .yith-plugin-ui .yith-add-box-row,
    .yith-plugin-ui .yith-toggle-content .yith-toggle-content-row,
    .yith-plugin-ui .yith-add-box-row label {
        display : block;
    }

    .yith-plugin-ui .yith-toggle-content .yith-toggle-content-row > label {
        display : block;
    }

    .yith-plugin-ui .yith-plugin-fw-option-with-description {
        width : 100%;
    }

    .yith-plugin-ui .yith-add-box-row,
    .yith-plugin-ui .yith-add-box-row label {
        display : block;
    }

    .yith-plugin-ui .yith-toggle-content .yith-plugin-fw-option-with-description,
    .yith-plugin-ui .yith-add-box-row .yith-plugin-fw-option-with-description {
        display     : block;
        padding-top : 20px;
    }


    .yith-plugin-ui .yith-add-box-row .yith-plugin-fw-option-with-description span.description {
        max-width : 100%;
    }
}

@media screen and (max-width : 1024px) {

    .yith-plugin-ui .yith-add-box,
    .yith-plugin-ui .yith-toggle-row:not(.fixed) {
        width : 90%;
    }

    .yith-plugin-ui td.forminp-checkbox.two-cols fieldset {
        width         : 100%;
        padding-right : 20px;
        float         : left;
    }

    .yith-plugin-ui td.forminp-checkbox.three-cols fieldset {
        width         : calc(50% - 10px);
        padding-right : 10px;
        float         : left;
    }

    .yith-plugin-ui td.forminp-checkbox.two-cols fieldset:nth-child(2n+1) {
        clear : both;
    }

    .yith-plugin-ui td.forminp-checkbox.three-cols fieldset:nth-child(3n+1) {
        clear : initial;
    }

}

@media screen and (max-width : 782px) {
    .yith-plugin-fw-banner h1 {
        line-height : 1.2em;
    }

    .yith-plugin-fw-banner h1 {
        font-size     : 12px;
        padding-right : 10px;
    }

    .yith-plugin-ui .yith-add-box,
    .yith-plugin-ui .yith-toggle-row {
        width : 100%;
    }

    .yith-plugin-ui td.forminp-checkbox.two-cols fieldset,
    .yith-plugin-ui td.forminp-checkbox.three-cols fieldset {
        width : 100%;
        clear : initial;
    }

    .yith-plugin-ui .wp-picker-container .wp-color-result.button {
        padding : 0;
    }

    .yith-plugin-ui #plugin-fw-wc table.form-table th,
    #yith-plugin-fw-panel table.form-table th.titledesc,
    .yith-plugin-ui #plugin-fw-wc table.form-table td,
    #yith-plugin-fw-panel table.form-table td.forminp {
        padding : 20px 20px;
    }

    .yith-plugin-ui #plugin-fw-wc table.form-table th.titledesc,
    #yith-plugin-fw-panel table.form-table th.titledesc {
        padding-bottom : 0;
    }
}

@media (max-width : 480px) {
    .yith-plugin-ui .nav-tab {
        font-size : 12px;
    }

    .yith-plugin-ui h2 {
        padding : 20px 20px;
    }

    .yith-plugin-ui [type="radio"]:checked + label:before, .yith-plugin-ui [type="radio"]:not(:checked) + label:before {
        width  : 14px;
        height : 14px;
    }

    .yith-plugin-ui [type="radio"]:checked + label:after, .yith-plugin-ui [type="radio"]:not(:checked) + label:after {
        width  : 10px;
        height : 10px;
        top    : 3px;
        left   : 3px;
    }

    .yith-plugin-ui [type="radio"]:checked + label, .yith-plugin-ui [type="radio"]:not(:checked) + label {
        padding-left : 25px;
    }

    .yith-plugin-ui [type="radio"]:checked + label, .yith-plugin-ui [type="radio"]:not(:checked) + label {
        font-size : 13px;
    }

    .yith-plugin-ui span.description {
        font-size : 12px;
    }

    .yith-plugin-ui #plugin-fw-wc table.form-table th,
    #yith-plugin-fw-panel table.form-table th.titledesc,
    .yith-plugin-ui #plugin-fw-wc table.form-table td,
    #yith-plugin-fw-panel table.form-table td.forminp {
        padding : 15px 20px;
    }

    .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
        width   : 48px;
        height  : 20px;
        padding : 2px;
    }

    .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
        top    : 4px;
        left   : 3px;
        width  : 10px;
        height : 10px;
    }

    .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:before, .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:before {
        left : 30px;
    }

    .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after, .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:after {
        font-size     : 11px;
        padding-right : 12px;
        margin-top    : 0;
    }

    .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:after {
        font-size    : 11px;
        padding-left : 12px;
        margin-top   : 0;
    }

    .yith-plugin-fw .select2-container .select2-selection--single .select2-selection__rendered {
        font-size : 14px;
    }

    .yith-plugin-ui input {
        font-size : 14px;
    }
}
plugin-fw/assets/css/codemirror/codemirror.css000064400000013650151327614500015603 0ustar00/* BASICS */

.CodeMirror {
  /* Set height, width, borders, and global font properties here */
  font-family: monospace;
  height: 400px;
  clear: both;
  padding: 0;
}
.CodeMirror-scroll {
  /* Set scrolling behaviour here */
  overflow: auto;
}

/* PADDING */

.CodeMirror-lines {
  padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre {
  padding: 0 4px; /* Horizontal padding of content */
}

.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
  background-color: white; /* The little square between H and V scrollbars */
}

/* GUTTER */

.CodeMirror-gutters {
  border-right: 1px solid #ddd;
  background-color: #f7f7f7;
  white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
  padding: 0 3px 0 5px;
  min-width: 20px;
  text-align: right;
  color: #999;
}

/* CURSOR */

.CodeMirror div.CodeMirror-cursor {
  border-left: 1px solid black;
  z-index: 3;
}
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
  border-left: 1px solid silver;
}
.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
  width: auto;
  border: 0;
  background: #7e7;
  z-index: 1;
}
/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {}

.cm-tab { display: inline-block; }

/* DEFAULT THEME */

.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable {color: black;}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3 {color: #085;}
.cm-s-default .cm-property {color: black;}
.cm-s-default .cm-operator {color: black;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-error {color: #f00;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}

.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}

.cm-invalidchar {color: #f00;}

div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}

/* STOP */

/* The rest of this file contains styles related to the mechanics of
   the editor. You probably shouldn't touch them. */

.CodeMirror {
  line-height: 1;
  position: relative;
  overflow: hidden;
  background: #fafafa;
  color: black;
}

.CodeMirror-scroll {
  /* 30px is the magic margin used to hide the element's real scrollbars */
  /* See overflow: hidden in .CodeMirror */
  margin-bottom: -30px; margin-right: -30px;
  padding-bottom: 30px; padding-right: 30px;
  height: 100%;
  outline: none; /* Prevent dragging from highlighting the element */
  position: relative;
}
.CodeMirror-sizer {
  position: relative;
}

/* The fake, visible scrollbars. Used to force redraw during scrolling
   before actuall scrolling happens, thus preventing shaking and
   flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
  position: absolute;
  z-index: 6;
  display: none;
}
.CodeMirror-vscrollbar {
  right: 0; top: 0;
  overflow-x: hidden;
  overflow-y: scroll;
}
.CodeMirror-hscrollbar {
  bottom: 0; left: 0;
  overflow-y: hidden;
  overflow-x: scroll;
}
.CodeMirror-scrollbar-filler {
  right: 0; bottom: 0;
}
.CodeMirror-gutter-filler {
  left: 0; bottom: 0;
}

.CodeMirror-gutters {
  position: absolute; left: 0; top: 0;
  padding-bottom: 30px;
  z-index: 3;
}
.CodeMirror-gutter {
  white-space: normal;
  height: 100%;
  padding-bottom: 30px;
  margin-bottom: -32px;
  display: inline-block;
  /* Hack to make IE7 behave */
  *zoom:1;
  *display:inline;
}
.CodeMirror-gutter-elt {
  position: absolute;
  cursor: default;
  z-index: 4;
}

.CodeMirror-lines {
  cursor: text;
}
.CodeMirror pre {
  /* Reset some styles that the rest of the page might have set */
  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
  border-width: 0;
  background: transparent;
  font-family: inherit;
  font-size: inherit;
  margin: 0;
  white-space: pre;
  word-wrap: normal;
  line-height: inherit;
  color: inherit;
  z-index: 2;
  position: relative;
  overflow: visible;
}
.CodeMirror-wrap pre {
  word-wrap: break-word;
  white-space: pre-wrap;
  word-break: normal;
}
.CodeMirror-code pre {
  border-right: 30px solid transparent;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.CodeMirror-wrap .CodeMirror-code pre {
  border-right: none;
  width: auto;
}
.CodeMirror-linebackground {
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 0;
  z-index: 0;
}

.CodeMirror-linewidget {
  position: relative;
  z-index: 2;
  overflow: auto;
}

.CodeMirror-widget {
}

.CodeMirror-wrap .CodeMirror-scroll {
  overflow-x: hidden;
}

.CodeMirror-measure {
  position: absolute;
  width: 100%; height: 0px;
  overflow: hidden;
  visibility: hidden;
}
.CodeMirror-measure pre { position: static; }

.CodeMirror div.CodeMirror-cursor {
  position: absolute;
  visibility: hidden;
  border-right: none;
  width: 0;
}
.CodeMirror-focused div.CodeMirror-cursor {
  visibility: visible;
}

.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }

.cm-searching {
  background: #ffa;
  background: rgba(255, 255, 0, .4);
}

/* IE7 hack to prevent it from returning funny offsetTops on the spans */
.CodeMirror span { *vertical-align: text-bottom; }

@media print {
  /* Hide the cursor when printing */
  .CodeMirror div.CodeMirror-cursor {
    visibility: hidden;
  }
}
plugin-fw/assets/css/yit-plugin-panel.css000064400000066560151327614500014477 0ustar00/*
 * This file belongs to the YIT Plugin Framework.
 *
 * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl-3.0.txt
 */
.plugin-option tr {
    border-bottom : 1px solid #ebebeb;
}

.plugin-option .yit_options,
.plugin-option .yit-options {
    border-bottom : 0px;
}

.plugin-option .yit-options .option,
.plugin-option .yit_options .option {
    width : 600px;
}

.plugin-option .form-table > tbody > tr > td {
    padding : 25px 15px;
}

.ie8 .yit_options select,
.ie8 .yit-options select {
    height : 26px;
}

/* Style to woocommerce panel*/

#plugin-fw-wc, #yith-plugin-fw-panel {
    padding-top : 20px;
}

#plugin-fw-wc table.form-table, #yith-plugin-fw-panel table.form-table, .yith-plugin-fw-panel-custom-tab-container {
    background-color : #fff;
    margin-bottom    : 20px;
}

.yith-plugin-fw-panel-custom-tab-container {
    padding      : 20px;
    box-sizing   : border-box;
    margin-right : 15px;
}

.yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container {
    border     : 1px solid #ddd;
    border-top : 0;
}

.yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container {
    padding    : 20px;
    box-sizing : border-box;
    border     : 1px solid #ccc;
    border-top : 0;
    margin     : -20px 0 0 0;
}

.yith-plugin-fw-panel-custom-tab-container > h2,
.yith-plugin-fw-panel-custom-tab-container h2,
.yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container > h2,
.yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container h2,
.yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container > h2,
.yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container h2 {
    border  : none;
    padding : 15px 0;
}

#plugin-fw-wc table.form-table th, #yith-plugin-fw-panel table.form-table th {
    padding : 20px;
}

#plugin-fw-wc h3, #yith-plugin-fw-panel h3 {
    padding : 0 0 0 10px;
    margin  : 0;
}

/**
 Help tab
 */

.yith-plugin-fw-panel-help-tab-container {
    background-color : #fff;
    padding          : 60px 25px;
}

.yith-plugin-fw-panel-help-tab-content {
    background-color : #f4f4f4;
    border-radius    : 15px;
    max-width        : 1100px;
    margin           : 0 auto;
    padding          : 40px 40px 60px;
}

.yith-plugin-fw-panel-help-tab-content p,
.yith-plugin-fw-panel-help-tab-content a {
    font-size : 16px;
}

.yith-plugin-fw-panel-help-tab-content .row {
    margin      : 0 -15px 50px;
    white-space : nowrap;
}

.yith-plugin-fw-panel-help-tab-content .row:last-child {
    margin-bottom : 0;
}

.yith-plugin-fw-panel-help-tab-content .row .column-left,
.yith-plugin-fw-panel-help-tab-content .row .column-right {
    display        : inline-block;
    padding        : 0 15px;
    vertical-align : top;
    width          : 66%;
}

.yith-plugin-fw-panel-help-tab-content .row .column-right {
    width : 33%;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video,
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-actions,
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles,
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
    box-sizing  : border-box;
    white-space : normal;
}

.yith-plugin-fw-panel-help-tab-content h2.yith-plugin-fw-panel-help-tab-title {
    background  : none;
    border      : none;
    font-size   : 22px;
    line-height : 1.5em;
    padding     : 0;
    text-align  : center;
}

.yith-plugin-fw-panel-help-tab-content h3 {
    color     : #03689f;
    font-size : 15px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-panel-tab-description {
    font-size     : 18px;
    text-align    : center;
    margin-bottom : 40px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video {
    text-align : center;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video p.video-description {
    margin-bottom : 25px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-caption p {
    margin : 5px 0;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container {
    margin      : 0 auto 50px;
    overflow    : hidden;
    padding-top : 56.25%;
    position    : relative;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container iframe {
    border   : 0;
    height   : 100%;
    left     : 0;
    position : absolute;
    top      : 0;
    width    : 100%;
}

.yith-plugin-fw-panel-help-tab-content .box-with-shadow {
    display          : block;
    background-color : #fff;
    border-radius    : 5px;
    box-shadow       : 0 0 15px 5px rgba(174, 201, 207, 0.3);
    transition       : all .2s ease;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions,
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
    margin    : 0 auto;
    max-width : 640px;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions:not( .full-width ) {
    padding-top : 65px !important;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li {
    margin-bottom : 20px;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li > a {
    display         : block;
    padding         : 15px 20px 15px 75px !important;
    text-decoration : none;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li:hover {
    box-shadow : 0 0 15px 5px rgba(177, 220, 228, 0.6);
    transform  : scale(1.04);
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li a:before {
    color                   : #03689f;
    float                   : left;
    font-family             : 'yith-icon';
    font-size               : 36px;
    line-height             : 1;
    margin-left             : -50px;
    -webkit-font-smoothing  : antialiased;
    -moz-osx-font-smoothing : grayscale;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.read-documentation a:before {
    content : '\f10d';
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.watch-videotutorials a:before {
    content : '\f10e';
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.check-faqs a:before {
    content : '\f10c';
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 {
    margin : 0 0 5px;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 a {
    color           : #03689f;
    text-decoration : none;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .description {
    margin    : 0;
    font-size : 14px;
}

.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .separator {
    display : inline-block;
    margin  : 0 5px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3 {
    font-size : 18px;
    margin    : 0;
    padding   : 10px 0;
    position  : relative;

}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3:before {
    content    : '';
    background : #03689f;
    display    : block;
    height     : 100%;
    left       : -40px;
    position   : absolute;
    top        : 0;
    width      : 15px;

}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles a.button {
    font-size : 16px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list {
    margin : 15px 0 30px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li {
    display       : block;
    margin-bottom : 10px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li:before {
    content : '-';
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list a {
    text-decoration : none;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket > .box-with-shadow {
    padding : 30px !important;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket h3 {
    color     : #b90a0a;
    font-size : 18px;
    margin    : 0 0 15px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket p {
    margin-bottom : 35px;
}

.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket .button {
    border-radius : 7px;
    display       : block;
    font-size     : 15px;
    padding       : 7px 15px;
    text-align    : center;
}

/**
 Post type Edit
 */

.yith-plugin-fw-wp-page-wrapper {
    margin : 23px 20px 0 2px;
}

.yith-plugin-fw-wp-page-wrapper .notice,
.yith-plugin-fw-wp-page-wrapper div.updated,
.yith-plugin-fw-wp-page-wrapper div.error {
    margin : 5px 15px 15px 0;
}

.yith-plugin-fw-wp-page-wrapper .wrap, .yith-plugin-fw-wp-page__sub-tab-wrap {
    border     : 1px solid #d8d8d8;
    border-top : 0;
    margin     : 0 15px 0 0;
    background : #fff;
    padding    : 20px;
    box-sizing : border-box;
}

.yith-plugin-fw-wp-page-wrapper .yith-plugin-fw-wp-page__sub-tab-wrap .wrap {
    margin : -20px 0 0 0;
}

#wpwrap .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper {
    padding-bottom : 0;
}

.yith-plugin-fw-wp-page-wrapper .postbox {
    box-shadow : none;
}

.yith-plugin-fw-wp-page-wrapper h1.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper h2.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
    padding-top    : 9px;
    padding-bottom : 0;
}

.yith-plugin-fw-wp-page-wrapper .wrap h1.wp-heading-inline {
    color       : #2a8db0;
    font-size   : 16px;
    font-weight : 600;
}

.yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action,
.yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action:active {
    border-radius    : 3px;
    text-transform   : uppercase;
    box-shadow       : none;
    border           : 0;
    font-weight      : 700;
    font-size        : 11px;
    padding          : 0 14px;
    outline          : none;
    height           : auto;
    transition       : all ease 0.3s;
    text-shadow      : none;
    vertical-align   : middle;
    line-height      : 26px;
    display          : inline-block;
    text-decoration  : none;
    cursor           : pointer;
    background-color : #375f6b;
    color            : #fff;
    margin-left      : 10px !important;
}

.yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action:hover {
    border-color : #007694;
    background   : #007694;
    color        : #fff;
}

.yith-plugin-fw-wp-page-wrapper #wp-content-editor-tools {
    background : transparent;
}

/* === Plugins Upgrader === */

.yit-plugin-changelog-wrapper {
    display : none;
}

.yit-plugin-changelog-title {
    text-transform : uppercase;
}

.yit-plugin-changelog {
    height     : calc(100% - 15px);
    width      : calc(100% - 15px);
    overflow-x : hidden;
    overflow-y : auto;
    z-index    : 999;
    background : #fcfcfc;
}

/* === Plugins Licence Activation === */

.yit-container.plugin-licence-activation {
    font-family : 'Raleway', sans-serif;
}

.yit-container.plugin-licence-activation .to-active-wrapper {
    margin-bottom : 60px;
}

.yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form {
    position     : relative;
    border-color : #e1e1e1;
    border-style : solid;
    border-width : 0;
}

.yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form:first-child {
    border-top-width : 1px;
}

.yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form:last-child {
    border-bottom-width : 1px;
}

.yit-container.plugin-licence-activation .to-active-wrapper table.to-active-table {
    border-width   : 0;
    border-spacing : 0;
    width          : 100%;
}

.yit-container.plugin-licence-activation .message {
    display       : none;
    line-height   : normal;
    background    : #fff url(../images/licence-error.png) 15px center no-repeat;
    padding-left  : 65px;
    padding-right : 15px;
    width         : 150px;
}

.yit-container.plugin-licence-activation .message-wrapper {
    height   : 75px;
    display  : none;
    position : absolute;
    top      : 0;
    right    : -250px;
    border   : 1px solid #ff3838;
}

.yit-container.plugin-licence-activation .message-wrapper.visible {
    display : table;
}

.yit-container.plugin-licence-activation .message {
    display        : table-cell;
    vertical-align : middle;
}

.yit-container.plugin-licence-activation .arrow-left:after,
.yit-container.plugin-licence-activation .arrow-left:before {
    content  : "";
    display  : block;
    width    : 0;
    height   : 0;
    position : absolute;
}

.yit-container.plugin-licence-activation .arrow-left:before {
    border-top    : 9px solid transparent;
    border-bottom : 9px solid transparent;
    border-right  : 9px solid #ff3838;
    top           : 26px;
    left          : -9px;
}

.yit-container.plugin-licence-activation .arrow-left:after {
    border-top    : 8px solid transparent;
    border-bottom : 8px solid transparent;
    border-right  : 8px solid #fff;
    left          : -8px;
    top           : 27px;
}

.yit-container.plugin-licence-activation h2,
.yit-container.plugin-licence-activation h3 {
    text-transform : uppercase;
    font-weight    : 800;
    margin-bottom  : 30px;
}

.yit-container.plugin-licence-activation h2 {
    color     : #808a97;
    font-size : 25px;
}

.yit-container.plugin-licence-activation h3 {
    color     : #313131;
    font-size : 15px;
    height    : 20px;
}

.yit-container.plugin-licence-activation h3.to-active {
    height         : 20px;
    position       : relative;
    vertical-align : top;
}

.yit-container.plugin-licence-activation .spinner.show {
    display        : inline-block;
    vertical-align : middle;
    float          : none;
}

.yit-container.plugin-licence-activation h3.to-active > .spinner.show {
    display  : inline-block;
    float    : none;
    top      : -3px;
    position : relative;
}

.yit-container.plugin-licence-activation .licence-check-section {
    margin-bottom : 60px;
}

.yit-container.plugin-licence-activation span.licence-label {
    font-weight   : 500;
    color         : #606060;
    margin-bottom : 30px;
}

.yit-container.plugin-licence-activation .button-licence {
    border             : 0;
    font-size          : 13px;
    text-transform     : uppercase;
    background-color   : #808a97;
    color              : #fff;
    font-weight        : 700;
    border-radius      : 3px;
    cursor             : pointer;
    text-decoration    : none;
    padding            : 5px 7px;
    -webkit-transition : background-color 0.3s ease;
    -moz-transition    : background-color 0.3s ease;
    -ms-transition     : background-color 0.3s ease;
    -o-transition      : background-color 0.3s ease;
    transition         : background-color 0.3s ease;
}

.yit-container.plugin-licence-activation .button-licence:hover {
    background-color : #4d5c6f;
}

.yit-container.plugin-licence-activation .button-licence.clicked {
    cursor           : not-allowed;
    background-color : #e2e2e2 !important;
}

.yit-container.plugin-licence-activation .button-licence.licence-check {
    font-weight : 400;
    padding     : 12px 19px;
}

.yit-container.plugin-licence-activation .button-licence.licence-renew {
    text-decoration : none;
    padding         : 7px 12px;
    font-size       : 9px;
}

.yit-container.plugin-licence-activation .button-licence.licence-renew:focus {
    box-shadow : none;
}

.yit-container.plugin-licence-activation table:not(.to-active-table) {
    width           : 100%;
    border          : 1px solid #dcdcdc;
    border-spacing  : 0;
    border-radius   : 5px;
    border-collapse : separate;
    overflow        : hidden;
}

.yit-container.plugin-licence-activation table:not(.to-active-table) th {
    border-bottom : 1px solid #dcdcdc;
}

.yit-container.plugin-licence-activation table:not(.to-active-table) td,
.yit-container.plugin-licence-activation table:not(.to-active-table) th {
    border-right : 1px solid #dcdcdc;
}

.yit-container.plugin-licence-activation table td:last-child,
.yit-container.plugin-licence-activation table th:last-child {
    border-right : 0;
}

.yit-container.plugin-licence-activation table thead tr {
    background-color : #f6f4f4;
}

.yit-container.plugin-licence-activation table tbody tr {
    background-color : #fff;
}

.yit-container.plugin-licence-activation table thead tr th {
    font-size      : 13px;
    color          : #313131;
    text-transform : uppercase;
    font-weight    : bold;
}

.yit-container.plugin-licence-activation table thead tr,
.yit-container.plugin-licence-activation table tbody tr {
    line-height : 60px;
}

.yit-container.plugin-licence-activation table tbody tr td {
    text-align  : center;
    line-height : 20px;
    padding     : 10px 5px;
}

.yit-container.plugin-licence-activation .button-licence.licence-activation {
    padding : 12px 18px;
}

.yit-container.plugin-licence-activation .to-active-table tr {
    line-height : 75px;
}

.yit-container.plugin-licence-activation .to-active-table tr.plugin-row {
    background-color   : transparent;
    -webkit-transition : all 0.3s ease;
    -moz-transition    : all 0.3s ease;
    -ms-transition     : all 0.3s ease;
    -o-transition      : all 0.3s ease;
    transition         : all 0.3s ease;
}

.yit-container.plugin-licence-activation .to-active-table tr.plugin-row.error {
    background-color : #ffdcdc;
}

.yit-container.plugin-licence-activation .to-active-table td {
    padding-right : 12px;
    width         : 33%;
}

.yit-container.plugin-licence-activation .to-active-table td.plugin-name {
    color          : #808a97;
    font-size      : 12px;
    text-transform : uppercase;
    font-weight    : bold;
    line-height    : 20px;
    width          : 20%;
    padding-left   : 20px;
}

.yit-container.plugin-licence-activation .to-active-table td.activate-button {
    width    : 15%;
    position : relative;
}

.yit-container.plugin-licence-activation input[type=text],
.yit-container.plugin-licence-activation input[type=email] {
    -webkit-transition : all 0.3s ease;
    -moz-transition    : all 0.3s ease;
    -ms-transition     : all 0.3s ease;
    -o-transition      : all 0.3s ease;
    transition         : all 0.3s ease;

    border             : 1px solid #dcdcdc;
    padding            : 0 15px;
    border-radius      : 3px;
    height             : 41px;
    width              : 100%;
}

.yit-container.plugin-licence-activation input[type=text].require,
.yit-container.plugin-licence-activation input[type=email].require {
    border : 1px solid #ff3838;
}

.yit-container.plugin-licence-activation input[type=text]:focus,
.yit-container.plugin-licence-activation input[type=email]:focus {
    webkit-box-shadow : 0 0 1px rgba(30, 140, 190, .8);
    box-shadow        : 0 0 1px rgba(30, 140, 190, .8);
}

.yit-container.plugin-licence-activation input[type=text] {
    text-transform : uppercase;
    text-align     : center;
}

.yit-container.plugin-licence-activation input[type=email] {
    text-align : left;
}

.yit-container.plugin-licence-activation input[type=submit]:focus {
    outline : 0;
}

/* === Woocommerce panel === */
#plugin-fw-wc .yit_options {
    padding : 0;
    border  : 0;
}

#plugin-fw-wc .yit_options input.upload_button, .yit_options input.button {
    background : none;
    border     : 1px solid #ccc;
}

/* === WP Pointers === */

#adminmenu li.menu-top.yit-pointer-selected-row,
#adminmenu li.menu-top.yit-pointer-selected-row:hover,
#adminmenu li.yit-pointer-selected-row a.menu-top {
    background-color : #acc327;
    color            : #000;
}

#adminmenu a.menu-top.toplevel_page_yit_plugin_panel.yit-pointer {
    color : #000;
}

#adminmenu a.menu-top.toplevel_page_yit_plugin_panel.yit-pointer:hover,
#adminmenu .wp-submenu a.yit-pointer-selected-row {
    color : #fff;
}

#adminmenu .wp-submenu a.yit-pointer-selected-row:hover {
    color : #45bbe6;
}

/* WooCommerce 2.4 Support */
.woocommerce table.form-table .colorpick {
    width : 6em;
}

#wpwrap h2.nav-tab-wrapper, #wpbody-content h2.nav-tab-wrapper {
    border-bottom  : 1px solid #ccc;
    margin-right   : 15px;
    text-transform : uppercase;
}

/* === YIT FRAMEWORK === */
.plugin-card .plugin-icon img {
    max-width : 100%;
    width     : auto;
    height    : auto;
}

/* === Panel Content and Container === */
.yit-admin-panel-container {
    position     : relative;
    margin-right : 15px;
}

.yith-plugin-ui .yit-admin-panel-container {
    position     : relative;
    margin-right : 15px;
    z-index      : 0;
}

.yit-admin-panel-content-wrap {
    width   : auto;
    display : block;
}

.yith-disabled {
    opacity        : 0.3;
    pointer-events : none;
}

.yith-plugin-fw-select,
.yith-plugin-fw-slider-container,
.yith-plugin-fw-text-input,
.yith-plugin-fw-text-array-table,
.yith-plugin-fw-textarea {
    width     : 400px;
    max-width : 100%;
}

.yith-plugin-fw-text-array-table input {
    width : 100%;
}

.yith-plugin-fw-panel-wc-row.preview {
    float : none;
}

.yith-plugin-fw-panel .subsubsub {
    margin : 0;
}

/**
 * Sub Tabs
 */
.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav {
    background   : #fff;
    padding      : 10px 20px 0;
    box-sizing   : border-box;
    margin-right : 15px;
    border-left  : 1px solid #d8d8d8;
    border-right : 1px solid #d8d8d8;
}

.yith-plugin-ui .yith-plugin-fw-wp-page-wrapper .wrap {
    margin-top : -29px;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav h3.nav-tab-wrapper {
    text-transform   : uppercase;
    line-height      : inherit;
    font-weight      : 600;
    margin           : 20px 0 0 0;
    box-sizing       : border-box;
    background-color : #f1f1f1;
    padding-top      : 0;
    border           : 1px solid #ccc;
    border-bottom    : 0;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab {
    line-height      : 1.71428571;
    margin-left      : 0;
    margin-right     : 0;
    background-color : #f1f1f1;
    color            : #336374;
    font-size        : 12px;
    padding          : 8px 20px 9px;
    border           : 0;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__title,
.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon {
    vertical-align : middle;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon {
    margin-left  : 8px;
    font-size    : 22px;
    margin-right : -3px;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon:before {
    color : inherit;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .yith-nav-sub-tab--highlight {
    color      : #fff;
    background : #2a8db0;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab-active {
    color         : #2a8db0;
    background    : #fff;
    border-bottom : 0;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab:first-child {
    border : 0;
}

.yith-plugin-fw-wp-page-wrapper.yith-current-subtab-opened > .wrap {
    /* padding-top: 0; */
}

.yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
    border-bottom  : 2px solid #e9e9e9;
    margin         : 0;
    padding-top    : 9px;
    padding-bottom : 0;
    line-height    : inherit;
}

div.nav-subtab-wrap {
    position    : absolute;
    top         : 100%;
    left        : 1px;
    padding-top : 10px;
    visibility  : hidden; /* hides sub-menu */
}

ul.nav-subtab {
    opacity          : 0;
    background-color : #fff;
    transition       : max-height 0.5s ease-in;
    max-height       : 0;
    z-index          : 100;
    overflow         : hidden;
    border           : 1px solid #f2f2f2;
    padding          : 14px 15px;
}

ul.yith-plugin-fw-tabs {
    display : block;
    margin  : 0;
}

li.yith-plugin-fw-tab-element {
    position : relative;
    margin   : 0;
    padding  : 0;
    display  : inline-block;
    overflow : visible;
    z-index  : 10;
}

.yith-plugin-ui li.yith-plugin-fw-tab-element {
    margin-bottom : -1px;
}

li.yith-plugin-fw-tab-element:hover {
    cursor : pointer;
}

li.nav-subtab-item {
    padding : 3px 0 0;
}

li.nav-subtab-item a {
    font-size       : 12px;
    text-decoration : none;
    letter-spacing  : 0.05em;
    color           : #336374;
}

li.nav-subtab-item a:hover {
    color : #228fb6;
}

li.yith-plugin-fw-tab-element a:hover .nav-subtab-wrap,
li.yith-plugin-fw-tab-element:hover .nav-subtab-wrap {
    visibility : visible; /* shows sub-menu */
}

li.yith-plugin-fw-tab-element a:hover ul.nav-subtab,
li.yith-plugin-fw-tab-element:hover ul.nav-subtab {
    max-height         : 200px;
    -webkit-box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
    -moz-box-shadow    : -2px 2px 10px rgba(0, 111, 101, 0.27);
    box-shadow         : -2px 2px 10px rgba(0, 111, 101, 0.27);
    opacity            : 1;
    transition-delay   : 0s, 0s, 0.3s;
    min-width          : 180px;
}

li.yith-plugin-fw-tab-element a.nav-tab i {
    margin-left : 10px;
    font-size   : 12px;
    font-weight : 600;
}

li.yith-plugin-fw-tab-element a.nav-tab i:before {
    color : #fff;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container {
    margin-top  : 0;
    padding-top : 0;
}

.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container,
.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yith-plugin-fw-wp-page__sub-tab-wrap {
    border     : 1px solid #d8d8d8;
    border-top : 0;
    margin     : 0 15px 0 0;
    background : #fff;
    padding    : 0 20px 20px 20px;
    box-sizing : border-box;
}


.yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yith-plugin-fw-wp-page__sub-tab-wrap .wrap {
    margin : 0;
}

/**
 * Float Save Button
 */

button#yith-plugin-fw-float-save-button {
    display        : none;
    align-items    : center;
    border-radius  : 60px;
    bottom         : 50px;
    box-shadow     : 0 0 6px 3px rgba(0, 121, 159, .2);
    padding        : 6px 20px;
    position       : fixed;
    right          : 70px;
    text-transform : uppercase;
    z-index        : 2;
    transition     : 0.3s ease-in-out;
}

.ywtenv-is-sandbox button#yith-plugin-fw-float-save-button {
    bottom : 100px;
}

button#yith-plugin-fw-float-save-button.visible {
    display : flex;
}

button#yith-plugin-fw-float-save-button i {
    font-size    : 15px;
    margin-right : 8px;
}

button#yith-plugin-fw-float-save-button:hover {
    box-shadow : 0px 1px 6px 3px rgba(0, 121, 159, .3);
}

button#yith-plugin-fw-float-save-button.green {
    background-color : #98aa36;
    border-color     : #98aa36;
    box-shadow       : 0 0 6px 3px rgba(152, 170, 54, .2);
    transition       : all 0.8s linear;
}

.rtl button#yith-plugin-fw-float-save-button {
    right : auto;
    left  : 70px;
}

.rtl button#yith-plugin-fw-float-save-button i {
    margin-left  : 8px;
    margin-right : 0;
}


/* === Responsive === */

@media (max-width : 767px) {

}

@media (max-width : 480px) {

}

@media (max-width : 992px) {
    .yith-plugin-fw-panel-help-tab-content .row {
        white-space   : normal;
        margin-bottom : 0;
    }

    .yith-plugin-fw-panel-help-tab-content .row .column-left,
    .yith-plugin-fw-panel-help-tab-content .row .column-right {
        width         : 100%;
        margin-bottom : 50px;
    }

    .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions {
        padding-top : 0 !important;
    }
}

@media (min-width : 768px) and (max-width : 992px) {
}

@media (min-width : 980px) and (max-width : 1199px) {
}

@media (min-width : 1200px) {
    .yit-container.plugin-licence-activation {
        width : 900px;
    }
}

@media only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (-o-min-device-pixel-ratio : 3/2), only screen and (min--moz-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5) {
}
plugin-fw/assets/css/admin.css000064400000015176151327614500012366 0ustar00/*-----------------------
        YITH Debug
 ------------------------*/
#wpadminbar .yith-debug-admin-bar div,
#wpadminbar .yith-debug-admin-bar:hover div {
	background: #05789c !important;
	color: #fff !important;
}

#wpadminbar .yith-debug-admin-bar a,
#wpadminbar .yith-debug-admin-bar strong {
	color: #fff !important;
}

#wpadminbar .yith-debug-admin-bar strong {
	font-weight: 600;
}

#wpadminbar .yith-debug-admin-bar-post-meta .ab-empty-item,
#wpadminbar .yith-debug-admin-bar-option .ab-empty-item {
	display: none;
}

#wpadminbar #wp-admin-bar-yith-debug-admin-bar-post-meta-default,
#wpadminbar #wp-admin-bar-yith-debug-admin-bar-option-default {
	padding: 0;
	max-height: 500px;
	overflow-y: auto;
}

#wpadminbar .yith-debug-admin-bar pre {
	padding: 10px;
	line-height: 1.5em;
}

.notice-yith {
	margin-left: 0;
	border-left-color: #acc327;
}

.notice-yith.notice-alt {
	background-color: #ecf7ed;
}

.yith-promo-banner-image-link {
	display: block;
	margin-bottom: 15px;
}

.yith-promo-banner-image {
	max-width: 100%;
	margin: 0 auto;
	display: block;
}

/*-----------------------
    YITH FEEDS
 ------------------------*/

.yith-feeds-logo {
	display: table-cell;
	background: #005b7c;
	padding: 5px;
	border-radius: 50%;
	margin-right: 10px;
	vertical-align: text-bottom;
	width: 18px;
	height: auto;
	vertical-align: middle;
}

.yith-feeds-plugin-name {
	display: table-cell;
	vertical-align: middle;
}

/*-----------------------
    YITH Plugins Columns
 ------------------------*/
@media screen and (min-width: 783px) {

	.auto-fold #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu-head {
		width: 100%;
	}

	#adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu {
		min-width: 320px;
		display: flex;
		flex-flow: row wrap;
	}

	#adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
		width: 50%;
		border-left: 1px solid #555;
		box-sizing: border-box;
	}

	#adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(2n) {
		border-left: none;
	}

	#adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu {
		min-width: 480px;
		display: flex;
		flex-flow: row wrap;
	}

	#adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
		width: calc(100% / 3);
		border-left: 1px solid #555;
		box-sizing: border-box;
	}

	#adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(3n + 2) {
		border-left: none;
	}
}

/*---------------------------
    YITH System Information
 ----------------------------*/

.yith-system-info-wrap table.form-table {
	margin: 0;
	background: #fff;
}

.yith-system-info-wrap table.form-table th, .yith-system-info-wrap table.form-table td {
	padding: 30px 20px !important;
}

.yith-system-info-wrap table.form-table th {
	min-width: 200px;
	width: auto !important;
}

.yith-system-info-wrap table.form-table textarea.yith-system-info-debug {
	width: 100%;
	height: 400px !important;
}

.yith-phpinfo-wrap div table.form-table {
	border-bottom: none;
	margin-bottom: 0;
}

.yith-phpinfo-wrap div h2 {
	border-top: 1px solid #d8d8d8 !important;
}

.yith-phpinfo-wrap div {
	margin-bottom: 40px;
	border-bottom: 1px solid #d8d8d8;
}

.yith-phpinfo-wrap div:last-child {
	margin-bottom: 0;
}

.yith-phpinfo-wrap table.form-table h1.p {
	color: #2a8db0;
	text-transform: uppercase;
	padding: 0;
	line-height: 64px;
}


.yith-phpinfo-wrap table.form-table img {
	float: right;
	border: 0;
}

.yith-system-info-wrap .yith-plugin-fw-field-wrapper.progress:after {
	color: #336374;
	display: inline-block;
	font: 400 20px/1 dashicons;
	speak: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	vertical-align: top;
	line-height: 28px;
	content: '\f463';
	-webkit-animation: rotation 2s infinite linear;
	animation: rotation 2s infinite linear
}

.yith-system-info h2.yith-sysinfo-title {
	color: #00729f;
	font-size: 25px;
	text-transform: uppercase;
	font-weight: 800;
	line-height: 25px;
	padding: 20px 0;
	background: none;
	border: none;
}

#yith-system-alert span.yith-logo,
.yith-system-info h2 span.yith-logo {
	border-radius: 50%;
	background: #265b7a;
	height: 30px;
	width: 30px;
	display: flex;
	text-align: center;
	margin: 0 10px 0 0;
	float: left;
	align-items: center;
	justify-content: center;
}


.yith-system-info table td {
	word-break: break-all;
	padding: 20px 12px;
}

.yith-system-info table td.requirement-value,
.yith-system-info table td.info-value {
	font-size: 14px;
	vertical-align: middle;
	text-align: left;
	color: #5da726;
	line-height: 19px;
}

.yith-system-info table td.requirement-value {
	width: 120px;
}

.yith-system-info table td.requirement-value.has-errors {
	color: #a00;
}

.yith-system-info table td.requirement-value.has-warnings {
	color: #ffa200;
}

.yith-system-info table td.requirement-messages ul {
	margin: 0;
	padding: 0 0 10px 0;
	list-style: none !important;
}

.yith-system-info table td.requirement-messages ul li {
	margin-bottom: 3px;
}

.yith-system-info table td.requirement-messages span.error {
	color: #a00;
	font-weight: bold;
}

.yith-system-info table td.requirement-messages span.warning {
	color: #a00;
	font-weight: bold;
}

.yith-system-info .debug-code {
	font-family: monospace;
	padding: 15px;
	display: inline-block;
	background: #f2f3f4;
	line-height: 22px;
	border: 2px solid #dfe3e6;
	border-radius: 5px;
	margin-right: 20px;
}

.yith-system-info .copy-link {
	font-size: 11px;
	font-weight: 600;
	padding-left: 1.7em;
	position: relative;
	text-decoration: none;
	color: #3889d3;
}

.yith-system-info .copy-link:hover {
	color: #004b91;
}

.yith-system-info .copy-link:before {
	background-color: #ffffff;
	border: 1px solid;
	bottom: 2px;
	content: '';
	display: inline-block;
	height: 0.9em;
	left: 0;
	position: absolute;
	width: 0.9em;
	z-index: 2;
}

.yith-system-info .copy-link:after {
	background-color: #ffffff;
	border: 1px solid;
	bottom: 5px;
	content: '';
	display: inline-block;
	height: 0.9em;
	left: 3px;
	position: absolute;
	width: 0.9em;
	z-index: 1;
}

.yith-system-info .copy-link .copied-tooltip {
	width: 140px;
	background-color: #555;
	color: #fff;
	text-align: center;
	border-radius: 6px;
	padding: 5px;
	position: absolute;
	z-index: 1;
	bottom: 150%;
	left: 50%;
	margin-left: -75px;
	transition: all ease .3s;
}

.yith-system-info .copy-link .copied-tooltip:after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -5px;
	border-width: 5px;
	border-style: solid;
	border-color: #555 transparent transparent transparent;
}

.yith-system-info-menu {
	font-weight: bold;
	font-size: 11px !important;
}
plugin-fw/assets/css/elementor.css000064400000002041151327614500013253 0ustar00/**
 * Style for Elementor Editor customization
 */

.yith-plugin-fw-elementor-widget-description {
    margin-bottom : 10px;
    font-style    : italic;
}

.yith-plugin-fw-elementor-shortcode-widget--shortcode,
.yith-plugin-fw-elementor-shortcode-widget--empty-html {
    font-family   : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    padding       : 1em 1em 1.2em;
    border        : 1px solid #1e1e1e;
    border-radius : 4px;
}

.yith-plugin-fw-elementor-shortcode-widget__title {
    font-size     : 15px;
    font-weight   : 700;
    margin-bottom : 10px;
}

.yith-plugin-fw-elementor-shortcode-widget__message {
    font-style : italic;
    font-size  : 13px;
}

.yith-plugin-fw-elementor-shortcode-widget--shortcode .yith-plugin-fw-elementor-shortcode-widget__content {
    font-family   : Menlo, Consolas, monaco, monospace;
    color         : #1e1e1e;
    font-size     : 13px;
    padding       : 0.8em 1em;
    border        : 1px solid #ddd;
    border-radius : 4px;
}plugin-fw/assets/css/yith-plugin-ui.css000064400000216055151327614500014161 0ustar00@charset "UTF-8";
/**
 * YITH Plugin UI style
 *
 * IMPORTANT: This file is automatically generated through SCSS files.
 * Please don't edit it manually!
 */
/**
 * YITH CSS Variables
 */
:root {
  --yith-content-bg: #ffffff;
  --yith-content-text: #3c434a;
  --yith-primary: #00799f;
  --yith-primary-hover: #0094c4;
  --yith-primary-focus: #bddce6;
  --yith-primary-text: #ffffff;
  --yith-delete: #c41d04;
  --yith-delete-hover: #dd2105;
  --yith-delete-text: #ffffff;
  --yith-delete-focus: #f0d2cd;
  --yith-update: #94aa09;
  --yith-update-hover: #7f9208;
  --yith-update-text: #ffffff;
  --yith-update-focus: #e7eccc;
  --yith-outline-text: #0087b3;
  --yith-outline-border: #0094c4;
  --yith-outline-bg: rgba(255, 255, 255, 0);
  --yith-outline-bg-hover: rgba(157, 198, 205, 0.2);
  --yith-outline-border-hover: #007ba3;
  --yith-outline-focus: #dfeef2;
  --yith-delete-outline-text: #c41d04;
  --yith-delete-outline-border: #c41d04;
  --yith-delete-outline-bg: rgba(205, 157, 157, 0);
  --yith-delete-outline-bg-hover: rgba(232, 184, 184, 0.15);
  --yith-delete-outline-border-hover: #db2b11;
  --yith-delete-outline-focus: #ffe9e7;
  --yith-accent: #98aa36;
  --yith-light-bg: #f0f6fb;
  --yith-light-border-color: #d7e3e7;
  --yith-light-shadow: rgba(145, 191, 227, 0.11);
  --yith-light-accent: #0079b0;
  --yith-success: #98aa36;
  --yith-success-light: #d4df9a;
  --yith-success-lighter: #eaefcc;
  --yith-success-lightest: #f5f8e7;
  --yith-table-row-highlight: #f0f6fb;
  --yith-table-row-striped: #f6f7f7;
  --yith-table-border-light: #eff0f0;
  --yith-field-border-color: #d8d8d8;
  --yith-field-border-weight: #d8d8d8;
  --yith-field-border: 1px solid #d8d8d8;
  --yith-link: #0079b0;
}

/**
 * YITH Plugin UI - WP Pages
 */
.yith-plugin-fw-wp-page-wrapper .yith-plugin-fw__back-to-wp-list__wrapper {
  margin: -5px 0 15px;
}

.yith-plugin-fw-wp-page-wrapper .yith-plugin-fw__back-to-wp-list__wrapper .yith-plugin-fw__back-to-wp-list {
  text-decoration: none;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--yith-link);
  vertical-align: middle;
}

.yith-plugin-fw-wp-page-wrapper .yith-plugin-fw__back-to-wp-list__wrapper .yith-plugin-fw__back-to-wp-list:before {
  content: "\e901";
  font-family: yith-icon;
  margin-right: 5px;
  font-size: .8em;
  vertical-align: middle;
}

.yith-plugin-fw-wp-page-wrapper .wrap div#message.updated {
  display: none;
  padding: 15px 40px 15px 45px;
  margin: 15px 0 20px;
  border-radius: 5px;
  background: var(--yith-success-lightest);
  border: 1px solid var(--yith-success-light);
  font-weight: 600;
  font-size: 14px;
  text-align: left;
  color: var(--yith-content-text);
  box-shadow: 1px 1px 2px var(--yith-success-lighter);
}

.yith-plugin-fw-wp-page-wrapper .wrap div#message.updated:before {
  font-family: yith-icon;
  content: "\e921";
  position: absolute;
  top: 50%;
  left: 13px;
  font-size: 21px;
  font-weight: 400;
  transform: translateY(-50%);
  color: var(--yith-success);
}

.yith-plugin-fw-wp-page-wrapper .wrap div#message.updated p {
  padding: 0;
  margin: 0;
}

.yith-plugin-fw-wp-page-wrapper .wrap div#message.updated .notice-dismiss {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  border-radius: 50%;
  color: var(--yith-success);
  padding: 7px;
  background: transparent;
  box-shadow: 0 0 0 5px rgba(0, 0, 0, 0);
  transition: all .3s ease-in-out;
}

.yith-plugin-fw-wp-page-wrapper .wrap div#message.updated .notice-dismiss:before {
  font-family: yith-icon;
  content: "\e906";
  font-weight: 600;
  font-size: 12px;
  color: inherit;
}

.yith-plugin-fw-wp-page-wrapper .wrap div#message.updated .notice-dismiss:hover {
  box-shadow: 0 0 0 0 var(--yith-success-lighter);
  background: var(--yith-success-lighter);
}

.yith-plugin-fw-wp-page-wrapper .wrap div#message.updated .notice-dismiss:hover:before, .yith-plugin-fw-wp-page-wrapper .wrap div#message.updated .notice-dismiss:active:before, .yith-plugin-fw-wp-page-wrapper .wrap div#message.updated .notice-dismiss:focus:before {
  color: inherit;
}

/**
 * YITH Plugin UI - Taxonomy Style
 */
.yith-plugin-ui.yith-plugin-ui--taxonomy-type #col-container, .yith-plugin-ui--taxonomy-type #col-container {
  display: flex;
}

.yith-plugin-ui.yith-plugin-ui--taxonomy-type #col-left, .yith-plugin-ui--taxonomy-type #col-left {
  padding: 20px;
  background: #f1f1f1;
  border-radius: 8px;
  box-sizing: border-box;
  margin-right: 15px;
}

.yith-plugin-ui.yith-plugin-ui--taxonomy-type #col-right, .yith-plugin-ui--taxonomy-type #col-right {
  flex: 1;
}

.yith-plugin-ui.yith-plugin-ui--taxonomy-type h2, .yith-plugin-ui--taxonomy-type h2 {
  border: none;
  padding: 0;
  font-size: 14px;
  background: transparent;
}

.yith-plugin-ui.yith-plugin-ui--taxonomy-type .wrap h1, .yith-plugin-ui--taxonomy-type .wrap h1 {
  color: #2a8db0;
  font-size: 16px;
  font-weight: 600;
}

@media screen and (max-width: 782px) {
  .yith-plugin-ui.yith-plugin-ui--taxonomy-type #col-container {
    display: block;
  }
  .yith-plugin-ui.yith-plugin-ui--taxonomy-type #col-left, .yith-plugin-ui.yith-plugin-ui--taxonomy-type #col-right {
    float: none;
    width: 100%;
  }
}

/**
 * YITH Plugin UI - Components
 */
.yith-plugin-ui .yith-plugin-fw__action-button, .yith-plugin-fw__action-button {
  height: 35px;
  width: 35px;
  background-color: var(--yith-content-bg);
  display: inline-block;
  border: 0;
  border-radius: 50%;
  transition: .3s;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(170, 198, 222, 0.5);
  outline: none;
  position: relative;
  margin: 0 5px 5px 0;
  vertical-align: middle;
}

.yith-plugin-ui .yith-plugin-fw__action-button .yith-plugin-fw__action-button__link, .yith-plugin-fw__action-button .yith-plugin-fw__action-button__link {
  height: 100%;
  width: 100%;
  display: inline-block;
}

.yith-plugin-ui .yith-plugin-fw__action-button .yith-plugin-fw__action-button__icon, .yith-plugin-fw__action-button .yith-plugin-fw__action-button__icon {
  position: absolute;
  color: var(--yith-link);
  font-size: 17px;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}

.yith-plugin-ui .yith-plugin-fw__action-button.yith-plugin-fw__action-button--trash-action .yith-plugin-fw__action-button__icon,
.yith-plugin-ui .yith-plugin-fw__action-button.yith-plugin-fw__action-button--delete-action .yith-plugin-fw__action-button__icon, .yith-plugin-fw__action-button.yith-plugin-fw__action-button--trash-action .yith-plugin-fw__action-button__icon,
.yith-plugin-fw__action-button.yith-plugin-fw__action-button--delete-action .yith-plugin-fw__action-button__icon {
  color: #a10000;
}

.yith-plugin-ui .yith-plugin-fw__action-button .yith-plugin-fw__action-button__menu, .yith-plugin-fw__action-button .yith-plugin-fw__action-button__menu {
  position: absolute;
  display: none;
  flex-direction: column;
  width: max-content;
  right: 0;
  margin: 5px 0 0 0;
  padding: 8px 0;
  background: var(--yith-content-bg);
  border-radius: 5px;
  box-shadow: 0 2px 7px rgba(170, 198, 222, 0.5);
  z-index: 10;
  animation: yith-plugin-fw-appear-from-top .3s forwards;
}

.yith-plugin-ui .yith-plugin-fw__action-button .yith-plugin-fw__action-button__menu__item, .yith-plugin-fw__action-button .yith-plugin-fw__action-button__menu__item {
  margin: 0;
  display: block;
  padding: 7px 25px;
  color: var(--yith-content-text);
  cursor: pointer;
  text-decoration: none;
  text-align: right;
}

.yith-plugin-ui .yith-plugin-fw__action-button .yith-plugin-fw__action-button__menu__item:hover, .yith-plugin-fw__action-button .yith-plugin-fw__action-button__menu__item:hover {
  color: var(--yith-link);
}

.yith-plugin-ui .yith-plugin-fw__action-button.yith-plugin-fw__action-button--has-menu .yith-plugin-fw__action-button__icon, .yith-plugin-fw__action-button.yith-plugin-fw__action-button--has-menu .yith-plugin-fw__action-button__icon {
  color: var(--yith-content-text);
}

.yith-plugin-ui .yith-plugin-fw__action-button.yith-plugin-fw__action-button--has-menu.yith-plugin-fw__action-button--opened .yith-plugin-fw__action-button__icon, .yith-plugin-fw__action-button.yith-plugin-fw__action-button--has-menu.yith-plugin-fw__action-button--opened .yith-plugin-fw__action-button__icon {
  color: var(--yith-link);
}

.yith-plugin-ui .yith-plugin-fw__action-button.yith-plugin-fw__action-button--has-menu.yith-plugin-fw__action-button--opened .yith-plugin-fw__action-button__menu, .yith-plugin-fw__action-button.yith-plugin-fw__action-button--has-menu.yith-plugin-fw__action-button--opened .yith-plugin-fw__action-button__menu {
  display: flex;
}

.yith-plugin-ui .button-primary, .yith-plugin-ui .button-secondary, .wp-core-ui .yith-plugin-ui .button-primary, .wp-core-ui .yith-plugin-ui .button-secondary {
  border-radius: 3px;
  text-transform: none;
  box-shadow: none;
  border: 1px solid;
  font-weight: 600;
  padding: 0 12px;
  outline: none;
  height: auto;
  transition: all ease 0.3s;
  text-shadow: none;
  display: inline-block;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}

.yith-plugin-ui .button-primary:focus, .yith-plugin-ui .button-secondary:focus, .wp-core-ui .yith-plugin-ui .button-primary:focus, .wp-core-ui .yith-plugin-ui .button-secondary:focus {
  outline: none;
  box-shadow: none;
}

.yith-plugin-ui .button-primary.button-small, .yith-plugin-ui .button-secondary.button-small, .wp-core-ui .yith-plugin-ui .button-primary.button-small, .wp-core-ui .yith-plugin-ui .button-secondary.button-small {
  padding: 0 8px;
}

.yith-plugin-ui .button-secondary, .wp-core-ui .yith-plugin-ui .button-secondary {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .button-secondary:focus, .wp-core-ui .yith-plugin-ui .button-secondary:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .button-secondary:hover, .yith-plugin-ui .button-secondary:active, .wp-core-ui .yith-plugin-ui .button-secondary:hover, .wp-core-ui .yith-plugin-ui .button-secondary:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .button-primary, .wp-core-ui .yith-plugin-ui .button-primary {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
}

.yith-plugin-ui .button-primary:focus, .wp-core-ui .yith-plugin-ui .button-primary:focus {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
  box-shadow: 0 0 0 3px var(--yith-primary-focus);
}

.yith-plugin-ui .button-primary:hover, .yith-plugin-ui .button-primary:active, .wp-core-ui .yith-plugin-ui .button-primary:hover, .wp-core-ui .yith-plugin-ui .button-primary:active {
  background: var(--yith-primary-hover);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary-hover);
}

.yith-plugin-ui .button.action,
.yith-plugin-ui #doaction,
.yith-plugin-ui #doaction2,
.yith-plugin-ui #post-query-submit,
.yith-plugin-ui #posts-filter #delete_all,
.yith-plugin-ui #search-submit,
.yith-plugin-ui .button.filter-button, .wp-core-ui .yith-plugin-ui .button.action,
.wp-core-ui .yith-plugin-ui #doaction,
.wp-core-ui .yith-plugin-ui #doaction2,
.wp-core-ui .yith-plugin-ui #post-query-submit,
.wp-core-ui .yith-plugin-ui #posts-filter #delete_all,
.wp-core-ui .yith-plugin-ui #search-submit,
.wp-core-ui .yith-plugin-ui .button.filter-button {
  display: inline-block;
  height: auto;
  line-height: 30px;
  border-radius: 4px;
  padding: 0 17px;
  font-weight: 600;
  cursor: pointer;
  transition: all .3s ease-in-out;
  text-decoration: none;
  white-space: nowrap;
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  height: auto;
  line-height: 33px;
  border-radius: 8px;
  padding: 0 15px;
  font-weight: 600;
}

.yith-plugin-ui .button.action:focus,
.yith-plugin-ui #doaction:focus,
.yith-plugin-ui #doaction2:focus,
.yith-plugin-ui #post-query-submit:focus,
.yith-plugin-ui #posts-filter #delete_all:focus,
.yith-plugin-ui #search-submit:focus,
.yith-plugin-ui .button.filter-button:focus, .wp-core-ui .yith-plugin-ui .button.action:focus,
.wp-core-ui .yith-plugin-ui #doaction:focus,
.wp-core-ui .yith-plugin-ui #doaction2:focus,
.wp-core-ui .yith-plugin-ui #post-query-submit:focus,
.wp-core-ui .yith-plugin-ui #posts-filter #delete_all:focus,
.wp-core-ui .yith-plugin-ui #search-submit:focus,
.wp-core-ui .yith-plugin-ui .button.filter-button:focus {
  outline: none;
  box-shadow: none;
}

.yith-plugin-ui .button.action:focus,
.yith-plugin-ui #doaction:focus,
.yith-plugin-ui #doaction2:focus,
.yith-plugin-ui #post-query-submit:focus,
.yith-plugin-ui #posts-filter #delete_all:focus,
.yith-plugin-ui #search-submit:focus,
.yith-plugin-ui .button.filter-button:focus, .wp-core-ui .yith-plugin-ui .button.action:focus,
.wp-core-ui .yith-plugin-ui #doaction:focus,
.wp-core-ui .yith-plugin-ui #doaction2:focus,
.wp-core-ui .yith-plugin-ui #post-query-submit:focus,
.wp-core-ui .yith-plugin-ui #posts-filter #delete_all:focus,
.wp-core-ui .yith-plugin-ui #search-submit:focus,
.wp-core-ui .yith-plugin-ui .button.filter-button:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .button.action:hover, .yith-plugin-ui .button.action:active,
.yith-plugin-ui #doaction:hover,
.yith-plugin-ui #doaction:active,
.yith-plugin-ui #doaction2:hover,
.yith-plugin-ui #doaction2:active,
.yith-plugin-ui #post-query-submit:hover,
.yith-plugin-ui #post-query-submit:active,
.yith-plugin-ui #posts-filter #delete_all:hover,
.yith-plugin-ui #posts-filter #delete_all:active,
.yith-plugin-ui #search-submit:hover,
.yith-plugin-ui #search-submit:active,
.yith-plugin-ui .button.filter-button:hover,
.yith-plugin-ui .button.filter-button:active, .wp-core-ui .yith-plugin-ui .button.action:hover, .wp-core-ui .yith-plugin-ui .button.action:active,
.wp-core-ui .yith-plugin-ui #doaction:hover,
.wp-core-ui .yith-plugin-ui #doaction:active,
.wp-core-ui .yith-plugin-ui #doaction2:hover,
.wp-core-ui .yith-plugin-ui #doaction2:active,
.wp-core-ui .yith-plugin-ui #post-query-submit:hover,
.wp-core-ui .yith-plugin-ui #post-query-submit:active,
.wp-core-ui .yith-plugin-ui #posts-filter #delete_all:hover,
.wp-core-ui .yith-plugin-ui #posts-filter #delete_all:active,
.wp-core-ui .yith-plugin-ui #search-submit:hover,
.wp-core-ui .yith-plugin-ui #search-submit:active,
.wp-core-ui .yith-plugin-ui .button.filter-button:hover,
.wp-core-ui .yith-plugin-ui .button.filter-button:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-ui #posts-filter #delete_all, .wp-core-ui .yith-plugin-ui #posts-filter #delete_all {
  background: var(--yith-delete-outline-bg);
  border: 1px solid var(--yith-delete-outline-border);
  color: var(--yith-delete-outline-text);
}

.yith-plugin-ui #posts-filter #delete_all:focus, .wp-core-ui .yith-plugin-ui #posts-filter #delete_all:focus {
  background: var(--yith-delete-outline-bg);
  border: 1px solid var(--yith-delete-outline-border);
  color: var(--yith-delete-outline-text);
  box-shadow: 0 0 0 3px var(--yith-delete-outline-focus);
}

.yith-plugin-ui #posts-filter #delete_all:hover, .yith-plugin-ui #posts-filter #delete_all:active, .wp-core-ui .yith-plugin-ui #posts-filter #delete_all:hover, .wp-core-ui .yith-plugin-ui #posts-filter #delete_all:active {
  background: var(--yith-delete-outline-bg-hover);
  border-color: var(--yith-delete-outline-border-hover);
  color: var(--yith-delete-outline-text);
}

.yith-plugin-ui .tablenav .tablenav-pages .button,
.yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan, .wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .button,
.wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .tablenav .tablenav-pages .button:focus,
.yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan:focus, .wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .button:focus,
.wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .tablenav .tablenav-pages .button:hover, .yith-plugin-ui .tablenav .tablenav-pages .button:active,
.yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan:hover,
.yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan:active, .wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .button:hover, .wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .button:active,
.wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan:hover,
.wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

@media screen and (max-width: 782px) {
  .yith-plugin-ui .tablenav .tablenav-pages .button, .yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan, .wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .button, .wp-core-ui .yith-plugin-ui .tablenav .tablenav-pages .tablenav-pages-navspan {
    min-width: 44px;
    padding: 12px 8px;
    font-size: 18px;
    line-height: 1;
  }
}

.yith-plugin-ui .yith-plugin-fw__button, .yith-plugin-ui [class^="yith-plugin-fw__button--"], .yith-plugin-ui [class*=" yith-plugin-fw__button--"],
.yith-plugin-ui .yith-add-button, .yith-plugin-ui .yith-edit-button, .yith-plugin-ui .yith-update-button, .yith-plugin-ui .yith-remove-button, .yith-plugin-ui .yith-plugin-fw-upload-button, .yith-plugin-ui .yith-save-button, .yith-plugin-ui .yith-plugin-fw-select-all, .yith-plugin-ui .yith-plugin-fw-deselect-all, .yith-plugin-ui .yith-plugin-fw-upload-button-reset, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button, .wp-core-ui .yith-plugin-ui [class^="yith-plugin-fw__button--"], .wp-core-ui .yith-plugin-ui [class*=" yith-plugin-fw__button--"],
.wp-core-ui .yith-plugin-ui .yith-add-button, .wp-core-ui .yith-plugin-ui .yith-edit-button, .wp-core-ui .yith-plugin-ui .yith-update-button, .wp-core-ui .yith-plugin-ui .yith-remove-button, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button, .wp-core-ui .yith-plugin-ui .yith-save-button, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-select-all, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-deselect-all, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button-reset {
  display: inline-block;
  height: auto;
  line-height: 30px;
  border-radius: 4px;
  padding: 0 17px;
  font-weight: 600;
  cursor: pointer;
  transition: all .3s ease-in-out;
  text-decoration: none;
  white-space: nowrap;
}

.yith-plugin-ui .yith-plugin-fw__button:focus, .yith-plugin-ui [class^="yith-plugin-fw__button--"]:focus, .yith-plugin-ui [class*=" yith-plugin-fw__button--"]:focus,
.yith-plugin-ui .yith-add-button:focus, .yith-plugin-ui .yith-edit-button:focus, .yith-plugin-ui .yith-update-button:focus, .yith-plugin-ui .yith-remove-button:focus, .yith-plugin-ui .yith-plugin-fw-upload-button:focus, .yith-plugin-ui .yith-save-button:focus, .yith-plugin-ui .yith-plugin-fw-select-all:focus, .yith-plugin-ui .yith-plugin-fw-deselect-all:focus, .yith-plugin-ui .yith-plugin-fw-upload-button-reset:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button:focus, .wp-core-ui .yith-plugin-ui [class^="yith-plugin-fw__button--"]:focus, .wp-core-ui .yith-plugin-ui [class*=" yith-plugin-fw__button--"]:focus,
.wp-core-ui .yith-plugin-ui .yith-add-button:focus, .wp-core-ui .yith-plugin-ui .yith-edit-button:focus, .wp-core-ui .yith-plugin-ui .yith-update-button:focus, .wp-core-ui .yith-plugin-ui .yith-remove-button:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button:focus, .wp-core-ui .yith-plugin-ui .yith-save-button:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-select-all:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-deselect-all:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button-reset:focus {
  outline: none;
  box-shadow: none;
}

.yith-plugin-ui .yith-plugin-fw__button--primary, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--primary {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
}

.yith-plugin-ui .yith-plugin-fw__button--primary:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--primary:focus {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
  box-shadow: 0 0 0 3px var(--yith-primary-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--primary:hover, .yith-plugin-ui .yith-plugin-fw__button--primary:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--primary:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--primary:active {
  background: var(--yith-primary-hover);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary-hover);
}

.yith-plugin-ui .yith-plugin-fw__button--secondary, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--secondary {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--secondary:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--secondary:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--secondary:hover, .yith-plugin-ui .yith-plugin-fw__button--secondary:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--secondary:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--secondary:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--delete, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--delete {
  background: var(--yith-delete);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete);
}

.yith-plugin-ui .yith-plugin-fw__button--delete:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--delete:focus {
  background: var(--yith-delete);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete);
  box-shadow: 0 0 0 3px var(--yith-delete-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--delete:hover, .yith-plugin-ui .yith-plugin-fw__button--delete:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--delete:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--delete:active {
  background: var(--yith-delete-hover);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete-hover);
}

.yith-plugin-ui .yith-plugin-fw__button--add, .yith-plugin-ui .yith-add-button, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add, .wp-core-ui .yith-plugin-ui .yith-add-button {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
}

.yith-plugin-ui .yith-plugin-fw__button--add:focus, .yith-plugin-ui .yith-add-button:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add:focus, .wp-core-ui .yith-plugin-ui .yith-add-button:focus {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
  box-shadow: 0 0 0 3px var(--yith-primary-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--add:hover, .yith-plugin-ui .yith-plugin-fw__button--add:active, .yith-plugin-ui .yith-add-button:hover, .yith-plugin-ui .yith-add-button:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add:active, .wp-core-ui .yith-plugin-ui .yith-add-button:hover, .wp-core-ui .yith-plugin-ui .yith-add-button:active {
  background: var(--yith-primary-hover);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary-hover);
}

.yith-plugin-ui .yith-plugin-fw__button--add:before, .yith-plugin-ui .yith-add-button:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add:before, .wp-core-ui .yith-plugin-ui .yith-add-button:before {
  font-family: yith-icon;
  content: "";
  margin: 0 8px 0 -5px;
  font-size: 1.15em;
  font-weight: 400;
  vertical-align: top;
}

.yith-plugin-ui .yith-plugin-fw__button--add:before, .yith-plugin-ui .yith-add-button:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add:before, .wp-core-ui .yith-plugin-ui .yith-add-button:before {
  display: inline-block;
  margin: 0 10px 0 -5px;
  font-size: .95em;
  transition: transform .2s, margin .2s, font-size .2s;
  transition-timing-function: ease-in-out;
}

.yith-plugin-ui .yith-plugin-fw__button--add.closed, .yith-plugin-ui .yith-add-button.closed, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add.closed, .wp-core-ui .yith-plugin-ui .yith-add-button.closed {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--add.closed:focus, .yith-plugin-ui .yith-add-button.closed:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add.closed:focus, .wp-core-ui .yith-plugin-ui .yith-add-button.closed:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--add.closed:hover, .yith-plugin-ui .yith-plugin-fw__button--add.closed:active, .yith-plugin-ui .yith-add-button.closed:hover, .yith-plugin-ui .yith-add-button.closed:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add.closed:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add.closed:active, .wp-core-ui .yith-plugin-ui .yith-add-button.closed:hover, .wp-core-ui .yith-plugin-ui .yith-add-button.closed:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--add.closed:before, .yith-plugin-ui .yith-add-button.closed:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--add.closed:before, .wp-core-ui .yith-plugin-ui .yith-add-button.closed:before {
  font-size: 1.15em;
  margin: 0 8px 0 -5px;
  transform: rotate(-45deg);
}

.yith-plugin-ui .yith-plugin-fw__button--close, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--close {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--close:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--close:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--close:hover, .yith-plugin-ui .yith-plugin-fw__button--close:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--close:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--close:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--close:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--close:before {
  font-family: yith-icon;
  content: "";
  margin: 0 8px 0 -5px;
  font-size: 1.15em;
  font-weight: 400;
  vertical-align: top;
}

.yith-plugin-ui .yith-plugin-fw__button--edit, .yith-plugin-ui .yith-edit-button, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--edit, .wp-core-ui .yith-plugin-ui .yith-edit-button {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--edit:focus, .yith-plugin-ui .yith-edit-button:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--edit:focus, .wp-core-ui .yith-plugin-ui .yith-edit-button:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--edit:hover, .yith-plugin-ui .yith-plugin-fw__button--edit:active, .yith-plugin-ui .yith-edit-button:hover, .yith-plugin-ui .yith-edit-button:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--edit:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--edit:active, .wp-core-ui .yith-plugin-ui .yith-edit-button:hover, .wp-core-ui .yith-plugin-ui .yith-edit-button:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw__button--edit:before, .yith-plugin-ui .yith-edit-button:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--edit:before, .wp-core-ui .yith-plugin-ui .yith-edit-button:before {
  font-family: yith-icon;
  content: "";
  margin: 0 8px 0 -5px;
  font-size: 1.15em;
  font-weight: 400;
  vertical-align: top;
}

.yith-plugin-ui .yith-plugin-fw__button--update, .yith-plugin-ui .yith-update-button, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--update, .wp-core-ui .yith-plugin-ui .yith-update-button {
  background: var(--yith-update);
  color: var(--yith-update-text);
  border: 1px solid var(--yith-update);
}

.yith-plugin-ui .yith-plugin-fw__button--update:focus, .yith-plugin-ui .yith-update-button:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--update:focus, .wp-core-ui .yith-plugin-ui .yith-update-button:focus {
  background: var(--yith-update);
  color: var(--yith-update-text);
  border: 1px solid var(--yith-update);
  box-shadow: 0 0 0 3px var(--yith-update-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--update:hover, .yith-plugin-ui .yith-plugin-fw__button--update:active, .yith-plugin-ui .yith-update-button:hover, .yith-plugin-ui .yith-update-button:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--update:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--update:active, .wp-core-ui .yith-plugin-ui .yith-update-button:hover, .wp-core-ui .yith-plugin-ui .yith-update-button:active {
  background: var(--yith-update-hover);
  color: var(--yith-update-text);
  border: 1px solid var(--yith-update-hover);
}

.yith-plugin-ui .yith-plugin-fw__button--update:before, .yith-plugin-ui .yith-update-button:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--update:before, .wp-core-ui .yith-plugin-ui .yith-update-button:before {
  font-family: yith-icon;
  content: "";
  margin: 0 8px 0 -5px;
  font-size: 1.15em;
  font-weight: 400;
  vertical-align: top;
}

.yith-plugin-ui .yith-plugin-fw__button--trash, .yith-plugin-ui .yith-remove-button, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--trash, .wp-core-ui .yith-plugin-ui .yith-remove-button {
  background: var(--yith-delete);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete);
}

.yith-plugin-ui .yith-plugin-fw__button--trash:focus, .yith-plugin-ui .yith-remove-button:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--trash:focus, .wp-core-ui .yith-plugin-ui .yith-remove-button:focus {
  background: var(--yith-delete);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete);
  box-shadow: 0 0 0 3px var(--yith-delete-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--trash:hover, .yith-plugin-ui .yith-plugin-fw__button--trash:active, .yith-plugin-ui .yith-remove-button:hover, .yith-plugin-ui .yith-remove-button:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--trash:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--trash:active, .wp-core-ui .yith-plugin-ui .yith-remove-button:hover, .wp-core-ui .yith-plugin-ui .yith-remove-button:active {
  background: var(--yith-delete-hover);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete-hover);
}

.yith-plugin-ui .yith-plugin-fw__button--trash:before, .yith-plugin-ui .yith-remove-button:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--trash:before, .wp-core-ui .yith-plugin-ui .yith-remove-button:before {
  font-family: yith-icon;
  content: "";
  margin: 0 8px 0 -5px;
  font-size: 1.15em;
  font-weight: 400;
  vertical-align: top;
}

.yith-plugin-ui .yith-plugin-fw__button--upload, .yith-plugin-ui .yith-plugin-fw-upload-button, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--upload, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
}

.yith-plugin-ui .yith-plugin-fw__button--upload:focus, .yith-plugin-ui .yith-plugin-fw-upload-button:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--upload:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button:focus {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
  box-shadow: 0 0 0 3px var(--yith-primary-focus);
}

.yith-plugin-ui .yith-plugin-fw__button--upload:hover, .yith-plugin-ui .yith-plugin-fw__button--upload:active, .yith-plugin-ui .yith-plugin-fw-upload-button:hover, .yith-plugin-ui .yith-plugin-fw-upload-button:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--upload:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--upload:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button:active {
  background: var(--yith-primary-hover);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary-hover);
}

.yith-plugin-ui .yith-plugin-fw__button--upload:before, .yith-plugin-ui .yith-plugin-fw-upload-button:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--upload:before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button:before {
  font-family: yith-icon;
  content: "";
  margin: 0 8px 0 -5px;
  font-size: 1.15em;
  font-weight: 400;
  vertical-align: top;
}

.yith-plugin-ui .yith-save-button, .wp-core-ui .yith-plugin-ui .yith-save-button {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
}

.yith-plugin-ui .yith-save-button:focus, .wp-core-ui .yith-plugin-ui .yith-save-button:focus {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
  box-shadow: 0 0 0 3px var(--yith-primary-focus);
}

.yith-plugin-ui .yith-save-button:hover, .yith-plugin-ui .yith-save-button:active, .wp-core-ui .yith-plugin-ui .yith-save-button:hover, .wp-core-ui .yith-plugin-ui .yith-save-button:active {
  background: var(--yith-primary-hover);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary-hover);
}

.yith-plugin-ui .yith-plugin-fw-select-all,
.yith-plugin-ui .yith-plugin-fw-deselect-all,
.yith-plugin-ui .yith-plugin-fw-upload-button-reset, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-select-all,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-deselect-all,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button-reset {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .yith-plugin-fw-select-all:focus,
.yith-plugin-ui .yith-plugin-fw-deselect-all:focus,
.yith-plugin-ui .yith-plugin-fw-upload-button-reset:focus, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-select-all:focus,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-deselect-all:focus,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button-reset:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-ui .yith-plugin-fw-select-all:hover, .yith-plugin-ui .yith-plugin-fw-select-all:active,
.yith-plugin-ui .yith-plugin-fw-deselect-all:hover,
.yith-plugin-ui .yith-plugin-fw-deselect-all:active,
.yith-plugin-ui .yith-plugin-fw-upload-button-reset:hover,
.yith-plugin-ui .yith-plugin-fw-upload-button-reset:active, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-select-all:hover, .wp-core-ui .yith-plugin-ui .yith-plugin-fw-select-all:active,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-deselect-all:hover,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-deselect-all:active,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button-reset:hover,
.wp-core-ui .yith-plugin-ui .yith-plugin-fw-upload-button-reset:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-ui .button-secondary span.yith-icon, .wp-core-ui .yith-plugin-ui .button-secondary span.yith-icon {
  margin-left: 0;
  margin-right: 10px;
  line-height: normal;
}

.yith-plugin-ui .button-secondary span.yith-icon:before, .wp-core-ui .yith-plugin-ui .button-secondary span.yith-icon:before {
  color: inherit;
  font-size: 15px;
  font-weight: 400;
}

.yith-plugin-ui .yith-plugin-fw__button--with-icon, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--with-icon {
  position: relative;
  padding-left: 30px;
}

.yith-plugin-ui .yith-plugin-fw__button--with-icon i, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--with-icon i {
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
  font-size: 1em;
  font-weight: 400;
}

.yith-plugin-ui .yith-plugin-fw__button--xl, .yith-plugin-ui .button-xl, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xl, .wp-core-ui .yith-plugin-ui .button-xl {
  padding: 0 20px;
  font-size: 14px;
  line-height: 38px;
}

.yith-plugin-ui .yith-plugin-fw__button--xl::before, .yith-plugin-ui .button-xl::before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xl::before, .wp-core-ui .yith-plugin-ui .button-xl::before {
  margin: 0 10px 0 -5px;
}

.yith-plugin-ui .yith-plugin-fw__button--xl.yith-plugin-fw__button--with-icon, .yith-plugin-ui .button-xl.yith-plugin-fw__button--with-icon, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xl.yith-plugin-fw__button--with-icon, .wp-core-ui .yith-plugin-ui .button-xl.yith-plugin-fw__button--with-icon {
  padding-left: 40px;
}

.yith-plugin-ui .yith-plugin-fw__button--xl.yith-plugin-fw__button--with-icon i, .yith-plugin-ui .button-xl.yith-plugin-fw__button--with-icon i, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xl.yith-plugin-fw__button--with-icon i, .wp-core-ui .yith-plugin-ui .button-xl.yith-plugin-fw__button--with-icon i {
  left: 14px;
}

.yith-plugin-ui .yith-plugin-fw__button--xxl, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xxl {
  padding: 0 28px;
  font-size: 16px;
  line-height: 45px;
}

.yith-plugin-ui .yith-plugin-fw__button--xxl::before, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xxl::before {
  margin: 0 15px 0 -10px;
}

.yith-plugin-ui .yith-plugin-fw__button--xxl.yith-plugin-fw__button--with-icon, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xxl.yith-plugin-fw__button--with-icon {
  padding-left: 45px;
}

.yith-plugin-ui .yith-plugin-fw__button--xxl.yith-plugin-fw__button--with-icon i, .wp-core-ui .yith-plugin-ui .yith-plugin-fw__button--xxl.yith-plugin-fw__button--with-icon i {
  left: 15px;
}

.yith-plugin-fw__boxed-row, .yith-plugin-fw__boxed-row--hover-highlight {
  background: var(--yith-content-bg);
  border-radius: 5px;
  box-shadow: 0 0 0 1px var(--yith-light-border-color), 0 3px 11px 6px var(--yith-light-shadow);
  transition: background-color .2s ease-in-out;
  padding: 25px;
  margin-bottom: 25px;
  margin-top: 25px;
}

.yith-plugin-fw__boxed-row--hover-highlight:hover {
  background: var(--yith-table-row-highlight);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__message {
  margin-bottom: 20px;
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__footer {
  text-align: right;
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button {
  height: auto;
  line-height: 33px;
  border-radius: 4px;
  padding: 0 20px;
  font-weight: 600;
  cursor: pointer;
  display: inline-block;
  margin-right: 10px;
  white-space: nowrap;
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button:last-child {
  margin-right: 0;
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--cancel {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--cancel:focus {
  background: var(--yith-outline-bg);
  border: 1px solid var(--yith-outline-border);
  color: var(--yith-outline-text);
  box-shadow: 0 0 0 3px var(--yith-outline-focus);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--cancel:hover, .yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--cancel:active {
  background: var(--yith-outline-bg-hover);
  border-color: var(--yith-outline-border-hover);
  color: var(--yith-outline-text);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--confirm {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--confirm:focus {
  background: var(--yith-primary);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary);
  box-shadow: 0 0 0 3px var(--yith-primary-focus);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--confirm:hover, .yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--confirm:active {
  background: var(--yith-primary-hover);
  color: var(--yith-primary-text);
  border: 1px solid var(--yith-primary-hover);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--delete {
  background: var(--yith-delete);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--delete:focus {
  background: var(--yith-delete);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete);
  box-shadow: 0 0 0 3px var(--yith-delete-focus);
}

.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--delete:hover, .yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button.yith-plugin-fw__confirm__button--delete:active {
  background: var(--yith-delete-hover);
  color: var(--yith-delete-text);
  border: 1px solid var(--yith-delete-hover);
}

.yith-plugin-fw__list-table-blank-state {
  padding: 30px 30px 0;
  text-align: center;
  display: flex;
  flex-direction: column;
}

.yith-plugin-fw__list-table-blank-state > * {
  margin-bottom: 30px;
}

.yith-plugin-fw__list-table-blank-state img.yith-plugin-fw__list-table-blank-state__icon {
  width: 100px;
  margin: 0 auto 30px;
}

.yith-plugin-fw__list-table-blank-state i.yith-plugin-fw__list-table-blank-state__icon {
  font-size: 65px;
  margin: 0 auto 30px;
}

.yith-plugin-fw__list-table-blank-state .yith-plugin-fw__list-table-blank-state__message {
  font-size: 1.4em;
  line-height: 1.5;
}

.yith-plugin-fw__modal__wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999999;
  background: rgba(34, 59, 80, 0.7);
  animation: yith-plugin-fw-fade-in .3s forwards;
  box-sizing: border-box;
}

.yith-plugin-fw__modal__wrap .yith-plugin-fw__modal__main {
  position: relative;
  background: #fff;
  border-radius: 10px;
  box-shadow: 1px 3px 16px rgba(0, 22, 59, 0.4);
  animation: yith-plugin-fw-appear-from-top .3s forwards;
  overflow: hidden;
  max-width: calc(100% - 20px);
  max-height: calc(100% - 20px);
  display: flex;
  flex-direction: column;
}

.yith-plugin-fw__modal__wrap .yith-plugin-fw__modal__close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #aaa;
  cursor: pointer;
}

.yith-plugin-fw__modal__wrap .yith-plugin-fw__modal__close:hover {
  color: #444;
}

.yith-plugin-fw__modal__wrap .yith-plugin-fw__modal__title {
  padding: 20px 25px;
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.5em;
  color: var(--yith-primary);
}

.yith-plugin-fw__modal__wrap .yith-plugin-fw__modal__content {
  padding: 0 25px 25px;
}

.yith-plugin-fw__modal__wrap .yith-plugin-fw__modal__footer {
  padding: 25px;
  background: #f7f7f7;
}

.yith-plugin-fw__modal__wrap.yith-plugin-fw__modal__wrap--scroll-content .yith-plugin-fw__modal__content {
  overflow-y: auto;
}

.yith-plugin-fw__modal--opened {
  overflow: hidden;
}

.yith-plugin-fw__modal--allow-wp-menu .yith-plugin-fw__modal__wrap {
  z-index: 99;
  padding-left: 160px;
  padding-top: 32px;
}

.yith-plugin-fw__modal--allow-wp-menu #adminmenuback {
  z-index: 100;
}

@media only screen and (max-width: 960px) {
  .folded .yith-plugin-fw__modal__wrap {
    padding-left: 36px;
  }
  .auto-fold .yith-plugin-fw__modal--allow-wp-menu .yith-plugin-fw__modal__wrap {
    padding-left: 36px;
  }
}

@media screen and (max-width: 782px) {
  .auto-fold .yith-plugin-fw__modal--allow-wp-menu .yith-plugin-fw__modal__wrap {
    z-index: 999999;
    width: 100%;
    height: 100%;
    padding-left: 0;
    padding-top: 0;
  }
  .auto-fold .yith-plugin-fw__modal--allow-wp-menu-in-mobile .yith-plugin-fw__modal__wrap {
    z-index: 99;
    padding-top: 46px;
  }
  .auto-fold .yith-plugin-fw__modal--allow-wp-menu-in-mobile.wp-responsive-open .yith-plugin-fw__modal__wrap {
    padding-left: 190px;
  }
}

#tiptip_holder {
  display: none;
  z-index: 8675309;
  position: absolute;
  top: 0;
  /*rtl:ignore*/
  left: 0;
}

#tiptip_holder.tip_top {
  padding-bottom: 5px;
}

#tiptip_holder.tip_top #tiptip_arrow_inner {
  margin-top: -7px;
  margin-left: -6px;
  border-top-color: #333;
}

#tiptip_holder.tip_bottom {
  padding-top: 5px;
}

#tiptip_holder.tip_bottom #tiptip_arrow_inner {
  margin-top: -5px;
  margin-left: -6px;
  border-bottom-color: #333;
}

#tiptip_holder.tip_right {
  padding-left: 5px;
}

#tiptip_holder.tip_right #tiptip_arrow_inner {
  margin-top: -6px;
  margin-left: -5px;
  border-right-color: #333;
}

#tiptip_holder.tip_left {
  padding-right: 5px;
}

#tiptip_holder.tip_left #tiptip_arrow_inner {
  margin-top: -6px;
  margin-left: -7px;
  border-left-color: #333;
}

#tiptip_holder #tiptip_content {
  color: #fff;
  font-size: 0.8em;
  max-width: 150px;
  background: #333;
  text-align: center;
  border-radius: 3px;
  padding: 0.618em 1em;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

#tiptip_holder #tiptip_content code {
  padding: 1px;
  background: #888;
}

#tiptip_holder #tiptip_arrow,
#tiptip_holder #tiptip_arrow_inner {
  position: absolute;
  border-color: transparent;
  border-style: solid;
  border-width: 6px;
  height: 0;
  width: 0;
}

/**
 * YITH Plugin UI - Post Type Style
 */
table.yith-plugin-fw__classic-table {
  border: 2px solid var(--yith-table-border-light);
  background: var(--yith-content-bg);
  box-shadow: none;
  border-spacing: 0;
}

table.yith-plugin-fw__classic-table th, table.yith-plugin-fw__classic-table thead td, table.yith-plugin-fw__classic-table tfoot td {
  text-align: left;
  line-height: 1.3em;
  font-size: 14px;
}

table.yith-plugin-fw__classic-table thead th, table.yith-plugin-fw__classic-table thead td {
  border-bottom: 0;
}

table.yith-plugin-fw__classic-table tfoot th, table.yith-plugin-fw__classic-table tfoot td {
  border-top: 0;
}

table.yith-plugin-fw__classic-table tbody tr th, table.yith-plugin-fw__classic-table tbody tr td {
  vertical-align: middle;
  padding: 15px;
}

table.yith-plugin-fw__classic-table tbody tr:hover {
  background: var(--yith-table-row-highlight);
}

table.yith-plugin-fw__classic-table thead td, table.yith-plugin-fw__classic-table thead th, table.yith-plugin-fw__classic-table tfoot td, table.yith-plugin-fw__classic-table tfoot th {
  padding: 15px;
  font-weight: 600;
}

table.yith-plugin-fw__classic-table tbody > :nth-child(odd) {
  background-color: var(--yith-table-row-striped);
}

table.yith-plugin-fw__classic-table.wp-list-table tfoot {
  display: none;
}

table.yith-plugin-fw__classic-table.wp-list-table .check-column {
  width: 2em;
}

table.yith-plugin-fw__classic-table.wp-list-table th.sortable a, table.yith-plugin-fw__classic-table.wp-list-table th.sorted a {
  padding: 0 8px 0 0;
  color: inherit;
}

table.yith-plugin-fw__classic-table.wp-list-table th.sortable a:hover, table.yith-plugin-fw__classic-table.wp-list-table th.sorted a:hover {
  color: var(--yith-link);
}

table.yith-plugin-fw__classic-table.wp-list-table .sorting-indicator {
  visibility: visible;
}

table.yith-plugin-fw__classic-table.wp-list-table .sorting-indicator:before {
  font-family: yith-icon;
  content: "\f116";
  color: inherit;
  font-size: 10px;
  top: 0;
  left: 0;
}

table.yith-plugin-fw__classic-table.wp-list-table th.sorted.asc .sorting-indicator:before,
table.yith-plugin-fw__classic-table.wp-list-table th.desc:hover span.sorting-indicator:before,
table.yith-plugin-fw__classic-table.wp-list-table th.desc a:focus span.sorting-indicator:before {
  content: "\f113";
  font-weight: 600;
}

table.yith-plugin-fw__classic-table.wp-list-table th.sorted.desc .sorting-indicator:before,
table.yith-plugin-fw__classic-table.wp-list-table th.asc:hover span.sorting-indicator:before,
table.yith-plugin-fw__classic-table.wp-list-table th.asc a:focus span.sorting-indicator:before {
  content: "\f110";
  font-weight: 600;
}

table.yith-plugin-fw__classic-table.wp-list-table thead th.column-actions, table.yith-plugin-fw__classic-table.wp-list-table tfoot th.column-actions {
  visibility: hidden;
}

table.yith-plugin-fw__classic-table.wp-list-table th.column-actions, table.yith-plugin-fw__classic-table.wp-list-table td.column-actions {
  text-align: right;
}

table.yith-plugin-fw__classic-table.wp-list-table .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 0;
  transition: .3s;
}

table.yith-plugin-fw__classic-table.wp-list-table tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 1;
}

table.yith-plugin-fw__boxed-table {
  border: 0;
  border-spacing: 0 20px;
  box-shadow: none;
  background: transparent;
}

table.yith-plugin-fw__boxed-table th, table.yith-plugin-fw__boxed-table thead td, table.yith-plugin-fw__boxed-table tfoot td {
  text-align: left;
  line-height: 1.3em;
  font-size: 14px;
}

table.yith-plugin-fw__boxed-table thead th, table.yith-plugin-fw__boxed-table thead td {
  border-bottom: 0;
  padding: 0 0 0 25px;
  font-weight: 600;
}

table.yith-plugin-fw__boxed-table tbody tr {
  background: var(--yith-content-bg);
  border-radius: 5px;
  box-shadow: 0 0 0 1px var(--yith-light-border-color), 0 3px 11px 6px var(--yith-light-shadow);
  transition: background-color .2s ease-in-out;
}

table.yith-plugin-fw__boxed-table tbody tr th, table.yith-plugin-fw__boxed-table tbody tr td {
  background: transparent;
  vertical-align: middle;
  padding: 25px 0 25px 25px;
}

table.yith-plugin-fw__boxed-table tbody tr td:last-child {
  padding-right: 25px;
}

table.yith-plugin-fw__boxed-table tbody tr th:first-child,
table.yith-plugin-fw__boxed-table tbody tr td:first-child {
  border-radius: 5px 0 0 5px;
}

table.yith-plugin-fw__boxed-table tbody tr th:last-child,
table.yith-plugin-fw__boxed-table tbody tr td:last-child {
  padding-right: 25px;
  border-radius: 0 5px 5px 0;
}

table.yith-plugin-fw__boxed-table tbody tr:hover {
  background: var(--yith-table-row-highlight);
}

table.yith-plugin-fw__boxed-table.wp-list-table tfoot {
  display: none;
}

table.yith-plugin-fw__boxed-table.wp-list-table .check-column {
  width: 2em;
}

table.yith-plugin-fw__boxed-table.wp-list-table th.sortable a, table.yith-plugin-fw__boxed-table.wp-list-table th.sorted a {
  padding: 0 8px 0 0;
  color: inherit;
}

table.yith-plugin-fw__boxed-table.wp-list-table th.sortable a:hover, table.yith-plugin-fw__boxed-table.wp-list-table th.sorted a:hover {
  color: var(--yith-link);
}

table.yith-plugin-fw__boxed-table.wp-list-table .sorting-indicator {
  visibility: visible;
}

table.yith-plugin-fw__boxed-table.wp-list-table .sorting-indicator:before {
  font-family: yith-icon;
  content: "\f116";
  color: inherit;
  font-size: 10px;
  top: 0;
  left: 0;
}

table.yith-plugin-fw__boxed-table.wp-list-table th.sorted.asc .sorting-indicator:before,
table.yith-plugin-fw__boxed-table.wp-list-table th.desc:hover span.sorting-indicator:before,
table.yith-plugin-fw__boxed-table.wp-list-table th.desc a:focus span.sorting-indicator:before {
  content: "\f113";
  font-weight: 600;
}

table.yith-plugin-fw__boxed-table.wp-list-table th.sorted.desc .sorting-indicator:before,
table.yith-plugin-fw__boxed-table.wp-list-table th.asc:hover span.sorting-indicator:before,
table.yith-plugin-fw__boxed-table.wp-list-table th.asc a:focus span.sorting-indicator:before {
  content: "\f110";
  font-weight: 600;
}

table.yith-plugin-fw__boxed-table.wp-list-table thead th.column-actions, table.yith-plugin-fw__boxed-table.wp-list-table tfoot th.column-actions {
  visibility: hidden;
}

table.yith-plugin-fw__boxed-table.wp-list-table th.column-actions, table.yith-plugin-fw__boxed-table.wp-list-table td.column-actions {
  text-align: right;
}

table.yith-plugin-fw__boxed-table.wp-list-table .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 0;
  transition: .3s;
}

table.yith-plugin-fw__boxed-table.wp-list-table tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 1;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table {
  border: 2px solid var(--yith-table-border-light);
  background: var(--yith-content-bg);
  box-shadow: none;
  border-spacing: 0;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table th, .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead td, .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot td {
  text-align: left;
  line-height: 1.3em;
  font-size: 14px;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table thead th, .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead td {
  border-bottom: 0;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot th, .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot td {
  border-top: 0;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr th, .yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr td {
  vertical-align: middle;
  padding: 15px;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr:hover, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr:hover {
  background: var(--yith-table-row-highlight);
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table thead td, .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead th, .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot td, .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot th {
  padding: 15px;
  font-weight: 600;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody > :nth-child(odd), .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody > :nth-child(odd) {
  background-color: var(--yith-table-row-striped);
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot {
  display: none;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table .check-column, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table .check-column {
  width: 2em;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sortable a, .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted a, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sortable a, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted a {
  padding: 0 8px 0 0;
  color: inherit;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sortable a:hover, .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted a:hover, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sortable a:hover, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted a:hover {
  color: var(--yith-link);
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table .sorting-indicator, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table .sorting-indicator {
  visibility: visible;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table .sorting-indicator:before, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table .sorting-indicator:before {
  font-family: yith-icon;
  content: "\f116";
  color: inherit;
  font-size: 10px;
  top: 0;
  left: 0;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted.asc .sorting-indicator:before,
.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.desc:hover span.sorting-indicator:before,
.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.desc a:focus span.sorting-indicator:before, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted.asc .sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.desc:hover span.sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.desc a:focus span.sorting-indicator:before {
  content: "\f113";
  font-weight: 600;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted.desc .sorting-indicator:before,
.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.asc:hover span.sorting-indicator:before,
.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.asc a:focus span.sorting-indicator:before, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.sorted.desc .sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.asc:hover span.sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.asc a:focus span.sorting-indicator:before {
  content: "\f110";
  font-weight: 600;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table thead th.column-actions, .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot th.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table thead th.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tfoot th.column-actions {
  visibility: hidden;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table th.column-actions, .yith-plugin-ui--classic-wp-list-style table.wp-list-table td.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table th.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table td.column-actions {
  text-align: right;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible), .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 0;
  transition: .3s;
}

.yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible), .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style table.wp-list-table tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 1;
}

.yith-plugin-ui--classic-wp-list-style .tablenav.bottom, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style .tablenav.bottom {
  display: none;
}

.yith-plugin-ui--classic-wp-list-style .tablenav.bottom .yith-plugin-fw__list-table-blank-state, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style .tablenav.bottom .yith-plugin-fw__list-table-blank-state {
  display: flex;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table {
  border: 0;
  border-spacing: 0 20px;
  box-shadow: none;
  background: transparent;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead td, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tfoot td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tfoot td {
  text-align: left;
  line-height: 1.3em;
  font-size: 14px;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead th, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead td {
  border-bottom: 0;
  padding: 0 0 0 25px;
  font-weight: 600;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr {
  background: var(--yith-content-bg);
  border-radius: 5px;
  box-shadow: 0 0 0 1px var(--yith-light-border-color), 0 3px 11px 6px var(--yith-light-shadow);
  transition: background-color .2s ease-in-out;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr th, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr th, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td {
  background: transparent;
  vertical-align: middle;
  padding: 25px 0 25px 25px;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td:last-child, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td:last-child {
  padding-right: 25px;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr th:first-child,
.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td:first-child, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr th:first-child,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td:first-child {
  border-radius: 5px 0 0 5px;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr th:last-child,
.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td:last-child, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr th:last-child,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr td:last-child {
  padding-right: 25px;
  border-radius: 0 5px 5px 0;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr:hover, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr:hover {
  background: var(--yith-table-row-highlight);
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tfoot, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tfoot {
  display: none;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table .check-column, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table .check-column {
  width: 2em;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sortable a, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted a, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sortable a, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted a {
  padding: 0 8px 0 0;
  color: inherit;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sortable a:hover, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted a:hover, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sortable a:hover, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted a:hover {
  color: var(--yith-link);
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table .sorting-indicator, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table .sorting-indicator {
  visibility: visible;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table .sorting-indicator:before, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table .sorting-indicator:before {
  font-family: yith-icon;
  content: "\f116";
  color: inherit;
  font-size: 10px;
  top: 0;
  left: 0;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted.asc .sorting-indicator:before,
.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.desc:hover span.sorting-indicator:before,
.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.desc a:focus span.sorting-indicator:before, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted.asc .sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.desc:hover span.sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.desc a:focus span.sorting-indicator:before {
  content: "\f113";
  font-weight: 600;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted.desc .sorting-indicator:before,
.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.asc:hover span.sorting-indicator:before,
.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.asc a:focus span.sorting-indicator:before, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.sorted.desc .sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.asc:hover span.sorting-indicator:before,
.yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.asc a:focus span.sorting-indicator:before {
  content: "\f110";
  font-weight: 600;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead th.column-actions, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tfoot th.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table thead th.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tfoot th.column-actions {
  visibility: hidden;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.column-actions, .yith-plugin-ui--boxed-wp-list-style table.wp-list-table td.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table th.column-actions, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table td.column-actions {
  text-align: right;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible), .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 0;
  transition: .3s;
}

.yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible), .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style table.wp-list-table tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
  opacity: 1;
}

.yith-plugin-ui--boxed-wp-list-style .tablenav.bottom, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style .tablenav.bottom {
  display: none;
}

.yith-plugin-ui--boxed-wp-list-style .tablenav.bottom .yith-plugin-fw__list-table-blank-state, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style .tablenav.bottom .yith-plugin-fw__list-table-blank-state {
  display: flex;
}

/**
 * YITH Animations
 */
.yith-plugin-fw-animate__appear-from-bottom {
  animation: yith-plugin-fw-appear-from-bottom .3s forwards;
}

.yith-plugin-fw-animate__appear-from-top {
  animation: yith-plugin-fw-appear-from-top .3s forwards;
}

.yith-plugin-fw-animate__fade-in {
  animation: yith-plugin-fw-fade-in .3s forwards;
}

@-webkit-keyframes yith-plugin-fw-appear-from-top {
  from {
    opacity: 0;
    transform: translateY(-30%);
    -webkit-transform: translateY(-30%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@keyframes yith-plugin-fw-appear-from-top {
  from {
    opacity: 0;
    transform: translateY(-30%);
    -webkit-transform: translateY(-30%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@-webkit-keyframes yith-plugin-fw-appear-from-bottom {
  from {
    opacity: 0;
    transform: translateY(30%);
    -webkit-transform: translateY(30%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@keyframes yith-plugin-fw-appear-from-bottom {
  from {
    opacity: 0;
    transform: translateY(30%);
    -webkit-transform: translateY(30%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
  }
}

@-webkit-keyframes yith-plugin-fw-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes yith-plugin-fw-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
plugin-fw/assets/css/metaboxes.css000064400000036646151327614500013272 0ustar00/* self-clear floats */
.clearfix:after {
    content    : ".";
    display    : block;
    height     : 0;
    clear      : both;
    visibility : hidden;
    overflow   : hidden;
}

/* ie.css */
* html .clearfix { /* IE6 */
    height : 1%;
}

*:first-child + html .clearfix { /* IE7 */
    min-height : 1%;
}

.clearboth {
    clear : both
}

/* === TAB STYLE */
.metaboxes-tab {
    margin : -6px -12px -8px;
}

.metaboxes-tab div.tabs-panel {
    height     : auto;
    overflow   : visible;
    margin-top : 0px;
    padding    : 0 10px;
    background : none;
    border     : 0;
}

.metaboxes-tab ul.metaboxes-tabs {
    background : #f1f1f1;
    margin     : 0;
    padding    : 10px 0 0 5px;
}

.metaboxes-tab ul.metaboxes-tabs li {
    float      : left;
    background : #dedede;
    margin     : 0 0 0 5px;
}

.metaboxes-tab ul.metaboxes-tabs li a {
    color           : #555;
    text-decoration : none;
    padding         : 8px 15px;
    display         : block;
    box-shadow      : none !important;
}

.metaboxes-tab ul.metaboxes-tabs li.tabs {
    background : #fff;
}

.metaboxes-tab p.field-row {
    margin : 20px 0;
}

.metaboxes-tab div.sep {
    height       : 1px;
    background   : #dfdfdf;
    clear        : both;
    margin-left  : -10px;
    margin-right : -10px;
}

.metaboxes-tab label {
    font-weight : bold;
    width       : 160px;
    float       : left;
    line-height : 23px;
    margin-left : -184px;
}

.metaboxes-tab label small {
    font-weight : normal;
    line-height : 15px;
    font-style  : italic;
    color       : #999;
    display     : block;
}

.metaboxes-tab .yith-plugin-fw-radio__row {
    width      : 100%;
    min-height : 20px;
}

.metaboxes-tab .yith-plugin-fw-radio__row label,
.metaboxes-tab .yith-toggle-elements label,
.metaboxes-tab .yith-add-box label {
    margin-left : 0;
    font-weight : normal;
}

.metaboxes-tab.yith-plugin-ui h3 {
    color          : #2a8db0;
    font-size      : 15px;
    text-transform : uppercase;
    padding        : 5px 20px;
    margin         : 0 0 0 -4px;
    width          : auto;
    background     : transparent;
}

.metaboxes-tab.yith-plugin-ui .yith-add-box,
.metaboxes-tab.yith-plugin-ui .yith-toggle-row {
    width : auto;
}

.metaboxes-tab .wp-picker-container label {
    font-weight : inherit;
    width       : auto;
    float       : none;
    line-height : inherit;
    margin-left : 0;
}

.metaboxes-tab.yith-plugin-ui .yith-plugin-fw-radio__row label {
    width       : auto !important;
    display     : inline-block;
    font-weight : normal;
    float       : none;
}

.metaboxes-tab input[type="checkbox"] {
    vertical-align : middle
}

.metaboxes-tab input.button-secondary, .metaboxes-tab input.checkbox {
    width : auto;
}

.metaboxes-tab p.field-row.textarea .description {
    vertical-align : top;
}

.metaboxes-tab p.field-row.checkbox {
    background : none;
}

.metaboxes-tab .the-metabox {
    margin      : 20px 0;
    margin-left : 184px;
}

.metaboxes-tab .the-metabox.no-label {
    margin      : 20px 0;
    margin-left : 0;
}

.metaboxes-tab hr {
    height       : 0px;
    border-top   : 1px solid #dadada;
    width        : auto;
    margin-left  : -10px;
    margin-right : -10px;
}

.metaboxes-tab .the-metabox p {
    margin : 0;
}

.metaboxes-tab .the-metabox:last-child {
    border-bottom : 0px;
}

.metaboxes-tab .the-metabox.checkbox {
    background : none;
}

.metaboxes-tab span.description.inline {
    display     : inline-block;
    line-height : 23px;
    width       : auto;
    margin      : 0;
}

.metaboxes-tab .slider label {
    padding : 15px 0;
}

.metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs {
    background    : transparent;
    border-bottom : 1px solid #d8d8d8;
    padding       : 10px 0 0 0;
    margin        : 0 10px
}


.metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li {
    background   : #fff;
    border-top   : 1px solid #d8d8d8;
    border-left  : 1px solid #d8d8d8;
    border-right : 1px solid #d8d8d8;
    margin       : 0 0 -1px -1px;
}

.metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li.tabs {
    border-bottom : 1px solid #fff;
}

.metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li a {
    color          : #336374;
    padding        : 10px 18px;
    text-transform : uppercase;
    font-weight    : 600;
    display        : inline-block;
}

.metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li.tabs a {
    color : #2a8db0;
}

/* sortable table posts */

#the-list.ui-sortable tr:hover {
    cursor : move;
}

.the-metabox.preview {
    float : none;
}

.metaboxes-tab .the-metabox.no-label.preview {
    margin-left : 184px;
}

.metaboxes-tab .the-metabox.no-label.preview img {
    box-shadow : 0 1px 8px rgba(0, 0, 0, 0.2);
}

/**************************************
                FIELDS
***************************************/

.metaboxes-tab select,
.metaboxes-tab input[type=text],
.metaboxes-tab input[type=number],
.metaboxes-tab textarea,
.metaboxes-tab .yith-plugin-fw-select,
.metaboxes-tab .yith-plugin-fw-slider-container,
.metaboxes-tab .yith-plugin-fw-text-input,
.metaboxes-tab .yith-plugin-fw-text-array-table,
.metaboxes-tab .yith-plugin-fw-textarea {
    width     : 400px;
    max-width : 100%;
}

.metaboxes-tab.yith-plugin-ui input[type=number] {
    width     : 70px;
    min-width : 70px;
}

.metaboxes-tab.yith-plugin-ui p {
    font-size : 14px;
}

.metaboxes-tab.yith-plugin-ui p.section-description {

    margin : 0 20px 40px 18px;
}

.metaboxes-tab .yith-plugin-fw-text-array-table input[type=text] {
    width : 100%;
}

.metaboxes-tab.yith-plugin-ui .yith-add-box h3 {
    padding     : 0 0 30px 0;
    font-weight : 600;
    margin      : 0;
}

.metaboxes-tab.yith-plugin-ui .select2-container--default .select2-selection--single {
    border : 0;
    margin : 0;
}

/* wp editor */
.the-metabox.textarea-editor .mceIframeContainer {
    background : #fff;
}


.the-metabox.textarea-editor label {
    margin-top : 24px;
}

/* categories */
.categories-panel {
    width        : 30%;
    float        : left;
    margin-right : 4px;
}

.categories-panel .box {
    height     : 200px;
    border     : 1px solid #dfdfdf;
    background : #fff;
    padding    : 6px 10px;
    overflow   : auto;
}

.categories-panel ul {
    list-style : none;
    margin     : 0;
}

.categories-panel ul li {
    line-height : 19px;
    margin      : 0;
    padding     : 0;
    word-wrap   : break-word;
}

.categories-panel ul li label {
    font-weight : normal !important;
    margin-left : 0 !important;
}

.categories-panel input.newcategory {
    width         : 100%;
    margin-bottom : 3px;
}

/* contact form */
.contactform_item {
    border-style     : solid;
    border-width     : 1px;
    line-height      : 1;
    margin-bottom    : 20px;
    padding          : 0;
    background-color : #f5f5f5;
    background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
    border-color     : #dfdfdf;
    border-radius    : 3px 3px 3px 3px;
    box-shadow       : 0 1px 0 #fff inset;
    min-width        : 255px;
    position         : relative;
}

.contactform_item .handlediv {
    position : relative;
    top      : -4px;
}

.contactform_item h3 {
    min-height : 21px;
    margin     : 13px;
}

.contactform_item .inside {
    padding : 10px !important;
}

.contactform_item .deps {
    display : none;
}

.contactform_item .addoptions p.option {
    margin : 5px 0 5px 200px
}

.contactform_item .addoptions p label {
    width : 80px !important;
}

.contactform_item .add-field-option {
    margin-bottom : 10px !important;
}

.remove_item {
    float : right;
}

.metabox-sortable-placeholder {
    border : 1px dotted #dedede;
    margin : 10px 0
}

/* features tab */
.featurestab_item {
    border-style     : solid;
    border-width     : 1px;
    line-height      : 1;
    margin-bottom    : 20px;
    padding          : 0;
    background-color : #f5f5f5;
    background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
    border-color     : #dfdfdf;
    border-radius    : 3px 3px 3px 3px;
    box-shadow       : 0 1px 0 #fff inset;
    min-width        : 255px;
    position         : relative;
}

.featurestab_item .handlediv {
    position : relative;
    top      : -4px;
}

.featurestab_item h3 {
    min-height : 21px
}

.featurestab_item .inside {
    padding : 10px !important;
}

.featurestab_item .deps {
    display : none;
}

.featurestab_item .addoptions p.option {
    margin : 5px 0 5px 200px
}

.featurestab_item .addoptions p label {
    width : 80px !important;
}

.featurestab_item .add-field-option {
    margin-bottom : 10px !important;
}

.messages-panel.updated {
    margin             : 10px 0px 10px !important;
    max-width          : 1200px;
    border-radius      : 5px;
    -webkit-box-sizing : border-box;
    box-sizing         : border-box;
}

.ui-widget-overlay {
    background-image : none !important;
}

.the-metabox .icon_type {
    width        : 30%;
    float        : left;
    margin-right : 40px
}

#post-type-settings .category-list label {
    width : 187px;
}

.remove_cat {
    float           : right;
    text-align      : center;
    display         : block;
    width           : 20px;
    height          : 20px;
    border-radius   : 20px;
    font-weight     : bold;
    font-size       : 10px;
    background      : #efefef;
    text-decoration : none;
}

/* typography */
.the-metabox.typography .select_wrapper.font-family {
    width : 200px;
}

.the-metabox.typography .spinner_container {
    float        : left;
    margin-right : 10px;
}

.the-metabox.typography .spinner_container input.number {
    width                              : 50px !important;
    -webkit-border-top-right-radius    : 0px;
    -webkit-border-bottom-right-radius : 0px;
    -moz-border-radius-topright        : 0px;
    -moz-border-radius-bottomright     : 0px;
    border-top-right-radius            : 0px;
    border-bottom-right-radius         : 0px;
}

/* number */
.the-metabox.number input.number {
    width : 50px !important;
}

/* number */
.rm_number .number {
    width                              : 70px;
    text-align                         : right;
    -webkit-border-top-right-radius    : 0px;
    -webkit-border-bottom-right-radius : 0px;
    -moz-border-radius-topright        : 0px;
    -moz-border-radius-bottomright     : 0px;
    border-top-right-radius            : 0px;
    border-bottom-right-radius         : 0px;
}

.spinner-wrapper {
    position : relative;
    height   : 23px;
    overflow : hidden;
}

.spinner-wrapper input.number {
    float : left;
}

.spinner-wrapper .spinner-button {
    cursor      : pointer;
    float       : left;
    position    : absolute;
    left        : 69px;
    width       : 15px;
    height      : 12px;
    border      : 1px solid #dfdfdf;
    background  : #fff;
    margin      : 0;
    padding     : 0;
    line-height : 9999px;
    overflow    : hidden;
    background  : url('../images/spinner.png') no-repeat center -11px
}

.spinner-wrapper .spinner-button.button-plus {
    top                             : 0;
    -webkit-border-top-right-radius : 3px !important;
    -moz-border-radius-topright     : 3px !important;
    border-top-right-radius         : 3px !important;
}

.spinner-wrapper .spinner-button.button-minus {
    bottom                             : 0;
    background-position                : center -30px;
    -webkit-border-bottom-right-radius : 3px !important;
    -moz-border-radius-bottomright     : 3px !important;
    border-bottom-right-radius         : 3px !important;
}

.spinner-wrapper .spinner-button.button-plus:active {
    background-position : center 0px;
}

.spinner-wrapper .spinner-button.button-minus:active {
    background-position : center -20px;
}

.rm_typography .spinner_container {
    float        : left;
    margin-right : 10px;
}

.rm_typography .spinner-wrapper {
    height : 28px;
}

.rm_typography .spinner-wrapper input.number {
    height : 28px;
}

.rm_typography .spinner-wrapper .spinner-button.button-plus {
    height              : 15px;
    background-position : center -10px;
}

.rm_typography .spinner-wrapper .spinner-button.button-minus {
    height : 14px;
}

.the-metabox .spinner-wrapper .spinner-button {
    left : 49px;
}

.the-metabox.typography .spinner-wrapper .spinner-button {
    left : 35px;
}

/* images */
.the-metabox.images, .the-metabox.images label {
    margin-left : 0;
    display     : block;
}

.the-metabox.images .slides-wrapper {
    clear : both;
}

.the-metabox.images .slides-wrapper li {
    position : relative;
}

.the-metabox.images a.delete {
    display         : block;
    margin-left     : 4px;
    text-decoration : none;
    font-weight     : bold;
    color           : red;
    position        : absolute;
    top             : 0;
    right           : 0;
    width           : 10px;
    height          : 18px;
    z-index         : 10;
    cursor          : pointer !important;
}

/* wp editor */
.wp_themeSkin iframe {
    background : #fff !important;
}

/* custom tabs */
.customtab_item {
    border-style     : solid;
    border-width     : 1px;
    line-height      : 1;
    margin-bottom    : 20px;
    padding          : 0;
    background-color : #f5f5f5;
    background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
    border-color     : #dfdfdf;
    border-radius    : 3px 3px 3px 3px;
    box-shadow       : 0 1px 0 #fff inset;
    min-width        : 255px;
    position         : relative;
}

.customtab_item .handlediv {
    position : relative;
    top      : -4px;
}

.customtab_item h3 {
    min-height : 21px
}

.customtab_item .inside {
    padding : 10px !important;
}

.customtab_item .deps {
    display : none;
}

.customtab_item .addoptions p.option {
    margin : 5px 0 5px 200px
}

.customtab_item .addoptions p label {
    width : 80px !important;
}

.customtab_item .add-field-option {
    margin-bottom : 10px !important;
}

.customtab_item .remove_item {
    float : right;
}

.metabox-sortable-placeholder {
    border : 1px dotted #dedede;
    margin : 10px 0
}

.the-metabox.customtabs {
    margin-left : 0;
}

#customtab_item_sample {
    display : none;
}

.the-metabox.customtabs .field-row {
    margin-bottom : 10px;
}

#yit_custom_tabs label {
    font-weight : normal;
    width       : auto;
    float       : none;
    line-height : auto;
    margin-left : 0;
}

.wp-admin p label input[type=radio] {
    width        : 16px;
    margin-right : 10px;
    margin-top   : 3px;
}

.wp-admin .form-field._preset_onsale_icon_field label input[type=radio] {
    margin-top : 0;
}

.the-metabox .spinner {
    margin-top : 5px;
    float      : none;
}

/*sidebars*/
#choose-sidebars.choose {
    margin-left : 0px;
}

#_active_page_options-container label, #_active_page_options-container p {
    display : inline-block;
    margin  : 0px;
}

#_active_page_options-container label {
    margin-right : 10px;
    margin-top   : 3px;
}

#_active_page_options-container {
    float        : right;
    margin-right : 20px;
    margin-top   : 5px;
    z-index      : 9999 !important;
    position     : absolute;
    right        : 0;
}

/*-----------------------
* Colorpicker - fix issues in combination with third-party themes or plugin (Basel, VC Addons, ...)
*/
.metaboxes-tab .the-metabox.colorpicker {
    display     : block;
    width       : auto;
    height      : auto;
    overflow    : visible;
    top         : auto;
    left        : auto;
    background  : transparent;
    position    : static;
    z-index     : 1;
    font-family : inherit;
}

.the-metabox.checkbox.checkboxgroup-start.clearfix {
    margin : 40px 0 0 264px;
}

.the-metabox.checkbox.checkboxgroup.clearfix {
    margin : 0 0 0 264px;
}plugin-fw/assets/js/wp-pages.js000064400000005652151327614500012467 0ustar00/* global yith_plugin_fw_wp_pages */
jQuery( function ( $ ) {
	var wrap    = $( '.yith-plugin-fw-wp-page-wrapper' ),
		notices = $( 'div.updated, div.error, div.notice' ).not( '#message' ),
		message = $( 'div#message.updated' );

	// prevents the WC message for changes when leaving the panel page
	$( '.yith-plugin-fw-wp-page-wrapper .woo-nav-tab-wrapper' ).removeClass( 'woo-nav-tab-wrapper' ).addClass( 'yith-nav-tab-wrapper' );

	// prevent moving notices withing the tab in WP Pages and move them into the wrapper
	notices.addClass( 'inline' );
	if ( wrap.length ) {
		wrap.prepend( notices );
	}

	// Update message animation.
	if ( message.length ) {
		message.addClass( 'yith-plugin-fw-animate__appear-from-top' ).show();
		message.on( 'click', '.notice-dismiss', function ( e ) {
			e.stopPropagation();
			message.removeClass( 'yith-plugin-fw-animate__appear-from-top' ).slideUp( 200 );
		} )
	}

	// Confirmation window when deleting custom post types and custom terms through Bulk Actions.
	if ( yith_plugin_fw_wp_pages.bulk_delete_confirmation_enabled ) {
		var bulkDeleteConfirmed = false;

		$( document ).on( 'click', '#doaction, #doaction2', function ( e ) {
			var doActionButton     = $( this ),
				bulkActionSelector = doActionButton.siblings( '#bulk-action-selector-top, #bulk-action-selector-bottom' );

			if ( 'yith' in window && 'ui' in yith ) {
				if ( bulkDeleteConfirmed ) {
					bulkDeleteConfirmed = false;
				} else {
					var confirmOptions = {},
						selectedItems  = $( '#the-list .check-column input[type=checkbox]:checked' );

					if ( selectedItems.length ) {
						switch ( bulkActionSelector.val() ) {
							case 'trash':
								confirmOptions.title             = yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_title;
								confirmOptions.message           = yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_message;
								confirmOptions.cancelButton      = yith_plugin_fw_wp_pages.i18n.bulk_trash_cancel_button;
								confirmOptions.confirmButton     = yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_button;
								confirmOptions.confirmButtonType = 'delete';
								break;
							case 'delete':
								confirmOptions.title             = yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_title;
								confirmOptions.message           = yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_message;
								confirmOptions.cancelButton      = yith_plugin_fw_wp_pages.i18n.bulk_delete_cancel_button;
								confirmOptions.confirmButton     = yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_button;
								confirmOptions.confirmButtonType = 'delete';
								break;
						}

						if ( !$.isEmptyObject( confirmOptions ) ) {
							e.preventDefault();

							confirmOptions.closeAfterConfirm = false;
							confirmOptions.onConfirm         = function () {
								bulkDeleteConfirmed = true;
								doActionButton.trigger( 'click' );
							};

							yith.ui.confirm( confirmOptions );
						}
					}
				}

			}
		} );
	}

} );plugin-fw/assets/js/yith-date-format.min.js000064400000002141151327614500014672 0ustar00jQuery(function(t){t(document).on("click",".yith-plugin-fw-date-format__option",function(){var a=t(this),i=a.closest(".yith-plugin-fw-date-format");i.find(".example").text(a.data("preview")),i.find(".yith-date-format-custom").val(a.val())}),t(document).on("click input",".yith-date-format-custom",function(){t(this).closest(".yith-plugin-fw-radio__row").find("input[type=radio]").prop("checked",!0)}),t(document).on("input yith-date-format-change",".yith-date-format-custom",function(){var a=t(this),i=a.closest(".yith-plugin-fw-date-format"),e=i.data("format"),o=i.data("js"),n=i.data("current"),r=i.find(".example"),f=i.find(".spinner");if("yes"===o){var d=new Date(n);d=t.datepicker.formatDate(a.val(),d),r.text(d)}else clearTimeout(t.data(this,"timer")),a.data("timer",setTimeout(function(){if(a.val()){f.addClass("is-active");var i={action:e+"_format",date:a.val()};t.post(ajaxurl,i,function(t){f.removeClass("is-active"),r.text(t)})}},500))}),t(document).on("yith-plugin-fw-date-format-init",function(){t(".yith-date-format-custom").trigger("yith-date-format-change")}).trigger("yith-plugin-fw-date-format-init")});plugin-fw/assets/js/yith-enhanced-select-wc-2.6.min.js000064400000004567151327614500016441 0ustar00jQuery(function(t){"use strict";t(document.body).on("yith-framework-enhanced-select-init",function(){t(":input.yith-post-search").filter(":not(.enhanced)").each(function(){var e={action:"yith_plugin_fw_json_search_posts",security:yith_framework_enhanced_select_params.search_posts_nonce,post_type:"post"},a=t.extend(e,t(this).data()),n={allowClear:!!t(this).data("allow_clear"),placeholder:t(this).data("placeholder"),minimumInputLength:t(this).data("minimum_input_length")?t(this).data("minimum_input_length"):"3",escapeMarkup:function(t){return t},ajax:{url:yith_framework_enhanced_select_params.ajax_url,dataType:"json",quietMillis:250,data:function(t){return a.term=t,a},results:function(e){var a=[];return e&&t.each(e,function(t,e){a.push({id:t,text:e})}),{results:a}},cache:!0}};!0===t(this).data("multiple")?(n.multiple=!0,n.initSelection=function(e,a){var n=t.parseJSON(e.attr("data-selected")),i=[];return t(e.val().split(",")).each(function(t,e){i.push({id:e,text:n[e]})}),a(i)},n.formatSelection=function(t){return'<div class="selected-option" data-id="'+t.id+'">'+t.text+"</div>"}):(n.multiple=!1,n.initSelection=function(t,e){return e({id:t.val(),text:t.attr("data-selected")})}),t(this).select2(n).addClass("enhanced")}),t(":input.yith-term-search").filter(":not(.enhanced)").each(function(){var e={action:"yith_plugin_fw_json_search_terms",security:yith_framework_enhanced_select_params.search_terms_nonce,taxonomy:"category"},a=t.extend(e,t(this).data()),n={allowClear:!!t(this).data("allow_clear"),placeholder:t(this).data("placeholder"),minimumInputLength:t(this).data("minimum_input_length")?t(this).data("minimum_input_length"):"3",escapeMarkup:function(t){return t},ajax:{url:yith_framework_enhanced_select_params.ajax_url,dataType:"json",quietMillis:250,data:function(t){return a.term=t,a},results:function(e){var a=[];return e&&t.each(e,function(t,e){a.push({id:t,text:e})}),{results:a}},cache:!0}};!0===t(this).data("multiple")?(n.multiple=!0,n.initSelection=function(e,a){var n=t.parseJSON(e.attr("data-selected")),i=[];return t(e.val().split(",")).each(function(t,e){i.push({id:e,text:n[e]})}),a(i)},n.formatSelection=function(t){return'<div class="selected-option" data-id="'+t.id+'">'+t.text+"</div>"}):(n.multiple=!1,n.initSelection=function(t,e){return e({id:t.val(),text:t.attr("data-selected")})}),t(this).select2(n).addClass("enhanced")})}).trigger("yith-framework-enhanced-select-init")});plugin-fw/assets/js/select2/select2.min.js000064400000201710151327614500014421 0ustar00/*!
 * Select2 4.0.3
 * https://select2.github.io
 *
 * Released under the MIT license
 * https://github.com/select2/select2/blob/master/LICENSE.md
 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):jQuery)}(function(e){var t=function(){if(e&&e.fn&&e.fn.select2&&e.fn.select2.amd)t=e.fn.select2.amd;var t;return function(){if(!t||!t.requirejs){t?n=t:t={};/**
 * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
 * Available via the MIT or new BSD license.
 * see: http://github.com/jrburke/almond for details
 */
var e,n,i;!function(t){function r(e,t){return $.call(e,t)}function s(e,t){var n,i,r,s,o,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e&&"."===e.charAt(0))if(t){for(o=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[o])&&(e[o]=e[o].replace(b,"")),e=h.slice(0,h.length-1).concat(e),u=0;u<e.length;u+=1)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(1===u&&(".."===e[2]||".."===e[0]))break;u>0&&(e.splice(u-1,2),u-=2)}e=e.join("/")}else 0===e.indexOf("./")&&(e=e.substring(2));if((h||g)&&f){for(u=(n=e.split("/")).length;u>0;u-=1){if(i=n.slice(0,u).join("/"),h)for(d=h.length;d>0;d-=1)if((r=f[h.slice(0,d).join("/")])&&(r=r[i])){s=r,a=u;break}if(s)break;!l&&g&&g[i]&&(l=g[i],c=u)}!s&&l&&(s=l,a=c),s&&(n.splice(0,a,s),e=n.join("/"))}return e}function o(e,n){return function(){var i=w.call(arguments,0);return"string"!=typeof i[0]&&1===i.length&&i.push(null),h.apply(t,i.concat([e,n]))}}function a(e){return function(t){return s(t,e)}}function l(e){return function(t){m[e]=t}}function c(e){if(r(v,e)){var n=v[e];delete v[e],_[e]=!0,p.apply(t,n)}if(!r(m,e)&&!r(_,e))throw new Error("No "+e);return m[e]}function u(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function d(e){return function(){return y&&y.config&&y.config[e]||{}}}var p,h,f,g,m={},v={},y={},_={},$=Object.prototype.hasOwnProperty,w=[].slice,b=/\.js$/;f=function(e,t){var n,i=u(e),r=i[0];return e=i[1],r&&(n=c(r=s(r,t))),r?e=n&&n.normalize?n.normalize(e,a(t)):s(e,t):(r=(i=u(e=s(e,t)))[0],e=i[1],r&&(n=c(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},g={require:function(e){return o(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:d(e)}}},p=function(e,n,i,s){var a,u,d,p,h,y,$=[],w=typeof i;if(s=s||e,"undefined"===w||"function"===w){for(n=!n.length&&i.length?["require","exports","module"]:n,h=0;h<n.length;h+=1)if(p=f(n[h],s),"require"===(u=p.f))$[h]=g.require(e);else if("exports"===u)$[h]=g.exports(e),y=!0;else if("module"===u)a=$[h]=g.module(e);else if(r(m,u)||r(v,u)||r(_,u))$[h]=c(u);else{if(!p.p)throw new Error(e+" missing "+u);p.p.load(p.n,o(s,!0),l(u),{}),$[h]=m[u]}d=i?i.apply(m[e],$):undefined,e&&(a&&a.exports!==t&&a.exports!==m[e]?m[e]=a.exports:d===t&&y||(m[e]=d))}else e&&(m[e]=i)},e=n=h=function(e,n,i,r,s){if("string"==typeof e)return g[e]?g[e](n):c(f(e,n).f);if(!e.splice){if((y=e).deps&&h(y.deps,y.callback),!n)return;n.splice?(e=n,n=i,i=null):e=t}return n=n||function(){},"function"==typeof i&&(i=r,r=s),r?p(t,e,n,i):setTimeout(function(){p(t,e,n,i)},4),h},h.config=function(e){return h(e)},e._defined=m,(i=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),r(m,e)||r(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0}}(),t.requirejs=e,t.require=n,t.define=i}}(),t.define("almond",function(){}),t.define("jquery",[],function(){var t=e||$;return null==t&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),t}),t.define("select2/utils",["jquery"],function(e){function t(e){var t=e.prototype,n=[];for(var i in t)"function"==typeof t[i]&&"constructor"!==i&&n.push(i);return n}var n={};n.Extend=function(e,t){function n(){this.constructor=e}var i={}.hasOwnProperty;for(var r in t)i.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},n.Decorate=function(e,n){function i(){var t=Array.prototype.unshift,i=n.prototype.constructor.length,r=e.prototype.constructor;i>0&&(t.call(arguments,e.prototype.constructor),r=n.prototype.constructor),r.apply(this,arguments)}var r=t(n),s=t(e);n.displayName=e.displayName,i.prototype=new function(){this.constructor=i};for(var o=0;o<s.length;o++){var a=s[o];i.prototype[a]=e.prototype[a]}for(var l=0;l<r.length;l++){var c=r[l];i.prototype[c]=function(e){var t=function(){};e in i.prototype&&(t=i.prototype[e]);var r=n.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),r.apply(this,arguments)}}(c)}return i};var i=function(){this.listeners={}};return i.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},i.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),n[0]._type=e,e in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},i.prototype.invoke=function(e,t){for(var n=0,i=e.length;n<i;n++)e[n].apply(this,t)},n.Observable=i,n.generateChars=function(e){for(var t="",n=0;n<e;n++)t+=Math.floor(36*Math.random()).toString(36);return t},n.bind=function(e,t){return function(){e.apply(t,arguments)}},n._convertData=function(e){for(var t in e){var n=t.split("-"),i=e;if(1!==n.length){for(var r=0;r<n.length;r++){var s=n[r];(s=s.substring(0,1).toLowerCase()+s.substring(1))in i||(i[s]={}),r==n.length-1&&(i[s]=e[t]),i=i[s]}delete e[t]}}return e},n.hasScroll=function(t,n){var i=e(n),r=n.style.overflowX,s=n.style.overflowY;return(r!==s||"hidden"!==s&&"visible"!==s)&&("scroll"===r||"scroll"===s||(i.innerHeight()<n.scrollHeight||i.innerWidth()<n.scrollWidth))},n.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},n.appendMany=function(t,n){if("1.7"===e.fn.jquery.substr(0,3)){var i=e();e.map(n,function(e){i=i.add(e)}),n=i}t.append(n)},n}),t.define("select2/results",["jquery","./utils"],function(e,t){function n(e,t,i){this.$element=e,this.data=i,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&t.attr("aria-multiselectable","true"),this.$results=t,t},n.prototype.clear=function(){this.$results.empty()},n.prototype.displayMessage=function(t){var n=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var i=e('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),r=this.options.get("translations").get(t.message);i.append(n(r(t.args))),i[0].className+=" select2-results__message",this.$results.append(i)},n.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},n.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var i=e.results[n],r=this.option(i);t.push(r)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},n.prototype.position=function(e,t){t.find(".select2-results").append(e)},n.prototype.sort=function(e){return this.options.get("sorter")(e)},n.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");t.length>0?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},n.prototype.setClasses=function(){var t=this;this.data.current(function(n){var i=e.map(n,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var t=e(this),n=e.data(this,"data"),r=""+n.id;null!=n.element&&n.element.selected||null==n.element&&e.inArray(r,i)>-1?t.attr("aria-selected","true"):t.attr("aria-selected","false")})})},n.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},n.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},n.prototype.option=function(t){var n=document.createElement("li");n.className="select2-results__option";var i={role:"treeitem","aria-selected":"false"};t.disabled&&(delete i["aria-selected"],i["aria-disabled"]="true"),null==t.id&&delete i["aria-selected"],null!=t._resultId&&(n.id=t._resultId),t.title&&(n.title=t.title),t.children&&(i.role="group",i["aria-label"]=t.text,delete i["aria-selected"]);for(var r in i){var s=i[r];n.setAttribute(r,s)}if(t.children){var o=e(n),a=document.createElement("strong");a.className="select2-results__group";e(a);this.template(t,a);for(var l=[],c=0;c<t.children.length;c++){var u=t.children[c],d=this.option(u);l.push(d)}var p=e("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});p.append(l),o.append(a),o.append(p)}else this.template(t,n);return e.data(n,"data",t),n},n.prototype.bind=function(t,n){var i=this,r=t.id+"-results";this.$results.attr("id",r),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=i.getHighlightedResults();if(0!==e.length){var t=e.data("data");"true"==e.attr("aria-selected")?i.trigger("close",{}):i.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=i.getHighlightedResults(),t=i.$results.find("[aria-selected]"),n=t.index(e);if(0!==n){var r=n-1;0===e.length&&(r=0);var s=t.eq(r);s.trigger("mouseenter");var o=i.$results.offset().top,a=s.offset().top,l=i.$results.scrollTop()+(a-o);0===r?i.$results.scrollTop(0):a-o<0&&i.$results.scrollTop(l)}}),t.on("results:next",function(){var e=i.getHighlightedResults(),t=i.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var s=i.$results.offset().top+i.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),a=i.$results.scrollTop()+o-s;0===n?i.$results.scrollTop(0):o>s&&i.$results.scrollTop(a)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){i.displayMessage(e)}),e.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,r=e.deltaY>0&&t-e.deltaY<=0,s=e.deltaY<0&&n<=i.$results.height();r?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):s&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(t){var n=e(this),r=n.data("data");"true"!==n.attr("aria-selected")?i.trigger("select",{originalEvent:t,data:r}):i.options.get("multiple")?i.trigger("unselect",{originalEvent:t,data:r}):i.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(t){var n=e(this).data("data");i.getHighlightedResults().removeClass("select2-results__option--highlighted"),i.trigger("results:focus",{data:n,element:e(this)})})},n.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},n.prototype.destroy=function(){this.$results.remove()},n.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,i=e.offset().top,r=this.$results.scrollTop()+(i-n),s=i-n;r-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(s>this.$results.outerHeight()||s<0)&&this.$results.scrollTop(r)}},n.prototype.template=function(t,n){var i=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),s=i(t,n);null==s?n.style.display="none":"string"==typeof s?n.innerHTML=r(s):e(n).append(s)},n}),t.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),t.define("select2/selection/base",["jquery","../utils","../keys"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,t.Observable),i.prototype.render=function(){var t=e('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),t.attr("title",this.$element.attr("title")),t.attr("tabindex",this._tabindex),this.$selection=t,t},i.prototype.bind=function(e,t){var i=this,r=(e.id,e.id+"-results");this.container=e,this.$selection.on("focus",function(e){i.trigger("focus",e)}),this.$selection.on("blur",function(e){i._handleBlur(e)}),this.$selection.on("keydown",function(e){i.trigger("keypress",e),e.which===n.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){i.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){i.update(e.data)}),e.on("open",function(){i.$selection.attr("aria-expanded","true"),i.$selection.attr("aria-owns",r),i._attachCloseHandler(e)}),e.on("close",function(){i.$selection.attr("aria-expanded","false"),i.$selection.removeAttr("aria-activedescendant"),i.$selection.removeAttr("aria-owns"),i.$selection.focus(),i._detachCloseHandler(e)}),e.on("enable",function(){i.$selection.attr("tabindex",i._tabindex)}),e.on("disable",function(){i.$selection.attr("tabindex","-1")})},i.prototype._handleBlur=function(t){var n=this;window.setTimeout(function(){document.activeElement==n.$selection[0]||e.contains(n.$selection[0],document.activeElement)||n.trigger("blur",t)},1)},i.prototype._attachCloseHandler=function(t){e(document.body).on("mousedown.select2."+t.id,function(t){var n=e(t.target).closest(".select2");e(".select2.select2-container--open").each(function(){var t=e(this);this!=n[0]&&t.data("element").select2("close")})})},i.prototype._detachCloseHandler=function(t){e(document.body).off("mousedown.select2."+t.id)},i.prototype.position=function(e,t){t.find(".selection").append(e)},i.prototype.destroy=function(){this._detachCloseHandler(this.container)},i.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},i}),t.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function r(){r.__super__.constructor.apply(this,arguments)}return n.Extend(r,t),r.prototype.render=function(){var e=r.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},r.prototype.bind=function(e,t){var n=this;r.__super__.bind.apply(this,arguments);var i=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i),this.$selection.attr("aria-labelledby",i),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),e.on("focus",function(t){e.isOpen()||n.$selection.focus()}),e.on("selection:update",function(e){n.update(e.data)})},r.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return e("<span></span>")},r.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i),n.prop("title",t.title||t.text)}else this.clear()},r}),t.define("select2/selection/multiple",["jquery","./base","../utils"],function(e,t,n){function i(e,t){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},i.prototype.bind=function(t,n){var r=this;i.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(t){if(!r.options.get("disabled")){var n=e(this).parent().data("data");r.trigger("unselect",{originalEvent:t,data:n})}})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},i.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],i=0;i<e.length;i++){var r=e[i],s=this.selectionContainer(),o=this.display(r,s);s.append(o),s.prop("title",r.title||r.text),s.data("data",r),t.push(s)}var a=this.$selection.find(".select2-selection__rendered");n.appendMany(a,t)}},i}),t.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(t.length>1||n)return e.call(this,t);this.clear();var i=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(i)},t}),t.define("select2/selection/allowClear",["jquery","../keys"],function(e,t){function n(){}return n.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){i._handleClear(e)}),t.on("keypress",function(e){i._handleKeyboardClear(e,t)})},n.prototype._handleClear=function(e,t){if(!this.options.get("disabled")){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();for(var i=n.data("data"),r=0;r<i.length;r++){var s={data:i[r]};if(this.trigger("unselect",s),s.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},n.prototype._handleKeyboardClear=function(e,n,i){i.isOpen()||n.which!=t.DELETE&&n.which!=t.BACKSPACE||this._handleClear(n)},n.prototype.update=function(t,n){if(t.call(this,n),!(this.$selection.find(".select2-selection__placeholder").length>0||0===n.length)){var i=e('<span class="select2-selection__clear">&times;</span>');i.data("data",n),this.$selection.find(".select2-selection__rendered").prepend(i)}},n}),t.define("select2/selection/search",["jquery","../utils","../keys"],function(e,t,n){function i(e,t,n){e.call(this,t,n)}return i.prototype.render=function(t){var n=e('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=n,this.$search=n.find("input");var i=t.call(this);return this._transferTabIndex(),i},i.prototype.bind=function(e,t,i){var r=this;e.call(this,t,i),t.on("open",function(){r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){r.$search.attr("aria-activedescendant",e.id)}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===n.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(t.length>0){var i=t.data("data");r.searchRemoveChoice(i),e.preventDefault()}}});var s=document.documentMode,o=s&&s<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){o?r.$selection.off("input.search input.searchcheck"):r.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(o&&"input"===e.type)r.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=n.SHIFT&&t!=n.CTRL&&t!=n.ALT&&t!=n.TAB&&r.handleSearch(e)}})},i.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},i.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},i.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.focus()},i.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},i.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},i.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";e=""!==this.$search.attr("placeholder")?this.$selection.find(".select2-selection__rendered").innerWidth():.75*(this.$search.val().length+1)+"em",this.$search.css("width",e)},i}),t.define("select2/selection/eventRelay",["jquery"],function(e){function t(){}return t.prototype.bind=function(t,n,i){var r=this,s=["open","opening","close","closing","select","selecting","unselect","unselecting"],o=["opening","closing","selecting","unselecting"];t.call(this,n,i),n.on("*",function(t,n){if(-1!==e.inArray(t,s)){n=n||{};var i=e.Event("select2:"+t,{params:n});r.$element.trigger(i),-1!==e.inArray(t,o)&&(n.prevented=i.isDefaultPrevented())}})},t}),t.define("select2/translation",["jquery","require"],function(e,t){function n(e){this.dict=e||{}}return n.prototype.all=function(){return this.dict},n.prototype.get=function(e){return this.dict[e]},n.prototype.extend=function(t){this.dict=e.extend({},t.all(),this.dict)},n._cache={},n.loadPath=function(e){if(!(e in n._cache)){var i=t(e);n._cache[e]=i}return new n(n._cache[e])},n}),t.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),t.define("select2/data/base",["../utils"],function(e){function t(e,n){t.__super__.constructor.call(this)}return e.Extend(t,e.Observable),t.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},t.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},t.prototype.bind=function(e,t){},t.prototype.destroy=function(){},t.prototype.generateResultId=function(t,n){var i=t.id+"-result-";return i+=e.generateChars(4),null!=n.id?i+="-"+n.id.toString():i+="-"+e.generateChars(4),i},t}),t.define("select2/data/select",["./base","../utils","jquery"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,e),i.prototype.current=function(e){var t=[],i=this;this.$element.find(":selected").each(function(){var e=n(this),r=i.item(e);t.push(r)}),e(t)},i.prototype.select=function(e){var t=this;if(e.selected=!0,n(e.element).is("option"))return e.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(i){var r=[];(e=[e]).push.apply(e,i);for(var s=0;s<e.length;s++){var o=e[s].id;-1===n.inArray(o,r)&&r.push(o)}t.$element.val(r),t.$element.trigger("change")});else{var i=e.id;this.$element.val(i),this.$element.trigger("change")}},i.prototype.unselect=function(e){var t=this;if(this.$element.prop("multiple")){if(e.selected=!1,n(e.element).is("option"))return e.element.selected=!1,void this.$element.trigger("change");this.current(function(i){for(var r=[],s=0;s<i.length;s++){var o=i[s].id;o!==e.id&&-1===n.inArray(o,r)&&r.push(o)}t.$element.val(r),t.$element.trigger("change")})}},i.prototype.bind=function(e,t){var n=this;this.container=e,e.on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},i.prototype.destroy=function(){this.$element.find("*").each(function(){n.removeData(this,"data")})},i.prototype.query=function(e,t){var i=[],r=this;this.$element.children().each(function(){var t=n(this);if(t.is("option")||t.is("optgroup")){var s=r.item(t),o=r.matches(e,s);null!==o&&i.push(o)}}),t({results:i})},i.prototype.addOptions=function(e){t.appendMany(this.$element,e)},i.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:(t=document.createElement("option")).textContent!==undefined?t.textContent=e.text:t.innerText=e.text,e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var i=n(t),r=this._normalizeItem(e);return r.element=t,n.data(t,"data",r),i},i.prototype.item=function(e){var t={};if(null!=(t=n.data(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var i=e.children("option"),r=[],s=0;s<i.length;s++){var o=n(i[s]),a=this.item(o);r.push(a)}t.children=r}return t=this._normalizeItem(t),t.element=e[0],n.data(e[0],"data",t),t},i.prototype._normalizeItem=function(e){n.isPlainObject(e)||(e={id:e,text:e});var t={selected:!1,disabled:!1};return null!=(e=n.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),n.extend({},t,e)},i.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},i}),t.define("select2/data/array",["./select","../utils","jquery"],function(e,t,n){function i(e,t){var n=t.get("data")||[];i.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return t.Extend(i,e),i.prototype.select=function(e){var t=this.$element.find("option").filter(function(t,n){return n.value==e.id.toString()});0===t.length&&(t=this.option(e),this.addOptions(t)),i.__super__.select.call(this,e)},i.prototype.convertToOptions=function(e){for(var i=this,r=this.$element.find("option"),s=r.map(function(){return i.item(n(this)).id}).get(),o=[],a=0;a<e.length;a++){var l=this._normalizeItem(e[a]);if(n.inArray(l.id,s)>=0){var c=r.filter(function(e){return function(){return n(this).val()==e.id}}(l)),u=this.item(c),d=n.extend(!0,{},l,u),p=this.option(d);c.replaceWith(p)}else{var h=this.option(l);if(l.children){var f=this.convertToOptions(l.children);t.appendMany(h,f)}o.push(h)}}return o},i}),t.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,n){function i(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),i.__super__.constructor.call(this,e,t)}return t.Extend(i,e),i.prototype._applyDefaults=function(e){var t={data:function(e){return n.extend({},e,{q:e.term})},transport:function(e,t,i){var r=n.ajax(e);return r.then(t),r.fail(i),r}};return n.extend({},t,e,!0)},i.prototype.processResults=function(e){return e},i.prototype.query=function(e,t){function i(){var i=s.transport(s,function(i){var s=r.processResults(i,e);r.options.get("debug")&&window.console&&console.error&&(s&&s.results&&n.isArray(s.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),t(s)},function(){i.status&&"0"===i.status||r.trigger("results:message",{message:"errorLoading"})});r._request=i}var r=this;null!=this._request&&(n.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var s=n.extend({type:"GET"},this.ajaxOptions);"function"==typeof s.url&&(s.url=s.url.call(this.$element,e)),"function"==typeof s.data&&(s.data=s.data.call(this.$element,e)),this.ajaxOptions.delay&&null!=e.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(i,this.ajaxOptions.delay)):i()},i}),t.define("select2/data/tags",["jquery"],function(e){function t(t,n,i){var r=i.get("tags"),s=i.get("createTag");s!==undefined&&(this.createTag=s);var o=i.get("insertTag");if(o!==undefined&&(this.insertTag=o),t.call(this,n,i),e.isArray(r))for(var a=0;a<r.length;a++){var l=r[a],c=this._normalizeItem(l),u=this.option(c);this.$element.append(u)}}return t.prototype.query=function(e,t,n){function i(e,s){for(var o=e.results,a=0;a<o.length;a++){var l=o[a],c=null!=l.children&&!i({results:l.children},!0);if(l.text===t.term||c)return!s&&(e.data=o,void n(e))}if(s)return!0;var u=r.createTag(t);if(null!=u){var d=r.option(u);d.attr("data-select2-tag",!0),r.addOptions([d]),r.insertTag(o,u)}e.results=o,n(e)}var r=this;this._removeOldTags(),null!=t.term&&null==t.page?e.call(this,t,i):e.call(this,t,n)},t.prototype.createTag=function(t,n){var i=e.trim(n.term);return""===i?null:{id:i,text:i}},t.prototype.insertTag=function(e,t,n){t.unshift(n)},t.prototype._removeOldTags=function(t){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||e(this).remove()})},t}),t.define("select2/data/tokenizer",["jquery"],function(e){function t(e,t,n){var i=n.get("tokenizer");i!==undefined&&(this.tokenizer=i),e.call(this,t,n)}return t.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},t.prototype.query=function(t,n,i){function r(e){s.trigger("select",{data:e})}var s=this;n.term=n.term||"";var o=this.tokenizer(n,this.options,function(t){var n=s._normalizeItem(t);if(!s.$element.find("option").filter(function(){return e(this).val()===n.id}).length){var i=s.option(n);i.attr("data-select2-tag",!0),s._removeOldTags(),s.addOptions([i])}r(n)});o.term!==n.term&&(this.$search.length&&(this.$search.val(o.term),this.$search.focus()),n.term=o.term),t.call(this,n,i)},t.prototype.tokenizer=function(t,n,i,r){for(var s=i.get("tokenSeparators")||[],o=n.term,a=0,l=this.createTag||function(e){return{id:e.term,text:e.term}};a<o.length;){var c=o[a];if(-1!==e.inArray(c,s)){var u=o.substr(0,a),d=l(e.extend({},n,{term:u}));null!=d?(r(d),o=o.substr(a+1)||"",a=0):a++}else a++}return{term:o}},t}),t.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",this.maximumInputLength>0&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){var i=this;this.current(function(r){var s=null!=r?r.length:0;i.maximumSelectionLength>0&&s>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):e.call(i,t,n)})},e}),t.define("select2/dropdown",["jquery","./utils"],function(e,t){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<span class="select2-dropdown"><span class="select2-results"></span></span>');return t.attr("dir",this.options.get("dir")),this.$dropdown=t,t},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),t.define("select2/dropdown/search",["jquery","../utils"],function(e,t){function n(){}return n.prototype.render=function(t){var n=t.call(this),i=e('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=i,this.$search=i.find("input"),n.prepend(i),n},n.prototype.bind=function(t,n,i){var r=this;t.call(this,n,i),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(t){e(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),n.on("open",function(){r.$search.attr("tabindex",0),r.$search.focus(),window.setTimeout(function(){r.$search.focus()},0)}),n.on("close",function(){r.$search.attr("tabindex",-1),r.$search.val("")}),n.on("focus",function(){n.isOpen()&&r.$search.focus()}),n.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))})},n.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},n.prototype.showSearch=function(e,t){return!0},n}),t.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;i>=0;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),t.define("select2/dropdown/infiniteScroll",["jquery"],function(e){function t(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return t.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},t.prototype.bind=function(t,n,i){var r=this;t.call(this,n,i),n.on("query",function(e){r.lastParams=e,r.loading=!0}),n.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",function(){var t=e.contains(document.documentElement,r.$loadingMore[0]);!r.loading&&t&&r.$results.offset().top+r.$results.outerHeight(!1)+50>=r.$loadingMore.offset().top+r.$loadingMore.outerHeight(!1)&&r.loadMore()})},t.prototype.loadMore=function(){this.loading=!0;var t=e.extend({},{page:1},this.lastParams);t.page++,this.trigger("query:append",t)},t.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},t.prototype.createLoadingMore=function(){var t=e('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),n=this.options.get("translations").get("loadingMore");return t.html(n(this.lastParams)),t},t}),t.define("select2/dropdown/attachBody",["jquery","../utils"],function(e,t){function n(t,n,i){this.$dropdownParent=i.get("dropdownParent")||e(document.body),t.call(this,n,i)}return n.prototype.bind=function(e,t,n){var i=this,r=!1;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),r||(r=!0,t.on("results:all",function(){i._positionDropdown(),i._resizeDropdown()}),t.on("results:append",function(){i._positionDropdown(),i._resizeDropdown()}))}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},n.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},n.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},n.prototype.render=function(t){var n=e("<span></span>"),i=t.call(this);return n.append(i),this.$dropdownContainer=n,n},n.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},n.prototype._attachPositioningHandler=function(n,i){var r=this,s="scroll.select2."+i.id,o="resize.select2."+i.id,a="orientationchange.select2."+i.id,l=this.$container.parents().filter(t.hasScroll);l.each(function(){e(this).data("select2-scroll-position",{x:e(this).scrollLeft(),y:e(this).scrollTop()})}),l.on(s,function(t){var n=e(this).data("select2-scroll-position");e(this).scrollTop(n.y)}),e(window).on(s+" "+o+" "+a,function(e){r._positionDropdown(),r._resizeDropdown()})},n.prototype._detachPositioningHandler=function(n,i){var r="scroll.select2."+i.id,s="resize.select2."+i.id,o="orientationchange.select2."+i.id;this.$container.parents().filter(t.hasScroll).off(r),e(window).off(r+" "+s+" "+o)},n.prototype._positionDropdown=function(){var t=e(window),n=this.$dropdown.hasClass("select2-dropdown--above"),i=this.$dropdown.hasClass("select2-dropdown--below"),r=null,s=this.$container.offset();s.bottom=s.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=s.top,o.bottom=s.top+o.height;var a={height:this.$dropdown.outerHeight(!1)},l={top:t.scrollTop(),bottom:t.scrollTop()+t.height()},c=l.top<s.top-a.height,u=l.bottom>s.bottom+a.height,d={left:s.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h=p.offset();d.top-=h.top,d.left-=h.left,n||i||(r="below"),u||!c||n?!c&&u&&n&&(r="below"):r="above",("above"==r||n&&"below"!==r)&&(d.top=o.top-h.top-a.height),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},n.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},n.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},n}),t.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(t){for(var n=0,i=0;i<t.length;i++){var r=t[i];r.children?n+=e(r.children):n++}return n}function t(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=Infinity),e.call(this,t,n,i)}return t.prototype.showSearch=function(t,n){return!(e(n.data.results)<this.minimumResultsForSearch)&&t.call(this,n)},t}),t.define("select2/dropdown/selectOnClose",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("close",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var i=this.getHighlightedResults();if(!(i.length<1)){var r=i.data("data");null!=r.element&&r.element.selected||null==r.element&&r.selected||this.trigger("select",{data:r})}},e}),t.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(e){i._selectTriggered(e)}),t.on("unselect",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),t.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),t.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(e,t,n,i,r,s,o,a,l,c,u,d,p,h,f,g,m,v,y,_,$,w,b,A,x,E,C,O,S){function T(){this.reset()}return T.prototype.apply=function(d){if(null==(d=e.extend(!0,{},this.defaults,d)).dataAdapter){if(null!=d.ajax?d.dataAdapter=f:null!=d.data?d.dataAdapter=h:d.dataAdapter=p,d.minimumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,v)),d.maximumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,y)),d.maximumSelectionLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,_)),d.tags&&(d.dataAdapter=c.Decorate(d.dataAdapter,g)),null==d.tokenSeparators&&null==d.tokenizer||(d.dataAdapter=c.Decorate(d.dataAdapter,m)),null!=d.query){var S=t(d.amdBase+"compat/query");d.dataAdapter=c.Decorate(d.dataAdapter,S)}if(null!=d.initSelection){var T=t(d.amdBase+"compat/initSelection");d.dataAdapter=c.Decorate(d.dataAdapter,T)}}if(null==d.resultsAdapter&&(d.resultsAdapter=n,null!=d.ajax&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,A)),null!=d.placeholder&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,b)),d.selectOnClose&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,C))),null==d.dropdownAdapter){if(d.multiple)d.dropdownAdapter=$;else{var D=c.Decorate($,w);d.dropdownAdapter=D}if(0!==d.minimumResultsForSearch&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,E)),d.closeOnSelect&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,O)),null!=d.dropdownCssClass||null!=d.dropdownCss||null!=d.adaptDropdownCssClass){var q=t(d.amdBase+"compat/dropdownCss");d.dropdownAdapter=c.Decorate(d.dropdownAdapter,q)}d.dropdownAdapter=c.Decorate(d.dropdownAdapter,x)}if(null==d.selectionAdapter){if(d.multiple?d.selectionAdapter=r:d.selectionAdapter=i,null!=d.placeholder&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,s)),d.allowClear&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,o)),d.multiple&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,a)),null!=d.containerCssClass||null!=d.containerCss||null!=d.adaptContainerCssClass){var L=t(d.amdBase+"compat/containerCss");d.selectionAdapter=c.Decorate(d.selectionAdapter,L)}d.selectionAdapter=c.Decorate(d.selectionAdapter,l)}if("string"==typeof d.language)if(d.language.indexOf("-")>0){var j=d.language.split("-")[0];d.language=[d.language,j]}else d.language=[d.language];if(e.isArray(d.language)){var P=new u;d.language.push("en");for(var k=d.language,I=0;I<k.length;I++){var R=k[I],M={};try{M=u.loadPath(R)}catch(z){try{R=this.defaults.amdLanguageBase+R,M=u.loadPath(R)}catch(N){d.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+R+'" could not be automatically loaded. A fallback will be used instead.');continue}}P.extend(M)}d.translations=P}else{var U=u.loadPath(this.defaults.amdLanguageBase+"en"),H=new u(d.language);H.extend(U),d.translations=H}return d},T.prototype.reset=function(){function t(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return d[e]||e})}function n(i,r){if(""===e.trim(i.term))return r;if(r.children&&r.children.length>0){for(var s=e.extend(!0,{},r),o=r.children.length-1;o>=0;o--)null==n(i,r.children[o])&&s.children.splice(o,1);return s.children.length>0?s:n(i,s)}var a=t(r.text).toUpperCase(),l=t(i.term).toUpperCase();return a.indexOf(l)>-1?r:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:c.escapeMarkup,language:S,matcher:n,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},T.prototype.set=function(t,n){var i={};i[e.camelCase(t)]=n;var r=c._convertData(i);e.extend(this.defaults,r)},new T}),t.define("select2/options",["require","jquery","./defaults","./utils"],function(e,t,n,i){function r(t,r){if(this.options=t,null!=r&&this.fromElement(r),this.options=n.apply(this.options),r&&r.is("input")){var s=e(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=i.Decorate(this.options.dataAdapter,s)}}return r.prototype.fromElement=function(e){var n=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),e.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),e.data("data",e.data("select2Tags")),e.data("tags",!0)),e.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",e.data("ajaxUrl")),e.data("ajax--url",e.data("ajaxUrl")));var r={};r=t.fn.jquery&&"1."==t.fn.jquery.substr(0,2)&&e[0].dataset?t.extend(!0,{},e[0].dataset,e.data()):e.data();var s=t.extend(!0,{},r);s=i._convertData(s);for(var o in s)t.inArray(o,n)>-1||(t.isPlainObject(this.options[o])?t.extend(this.options[o],s[o]):this.options[o]=s[o]);return this},r.prototype.get=function(e){return this.options[e]},r.prototype.set=function(e,t){this.options[e]=t},r}),t.define("select2/core",["jquery","./options","./utils","./keys"],function(e,t,n,i){var r=function(e,n){null!=e.data("select2")&&e.data("select2").destroy(),this.$element=e,this.id=this._generateId(e),n=n||{},this.options=new t(n,e),r.__super__.constructor.call(this);var i=e.attr("tabindex")||0;e.data("old-tabindex",i),e.attr("tabindex","-1");var s=this.options.get("dataAdapter");this.dataAdapter=new s(e,this.options);var o=this.render();this._placeContainer(o);var a=this.options.get("selectionAdapter");this.selection=new a(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,o);var l=this.options.get("dropdownAdapter");this.dropdown=new l(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,o);var c=this.options.get("resultsAdapter");this.results=new c(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var u=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){u.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),e.data("select2",this)};return n.Extend(r,n.Observable),r.prototype._generateId=function(e){var t="";return t=null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+n.generateChars(2):n.generateChars(4),t=t.replace(/(:|\.|\[|\]|,)/g,""),t="select2-"+t},r.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},r.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var r=e.outerWidth(!1);return r<=0?"auto":r+"px"}if("style"==t){var s=e.attr("style");if("string"!=typeof s)return null;for(var o=s.split(";"),a=0,l=o.length;a<l;a+=1){var c=o[a].replace(/\s/g,"").match(n);if(null!==c&&c.length>=1)return c[1]}return null}return t},r.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},r.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var i=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=i?(this._observer=new i(function(n){e.each(n,t._syncA),e.each(n,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},r.prototype._registerDataEvents=function(){var e=this;this.dataAdapter.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerSelectionEvents=function(){var t=this,n=["toggle","focus"];this.selection.on("toggle",function(){t.toggleDropdown()}),this.selection.on("focus",function(e){t.focus(e)}),this.selection.on("*",function(i,r){-1===e.inArray(i,n)&&t.trigger(i,r)})},r.prototype._registerDropdownEvents=function(){var e=this;this.dropdown.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerResultsEvents=function(){var e=this;this.results.on("*",function(t,n){e.trigger(t,n)})},r.prototype._registerEvents=function(){var e=this;this.on("open",function(){e.$container.addClass("select2-container--open")}),this.on("close",function(){e.$container.removeClass("select2-container--open")}),this.on("enable",function(){e.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){e.$container.addClass("select2-container--disabled")}),this.on("blur",function(){e.$container.removeClass("select2-container--focus")}),this.on("query",function(t){e.isOpen()||e.trigger("open",{}),this.dataAdapter.query(t,function(n){e.trigger("results:all",{data:n,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(n){e.trigger("results:append",{data:n,query:t})})}),this.on("keypress",function(t){var n=t.which;e.isOpen()?n===i.ESC||n===i.TAB||n===i.UP&&t.altKey?(e.close(),t.preventDefault()):n===i.ENTER?(e.trigger("results:select",{}),t.preventDefault()):n===i.SPACE&&t.ctrlKey?(e.trigger("results:toggle",{}),t.preventDefault()):n===i.UP?(e.trigger("results:previous",{}),t.preventDefault()):n===i.DOWN&&(e.trigger("results:next",{}),t.preventDefault()):(n===i.ENTER||n===i.SPACE||n===i.DOWN&&t.altKey)&&(e.open(),t.preventDefault())})},r.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},r.prototype._syncSubtree=function(e,t){var n=!1,i=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&t.addedNodes.length>0)for(var r=0;r<t.addedNodes.length;r++)t.addedNodes[r].selected&&(n=!0);else t.removedNodes&&t.removedNodes.length>0&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){i.trigger("selection:update",{data:e})})}},r.prototype.trigger=function(e,t){var n=r.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(t===undefined&&(t={}),e in i){var s=i[e],o={prevented:!1,name:e,args:t};if(n.call(this,s,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},r.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},r.prototype.open=function(){this.isOpen()||this.trigger("query",{})},r.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},r.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},r.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},r.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},r.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},r.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var e=[];return this.dataAdapter.current(function(t){e=t}),e},r.prototype.val=function(t){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==t||0===t.length)return this.$element.val();var n=t[0];e.isArray(n)&&(n=e.map(n,function(e){return e.toString()})),this.$element.val(n).trigger("change")},r.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},r.prototype.render=function(){var t=e('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return t.attr("dir",this.options.get("dir")),this.$container=t,this.$container.addClass("select2-container--"+this.options.get("theme")),t.data("element",this.$element),t},r}),t.define("jquery-mousewheel",["jquery"],function(e){return e}),t.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(e,t,n,i){if(null==e.fn.select2){var r=["open","close","destroy"];e.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var i=e.extend(!0,{},t);new n(e(this),i)}),this;if("string"==typeof t){var i,s=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=e(this).data("select2");null==n&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),i=n[t].apply(n,s)}),e.inArray(t,r)>-1?this:i}throw new Error("Invalid arguments for Select2: "+t)}}return null==e.fn.select2.defaults&&(e.fn.select2.defaults=i),n}),{define:t.define,require:t.require}}(),n=t.require("jquery.select2");return e.fn.select2.amd=t,n});plugin-fw/assets/js/how-to.js000064400000000301151327614500012143 0ustar00(function ( $ ) {
    var how_to_link = $( '#yith-how-to-premium' ).parent();
    if ( typeof how_to_link != 'undefined' ) {
        how_to_link.prop( 'target', '_blank' );
    }
})( jQuery );
plugin-fw/assets/js/codemirror/javascript.js000064400000056326151327614500015263 0ustar00// TODO actually recognize syntax of TypeScript constructs

CodeMirror.defineMode("javascript", function(config, parserConfig) {
  var indentUnit = config.indentUnit;
  var statementIndent = parserConfig.statementIndent;
  var jsonMode = parserConfig.json;
  var isTS = parserConfig.typescript;

  // Tokenizer

  var keywords = function(){
    function kw(type) {return {type: type, style: "keyword"};}
    var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
    var operator = kw("operator"), atom = {type: "atom", style: "atom"};

    var jsKeywords = {
      "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
      "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, "debugger": C,
      "var": kw("var"), "const": kw("var"), "let": kw("var"),
      "function": kw("function"), "catch": kw("catch"),
      "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
      "in": operator, "typeof": operator, "instanceof": operator,
      "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
      "this": kw("this"), "module": kw("module"), "class": kw("class"), "super": kw("atom"),
      "yield": C, "export": kw("export"), "import": kw("import"), "extends": C
    };

    // Extend the 'normal' keywords with the TypeScript language extensions
    if (isTS) {
      var type = {type: "variable", style: "variable-3"};
      var tsKeywords = {
        // object-like things
        "interface": kw("interface"),
        "extends": kw("extends"),
        "constructor": kw("constructor"),

        // scope modifiers
        "public": kw("public"),
        "private": kw("private"),
        "protected": kw("protected"),
        "static": kw("static"),

        // types
        "string": type, "number": type, "bool": type, "any": type
      };

      for (var attr in tsKeywords) {
        jsKeywords[attr] = tsKeywords[attr];
      }
    }

    return jsKeywords;
  }();

  var isOperatorChar = /[+\-*&%=<>!?|~^]/;

  function readRegexp(stream) {
    var escaped = false, next, inSet = false;
    while ((next = stream.next()) != null) {
      if (!escaped) {
        if (next == "/" && !inSet) return;
        if (next == "[") inSet = true;
        else if (inSet && next == "]") inSet = false;
      }
      escaped = !escaped && next == "\\";
    }
  }

  // Used as scratch variables to communicate multiple values without
  // consing up tons of objects.
  var type, content;
  function ret(tp, style, cont) {
    type = tp; content = cont;
    return style;
  }
  function tokenBase(stream, state) {
    var ch = stream.next();
    if (ch == '"' || ch == "'") {
      state.tokenize = tokenString(ch);
      return state.tokenize(stream, state);
    } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) {
      return ret("number", "number");
    } else if (ch == "." && stream.match("..")) {
      return ret("spread", "meta");
    } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
      return ret(ch);
    } else if (ch == "=" && stream.eat(">")) {
      return ret("=>", "operator");
    } else if (ch == "0" && stream.eat(/x/i)) {
      stream.eatWhile(/[\da-f]/i);
      return ret("number", "number");
    } else if (/\d/.test(ch)) {
      stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
      return ret("number", "number");
    } else if (ch == "/") {
      if (stream.eat("*")) {
        state.tokenize = tokenComment;
        return tokenComment(stream, state);
      } else if (stream.eat("/")) {
        stream.skipToEnd();
        return ret("comment", "comment");
      } else if (state.lastType == "operator" || state.lastType == "keyword c" ||
               state.lastType == "sof" || /^[\[{}\(,;:]$/.test(state.lastType)) {
        readRegexp(stream);
        stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla
        return ret("regexp", "string-2");
      } else {
        stream.eatWhile(isOperatorChar);
        return ret("operator", "operator", stream.current());
      }
    } else if (ch == "`") {
      state.tokenize = tokenQuasi;
      return tokenQuasi(stream, state);
    } else if (ch == "#") {
      stream.skipToEnd();
      return ret("error", "error");
    } else if (isOperatorChar.test(ch)) {
      stream.eatWhile(isOperatorChar);
      return ret("operator", "operator", stream.current());
    } else {
      stream.eatWhile(/[\w\$_]/);
      var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];
      return (known && state.lastType != ".") ? ret(known.type, known.style, word) :
                     ret("variable", "variable", word);
    }
  }

  function tokenString(quote) {
    return function(stream, state) {
      var escaped = false, next;
      while ((next = stream.next()) != null) {
        if (next == quote && !escaped) break;
        escaped = !escaped && next == "\\";
      }
      if (!escaped) state.tokenize = tokenBase;
      return ret("string", "string");
    };
  }

  function tokenComment(stream, state) {
    var maybeEnd = false, ch;
    while (ch = stream.next()) {
      if (ch == "/" && maybeEnd) {
        state.tokenize = tokenBase;
        break;
      }
      maybeEnd = (ch == "*");
    }
    return ret("comment", "comment");
  }

  function tokenQuasi(stream, state) {
    var escaped = false, next;
    while ((next = stream.next()) != null) {
      if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) {
        state.tokenize = tokenBase;
        break;
      }
      escaped = !escaped && next == "\\";
    }
    return ret("quasi", "string-2", stream.current());
  }

  var brackets = "([{}])";
  // This is a crude lookahead trick to try and notice that we're
  // parsing the argument patterns for a fat-arrow function before we
  // actually hit the arrow token. It only works if the arrow is on
  // the same line as the arguments and there's no strange noise
  // (comments) in between. Fallback is to only notice when we hit the
  // arrow, and not declare the arguments as locals for the arrow
  // body.
  function findFatArrow(stream, state) {
    if (state.fatArrowAt) state.fatArrowAt = null;
    var arrow = stream.string.indexOf("=>", stream.start);
    if (arrow < 0) return;

    var depth = 0, sawSomething = false;
    for (var pos = arrow - 1; pos >= 0; --pos) {
      var ch = stream.string.charAt(pos);
      var bracket = brackets.indexOf(ch);
      if (bracket >= 0 && bracket < 3) {
        if (!depth) { ++pos; break; }
        if (--depth == 0) break;
      } else if (bracket >= 3 && bracket < 6) {
        ++depth;
      } else if (/[$\w]/.test(ch)) {
        sawSomething = true;
      } else if (sawSomething && !depth) {
        ++pos;
        break;
      }
    }
    if (sawSomething && !depth) state.fatArrowAt = pos;
  }

  // Parser

  var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true};

  function JSLexical(indented, column, type, align, prev, info) {
    this.indented = indented;
    this.column = column;
    this.type = type;
    this.prev = prev;
    this.info = info;
    if (align != null) this.align = align;
  }

  function inScope(state, varname) {
    for (var v = state.localVars; v; v = v.next)
      if (v.name == varname) return true;
    for (var cx = state.context; cx; cx = cx.prev) {
      for (var v = cx.vars; v; v = v.next)
        if (v.name == varname) return true;
    }
  }

  function parseJS(state, style, type, content, stream) {
    var cc = state.cc;
    // Communicate our context to the combinators.
    // (Less wasteful than consing up a hundred closures on every call.)
    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;

    if (!state.lexical.hasOwnProperty("align"))
      state.lexical.align = true;

    while(true) {
      var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;
      if (combinator(type, content)) {
        while(cc.length && cc[cc.length - 1].lex)
          cc.pop()();
        if (cx.marked) return cx.marked;
        if (type == "variable" && inScope(state, content)) return "variable-2";
        return style;
      }
    }
  }

  // Combinator utils

  var cx = {state: null, column: null, marked: null, cc: null};
  function pass() {
    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
  }
  function cont() {
    pass.apply(null, arguments);
    return true;
  }
  function register(varname) {
    function inList(list) {
      for (var v = list; v; v = v.next)
        if (v.name == varname) return true;
      return false;
    }
    var state = cx.state;
    if (state.context) {
      cx.marked = "def";
      if (inList(state.localVars)) return;
      state.localVars = {name: varname, next: state.localVars};
    } else {
      if (inList(state.globalVars)) return;
      if (parserConfig.globalVars)
        state.globalVars = {name: varname, next: state.globalVars};
    }
  }

  // Combinators

  var defaultVars = {name: "this", next: {name: "arguments"}};
  function pushcontext() {
    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
    cx.state.localVars = defaultVars;
  }
  function popcontext() {
    cx.state.localVars = cx.state.context.vars;
    cx.state.context = cx.state.context.prev;
  }
  function pushlex(type, info) {
    var result = function() {
      var state = cx.state, indent = state.indented;
      if (state.lexical.type == "stat") indent = state.lexical.indented;
      state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);
    };
    result.lex = true;
    return result;
  }
  function poplex() {
    var state = cx.state;
    if (state.lexical.prev) {
      if (state.lexical.type == ")")
        state.indented = state.lexical.indented;
      state.lexical = state.lexical.prev;
    }
  }
  poplex.lex = true;

  function expect(wanted) {
    return function(type) {
      if (type == wanted) return cont();
      else if (wanted == ";") return pass();
      else return cont(arguments.callee);
    };
  }

  function statement(type, value) {
    if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex);
    if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex);
    if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
    if (type == "{") return cont(pushlex("}"), block, poplex);
    if (type == ";") return cont();
    if (type == "if") return cont(pushlex("form"), expression, statement, poplex, maybeelse);
    if (type == "function") return cont(functiondef);
    if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
    if (type == "variable") return cont(pushlex("stat"), maybelabel);
    if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"),
                                      block, poplex, poplex);
    if (type == "case") return cont(expression, expect(":"));
    if (type == "default") return cont(expect(":"));
    if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
                                     statement, poplex, popcontext);
    if (type == "module") return cont(pushlex("form"), pushcontext, afterModule, popcontext, poplex);
    if (type == "class") return cont(pushlex("form"), className, objlit, poplex);
    if (type == "export") return cont(pushlex("form"), afterExport, poplex);
    if (type == "import") return cont(pushlex("form"), afterImport, poplex);
    return pass(pushlex("stat"), expression, expect(";"), poplex);
  }
  function expression(type) {
    return expressionInner(type, false);
  }
  function expressionNoComma(type) {
    return expressionInner(type, true);
  }
  function expressionInner(type, noComma) {
    if (cx.state.fatArrowAt == cx.stream.start) {
      var body = noComma ? arrowBodyNoComma : arrowBody;
      if (type == "(") return cont(pushcontext, pushlex(")"), commasep(pattern, ")"), poplex, expect("=>"), body, popcontext);
      else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
    }

    var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
    if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
    if (type == "function") return cont(functiondef);
    if (type == "keyword c") return cont(noComma ? maybeexpressionNoComma : maybeexpression);
    if (type == "(") return cont(pushlex(")"), maybeexpression, comprehension, expect(")"), poplex, maybeop);
    if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
    if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
    if (type == "{") return contCommasep(objprop, "}", null, maybeop);
    return cont();
  }
  function maybeexpression(type) {
    if (type.match(/[;\}\)\],]/)) return pass();
    return pass(expression);
  }
  function maybeexpressionNoComma(type) {
    if (type.match(/[;\}\)\],]/)) return pass();
    return pass(expressionNoComma);
  }

  function maybeoperatorComma(type, value) {
    if (type == ",") return cont(expression);
    return maybeoperatorNoComma(type, value, false);
  }
  function maybeoperatorNoComma(type, value, noComma) {
    var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;
    var expr = noComma == false ? expression : expressionNoComma;
    if (value == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
    if (type == "operator") {
      if (/\+\+|--/.test(value)) return cont(me);
      if (value == "?") return cont(expression, expect(":"), expr);
      return cont(expr);
    }
    if (type == "quasi") { cx.cc.push(me); return quasi(value); }
    if (type == ";") return;
    if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
    if (type == ".") return cont(property, me);
    if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
  }
  function quasi(value) {
    if (value.slice(value.length - 2) != "${") return cont();
    return cont(expression, continueQuasi);
  }
  function continueQuasi(type) {
    if (type == "}") {
      cx.marked = "string-2";
      cx.state.tokenize = tokenQuasi;
      return cont();
    }
  }
  function arrowBody(type) {
    findFatArrow(cx.stream, cx.state);
    if (type == "{") return pass(statement);
    return pass(expression);
  }
  function arrowBodyNoComma(type) {
    findFatArrow(cx.stream, cx.state);
    if (type == "{") return pass(statement);
    return pass(expressionNoComma);
  }
  function maybelabel(type) {
    if (type == ":") return cont(poplex, statement);
    return pass(maybeoperatorComma, expect(";"), poplex);
  }
  function property(type) {
    if (type == "variable") {cx.marked = "property"; return cont();}
  }
  function objprop(type, value) {
    if (type == "variable") {
      cx.marked = "property";
      if (value == "get" || value == "set") return cont(getterSetter);
    } else if (type == "number" || type == "string") {
      cx.marked = type + " property";
    } else if (type == "[") {
      return cont(expression, expect("]"), afterprop);
    }
    if (atomicTypes.hasOwnProperty(type)) return cont(afterprop);
  }
  function getterSetter(type) {
    if (type != "variable") return pass(afterprop);
    cx.marked = "property";
    return cont(functiondef);
  }
  function afterprop(type) {
    if (type == ":") return cont(expressionNoComma);
    if (type == "(") return pass(functiondef);
  }
  function commasep(what, end) {
    function proceed(type) {
      if (type == ",") {
        var lex = cx.state.lexical;
        if (lex.info == "call") lex.pos = (lex.pos || 0) + 1;
        return cont(what, proceed);
      }
      if (type == end) return cont();
      return cont(expect(end));
    }
    return function(type) {
      if (type == end) return cont();
      return pass(what, proceed);
    };
  }
  function contCommasep(what, end, info) {
    for (var i = 3; i < arguments.length; i++)
      cx.cc.push(arguments[i]);
    return cont(pushlex(end, info), commasep(what, end), poplex);
  }
  function block(type) {
    if (type == "}") return cont();
    return pass(statement, block);
  }
  function maybetype(type) {
    if (isTS && type == ":") return cont(typedef);
  }
  function typedef(type) {
    if (type == "variable"){cx.marked = "variable-3"; return cont();}
  }
  function vardef() {
    return pass(pattern, maybetype, maybeAssign, vardefCont);
  }
  function pattern(type, value) {
    if (type == "variable") { register(value); return cont(); }
    if (type == "[") return contCommasep(pattern, "]");
    if (type == "{") return contCommasep(proppattern, "}");
  }
  function proppattern(type, value) {
    if (type == "variable" && !cx.stream.match(/^\s*:/, false)) {
      register(value);
      return cont(maybeAssign);
    }
    if (type == "variable") cx.marked = "property";
    return cont(expect(":"), pattern, maybeAssign);
  }
  function maybeAssign(_type, value) {
    if (value == "=") return cont(expressionNoComma);
  }
  function vardefCont(type) {
    if (type == ",") return cont(vardef);
  }
  function maybeelse(type, value) {
    if (type == "keyword b" && value == "else") return cont(pushlex("form"), statement, poplex);
  }
  function forspec(type) {
    if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
  }
  function forspec1(type) {
    if (type == "var") return cont(vardef, expect(";"), forspec2);
    if (type == ";") return cont(forspec2);
    if (type == "variable") return cont(formaybeinof);
    return pass(expression, expect(";"), forspec2);
  }
  function formaybeinof(_type, value) {
    if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
    return cont(maybeoperatorComma, forspec2);
  }
  function forspec2(type, value) {
    if (type == ";") return cont(forspec3);
    if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
    return pass(expression, expect(";"), forspec3);
  }
  function forspec3(type) {
    if (type != ")") cont(expression);
  }
  function functiondef(type, value) {
    if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
    if (type == "variable") {register(value); return cont(functiondef);}
    if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, statement, popcontext);
  }
  function funarg(type) {
    if (type == "spread") return cont(funarg);
    return pass(pattern, maybetype);
  }
  function className(type, value) {
    if (type == "variable") {register(value); return cont(classNameAfter);}
  }
  function classNameAfter(_type, value) {
    if (value == "extends") return cont(expression);
  }
  function objlit(type) {
    if (type == "{") return contCommasep(objprop, "}");
  }
  function afterModule(type, value) {
    if (type == "string") return cont(statement);
    if (type == "variable") { register(value); return cont(maybeFrom); }
  }
  function afterExport(_type, value) {
    if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); }
    if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); }
    return pass(statement);
  }
  function afterImport(type) {
    if (type == "string") return cont();
    return pass(importSpec, maybeFrom);
  }
  function importSpec(type, value) {
    if (type == "{") return contCommasep(importSpec, "}");
    if (type == "variable") register(value);
    return cont();
  }
  function maybeFrom(_type, value) {
    if (value == "from") { cx.marked = "keyword"; return cont(expression); }
  }
  function arrayLiteral(type) {
    if (type == "]") return cont();
    return pass(expressionNoComma, maybeArrayComprehension);
  }
  function maybeArrayComprehension(type) {
    if (type == "for") return pass(comprehension, expect("]"));
    if (type == ",") return cont(commasep(expressionNoComma, "]"));
    return pass(commasep(expressionNoComma, "]"));
  }
  function comprehension(type) {
    if (type == "for") return cont(forspec, comprehension);
    if (type == "if") return cont(expression, comprehension);
  }

  // Interface

  return {
    startState: function(basecolumn) {
      var state = {
        tokenize: tokenBase,
        lastType: "sof",
        cc: [],
        lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
        localVars: parserConfig.localVars,
        context: parserConfig.localVars && {vars: parserConfig.localVars},
        indented: 0
      };
      if (parserConfig.globalVars) state.globalVars = parserConfig.globalVars;
      return state;
    },

    token: function(stream, state) {
      if (stream.sol()) {
        if (!state.lexical.hasOwnProperty("align"))
          state.lexical.align = false;
        state.indented = stream.indentation();
        findFatArrow(stream, state);
      }
      if (state.tokenize != tokenComment && stream.eatSpace()) return null;
      var style = state.tokenize(stream, state);
      if (type == "comment") return style;
      state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type;
      return parseJS(state, style, type, content, stream);
    },

    indent: function(state, textAfter) {
      if (state.tokenize == tokenComment) return CodeMirror.Pass;
      if (state.tokenize != tokenBase) return 0;
      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;
      // Kludge to prevent 'maybelse' from blocking lexical scope pops
      for (var i = state.cc.length - 1; i >= 0; --i) {
        var c = state.cc[i];
        if (c == poplex) lexical = lexical.prev;
        else if (c != maybeelse) break;
      }
      if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev;
      if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat")
        lexical = lexical.prev;
      var type = lexical.type, closing = firstChar == type;

      if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0);
      else if (type == "form" && firstChar == "{") return lexical.indented;
      else if (type == "form") return lexical.indented + indentUnit;
      else if (type == "stat")
        return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? statementIndent || indentUnit : 0);
      else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false)
        return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
      else if (lexical.align) return lexical.column + (closing ? 0 : 1);
      else return lexical.indented + (closing ? 0 : indentUnit);
    },

    electricChars: ":{}",
    blockCommentStart: jsonMode ? null : "/*",
    blockCommentEnd: jsonMode ? null : "*/",
    lineComment: jsonMode ? null : "//",
    fold: "brace",

    helperType: jsonMode ? "json" : "javascript",
    jsonMode: jsonMode
  };
});

CodeMirror.defineMIME("text/javascript", "javascript");
CodeMirror.defineMIME("text/ecmascript", "javascript");
CodeMirror.defineMIME("application/javascript", "javascript");
CodeMirror.defineMIME("application/ecmascript", "javascript");
CodeMirror.defineMIME("application/json", {name: "javascript", json: true});
CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true});
CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true });
CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true });
plugin-fw/assets/js/codemirror/codemirror.js000064400000672333151327614500015264 0ustar00// CodeMirror version 3.15
//
// CodeMirror is the only global var we claim
window.CodeMirror = (function() {
  "use strict";

  // BROWSER SNIFFING

  // Crude, but necessary to handle a number of hard-to-feature-detect
  // bugs and behavior differences.
  var gecko = /gecko\/\d/i.test(navigator.userAgent);
  var ie = /MSIE \d/.test(navigator.userAgent);
  var ie_lt8 = ie && (document.documentMode == null || document.documentMode < 8);
  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);
  var webkit = /WebKit\//.test(navigator.userAgent);
  var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(navigator.userAgent);
  var chrome = /Chrome\//.test(navigator.userAgent);
  var opera = /Opera\//.test(navigator.userAgent);
  var safari = /Apple Computer/.test(navigator.vendor);
  var khtml = /KHTML\//.test(navigator.userAgent);
  var mac_geLion = /Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent);
  var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent);
  var phantom = /PhantomJS/.test(navigator.userAgent);

  var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent);
  // This is woefully incomplete. Suggestions for alternative methods welcome.
  var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent);
  var mac = ios || /Mac/.test(navigator.platform);
  var windows = /windows/i.test(navigator.platform);

  var opera_version = opera && navigator.userAgent.match(/Version\/(\d*\.\d*)/);
  if (opera_version) opera_version = Number(opera_version[1]);
  if (opera_version && opera_version >= 15) { opera = false; webkit = true; }
  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X
  var flipCtrlCmd = mac && (qtwebkit || opera && (opera_version == null || opera_version < 12.11));
  var captureMiddleClick = gecko || (ie && !ie_lt9);

  // Optimize some code when these features are not used
  var sawReadOnlySpans = false, sawCollapsedSpans = false;

  // CONSTRUCTOR

  function CodeMirror(place, options) {
    if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);

    this.options = options = options || {};
    // Determine effective options based on given values and defaults.
    for (var opt in defaults) if (!options.hasOwnProperty(opt) && defaults.hasOwnProperty(opt))
      options[opt] = defaults[opt];
    setGuttersForLineNumbers(options);

    var docStart = typeof options.value == "string" ? 0 : options.value.first;
    var display = this.display = makeDisplay(place, docStart);
    display.wrapper.CodeMirror = this;
    updateGutters(this);
    if (options.autofocus && !mobile) focusInput(this);

    this.state = {keyMaps: [],
                  overlays: [],
                  modeGen: 0,
                  overwrite: false, focused: false,
                  suppressEdits: false, pasteIncoming: false,
                  draggingText: false,
                  highlight: new Delayed()};

    themeChanged(this);
    if (options.lineWrapping)
      this.display.wrapper.className += " CodeMirror-wrap";

    var doc = options.value;
    if (typeof doc == "string") doc = new Doc(options.value, options.mode);
    operation(this, attachDoc)(this, doc);

    // Override magic textarea content restore that IE sometimes does
    // on our hidden textarea on reload
    if (ie) setTimeout(bind(resetInput, this, true), 20);

    registerEventHandlers(this);
    // IE throws unspecified error in certain cases, when
    // trying to access activeElement before onload
    var hasFocus; try { hasFocus = (document.activeElement == display.input); } catch(e) { }
    if (hasFocus || (options.autofocus && !mobile)) setTimeout(bind(onFocus, this), 20);
    else onBlur(this);

    operation(this, function() {
      for (var opt in optionHandlers)
        if (optionHandlers.propertyIsEnumerable(opt))
          optionHandlers[opt](this, options[opt], Init);
      for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);
    })();
  }

  // DISPLAY CONSTRUCTOR

  function makeDisplay(place, docStart) {
    var d = {};

    var input = d.input = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none; font-size: 4px;");
    if (webkit) input.style.width = "1000px";
    else input.setAttribute("wrap", "off");
    // if border: 0; -- iOS fails to open keyboard (issue #1287)
    if (ios) input.style.border = "1px solid black";
    input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); input.setAttribute("spellcheck", "false");

    // Wraps and hides input textarea
    d.inputDiv = elt("div", [input], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
    // The actual fake scrollbars.
    d.scrollbarH = elt("div", [elt("div", null, null, "height: 1px")], "CodeMirror-hscrollbar");
    d.scrollbarV = elt("div", [elt("div", null, null, "width: 1px")], "CodeMirror-vscrollbar");
    d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler");
    d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler");
    // DIVs containing the selection and the actual code
    d.lineDiv = elt("div", null, "CodeMirror-code");
    d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1");
    // Blinky cursor, and element used to ensure cursor fits at the end of a line
    d.cursor = elt("div", "\u00a0", "CodeMirror-cursor");
    // Secondary cursor, shown when on a 'jump' in bi-directional text
    d.otherCursor = elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor");
    // Used to measure text size
    d.measure = elt("div", null, "CodeMirror-measure");
    // Wraps everything that needs to exist inside the vertically-padded coordinate system
    d.lineSpace = elt("div", [d.measure, d.selectionDiv, d.lineDiv, d.cursor, d.otherCursor],
                         null, "position: relative; outline: none");
    // Moved around its parent to cover visible view
    d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative");
    // Set to the height of the text, causes scrolling
    d.sizer = elt("div", [d.mover], "CodeMirror-sizer");
    // D is needed because behavior of elts with overflow: auto and padding is inconsistent across browsers
    d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerCutOff + "px; width: 1px;");
    // Will contain the gutters, if any
    d.gutters = elt("div", null, "CodeMirror-gutters");
    d.lineGutter = null;
    // Provides scrolling
    d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll");
    d.scroller.setAttribute("tabIndex", "-1");
    // The element in which the editor lives.
    d.wrapper = elt("div", [d.inputDiv, d.scrollbarH, d.scrollbarV,
                            d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror");
    // Work around IE7 z-index bug
    if (ie_lt8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }
    if (place.appendChild) place.appendChild(d.wrapper); else place(d.wrapper);

    // Needed to hide big blue blinking cursor on Mobile Safari
    if (ios) input.style.width = "0px";
    if (!webkit) d.scroller.draggable = true;
    // Needed to handle Tab key in KHTML
    if (khtml) { d.inputDiv.style.height = "1px"; d.inputDiv.style.position = "absolute"; }
    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
    else if (ie_lt8) d.scrollbarH.style.minWidth = d.scrollbarV.style.minWidth = "18px";

    // Current visible range (may be bigger than the view window).
    d.viewOffset = d.lastSizeC = 0;
    d.showingFrom = d.showingTo = docStart;

    // Used to only resize the line number gutter when necessary (when
    // the amount of lines crosses a boundary that makes its width change)
    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;
    // See readInput and resetInput
    d.prevInput = "";
    // Set to true when a non-horizontal-scrolling widget is added. As
    // an optimization, widget aligning is skipped when d is false.
    d.alignWidgets = false;
    // Flag that indicates whether we currently expect input to appear
    // (after some event like 'keypress' or 'input') and are polling
    // intensively.
    d.pollingFast = false;
    // Self-resetting timeout for the poller
    d.poll = new Delayed();

    d.cachedCharWidth = d.cachedTextHeight = null;
    d.measureLineCache = [];
    d.measureLineCachePos = 0;

    // Tracks when resetInput has punted to just putting a short
    // string instead of the (large) selection.
    d.inaccurateSelection = false;

    // Tracks the maximum line length so that the horizontal scrollbar
    // can be kept static when scrolling.
    d.maxLine = null;
    d.maxLineLength = 0;
    d.maxLineChanged = false;

    // Used for measuring wheel scrolling granularity
    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;

    return d;
  }

  // STATE UPDATES

  // Used to get the editor into a consistent state again when options change.

  function loadMode(cm) {
    cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);
    cm.doc.iter(function(line) {
      if (line.stateAfter) line.stateAfter = null;
      if (line.styles) line.styles = null;
    });
    cm.doc.frontier = cm.doc.first;
    startWorker(cm, 100);
    cm.state.modeGen++;
    if (cm.curOp) regChange(cm);
  }

  function wrappingChanged(cm) {
    if (cm.options.lineWrapping) {
      cm.display.wrapper.className += " CodeMirror-wrap";
      cm.display.sizer.style.minWidth = "";
    } else {
      cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-wrap", "");
      computeMaxLength(cm);
    }
    estimateLineHeights(cm);
    regChange(cm);
    clearCaches(cm);
    setTimeout(function(){updateScrollbars(cm);}, 100);
  }

  function estimateHeight(cm) {
    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;
    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);
    return function(line) {
      if (lineIsHidden(cm.doc, line))
        return 0;
      else if (wrapping)
        return (Math.ceil(line.text.length / perLine) || 1) * th;
      else
        return th;
    };
  }

  function estimateLineHeights(cm) {
    var doc = cm.doc, est = estimateHeight(cm);
    doc.iter(function(line) {
      var estHeight = est(line);
      if (estHeight != line.height) updateLineHeight(line, estHeight);
    });
  }

  function keyMapChanged(cm) {
    var map = keyMap[cm.options.keyMap], style = map.style;
    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-keymap-\S+/g, "") +
      (style ? " cm-keymap-" + style : "");
    cm.state.disableInput = map.disableInput;
  }

  function themeChanged(cm) {
    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") +
      cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-");
    clearCaches(cm);
  }

  function guttersChanged(cm) {
    updateGutters(cm);
    regChange(cm);
    setTimeout(function(){alignHorizontally(cm);}, 20);
  }

  function updateGutters(cm) {
    var gutters = cm.display.gutters, specs = cm.options.gutters;
    removeChildren(gutters);
    for (var i = 0; i < specs.length; ++i) {
      var gutterClass = specs[i];
      var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass));
      if (gutterClass == "CodeMirror-linenumbers") {
        cm.display.lineGutter = gElt;
        gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
      }
    }
    gutters.style.display = i ? "" : "none";
  }

  function lineLength(doc, line) {
    if (line.height == 0) return 0;
    var len = line.text.length, merged, cur = line;
    while (merged = collapsedSpanAtStart(cur)) {
      var found = merged.find();
      cur = getLine(doc, found.from.line);
      len += found.from.ch - found.to.ch;
    }
    cur = line;
    while (merged = collapsedSpanAtEnd(cur)) {
      var found = merged.find();
      len -= cur.text.length - found.from.ch;
      cur = getLine(doc, found.to.line);
      len += cur.text.length - found.to.ch;
    }
    return len;
  }

  function computeMaxLength(cm) {
    var d = cm.display, doc = cm.doc;
    d.maxLine = getLine(doc, doc.first);
    d.maxLineLength = lineLength(doc, d.maxLine);
    d.maxLineChanged = true;
    doc.iter(function(line) {
      var len = lineLength(doc, line);
      if (len > d.maxLineLength) {
        d.maxLineLength = len;
        d.maxLine = line;
      }
    });
  }

  // Make sure the gutters options contains the element
  // "CodeMirror-linenumbers" when the lineNumbers option is true.
  function setGuttersForLineNumbers(options) {
    var found = false;
    for (var i = 0; i < options.gutters.length; ++i) {
      if (options.gutters[i] == "CodeMirror-linenumbers") {
        if (options.lineNumbers) found = true;
        else options.gutters.splice(i--, 1);
      }
    }
    if (!found && options.lineNumbers)
      options.gutters.push("CodeMirror-linenumbers");
  }

  // SCROLLBARS

  // Re-synchronize the fake scrollbars with the actual size of the
  // content. Optionally force a scrollTop.
  function updateScrollbars(cm) {
    var d = cm.display, docHeight = cm.doc.height;
    var totalHeight = docHeight + paddingVert(d);
    d.sizer.style.minHeight = d.heightForcer.style.top = totalHeight + "px";
    d.gutters.style.height = Math.max(totalHeight, d.scroller.clientHeight - scrollerCutOff) + "px";
    var scrollHeight = Math.max(totalHeight, d.scroller.scrollHeight);
    var needsH = d.scroller.scrollWidth > (d.scroller.clientWidth + 1);
    var needsV = scrollHeight > (d.scroller.clientHeight + 1);
    if (needsV) {
      d.scrollbarV.style.display = "block";
      d.scrollbarV.style.bottom = needsH ? scrollbarWidth(d.measure) + "px" : "0";
      d.scrollbarV.firstChild.style.height =
        (scrollHeight - d.scroller.clientHeight + d.scrollbarV.clientHeight) + "px";
    } else d.scrollbarV.style.display = "";
    if (needsH) {
      d.scrollbarH.style.display = "block";
      d.scrollbarH.style.right = needsV ? scrollbarWidth(d.measure) + "px" : "0";
      d.scrollbarH.firstChild.style.width =
        (d.scroller.scrollWidth - d.scroller.clientWidth + d.scrollbarH.clientWidth) + "px";
    } else d.scrollbarH.style.display = "";
    if (needsH && needsV) {
      d.scrollbarFiller.style.display = "block";
      d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = scrollbarWidth(d.measure) + "px";
    } else d.scrollbarFiller.style.display = "";
    if (needsH && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {
      d.gutterFiller.style.display = "block";
      d.gutterFiller.style.height = scrollbarWidth(d.measure) + "px";
      d.gutterFiller.style.width = d.gutters.offsetWidth + "px";
    } else d.gutterFiller.style.display = "";

    if (mac_geLion && scrollbarWidth(d.measure) === 0)
      d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = mac_geMountainLion ? "18px" : "12px";
  }

  function visibleLines(display, doc, viewPort) {
    var top = display.scroller.scrollTop, height = display.wrapper.clientHeight;
    if (typeof viewPort == "number") top = viewPort;
    else if (viewPort) {top = viewPort.top; height = viewPort.bottom - viewPort.top;}
    top = Math.floor(top - paddingTop(display));
    var bottom = Math.ceil(top + height);
    return {from: lineAtHeight(doc, top), to: lineAtHeight(doc, bottom)};
  }

  // LINE NUMBERS

  function alignHorizontally(cm) {
    var display = cm.display;
    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;
    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
    var gutterW = display.gutters.offsetWidth, l = comp + "px";
    for (var n = display.lineDiv.firstChild; n; n = n.nextSibling) if (n.alignable) {
      for (var i = 0, a = n.alignable; i < a.length; ++i) a[i].style.left = l;
    }
    if (cm.options.fixedGutter)
      display.gutters.style.left = (comp + gutterW) + "px";
  }

  function maybeUpdateLineNumberWidth(cm) {
    if (!cm.options.lineNumbers) return false;
    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
    if (last.length != display.lineNumChars) {
      var test = display.measure.appendChild(elt("div", [elt("div", last)],
                                                 "CodeMirror-linenumber CodeMirror-gutter-elt"));
      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
      display.lineGutter.style.width = "";
      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding);
      display.lineNumWidth = display.lineNumInnerWidth + padding;
      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
      display.lineGutter.style.width = display.lineNumWidth + "px";
      return true;
    }
    return false;
  }

  function lineNumberFor(options, i) {
    return String(options.lineNumberFormatter(i + options.firstLineNumber));
  }
  function compensateForHScroll(display) {
    return getRect(display.scroller).left - getRect(display.sizer).left;
  }

  // DISPLAY DRAWING

  function updateDisplay(cm, changes, viewPort, forced) {
    var oldFrom = cm.display.showingFrom, oldTo = cm.display.showingTo, updated;
    var visible = visibleLines(cm.display, cm.doc, viewPort);
    for (;;) {
      if (!updateDisplayInner(cm, changes, visible, forced)) break;
      forced = false;
      updated = true;
      updateSelection(cm);
      updateScrollbars(cm);

      // Clip forced viewport to actual scrollable area
      if (viewPort)
        viewPort = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight,
                            typeof viewPort == "number" ? viewPort : viewPort.top);
      visible = visibleLines(cm.display, cm.doc, viewPort);
      if (visible.from >= cm.display.showingFrom && visible.to <= cm.display.showingTo)
        break;
      changes = [];
    }

    if (updated) {
      signalLater(cm, "update", cm);
      if (cm.display.showingFrom != oldFrom || cm.display.showingTo != oldTo)
        signalLater(cm, "viewportChange", cm, cm.display.showingFrom, cm.display.showingTo);
    }
    return updated;
  }

  // Uses a set of changes plus the current scroll position to
  // determine which DOM updates have to be made, and makes the
  // updates.
  function updateDisplayInner(cm, changes, visible, forced) {
    var display = cm.display, doc = cm.doc;
    if (!display.wrapper.clientWidth) {
      display.showingFrom = display.showingTo = doc.first;
      display.viewOffset = 0;
      return;
    }

    // Bail out if the visible area is already rendered and nothing changed.
    if (!forced && changes.length == 0 &&
        visible.from > display.showingFrom && visible.to < display.showingTo)
      return;

    if (maybeUpdateLineNumberWidth(cm))
      changes = [{from: doc.first, to: doc.first + doc.size}];
    var gutterW = display.sizer.style.marginLeft = display.gutters.offsetWidth + "px";
    display.scrollbarH.style.left = cm.options.fixedGutter ? gutterW : "0";

    // Used to determine which lines need their line numbers updated
    var positionsChangedFrom = Infinity;
    if (cm.options.lineNumbers)
      for (var i = 0; i < changes.length; ++i)
        if (changes[i].diff) { positionsChangedFrom = changes[i].from; break; }

    var end = doc.first + doc.size;
    var from = Math.max(visible.from - cm.options.viewportMargin, doc.first);
    var to = Math.min(end, visible.to + cm.options.viewportMargin);
    if (display.showingFrom < from && from - display.showingFrom < 20) from = Math.max(doc.first, display.showingFrom);
    if (display.showingTo > to && display.showingTo - to < 20) to = Math.min(end, display.showingTo);
    if (sawCollapsedSpans) {
      from = lineNo(visualLine(doc, getLine(doc, from)));
      while (to < end && lineIsHidden(doc, getLine(doc, to))) ++to;
    }

    // Create a range of theoretically intact lines, and punch holes
    // in that using the change info.
    var intact = [{from: Math.max(display.showingFrom, doc.first),
                   to: Math.min(display.showingTo, end)}];
    if (intact[0].from >= intact[0].to) intact = [];
    else intact = computeIntact(intact, changes);
    // When merged lines are present, we might have to reduce the
    // intact ranges because changes in continued fragments of the
    // intact lines do require the lines to be redrawn.
    if (sawCollapsedSpans)
      for (var i = 0; i < intact.length; ++i) {
        var range = intact[i], merged;
        while (merged = collapsedSpanAtEnd(getLine(doc, range.to - 1))) {
          var newTo = merged.find().from.line;
          if (newTo > range.from) range.to = newTo;
          else { intact.splice(i--, 1); break; }
        }
      }

    // Clip off the parts that won't be visible
    var intactLines = 0;
    for (var i = 0; i < intact.length; ++i) {
      var range = intact[i];
      if (range.from < from) range.from = from;
      if (range.to > to) range.to = to;
      if (range.from >= range.to) intact.splice(i--, 1);
      else intactLines += range.to - range.from;
    }
    if (!forced && intactLines == to - from && from == display.showingFrom && to == display.showingTo) {
      updateViewOffset(cm);
      return;
    }
    intact.sort(function(a, b) {return a.from - b.from;});

    // Avoid crashing on IE's "unspecified error" when in iframes
    try {
      var focused = document.activeElement;
    } catch(e) {}
    if (intactLines < (to - from) * .7) display.lineDiv.style.display = "none";
    patchDisplay(cm, from, to, intact, positionsChangedFrom);
    display.lineDiv.style.display = "";
    if (focused && document.activeElement != focused && focused.offsetHeight) focused.focus();

    var different = from != display.showingFrom || to != display.showingTo ||
      display.lastSizeC != display.wrapper.clientHeight;
    // This is just a bogus formula that detects when the editor is
    // resized or the font size changes.
    if (different) {
      display.lastSizeC = display.wrapper.clientHeight;
      startWorker(cm, 400);
    }
    display.showingFrom = from; display.showingTo = to;

    updateHeightsInViewport(cm);
    updateViewOffset(cm);

    return true;
  }

  function updateHeightsInViewport(cm) {
    var display = cm.display;
    var prevBottom = display.lineDiv.offsetTop;
    for (var node = display.lineDiv.firstChild, height; node; node = node.nextSibling) if (node.lineObj) {
      if (ie_lt8) {
        var bot = node.offsetTop + node.offsetHeight;
        height = bot - prevBottom;
        prevBottom = bot;
      } else {
        var box = getRect(node);
        height = box.bottom - box.top;
      }
      var diff = node.lineObj.height - height;
      if (height < 2) height = textHeight(display);
      if (diff > .001 || diff < -.001) {
        updateLineHeight(node.lineObj, height);
        var widgets = node.lineObj.widgets;
        if (widgets) for (var i = 0; i < widgets.length; ++i)
          widgets[i].height = widgets[i].node.offsetHeight;
      }
    }
  }

  function updateViewOffset(cm) {
    var off = cm.display.viewOffset = heightAtLine(cm, getLine(cm.doc, cm.display.showingFrom));
    // Position the mover div to align with the current virtual scroll position
    cm.display.mover.style.top = off + "px";
  }

  function computeIntact(intact, changes) {
    for (var i = 0, l = changes.length || 0; i < l; ++i) {
      var change = changes[i], intact2 = [], diff = change.diff || 0;
      for (var j = 0, l2 = intact.length; j < l2; ++j) {
        var range = intact[j];
        if (change.to <= range.from && change.diff) {
          intact2.push({from: range.from + diff, to: range.to + diff});
        } else if (change.to <= range.from || change.from >= range.to) {
          intact2.push(range);
        } else {
          if (change.from > range.from)
            intact2.push({from: range.from, to: change.from});
          if (change.to < range.to)
            intact2.push({from: change.to + diff, to: range.to + diff});
        }
      }
      intact = intact2;
    }
    return intact;
  }

  function getDimensions(cm) {
    var d = cm.display, left = {}, width = {};
    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {
      left[cm.options.gutters[i]] = n.offsetLeft;
      width[cm.options.gutters[i]] = n.offsetWidth;
    }
    return {fixedPos: compensateForHScroll(d),
            gutterTotalWidth: d.gutters.offsetWidth,
            gutterLeft: left,
            gutterWidth: width,
            wrapperWidth: d.wrapper.clientWidth};
  }

  function patchDisplay(cm, from, to, intact, updateNumbersFrom) {
    var dims = getDimensions(cm);
    var display = cm.display, lineNumbers = cm.options.lineNumbers;
    if (!intact.length && (!webkit || !cm.display.currentWheelTarget))
      removeChildren(display.lineDiv);
    var container = display.lineDiv, cur = container.firstChild;

    function rm(node) {
      var next = node.nextSibling;
      if (webkit && mac && cm.display.currentWheelTarget == node) {
        node.style.display = "none";
        node.lineObj = null;
      } else {
        node.parentNode.removeChild(node);
      }
      return next;
    }

    var nextIntact = intact.shift(), lineN = from;
    cm.doc.iter(from, to, function(line) {
      if (nextIntact && nextIntact.to == lineN) nextIntact = intact.shift();
      if (lineIsHidden(cm.doc, line)) {
        if (line.height != 0) updateLineHeight(line, 0);
        if (line.widgets && cur.previousSibling) for (var i = 0; i < line.widgets.length; ++i) {
          var w = line.widgets[i];
          if (w.showIfHidden) {
            var prev = cur.previousSibling;
            if (/pre/i.test(prev.nodeName)) {
              var wrap = elt("div", null, null, "position: relative");
              prev.parentNode.replaceChild(wrap, prev);
              wrap.appendChild(prev);
              prev = wrap;
            }
            var wnode = prev.appendChild(elt("div", [w.node], "CodeMirror-linewidget"));
            if (!w.handleMouseEvents) wnode.ignoreEvents = true;
            positionLineWidget(w, wnode, prev, dims);
          }
        }
      } else if (nextIntact && nextIntact.from <= lineN && nextIntact.to > lineN) {
        // This line is intact. Skip to the actual node. Update its
        // line number if needed.
        while (cur.lineObj != line) cur = rm(cur);
        if (lineNumbers && updateNumbersFrom <= lineN && cur.lineNumber)
          setTextContent(cur.lineNumber, lineNumberFor(cm.options, lineN));
        cur = cur.nextSibling;
      } else {
        // For lines with widgets, make an attempt to find and reuse
        // the existing element, so that widgets aren't needlessly
        // removed and re-inserted into the dom
        if (line.widgets) for (var j = 0, search = cur, reuse; search && j < 20; ++j, search = search.nextSibling)
          if (search.lineObj == line && /div/i.test(search.nodeName)) { reuse = search; break; }
        // This line needs to be generated.
        var lineNode = buildLineElement(cm, line, lineN, dims, reuse);
        if (lineNode != reuse) {
          container.insertBefore(lineNode, cur);
        } else {
          while (cur != reuse) cur = rm(cur);
          cur = cur.nextSibling;
        }

        lineNode.lineObj = line;
      }
      ++lineN;
    });
    while (cur) cur = rm(cur);
  }

  function buildLineElement(cm, line, lineNo, dims, reuse) {
    var lineElement = lineContent(cm, line);
    var markers = line.gutterMarkers, display = cm.display, wrap;

    if (!cm.options.lineNumbers && !markers && !line.bgClass && !line.wrapClass && !line.widgets)
      return lineElement;

    // Lines with gutter elements, widgets or a background class need
    // to be wrapped again, and have the extra elements added to the
    // wrapper div

    if (reuse) {
      reuse.alignable = null;
      var isOk = true, widgetsSeen = 0, insertBefore = null;
      for (var n = reuse.firstChild, next; n; n = next) {
        next = n.nextSibling;
        if (!/\bCodeMirror-linewidget\b/.test(n.className)) {
          reuse.removeChild(n);
        } else {
          for (var i = 0; i < line.widgets.length; ++i) {
            var widget = line.widgets[i];
            if (widget.node == n.firstChild) {
              if (!widget.above && !insertBefore) insertBefore = n;
              positionLineWidget(widget, n, reuse, dims);
              ++widgetsSeen;
              break;
            }
          }
          if (i == line.widgets.length) { isOk = false; break; }
        }
      }
      reuse.insertBefore(lineElement, insertBefore);
      if (isOk && widgetsSeen == line.widgets.length) {
        wrap = reuse;
        reuse.className = line.wrapClass || "";
      }
    }
    if (!wrap) {
      wrap = elt("div", null, line.wrapClass, "position: relative");
      wrap.appendChild(lineElement);
    }
    // Kludge to make sure the styled element lies behind the selection (by z-index)
    if (line.bgClass)
      wrap.insertBefore(elt("div", null, line.bgClass + " CodeMirror-linebackground"), wrap.firstChild);
    if (cm.options.lineNumbers || markers) {
      var gutterWrap = wrap.insertBefore(elt("div", null, null, "position: absolute; left: " +
                                             (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"),
                                         wrap.firstChild);
      if (cm.options.fixedGutter) (wrap.alignable || (wrap.alignable = [])).push(gutterWrap);
      if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"]))
        wrap.lineNumber = gutterWrap.appendChild(
          elt("div", lineNumberFor(cm.options, lineNo),
              "CodeMirror-linenumber CodeMirror-gutter-elt",
              "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: "
              + display.lineNumInnerWidth + "px"));
      if (markers)
        for (var k = 0; k < cm.options.gutters.length; ++k) {
          var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];
          if (found)
            gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " +
                                       dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px"));
        }
    }
    if (ie_lt8) wrap.style.zIndex = 2;
    if (line.widgets && wrap != reuse) for (var i = 0, ws = line.widgets; i < ws.length; ++i) {
      var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget");
      if (!widget.handleMouseEvents) node.ignoreEvents = true;
      positionLineWidget(widget, node, wrap, dims);
      if (widget.above)
        wrap.insertBefore(node, cm.options.lineNumbers && line.height != 0 ? gutterWrap : lineElement);
      else
        wrap.appendChild(node);
      signalLater(widget, "redraw");
    }
    return wrap;
  }

  function positionLineWidget(widget, node, wrap, dims) {
    if (widget.noHScroll) {
      (wrap.alignable || (wrap.alignable = [])).push(node);
      var width = dims.wrapperWidth;
      node.style.left = dims.fixedPos + "px";
      if (!widget.coverGutter) {
        width -= dims.gutterTotalWidth;
        node.style.paddingLeft = dims.gutterTotalWidth + "px";
      }
      node.style.width = width + "px";
    }
    if (widget.coverGutter) {
      node.style.zIndex = 5;
      node.style.position = "relative";
      if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px";
    }
  }

  // SELECTION / CURSOR

  function updateSelection(cm) {
    var display = cm.display;
    var collapsed = posEq(cm.doc.sel.from, cm.doc.sel.to);
    if (collapsed || cm.options.showCursorWhenSelecting)
      updateSelectionCursor(cm);
    else
      display.cursor.style.display = display.otherCursor.style.display = "none";
    if (!collapsed)
      updateSelectionRange(cm);
    else
      display.selectionDiv.style.display = "none";

    // Move the hidden textarea near the cursor to prevent scrolling artifacts
    if (cm.options.moveInputWithCursor) {
      var headPos = cursorCoords(cm, cm.doc.sel.head, "div");
      var wrapOff = getRect(display.wrapper), lineOff = getRect(display.lineDiv);
      display.inputDiv.style.top = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
                                                        headPos.top + lineOff.top - wrapOff.top)) + "px";
      display.inputDiv.style.left = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
                                                         headPos.left + lineOff.left - wrapOff.left)) + "px";
    }
  }

  // No selection, plain cursor
  function updateSelectionCursor(cm) {
    var display = cm.display, pos = cursorCoords(cm, cm.doc.sel.head, "div");
    display.cursor.style.left = pos.left + "px";
    display.cursor.style.top = pos.top + "px";
    display.cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px";
    display.cursor.style.display = "";

    if (pos.other) {
      display.otherCursor.style.display = "";
      display.otherCursor.style.left = pos.other.left + "px";
      display.otherCursor.style.top = pos.other.top + "px";
      display.otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px";
    } else { display.otherCursor.style.display = "none"; }
  }

  // Highlight selection
  function updateSelectionRange(cm) {
    var display = cm.display, doc = cm.doc, sel = cm.doc.sel;
    var fragment = document.createDocumentFragment();
    var clientWidth = display.lineSpace.offsetWidth, pl = paddingLeft(cm.display);

    function add(left, top, width, bottom) {
      if (top < 0) top = 0;
      fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left +
                               "px; top: " + top + "px; width: " + (width == null ? clientWidth - left : width) +
                               "px; height: " + (bottom - top) + "px"));
    }

    function drawForLine(line, fromArg, toArg) {
      var lineObj = getLine(doc, line);
      var lineLen = lineObj.text.length;
      var start, end;
      function coords(ch, bias) {
        return charCoords(cm, Pos(line, ch), "div", lineObj, bias);
      }

      iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {
        var leftPos = coords(from, "left"), rightPos, left, right;
        if (from == to) {
          rightPos = leftPos;
          left = right = leftPos.left;
        } else {
          rightPos = coords(to - 1, "right");
          if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }
          left = leftPos.left;
          right = rightPos.right;
        }
        if (fromArg == null && from == 0) left = pl;
        if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
          add(left, leftPos.top, null, leftPos.bottom);
          left = pl;
          if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);
        }
        if (toArg == null && to == lineLen) right = clientWidth;
        if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
          start = leftPos;
        if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
          end = rightPos;
        if (left < pl + 1) left = pl;
        add(left, rightPos.top, right - left, rightPos.bottom);
      });
      return {start: start, end: end};
    }

    if (sel.from.line == sel.to.line) {
      drawForLine(sel.from.line, sel.from.ch, sel.to.ch);
    } else {
      var fromLine = getLine(doc, sel.from.line), toLine = getLine(doc, sel.to.line);
      var singleVLine = visualLine(doc, fromLine) == visualLine(doc, toLine);
      var leftEnd = drawForLine(sel.from.line, sel.from.ch, singleVLine ? fromLine.text.length : null).end;
      var rightStart = drawForLine(sel.to.line, singleVLine ? 0 : null, sel.to.ch).start;
      if (singleVLine) {
        if (leftEnd.top < rightStart.top - 2) {
          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);
          add(pl, rightStart.top, rightStart.left, rightStart.bottom);
        } else {
          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);
        }
      }
      if (leftEnd.bottom < rightStart.top)
        add(pl, leftEnd.bottom, null, rightStart.top);
    }

    removeChildrenAndAdd(display.selectionDiv, fragment);
    display.selectionDiv.style.display = "";
  }

  // Cursor-blinking
  function restartBlink(cm) {
    if (!cm.state.focused) return;
    var display = cm.display;
    clearInterval(display.blinker);
    var on = true;
    display.cursor.style.visibility = display.otherCursor.style.visibility = "";
    display.blinker = setInterval(function() {
      display.cursor.style.visibility = display.otherCursor.style.visibility = (on = !on) ? "" : "hidden";
    }, cm.options.cursorBlinkRate);
  }

  // HIGHLIGHT WORKER

  function startWorker(cm, time) {
    if (cm.doc.mode.startState && cm.doc.frontier < cm.display.showingTo)
      cm.state.highlight.set(time, bind(highlightWorker, cm));
  }

  function highlightWorker(cm) {
    var doc = cm.doc;
    if (doc.frontier < doc.first) doc.frontier = doc.first;
    if (doc.frontier >= cm.display.showingTo) return;
    var end = +new Date + cm.options.workTime;
    var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));
    var changed = [], prevChange;
    doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.showingTo + 500), function(line) {
      if (doc.frontier >= cm.display.showingFrom) { // Visible
        var oldStyles = line.styles;
        line.styles = highlightLine(cm, line, state);
        var ischange = !oldStyles || oldStyles.length != line.styles.length;
        for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];
        if (ischange) {
          if (prevChange && prevChange.end == doc.frontier) prevChange.end++;
          else changed.push(prevChange = {start: doc.frontier, end: doc.frontier + 1});
        }
        line.stateAfter = copyState(doc.mode, state);
      } else {
        processLine(cm, line, state);
        line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;
      }
      ++doc.frontier;
      if (+new Date > end) {
        startWorker(cm, cm.options.workDelay);
        return true;
      }
    });
    if (changed.length)
      operation(cm, function() {
        for (var i = 0; i < changed.length; ++i)
          regChange(this, changed[i].start, changed[i].end);
      })();
  }

  // Finds the line to start with when starting a parse. Tries to
  // find a line with a stateAfter, so that it can start with a
  // valid state. If that fails, it returns the line with the
  // smallest indentation, which tends to need the least context to
  // parse correctly.
  function findStartLine(cm, n, precise) {
    var minindent, minline, doc = cm.doc;
    for (var search = n, lim = n - 100; search > lim; --search) {
      if (search <= doc.first) return doc.first;
      var line = getLine(doc, search - 1);
      if (line.stateAfter && (!precise || search <= doc.frontier)) return search;
      var indented = countColumn(line.text, null, cm.options.tabSize);
      if (minline == null || minindent > indented) {
        minline = search - 1;
        minindent = indented;
      }
    }
    return minline;
  }

  function getStateBefore(cm, n, precise) {
    var doc = cm.doc, display = cm.display;
      if (!doc.mode.startState) return true;
    var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;
    if (!state) state = startState(doc.mode);
    else state = copyState(doc.mode, state);
    doc.iter(pos, n, function(line) {
      processLine(cm, line, state);
      var save = pos == n - 1 || pos % 5 == 0 || pos >= display.showingFrom && pos < display.showingTo;
      line.stateAfter = save ? copyState(doc.mode, state) : null;
      ++pos;
    });
    return state;
  }

  // POSITION MEASUREMENT

  function paddingTop(display) {return display.lineSpace.offsetTop;}
  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}
  function paddingLeft(display) {
    var e = removeChildrenAndAdd(display.measure, elt("pre", null, null, "text-align: left")).appendChild(elt("span", "x"));
    return e.offsetLeft;
  }

  function measureChar(cm, line, ch, data, bias) {
    var dir = -1;
    data = data || measureLine(cm, line);

    for (var pos = ch;; pos += dir) {
      var r = data[pos];
      if (r) break;
      if (dir < 0 && pos == 0) dir = 1;
    }
    bias = pos > ch ? "left" : pos < ch ? "right" : bias;
    if (bias == "left" && r.leftSide) r = r.leftSide;
    else if (bias == "right" && r.rightSide) r = r.rightSide;
    return {left: pos < ch ? r.right : r.left,
            right: pos > ch ? r.left : r.right,
            top: r.top,
            bottom: r.bottom};
  }

  function findCachedMeasurement(cm, line) {
    var cache = cm.display.measureLineCache;
    for (var i = 0; i < cache.length; ++i) {
      var memo = cache[i];
      if (memo.text == line.text && memo.markedSpans == line.markedSpans &&
          cm.display.scroller.clientWidth == memo.width &&
          memo.classes == line.textClass + "|" + line.bgClass + "|" + line.wrapClass)
        return memo;
    }
  }

  function clearCachedMeasurement(cm, line) {
    var exists = findCachedMeasurement(cm, line);
    if (exists) exists.text = exists.measure = exists.markedSpans = null;
  }

  function measureLine(cm, line) {
    // First look in the cache
    var cached = findCachedMeasurement(cm, line);
    if (cached) return cached.measure;

    // Failing that, recompute and store result in cache
    var measure = measureLineInner(cm, line);
    var cache = cm.display.measureLineCache;
    var memo = {text: line.text, width: cm.display.scroller.clientWidth,
                markedSpans: line.markedSpans, measure: measure,
                classes: line.textClass + "|" + line.bgClass + "|" + line.wrapClass};
    if (cache.length == 16) cache[++cm.display.measureLineCachePos % 16] = memo;
    else cache.push(memo);
    return measure;
  }

  function measureLineInner(cm, line) {
    var display = cm.display, measure = emptyArray(line.text.length);
    var pre = lineContent(cm, line, measure, true);

    // IE does not cache element positions of inline elements between
    // calls to getBoundingClientRect. This makes the loop below,
    // which gathers the positions of all the characters on the line,
    // do an amount of layout work quadratic to the number of
    // characters. When line wrapping is off, we try to improve things
    // by first subdividing the line into a bunch of inline blocks, so
    // that IE can reuse most of the layout information from caches
    // for those blocks. This does interfere with line wrapping, so it
    // doesn't work when wrapping is on, but in that case the
    // situation is slightly better, since IE does cache line-wrapping
    // information and only recomputes per-line.
    if (ie && !ie_lt8 && !cm.options.lineWrapping && pre.childNodes.length > 100) {
      var fragment = document.createDocumentFragment();
      var chunk = 10, n = pre.childNodes.length;
      for (var i = 0, chunks = Math.ceil(n / chunk); i < chunks; ++i) {
        var wrap = elt("div", null, null, "display: inline-block");
        for (var j = 0; j < chunk && n; ++j) {
          wrap.appendChild(pre.firstChild);
          --n;
        }
        fragment.appendChild(wrap);
      }
      pre.appendChild(fragment);
    }

    removeChildrenAndAdd(display.measure, pre);

    var outer = getRect(display.lineDiv);
    var vranges = [], data = emptyArray(line.text.length), maxBot = pre.offsetHeight;
    // Work around an IE7/8 bug where it will sometimes have randomly
    // replaced our pre with a clone at this point.
    if (ie_lt9 && display.measure.first != pre)
      removeChildrenAndAdd(display.measure, pre);

    function measureRect(rect) {
      var top = rect.top - outer.top, bot = rect.bottom - outer.top;
      if (bot > maxBot) bot = maxBot;
      if (top < 0) top = 0;
      for (var i = vranges.length - 2; i >= 0; i -= 2) {
        var rtop = vranges[i], rbot = vranges[i+1];
        if (rtop > bot || rbot < top) continue;
        if (rtop <= top && rbot >= bot ||
            top <= rtop && bot >= rbot ||
            Math.min(bot, rbot) - Math.max(top, rtop) >= (bot - top) >> 1) {
          vranges[i] = Math.min(top, rtop);
          vranges[i+1] = Math.max(bot, rbot);
          break;
        }
      }
      if (i < 0) { i = vranges.length; vranges.push(top, bot); }
      return {left: rect.left - outer.left,
              right: rect.right - outer.left,
              top: i, bottom: null};
    }
    function finishRect(rect) {
      rect.bottom = vranges[rect.top+1];
      rect.top = vranges[rect.top];
    }

    for (var i = 0, cur; i < measure.length; ++i) if (cur = measure[i]) {
      var node = cur, rect = null;
      // A widget might wrap, needs special care
      if (/\bCodeMirror-widget\b/.test(cur.className) && cur.getClientRects) {
        if (cur.firstChild.nodeType == 1) node = cur.firstChild;
        var rects = node.getClientRects();
        if (rects.length > 1) {
          rect = data[i] = measureRect(rects[0]);
          rect.rightSide = measureRect(rects[rects.length - 1]);
        }
      }
      if (!rect) rect = data[i] = measureRect(getRect(node));
      if (cur.measureRight) rect.right = getRect(cur.measureRight).left;
      if (cur.leftSide) rect.leftSide = measureRect(getRect(cur.leftSide));
    }
    for (var i = 0, cur; i < data.length; ++i) if (cur = data[i]) {
      finishRect(cur);
      if (cur.leftSide) finishRect(cur.leftSide);
      if (cur.rightSide) finishRect(cur.rightSide);
    }
    return data;
  }

  function measureLineWidth(cm, line) {
    var hasBadSpan = false;
    if (line.markedSpans) for (var i = 0; i < line.markedSpans; ++i) {
      var sp = line.markedSpans[i];
      if (sp.collapsed && (sp.to == null || sp.to == line.text.length)) hasBadSpan = true;
    }
    var cached = !hasBadSpan && findCachedMeasurement(cm, line);
    if (cached) return measureChar(cm, line, line.text.length, cached.measure, "right").right;

    var pre = lineContent(cm, line, null, true);
    var end = pre.appendChild(zeroWidthElement(cm.display.measure));
    removeChildrenAndAdd(cm.display.measure, pre);
    return getRect(end).right - getRect(cm.display.lineDiv).left;
  }

  function clearCaches(cm) {
    cm.display.measureLineCache.length = cm.display.measureLineCachePos = 0;
    cm.display.cachedCharWidth = cm.display.cachedTextHeight = null;
    if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;
    cm.display.lineNumChars = null;
  }

  function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }
  function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }

  // Context is one of "line", "div" (display.lineDiv), "local"/null (editor), or "page"
  function intoCoordSystem(cm, lineObj, rect, context) {
    if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {
      var size = widgetHeight(lineObj.widgets[i]);
      rect.top += size; rect.bottom += size;
    }
    if (context == "line") return rect;
    if (!context) context = "local";
    var yOff = heightAtLine(cm, lineObj);
    if (context == "local") yOff += paddingTop(cm.display);
    else yOff -= cm.display.viewOffset;
    if (context == "page" || context == "window") {
      var lOff = getRect(cm.display.lineSpace);
      yOff += lOff.top + (context == "window" ? 0 : pageScrollY());
      var xOff = lOff.left + (context == "window" ? 0 : pageScrollX());
      rect.left += xOff; rect.right += xOff;
    }
    rect.top += yOff; rect.bottom += yOff;
    return rect;
  }

  // Context may be "window", "page", "div", or "local"/null
  // Result is in "div" coords
  function fromCoordSystem(cm, coords, context) {
    if (context == "div") return coords;
    var left = coords.left, top = coords.top;
    // First move into "page" coordinate system
    if (context == "page") {
      left -= pageScrollX();
      top -= pageScrollY();
    } else if (context == "local" || !context) {
      var localBox = getRect(cm.display.sizer);
      left += localBox.left;
      top += localBox.top;
    }

    var lineSpaceBox = getRect(cm.display.lineSpace);
    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};
  }

  function charCoords(cm, pos, context, lineObj, bias) {
    if (!lineObj) lineObj = getLine(cm.doc, pos.line);
    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, null, bias), context);
  }

  function cursorCoords(cm, pos, context, lineObj, measurement) {
    lineObj = lineObj || getLine(cm.doc, pos.line);
    if (!measurement) measurement = measureLine(cm, lineObj);
    function get(ch, right) {
      var m = measureChar(cm, lineObj, ch, measurement, right ? "right" : "left");
      if (right) m.left = m.right; else m.right = m.left;
      return intoCoordSystem(cm, lineObj, m, context);
    }
    function getBidi(ch, partPos) {
      var part = order[partPos], right = part.level % 2;
      if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {
        part = order[--partPos];
        ch = bidiRight(part) - (part.level % 2 ? 0 : 1);
        right = true;
      } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {
        part = order[++partPos];
        ch = bidiLeft(part) - part.level % 2;
        right = false;
      }
      if (right && ch == part.to && ch > part.from) return get(ch - 1);
      return get(ch, right);
    }
    var order = getOrder(lineObj), ch = pos.ch;
    if (!order) return get(ch);
    var partPos = getBidiPartAt(order, ch);
    var val = getBidi(ch, partPos);
    if (bidiOther != null) val.other = getBidi(ch, bidiOther);
    return val;
  }

  function PosWithInfo(line, ch, outside, xRel) {
    var pos = new Pos(line, ch);
    pos.xRel = xRel;
    if (outside) pos.outside = true;
    return pos;
  }

  // Coords must be lineSpace-local
  function coordsChar(cm, x, y) {
    var doc = cm.doc;
    y += cm.display.viewOffset;
    if (y < 0) return PosWithInfo(doc.first, 0, true, -1);
    var lineNo = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
    if (lineNo > last)
      return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);
    if (x < 0) x = 0;

    for (;;) {
      var lineObj = getLine(doc, lineNo);
      var found = coordsCharInner(cm, lineObj, lineNo, x, y);
      var merged = collapsedSpanAtEnd(lineObj);
      var mergedPos = merged && merged.find();
      if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))
        lineNo = mergedPos.to.line;
      else
        return found;
    }
  }

  function coordsCharInner(cm, lineObj, lineNo, x, y) {
    var innerOff = y - heightAtLine(cm, lineObj);
    var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;
    var measurement = measureLine(cm, lineObj);

    function getX(ch) {
      var sp = cursorCoords(cm, Pos(lineNo, ch), "line",
                            lineObj, measurement);
      wrongLine = true;
      if (innerOff > sp.bottom) return sp.left - adjust;
      else if (innerOff < sp.top) return sp.left + adjust;
      else wrongLine = false;
      return sp.left;
    }

    var bidi = getOrder(lineObj), dist = lineObj.text.length;
    var from = lineLeft(lineObj), to = lineRight(lineObj);
    var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;

    if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);
    // Do a binary search between these bounds.
    for (;;) {
      if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {
        var ch = x < fromX || x - fromX <= toX - x ? from : to;
        var xDiff = x - (ch == from ? fromX : toX);
        while (isExtendingChar.test(lineObj.text.charAt(ch))) ++ch;
        var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside,
                              xDiff < 0 ? -1 : xDiff ? 1 : 0);
        return pos;
      }
      var step = Math.ceil(dist / 2), middle = from + step;
      if (bidi) {
        middle = from;
        for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);
      }
      var middleX = getX(middle);
      if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}
      else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}
    }
  }

  var measureText;
  function textHeight(display) {
    if (display.cachedTextHeight != null) return display.cachedTextHeight;
    if (measureText == null) {
      measureText = elt("pre");
      // Measure a bunch of lines, for browsers that compute
      // fractional heights.
      for (var i = 0; i < 49; ++i) {
        measureText.appendChild(document.createTextNode("x"));
        measureText.appendChild(elt("br"));
      }
      measureText.appendChild(document.createTextNode("x"));
    }
    removeChildrenAndAdd(display.measure, measureText);
    var height = measureText.offsetHeight / 50;
    if (height > 3) display.cachedTextHeight = height;
    removeChildren(display.measure);
    return height || 1;
  }

  function charWidth(display) {
    if (display.cachedCharWidth != null) return display.cachedCharWidth;
    var anchor = elt("span", "x");
    var pre = elt("pre", [anchor]);
    removeChildrenAndAdd(display.measure, pre);
    var width = anchor.offsetWidth;
    if (width > 2) display.cachedCharWidth = width;
    return width || 10;
  }

  // OPERATIONS

  // Operations are used to wrap changes in such a way that each
  // change won't have to update the cursor and display (which would
  // be awkward, slow, and error-prone), but instead updates are
  // batched and then all combined and executed at once.

  var nextOpId = 0;
  function startOperation(cm) {
    cm.curOp = {
      // An array of ranges of lines that have to be updated. See
      // updateDisplay.
      changes: [],
      forceUpdate: false,
      updateInput: null,
      userSelChange: null,
      textChanged: null,
      selectionChanged: false,
      cursorActivity: false,
      updateMaxLine: false,
      updateScrollPos: false,
      id: ++nextOpId
    };
    if (!delayedCallbackDepth++) delayedCallbacks = [];
  }

  function endOperation(cm) {
    var op = cm.curOp, doc = cm.doc, display = cm.display;
    cm.curOp = null;

    if (op.updateMaxLine) computeMaxLength(cm);
    if (display.maxLineChanged && !cm.options.lineWrapping && display.maxLine) {
      var width = measureLineWidth(cm, display.maxLine);
      display.sizer.style.minWidth = Math.max(0, width + 3 + scrollerCutOff) + "px";
      display.maxLineChanged = false;
      var maxScrollLeft = Math.max(0, display.sizer.offsetLeft + display.sizer.offsetWidth - display.scroller.clientWidth);
      if (maxScrollLeft < doc.scrollLeft && !op.updateScrollPos)
        setScrollLeft(cm, Math.min(display.scroller.scrollLeft, maxScrollLeft), true);
    }
    var newScrollPos, updated;
    if (op.updateScrollPos) {
      newScrollPos = op.updateScrollPos;
    } else if (op.selectionChanged && display.scroller.clientHeight) { // don't rescroll if not visible
      var coords = cursorCoords(cm, doc.sel.head);
      newScrollPos = calculateScrollPos(cm, coords.left, coords.top, coords.left, coords.bottom);
    }
    if (op.changes.length || op.forceUpdate || newScrollPos && newScrollPos.scrollTop != null) {
      updated = updateDisplay(cm, op.changes, newScrollPos && newScrollPos.scrollTop, op.forceUpdate);
      if (cm.display.scroller.offsetHeight) cm.doc.scrollTop = cm.display.scroller.scrollTop;
    }
    if (!updated && op.selectionChanged) updateSelection(cm);
    if (op.updateScrollPos) {
      display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = newScrollPos.scrollTop;
      display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = newScrollPos.scrollLeft;
      alignHorizontally(cm);
      if (op.scrollToPos)
        scrollPosIntoView(cm, clipPos(cm.doc, op.scrollToPos), op.scrollToPosMargin);
    } else if (newScrollPos) {
      scrollCursorIntoView(cm);
    }
    if (op.selectionChanged) restartBlink(cm);

    if (cm.state.focused && op.updateInput)
      resetInput(cm, op.userSelChange);

    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;
    if (hidden) for (var i = 0; i < hidden.length; ++i)
      if (!hidden[i].lines.length) signal(hidden[i], "hide");
    if (unhidden) for (var i = 0; i < unhidden.length; ++i)
      if (unhidden[i].lines.length) signal(unhidden[i], "unhide");

    var delayed;
    if (!--delayedCallbackDepth) {
      delayed = delayedCallbacks;
      delayedCallbacks = null;
    }
    if (op.textChanged)
      signal(cm, "change", cm, op.textChanged);
    if (op.cursorActivity) signal(cm, "cursorActivity", cm);
    if (delayed) for (var i = 0; i < delayed.length; ++i) delayed[i]();
  }

  // Wraps a function in an operation. Returns the wrapped function.
  function operation(cm1, f) {
    return function() {
      var cm = cm1 || this, withOp = !cm.curOp;
      if (withOp) startOperation(cm);
      try { var result = f.apply(cm, arguments); }
      finally { if (withOp) endOperation(cm); }
      return result;
    };
  }
  function docOperation(f) {
    return function() {
      var withOp = this.cm && !this.cm.curOp, result;
      if (withOp) startOperation(this.cm);
      try { result = f.apply(this, arguments); }
      finally { if (withOp) endOperation(this.cm); }
      return result;
    };
  }
  function runInOp(cm, f) {
    var withOp = !cm.curOp, result;
    if (withOp) startOperation(cm);
    try { result = f(); }
    finally { if (withOp) endOperation(cm); }
    return result;
  }

  function regChange(cm, from, to, lendiff) {
    if (from == null) from = cm.doc.first;
    if (to == null) to = cm.doc.first + cm.doc.size;
    cm.curOp.changes.push({from: from, to: to, diff: lendiff});
  }

  // INPUT HANDLING

  function slowPoll(cm) {
    if (cm.display.pollingFast) return;
    cm.display.poll.set(cm.options.pollInterval, function() {
      readInput(cm);
      if (cm.state.focused) slowPoll(cm);
    });
  }

  function fastPoll(cm) {
    var missed = false;
    cm.display.pollingFast = true;
    function p() {
      var changed = readInput(cm);
      if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);}
      else {cm.display.pollingFast = false; slowPoll(cm);}
    }
    cm.display.poll.set(20, p);
  }

  // prevInput is a hack to work with IME. If we reset the textarea
  // on every change, that breaks IME. So we look for changes
  // compared to the previous content instead. (Modern browsers have
  // events that indicate IME taking place, but these are not widely
  // supported or compatible enough yet to rely on.)
  function readInput(cm) {
    var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc, sel = doc.sel;
    if (!cm.state.focused || hasSelection(input) || isReadOnly(cm) || cm.state.disableInput) return false;
    var text = input.value;
    if (text == prevInput && posEq(sel.from, sel.to)) return false;
    if (ie && !ie_lt9 && cm.display.inputHasSelection === text) {
      resetInput(cm, true);
      return false;
    }

    var withOp = !cm.curOp;
    if (withOp) startOperation(cm);
    sel.shift = false;
    var same = 0, l = Math.min(prevInput.length, text.length);
    while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;
    var from = sel.from, to = sel.to;
    if (same < prevInput.length)
      from = Pos(from.line, from.ch - (prevInput.length - same));
    else if (cm.state.overwrite && posEq(from, to) && !cm.state.pasteIncoming)
      to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + (text.length - same)));

    var updateInput = cm.curOp.updateInput;
    var changeEvent = {from: from, to: to, text: splitLines(text.slice(same)),
                       origin: cm.state.pasteIncoming ? "paste" : "+input"};
    makeChange(cm.doc, changeEvent, "end");
    cm.curOp.updateInput = updateInput;
    signalLater(cm, "inputRead", cm, changeEvent);

    if (text.length > 1000 || text.indexOf("\n") > -1) input.value = cm.display.prevInput = "";
    else cm.display.prevInput = text;
    if (withOp) endOperation(cm);
    cm.state.pasteIncoming = false;
    return true;
  }

  function resetInput(cm, user) {
    var minimal, selected, doc = cm.doc;
    if (!posEq(doc.sel.from, doc.sel.to)) {
      cm.display.prevInput = "";
      minimal = hasCopyEvent &&
        (doc.sel.to.line - doc.sel.from.line > 100 || (selected = cm.getSelection()).length > 1000);
      var content = minimal ? "-" : selected || cm.getSelection();
      cm.display.input.value = content;
      if (cm.state.focused) selectInput(cm.display.input);
      if (ie && !ie_lt9) cm.display.inputHasSelection = content;
    } else if (user) {
      cm.display.prevInput = cm.display.input.value = "";
      if (ie && !ie_lt9) cm.display.inputHasSelection = null;
    }
    cm.display.inaccurateSelection = minimal;
  }

  function focusInput(cm) {
    if (cm.options.readOnly != "nocursor" && (!mobile || document.activeElement != cm.display.input))
      cm.display.input.focus();
  }

  function isReadOnly(cm) {
    return cm.options.readOnly || cm.doc.cantEdit;
  }

  // EVENT HANDLERS

  function registerEventHandlers(cm) {
    var d = cm.display;
    on(d.scroller, "mousedown", operation(cm, onMouseDown));
    if (ie)
      on(d.scroller, "dblclick", operation(cm, function(e) {
        if (signalDOMEvent(cm, e)) return;
        var pos = posFromMouse(cm, e);
        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;
        e_preventDefault(e);
        var word = findWordAt(getLine(cm.doc, pos.line).text, pos);
        extendSelection(cm.doc, word.from, word.to);
      }));
    else
      on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });
    on(d.lineSpace, "selectstart", function(e) {
      if (!eventInWidget(d, e)) e_preventDefault(e);
    });
    // Gecko browsers fire contextmenu *after* opening the menu, at
    // which point we can't mess with it anymore. Context menu is
    // handled in onMouseDown for Gecko.
    if (!captureMiddleClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);});

    on(d.scroller, "scroll", function() {
      if (d.scroller.clientHeight) {
        setScrollTop(cm, d.scroller.scrollTop);
        setScrollLeft(cm, d.scroller.scrollLeft, true);
        signal(cm, "scroll", cm);
      }
    });
    on(d.scrollbarV, "scroll", function() {
      if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop);
    });
    on(d.scrollbarH, "scroll", function() {
      if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft);
    });

    on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);});
    on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);});

    function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); }
    on(d.scrollbarH, "mousedown", reFocus);
    on(d.scrollbarV, "mousedown", reFocus);
    // Prevent wrapper from ever scrolling
    on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });

    var resizeTimer;
    function onResize() {
      if (resizeTimer == null) resizeTimer = setTimeout(function() {
        resizeTimer = null;
        // Might be a text scaling operation, clear size caches.
        d.cachedCharWidth = d.cachedTextHeight = knownScrollbarWidth = null;
        clearCaches(cm);
        runInOp(cm, bind(regChange, cm));
      }, 100);
    }
    on(window, "resize", onResize);
    // Above handler holds on to the editor and its data structures.
    // Here we poll to unregister it when the editor is no longer in
    // the document, so that it can be garbage-collected.
    function unregister() {
      for (var p = d.wrapper.parentNode; p && p != document.body; p = p.parentNode) {}
      if (p) setTimeout(unregister, 5000);
      else off(window, "resize", onResize);
    }
    setTimeout(unregister, 5000);

    on(d.input, "keyup", operation(cm, function(e) {
      if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;
      if (e.keyCode == 16) cm.doc.sel.shift = false;
    }));
    on(d.input, "input", bind(fastPoll, cm));
    on(d.input, "keydown", operation(cm, onKeyDown));
    on(d.input, "keypress", operation(cm, onKeyPress));
    on(d.input, "focus", bind(onFocus, cm));
    on(d.input, "blur", bind(onBlur, cm));

    function drag_(e) {
      if (signalDOMEvent(cm, e) || cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))) return;
      e_stop(e);
    }
    if (cm.options.dragDrop) {
      on(d.scroller, "dragstart", function(e){onDragStart(cm, e);});
      on(d.scroller, "dragenter", drag_);
      on(d.scroller, "dragover", drag_);
      on(d.scroller, "drop", operation(cm, onDrop));
    }
    on(d.scroller, "paste", function(e){
      if (eventInWidget(d, e)) return;
      focusInput(cm);
      fastPoll(cm);
    });
    on(d.input, "paste", function() {
      cm.state.pasteIncoming = true;
      fastPoll(cm);
    });

    function prepareCopy() {
      if (d.inaccurateSelection) {
        d.prevInput = "";
        d.inaccurateSelection = false;
        d.input.value = cm.getSelection();
        selectInput(d.input);
      }
    }
    on(d.input, "cut", prepareCopy);
    on(d.input, "copy", prepareCopy);

    // Needed to handle Tab key in KHTML
    if (khtml) on(d.sizer, "mouseup", function() {
        if (document.activeElement == d.input) d.input.blur();
        focusInput(cm);
    });
  }

  function eventInWidget(display, e) {
    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {
      if (!n || n.ignoreEvents || n.parentNode == display.sizer && n != display.mover) return true;
    }
  }

  function posFromMouse(cm, e, liberal) {
    var display = cm.display;
    if (!liberal) {
      var target = e_target(e);
      if (target == display.scrollbarH || target == display.scrollbarH.firstChild ||
          target == display.scrollbarV || target == display.scrollbarV.firstChild ||
          target == display.scrollbarFiller || target == display.gutterFiller) return null;
    }
    var x, y, space = getRect(display.lineSpace);
    // Fails unpredictably on IE[67] when mouse is dragged around quickly.
    try { x = e.clientX; y = e.clientY; } catch (e) { return null; }
    return coordsChar(cm, x - space.left, y - space.top);
  }

  var lastClick, lastDoubleClick;
  function onMouseDown(e) {
    if (signalDOMEvent(this, e)) return;
    var cm = this, display = cm.display, doc = cm.doc, sel = doc.sel;
    sel.shift = e.shiftKey;

    if (eventInWidget(display, e)) {
      if (!webkit) {
        display.scroller.draggable = false;
        setTimeout(function(){display.scroller.draggable = true;}, 100);
      }
      return;
    }
    if (clickInGutter(cm, e)) return;
    var start = posFromMouse(cm, e);

    switch (e_button(e)) {
    case 3:
      if (captureMiddleClick) onContextMenu.call(cm, cm, e);
      return;
    case 2:
      if (start) extendSelection(cm.doc, start);
      setTimeout(bind(focusInput, cm), 20);
      e_preventDefault(e);
      return;
    }
    // For button 1, if it was clicked inside the editor
    // (posFromMouse returning non-null), we have to adjust the
    // selection.
    if (!start) {if (e_target(e) == display.scroller) e_preventDefault(e); return;}

    if (!cm.state.focused) onFocus(cm);

    var now = +new Date, type = "single";
    if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) {
      type = "triple";
      e_preventDefault(e);
      setTimeout(bind(focusInput, cm), 20);
      selectLine(cm, start.line);
    } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) {
      type = "double";
      lastDoubleClick = {time: now, pos: start};
      e_preventDefault(e);
      var word = findWordAt(getLine(doc, start.line).text, start);
      extendSelection(cm.doc, word.from, word.to);
    } else { lastClick = {time: now, pos: start}; }

    var last = start;
    if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && !posEq(sel.from, sel.to) &&
        !posLess(start, sel.from) && !posLess(sel.to, start) && type == "single") {
      var dragEnd = operation(cm, function(e2) {
        if (webkit) display.scroller.draggable = false;
        cm.state.draggingText = false;
        off(document, "mouseup", dragEnd);
        off(display.scroller, "drop", dragEnd);
        if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
          e_preventDefault(e2);
          extendSelection(cm.doc, start);
          focusInput(cm);
        }
      });
      // Let the drag handler handle this.
      if (webkit) display.scroller.draggable = true;
      cm.state.draggingText = dragEnd;
      // IE's approach to draggable
      if (display.scroller.dragDrop) display.scroller.dragDrop();
      on(document, "mouseup", dragEnd);
      on(display.scroller, "drop", dragEnd);
      return;
    }
    e_preventDefault(e);
    if (type == "single") extendSelection(cm.doc, clipPos(doc, start));

    var startstart = sel.from, startend = sel.to, lastPos = start;

    function doSelect(cur) {
      if (posEq(lastPos, cur)) return;
      lastPos = cur;

      if (type == "single") {
        extendSelection(cm.doc, clipPos(doc, start), cur);
        return;
      }

      startstart = clipPos(doc, startstart);
      startend = clipPos(doc, startend);
      if (type == "double") {
        var word = findWordAt(getLine(doc, cur.line).text, cur);
        if (posLess(cur, startstart)) extendSelection(cm.doc, word.from, startend);
        else extendSelection(cm.doc, startstart, word.to);
      } else if (type == "triple") {
        if (posLess(cur, startstart)) extendSelection(cm.doc, startend, clipPos(doc, Pos(cur.line, 0)));
        else extendSelection(cm.doc, startstart, clipPos(doc, Pos(cur.line + 1, 0)));
      }
    }

    var editorSize = getRect(display.wrapper);
    // Used to ensure timeout re-tries don't fire when another extend
    // happened in the meantime (clearTimeout isn't reliable -- at
    // least on Chrome, the timeouts still happen even when cleared,
    // if the clear happens after their scheduled firing time).
    var counter = 0;

    function extend(e) {
      var curCount = ++counter;
      var cur = posFromMouse(cm, e, true);
      if (!cur) return;
      if (!posEq(cur, last)) {
        if (!cm.state.focused) onFocus(cm);
        last = cur;
        doSelect(cur);
        var visible = visibleLines(display, doc);
        if (cur.line >= visible.to || cur.line < visible.from)
          setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);
      } else {
        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;
        if (outside) setTimeout(operation(cm, function() {
          if (counter != curCount) return;
          display.scroller.scrollTop += outside;
          extend(e);
        }), 50);
      }
    }

    function done(e) {
      counter = Infinity;
      e_preventDefault(e);
      focusInput(cm);
      off(document, "mousemove", move);
      off(document, "mouseup", up);
    }

    var move = operation(cm, function(e) {
      if (!ie && !e_button(e)) done(e);
      else extend(e);
    });
    var up = operation(cm, done);
    on(document, "mousemove", move);
    on(document, "mouseup", up);
  }

  function clickInGutter(cm, e) {
    var display = cm.display;
    try { var mX = e.clientX, mY = e.clientY; }
    catch(e) { return false; }

    if (mX >= Math.floor(getRect(display.gutters).right)) return false;
    e_preventDefault(e);
    if (!hasHandler(cm, "gutterClick")) return true;

    var lineBox = getRect(display.lineDiv);
    if (mY > lineBox.bottom) return true;
    mY -= lineBox.top - display.viewOffset;

    for (var i = 0; i < cm.options.gutters.length; ++i) {
      var g = display.gutters.childNodes[i];
      if (g && getRect(g).right >= mX) {
        var line = lineAtHeight(cm.doc, mY);
        var gutter = cm.options.gutters[i];
        signalLater(cm, "gutterClick", cm, line, gutter, e);
        break;
      }
    }
    return true;
  }

  // Kludge to work around strange IE behavior where it'll sometimes
  // re-fire a series of drag-related events right after the drop (#1551)
  var lastDrop = 0;

  function onDrop(e) {
    var cm = this;
    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e) || (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))))
      return;
    e_preventDefault(e);
    if (ie) lastDrop = +new Date;
    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;
    if (!pos || isReadOnly(cm)) return;
    if (files && files.length && window.FileReader && window.File) {
      var n = files.length, text = Array(n), read = 0;
      var loadFile = function(file, i) {
        var reader = new FileReader;
        reader.onload = function() {
          text[i] = reader.result;
          if (++read == n) {
            pos = clipPos(cm.doc, pos);
            makeChange(cm.doc, {from: pos, to: pos, text: splitLines(text.join("\n")), origin: "paste"}, "around");
          }
        };
        reader.readAsText(file);
      };
      for (var i = 0; i < n; ++i) loadFile(files[i], i);
    } else {
      // Don't do a replace if the drop happened inside of the selected text.
      if (cm.state.draggingText && !(posLess(pos, cm.doc.sel.from) || posLess(cm.doc.sel.to, pos))) {
        cm.state.draggingText(e);
        // Ensure the editor is re-focused
        setTimeout(bind(focusInput, cm), 20);
        return;
      }
      try {
        var text = e.dataTransfer.getData("Text");
        if (text) {
          var curFrom = cm.doc.sel.from, curTo = cm.doc.sel.to;
          setSelection(cm.doc, pos, pos);
          if (cm.state.draggingText) replaceRange(cm.doc, "", curFrom, curTo, "paste");
          cm.replaceSelection(text, null, "paste");
          focusInput(cm);
          onFocus(cm);
        }
      }
      catch(e){}
    }
  }

  function onDragStart(cm, e) {
    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }
    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;

    var txt = cm.getSelection();
    e.dataTransfer.setData("Text", txt);

    // Use dummy image instead of default browsers image.
    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
    if (e.dataTransfer.setDragImage && !safari) {
      var img = elt("img", null, null, "position: fixed; left: 0; top: 0;");
      if (opera) {
        img.width = img.height = 1;
        cm.display.wrapper.appendChild(img);
        // Force a relayout, or Opera won't use our image for some obscure reason
        img._top = img.offsetTop;
      }
      e.dataTransfer.setDragImage(img, 0, 0);
      if (opera) img.parentNode.removeChild(img);
    }
  }

  function setScrollTop(cm, val) {
    if (Math.abs(cm.doc.scrollTop - val) < 2) return;
    cm.doc.scrollTop = val;
    if (!gecko) updateDisplay(cm, [], val);
    if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;
    if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val;
    if (gecko) updateDisplay(cm, []);
    startWorker(cm, 100);
  }
  function setScrollLeft(cm, val, isScroller) {
    if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;
    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
    cm.doc.scrollLeft = val;
    alignHorizontally(cm);
    if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;
    if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val;
  }

  // Since the delta values reported on mouse wheel events are
  // unstandardized between browsers and even browser versions, and
  // generally horribly unpredictable, this code starts by measuring
  // the scroll effect that the first few mouse wheel events have,
  // and, from that, detects the way it can convert deltas to pixel
  // offsets afterwards.
  //
  // The reason we want to know the amount a wheel event will scroll
  // is that it gives us a chance to update the display before the
  // actual scrolling happens, reducing flickering.

  var wheelSamples = 0, wheelPixelsPerUnit = null;
  // Fill in a browser-detected starting value on browsers where we
  // know one. These don't have to be accurate -- the result of them
  // being wrong would just be a slight flicker on the first wheel
  // scroll (if it is large enough).
  if (ie) wheelPixelsPerUnit = -.53;
  else if (gecko) wheelPixelsPerUnit = 15;
  else if (chrome) wheelPixelsPerUnit = -.7;
  else if (safari) wheelPixelsPerUnit = -1/3;

  function onScrollWheel(cm, e) {
    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;
    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;
    else if (dy == null) dy = e.wheelDelta;

    var display = cm.display, scroll = display.scroller;
    // Quit if there's nothing to scroll here
    if (!(dx && scroll.scrollWidth > scroll.clientWidth ||
          dy && scroll.scrollHeight > scroll.clientHeight)) return;

    // Webkit browsers on OS X abort momentum scrolls when the target
    // of the scroll event is removed from the scrollable element.
    // This hack (see related code in patchDisplay) makes sure the
    // element is kept around.
    if (dy && mac && webkit) {
      for (var cur = e.target; cur != scroll; cur = cur.parentNode) {
        if (cur.lineObj) {
          cm.display.currentWheelTarget = cur;
          break;
        }
      }
    }

    // On some browsers, horizontal scrolling will cause redraws to
    // happen before the gutter has been realigned, causing it to
    // wriggle around in a most unseemly way. When we have an
    // estimated pixels/delta value, we just handle horizontal
    // scrolling entirely here. It'll be slightly off from native, but
    // better than glitching out.
    if (dx && !gecko && !opera && wheelPixelsPerUnit != null) {
      if (dy)
        setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));
      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
      e_preventDefault(e);
      display.wheelStartX = null; // Abort measurement, if in progress
      return;
    }

    if (dy && wheelPixelsPerUnit != null) {
      var pixels = dy * wheelPixelsPerUnit;
      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
      if (pixels < 0) top = Math.max(0, top + pixels - 50);
      else bot = Math.min(cm.doc.height, bot + pixels + 50);
      updateDisplay(cm, [], {top: top, bottom: bot});
    }

    if (wheelSamples < 20) {
      if (display.wheelStartX == null) {
        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
        display.wheelDX = dx; display.wheelDY = dy;
        setTimeout(function() {
          if (display.wheelStartX == null) return;
          var movedX = scroll.scrollLeft - display.wheelStartX;
          var movedY = scroll.scrollTop - display.wheelStartY;
          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
            (movedX && display.wheelDX && movedX / display.wheelDX);
          display.wheelStartX = display.wheelStartY = null;
          if (!sample) return;
          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
          ++wheelSamples;
        }, 200);
      } else {
        display.wheelDX += dx; display.wheelDY += dy;
      }
    }
  }

  function doHandleBinding(cm, bound, dropShift) {
    if (typeof bound == "string") {
      bound = commands[bound];
      if (!bound) return false;
    }
    // Ensure previous input has been read, so that the handler sees a
    // consistent view of the document
    if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false;
    var doc = cm.doc, prevShift = doc.sel.shift, done = false;
    try {
      if (isReadOnly(cm)) cm.state.suppressEdits = true;
      if (dropShift) doc.sel.shift = false;
      done = bound(cm) != Pass;
    } finally {
      doc.sel.shift = prevShift;
      cm.state.suppressEdits = false;
    }
    return done;
  }

  function allKeyMaps(cm) {
    var maps = cm.state.keyMaps.slice(0);
    if (cm.options.extraKeys) maps.push(cm.options.extraKeys);
    maps.push(cm.options.keyMap);
    return maps;
  }

  var maybeTransition;
  function handleKeyBinding(cm, e) {
    // Handle auto keymap transitions
    var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto;
    clearTimeout(maybeTransition);
    if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() {
      if (getKeyMap(cm.options.keyMap) == startMap) {
        cm.options.keyMap = (next.call ? next.call(null, cm) : next);
        keyMapChanged(cm);
      }
    }, 50);

    var name = keyName(e, true), handled = false;
    if (!name) return false;
    var keymaps = allKeyMaps(cm);

    if (e.shiftKey) {
      // First try to resolve full name (including 'Shift-'). Failing
      // that, see if there is a cursor-motion command (starting with
      // 'go') bound to the keyname without 'Shift-'.
      handled = lookupKey("Shift-" + name, keymaps, function(b) {return doHandleBinding(cm, b, true);})
             || lookupKey(name, keymaps, function(b) {
                  if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion)
                    return doHandleBinding(cm, b);
                });
    } else {
      handled = lookupKey(name, keymaps, function(b) { return doHandleBinding(cm, b); });
    }

    if (handled) {
      e_preventDefault(e);
      restartBlink(cm);
      if (ie_lt9) { e.oldKeyCode = e.keyCode; e.keyCode = 0; }
      signalLater(cm, "keyHandled", cm, name, e);
    }
    return handled;
  }

  function handleCharBinding(cm, e, ch) {
    var handled = lookupKey("'" + ch + "'", allKeyMaps(cm),
                            function(b) { return doHandleBinding(cm, b, true); });
    if (handled) {
      e_preventDefault(e);
      restartBlink(cm);
      signalLater(cm, "keyHandled", cm, "'" + ch + "'", e);
    }
    return handled;
  }

  var lastStoppedKey = null;
  function onKeyDown(e) {
    var cm = this;
    if (!cm.state.focused) onFocus(cm);
    if (ie && e.keyCode == 27) { e.returnValue = false; }
    if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;
    var code = e.keyCode;
    // IE does strange things with escape.
    cm.doc.sel.shift = code == 16 || e.shiftKey;
    // First give onKeyEvent option a chance to handle this.
    var handled = handleKeyBinding(cm, e);
    if (opera) {
      lastStoppedKey = handled ? code : null;
      // Opera has no cut event... we try to at least catch the key combo
      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))
        cm.replaceSelection("");
    }
  }

  function onKeyPress(e) {
    var cm = this;
    if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;
    var keyCode = e.keyCode, charCode = e.charCode;
    if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}
    if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return;
    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
    if (this.options.electricChars && this.doc.mode.electricChars &&
        this.options.smartIndent && !isReadOnly(this) &&
        this.doc.mode.electricChars.indexOf(ch) > -1)
      setTimeout(operation(cm, function() {indentLine(cm, cm.doc.sel.to.line, "smart");}), 75);
    if (handleCharBinding(cm, e, ch)) return;
    if (ie && !ie_lt9) cm.display.inputHasSelection = null;
    fastPoll(cm);
  }

  function onFocus(cm) {
    if (cm.options.readOnly == "nocursor") return;
    if (!cm.state.focused) {
      signal(cm, "focus", cm);
      cm.state.focused = true;
      if (cm.display.wrapper.className.search(/\bCodeMirror-focused\b/) == -1)
        cm.display.wrapper.className += " CodeMirror-focused";
      resetInput(cm, true);
    }
    slowPoll(cm);
    restartBlink(cm);
  }
  function onBlur(cm) {
    if (cm.state.focused) {
      signal(cm, "blur", cm);
      cm.state.focused = false;
      cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-focused", "");
    }
    clearInterval(cm.display.blinker);
    setTimeout(function() {if (!cm.state.focused) cm.doc.sel.shift = false;}, 150);
  }

  var detectingSelectAll;
  function onContextMenu(cm, e) {
    if (signalDOMEvent(cm, e, "contextmenu")) return;
    var display = cm.display, sel = cm.doc.sel;
    if (eventInWidget(display, e)) return;

    var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
    if (!pos || opera) return; // Opera is difficult.
    if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to))
      operation(cm, setSelection)(cm.doc, pos, pos);

    var oldCSS = display.input.style.cssText;
    display.inputDiv.style.position = "absolute";
    display.input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) +
      "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; outline: none;" +
      "border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);";
    focusInput(cm);
    resetInput(cm, true);
    // Adds "Select all" to context menu in FF
    if (posEq(sel.from, sel.to)) display.input.value = display.prevInput = " ";

    function prepareSelectAllHack() {
      if (display.input.selectionStart != null) {
        var extval = display.input.value = " " + (posEq(sel.from, sel.to) ? "" : display.input.value);
        display.prevInput = " ";
        display.input.selectionStart = 1; display.input.selectionEnd = extval.length;
      }
    }
    function rehide() {
      display.inputDiv.style.position = "relative";
      display.input.style.cssText = oldCSS;
      if (ie_lt9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos;
      slowPoll(cm);

      // Try to detect the user choosing select-all
      if (display.input.selectionStart != null) {
        if (!ie || ie_lt9) prepareSelectAllHack();
        clearTimeout(detectingSelectAll);
        var i = 0, poll = function(){
          if (display.prevInput == " " && display.input.selectionStart == 0)
            operation(cm, commands.selectAll)(cm);
          else if (i++ < 10) detectingSelectAll = setTimeout(poll, 500);
          else resetInput(cm);
        };
        detectingSelectAll = setTimeout(poll, 200);
      }
    }

    if (ie && !ie_lt9) prepareSelectAllHack();
    if (captureMiddleClick) {
      e_stop(e);
      var mouseup = function() {
        off(window, "mouseup", mouseup);
        setTimeout(rehide, 20);
      };
      on(window, "mouseup", mouseup);
    } else {
      setTimeout(rehide, 50);
    }
  }

  // UPDATING

  var changeEnd = CodeMirror.changeEnd = function(change) {
    if (!change.text) return change.to;
    return Pos(change.from.line + change.text.length - 1,
               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));
  };

  // Make sure a position will be valid after the given change.
  function clipPostChange(doc, change, pos) {
    if (!posLess(change.from, pos)) return clipPos(doc, pos);
    var diff = (change.text.length - 1) - (change.to.line - change.from.line);
    if (pos.line > change.to.line + diff) {
      var preLine = pos.line - diff, lastLine = doc.first + doc.size - 1;
      if (preLine > lastLine) return Pos(lastLine, getLine(doc, lastLine).text.length);
      return clipToLen(pos, getLine(doc, preLine).text.length);
    }
    if (pos.line == change.to.line + diff)
      return clipToLen(pos, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0) +
                       getLine(doc, change.to.line).text.length - change.to.ch);
    var inside = pos.line - change.from.line;
    return clipToLen(pos, change.text[inside].length + (inside ? 0 : change.from.ch));
  }

  // Hint can be null|"end"|"start"|"around"|{anchor,head}
  function computeSelAfterChange(doc, change, hint) {
    if (hint && typeof hint == "object") // Assumed to be {anchor, head} object
      return {anchor: clipPostChange(doc, change, hint.anchor),
              head: clipPostChange(doc, change, hint.head)};

    if (hint == "start") return {anchor: change.from, head: change.from};

    var end = changeEnd(change);
    if (hint == "around") return {anchor: change.from, head: end};
    if (hint == "end") return {anchor: end, head: end};

    // hint is null, leave the selection alone as much as possible
    var adjustPos = function(pos) {
      if (posLess(pos, change.from)) return pos;
      if (!posLess(change.to, pos)) return end;

      var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;
      if (pos.line == change.to.line) ch += end.ch - change.to.ch;
      return Pos(line, ch);
    };
    return {anchor: adjustPos(doc.sel.anchor), head: adjustPos(doc.sel.head)};
  }

  function filterChange(doc, change, update) {
    var obj = {
      canceled: false,
      from: change.from,
      to: change.to,
      text: change.text,
      origin: change.origin,
      cancel: function() { this.canceled = true; }
    };
    if (update) obj.update = function(from, to, text, origin) {
      if (from) this.from = clipPos(doc, from);
      if (to) this.to = clipPos(doc, to);
      if (text) this.text = text;
      if (origin !== undefined) this.origin = origin;
    };
    signal(doc, "beforeChange", doc, obj);
    if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj);

    if (obj.canceled) return null;
    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};
  }

  // Replace the range from from to to by the strings in replacement.
  // change is a {from, to, text [, origin]} object
  function makeChange(doc, change, selUpdate, ignoreReadOnly) {
    if (doc.cm) {
      if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, selUpdate, ignoreReadOnly);
      if (doc.cm.state.suppressEdits) return;
    }

    if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) {
      change = filterChange(doc, change, true);
      if (!change) return;
    }

    // Possibly split or suppress the update based on the presence
    // of read-only spans in its range.
    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
    if (split) {
      for (var i = split.length - 1; i >= 1; --i)
        makeChangeNoReadonly(doc, {from: split[i].from, to: split[i].to, text: [""]});
      if (split.length)
        makeChangeNoReadonly(doc, {from: split[0].from, to: split[0].to, text: change.text}, selUpdate);
    } else {
      makeChangeNoReadonly(doc, change, selUpdate);
    }
  }

  function makeChangeNoReadonly(doc, change, selUpdate) {
    var selAfter = computeSelAfterChange(doc, change, selUpdate);
    addToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);

    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));
    var rebased = [];

    linkedDocs(doc, function(doc, sharedHist) {
      if (!sharedHist && indexOf(rebased, doc.history) == -1) {
        rebaseHist(doc.history, change);
        rebased.push(doc.history);
      }
      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));
    });
  }

  function makeChangeFromHistory(doc, type) {
    if (doc.cm && doc.cm.state.suppressEdits) return;

    var hist = doc.history;
    var event = (type == "undo" ? hist.done : hist.undone).pop();
    if (!event) return;

    var anti = {changes: [], anchorBefore: event.anchorAfter, headBefore: event.headAfter,
                anchorAfter: event.anchorBefore, headAfter: event.headBefore,
                generation: hist.generation};
    (type == "undo" ? hist.undone : hist.done).push(anti);
    hist.generation = event.generation || ++hist.maxGeneration;

    var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange");

    for (var i = event.changes.length - 1; i >= 0; --i) {
      var change = event.changes[i];
      change.origin = type;
      if (filter && !filterChange(doc, change, false)) {
        (type == "undo" ? hist.done : hist.undone).length = 0;
        return;
      }

      anti.changes.push(historyChangeFromChange(doc, change));

      var after = i ? computeSelAfterChange(doc, change, null)
                    : {anchor: event.anchorBefore, head: event.headBefore};
      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));
      var rebased = [];

      linkedDocs(doc, function(doc, sharedHist) {
        if (!sharedHist && indexOf(rebased, doc.history) == -1) {
          rebaseHist(doc.history, change);
          rebased.push(doc.history);
        }
        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));
      });
    }
  }

  function shiftDoc(doc, distance) {
    function shiftPos(pos) {return Pos(pos.line + distance, pos.ch);}
    doc.first += distance;
    if (doc.cm) regChange(doc.cm, doc.first, doc.first, distance);
    doc.sel.head = shiftPos(doc.sel.head); doc.sel.anchor = shiftPos(doc.sel.anchor);
    doc.sel.from = shiftPos(doc.sel.from); doc.sel.to = shiftPos(doc.sel.to);
  }

  function makeChangeSingleDoc(doc, change, selAfter, spans) {
    if (doc.cm && !doc.cm.curOp)
      return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);

    if (change.to.line < doc.first) {
      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
      return;
    }
    if (change.from.line > doc.lastLine()) return;

    // Clip the change to the size of this doc
    if (change.from.line < doc.first) {
      var shift = change.text.length - 1 - (doc.first - change.from.line);
      shiftDoc(doc, shift);
      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
                text: [lst(change.text)], origin: change.origin};
    }
    var last = doc.lastLine();
    if (change.to.line > last) {
      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
                text: [change.text[0]], origin: change.origin};
    }

    change.removed = getBetween(doc, change.from, change.to);

    if (!selAfter) selAfter = computeSelAfterChange(doc, change, null);
    if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans, selAfter);
    else updateDoc(doc, change, spans, selAfter);
  }

  function makeChangeSingleDocInEditor(cm, change, spans, selAfter) {
    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;

    var recomputeMaxLength = false, checkWidthStart = from.line;
    if (!cm.options.lineWrapping) {
      checkWidthStart = lineNo(visualLine(doc, getLine(doc, from.line)));
      doc.iter(checkWidthStart, to.line + 1, function(line) {
        if (line == display.maxLine) {
          recomputeMaxLength = true;
          return true;
        }
      });
    }

    if (!posLess(doc.sel.head, change.from) && !posLess(change.to, doc.sel.head))
      cm.curOp.cursorActivity = true;

    updateDoc(doc, change, spans, selAfter, estimateHeight(cm));

    if (!cm.options.lineWrapping) {
      doc.iter(checkWidthStart, from.line + change.text.length, function(line) {
        var len = lineLength(doc, line);
        if (len > display.maxLineLength) {
          display.maxLine = line;
          display.maxLineLength = len;
          display.maxLineChanged = true;
          recomputeMaxLength = false;
        }
      });
      if (recomputeMaxLength) cm.curOp.updateMaxLine = true;
    }

    // Adjust frontier, schedule worker
    doc.frontier = Math.min(doc.frontier, from.line);
    startWorker(cm, 400);

    var lendiff = change.text.length - (to.line - from.line) - 1;
    // Remember that these lines changed, for updating the display
    regChange(cm, from.line, to.line + 1, lendiff);

    if (hasHandler(cm, "change")) {
      var changeObj = {from: from, to: to,
                       text: change.text,
                       removed: change.removed,
                       origin: change.origin};
      if (cm.curOp.textChanged) {
        for (var cur = cm.curOp.textChanged; cur.next; cur = cur.next) {}
        cur.next = changeObj;
      } else cm.curOp.textChanged = changeObj;
    }
  }

  function replaceRange(doc, code, from, to, origin) {
    if (!to) to = from;
    if (posLess(to, from)) { var tmp = to; to = from; from = tmp; }
    if (typeof code == "string") code = splitLines(code);
    makeChange(doc, {from: from, to: to, text: code, origin: origin}, null);
  }

  // POSITION OBJECT

  function Pos(line, ch) {
    if (!(this instanceof Pos)) return new Pos(line, ch);
    this.line = line; this.ch = ch;
  }
  CodeMirror.Pos = Pos;

  function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}
  function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);}
  function copyPos(x) {return Pos(x.line, x.ch);}

  // SELECTION

  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}
  function clipPos(doc, pos) {
    if (pos.line < doc.first) return Pos(doc.first, 0);
    var last = doc.first + doc.size - 1;
    if (pos.line > last) return Pos(last, getLine(doc, last).text.length);
    return clipToLen(pos, getLine(doc, pos.line).text.length);
  }
  function clipToLen(pos, linelen) {
    var ch = pos.ch;
    if (ch == null || ch > linelen) return Pos(pos.line, linelen);
    else if (ch < 0) return Pos(pos.line, 0);
    else return pos;
  }
  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}

  // If shift is held, this will move the selection anchor. Otherwise,
  // it'll set the whole selection.
  function extendSelection(doc, pos, other, bias) {
    if (doc.sel.shift || doc.sel.extend) {
      var anchor = doc.sel.anchor;
      if (other) {
        var posBefore = posLess(pos, anchor);
        if (posBefore != posLess(other, anchor)) {
          anchor = pos;
          pos = other;
        } else if (posBefore != posLess(pos, other)) {
          pos = other;
        }
      }
      setSelection(doc, anchor, pos, bias);
    } else {
      setSelection(doc, pos, other || pos, bias);
    }
    if (doc.cm) doc.cm.curOp.userSelChange = true;
  }

  function filterSelectionChange(doc, anchor, head) {
    var obj = {anchor: anchor, head: head};
    signal(doc, "beforeSelectionChange", doc, obj);
    if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj);
    obj.anchor = clipPos(doc, obj.anchor); obj.head = clipPos(doc, obj.head);
    return obj;
  }

  // Update the selection. Last two args are only used by
  // updateDoc, since they have to be expressed in the line
  // numbers before the update.
  function setSelection(doc, anchor, head, bias, checkAtomic) {
    if (!checkAtomic && hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) {
      var filtered = filterSelectionChange(doc, anchor, head);
      head = filtered.head;
      anchor = filtered.anchor;
    }

    var sel = doc.sel;
    sel.goalColumn = null;
    // Skip over atomic spans.
    if (checkAtomic || !posEq(anchor, sel.anchor))
      anchor = skipAtomic(doc, anchor, bias, checkAtomic != "push");
    if (checkAtomic || !posEq(head, sel.head))
      head = skipAtomic(doc, head, bias, checkAtomic != "push");

    if (posEq(sel.anchor, anchor) && posEq(sel.head, head)) return;

    sel.anchor = anchor; sel.head = head;
    var inv = posLess(head, anchor);
    sel.from = inv ? head : anchor;
    sel.to = inv ? anchor : head;

    if (doc.cm)
      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged =
        doc.cm.curOp.cursorActivity = true;

    signalLater(doc, "cursorActivity", doc);
  }

  function reCheckSelection(cm) {
    setSelection(cm.doc, cm.doc.sel.from, cm.doc.sel.to, null, "push");
  }

  function skipAtomic(doc, pos, bias, mayClear) {
    var flipped = false, curPos = pos;
    var dir = bias || 1;
    doc.cantEdit = false;
    search: for (;;) {
      var line = getLine(doc, curPos.line);
      if (line.markedSpans) {
        for (var i = 0; i < line.markedSpans.length; ++i) {
          var sp = line.markedSpans[i], m = sp.marker;
          if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) &&
              (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) {
            if (mayClear) {
              signal(m, "beforeCursorEnter");
              if (m.explicitlyCleared) {
                if (!line.markedSpans) break;
                else {--i; continue;}
              }
            }
            if (!m.atomic) continue;
            var newPos = m.find()[dir < 0 ? "from" : "to"];
            if (posEq(newPos, curPos)) {
              newPos.ch += dir;
              if (newPos.ch < 0) {
                if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1));
                else newPos = null;
              } else if (newPos.ch > line.text.length) {
                if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0);
                else newPos = null;
              }
              if (!newPos) {
                if (flipped) {
                  // Driven in a corner -- no valid cursor position found at all
                  // -- try again *with* clearing, if we didn't already
                  if (!mayClear) return skipAtomic(doc, pos, bias, true);
                  // Otherwise, turn off editing until further notice, and return the start of the doc
                  doc.cantEdit = true;
                  return Pos(doc.first, 0);
                }
                flipped = true; newPos = pos; dir = -dir;
              }
            }
            curPos = newPos;
            continue search;
          }
        }
      }
      return curPos;
    }
  }

  // SCROLLING

  function scrollCursorIntoView(cm) {
    var coords = scrollPosIntoView(cm, cm.doc.sel.head, cm.options.cursorScrollMargin);
    if (!cm.state.focused) return;
    var display = cm.display, box = getRect(display.sizer), doScroll = null;
    if (coords.top + box.top < 0) doScroll = true;
    else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;
    if (doScroll != null && !phantom) {
      var hidden = display.cursor.style.display == "none";
      if (hidden) {
        display.cursor.style.display = "";
        display.cursor.style.left = coords.left + "px";
        display.cursor.style.top = (coords.top - display.viewOffset) + "px";
      }
      display.cursor.scrollIntoView(doScroll);
      if (hidden) display.cursor.style.display = "none";
    }
  }

  function scrollPosIntoView(cm, pos, margin) {
    if (margin == null) margin = 0;
    for (;;) {
      var changed = false, coords = cursorCoords(cm, pos);
      var scrollPos = calculateScrollPos(cm, coords.left, coords.top - margin, coords.left, coords.bottom + margin);
      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
      if (scrollPos.scrollTop != null) {
        setScrollTop(cm, scrollPos.scrollTop);
        if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;
      }
      if (scrollPos.scrollLeft != null) {
        setScrollLeft(cm, scrollPos.scrollLeft);
        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;
      }
      if (!changed) return coords;
    }
  }

  function scrollIntoView(cm, x1, y1, x2, y2) {
    var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);
    if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);
    if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);
  }

  function calculateScrollPos(cm, x1, y1, x2, y2) {
    var display = cm.display, snapMargin = textHeight(cm.display);
    if (y1 < 0) y1 = 0;
    var screen = display.scroller.clientHeight - scrollerCutOff, screentop = display.scroller.scrollTop, result = {};
    var docBottom = cm.doc.height + paddingVert(display);
    var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;
    if (y1 < screentop) {
      result.scrollTop = atTop ? 0 : y1;
    } else if (y2 > screentop + screen) {
      var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);
      if (newTop != screentop) result.scrollTop = newTop;
    }

    var screenw = display.scroller.clientWidth - scrollerCutOff, screenleft = display.scroller.scrollLeft;
    x1 += display.gutters.offsetWidth; x2 += display.gutters.offsetWidth;
    var gutterw = display.gutters.offsetWidth;
    var atLeft = x1 < gutterw + 10;
    if (x1 < screenleft + gutterw || atLeft) {
      if (atLeft) x1 = 0;
      result.scrollLeft = Math.max(0, x1 - 10 - gutterw);
    } else if (x2 > screenw + screenleft - 3) {
      result.scrollLeft = x2 + 10 - screenw;
    }
    return result;
  }

  function updateScrollPos(cm, left, top) {
    cm.curOp.updateScrollPos = {scrollLeft: left == null ? cm.doc.scrollLeft : left,
                                scrollTop: top == null ? cm.doc.scrollTop : top};
  }

  function addToScrollPos(cm, left, top) {
    var pos = cm.curOp.updateScrollPos || (cm.curOp.updateScrollPos = {scrollLeft: cm.doc.scrollLeft, scrollTop: cm.doc.scrollTop});
    var scroll = cm.display.scroller;
    pos.scrollTop = Math.max(0, Math.min(scroll.scrollHeight - scroll.clientHeight, pos.scrollTop + top));
    pos.scrollLeft = Math.max(0, Math.min(scroll.scrollWidth - scroll.clientWidth, pos.scrollLeft + left));
  }

  // API UTILITIES

  function indentLine(cm, n, how, aggressive) {
    var doc = cm.doc;
    if (how == null) how = "add";
    if (how == "smart") {
      if (!cm.doc.mode.indent) how = "prev";
      else var state = getStateBefore(cm, n);
    }

    var tabSize = cm.options.tabSize;
    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);
    var curSpaceString = line.text.match(/^\s*/)[0], indentation;
    if (how == "smart") {
      indentation = cm.doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);
      if (indentation == Pass) {
        if (!aggressive) return;
        how = "prev";
      }
    }
    if (how == "prev") {
      if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);
      else indentation = 0;
    } else if (how == "add") {
      indentation = curSpace + cm.options.indentUnit;
    } else if (how == "subtract") {
      indentation = curSpace - cm.options.indentUnit;
    } else if (typeof how == "number") {
      indentation = curSpace + how;
    }
    indentation = Math.max(0, indentation);

    var indentString = "", pos = 0;
    if (cm.options.indentWithTabs)
      for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";}
    if (pos < indentation) indentString += spaceStr(indentation - pos);

    if (indentString != curSpaceString)
      replaceRange(cm.doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input");
    line.stateAfter = null;
  }

  function changeLine(cm, handle, op) {
    var no = handle, line = handle, doc = cm.doc;
    if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle));
    else no = lineNo(handle);
    if (no == null) return null;
    if (op(line, no)) regChange(cm, no, no + 1);
    else return null;
    return line;
  }

  function findPosH(doc, pos, dir, unit, visually) {
    var line = pos.line, ch = pos.ch, origDir = dir;
    var lineObj = getLine(doc, line);
    var possible = true;
    function findNextLine() {
      var l = line + dir;
      if (l < doc.first || l >= doc.first + doc.size) return (possible = false);
      line = l;
      return lineObj = getLine(doc, l);
    }
    function moveOnce(boundToLine) {
      var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);
      if (next == null) {
        if (!boundToLine && findNextLine()) {
          if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);
          else ch = dir < 0 ? lineObj.text.length : 0;
        } else return (possible = false);
      } else ch = next;
      return true;
    }

    if (unit == "char") moveOnce();
    else if (unit == "column") moveOnce(true);
    else if (unit == "word" || unit == "group") {
      var sawType = null, group = unit == "group";
      for (var first = true;; first = false) {
        if (dir < 0 && !moveOnce(!first)) break;
        var cur = lineObj.text.charAt(ch) || "\n";
        var type = isWordChar(cur) ? "w"
          : !group ? null
          : /\s/.test(cur) ? null
          : "p";
        if (sawType && sawType != type) {
          if (dir < 0) {dir = 1; moveOnce();}
          break;
        }
        if (type) sawType = type;
        if (dir > 0 && !moveOnce(!first)) break;
      }
    }
    var result = skipAtomic(doc, Pos(line, ch), origDir, true);
    if (!possible) result.hitSide = true;
    return result;
  }

  function findPosV(cm, pos, dir, unit) {
    var doc = cm.doc, x = pos.left, y;
    if (unit == "page") {
      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);
      y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));
    } else if (unit == "line") {
      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;
    }
    for (;;) {
      var target = coordsChar(cm, x, y);
      if (!target.outside) break;
      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }
      y += dir * 5;
    }
    return target;
  }

  function findWordAt(line, pos) {
    var start = pos.ch, end = pos.ch;
    if (line) {
      if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;
      var startChar = line.charAt(start);
      var check = isWordChar(startChar) ? isWordChar
        : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);}
        : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);};
      while (start > 0 && check(line.charAt(start - 1))) --start;
      while (end < line.length && check(line.charAt(end))) ++end;
    }
    return {from: Pos(pos.line, start), to: Pos(pos.line, end)};
  }

  function selectLine(cm, line) {
    extendSelection(cm.doc, Pos(line, 0), clipPos(cm.doc, Pos(line + 1, 0)));
  }

  // PROTOTYPE

  // The publicly visible API. Note that operation(null, f) means
  // 'wrap f in an operation, performed on its `this` parameter'

  CodeMirror.prototype = {
    constructor: CodeMirror,
    focus: function(){window.focus(); focusInput(this); onFocus(this); fastPoll(this);},

    setOption: function(option, value) {
      var options = this.options, old = options[option];
      if (options[option] == value && option != "mode") return;
      options[option] = value;
      if (optionHandlers.hasOwnProperty(option))
        operation(this, optionHandlers[option])(this, value, old);
    },

    getOption: function(option) {return this.options[option];},
    getDoc: function() {return this.doc;},

    addKeyMap: function(map, bottom) {
      this.state.keyMaps[bottom ? "push" : "unshift"](map);
    },
    removeKeyMap: function(map) {
      var maps = this.state.keyMaps;
      for (var i = 0; i < maps.length; ++i)
        if (maps[i] == map || (typeof maps[i] != "string" && maps[i].name == map)) {
          maps.splice(i, 1);
          return true;
        }
    },

    addOverlay: operation(null, function(spec, options) {
      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);
      if (mode.startState) throw new Error("Overlays may not be stateful.");
      this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque});
      this.state.modeGen++;
      regChange(this);
    }),
    removeOverlay: operation(null, function(spec) {
      var overlays = this.state.overlays;
      for (var i = 0; i < overlays.length; ++i) {
        var cur = overlays[i].modeSpec;
        if (cur == spec || typeof spec == "string" && cur.name == spec) {
          overlays.splice(i, 1);
          this.state.modeGen++;
          regChange(this);
          return;
        }
      }
    }),

    indentLine: operation(null, function(n, dir, aggressive) {
      if (typeof dir != "string" && typeof dir != "number") {
        if (dir == null) dir = this.options.smartIndent ? "smart" : "prev";
        else dir = dir ? "add" : "subtract";
      }
      if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);
    }),
    indentSelection: operation(null, function(how) {
      var sel = this.doc.sel;
      if (posEq(sel.from, sel.to)) return indentLine(this, sel.from.line, how);
      var e = sel.to.line - (sel.to.ch ? 0 : 1);
      for (var i = sel.from.line; i <= e; ++i) indentLine(this, i, how);
    }),

    // Fetch the parser token for a given character. Useful for hacks
    // that want to inspect the mode state (say, for completion).
    getTokenAt: function(pos, precise) {
      var doc = this.doc;
      pos = clipPos(doc, pos);
      var state = getStateBefore(this, pos.line, precise), mode = this.doc.mode;
      var line = getLine(doc, pos.line);
      var stream = new StringStream(line.text, this.options.tabSize);
      while (stream.pos < pos.ch && !stream.eol()) {
        stream.start = stream.pos;
        var style = mode.token(stream, state);
      }
      return {start: stream.start,
              end: stream.pos,
              string: stream.current(),
              className: style || null, // Deprecated, use 'type' instead
              type: style || null,
              state: state};
    },

    getTokenTypeAt: function(pos) {
      pos = clipPos(this.doc, pos);
      var styles = getLineStyles(this, getLine(this.doc, pos.line));
      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;
      if (ch == 0) return styles[2];
      for (;;) {
        var mid = (before + after) >> 1;
        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;
        else if (styles[mid * 2 + 1] < ch) before = mid + 1;
        else return styles[mid * 2 + 2];
      }
    },

    getModeAt: function(pos) {
      var mode = this.doc.mode;
      if (!mode.innerMode) return mode;
      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;
    },

    getHelper: function(pos, type) {
      if (!helpers.hasOwnProperty(type)) return;
      var help = helpers[type], mode = this.getModeAt(pos);
      return mode[type] && help[mode[type]] ||
        mode.helperType && help[mode.helperType] ||
        help[mode.name];
    },

    getStateAfter: function(line, precise) {
      var doc = this.doc;
      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
      return getStateBefore(this, line + 1, precise);
    },

    cursorCoords: function(start, mode) {
      var pos, sel = this.doc.sel;
      if (start == null) pos = sel.head;
      else if (typeof start == "object") pos = clipPos(this.doc, start);
      else pos = start ? sel.from : sel.to;
      return cursorCoords(this, pos, mode || "page");
    },

    charCoords: function(pos, mode) {
      return charCoords(this, clipPos(this.doc, pos), mode || "page");
    },

    coordsChar: function(coords, mode) {
      coords = fromCoordSystem(this, coords, mode || "page");
      return coordsChar(this, coords.left, coords.top);
    },

    lineAtHeight: function(height, mode) {
      height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top;
      return lineAtHeight(this.doc, height + this.display.viewOffset);
    },
    heightAtLine: function(line, mode) {
      var end = false, last = this.doc.first + this.doc.size - 1;
      if (line < this.doc.first) line = this.doc.first;
      else if (line > last) { line = last; end = true; }
      var lineObj = getLine(this.doc, line);
      return intoCoordSystem(this, getLine(this.doc, line), {top: 0, left: 0}, mode || "page").top +
        (end ? lineObj.height : 0);
    },

    defaultTextHeight: function() { return textHeight(this.display); },
    defaultCharWidth: function() { return charWidth(this.display); },

    setGutterMarker: operation(null, function(line, gutterID, value) {
      return changeLine(this, line, function(line) {
        var markers = line.gutterMarkers || (line.gutterMarkers = {});
        markers[gutterID] = value;
        if (!value && isEmpty(markers)) line.gutterMarkers = null;
        return true;
      });
    }),

    clearGutter: operation(null, function(gutterID) {
      var cm = this, doc = cm.doc, i = doc.first;
      doc.iter(function(line) {
        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
          line.gutterMarkers[gutterID] = null;
          regChange(cm, i, i + 1);
          if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;
        }
        ++i;
      });
    }),

    addLineClass: operation(null, function(handle, where, cls) {
      return changeLine(this, handle, function(line) {
        var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass";
        if (!line[prop]) line[prop] = cls;
        else if (new RegExp("(?:^|\\s)" + cls + "(?:$|\\s)").test(line[prop])) return false;
        else line[prop] += " " + cls;
        return true;
      });
    }),

    removeLineClass: operation(null, function(handle, where, cls) {
      return changeLine(this, handle, function(line) {
        var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass";
        var cur = line[prop];
        if (!cur) return false;
        else if (cls == null) line[prop] = null;
        else {
          var found = cur.match(new RegExp("(?:^|\\s+)" + cls + "(?:$|\\s+)"));
          if (!found) return false;
          var end = found.index + found[0].length;
          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null;
        }
        return true;
      });
    }),

    addLineWidget: operation(null, function(handle, node, options) {
      return addLineWidget(this, handle, node, options);
    }),

    removeLineWidget: function(widget) { widget.clear(); },

    lineInfo: function(line) {
      if (typeof line == "number") {
        if (!isLine(this.doc, line)) return null;
        var n = line;
        line = getLine(this.doc, line);
        if (!line) return null;
      } else {
        var n = lineNo(line);
        if (n == null) return null;
      }
      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,
              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,
              widgets: line.widgets};
    },

    getViewport: function() { return {from: this.display.showingFrom, to: this.display.showingTo};},

    addWidget: function(pos, node, scroll, vert, horiz) {
      var display = this.display;
      pos = cursorCoords(this, clipPos(this.doc, pos));
      var top = pos.bottom, left = pos.left;
      node.style.position = "absolute";
      display.sizer.appendChild(node);
      if (vert == "over") {
        top = pos.top;
      } else if (vert == "above" || vert == "near") {
        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),
        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);
        // Default to positioning above (if specified and possible); otherwise default to positioning below
        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)
          top = pos.top - node.offsetHeight;
        else if (pos.bottom + node.offsetHeight <= vspace)
          top = pos.bottom;
        if (left + node.offsetWidth > hspace)
          left = hspace - node.offsetWidth;
      }
      node.style.top = top + "px";
      node.style.left = node.style.right = "";
      if (horiz == "right") {
        left = display.sizer.clientWidth - node.offsetWidth;
        node.style.right = "0px";
      } else {
        if (horiz == "left") left = 0;
        else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2;
        node.style.left = left + "px";
      }
      if (scroll)
        scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);
    },

    triggerOnKeyDown: operation(null, onKeyDown),

    execCommand: function(cmd) {return commands[cmd](this);},

    findPosH: function(from, amount, unit, visually) {
      var dir = 1;
      if (amount < 0) { dir = -1; amount = -amount; }
      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
        cur = findPosH(this.doc, cur, dir, unit, visually);
        if (cur.hitSide) break;
      }
      return cur;
    },

    moveH: operation(null, function(dir, unit) {
      var sel = this.doc.sel, pos;
      if (sel.shift || sel.extend || posEq(sel.from, sel.to))
        pos = findPosH(this.doc, sel.head, dir, unit, this.options.rtlMoveVisually);
      else
        pos = dir < 0 ? sel.from : sel.to;
      extendSelection(this.doc, pos, pos, dir);
    }),

    deleteH: operation(null, function(dir, unit) {
      var sel = this.doc.sel;
      if (!posEq(sel.from, sel.to)) replaceRange(this.doc, "", sel.from, sel.to, "+delete");
      else replaceRange(this.doc, "", sel.from, findPosH(this.doc, sel.head, dir, unit, false), "+delete");
      this.curOp.userSelChange = true;
    }),

    findPosV: function(from, amount, unit, goalColumn) {
      var dir = 1, x = goalColumn;
      if (amount < 0) { dir = -1; amount = -amount; }
      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
        var coords = cursorCoords(this, cur, "div");
        if (x == null) x = coords.left;
        else coords.left = x;
        cur = findPosV(this, coords, dir, unit);
        if (cur.hitSide) break;
      }
      return cur;
    },

    moveV: operation(null, function(dir, unit) {
      var sel = this.doc.sel;
      var pos = cursorCoords(this, sel.head, "div");
      if (sel.goalColumn != null) pos.left = sel.goalColumn;
      var target = findPosV(this, pos, dir, unit);

      if (unit == "page") addToScrollPos(this, 0, charCoords(this, target, "div").top - pos.top);
      extendSelection(this.doc, target, target, dir);
      sel.goalColumn = pos.left;
    }),

    toggleOverwrite: function(value) {
      if (value != null && value == this.state.overwrite) return;
      if (this.state.overwrite = !this.state.overwrite)
        this.display.cursor.className += " CodeMirror-overwrite";
      else
        this.display.cursor.className = this.display.cursor.className.replace(" CodeMirror-overwrite", "");
    },
    hasFocus: function() { return this.state.focused; },

    scrollTo: operation(null, function(x, y) {
      updateScrollPos(this, x, y);
    }),
    getScrollInfo: function() {
      var scroller = this.display.scroller, co = scrollerCutOff;
      return {left: scroller.scrollLeft, top: scroller.scrollTop,
              height: scroller.scrollHeight - co, width: scroller.scrollWidth - co,
              clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co};
    },

    scrollIntoView: operation(null, function(pos, margin) {
      if (typeof pos == "number") pos = Pos(pos, 0);
      if (!margin) margin = 0;
      var coords = pos;

      if (!pos || pos.line != null) {
        this.curOp.scrollToPos = pos ? clipPos(this.doc, pos) : this.doc.sel.head;
        this.curOp.scrollToPosMargin = margin;
        coords = cursorCoords(this, this.curOp.scrollToPos);
      }
      var sPos = calculateScrollPos(this, coords.left, coords.top - margin, coords.right, coords.bottom + margin);
      updateScrollPos(this, sPos.scrollLeft, sPos.scrollTop);
    }),

    setSize: operation(null, function(width, height) {
      function interpret(val) {
        return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val;
      }
      if (width != null) this.display.wrapper.style.width = interpret(width);
      if (height != null) this.display.wrapper.style.height = interpret(height);
      if (this.options.lineWrapping)
        this.display.measureLineCache.length = this.display.measureLineCachePos = 0;
      this.curOp.forceUpdate = true;
    }),

    operation: function(f){return runInOp(this, f);},

    refresh: operation(null, function() {
      clearCaches(this);
      updateScrollPos(this, this.doc.scrollLeft, this.doc.scrollTop);
      regChange(this);
    }),

    swapDoc: operation(null, function(doc) {
      var old = this.doc;
      old.cm = null;
      attachDoc(this, doc);
      clearCaches(this);
      resetInput(this, true);
      updateScrollPos(this, doc.scrollLeft, doc.scrollTop);
      return old;
    }),

    getInputField: function(){return this.display.input;},
    getWrapperElement: function(){return this.display.wrapper;},
    getScrollerElement: function(){return this.display.scroller;},
    getGutterElement: function(){return this.display.gutters;}
  };
  eventMixin(CodeMirror);

  // OPTION DEFAULTS

  var optionHandlers = CodeMirror.optionHandlers = {};

  // The default configuration options.
  var defaults = CodeMirror.defaults = {};

  function option(name, deflt, handle, notOnInit) {
    CodeMirror.defaults[name] = deflt;
    if (handle) optionHandlers[name] =
      notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;
  }

  var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}};

  // These two are, on init, called from the constructor because they
  // have to be initialized before the editor can start at all.
  option("value", "", function(cm, val) {
    cm.setValue(val);
  }, true);
  option("mode", null, function(cm, val) {
    cm.doc.modeOption = val;
    loadMode(cm);
  }, true);

  option("indentUnit", 2, loadMode, true);
  option("indentWithTabs", false);
  option("smartIndent", true);
  option("tabSize", 4, function(cm) {
    loadMode(cm);
    clearCaches(cm);
    regChange(cm);
  }, true);
  option("electricChars", true);
  option("rtlMoveVisually", !windows);

  option("theme", "default", function(cm) {
    themeChanged(cm);
    guttersChanged(cm);
  }, true);
  option("keyMap", "default", keyMapChanged);
  option("extraKeys", null);

  option("onKeyEvent", null);
  option("onDragEvent", null);

  option("lineWrapping", false, wrappingChanged, true);
  option("gutters", [], function(cm) {
    setGuttersForLineNumbers(cm.options);
    guttersChanged(cm);
  }, true);
  option("fixedGutter", true, function(cm, val) {
    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0";
    cm.refresh();
  }, true);
  option("coverGutterNextToScrollbar", false, updateScrollbars, true);
  option("lineNumbers", false, function(cm) {
    setGuttersForLineNumbers(cm.options);
    guttersChanged(cm);
  }, true);
  option("firstLineNumber", 1, guttersChanged, true);
  option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true);
  option("showCursorWhenSelecting", false, updateSelection, true);

  option("readOnly", false, function(cm, val) {
    if (val == "nocursor") {onBlur(cm); cm.display.input.blur();}
    else if (!val) resetInput(cm, true);
  });
  option("dragDrop", true);

  option("cursorBlinkRate", 530);
  option("cursorScrollMargin", 0);
  option("cursorHeight", 1);
  option("workTime", 100);
  option("workDelay", 100);
  option("flattenSpans", true);
  option("pollInterval", 100);
  option("undoDepth", 40, function(cm, val){cm.doc.history.undoDepth = val;});
  option("historyEventDelay", 500);
  option("viewportMargin", 10, function(cm){cm.refresh();}, true);
  option("maxHighlightLength", 10000, function(cm){loadMode(cm); cm.refresh();}, true);
  option("moveInputWithCursor", true, function(cm, val) {
    if (!val) cm.display.inputDiv.style.top = cm.display.inputDiv.style.left = 0;
  });

  option("tabindex", null, function(cm, val) {
    cm.display.input.tabIndex = val || "";
  });
  option("autofocus", null);

  // MODE DEFINITION AND QUERYING

  // Known modes, by name and by MIME
  var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};

  CodeMirror.defineMode = function(name, mode) {
    if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name;
    if (arguments.length > 2) {
      mode.dependencies = [];
      for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]);
    }
    modes[name] = mode;
  };

  CodeMirror.defineMIME = function(mime, spec) {
    mimeModes[mime] = spec;
  };

  CodeMirror.resolveMode = function(spec) {
    if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
      spec = mimeModes[spec];
    } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
      var found = mimeModes[spec.name];
      spec = createObj(found, spec);
      spec.name = found.name;
    } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
      return CodeMirror.resolveMode("application/xml");
    }
    if (typeof spec == "string") return {name: spec};
    else return spec || {name: "null"};
  };

  CodeMirror.getMode = function(options, spec) {
    var spec = CodeMirror.resolveMode(spec);
    var mfactory = modes[spec.name];
    if (!mfactory) return CodeMirror.getMode(options, "text/plain");
    var modeObj = mfactory(options, spec);
    if (modeExtensions.hasOwnProperty(spec.name)) {
      var exts = modeExtensions[spec.name];
      for (var prop in exts) {
        if (!exts.hasOwnProperty(prop)) continue;
        if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop];
        modeObj[prop] = exts[prop];
      }
    }
    modeObj.name = spec.name;

    return modeObj;
  };

  CodeMirror.defineMode("null", function() {
    return {token: function(stream) {stream.skipToEnd();}};
  });
  CodeMirror.defineMIME("text/plain", "null");

  var modeExtensions = CodeMirror.modeExtensions = {};
  CodeMirror.extendMode = function(mode, properties) {
    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
    copyObj(properties, exts);
  };

  // EXTENSIONS

  CodeMirror.defineExtension = function(name, func) {
    CodeMirror.prototype[name] = func;
  };
  CodeMirror.defineDocExtension = function(name, func) {
    Doc.prototype[name] = func;
  };
  CodeMirror.defineOption = option;

  var initHooks = [];
  CodeMirror.defineInitHook = function(f) {initHooks.push(f);};

  var helpers = CodeMirror.helpers = {};
  CodeMirror.registerHelper = function(type, name, value) {
    if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {};
    helpers[type][name] = value;
  };

  // UTILITIES

  CodeMirror.isWordChar = isWordChar;

  // MODE STATE HANDLING

  // Utility functions for working with state. Exported because modes
  // sometimes need to do this.
  function copyState(mode, state) {
    if (state === true) return state;
    if (mode.copyState) return mode.copyState(state);
    var nstate = {};
    for (var n in state) {
      var val = state[n];
      if (val instanceof Array) val = val.concat([]);
      nstate[n] = val;
    }
    return nstate;
  }
  CodeMirror.copyState = copyState;

  function startState(mode, a1, a2) {
    return mode.startState ? mode.startState(a1, a2) : true;
  }
  CodeMirror.startState = startState;

  CodeMirror.innerMode = function(mode, state) {
    while (mode.innerMode) {
      var info = mode.innerMode(state);
      if (!info || info.mode == mode) break;
      state = info.state;
      mode = info.mode;
    }
    return info || {mode: mode, state: state};
  };

  // STANDARD COMMANDS

  var commands = CodeMirror.commands = {
    selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()));},
    killLine: function(cm) {
      var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to);
      if (!sel && cm.getLine(from.line).length == from.ch)
        cm.replaceRange("", from, Pos(from.line + 1, 0), "+delete");
      else cm.replaceRange("", from, sel ? to : Pos(from.line), "+delete");
    },
    deleteLine: function(cm) {
      var l = cm.getCursor().line;
      cm.replaceRange("", Pos(l, 0), Pos(l), "+delete");
    },
    delLineLeft: function(cm) {
      var cur = cm.getCursor();
      cm.replaceRange("", Pos(cur.line, 0), cur, "+delete");
    },
    undo: function(cm) {cm.undo();},
    redo: function(cm) {cm.redo();},
    goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},
    goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},
    goLineStart: function(cm) {
      cm.extendSelection(lineStart(cm, cm.getCursor().line));
    },
    goLineStartSmart: function(cm) {
      var cur = cm.getCursor(), start = lineStart(cm, cur.line);
      var line = cm.getLineHandle(start.line);
      var order = getOrder(line);
      if (!order || order[0].level == 0) {
        var firstNonWS = Math.max(0, line.text.search(/\S/));
        var inWS = cur.line == start.line && cur.ch <= firstNonWS && cur.ch;
        cm.extendSelection(Pos(start.line, inWS ? 0 : firstNonWS));
      } else cm.extendSelection(start);
    },
    goLineEnd: function(cm) {
      cm.extendSelection(lineEnd(cm, cm.getCursor().line));
    },
    goLineRight: function(cm) {
      var top = cm.charCoords(cm.getCursor(), "div").top + 5;
      cm.extendSelection(cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"));
    },
    goLineLeft: function(cm) {
      var top = cm.charCoords(cm.getCursor(), "div").top + 5;
      cm.extendSelection(cm.coordsChar({left: 0, top: top}, "div"));
    },
    goLineUp: function(cm) {cm.moveV(-1, "line");},
    goLineDown: function(cm) {cm.moveV(1, "line");},
    goPageUp: function(cm) {cm.moveV(-1, "page");},
    goPageDown: function(cm) {cm.moveV(1, "page");},
    goCharLeft: function(cm) {cm.moveH(-1, "char");},
    goCharRight: function(cm) {cm.moveH(1, "char");},
    goColumnLeft: function(cm) {cm.moveH(-1, "column");},
    goColumnRight: function(cm) {cm.moveH(1, "column");},
    goWordLeft: function(cm) {cm.moveH(-1, "word");},
    goGroupRight: function(cm) {cm.moveH(1, "group");},
    goGroupLeft: function(cm) {cm.moveH(-1, "group");},
    goWordRight: function(cm) {cm.moveH(1, "word");},
    delCharBefore: function(cm) {cm.deleteH(-1, "char");},
    delCharAfter: function(cm) {cm.deleteH(1, "char");},
    delWordBefore: function(cm) {cm.deleteH(-1, "word");},
    delWordAfter: function(cm) {cm.deleteH(1, "word");},
    delGroupBefore: function(cm) {cm.deleteH(-1, "group");},
    delGroupAfter: function(cm) {cm.deleteH(1, "group");},
    indentAuto: function(cm) {cm.indentSelection("smart");},
    indentMore: function(cm) {cm.indentSelection("add");},
    indentLess: function(cm) {cm.indentSelection("subtract");},
    insertTab: function(cm) {cm.replaceSelection("\t", "end", "+input");},
    defaultTab: function(cm) {
      if (cm.somethingSelected()) cm.indentSelection("add");
      else cm.replaceSelection("\t", "end", "+input");
    },
    transposeChars: function(cm) {
      var cur = cm.getCursor(), line = cm.getLine(cur.line);
      if (cur.ch > 0 && cur.ch < line.length - 1)
        cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1),
                        Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1));
    },
    newlineAndIndent: function(cm) {
      operation(cm, function() {
        cm.replaceSelection("\n", "end", "+input");
        cm.indentLine(cm.getCursor().line, null, true);
      })();
    },
    toggleOverwrite: function(cm) {cm.toggleOverwrite();}
  };

  // STANDARD KEYMAPS

  var keyMap = CodeMirror.keyMap = {};
  keyMap.basic = {
    "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
    "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
    "Delete": "delCharAfter", "Backspace": "delCharBefore", "Tab": "defaultTab", "Shift-Tab": "indentAuto",
    "Enter": "newlineAndIndent", "Insert": "toggleOverwrite"
  };
  // Note that the save and find-related commands aren't defined by
  // default. Unknown commands are simply ignored.
  keyMap.pcDefault = {
    "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
    "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd",
    "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
    "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find",
    "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
    "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
    fallthrough: "basic"
  };
  keyMap.macDefault = {
    "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
    "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft",
    "Alt-Right": "goGroupRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delGroupBefore",
    "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find",
    "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
    "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delLineLeft",
    fallthrough: ["basic", "emacsy"]
  };
  keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
  keyMap.emacsy = {
    "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
    "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
    "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
    "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars"
  };

  // KEYMAP DISPATCH

  function getKeyMap(val) {
    if (typeof val == "string") return keyMap[val];
    else return val;
  }

  function lookupKey(name, maps, handle) {
    function lookup(map) {
      map = getKeyMap(map);
      var found = map[name];
      if (found === false) return "stop";
      if (found != null && handle(found)) return true;
      if (map.nofallthrough) return "stop";

      var fallthrough = map.fallthrough;
      if (fallthrough == null) return false;
      if (Object.prototype.toString.call(fallthrough) != "[object Array]")
        return lookup(fallthrough);
      for (var i = 0, e = fallthrough.length; i < e; ++i) {
        var done = lookup(fallthrough[i]);
        if (done) return done;
      }
      return false;
    }

    for (var i = 0; i < maps.length; ++i) {
      var done = lookup(maps[i]);
      if (done) return done != "stop";
    }
  }
  function isModifierKey(event) {
    var name = keyNames[event.keyCode];
    return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod";
  }
  function keyName(event, noShift) {
    if (opera && event.keyCode == 34 && event["char"]) return false;
    var name = keyNames[event.keyCode];
    if (name == null || event.altGraphKey) return false;
    if (event.altKey) name = "Alt-" + name;
    if (flipCtrlCmd ? event.metaKey : event.ctrlKey) name = "Ctrl-" + name;
    if (flipCtrlCmd ? event.ctrlKey : event.metaKey) name = "Cmd-" + name;
    if (!noShift && event.shiftKey) name = "Shift-" + name;
    return name;
  }
  CodeMirror.lookupKey = lookupKey;
  CodeMirror.isModifierKey = isModifierKey;
  CodeMirror.keyName = keyName;

  // FROMTEXTAREA

  CodeMirror.fromTextArea = function(textarea, options) {
    if (!options) options = {};
    options.value = textarea.value;
    if (!options.tabindex && textarea.tabindex)
      options.tabindex = textarea.tabindex;
    if (!options.placeholder && textarea.placeholder)
      options.placeholder = textarea.placeholder;
    // Set autofocus to true if this textarea is focused, or if it has
    // autofocus and no other element is focused.
    if (options.autofocus == null) {
      var hasFocus = document.body;
      // doc.activeElement occasionally throws on IE
      try { hasFocus = document.activeElement; } catch(e) {}
      options.autofocus = hasFocus == textarea ||
        textarea.getAttribute("autofocus") != null && hasFocus == document.body;
    }

    function save() {textarea.value = cm.getValue();}
    if (textarea.form) {
      on(textarea.form, "submit", save);
      // Deplorable hack to make the submit method do the right thing.
      if (!options.leaveSubmitMethodAlone) {
        var form = textarea.form, realSubmit = form.submit;
        try {
          var wrappedSubmit = form.submit = function() {
            save();
            form.submit = realSubmit;
            form.submit();
            form.submit = wrappedSubmit;
          };
        } catch(e) {}
      }
    }

    textarea.style.display = "none";
    var cm = CodeMirror(function(node) {
      textarea.parentNode.insertBefore(node, textarea.nextSibling);
    }, options);
    cm.save = save;
    cm.getTextArea = function() { return textarea; };
    cm.toTextArea = function() {
      save();
      textarea.parentNode.removeChild(cm.getWrapperElement());
      textarea.style.display = "";
      if (textarea.form) {
        off(textarea.form, "submit", save);
        if (typeof textarea.form.submit == "function")
          textarea.form.submit = realSubmit;
      }
    };
    return cm;
  };

  // STRING STREAM

  // Fed to the mode parsers, provides helper functions to make
  // parsers more succinct.

  // The character stream used by a mode's parser.
  function StringStream(string, tabSize) {
    this.pos = this.start = 0;
    this.string = string;
    this.tabSize = tabSize || 8;
    this.lastColumnPos = this.lastColumnValue = 0;
  }

  StringStream.prototype = {
    eol: function() {return this.pos >= this.string.length;},
    sol: function() {return this.pos == 0;},
    peek: function() {return this.string.charAt(this.pos) || undefined;},
    next: function() {
      if (this.pos < this.string.length)
        return this.string.charAt(this.pos++);
    },
    eat: function(match) {
      var ch = this.string.charAt(this.pos);
      if (typeof match == "string") var ok = ch == match;
      else var ok = ch && (match.test ? match.test(ch) : match(ch));
      if (ok) {++this.pos; return ch;}
    },
    eatWhile: function(match) {
      var start = this.pos;
      while (this.eat(match)){}
      return this.pos > start;
    },
    eatSpace: function() {
      var start = this.pos;
      while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
      return this.pos > start;
    },
    skipToEnd: function() {this.pos = this.string.length;},
    skipTo: function(ch) {
      var found = this.string.indexOf(ch, this.pos);
      if (found > -1) {this.pos = found; return true;}
    },
    backUp: function(n) {this.pos -= n;},
    column: function() {
      if (this.lastColumnPos < this.start) {
        this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
        this.lastColumnPos = this.start;
      }
      return this.lastColumnValue;
    },
    indentation: function() {return countColumn(this.string, null, this.tabSize);},
    match: function(pattern, consume, caseInsensitive) {
      if (typeof pattern == "string") {
        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
        var substr = this.string.substr(this.pos, pattern.length);
        if (cased(substr) == cased(pattern)) {
          if (consume !== false) this.pos += pattern.length;
          return true;
        }
      } else {
        var match = this.string.slice(this.pos).match(pattern);
        if (match && match.index > 0) return null;
        if (match && consume !== false) this.pos += match[0].length;
        return match;
      }
    },
    current: function(){return this.string.slice(this.start, this.pos);}
  };
  CodeMirror.StringStream = StringStream;

  // TEXTMARKERS

  function TextMarker(doc, type) {
    this.lines = [];
    this.type = type;
    this.doc = doc;
  }
  CodeMirror.TextMarker = TextMarker;
  eventMixin(TextMarker);

  TextMarker.prototype.clear = function() {
    if (this.explicitlyCleared) return;
    var cm = this.doc.cm, withOp = cm && !cm.curOp;
    if (withOp) startOperation(cm);
    if (hasHandler(this, "clear")) {
      var found = this.find();
      if (found) signalLater(this, "clear", found.from, found.to);
    }
    var min = null, max = null;
    for (var i = 0; i < this.lines.length; ++i) {
      var line = this.lines[i];
      var span = getMarkedSpanFor(line.markedSpans, this);
      if (span.to != null) max = lineNo(line);
      line.markedSpans = removeMarkedSpan(line.markedSpans, span);
      if (span.from != null)
        min = lineNo(line);
      else if (this.collapsed && !lineIsHidden(this.doc, line) && cm)
        updateLineHeight(line, textHeight(cm.display));
    }
    if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {
      var visual = visualLine(cm.doc, this.lines[i]), len = lineLength(cm.doc, visual);
      if (len > cm.display.maxLineLength) {
        cm.display.maxLine = visual;
        cm.display.maxLineLength = len;
        cm.display.maxLineChanged = true;
      }
    }

    if (min != null && cm) regChange(cm, min, max + 1);
    this.lines.length = 0;
    this.explicitlyCleared = true;
    if (this.atomic && this.doc.cantEdit) {
      this.doc.cantEdit = false;
      if (cm) reCheckSelection(cm);
    }
    if (withOp) endOperation(cm);
  };

  TextMarker.prototype.find = function() {
    var from, to;
    for (var i = 0; i < this.lines.length; ++i) {
      var line = this.lines[i];
      var span = getMarkedSpanFor(line.markedSpans, this);
      if (span.from != null || span.to != null) {
        var found = lineNo(line);
        if (span.from != null) from = Pos(found, span.from);
        if (span.to != null) to = Pos(found, span.to);
      }
    }
    if (this.type == "bookmark") return from;
    return from && {from: from, to: to};
  };

  TextMarker.prototype.changed = function() {
    var pos = this.find(), cm = this.doc.cm;
    if (!pos || !cm) return;
    var line = getLine(this.doc, pos.from.line);
    clearCachedMeasurement(cm, line);
    if (pos.from.line >= cm.display.showingFrom && pos.from.line < cm.display.showingTo) {
      for (var node = cm.display.lineDiv.firstChild; node; node = node.nextSibling) if (node.lineObj == line) {
        if (node.offsetHeight != line.height) updateLineHeight(line, node.offsetHeight);
        break;
      }
      runInOp(cm, function() {
        cm.curOp.selectionChanged = cm.curOp.forceUpdate = cm.curOp.updateMaxLine = true;
      });
    }
  };

  TextMarker.prototype.attachLine = function(line) {
    if (!this.lines.length && this.doc.cm) {
      var op = this.doc.cm.curOp;
      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)
        (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);
    }
    this.lines.push(line);
  };
  TextMarker.prototype.detachLine = function(line) {
    this.lines.splice(indexOf(this.lines, line), 1);
    if (!this.lines.length && this.doc.cm) {
      var op = this.doc.cm.curOp;
      (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);
    }
  };

  function markText(doc, from, to, options, type) {
    if (options && options.shared) return markTextShared(doc, from, to, options, type);
    if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);

    var marker = new TextMarker(doc, type);
    if (type == "range" && !posLess(from, to)) return marker;
    if (options) copyObj(options, marker);
    if (marker.replacedWith) {
      marker.collapsed = true;
      marker.replacedWith = elt("span", [marker.replacedWith], "CodeMirror-widget");
      if (!options.handleMouseEvents) marker.replacedWith.ignoreEvents = true;
    }
    if (marker.collapsed) sawCollapsedSpans = true;

    if (marker.addToHistory)
      addToHistory(doc, {from: from, to: to, origin: "markText"},
                   {head: doc.sel.head, anchor: doc.sel.anchor}, NaN);

    var curLine = from.line, size = 0, collapsedAtStart, collapsedAtEnd, cm = doc.cm, updateMaxLine;
    doc.iter(curLine, to.line + 1, function(line) {
      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(doc, line) == cm.display.maxLine)
        updateMaxLine = true;
      var span = {from: null, to: null, marker: marker};
      size += line.text.length;
      if (curLine == from.line) {span.from = from.ch; size -= from.ch;}
      if (curLine == to.line) {span.to = to.ch; size -= line.text.length - to.ch;}
      if (marker.collapsed) {
        if (curLine == to.line) collapsedAtEnd = collapsedSpanAt(line, to.ch);
        if (curLine == from.line) collapsedAtStart = collapsedSpanAt(line, from.ch);
        else updateLineHeight(line, 0);
      }
      addMarkedSpan(line, span);
      ++curLine;
    });
    if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {
      if (lineIsHidden(doc, line)) updateLineHeight(line, 0);
    });

    if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); });

    if (marker.readOnly) {
      sawReadOnlySpans = true;
      if (doc.history.done.length || doc.history.undone.length)
        doc.clearHistory();
    }
    if (marker.collapsed) {
      if (collapsedAtStart != collapsedAtEnd)
        throw new Error("Inserting collapsed marker overlapping an existing one");
      marker.size = size;
      marker.atomic = true;
    }
    if (cm) {
      if (updateMaxLine) cm.curOp.updateMaxLine = true;
      if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.collapsed)
        regChange(cm, from.line, to.line + 1);
      if (marker.atomic) reCheckSelection(cm);
    }
    return marker;
  }

  // SHARED TEXTMARKERS

  function SharedTextMarker(markers, primary) {
    this.markers = markers;
    this.primary = primary;
    for (var i = 0, me = this; i < markers.length; ++i) {
      markers[i].parent = this;
      on(markers[i], "clear", function(){me.clear();});
    }
  }
  CodeMirror.SharedTextMarker = SharedTextMarker;
  eventMixin(SharedTextMarker);

  SharedTextMarker.prototype.clear = function() {
    if (this.explicitlyCleared) return;
    this.explicitlyCleared = true;
    for (var i = 0; i < this.markers.length; ++i)
      this.markers[i].clear();
    signalLater(this, "clear");
  };
  SharedTextMarker.prototype.find = function() {
    return this.primary.find();
  };

  function markTextShared(doc, from, to, options, type) {
    options = copyObj(options);
    options.shared = false;
    var markers = [markText(doc, from, to, options, type)], primary = markers[0];
    var widget = options.replacedWith;
    linkedDocs(doc, function(doc) {
      if (widget) options.replacedWith = widget.cloneNode(true);
      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));
      for (var i = 0; i < doc.linked.length; ++i)
        if (doc.linked[i].isParent) return;
      primary = lst(markers);
    });
    return new SharedTextMarker(markers, primary);
  }

  // TEXTMARKER SPANS

  function getMarkedSpanFor(spans, marker) {
    if (spans) for (var i = 0; i < spans.length; ++i) {
      var span = spans[i];
      if (span.marker == marker) return span;
    }
  }
  function removeMarkedSpan(spans, span) {
    for (var r, i = 0; i < spans.length; ++i)
      if (spans[i] != span) (r || (r = [])).push(spans[i]);
    return r;
  }
  function addMarkedSpan(line, span) {
    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];
    span.marker.attachLine(line);
  }

  function markedSpansBefore(old, startCh, isInsert) {
    if (old) for (var i = 0, nw; i < old.length; ++i) {
      var span = old[i], marker = span.marker;
      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
      if (startsBefore || marker.type == "bookmark" && span.from == startCh && (!isInsert || !span.marker.insertLeft)) {
        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);
        (nw || (nw = [])).push({from: span.from,
                                to: endsAfter ? null : span.to,
                                marker: marker});
      }
    }
    return nw;
  }

  function markedSpansAfter(old, endCh, isInsert) {
    if (old) for (var i = 0, nw; i < old.length; ++i) {
      var span = old[i], marker = span.marker;
      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
      if (endsAfter || marker.type == "bookmark" && span.from == endCh && (!isInsert || span.marker.insertLeft)) {
        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);
        (nw || (nw = [])).push({from: startsBefore ? null : span.from - endCh,
                                to: span.to == null ? null : span.to - endCh,
                                marker: marker});
      }
    }
    return nw;
  }

  function stretchSpansOverChange(doc, change) {
    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
    if (!oldFirst && !oldLast) return null;

    var startCh = change.from.ch, endCh = change.to.ch, isInsert = posEq(change.from, change.to);
    // Get the spans that 'stick out' on both sides
    var first = markedSpansBefore(oldFirst, startCh, isInsert);
    var last = markedSpansAfter(oldLast, endCh, isInsert);

    // Next, merge those two ends
    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);
    if (first) {
      // Fix up .to properties of first
      for (var i = 0; i < first.length; ++i) {
        var span = first[i];
        if (span.to == null) {
          var found = getMarkedSpanFor(last, span.marker);
          if (!found) span.to = startCh;
          else if (sameLine) span.to = found.to == null ? null : found.to + offset;
        }
      }
    }
    if (last) {
      // Fix up .from in last (or move them into first in case of sameLine)
      for (var i = 0; i < last.length; ++i) {
        var span = last[i];
        if (span.to != null) span.to += offset;
        if (span.from == null) {
          var found = getMarkedSpanFor(first, span.marker);
          if (!found) {
            span.from = offset;
            if (sameLine) (first || (first = [])).push(span);
          }
        } else {
          span.from += offset;
          if (sameLine) (first || (first = [])).push(span);
        }
      }
    }
    if (sameLine && first) {
      // Make sure we didn't create any zero-length spans
      for (var i = 0; i < first.length; ++i)
        if (first[i].from != null && first[i].from == first[i].to && first[i].marker.type != "bookmark")
          first.splice(i--, 1);
      if (!first.length) first = null;
    }

    var newMarkers = [first];
    if (!sameLine) {
      // Fill gap with whole-line-spans
      var gap = change.text.length - 2, gapMarkers;
      if (gap > 0 && first)
        for (var i = 0; i < first.length; ++i)
          if (first[i].to == null)
            (gapMarkers || (gapMarkers = [])).push({from: null, to: null, marker: first[i].marker});
      for (var i = 0; i < gap; ++i)
        newMarkers.push(gapMarkers);
      newMarkers.push(last);
    }
    return newMarkers;
  }

  function mergeOldSpans(doc, change) {
    var old = getOldSpans(doc, change);
    var stretched = stretchSpansOverChange(doc, change);
    if (!old) return stretched;
    if (!stretched) return old;

    for (var i = 0; i < old.length; ++i) {
      var oldCur = old[i], stretchCur = stretched[i];
      if (oldCur && stretchCur) {
        spans: for (var j = 0; j < stretchCur.length; ++j) {
          var span = stretchCur[j];
          for (var k = 0; k < oldCur.length; ++k)
            if (oldCur[k].marker == span.marker) continue spans;
          oldCur.push(span);
        }
      } else if (stretchCur) {
        old[i] = stretchCur;
      }
    }
    return old;
  }

  function removeReadOnlyRanges(doc, from, to) {
    var markers = null;
    doc.iter(from.line, to.line + 1, function(line) {
      if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
        var mark = line.markedSpans[i].marker;
        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))
          (markers || (markers = [])).push(mark);
      }
    });
    if (!markers) return null;
    var parts = [{from: from, to: to}];
    for (var i = 0; i < markers.length; ++i) {
      var mk = markers[i], m = mk.find();
      for (var j = 0; j < parts.length; ++j) {
        var p = parts[j];
        if (posLess(p.to, m.from) || posLess(m.to, p.from)) continue;
        var newParts = [j, 1];
        if (posLess(p.from, m.from) || !mk.inclusiveLeft && posEq(p.from, m.from))
          newParts.push({from: p.from, to: m.from});
        if (posLess(m.to, p.to) || !mk.inclusiveRight && posEq(p.to, m.to))
          newParts.push({from: m.to, to: p.to});
        parts.splice.apply(parts, newParts);
        j += newParts.length - 1;
      }
    }
    return parts;
  }

  function collapsedSpanAt(line, ch) {
    var sps = sawCollapsedSpans && line.markedSpans, found;
    if (sps) for (var sp, i = 0; i < sps.length; ++i) {
      sp = sps[i];
      if (!sp.marker.collapsed) continue;
      if ((sp.from == null || sp.from < ch) &&
          (sp.to == null || sp.to > ch) &&
          (!found || found.width < sp.marker.width))
        found = sp.marker;
    }
    return found;
  }
  function collapsedSpanAtStart(line) { return collapsedSpanAt(line, -1); }
  function collapsedSpanAtEnd(line) { return collapsedSpanAt(line, line.text.length + 1); }

  function visualLine(doc, line) {
    var merged;
    while (merged = collapsedSpanAtStart(line))
      line = getLine(doc, merged.find().from.line);
    return line;
  }

  function lineIsHidden(doc, line) {
    var sps = sawCollapsedSpans && line.markedSpans;
    if (sps) for (var sp, i = 0; i < sps.length; ++i) {
      sp = sps[i];
      if (!sp.marker.collapsed) continue;
      if (sp.from == null) return true;
      if (sp.marker.replacedWith) continue;
      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))
        return true;
    }
  }
  function lineIsHiddenInner(doc, line, span) {
    if (span.to == null) {
      var end = span.marker.find().to, endLine = getLine(doc, end.line);
      return lineIsHiddenInner(doc, endLine, getMarkedSpanFor(endLine.markedSpans, span.marker));
    }
    if (span.marker.inclusiveRight && span.to == line.text.length)
      return true;
    for (var sp, i = 0; i < line.markedSpans.length; ++i) {
      sp = line.markedSpans[i];
      if (sp.marker.collapsed && !sp.marker.replacedWith && sp.from == span.to &&
          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
          lineIsHiddenInner(doc, line, sp)) return true;
    }
  }

  function detachMarkedSpans(line) {
    var spans = line.markedSpans;
    if (!spans) return;
    for (var i = 0; i < spans.length; ++i)
      spans[i].marker.detachLine(line);
    line.markedSpans = null;
  }

  function attachMarkedSpans(line, spans) {
    if (!spans) return;
    for (var i = 0; i < spans.length; ++i)
      spans[i].marker.attachLine(line);
    line.markedSpans = spans;
  }

  // LINE WIDGETS

  var LineWidget = CodeMirror.LineWidget = function(cm, node, options) {
    if (options) for (var opt in options) if (options.hasOwnProperty(opt))
      this[opt] = options[opt];
    this.cm = cm;
    this.node = node;
  };
  eventMixin(LineWidget);
  function widgetOperation(f) {
    return function() {
      var withOp = !this.cm.curOp;
      if (withOp) startOperation(this.cm);
      try {var result = f.apply(this, arguments);}
      finally {if (withOp) endOperation(this.cm);}
      return result;
    };
  }
  LineWidget.prototype.clear = widgetOperation(function() {
    var ws = this.line.widgets, no = lineNo(this.line);
    if (no == null || !ws) return;
    for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);
    if (!ws.length) this.line.widgets = null;
    var aboveVisible = heightAtLine(this.cm, this.line) < this.cm.doc.scrollTop;
    updateLineHeight(this.line, Math.max(0, this.line.height - widgetHeight(this)));
    if (aboveVisible) addToScrollPos(this.cm, 0, -this.height);
    regChange(this.cm, no, no + 1);
  });
  LineWidget.prototype.changed = widgetOperation(function() {
    var oldH = this.height;
    this.height = null;
    var diff = widgetHeight(this) - oldH;
    if (!diff) return;
    updateLineHeight(this.line, this.line.height + diff);
    var no = lineNo(this.line);
    regChange(this.cm, no, no + 1);
  });

  function widgetHeight(widget) {
    if (widget.height != null) return widget.height;
    if (!widget.node.parentNode || widget.node.parentNode.nodeType != 1)
      removeChildrenAndAdd(widget.cm.display.measure, elt("div", [widget.node], null, "position: relative"));
    return widget.height = widget.node.offsetHeight;
  }

  function addLineWidget(cm, handle, node, options) {
    var widget = new LineWidget(cm, node, options);
    if (widget.noHScroll) cm.display.alignWidgets = true;
    changeLine(cm, handle, function(line) {
      var widgets = line.widgets || (line.widgets = []);
      if (widget.insertAt == null) widgets.push(widget);
      else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);
      widget.line = line;
      if (!lineIsHidden(cm.doc, line) || widget.showIfHidden) {
        var aboveVisible = heightAtLine(cm, line) < cm.doc.scrollTop;
        updateLineHeight(line, line.height + widgetHeight(widget));
        if (aboveVisible) addToScrollPos(cm, 0, widget.height);
      }
      return true;
    });
    return widget;
  }

  // LINE DATA STRUCTURE

  // Line objects. These hold state related to a line, including
  // highlighting info (the styles array).
  var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {
    this.text = text;
    attachMarkedSpans(this, markedSpans);
    this.height = estimateHeight ? estimateHeight(this) : 1;
  };
  eventMixin(Line);

  function updateLine(line, text, markedSpans, estimateHeight) {
    line.text = text;
    if (line.stateAfter) line.stateAfter = null;
    if (line.styles) line.styles = null;
    if (line.order != null) line.order = null;
    detachMarkedSpans(line);
    attachMarkedSpans(line, markedSpans);
    var estHeight = estimateHeight ? estimateHeight(line) : 1;
    if (estHeight != line.height) updateLineHeight(line, estHeight);
  }

  function cleanUpLine(line) {
    line.parent = null;
    detachMarkedSpans(line);
  }

  // Run the given mode's parser over a line, update the styles
  // array, which contains alternating fragments of text and CSS
  // classes.
  function runMode(cm, text, mode, state, f) {
    var flattenSpans = mode.flattenSpans;
    if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;
    var curStart = 0, curStyle = null;
    var stream = new StringStream(text, cm.options.tabSize), style;
    if (text == "" && mode.blankLine) mode.blankLine(state);
    while (!stream.eol()) {
      if (stream.pos > cm.options.maxHighlightLength) {
        flattenSpans = false;
        // Webkit seems to refuse to render text nodes longer than 57444 characters
        stream.pos = Math.min(text.length, stream.start + 50000);
        style = null;
      } else {
        style = mode.token(stream, state);
      }
      if (!flattenSpans || curStyle != style) {
        if (curStart < stream.start) f(stream.start, curStyle);
        curStart = stream.start; curStyle = style;
      }
      stream.start = stream.pos;
    }
    if (curStart < stream.pos) f(stream.pos, curStyle);
  }

  function highlightLine(cm, line, state) {
    // A styles array always starts with a number identifying the
    // mode/overlays that it is based on (for easy invalidation).
    var st = [cm.state.modeGen];
    // Compute the base array of styles
    runMode(cm, line.text, cm.doc.mode, state, function(end, style) {st.push(end, style);});

    // Run overlays, adjust style array.
    for (var o = 0; o < cm.state.overlays.length; ++o) {
      var overlay = cm.state.overlays[o], i = 1, at = 0;
      runMode(cm, line.text, overlay.mode, true, function(end, style) {
        var start = i;
        // Ensure there's a token end at the current position, and that i points at it
        while (at < end) {
          var i_end = st[i];
          if (i_end > end)
            st.splice(i, 1, end, st[i+1], i_end);
          i += 2;
          at = Math.min(end, i_end);
        }
        if (!style) return;
        if (overlay.opaque) {
          st.splice(start, i - start, end, style);
          i = start + 2;
        } else {
          for (; start < i; start += 2) {
            var cur = st[start+1];
            st[start+1] = cur ? cur + " " + style : style;
          }
        }
      });
    }

    return st;
  }

  function getLineStyles(cm, line) {
    if (!line.styles || line.styles[0] != cm.state.modeGen)
      line.styles = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line)));
    return line.styles;
  }

  // Lightweight form of highlight -- proceed over this line and
  // update state, but don't save a style array.
  function processLine(cm, line, state) {
    var mode = cm.doc.mode;
    var stream = new StringStream(line.text, cm.options.tabSize);
    if (line.text == "" && mode.blankLine) mode.blankLine(state);
    while (!stream.eol() && stream.pos <= cm.options.maxHighlightLength) {
      mode.token(stream, state);
      stream.start = stream.pos;
    }
  }

  var styleToClassCache = {};
  function styleToClass(style) {
    if (!style) return null;
    return styleToClassCache[style] ||
      (styleToClassCache[style] = "cm-" + style.replace(/ +/g, " cm-"));
  }

  function lineContent(cm, realLine, measure, copyWidgets) {
    var merged, line = realLine, empty = true;
    while (merged = collapsedSpanAtStart(line))
      line = getLine(cm.doc, merged.find().from.line);

    var builder = {pre: elt("pre"), col: 0, pos: 0,
                   measure: null, measuredSomething: false, cm: cm,
                   copyWidgets: copyWidgets};
    if (line.textClass) builder.pre.className = line.textClass;

    do {
      if (line.text) empty = false;
      builder.measure = line == realLine && measure;
      builder.pos = 0;
      builder.addToken = builder.measure ? buildTokenMeasure : buildToken;
      if ((ie || webkit) && cm.getOption("lineWrapping"))
        builder.addToken = buildTokenSplitSpaces(builder.addToken);
      var next = insertLineContent(line, builder, getLineStyles(cm, line));
      if (measure && line == realLine && !builder.measuredSomething) {
        measure[0] = builder.pre.appendChild(zeroWidthElement(cm.display.measure));
        builder.measuredSomething = true;
      }
      if (next) line = getLine(cm.doc, next.to.line);
    } while (next);

    if (measure && !builder.measuredSomething && !measure[0])
      measure[0] = builder.pre.appendChild(empty ? elt("span", "\u00a0") : zeroWidthElement(cm.display.measure));
    if (!builder.pre.firstChild && !lineIsHidden(cm.doc, realLine))
      builder.pre.appendChild(document.createTextNode("\u00a0"));

    var order;
    // Work around problem with the reported dimensions of single-char
    // direction spans on IE (issue #1129). See also the comment in
    // cursorCoords.
    if (measure && ie && (order = getOrder(line))) {
      var l = order.length - 1;
      if (order[l].from == order[l].to) --l;
      var last = order[l], prev = order[l - 1];
      if (last.from + 1 == last.to && prev && last.level < prev.level) {
        var span = measure[builder.pos - 1];
        if (span) span.parentNode.insertBefore(span.measureRight = zeroWidthElement(cm.display.measure),
                                               span.nextSibling);
      }
    }

    signal(cm, "renderLine", cm, realLine, builder.pre);
    return builder.pre;
  }

  var tokenSpecialChars = /[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g;
  function buildToken(builder, text, style, startStyle, endStyle, title) {
    if (!text) return;
    if (!tokenSpecialChars.test(text)) {
      builder.col += text.length;
      var content = document.createTextNode(text);
    } else {
      var content = document.createDocumentFragment(), pos = 0;
      while (true) {
        tokenSpecialChars.lastIndex = pos;
        var m = tokenSpecialChars.exec(text);
        var skipped = m ? m.index - pos : text.length - pos;
        if (skipped) {
          content.appendChild(document.createTextNode(text.slice(pos, pos + skipped)));
          builder.col += skipped;
        }
        if (!m) break;
        pos += skipped + 1;
        if (m[0] == "\t") {
          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;
          content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"));
          builder.col += tabWidth;
        } else {
          var token = elt("span", "\u2022", "cm-invalidchar");
          token.title = "\\u" + m[0].charCodeAt(0).toString(16);
          content.appendChild(token);
          builder.col += 1;
        }
      }
    }
    if (style || startStyle || endStyle || builder.measure) {
      var fullStyle = style || "";
      if (startStyle) fullStyle += startStyle;
      if (endStyle) fullStyle += endStyle;
      var token = elt("span", [content], fullStyle);
      if (title) token.title = title;
      return builder.pre.appendChild(token);
    }
    builder.pre.appendChild(content);
  }

  function buildTokenMeasure(builder, text, style, startStyle, endStyle) {
    var wrapping = builder.cm.options.lineWrapping;
    for (var i = 0; i < text.length; ++i) {
      var ch = text.charAt(i), start = i == 0;
      if (ch >= "\ud800" && ch < "\udbff" && i < text.length - 1) {
        ch = text.slice(i, i + 2);
        ++i;
      } else if (i && wrapping && spanAffectsWrapping(text, i)) {
        builder.pre.appendChild(elt("wbr"));
      }
      var old = builder.measure[builder.pos];
      var span = builder.measure[builder.pos] =
        buildToken(builder, ch, style,
                   start && startStyle, i == text.length - 1 && endStyle);
      if (old) span.leftSide = old.leftSide || old;
      // In IE single-space nodes wrap differently than spaces
      // embedded in larger text nodes, except when set to
      // white-space: normal (issue #1268).
      if (ie && wrapping && ch == " " && i && !/\s/.test(text.charAt(i - 1)) &&
          i < text.length - 1 && !/\s/.test(text.charAt(i + 1)))
        span.style.whiteSpace = "normal";
      builder.pos += ch.length;
    }
    if (text.length) builder.measuredSomething = true;
  }

  function buildTokenSplitSpaces(inner) {
    function split(old) {
      var out = " ";
      for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? " " : "\u00a0";
      out += " ";
      return out;
    }
    return function(builder, text, style, startStyle, endStyle, title) {
      return inner(builder, text.replace(/ {3,}/, split), style, startStyle, endStyle, title);
    };
  }

  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
    var widget = !ignoreWidget && marker.replacedWith;
    if (widget) {
      if (builder.copyWidgets) widget = widget.cloneNode(true);
      builder.pre.appendChild(widget);
      if (builder.measure) {
        if (size) {
          builder.measure[builder.pos] = widget;
        } else {
          var elt = builder.measure[builder.pos] = zeroWidthElement(builder.cm.display.measure);
          if (marker.type != "bookmark" || marker.insertLeft)
            builder.pre.insertBefore(elt, widget);
          else
            builder.pre.appendChild(elt);
        }
        builder.measuredSomething = true;
      }
    }
    builder.pos += size;
  }

  // Outputs a number of spans to make up a line, taking highlighting
  // and marked text into account.
  function insertLineContent(line, builder, styles) {
    var spans = line.markedSpans, allText = line.text, at = 0;
    if (!spans) {
      for (var i = 1; i < styles.length; i+=2)
        builder.addToken(builder, allText.slice(at, at = styles[i]), styleToClass(styles[i+1]));
      return;
    }

    var len = allText.length, pos = 0, i = 1, text = "", style;
    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;
    for (;;) {
      if (nextChange == pos) { // Update current marker set
        spanStyle = spanEndStyle = spanStartStyle = title = "";
        collapsed = null; nextChange = Infinity;
        var foundBookmark = null;
        for (var j = 0; j < spans.length; ++j) {
          var sp = spans[j], m = sp.marker;
          if (sp.from <= pos && (sp.to == null || sp.to > pos)) {
            if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = ""; }
            if (m.className) spanStyle += " " + m.className;
            if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle;
            if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle;
            if (m.title && !title) title = m.title;
            if (m.collapsed && (!collapsed || collapsed.marker.size < m.size))
              collapsed = sp;
          } else if (sp.from > pos && nextChange > sp.from) {
            nextChange = sp.from;
          }
          if (m.type == "bookmark" && sp.from == pos && m.replacedWith) foundBookmark = m;
        }
        if (collapsed && (collapsed.from || 0) == pos) {
          buildCollapsedSpan(builder, (collapsed.to == null ? len : collapsed.to) - pos,
                             collapsed.marker, collapsed.from == null);
          if (collapsed.to == null) return collapsed.marker.find();
        }
        if (foundBookmark && !collapsed) buildCollapsedSpan(builder, 0, foundBookmark);
      }
      if (pos >= len) break;

      var upto = Math.min(len, nextChange);
      while (true) {
        if (text) {
          var end = pos + text.length;
          if (!collapsed) {
            var tokenText = end > upto ? text.slice(0, upto - pos) : text;
            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,
                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title);
          }
          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
          pos = end;
          spanStartStyle = "";
        }
        text = allText.slice(at, at = styles[i++]);
        style = styleToClass(styles[i++]);
      }
    }
  }

  // DOCUMENT DATA STRUCTURE

  function updateDoc(doc, change, markedSpans, selAfter, estimateHeight) {
    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}
    function update(line, text, spans) {
      updateLine(line, text, spans, estimateHeight);
      signalLater(line, "change", line, change);
    }

    var from = change.from, to = change.to, text = change.text;
    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);
    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;

    // First adjust the line structure
    if (from.ch == 0 && to.ch == 0 && lastText == "") {
      // This is a whole-line replace. Treated specially to make
      // sure line objects move the way they are supposed to.
      for (var i = 0, e = text.length - 1, added = []; i < e; ++i)
        added.push(new Line(text[i], spansFor(i), estimateHeight));
      update(lastLine, lastLine.text, lastSpans);
      if (nlines) doc.remove(from.line, nlines);
      if (added.length) doc.insert(from.line, added);
    } else if (firstLine == lastLine) {
      if (text.length == 1) {
        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);
      } else {
        for (var added = [], i = 1, e = text.length - 1; i < e; ++i)
          added.push(new Line(text[i], spansFor(i), estimateHeight));
        added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));
        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
        doc.insert(from.line + 1, added);
      }
    } else if (text.length == 1) {
      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));
      doc.remove(from.line + 1, nlines);
    } else {
      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);
      for (var i = 1, e = text.length - 1, added = []; i < e; ++i)
        added.push(new Line(text[i], spansFor(i), estimateHeight));
      if (nlines > 1) doc.remove(from.line + 1, nlines - 1);
      doc.insert(from.line + 1, added);
    }

    signalLater(doc, "change", doc, change);
    setSelection(doc, selAfter.anchor, selAfter.head, null, true);
  }

  function LeafChunk(lines) {
    this.lines = lines;
    this.parent = null;
    for (var i = 0, e = lines.length, height = 0; i < e; ++i) {
      lines[i].parent = this;
      height += lines[i].height;
    }
    this.height = height;
  }

  LeafChunk.prototype = {
    chunkSize: function() { return this.lines.length; },
    removeInner: function(at, n) {
      for (var i = at, e = at + n; i < e; ++i) {
        var line = this.lines[i];
        this.height -= line.height;
        cleanUpLine(line);
        signalLater(line, "delete");
      }
      this.lines.splice(at, n);
    },
    collapse: function(lines) {
      lines.splice.apply(lines, [lines.length, 0].concat(this.lines));
    },
    insertInner: function(at, lines, height) {
      this.height += height;
      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
      for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this;
    },
    iterN: function(at, n, op) {
      for (var e = at + n; at < e; ++at)
        if (op(this.lines[at])) return true;
    }
  };

  function BranchChunk(children) {
    this.children = children;
    var size = 0, height = 0;
    for (var i = 0, e = children.length; i < e; ++i) {
      var ch = children[i];
      size += ch.chunkSize(); height += ch.height;
      ch.parent = this;
    }
    this.size = size;
    this.height = height;
    this.parent = null;
  }

  BranchChunk.prototype = {
    chunkSize: function() { return this.size; },
    removeInner: function(at, n) {
      this.size -= n;
      for (var i = 0; i < this.children.length; ++i) {
        var child = this.children[i], sz = child.chunkSize();
        if (at < sz) {
          var rm = Math.min(n, sz - at), oldHeight = child.height;
          child.removeInner(at, rm);
          this.height -= oldHeight - child.height;
          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }
          if ((n -= rm) == 0) break;
          at = 0;
        } else at -= sz;
      }
      if (this.size - n < 25) {
        var lines = [];
        this.collapse(lines);
        this.children = [new LeafChunk(lines)];
        this.children[0].parent = this;
      }
    },
    collapse: function(lines) {
      for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines);
    },
    insertInner: function(at, lines, height) {
      this.size += lines.length;
      this.height += height;
      for (var i = 0, e = this.children.length; i < e; ++i) {
        var child = this.children[i], sz = child.chunkSize();
        if (at <= sz) {
          child.insertInner(at, lines, height);
          if (child.lines && child.lines.length > 50) {
            while (child.lines.length > 50) {
              var spilled = child.lines.splice(child.lines.length - 25, 25);
              var newleaf = new LeafChunk(spilled);
              child.height -= newleaf.height;
              this.children.splice(i + 1, 0, newleaf);
              newleaf.parent = this;
            }
            this.maybeSpill();
          }
          break;
        }
        at -= sz;
      }
    },
    maybeSpill: function() {
      if (this.children.length <= 10) return;
      var me = this;
      do {
        var spilled = me.children.splice(me.children.length - 5, 5);
        var sibling = new BranchChunk(spilled);
        if (!me.parent) { // Become the parent node
          var copy = new BranchChunk(me.children);
          copy.parent = me;
          me.children = [copy, sibling];
          me = copy;
        } else {
          me.size -= sibling.size;
          me.height -= sibling.height;
          var myIndex = indexOf(me.parent.children, me);
          me.parent.children.splice(myIndex + 1, 0, sibling);
        }
        sibling.parent = me.parent;
      } while (me.children.length > 10);
      me.parent.maybeSpill();
    },
    iterN: function(at, n, op) {
      for (var i = 0, e = this.children.length; i < e; ++i) {
        var child = this.children[i], sz = child.chunkSize();
        if (at < sz) {
          var used = Math.min(n, sz - at);
          if (child.iterN(at, used, op)) return true;
          if ((n -= used) == 0) break;
          at = 0;
        } else at -= sz;
      }
    }
  };

  var nextDocId = 0;
  var Doc = CodeMirror.Doc = function(text, mode, firstLine) {
    if (!(this instanceof Doc)) return new Doc(text, mode, firstLine);
    if (firstLine == null) firstLine = 0;

    BranchChunk.call(this, [new LeafChunk([new Line("", null)])]);
    this.first = firstLine;
    this.scrollTop = this.scrollLeft = 0;
    this.cantEdit = false;
    this.history = makeHistory();
    this.cleanGeneration = 1;
    this.frontier = firstLine;
    var start = Pos(firstLine, 0);
    this.sel = {from: start, to: start, head: start, anchor: start, shift: false, extend: false, goalColumn: null};
    this.id = ++nextDocId;
    this.modeOption = mode;

    if (typeof text == "string") text = splitLines(text);
    updateDoc(this, {from: start, to: start, text: text}, null, {head: start, anchor: start});
  };

  Doc.prototype = createObj(BranchChunk.prototype, {
    constructor: Doc,
    iter: function(from, to, op) {
      if (op) this.iterN(from - this.first, to - from, op);
      else this.iterN(this.first, this.first + this.size, from);
    },

    insert: function(at, lines) {
      var height = 0;
      for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height;
      this.insertInner(at - this.first, lines, height);
    },
    remove: function(at, n) { this.removeInner(at - this.first, n); },

    getValue: function(lineSep) {
      var lines = getLines(this, this.first, this.first + this.size);
      if (lineSep === false) return lines;
      return lines.join(lineSep || "\n");
    },
    setValue: function(code) {
      var top = Pos(this.first, 0), last = this.first + this.size - 1;
      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
                        text: splitLines(code), origin: "setValue"},
                 {head: top, anchor: top}, true);
    },
    replaceRange: function(code, from, to, origin) {
      from = clipPos(this, from);
      to = to ? clipPos(this, to) : from;
      replaceRange(this, code, from, to, origin);
    },
    getRange: function(from, to, lineSep) {
      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));
      if (lineSep === false) return lines;
      return lines.join(lineSep || "\n");
    },

    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},
    setLine: function(line, text) {
      if (isLine(this, line))
        replaceRange(this, text, Pos(line, 0), clipPos(this, Pos(line)));
    },
    removeLine: function(line) {
      if (line) replaceRange(this, "", clipPos(this, Pos(line - 1)), clipPos(this, Pos(line)));
      else replaceRange(this, "", Pos(0, 0), clipPos(this, Pos(1, 0)));
    },

    getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},
    getLineNumber: function(line) {return lineNo(line);},

    getLineHandleVisualStart: function(line) {
      if (typeof line == "number") line = getLine(this, line);
      return visualLine(this, line);
    },

    lineCount: function() {return this.size;},
    firstLine: function() {return this.first;},
    lastLine: function() {return this.first + this.size - 1;},

    clipPos: function(pos) {return clipPos(this, pos);},

    getCursor: function(start) {
      var sel = this.sel, pos;
      if (start == null || start == "head") pos = sel.head;
      else if (start == "anchor") pos = sel.anchor;
      else if (start == "end" || start === false) pos = sel.to;
      else pos = sel.from;
      return copyPos(pos);
    },
    somethingSelected: function() {return !posEq(this.sel.head, this.sel.anchor);},

    setCursor: docOperation(function(line, ch, extend) {
      var pos = clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line);
      if (extend) extendSelection(this, pos);
      else setSelection(this, pos, pos);
    }),
    setSelection: docOperation(function(anchor, head) {
      setSelection(this, clipPos(this, anchor), clipPos(this, head || anchor));
    }),
    extendSelection: docOperation(function(from, to) {
      extendSelection(this, clipPos(this, from), to && clipPos(this, to));
    }),

    getSelection: function(lineSep) {return this.getRange(this.sel.from, this.sel.to, lineSep);},
    replaceSelection: function(code, collapse, origin) {
      makeChange(this, {from: this.sel.from, to: this.sel.to, text: splitLines(code), origin: origin}, collapse || "around");
    },
    undo: docOperation(function() {makeChangeFromHistory(this, "undo");}),
    redo: docOperation(function() {makeChangeFromHistory(this, "redo");}),

    setExtending: function(val) {this.sel.extend = val;},

    historySize: function() {
      var hist = this.history;
      return {undo: hist.done.length, redo: hist.undone.length};
    },
    clearHistory: function() {this.history = makeHistory(this.history.maxGeneration);},

    markClean: function() {
      this.cleanGeneration = this.changeGeneration();
    },
    changeGeneration: function() {
      this.history.lastOp = this.history.lastOrigin = null;
      return this.history.generation;
    },
    isClean: function (gen) {
      return this.history.generation == (gen || this.cleanGeneration);
    },

    getHistory: function() {
      return {done: copyHistoryArray(this.history.done),
              undone: copyHistoryArray(this.history.undone)};
    },
    setHistory: function(histData) {
      var hist = this.history = makeHistory(this.history.maxGeneration);
      hist.done = histData.done.slice(0);
      hist.undone = histData.undone.slice(0);
    },

    markText: function(from, to, options) {
      return markText(this, clipPos(this, from), clipPos(this, to), options, "range");
    },
    setBookmark: function(pos, options) {
      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
                      insertLeft: options && options.insertLeft};
      pos = clipPos(this, pos);
      return markText(this, pos, pos, realOpts, "bookmark");
    },
    findMarksAt: function(pos) {
      pos = clipPos(this, pos);
      var markers = [], spans = getLine(this, pos.line).markedSpans;
      if (spans) for (var i = 0; i < spans.length; ++i) {
        var span = spans[i];
        if ((span.from == null || span.from <= pos.ch) &&
            (span.to == null || span.to >= pos.ch))
          markers.push(span.marker.parent || span.marker);
      }
      return markers;
    },
    getAllMarks: function() {
      var markers = [];
      this.iter(function(line) {
        var sps = line.markedSpans;
        if (sps) for (var i = 0; i < sps.length; ++i)
          if (sps[i].from != null) markers.push(sps[i].marker);
      });
      return markers;
    },

    posFromIndex: function(off) {
      var ch, lineNo = this.first;
      this.iter(function(line) {
        var sz = line.text.length + 1;
        if (sz > off) { ch = off; return true; }
        off -= sz;
        ++lineNo;
      });
      return clipPos(this, Pos(lineNo, ch));
    },
    indexFromPos: function (coords) {
      coords = clipPos(this, coords);
      var index = coords.ch;
      if (coords.line < this.first || coords.ch < 0) return 0;
      this.iter(this.first, coords.line, function (line) {
        index += line.text.length + 1;
      });
      return index;
    },

    copy: function(copyHistory) {
      var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first);
      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;
      doc.sel = {from: this.sel.from, to: this.sel.to, head: this.sel.head, anchor: this.sel.anchor,
                 shift: this.sel.shift, extend: false, goalColumn: this.sel.goalColumn};
      if (copyHistory) {
        doc.history.undoDepth = this.history.undoDepth;
        doc.setHistory(this.getHistory());
      }
      return doc;
    },

    linkedDoc: function(options) {
      if (!options) options = {};
      var from = this.first, to = this.first + this.size;
      if (options.from != null && options.from > from) from = options.from;
      if (options.to != null && options.to < to) to = options.to;
      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from);
      if (options.sharedHist) copy.history = this.history;
      (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});
      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];
      return copy;
    },
    unlinkDoc: function(other) {
      if (other instanceof CodeMirror) other = other.doc;
      if (this.linked) for (var i = 0; i < this.linked.length; ++i) {
        var link = this.linked[i];
        if (link.doc != other) continue;
        this.linked.splice(i, 1);
        other.unlinkDoc(this);
        break;
      }
      // If the histories were shared, split them again
      if (other.history == this.history) {
        var splitIds = [other.id];
        linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);
        other.history = makeHistory();
        other.history.done = copyHistoryArray(this.history.done, splitIds);
        other.history.undone = copyHistoryArray(this.history.undone, splitIds);
      }
    },
    iterLinkedDocs: function(f) {linkedDocs(this, f);},

    getMode: function() {return this.mode;},
    getEditor: function() {return this.cm;}
  });

  Doc.prototype.eachLine = Doc.prototype.iter;

  // The Doc methods that should be available on CodeMirror instances
  var dontDelegate = "iter insert remove copy getEditor".split(" ");
  for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
    CodeMirror.prototype[prop] = (function(method) {
      return function() {return method.apply(this.doc, arguments);};
    })(Doc.prototype[prop]);

  eventMixin(Doc);

  function linkedDocs(doc, f, sharedHistOnly) {
    function propagate(doc, skip, sharedHist) {
      if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {
        var rel = doc.linked[i];
        if (rel.doc == skip) continue;
        var shared = sharedHist && rel.sharedHist;
        if (sharedHistOnly && !shared) continue;
        f(rel.doc, shared);
        propagate(rel.doc, doc, shared);
      }
    }
    propagate(doc, null, true);
  }

  function attachDoc(cm, doc) {
    if (doc.cm) throw new Error("This document is already in use.");
    cm.doc = doc;
    doc.cm = cm;
    estimateLineHeights(cm);
    loadMode(cm);
    if (!cm.options.lineWrapping) computeMaxLength(cm);
    cm.options.mode = doc.modeOption;
    regChange(cm);
  }

  // LINE UTILITIES

  function getLine(chunk, n) {
    n -= chunk.first;
    while (!chunk.lines) {
      for (var i = 0;; ++i) {
        var child = chunk.children[i], sz = child.chunkSize();
        if (n < sz) { chunk = child; break; }
        n -= sz;
      }
    }
    return chunk.lines[n];
  }

  function getBetween(doc, start, end) {
    var out = [], n = start.line;
    doc.iter(start.line, end.line + 1, function(line) {
      var text = line.text;
      if (n == end.line) text = text.slice(0, end.ch);
      if (n == start.line) text = text.slice(start.ch);
      out.push(text);
      ++n;
    });
    return out;
  }
  function getLines(doc, from, to) {
    var out = [];
    doc.iter(from, to, function(line) { out.push(line.text); });
    return out;
  }

  function updateLineHeight(line, height) {
    var diff = height - line.height;
    for (var n = line; n; n = n.parent) n.height += diff;
  }

  function lineNo(line) {
    if (line.parent == null) return null;
    var cur = line.parent, no = indexOf(cur.lines, line);
    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
      for (var i = 0;; ++i) {
        if (chunk.children[i] == cur) break;
        no += chunk.children[i].chunkSize();
      }
    }
    return no + cur.first;
  }

  function lineAtHeight(chunk, h) {
    var n = chunk.first;
    outer: do {
      for (var i = 0, e = chunk.children.length; i < e; ++i) {
        var child = chunk.children[i], ch = child.height;
        if (h < ch) { chunk = child; continue outer; }
        h -= ch;
        n += child.chunkSize();
      }
      return n;
    } while (!chunk.lines);
    for (var i = 0, e = chunk.lines.length; i < e; ++i) {
      var line = chunk.lines[i], lh = line.height;
      if (h < lh) break;
      h -= lh;
    }
    return n + i;
  }

  function heightAtLine(cm, lineObj) {
    lineObj = visualLine(cm.doc, lineObj);

    var h = 0, chunk = lineObj.parent;
    for (var i = 0; i < chunk.lines.length; ++i) {
      var line = chunk.lines[i];
      if (line == lineObj) break;
      else h += line.height;
    }
    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {
      for (var i = 0; i < p.children.length; ++i) {
        var cur = p.children[i];
        if (cur == chunk) break;
        else h += cur.height;
      }
    }
    return h;
  }

  function getOrder(line) {
    var order = line.order;
    if (order == null) order = line.order = bidiOrdering(line.text);
    return order;
  }

  // HISTORY

  function makeHistory(startGen) {
    return {
      // Arrays of history events. Doing something adds an event to
      // done and clears undo. Undoing moves events from done to
      // undone, redoing moves them in the other direction.
      done: [], undone: [], undoDepth: Infinity,
      // Used to track when changes can be merged into a single undo
      // event
      lastTime: 0, lastOp: null, lastOrigin: null,
      // Used by the isClean() method
      generation: startGen || 1, maxGeneration: startGen || 1
    };
  }

  function attachLocalSpans(doc, change, from, to) {
    var existing = change["spans_" + doc.id], n = 0;
    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {
      if (line.markedSpans)
        (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans;
      ++n;
    });
  }

  function historyChangeFromChange(doc, change) {
    var from = { line: change.from.line, ch: change.from.ch };
    var histChange = {from: from, to: changeEnd(change), text: getBetween(doc, change.from, change.to)};
    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);
    linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);
    return histChange;
  }

  function addToHistory(doc, change, selAfter, opId) {
    var hist = doc.history;
    hist.undone.length = 0;
    var time = +new Date, cur = lst(hist.done);

    if (cur &&
        (hist.lastOp == opId ||
         hist.lastOrigin == change.origin && change.origin &&
         ((change.origin.charAt(0) == "+" && doc.cm && hist.lastTime > time - doc.cm.options.historyEventDelay) ||
          change.origin.charAt(0) == "*"))) {
      // Merge this change into the last event
      var last = lst(cur.changes);
      if (posEq(change.from, change.to) && posEq(change.from, last.to)) {
        // Optimized case for simple insertion -- don't want to add
        // new changesets for every character typed
        last.to = changeEnd(change);
      } else {
        // Add new sub-event
        cur.changes.push(historyChangeFromChange(doc, change));
      }
      cur.anchorAfter = selAfter.anchor; cur.headAfter = selAfter.head;
    } else {
      // Can not be merged, start a new event.
      cur = {changes: [historyChangeFromChange(doc, change)],
             generation: hist.generation,
             anchorBefore: doc.sel.anchor, headBefore: doc.sel.head,
             anchorAfter: selAfter.anchor, headAfter: selAfter.head};
      hist.done.push(cur);
      hist.generation = ++hist.maxGeneration;
      while (hist.done.length > hist.undoDepth)
        hist.done.shift();
    }
    hist.lastTime = time;
    hist.lastOp = opId;
    hist.lastOrigin = change.origin;
  }

  function removeClearedSpans(spans) {
    if (!spans) return null;
    for (var i = 0, out; i < spans.length; ++i) {
      if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }
      else if (out) out.push(spans[i]);
    }
    return !out ? spans : out.length ? out : null;
  }

  function getOldSpans(doc, change) {
    var found = change["spans_" + doc.id];
    if (!found) return null;
    for (var i = 0, nw = []; i < change.text.length; ++i)
      nw.push(removeClearedSpans(found[i]));
    return nw;
  }

  // Used both to provide a JSON-safe object in .getHistory, and, when
  // detaching a document, to split the history in two
  function copyHistoryArray(events, newGroup) {
    for (var i = 0, copy = []; i < events.length; ++i) {
      var event = events[i], changes = event.changes, newChanges = [];
      copy.push({changes: newChanges, anchorBefore: event.anchorBefore, headBefore: event.headBefore,
                 anchorAfter: event.anchorAfter, headAfter: event.headAfter});
      for (var j = 0; j < changes.length; ++j) {
        var change = changes[j], m;
        newChanges.push({from: change.from, to: change.to, text: change.text});
        if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) {
          if (indexOf(newGroup, Number(m[1])) > -1) {
            lst(newChanges)[prop] = change[prop];
            delete change[prop];
          }
        }
      }
    }
    return copy;
  }

  // Rebasing/resetting history to deal with externally-sourced changes

  function rebaseHistSel(pos, from, to, diff) {
    if (to < pos.line) {
      pos.line += diff;
    } else if (from < pos.line) {
      pos.line = from;
      pos.ch = 0;
    }
  }

  // Tries to rebase an array of history events given a change in the
  // document. If the change touches the same lines as the event, the
  // event, and everything 'behind' it, is discarded. If the change is
  // before the event, the event's positions are updated. Uses a
  // copy-on-write scheme for the positions, to avoid having to
  // reallocate them all on every rebase, but also avoid problems with
  // shared position objects being unsafely updated.
  function rebaseHistArray(array, from, to, diff) {
    for (var i = 0; i < array.length; ++i) {
      var sub = array[i], ok = true;
      for (var j = 0; j < sub.changes.length; ++j) {
        var cur = sub.changes[j];
        if (!sub.copied) { cur.from = copyPos(cur.from); cur.to = copyPos(cur.to); }
        if (to < cur.from.line) {
          cur.from.line += diff;
          cur.to.line += diff;
        } else if (from <= cur.to.line) {
          ok = false;
          break;
        }
      }
      if (!sub.copied) {
        sub.anchorBefore = copyPos(sub.anchorBefore); sub.headBefore = copyPos(sub.headBefore);
        sub.anchorAfter = copyPos(sub.anchorAfter); sub.readAfter = copyPos(sub.headAfter);
        sub.copied = true;
      }
      if (!ok) {
        array.splice(0, i + 1);
        i = 0;
      } else {
        rebaseHistSel(sub.anchorBefore); rebaseHistSel(sub.headBefore);
        rebaseHistSel(sub.anchorAfter); rebaseHistSel(sub.headAfter);
      }
    }
  }

  function rebaseHist(hist, change) {
    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;
    rebaseHistArray(hist.done, from, to, diff);
    rebaseHistArray(hist.undone, from, to, diff);
  }

  // EVENT OPERATORS

  function stopMethod() {e_stop(this);}
  // Ensure an event has a stop method.
  function addStop(event) {
    if (!event.stop) event.stop = stopMethod;
    return event;
  }

  function e_preventDefault(e) {
    if (e.preventDefault) e.preventDefault();
    else e.returnValue = false;
  }
  function e_stopPropagation(e) {
    if (e.stopPropagation) e.stopPropagation();
    else e.cancelBubble = true;
  }
  function e_defaultPrevented(e) {
    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;
  }
  function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
  CodeMirror.e_stop = e_stop;
  CodeMirror.e_preventDefault = e_preventDefault;
  CodeMirror.e_stopPropagation = e_stopPropagation;

  function e_target(e) {return e.target || e.srcElement;}
  function e_button(e) {
    var b = e.which;
    if (b == null) {
      if (e.button & 1) b = 1;
      else if (e.button & 2) b = 3;
      else if (e.button & 4) b = 2;
    }
    if (mac && e.ctrlKey && b == 1) b = 3;
    return b;
  }

  // EVENT HANDLING

  function on(emitter, type, f) {
    if (emitter.addEventListener)
      emitter.addEventListener(type, f, false);
    else if (emitter.attachEvent)
      emitter.attachEvent("on" + type, f);
    else {
      var map = emitter._handlers || (emitter._handlers = {});
      var arr = map[type] || (map[type] = []);
      arr.push(f);
    }
  }

  function off(emitter, type, f) {
    if (emitter.removeEventListener)
      emitter.removeEventListener(type, f, false);
    else if (emitter.detachEvent)
      emitter.detachEvent("on" + type, f);
    else {
      var arr = emitter._handlers && emitter._handlers[type];
      if (!arr) return;
      for (var i = 0; i < arr.length; ++i)
        if (arr[i] == f) { arr.splice(i, 1); break; }
    }
  }

  function signal(emitter, type /*, values...*/) {
    var arr = emitter._handlers && emitter._handlers[type];
    if (!arr) return;
    var args = Array.prototype.slice.call(arguments, 2);
    for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args);
  }

  var delayedCallbacks, delayedCallbackDepth = 0;
  function signalLater(emitter, type /*, values...*/) {
    var arr = emitter._handlers && emitter._handlers[type];
    if (!arr) return;
    var args = Array.prototype.slice.call(arguments, 2);
    if (!delayedCallbacks) {
      ++delayedCallbackDepth;
      delayedCallbacks = [];
      setTimeout(fireDelayed, 0);
    }
    function bnd(f) {return function(){f.apply(null, args);};};
    for (var i = 0; i < arr.length; ++i)
      delayedCallbacks.push(bnd(arr[i]));
  }

  function signalDOMEvent(cm, e, override) {
    signal(cm, override || e.type, cm, e);
    return e_defaultPrevented(e) || e.codemirrorIgnore;
  }

  function fireDelayed() {
    --delayedCallbackDepth;
    var delayed = delayedCallbacks;
    delayedCallbacks = null;
    for (var i = 0; i < delayed.length; ++i) delayed[i]();
  }

  function hasHandler(emitter, type) {
    var arr = emitter._handlers && emitter._handlers[type];
    return arr && arr.length > 0;
  }

  CodeMirror.on = on; CodeMirror.off = off; CodeMirror.signal = signal;

  function eventMixin(ctor) {
    ctor.prototype.on = function(type, f) {on(this, type, f);};
    ctor.prototype.off = function(type, f) {off(this, type, f);};
  }

  // MISC UTILITIES

  // Number of pixels added to scroller and sizer to hide scrollbar
  var scrollerCutOff = 30;

  // Returned or thrown by various protocols to signal 'I'm not
  // handling this'.
  var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}};

  function Delayed() {this.id = null;}
  Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}};

  // Counts the column offset in a string, taking tabs into account.
  // Used mostly to find indentation.
  function countColumn(string, end, tabSize, startIndex, startValue) {
    if (end == null) {
      end = string.search(/[^\s\u00a0]/);
      if (end == -1) end = string.length;
    }
    for (var i = startIndex || 0, n = startValue || 0; i < end; ++i) {
      if (string.charAt(i) == "\t") n += tabSize - (n % tabSize);
      else ++n;
    }
    return n;
  }
  CodeMirror.countColumn = countColumn;

  var spaceStrs = [""];
  function spaceStr(n) {
    while (spaceStrs.length <= n)
      spaceStrs.push(lst(spaceStrs) + " ");
    return spaceStrs[n];
  }

  function lst(arr) { return arr[arr.length-1]; }

  function selectInput(node) {
    if (ios) { // Mobile Safari apparently has a bug where select() is broken.
      node.selectionStart = 0;
      node.selectionEnd = node.value.length;
    } else {
      // Suppress mysterious IE10 errors
      try { node.select(); }
      catch(_e) {}
    }
  }

  function indexOf(collection, elt) {
    if (collection.indexOf) return collection.indexOf(elt);
    for (var i = 0, e = collection.length; i < e; ++i)
      if (collection[i] == elt) return i;
    return -1;
  }

  function createObj(base, props) {
    function Obj() {}
    Obj.prototype = base;
    var inst = new Obj();
    if (props) copyObj(props, inst);
    return inst;
  }

  function copyObj(obj, target) {
    if (!target) target = {};
    for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];
    return target;
  }

  function emptyArray(size) {
    for (var a = [], i = 0; i < size; ++i) a.push(undefined);
    return a;
  }

  function bind(f) {
    var args = Array.prototype.slice.call(arguments, 1);
    return function(){return f.apply(null, args);};
  }

  var nonASCIISingleCaseWordChar = /[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
  function isWordChar(ch) {
    return /\w/.test(ch) || ch > "\x80" &&
      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));
  }

  function isEmpty(obj) {
    for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;
    return true;
  }

  var isExtendingChar = /[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/;

  // DOM UTILITIES

  function elt(tag, content, className, style) {
    var e = document.createElement(tag);
    if (className) e.className = className;
    if (style) e.style.cssText = style;
    if (typeof content == "string") setTextContent(e, content);
    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
    return e;
  }

  function removeChildren(e) {
    for (var count = e.childNodes.length; count > 0; --count)
      e.removeChild(e.firstChild);
    return e;
  }

  function removeChildrenAndAdd(parent, e) {
    return removeChildren(parent).appendChild(e);
  }

  function setTextContent(e, str) {
    if (ie_lt9) {
      e.innerHTML = "";
      e.appendChild(document.createTextNode(str));
    } else e.textContent = str;
  }

  function getRect(node) {
    return node.getBoundingClientRect();
  }
  CodeMirror.replaceGetRect = function(f) { getRect = f; };

  // FEATURE DETECTION

  // Detect drag-and-drop
  var dragAndDrop = function() {
    // There is *some* kind of drag-and-drop support in IE6-8, but I
    // couldn't get it to work yet.
    if (ie_lt9) return false;
    var div = elt('div');
    return "draggable" in div || "dragDrop" in div;
  }();

  // For a reason I have yet to figure out, some browsers disallow
  // word wrapping between certain characters *only* if a new inline
  // element is started between them. This makes it hard to reliably
  // measure the position of things, since that requires inserting an
  // extra span. This terribly fragile set of tests matches the
  // character combinations that suffer from this phenomenon on the
  // various browsers.
  function spanAffectsWrapping() { return false; }
  if (gecko) // Only for "$'"
    spanAffectsWrapping = function(str, i) {
      return str.charCodeAt(i - 1) == 36 && str.charCodeAt(i) == 39;
    };
  else if (safari && !/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent))
    spanAffectsWrapping = function(str, i) {
      return /\-[^ \-?]|\?[^ !\'\"\),.\-\/:;\?\]\}]/.test(str.slice(i - 1, i + 1));
    };
  else if (webkit && !/Chrome\/(?:29|[3-9]\d|\d\d\d)\./.test(navigator.userAgent))
    spanAffectsWrapping = function(str, i) {
      if (i > 1 && str.charCodeAt(i - 1) == 45) {
        if (/\w/.test(str.charAt(i - 2)) && /[^\-?\.]/.test(str.charAt(i))) return true;
        if (i > 2 && /[\d\.,]/.test(str.charAt(i - 2)) && /[\d\.,]/.test(str.charAt(i))) return false;
      }
      return /[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.\u2010-\u201f\u2026]|\?[\w~`@#$%\^&*(_=+{[|><]|…[\w~`@#$%\^&*(_=+{[><]/.test(str.slice(i - 1, i + 1));
    };

  var knownScrollbarWidth;
  function scrollbarWidth(measure) {
    if (knownScrollbarWidth != null) return knownScrollbarWidth;
    var test = elt("div", null, null, "width: 50px; height: 50px; overflow-x: scroll");
    removeChildrenAndAdd(measure, test);
    if (test.offsetWidth)
      knownScrollbarWidth = test.offsetHeight - test.clientHeight;
    return knownScrollbarWidth || 0;
  }

  var zwspSupported;
  function zeroWidthElement(measure) {
    if (zwspSupported == null) {
      var test = elt("span", "\u200b");
      removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")]));
      if (measure.firstChild.offsetHeight != 0)
        zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !ie_lt8;
    }
    if (zwspSupported) return elt("span", "\u200b");
    else return elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px");
  }

  // See if "".split is the broken IE version, if so, provide an
  // alternative way to split lines.
  var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) {
    var pos = 0, result = [], l = string.length;
    while (pos <= l) {
      var nl = string.indexOf("\n", pos);
      if (nl == -1) nl = string.length;
      var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl);
      var rt = line.indexOf("\r");
      if (rt != -1) {
        result.push(line.slice(0, rt));
        pos += rt + 1;
      } else {
        result.push(line);
        pos = nl + 1;
      }
    }
    return result;
  } : function(string){return string.split(/\r\n?|\n/);};
  CodeMirror.splitLines = splitLines;

  var hasSelection = window.getSelection ? function(te) {
    try { return te.selectionStart != te.selectionEnd; }
    catch(e) { return false; }
  } : function(te) {
    try {var range = te.ownerDocument.selection.createRange();}
    catch(e) {}
    if (!range || range.parentElement() != te) return false;
    return range.compareEndPoints("StartToEnd", range) != 0;
  };

  var hasCopyEvent = (function() {
    var e = elt("div");
    if ("oncopy" in e) return true;
    e.setAttribute("oncopy", "return;");
    return typeof e.oncopy == 'function';
  })();

  // KEY NAMING

  var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
                  19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
                  36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
                  46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 109: "-", 107: "=", 127: "Delete",
                  186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
                  221: "]", 222: "'", 63276: "PageUp", 63277: "PageDown", 63275: "End", 63273: "Home",
                  63234: "Left", 63232: "Up", 63235: "Right", 63233: "Down", 63302: "Insert", 63272: "Delete"};
  CodeMirror.keyNames = keyNames;
  (function() {
    // Number keys
    for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i);
    // Alphabetic keys
    for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);
    // Function keys
    for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i;
  })();

  // BIDI HELPERS

  function iterateBidiSections(order, from, to, f) {
    if (!order) return f(from, to, "ltr");
    var found = false;
    for (var i = 0; i < order.length; ++i) {
      var part = order[i];
      if (part.from < to && part.to > from || from == to && part.to == from) {
        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
        found = true;
      }
    }
    if (!found) f(from, to, "ltr");
  }

  function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }
  function bidiRight(part) { return part.level % 2 ? part.from : part.to; }

  function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }
  function lineRight(line) {
    var order = getOrder(line);
    if (!order) return line.text.length;
    return bidiRight(lst(order));
  }

  function lineStart(cm, lineN) {
    var line = getLine(cm.doc, lineN);
    var visual = visualLine(cm.doc, line);
    if (visual != line) lineN = lineNo(visual);
    var order = getOrder(visual);
    var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);
    return Pos(lineN, ch);
  }
  function lineEnd(cm, lineN) {
    var merged, line;
    while (merged = collapsedSpanAtEnd(line = getLine(cm.doc, lineN)))
      lineN = merged.find().to.line;
    var order = getOrder(line);
    var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);
    return Pos(lineN, ch);
  }

  function compareBidiLevel(order, a, b) {
    var linedir = order[0].level;
    if (a == linedir) return true;
    if (b == linedir) return false;
    return a < b;
  }
  var bidiOther;
  function getBidiPartAt(order, pos) {
    for (var i = 0, found; i < order.length; ++i) {
      var cur = order[i];
      if (cur.from < pos && cur.to > pos) { bidiOther = null; return i; }
      if (cur.from == pos || cur.to == pos) {
        if (found == null) {
          found = i;
        } else if (compareBidiLevel(order, cur.level, order[found].level)) {
          bidiOther = found;
          return i;
        } else {
          bidiOther = i;
          return found;
        }
      }
    }
    bidiOther = null;
    return found;
  }

  function moveInLine(line, pos, dir, byUnit) {
    if (!byUnit) return pos + dir;
    do pos += dir;
    while (pos > 0 && isExtendingChar.test(line.text.charAt(pos)));
    return pos;
  }

  // This is somewhat involved. It is needed in order to move
  // 'visually' through bi-directional text -- i.e., pressing left
  // should make the cursor go left, even when in RTL text. The
  // tricky part is the 'jumps', where RTL and LTR text touch each
  // other. This often requires the cursor offset to move more than
  // one unit, in order to visually move one unit.
  function moveVisually(line, start, dir, byUnit) {
    var bidi = getOrder(line);
    if (!bidi) return moveLogically(line, start, dir, byUnit);
    var pos = getBidiPartAt(bidi, start), part = bidi[pos];
    var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);

    for (;;) {
      if (target > part.from && target < part.to) return target;
      if (target == part.from || target == part.to) {
        if (getBidiPartAt(bidi, target) == pos) return target;
        part = bidi[pos += dir];
        return (dir > 0) == part.level % 2 ? part.to : part.from;
      } else {
        part = bidi[pos += dir];
        if (!part) return null;
        if ((dir > 0) == part.level % 2)
          target = moveInLine(line, part.to, -1, byUnit);
        else
          target = moveInLine(line, part.from, 1, byUnit);
      }
    }
  }

  function moveLogically(line, start, dir, byUnit) {
    var target = start + dir;
    if (byUnit) while (target > 0 && isExtendingChar.test(line.text.charAt(target))) target += dir;
    return target < 0 || target > line.text.length ? null : target;
  }

  // Bidirectional ordering algorithm
  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
  // that this (partially) implements.

  // One-char codes used for character types:
  // L (L):   Left-to-Right
  // R (R):   Right-to-Left
  // r (AL):  Right-to-Left Arabic
  // 1 (EN):  European Number
  // + (ES):  European Number Separator
  // % (ET):  European Number Terminator
  // n (AN):  Arabic Number
  // , (CS):  Common Number Separator
  // m (NSM): Non-Spacing Mark
  // b (BN):  Boundary Neutral
  // s (B):   Paragraph Separator
  // t (S):   Segment Separator
  // w (WS):  Whitespace
  // N (ON):  Other Neutrals

  // Returns null if characters are ordered as they appear
  // (left-to-right), or an array of sections ({from, to, level}
  // objects) in the order in which they occur visually.
  var bidiOrdering = (function() {
    // Character types for codepoints 0 to 0xff
    var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL";
    // Character types for codepoints 0x600 to 0x6ff
    var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr";
    function charType(code) {
      if (code <= 0xff) return lowTypes.charAt(code);
      else if (0x590 <= code && code <= 0x5f4) return "R";
      else if (0x600 <= code && code <= 0x6ff) return arabicTypes.charAt(code - 0x600);
      else if (0x700 <= code && code <= 0x8ac) return "r";
      else return "L";
    }

    var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;
    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;
    // Browsers seem to always treat the boundaries of block elements as being L.
    var outerType = "L";

    return function(str) {
      if (!bidiRE.test(str)) return false;
      var len = str.length, types = [];
      for (var i = 0, type; i < len; ++i)
        types.push(type = charType(str.charCodeAt(i)));

      // W1. Examine each non-spacing mark (NSM) in the level run, and
      // change the type of the NSM to the type of the previous
      // character. If the NSM is at the start of the level run, it will
      // get the type of sor.
      for (var i = 0, prev = outerType; i < len; ++i) {
        var type = types[i];
        if (type == "m") types[i] = prev;
        else prev = type;
      }

      // W2. Search backwards from each instance of a European number
      // until the first strong type (R, L, AL, or sor) is found. If an
      // AL is found, change the type of the European number to Arabic
      // number.
      // W3. Change all ALs to R.
      for (var i = 0, cur = outerType; i < len; ++i) {
        var type = types[i];
        if (type == "1" && cur == "r") types[i] = "n";
        else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; }
      }

      // W4. A single European separator between two European numbers
      // changes to a European number. A single common separator between
      // two numbers of the same type changes to that type.
      for (var i = 1, prev = types[0]; i < len - 1; ++i) {
        var type = types[i];
        if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1";
        else if (type == "," && prev == types[i+1] &&
                 (prev == "1" || prev == "n")) types[i] = prev;
        prev = type;
      }

      // W5. A sequence of European terminators adjacent to European
      // numbers changes to all European numbers.
      // W6. Otherwise, separators and terminators change to Other
      // Neutral.
      for (var i = 0; i < len; ++i) {
        var type = types[i];
        if (type == ",") types[i] = "N";
        else if (type == "%") {
          for (var end = i + 1; end < len && types[end] == "%"; ++end) {}
          var replace = (i && types[i-1] == "!") || (end < len - 1 && types[end] == "1") ? "1" : "N";
          for (var j = i; j < end; ++j) types[j] = replace;
          i = end - 1;
        }
      }

      // W7. Search backwards from each instance of a European number
      // until the first strong type (R, L, or sor) is found. If an L is
      // found, then change the type of the European number to L.
      for (var i = 0, cur = outerType; i < len; ++i) {
        var type = types[i];
        if (cur == "L" && type == "1") types[i] = "L";
        else if (isStrong.test(type)) cur = type;
      }

      // N1. A sequence of neutrals takes the direction of the
      // surrounding strong text if the text on both sides has the same
      // direction. European and Arabic numbers act as if they were R in
      // terms of their influence on neutrals. Start-of-level-run (sor)
      // and end-of-level-run (eor) are used at level run boundaries.
      // N2. Any remaining neutrals take the embedding direction.
      for (var i = 0; i < len; ++i) {
        if (isNeutral.test(types[i])) {
          for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}
          var before = (i ? types[i-1] : outerType) == "L";
          var after = (end < len - 1 ? types[end] : outerType) == "L";
          var replace = before || after ? "L" : "R";
          for (var j = i; j < end; ++j) types[j] = replace;
          i = end - 1;
        }
      }

      // Here we depart from the documented algorithm, in order to avoid
      // building up an actual levels array. Since there are only three
      // levels (0, 1, 2) in an implementation that doesn't take
      // explicit embedding into account, we can build up the order on
      // the fly, without following the level-based algorithm.
      var order = [], m;
      for (var i = 0; i < len;) {
        if (countsAsLeft.test(types[i])) {
          var start = i;
          for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}
          order.push({from: start, to: i, level: 0});
        } else {
          var pos = i, at = order.length;
          for (++i; i < len && types[i] != "L"; ++i) {}
          for (var j = pos; j < i;) {
            if (countsAsNum.test(types[j])) {
              if (pos < j) order.splice(at, 0, {from: pos, to: j, level: 1});
              var nstart = j;
              for (++j; j < i && countsAsNum.test(types[j]); ++j) {}
              order.splice(at, 0, {from: nstart, to: j, level: 2});
              pos = j;
            } else ++j;
          }
          if (pos < i) order.splice(at, 0, {from: pos, to: i, level: 1});
        }
      }
      if (order[0].level == 1 && (m = str.match(/^\s+/))) {
        order[0].from = m[0].length;
        order.unshift({from: 0, to: m[0].length, level: 0});
      }
      if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
        lst(order).to -= m[0].length;
        order.push({from: len - m[0].length, to: len, level: 0});
      }
      if (order[0].level != lst(order).level)
        order.push({from: len, to: len, level: order[0].level});

      return order;
    };
  })();

  // THE END

  CodeMirror.version = "3.15.0";

  return CodeMirror;
})();
plugin-fw/assets/js/yith-dashboard.min.js000064400000001153151327614500014420 0ustar00!function(i){i(".yith-last-changelog").click(function(o){o.preventDefault();var t=i(this).data("changelogid"),a=i("#"+t),e=i(this).data("plugininfo"),n={};n[yith_dashboard.buttons.close]=function(){i(this).dialog("close")},a.dialog({title:e,dialogClass:"wp-dialog",autoOpen:!1,draggable:!1,width:"auto",modal:!0,resizable:!1,closeOnEscape:!0,position:{my:"center",at:"center",of:window},buttons:n,show:{effect:"blind",duration:1e3},open:function(){i(".ui-widget-overlay").bind("click",function(){a.dialog("close")})},create:function(){i(".ui-dialog-titlebar-close").addClass("ui-button")}}),a.dialog("open")})}(jQuery);plugin-fw/assets/js/yit-plugin-panel.js000064400000021461151327614500014136 0ustar00/**
 * This file belongs to the YIT Plugin Framework.
 *
 * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl-3.0.txt
 */

jQuery( function ( $ ) {
	// Handle dependencies.
	function dependencies_handler( id, deps, values, type ) {
		var result = true;
		if ( typeof ( deps ) == 'string' ) {
			if ( deps.substr( 0, 6 ) === ':radio' ) {
				deps = deps + ':checked';
			}

			var depsOn     = $( deps ),
				depsOnType = depsOn.attr( 'type' ),
				val        = depsOn.val();

			switch ( depsOnType ) {
				case 'checkbox':
					val = depsOn.is( ':checked' ) ? 'yes' : 'no';
					break;
				case 'radio':
					val = depsOn.find( 'input[type="radio"]' ).filter( ':checked' ).val();
					break;
			}

			values = values.split( ',' );

			for ( var i = 0; i < values.length; i++ ) {
				if ( val != values[ i ] ) {
					result = false;
				} else {
					result = true;
					break;
				}
			}
		}

		var $current_field     = $( id ),
			$current_container = $( id + '-container' ).closest( 'tr' ); // container for YIT Plugin Panel

		if ( $current_container.length < 1 ) {
			// container for YIT Plugin Panel WooCommerce
			$current_container = $current_field.closest( '.yith-plugin-fw-panel-wc-row, .yith-toggle-content-row' );
		}

		var types = type.split( '-' ), j;
		for ( j in types ) {
			var current_type = types[ j ];

			if ( !result ) {
				switch ( current_type ) {
					case 'disable':
						$current_container.addClass( 'yith-disabled' );
						$current_field.attr( 'disabled', true );
						break;
					case 'hide':
					case 'hideNow':
						$current_container.hide();
						break;
					case 'hideme':
						$current_field.hide();
						break;
					case 'fadeInOut':
					case 'fadeOut':
						$current_container.hide( 500 );
						break;
					case 'fadeIn':
					default:
						$current_container.hide();
				}
			} else {
				switch ( current_type ) {
					case 'disable':
						$current_container.removeClass( 'yith-disabled' );
						$current_field.attr( 'disabled', false );
						break;
					case 'hide':
					case 'hideNow':
						$current_container.show();
						break;
					case 'hideme':
						$current_field.show();
						break;
					case 'fadeOut':
						$current_container.show();
						break;
					case 'fadeInOut':
					case 'fadeIn':
					default:
						$current_container.show( 500 );
				}
			}
		}
	}

	function init_dependencies() {
		$( '[data-dep-target]:not( .deps-initialized )' ).each( function () {
			var t = $( this );

			if ( t.closest( '.metaboxes-tab' ).length ) {
				// Let meta-boxes handle their own deps.
				return;
			}

			// init field deps
			t.addClass( 'deps-initialized' );

			var field = '#' + t.data( 'dep-target' ),
				dep   = '#' + t.data( 'dep-id' ),
				value = t.data( 'dep-value' ),
				type  = t.data( 'dep-type' );

			$( dep ).on( 'change', function () {
				dependencies_handler( field, dep, value.toString(), type );
			} ).trigger( 'change' );
		} );
	}

	init_dependencies();
	// re-init deps after an add toggle action
	$( document ).on( 'yith-add-box-button-toggle', init_dependencies );

	//connected list
	$( '.rm_connectedlist' ).each( function () {
		var ul       = $( this ).find( 'ul' );
		var input    = $( this ).find( ':hidden' );
		var sortable = ul.sortable( {
										connectWith: ul,
										update     : function ( event, ui ) {
											var value = {};

											ul.each( function () {
												var options = {};

												$( this ).children().each( function () {
													options[ $( this ).data( 'option' ) ] = $( this ).text();
												} );

												value[ $( this ).data( 'list' ) ] = options;
											} );

											input.val( ( JSON.stringify( value ) ).replace( /[\\"']/g, '\\$&' ).replace( /\u0000/g, '\\0' ) );
										}
									} ).disableSelection();
	} );

	//google analytics generation
	$( function () {
		$( '.google-analytic-generate' ).click( function () {
			var editor   = $( '#' + $( this ).data( 'textarea' ) ).data( 'codemirrorInstance' );
			var gatc     = $( '#' + $( this ).data( 'input' ) ).val();
			var basename = $( this ).data( 'basename' );

			var text = "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";
			text += "(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n";
			text += "m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n";
			text += "})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n";
			text += "ga('create', '" + gatc + "', '" + basename + "');\n";
			text += "ga('send', 'pageview');\n";
			editor.replaceRange(
				text,
				editor.getCursor( 'start' ),
				editor.getCursor( 'end' )
			);
		} );
	} );


	// Prevent the WC message for changes when leaving the panel page
	$( '.yith-plugin-fw-panel .woo-nav-tab-wrapper' ).removeClass( 'woo-nav-tab-wrapper' ).addClass( 'yith-nav-tab-wrapper' );

	var wrap    = $( '.wrap.yith-plugin-ui' ).first(),
		notices = $( 'div.updated, div.error, div.notice' );

	// Prevent moving notices into the wrapper
	notices.addClass( 'inline' );
	if ( wrap.length ) {
		wrap.prepend( notices );
	}


	// Additional wrapping just in case 'wrap' div is placed within a sub-tab and it's not already wrapped twice.
	// TODO: Deprecated usage, it'll be removed, since also custom panels should use the automatic-wrapping through 'show_container' param.
	( function () {
		var active_subnav = $( '.yith-nav-sub-tab.nav-tab-active' ),
			subnav_wrap   = $( '.yith-plugin-fw-wp-page__sub-tab-wrap' );

		if ( active_subnav.length && !subnav_wrap.length ) {
			var mainWrapper = $( '.yith-plugin-fw-wp-page-wrapper' );
			if ( !mainWrapper.length ) {
				mainWrapper = $( '#wpbody-content > .yith-plugin-ui' );
			}

			if ( mainWrapper ) {
				var defaultWrap = mainWrapper.find( '.yit-admin-panel-content-wrap' ); // at first, search for default wrap.
				if ( defaultWrap.length ) {
					defaultWrap.addClass( 'has-subnav' );
				} else {
					// try to wrap a generic wrap div in main wrapper
					mainWrapper.find( '.wrap' ).wrap( '<div class="yith-plugin-fw-wp-page__sub-tab-wrap"></div>' );
				}
			}
		}
	} )();

	// Float save button.
	( function () {
		var floatSaveButton = $( '#yith-plugin-fw-float-save-button' ),
			mainForm        = $( '#plugin-fw-wc' ),
			saveButton      = document.querySelector( '#main-save-button' );

		function updateValuesForSpecialEditors() {
			if ( 'tinyMCE' in window && 'triggerSave' in window.tinyMCE ) {
				// Trigger saving to serialize the correct value for WP Editors.
				window.tinyMCE.triggerSave();
			}

			// Trigger saving to serialize the correct value for each Codemirror Editor.
			$( '.codemirror.codemirror--initialized' ).each( function () {
				var editor = $( this ).data( 'codemirrorInstance' ) || false;
				if ( editor && 'codemirror' in editor ) {
					editor.codemirror.save();
				}
			} );
		}

		function checkButtonPosition() {
			if ( isInViewport( saveButton ) ) {
				floatSaveButton.removeClass( 'visible' );
			} else {
				floatSaveButton.addClass( 'visible' );
			}
		}

		function isInViewport( el ) {
			var rect     = el.getBoundingClientRect(),
				viewport = {
					width : window.innerWidth || document.documentElement.clientWidth,
					height: window.innerHeight || document.documentElement.clientHeight
				};
			return (
				rect.top >= 0 &&
				rect.left >= 0 &&
				rect.top <= viewport.height &&
				rect.left <= viewport.width
			);
		}

		if ( floatSaveButton.length > 0 && mainForm.length > 0 ) {
			checkButtonPosition();
			document.addEventListener( 'scroll', checkButtonPosition, { passive: true } );

			$( document ).on( 'click', '#yith-plugin-fw-float-save-button', function ( e ) {
				e.preventDefault();

				updateValuesForSpecialEditors();

				floatSaveButton.block(
					{
						message   : null,
						overlayCSS: {
							background: 'transparent',
							opacity   : 0.6
						}
					}
				);
				$.post( document.location.href, mainForm.serialize() )
					.done( function ( response ) {
						floatSaveButton.unblock()
							.addClass( 'green' )
							.fadeOut( 300 )
							.html( '<i class="yith-icon yith-icon-check"></i>' + floatSaveButton.data( 'saved-label' ) )
							.fadeIn( 300 )
							.delay( 2500 )
							.queue(
								function ( next ) {
									floatSaveButton.fadeOut(
										500,
										function () {
											$( this ).removeClass( 'green' );
											$( this ).html( '<i class="yith-icon yith-icon-save"></i>' + $( this ).data( 'default-label' ) ).fadeIn( 500 );
										}
									);
									next();
								} );

						// Prevent WooCommerce warning for changes without saving.
						window.onbeforeunload = null;

						$( document ).trigger( 'yith-plugin-fw-float-save-button-after-saving', [response] );
					} );
			} )
		}
	} )();

} );
plugin-fw/assets/js/yith-update-plugins.min.js000064400000001466151327614500015441 0ustar00!function(a){a(document).on("click","a.yith-update-link",function(e){var t=a(this),n=t.parent("p");e.preventDefault(),a.ajax({type:"POST",url:yith_plugin_fw.ajaxurl,data:{action:"update-plugin",plugin:t.data("plugin"),slug:t.data("slug"),name:t.data("name"),_ajax_nonce:yith_plugin_fw.ajax_nonce},beforeSend:function(){n.text(yith_plugin_fw.l10n.updating.replace("%s",t.data("name"))),n.addClass("yith-updating")},success:function(a){n.removeClass("yith-updating").addClass("yith-updated");var e=n.parent("div");e.removeClass("notice-warning"),result_text="",!0===a.success?(e.addClass("notice-success updated-message").removeClass("update-message"),result_text=yith_plugin_fw.l10n.updated):(e.addClass("notice-error"),result_text=yith_plugin_fw.l10n.failed),n.text(result_text.replace("%s",t.data("name")))}})})}(jQuery);plugin-fw/assets/js/yith-dashboard.js000064400000002724151327614500013643 0ustar00(function ($) {
    // bind a button or a link to open the dialog
    $('.yith-last-changelog').click(function(e) {
        e.preventDefault();
        var inlineId = $( this ).data( 'changelogid' ),
            inlineModal = $('#' + inlineId),
            plugininfo = $( this ).data( 'plugininfo' ),
            b = {},
            close_function = function() { $( this ).dialog( "close" ); };

        b[yith_dashboard.buttons.close] = close_function;

        // initalise the dialog
        inlineModal.dialog({
            title: plugininfo,
            dialogClass: 'wp-dialog',
            autoOpen: false,
            draggable: false,
            width: 'auto',
            modal: true,
            resizable: false,
            closeOnEscape: true,
            position: {
                my: "center",
                at: "center",
                of: window
            },
            buttons: b,
            show: {
                effect: "blind",
                duration: 1000
            },
            open: function () {
                // close dialog by clicking the overlay behind it
                $('.ui-widget-overlay').bind('click', function(){
                    inlineModal.dialog('close');
                })
            },
            create: function () {
                // style fix for WordPress admin
                $('.ui-dialog-titlebar-close').addClass('ui-button');
            },
        });

        inlineModal.dialog('open');
    });
})(jQuery);plugin-fw/assets/js/wp-pages.min.js000064400000003160151327614500013241 0ustar00jQuery(function(e){var t=e(".yith-plugin-fw-wp-page-wrapper"),i=e("div.updated, div.error, div.notice").not("#message"),n=e("div#message.updated");if(e(".yith-plugin-fw-wp-page-wrapper .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper"),i.addClass("inline"),t.length&&t.prepend(i),n.length&&(n.addClass("yith-plugin-fw-animate__appear-from-top").show(),n.on("click",".notice-dismiss",function(e){e.stopPropagation(),n.removeClass("yith-plugin-fw-animate__appear-from-top").slideUp(200)})),yith_plugin_fw_wp_pages.bulk_delete_confirmation_enabled){var a=!1;e(document).on("click","#doaction, #doaction2",function(t){var i=e(this),n=i.siblings("#bulk-action-selector-top, #bulk-action-selector-bottom");if("yith"in window&&"ui"in yith)if(a)a=!1;else{var _={};if(e("#the-list .check-column input[type=checkbox]:checked").length){switch(n.val()){case"trash":_.title=yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_title,_.message=yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_message,_.cancelButton=yith_plugin_fw_wp_pages.i18n.bulk_trash_cancel_button,_.confirmButton=yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_button,_.confirmButtonType="delete";break;case"delete":_.title=yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_title,_.message=yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_message,_.cancelButton=yith_plugin_fw_wp_pages.i18n.bulk_delete_cancel_button,_.confirmButton=yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_button,_.confirmButtonType="delete"}e.isEmptyObject(_)||(t.preventDefault(),_.closeAfterConfirm=!1,_.onConfirm=function(){a=!0,i.trigger("click")},yith.ui.confirm(_))}}})}});plugin-fw/assets/js/yith-fields.js000064400000101516151327614500013161 0ustar00/* globals yith_framework_fw_fields, wp */
( function ( $ ) {

	/* Upload */
	var uploadHandler = {
		selectors         : {
			imgPreview  : '.yith-plugin-fw-upload-img-preview',
			uploadButton: '.yith-plugin-fw-upload-button',
			imgUrl      : '.yith-plugin-fw-upload-img-url',
			resetButton : '.yith-plugin-fw-upload-button-reset'
		},
		onImageChange     : function () {
			var url        = $( this ).val(),
				imageRegex = new RegExp( "(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)" ),
				preview    = $( this ).parent().find( uploadHandler.selectors.imgPreview ).first();

			if ( preview.length < 1 ) {
				preview = $( this ).parent().parent().find( uploadHandler.selectors.imgPreview ).first();
			}

			if ( imageRegex.test( url ) ) {
				preview.html( '<img src="' + url + '" style="max-width:100px; max-height:100px;" />' );
			} else {
				preview.html( '' );
			}
		},
		onButtonClick     : function ( e ) {
			e.preventDefault();

			var button = $( this ),
				custom_uploader,
				id     = button.attr( 'id' ).replace( /-button$/, '' ).replace( /(\[|\])/g, '\\$1' );

			// If the uploader object has already been created, reopen the dialog
			if ( custom_uploader ) {
				custom_uploader.open();
				return;
			}

			var custom_uploader_states = [
				new wp.media.controller.Library(
					{
						library   : wp.media.query(),
						multiple  : false,
						title     : 'Choose Image',
						priority  : 20,
						filterable: 'uploaded'
					}
				)
			];

			// Create the media frame.
			custom_uploader = wp.media.frames.downloadable_file = wp.media(
				{
					// Set the title of the modal.
					title   : 'Choose Image',
					library : {
						type: ''
					},
					button  : {
						text: 'Choose Image'
					},
					multiple: false,
					states  : custom_uploader_states
				}
			);

			// When a file is selected, grab the URL and set it as the text field's value
			custom_uploader.on( 'select', function () {
				var attachment      = custom_uploader.state().get( 'selection' ).first().toJSON(),
					attachmentField = $( "#" + id + "-yith-attachment-id" );

				$( "#" + id ).val( attachment.url );
				// Save the id of the selected element to an element which name is the same with a suffix "-yith-attachment-id"
				if ( attachmentField.length ) {
					attachmentField.val( attachment.id );
				}
				uploadHandler.triggerImageChange();
			} );

			custom_uploader.open();
		},
		onResetClick      : function () {
			var button        = $( this ),
				id            = button.attr( 'id' ).replace( /(\[|\])/g, '\\$1' ),
				input_id      = button.attr( 'id' ).replace( /-button-reset$/, '' ).replace( /(\[|\])/g, '\\$1' ),
				default_value = $( '#' + id ).data( 'default' );

			$( "#" + input_id ).val( default_value );
			uploadHandler.triggerImageChange();
		},
		triggerImageChange: function () {
			$( uploadHandler.selectors.imgUrl ).trigger( 'change' );
		},
		initOnce          : function () {
			if ( typeof wp !== 'undefined' && typeof wp.media !== 'undefined' ) {
				$( document ).on( 'change', uploadHandler.selectors.imgUrl, uploadHandler.onImageChange );

				$( document ).on( 'click', uploadHandler.selectors.uploadButton, uploadHandler.onButtonClick );

				$( document ).on( 'click', uploadHandler.selectors.resetButton, uploadHandler.onResetClick );
			}
		}
	};

	uploadHandler.initOnce();

	var imageGallery = {
		selectors: {
			gallery       : '.yith-plugin-fw-image-gallery',
			notInitGallery: '.yith-plugin-fw-image-gallery:not(.yith-plugin-fw-image-gallery--initialized)',
			button        : '.yith-plugin-fw-image-gallery .image-gallery-button',
			slideWrapper  : 'ul.slides-wrapper'
		},
		initOnce : function () {
			if ( typeof wp !== 'undefined' && typeof wp.media !== 'undefined' ) {
				$( document ).on( 'click', imageGallery.selectors.button, function ( e ) {
					var button               = $( this ),
						gallery              = button.closest( imageGallery.selectors.gallery ),
						imageGalleryIDsField = gallery.find( '.image_gallery_ids' ),
						attachmentIDs        = imageGalleryIDsField.val(),
						wrapper              = gallery.find( 'ul.slides-wrapper' );

					// Create the media frame.
					var imageGalleryFrame = wp.media.frames.image_gallery = wp.media(
						{
							// Set the title of the modal.
							title : button.data( 'choose' ),
							button: {
								text: button.data( 'update' )
							},
							states: [
								new wp.media.controller.Library(
									{
										title     : button.data( 'choose' ),
										filterable: 'all',
										multiple  : true
									}
								)
							]
						}
					);

					// When an image is selected, run a callback.
					imageGalleryFrame.on( 'select', function () {
						var selection = imageGalleryFrame.state().get( 'selection' );
						selection.map( function ( attachment ) {
							attachment = attachment.toJSON();

							if ( attachment.id ) {
								attachmentIDs           = attachmentIDs ? attachmentIDs + "," + attachment.id : attachment.id;
								var attachmentImageData = attachment.sizes.thumbnail || attachment.sizes.medium || attachment.sizes.large || attachment.sizes.full;
								wrapper.append( '<li class="image" data-attachment_id="' + attachment.id + '"><img src="' + attachmentImageData.url + '"/><ul class="actions"><li><a href="#" class="delete" title="' + button.data( 'delete' ) + '">x</a></li></ul></li>' );
							}
						} );

						imageGalleryIDsField.val( attachmentIDs );
						imageGalleryIDsField.trigger( 'change' );
					} );

					imageGalleryFrame.open();

				} );
			}
		},
		init     : function () {
			if ( typeof wp !== 'undefined' && typeof wp.media !== 'undefined' ) {
				$( imageGallery.selectors.notInitGallery ).each( function () {
					$( this ).addClass( 'yith-plugin-fw-image-gallery--initialized' );
					var slideWrappers = $( this ).find( imageGallery.selectors.slideWrapper );

					// Image ordering
					slideWrappers.each( function () {
						var currentSlideWrapper = $( this );
						currentSlideWrapper.sortable( {
														  items               : 'li.image',
														  cursor              : 'move',
														  scrollSensitivity   : 40,
														  forcePlaceholderSize: true,
														  forceHelperSize     : false,
														  helper              : 'clone',
														  opacity             : 0.65,
														  start               : function ( event, ui ) {
															  ui.item.css( 'background-color', '#f6f6f6' );
														  },
														  stop                : function ( event, ui ) {
															  ui.item.removeAttr( 'style' );
														  },
														  update              : function ( event, ui ) {
															  var attachment_ids = '';

															  currentSlideWrapper.find( 'li.image' ).css( 'cursor', 'default' ).each( function () {
																  var attachment_id = $( this ).attr( 'data-attachment_id' );
																  attachment_ids    = attachment_ids + attachment_id + ',';
															  } );

															  currentSlideWrapper.closest( imageGallery.selectors.gallery ).find( '.image_gallery_ids' ).val( attachment_ids );
														  }
													  } );
					} );

					// Remove images
					slideWrappers.on( 'click', 'a.delete', function ( e ) {
						e.preventDefault();
						var _wrapper              = $( this ).closest( imageGallery.selectors.gallery ),
							_slideWrapper         = _wrapper.find( 'ul.slides-wrapper' ),
							_imageGalleryIDsField = _wrapper.find( '.image_gallery_ids' ),
							_attachmentIDs        = '';

						$( this ).closest( 'li.image' ).remove();

						_slideWrapper.find( 'li.image' ).css( 'cursor', 'default' ).each( function () {
							var attachment_id = $( this ).attr( 'data-attachment_id' );
							_attachmentIDs    = _attachmentIDs + attachment_id + ',';
						} );

						_imageGalleryIDsField.val( _attachmentIDs );
					} );
				} )
			}
		}
	};
	imageGallery.initOnce();


	// Codemirror.
	$( function () {
		var codemirrorInit = function () {
			if ( typeof wp !== 'undefined' && typeof wp.codeEditor !== 'undefined' ) {
				$( '.codemirror:not(.codemirror--initialized)' ).each( function () {
					var settings = $( this ).data( 'settings' ),
						editor   = wp.codeEditor.initialize( $( this ), settings );

					$( this ).addClass( 'codemirror--initialized' );
					$( this ).data( 'codemirrorInstance', editor );
				} );
			}
		};
		$( document ).on( 'yith-plugin-fw-codemirror-init', codemirrorInit ).trigger( 'yith-plugin-fw-codemirror-init' );
	} );

	var yith_fields_init = function () {
		var $datepicker  = $( '.yith-plugin-fw-datepicker:not(.yith-plugin-fw-datepicker--initialized)' ),
			$colorpicker = $( '.yith-plugin-fw-colorpicker:not(.yith-plugin-fw-colorpicker--initialized)' ),
			$sidebars    = $( '.yith-plugin-fw-sidebar-layout:not(.yith-plugin-fw-sidebar-layout--initialized)' ),
			$slider      = $( '.yith-plugin-fw-slider-container:not(.yith-plugin-fw-slider-container--initialized)' ),
			$icons       = $( '.yit-icons-manager-wrapper:not(.yit-icons-manager-wrapper--initialized)' );

		/* Datepicker */
		$datepicker.each( function () {
			$( this ).addClass( 'yith-plugin-fw-datepicker--initialized' );

			var currentDatePicker = $( this ),
				args              = currentDatePicker.data(),
				icon              = currentDatePicker.next( '.yith-icon-calendar' );

			// set animation to false to prevent style 'glitches' when removing class on closing
			args.showAnim   = false;
			args.beforeShow = function ( input, instance ) {
				instance.dpDiv.addClass( 'yith-plugin-fw-datepicker-div' );
			};
			args.onClose    = function ( selectedDate, instance ) {
				instance.dpDiv.removeClass( 'yith-plugin-fw-datepicker-div' );
			};

			currentDatePicker.datepicker( args );
			if ( icon ) {
				icon.on( 'click', function () {
					currentDatePicker.datepicker( 'show' );
				} )
			}
		} );

		/* Colorpicker */
		$colorpicker.each( function () {
			$( this ).addClass( 'yith-plugin-fw-colorpicker--initialized' );

			$( this ).wpColorPicker(
				{
					palettes: false,
					width   : 200,
					mode    : 'hsl',
					clear   : function () {
						var input = $( this );
						input.val( input.data( 'default-color' ) );
						input.trigger( 'change' );
					}
				}
			);

			var select_label = $( this ).data( 'variations-label' ),
				wrap_main1   = $( this ).closest( '.yith-plugin-fw-colorpicker-field-wrapper' ),
				wrap_main2   = $( this ).closest( '.yith-single-colorpicker' ),
				wrap1        = wrap_main1.find( '.wp-picker-input-wrap' ),
				wrap2        = wrap_main2.find( '.wp-picker-input-wrap' );

			wrap1.length && wrap_main1.find( 'a.wp-color-result' ).attr( 'title', select_label );
			wrap_main2.length && wrap_main2.find( 'a.wp-color-result' ).attr( 'title', select_label );

			if ( !wrap1.find( '.wp-picker-default-custom' ).length ) {
				var button = $( '<span/>' ).attr( {
													  class: 'wp-picker-default-custom'
												  } );
				wrap1.find( '.wp-picker-default' ).wrap( button );
			}

			if ( !wrap2.find( '.wp-picker-default-custom' ).length ) {
				var button = $( '<span/>' ).attr( {
													  class: 'wp-picker-default-custom'
												  } );
				wrap2.find( '.wp-picker-default' ).wrap( button );
			}
		} );

		/* Sidebars */
		$sidebars.each( function () {
			$( this ).addClass( 'yith-plugin-fw-sidebar-layout--initialized' );
			var $images = $( this ).find( 'img' );
			$images.on( 'click', function () {
				var $container = $( this ).closest( '.yith-plugin-fw-sidebar-layout' ),
					$left      = $container.find( '.yith-plugin-fw-sidebar-layout-sidebar-left-container' ),
					$right     = $container.find( '.yith-plugin-fw-sidebar-layout-sidebar-right-container' ),
					type       = $( this ).data( 'type' );

				$( this ).parent().children( ':radio' ).attr( 'checked', false );
				$( this ).prev( ':radio' ).attr( 'checked', true );

				if ( typeof type != 'undefined' ) {
					switch ( type ) {
						case 'left':
							$left.show();
							$right.hide();
							break;
						case 'right':
							$right.show();
							$left.hide();
							break;
						case 'double':
							$left.show();
							$right.show();
							break;
						default:
							$left.hide();
							$right.hide();
							break;
					}
				}
			} );
		} );

		/* Slider */
		$slider.each( function () {
			$( this ).addClass( 'yith-plugin-fw-slider-container--initialized' );
			var theSlider = $( this ).find( '.ui-slider-horizontal' ),
				val       = theSlider.data( 'val' ),
				minValue  = theSlider.data( 'min' ),
				maxValue  = theSlider.data( 'max' ),
				step      = theSlider.data( 'step' ),
				labels    = theSlider.data( 'labels' );

			theSlider.slider( {
								  value: val,
								  min  : minValue,
								  max  : maxValue,
								  range: 'min',
								  step : step,

								  create: function () {
									  $( this ).find( '.ui-slider-handle' ).text( $( this ).slider( "value" ) );
								  },


								  slide: function ( event, ui ) {
									  $( this ).find( 'input' ).val( ui.value ).trigger( 'change' );
									  $( this ).find( '.ui-slider-handle' ).text( ui.value );
									  $( this ).siblings( '.feedback' ).find( 'strong' ).text( ui.value + labels );
								  }
							  } );
		} );

		$icons.each( function () {
			$( this ).addClass( 'yit-icons-manager-wrapper--initialized' );
			var $container = $( this ),
				$preview   = $container.find( '.yit-icons-manager-icon-preview' ).first(),
				$text      = $container.find( '.yit-icons-manager-icon-text' );

			$container.on( 'click', '.yit-icons-manager-list li', function ( event ) {
				var $target = $( event.target ).closest( 'li' ),
					font    = $target.data( 'font' ),
					icon    = $target.data( 'icon' ),
					key     = $target.data( 'key' ),
					name    = $target.data( 'name' );

				$preview.attr( 'data-font', font );
				$preview.attr( 'data-icon', icon );
				$preview.attr( 'data-key', key );
				$preview.attr( 'data-name', name );

				$text.val( font + ':' + name );

				$container.find( '.yit-icons-manager-list li' ).removeClass( 'active' );
				$target.addClass( 'active' );
			} );

			$container.on( 'click', '.yit-icons-manager-action-set-default', function () {
				$container.find( '.yit-icons-manager-list li.default' ).trigger( 'click' );
			} );
		} );

		$( document ).find( '.ui-sortable .yith-toggle-elements' ).sortable(
			{
				cursor              : 'move',
				axis                : 'y',
				scrollSensitivity   : 40,
				forcePlaceholderSize: true,
				helper              : 'clone',

				stop: function ( event, ui ) {
					var keys       = jQuery( '.ui-sortable-handle' ),
						i          = 0,
						array_keys = new Array();
					for ( i = 0; i < keys.length; i++ ) {
						array_keys[ i ] = $( keys[ i ] ).data( 'item_key' );
					}
					if ( array_keys.length > 0 ) {
						var toggle = $( this ).closest( '.toggle-element' );
						toggle.saveToggleElement( null, array_keys );
					}
				}
			}
		);

		$( document.body ).trigger( 'wc-enhanced-select-init' );
		$( document.body ).trigger( 'yith-framework-enhanced-select-init' );
		$( document ).trigger( 'yith-plugin-fw-codemirror-init' );
		uploadHandler.triggerImageChange();
		imageGallery.init();
	};

	$( document ).on( 'yith_fields_init', yith_fields_init ).trigger( 'yith_fields_init' );

	/** Select Images */
	$( document ).on( 'click', '.yith-plugin-fw-select-images__item', function () {
		var item    = $( this ),
			key     = item.data( 'key' ),
			wrapper = item.closest( '.yith-plugin-fw-select-images__wrapper' ),
			items   = wrapper.find( '.yith-plugin-fw-select-images__item' ),
			select  = wrapper.find( 'select' ).first();

		if ( select.length ) {
			select.val( key ).trigger( 'yith_select_images_value_changed' ).trigger( 'change' );
			items.removeClass( 'yith-plugin-fw-select-images__item--selected' );
			item.addClass( 'yith-plugin-fw-select-images__item--selected' );
		}
	} );

	/* Select All - Deselect All */
	$( document ).on( 'click', '.yith-plugin-fw-select-all', function () {
		var $targetSelect = $( '#' + $( this ).data( 'select-id' ) );
		$targetSelect.find( 'option' ).prop( 'selected', true ).trigger( 'change' );
	} );

	$( document ).on( 'click', '.yith-plugin-fw-deselect-all', function () {
		var $targetSelect = $( '#' + $( this ).data( 'select-id' ) );
		$targetSelect.find( 'option' ).prop( 'selected', false ).trigger( 'change' );
	} );

	/* on-off */
	$( document ).on( 'click', '.yith-plugin-fw-onoff-container span', function () {
		var input    = $( this ).prev( 'input' ),
			disabled = input.prop( 'disabled' );

		if ( disabled ) {
			return;
		}

		input.trigger( 'click' );
	} );

	// Useful for triggering deps when clicking on field label.
	$( document ).on( 'click', '.yith-plugin-fw-onoff-container input', function ( e ) {
		if ( $( this ).is( ':checked' ) ) {
			$( this ).attr( 'value', 'yes' ).addClass( 'onoffchecked' );
		} else {
			$( this ).attr( 'value', 'no' ).removeClass( 'onoffchecked' );
		}
	} );


	/** Toggle **/


	//TOGGLE ELEMENT
	$.fn.saveToggleElement = function ( spinner, array_keys ) {
		var toggle      = $( this ),
			action      = 'yith_plugin_fw_save_toggle_element',
			formdata    = toggle.serializeToggleElement(),
			wrapper     = toggle.find( '.yith-toggle_wrapper' ),
			id          = wrapper.attr( 'id' ),
			current_tab = $.urlParam( 'tab' );

		formdata.append( 'security', wrapper.data( 'nonce' ) );

		if ( typeof array_keys != 'undefined' && array_keys.length > 0 ) {
			formdata.append( 'yith_toggle_elements_order_keys', array_keys );
		}

		if ( toggle.closest( '.metaboxes-tab.yith-plugin-ui' ).length ) {
			action              = 'yith_plugin_fw_save_toggle_element_metabox';
			post_id             = $( this ).closest( 'form#post' ).find( '#post_ID' ).val();
			yit_metaboxes_nonce = $( this ).closest( 'form#post' ).find( '#yit_metaboxes_nonce' ).val();
			metabox_tab         = $( this ).closest( '.tabs-panel' ).attr( 'id' );
			url                 = yith_framework_fw_fields.ajax_url +
								  '?action=' + action +
								  "&post_ID=" + post_id +
								  '&yit_metaboxes_nonce=' + yit_metaboxes_nonce +
								  "&toggle_id=" + id +
								  "&metabox_tab=" + metabox_tab;
		} else {
			url = yith_framework_fw_fields.admin_url + '?action=' + action + '&tab=' + current_tab + "&toggle_id=" + id;
		}

		$.ajax( {
					type       : "POST",
					url        : url,
					data       : formdata,
					contentType: false,
					processData: false,
					success    : function ( result ) {
						if ( spinner ) {
							spinner.removeClass( 'show' );
						}

						$( document ).trigger( 'yith_save_toggle_element_done', [result, toggle] );
					}
				} );
	};

	$.fn.serializeToggleElement = function () {
		var obj = $( this );
		/* ADD FILE TO PARAM AJAX */
		var formData = new FormData();
		var params   = $( obj ).find( ":input" ).serializeArray();

		$.each( params, function ( i, val ) {
			el_name = val.name;
			formData.append( val.name, val.value );
		} );

		return formData;
	};

	$.fn.formatToggleTitle = function () {
		var toggle_el = $( this ),
			fields    = toggle_el.find( ':input' ),
			title     = toggle_el.find( 'span.title' ).data( 'title_format' ),
			subtitle  = toggle_el.find( '.subtitle' ).data( 'subtitle_format' ),
			regExp    = new RegExp( "[^%%]+(?=[%%])", 'g' );

		if ( typeof title != 'undefined' ) {
			var res = title.match( regExp );
		}

		if ( typeof subtitle != 'undefined' ) {
			var ressub = subtitle.match( regExp );
		}

		$.each( fields, function ( i, field ) {
			if ( typeof $( field ).attr( 'id' ) != 'undefined' ) {
				$field_id    = $( field ).attr( 'id' );
				$field_array = $field_id.split( '_' );
				$field_array.pop();
				$field_id  = $field_array.join( '_' );
				$field_val = $( field ).val();

				if ( res != null && typeof res != 'undefined' && res.indexOf( $field_id ) !== -1 ) {
					title = title.replace( '%%' + $field_id + '%%', $field_val );
				}
				if ( ressub != null && typeof ressub != 'undefined' && ressub.indexOf( $field_id ) !== -1 ) {
					subtitle = subtitle.replace( '%%' + $field_id + '%%', $field_val );
				}
			}
		} );

		if ( '' !== title ) {
			toggle_el.find( 'span.title' ).html( title );
		}

		if ( '' !== subtitle ) {
			toggle_el.find( '.subtitle' ).html( subtitle );
		}

		$( document ).trigger( 'yith-toggle-element-item-title', [toggle_el] );
	};

	$.urlParam = function ( name ) {
		var results = new RegExp( '[\?&]' + name + '=([^&#]*)' )
			.exec( window.location.search );

		return ( results !== null ) ? results[ 1 ] || 0 : false;
	};

	$( document ).on( 'click', '.yith-toggle-title', function ( event ) {
		var _toggle  = $( event.target ),
			_section = _toggle.closest( '.yith-toggle-row' ),
			_content = _section.find( '.yith-toggle-content' );

		if ( _toggle.hasClass( 'yith-plugin-fw-onoff' ) || _toggle.hasClass( 'yith-icon-drag' ) ) {
			return false;
		}

		if ( _section.is( '.yith-toggle-row-opened' ) ) {
			_content.slideUp( 400 );
		} else {
			_content.slideDown( 400 );
		}
		_section.toggleClass( 'yith-toggle-row-opened' );
	} );

	/**Add new box toggle**/
	$( document ).on( 'click', '.yith-add-box-button', function ( event ) {
		event.preventDefault();
		var $this        = $( this ),
			target_id    = $this.data( 'box_id' ),
			closed_label = $this.data( 'closed_label' ),
			label        = $this.data( 'opened_label' ),
			id           = $this.closest( '.yith-toggle_wrapper' ).attr( 'id' ),
			template     = wp.template( 'yith-toggle-element-add-box-content-' + id );

		if ( '' !== target_id ) {
			$( '#' + target_id ).html( template( { index: 'box_id' } ) ).slideToggle();
			if ( closed_label !== '' ) {
				if ( $this.html() === closed_label ) {
					$this.html( label ).removeClass( 'closed' );
				} else {
					$this.html( closed_label ).addClass( 'closed' );
				}
			}

			$( document ).trigger( 'yith_fields_init' );
			$( document ).trigger( 'yith-add-box-button-toggle', [$this] );
		}
	} );

	$( document ).on( 'click', '.yith-add-box-buttons .yith-save-button', function ( event ) {

		event.preventDefault();
		var add_box        = $( this ).parents( '.yith-add-box' ),
			id             = $( this ).closest( '.yith-toggle_wrapper' ).attr( 'id' ),
			spinner        = add_box.find( '.spinner' ),
			toggle_element = $( this ).parents( '.toggle-element' ),
			fields         = add_box.find( ':input' ),
			counter        = 0,
			hidden_obj     = $( '<input type="hidden">' );

		toggle_element.find( '.yith-toggle-row' ).each( function () {
			var key = parseInt( $( this ).data( 'item_key' ) );
			if ( counter <= key ) {
				counter = key + 1;
			}
		} );

		hidden_obj.val( counter );

		$( document ).trigger( 'yith-toggle-change-counter', [hidden_obj, add_box] );

		counter       = hidden_obj.val();
		var template  = wp.template( 'yith-toggle-element-item-' + id ),
			toggle_el = $( template( { index: counter } ) );

		spinner.addClass( 'show' );

		$.each( fields, function ( i, field ) {
			if ( typeof $( field ).attr( 'id' ) !== 'undefined' ) {

				var _field_id  = $( field ).attr( 'id' ),
					_field_val = $( field ).val();

				if ( 'radio' === $( field ).attr( 'type' ) ) {
					_field_id = $( field ).closest( '.yith-plugin-fw-radio' ).attr( 'id' );
					_field_id = _field_id.replace( 'new_', '' ) + '_' + counter;
					_field_id = _field_id + '-' + _field_val;
				} else {
					_field_id = _field_id.replace( 'new_', '' ) + '_' + counter;
				}

				if ( $( field ).is( ':checked' ) ) {
					$( toggle_el ).find( '#' + _field_id ).prop( 'checked', true );
				}

				if ( $( field ).hasClass( 'yith-post-search' ) || $( field ).hasClass( 'yith-term-search' ) ) {
					$( toggle_el ).find( '#' + _field_id ).html( $( '#' + $( field ).attr( 'id' ) ).html() );
				}

				$( toggle_el ).find( '#' + _field_id ).val( _field_val );

			}

		} );

		$( toggle_el ).formatToggleTitle();
		var form_is_valid = $( '<input type="hidden">' ).val( 'yes' );
		$( document ).trigger( 'yith-toggle-element-item-before-add', [add_box, toggle_el, form_is_valid] );

		var delayInMilliseconds = 1000; //1 second
		setTimeout( function () {
			if ( form_is_valid.val() === 'yes' ) {
				$( toggle_element ).find( '.yith-toggle-elements' ).append( toggle_el );
				$( add_box ).find( '.yith-plugin-fw-datepicker' ).datepicker( 'destroy' );
				$( add_box ).html( '' );
				$( add_box ).prev( '.yith-add-box-button' ).trigger( 'click' );
				toggle_element.saveToggleElement();

				var delayInMilliseconds = 2000; //1 second
				setTimeout( function () {
					$( toggle_element ).find( '.highlight' ).removeClass( 'highlight' );
				}, delayInMilliseconds );


				$( document ).trigger( 'yith_fields_init' );
			}
		}, delayInMilliseconds );


	} );

	$( document ).on( 'click', '.yith-toggle-row .yith-save-button', function ( event ) {
		event.preventDefault();
		var toggle     = $( this ).closest( '.toggle-element' ),
			toggle_row = $( this ).closest( '.yith-toggle-row' ),
			spinner    = toggle_row.find( '.spinner' );
		toggle_row.formatToggleTitle();

		var form_is_valid = $( '<input type="hidden">' ).val( 'yes' );
		$( document ).trigger( 'yith-toggle-element-item-before-update', [toggle, toggle_row, form_is_valid] );
		if ( form_is_valid.val() === 'yes' ) {
			spinner.addClass( 'show' );
			toggle.saveToggleElement( spinner );
		}
	} );

	//register remove the dome and save the toggle
	$( document ).on( 'click', '.yith-toggle-row .yith-delete-button', function ( event ) {
		event.preventDefault();
		var toggle     = $( this ).closest( '.toggle-element' ),
			toggle_row = $( this ).closest( '.yith-toggle-row' );
		toggle_row.remove();
		toggle.saveToggleElement();
	} );

	//register onoff status
	$( document ).on( 'click', '.yith-toggle-onoff', function ( event ) {
		event.preventDefault();
		var toggle = $( this ).closest( '.toggle-element' );
		toggle.saveToggleElement();
	} );

	// Radio
	$( document ).on( 'click', '.yith-plugin-fw-radio input[type=radio]', function () {
		var _radioContainer = $( this ).closest( '.yith-plugin-fw-radio' ),
			_value          = $( this ).val();

		_radioContainer.val( _value ).data( 'value', _value ).trigger( 'change' );
	} );

	$( document.body ).on( 'yith-plugin-fw-init-radio', function () {
		$( '.yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)' ).each( function () {
			$( this ).find( 'input[type="radio"]' ).filter( '[value="' + $( this ).data( 'value' ) + '"]' ).click();
			$( this ).addClass( 'yith-plugin-fw-radio--initialized' );
		} );
	} ).trigger( 'yith-plugin-fw-init-radio' );

	// Password Eye field
	$( document ).on( 'click', '.yith-password-eye', function () {
		var $this = $( this ),
			inp   = $( this ).closest( '.yith-password-wrapper' ).find( 'input' );
		if ( inp.attr( 'type' ) === "password" ) {
			inp.attr( 'type', 'text' );
			$this.addClass( 'yith-password-eye-closed' );
		} else {
			inp.attr( 'type', 'password' );
			$this.removeClass( 'yith-password-eye-closed' );
		}
	} );

	/**
	 * Select2 - add class to stylize it with the new plugin-fw style
	 */
	$( document ).on( 'select2:open', function ( e ) {
		if ( $( e.target ).closest( '.yith-plugin-ui' ).length ) {
			$( '.select2-results' ).closest( '.select2-container' ).addClass( 'yith-plugin-fw-select2-container' );
		}
	} );

	/**
	 * Select2 - focus on search field when opened and the select is not multiple.
	 * For multiple select this is already handled by select2.
	 */
	$( document ).on( 'select2:open', function ( e ) {
		if ( !e.target.multiple ) {
			setTimeout(
				function () {
					document.querySelector( '.yith-plugin-fw-select2-container .select2-search__field' ).focus();
				},
				50
			)
		}
	} );


	/**
	 * Dimensions
	 */
	var fw_dimensions = {
		selectors   : {
			wrapper   : '.yith-plugin-fw-dimensions',
			units     : {
				wrapper      : '.yith-plugin-fw-dimensions__units',
				single       : '.yith-plugin-fw-dimensions__unit',
				value        : '.yith-plugin-fw-dimensions__unit__value',
				selectedClass: 'yith-plugin-fw-dimensions__unit--selected'
			},
			linked    : {
				button            : '.yith-plugin-fw-dimensions__linked',
				value             : '.yith-plugin-fw-dimensions__linked__value',
				wrapperActiveClass: 'yith-plugin-fw-dimensions--linked-active'
			},
			dimensions: {
				number: '.yith-plugin-fw-dimensions__dimension__number'
			}
		},
		init        : function () {
			var self = fw_dimensions;
			$( document ).on( 'click', self.selectors.units.single, self.unitChange );
			$( document ).on( 'click', self.selectors.linked.button, self.linkedChange );
			$( document ).on( 'change keyup', self.selectors.dimensions.number, self.numberChange );
		},
		unitChange  : function ( e ) {
			var unit       = $( this ).closest( fw_dimensions.selectors.units.single ),
				wrapper    = unit.closest( fw_dimensions.selectors.units.wrapper ),
				units      = wrapper.find( fw_dimensions.selectors.units.single ),
				valueField = wrapper.find( fw_dimensions.selectors.units.value ).first(),
				value      = unit.data( 'value' );

			units.removeClass( fw_dimensions.selectors.units.selectedClass );
			unit.addClass( fw_dimensions.selectors.units.selectedClass );
			valueField.val( value ).trigger( 'change' );
		},
		linkedChange: function () {
			var button      = $( this ).closest( fw_dimensions.selectors.linked.button ),
				mainWrapper = button.closest( fw_dimensions.selectors.wrapper ),
				valueField  = button.find( fw_dimensions.selectors.linked.value ),
				value       = valueField.val();

			if ( 'yes' === value ) {
				mainWrapper.removeClass( fw_dimensions.selectors.linked.wrapperActiveClass );
				valueField.val( 'no' );
			} else {
				mainWrapper.addClass( fw_dimensions.selectors.linked.wrapperActiveClass );
				valueField.val( 'yes' );

				mainWrapper.find( fw_dimensions.selectors.dimensions.number ).first().trigger( 'change' );
			}
		},
		numberChange: function ( e ) {
			var number      = $( this ).closest( fw_dimensions.selectors.dimensions.number ),
				mainWrapper = number.closest( fw_dimensions.selectors.wrapper );
			if ( mainWrapper.hasClass( fw_dimensions.selectors.linked.wrapperActiveClass ) ) {
				var numbers = mainWrapper.find( fw_dimensions.selectors.dimensions.number );

				numbers.val( number.val() );
			}
		}
	};
	fw_dimensions.init();

	/**
	 * Copy to clip-board
	 */
	var clearSelection = function () {
		var selection = 'getSelection' in window ? window.getSelection() : false;
		if ( selection ) {
			if ( 'empty' in selection ) {  // Chrome.
				selection.empty();
			} else if ( 'removeAllRanges' in selection ) {  // Firefox.
				selection.removeAllRanges();
			}
		} else if ( 'selection' in document ) {  // IE.
			document.selection.empty();
		}
	}

	$( document ).on( 'click', '.yith-plugin-fw-copy-to-clipboard__copy', function () {
		var wrap    = $( this ).closest( '.yith-plugin-fw-copy-to-clipboard' ),
			input   = wrap.find( '.yith-plugin-fw-copy-to-clipboard__field' ),
			tip     = wrap.find( '.yith-plugin-fw-copy-to-clipboard__tip' ),
			timeout = wrap.data( 'tip-timeout' );

		timeout && clearTimeout( timeout );

		input.select();
		document.execCommand( 'copy' );
		clearSelection();

		tip.fadeIn( 400 );

		// Use timeout instead of delay to prevent issues with multiple clicks.
		timeout = setTimeout( function () {
			tip.fadeOut( 400 );
		}, 1500 );
		wrap.data( 'tip-timeout', timeout );
	} );

	/**
	 * Action buttons
	 */
	var actionButtons = {
		init           : function () {
			$( document ).on( 'click', '.yith-plugin-fw__action-button--has-menu', actionButtons.open );
			$( document ).on( 'click', '.yith-plugin-fw__action-button__menu', actionButtons.stopPropagation );
			$( document ).on( 'click', actionButtons.closeAll );
		},
		closeAll       : function () {
			$( '.yith-plugin-fw__action-button--opened' ).removeClass( 'yith-plugin-fw__action-button--opened' );
		},
		open           : function ( e ) {
			var button    = $( this ).closest( '.yith-plugin-fw__action-button' ),
				wasOpened = button.hasClass( 'yith-plugin-fw__action-button--opened' );
			e.preventDefault();
			e.stopPropagation();

			actionButtons.closeAll();

			if ( !wasOpened ) {
				button.addClass( 'yith-plugin-fw__action-button--opened' );
			}
		},
		stopPropagation: function ( e ) {
			e.stopPropagation();
		}
	};
	actionButtons.init();

	/**
	 * Require confirmation link
	 */
	$( document ).on( 'click', 'a.yith-plugin-fw__require-confirmation-link', function ( e ) {
		var link = $( this ).closest( 'a.yith-plugin-fw__require-confirmation-link' ),
			url  = link.attr( 'href' );

		if ( url && '#' !== url ) {
			e.preventDefault();
			e.stopPropagation();
			if ( 'yith' in window && 'ui' in yith ) {
				var dataForOptions = [
						'title',
						'message',
						'confirmButtonType',
						'cancelButton',
						'confirmButton'
					],
					options        = {}, i;

				for ( i in dataForOptions ) {
					var key   = dataForOptions[ i ],
						value = link.data( key );

					if ( typeof value !== 'undefined' ) {
						options[ key ] = value;
					}
				}

				options.onConfirm = function () {
					window.location.href = url;
				};

				options.closeAfterConfirm = false;

				yith.ui.confirm( options );

			}
		}

	} );

	/**
	 * Tips
	 */
	$( document ).on( 'yith-plugin-fw-tips-init', function () {
		$( '.yith-plugin-fw__tips' ).tipTip(
			{
				attribute: 'data-tip',
				fadeIn   : 50,
				fadeOut  : 50,
				delay    : 200
			}
		);
	} ).trigger( 'yith-plugin-fw-tips-init' );

} )( jQuery );
plugin-fw/assets/js/javascript-md5/md5.min.js000064400000007266151327614500015047 0ustar00!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<<t|n>>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e<n.length;e+=16)i=l,a=g,d=v,h=m,g=f(g=f(g=f(g=f(g=c(g=c(g=c(g=c(g=u(g=u(g=u(g=u(g=o(g=o(g=o(g=o(g,v=o(v,m=o(m,l=o(l,g,v,m,n[e],7,-680876936),g,v,n[e+1],12,-389564586),l,g,n[e+2],17,606105819),m,l,n[e+3],22,-1044525330),v=o(v,m=o(m,l=o(l,g,v,m,n[e+4],7,-176418897),g,v,n[e+5],12,1200080426),l,g,n[e+6],17,-1473231341),m,l,n[e+7],22,-45705983),v=o(v,m=o(m,l=o(l,g,v,m,n[e+8],7,1770035416),g,v,n[e+9],12,-1958414417),l,g,n[e+10],17,-42063),m,l,n[e+11],22,-1990404162),v=o(v,m=o(m,l=o(l,g,v,m,n[e+12],7,1804603682),g,v,n[e+13],12,-40341101),l,g,n[e+14],17,-1502002290),m,l,n[e+15],22,1236535329),v=u(v,m=u(m,l=u(l,g,v,m,n[e+1],5,-165796510),g,v,n[e+6],9,-1069501632),l,g,n[e+11],14,643717713),m,l,n[e],20,-373897302),v=u(v,m=u(m,l=u(l,g,v,m,n[e+5],5,-701558691),g,v,n[e+10],9,38016083),l,g,n[e+15],14,-660478335),m,l,n[e+4],20,-405537848),v=u(v,m=u(m,l=u(l,g,v,m,n[e+9],5,568446438),g,v,n[e+14],9,-1019803690),l,g,n[e+3],14,-187363961),m,l,n[e+8],20,1163531501),v=u(v,m=u(m,l=u(l,g,v,m,n[e+13],5,-1444681467),g,v,n[e+2],9,-51403784),l,g,n[e+7],14,1735328473),m,l,n[e+12],20,-1926607734),v=c(v,m=c(m,l=c(l,g,v,m,n[e+5],4,-378558),g,v,n[e+8],11,-2022574463),l,g,n[e+11],16,1839030562),m,l,n[e+14],23,-35309556),v=c(v,m=c(m,l=c(l,g,v,m,n[e+1],4,-1530992060),g,v,n[e+4],11,1272893353),l,g,n[e+7],16,-155497632),m,l,n[e+10],23,-1094730640),v=c(v,m=c(m,l=c(l,g,v,m,n[e+13],4,681279174),g,v,n[e],11,-358537222),l,g,n[e+3],16,-722521979),m,l,n[e+6],23,76029189),v=c(v,m=c(m,l=c(l,g,v,m,n[e+9],4,-640364487),g,v,n[e+12],11,-421815835),l,g,n[e+15],16,530742520),m,l,n[e+2],23,-995338651),v=f(v,m=f(m,l=f(l,g,v,m,n[e],6,-198630844),g,v,n[e+7],10,1126891415),l,g,n[e+14],15,-1416354905),m,l,n[e+5],21,-57434055),v=f(v,m=f(m,l=f(l,g,v,m,n[e+12],6,1700485571),g,v,n[e+3],10,-1894986606),l,g,n[e+10],15,-1051523),m,l,n[e+1],21,-2054922799),v=f(v,m=f(m,l=f(l,g,v,m,n[e+8],6,1873313359),g,v,n[e+15],10,-30611744),l,g,n[e+6],15,-1560198380),m,l,n[e+13],21,1309151649),v=f(v,m=f(m,l=f(l,g,v,m,n[e+4],6,-145523070),g,v,n[e+11],10,-1120210379),l,g,n[e+2],15,718787259),m,l,n[e+9],21,-343485551),l=t(l,i),g=t(g,a),v=t(v,d),m=t(m,h);return[l,g,v,m]}function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;var e=8*n.length;for(t=0;t<e;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<<t%32;return r}function h(n){return a(i(d(n),8*n.length))}function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length>16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+="0123456789abcdef".charAt(t>>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this);
//# sourceMappingURL=md5.min.js.mapplugin-fw/assets/js/yit-wp-pointer.js000064400000006215151327614500013647 0ustar00jQuery( function($) {
    var pointers    = custom_pointer.pointers[0],
        options     = pointers.options,
        target      = $(pointers.target),
        pointer_id  = pointers.pointer_id;

    $(target).find('.wp-submenu li a').each(function () {

            var t = $(this),
                href = t.attr('href');

            href = href.replace('admin.php?page=', '');

            if( href == pointer_id ){

                var selected_plugin_row = t.add( target ),
                    top_level_menu      = target.find( pointers.target.replace( '#', '.' ) );

                target.toggleClass('wp-no-current-submenu wp-menu-open wp-has-current-submenu');

                t.pointer({
                    pointerClass: 'yit-wp-pointer',
                    content : options.content,
                    position: options.position,
                    open    : function () {
                        selected_plugin_row.toggleClass( 'yit-pointer-selected-row' );
                        top_level_menu.addClass( 'yit-pointer' );
                    },


                    close   : function () {
                        target.toggleClass('wp-no-current-submenu wp-menu-open wp-has-current-submenu');
                        selected_plugin_row.toggleClass( 'yit-pointer-selected-row' );
                        top_level_menu.removeClass( 'yit-pointer' );

                        $.ajax({
                            type   : 'POST',
                            url    : ajaxurl,
                            data   : {
                                "action" : "dismiss-wp-pointer",
                                "pointer": pointer_id
                            },
                            success: function (response) {
                            }
                        });

                    }
                }).pointer('open');
            } else if( 'yith_default_pointer' == pointer_id ) {

                 var selected_plugin_row = t.add( target ),
                     top_level_menu      = target.find( pointers.target.replace( '#', '.' )),
                     yit_plugins         = $( pointers.target );

                yit_plugins.addClass('wp-has-current-submenu');

                top_level_menu.pointer({
                    pointerClass: 'yit-wp-pointer',
                    content : options.content,
                    position: options.position,

                    open    : function () {
                        yit_plugins.addClass( 'yit-pointer-selected-row' );
                    },

                    close   : function () {
                        yit_plugins.removeClass( 'yit-pointer-selected-row wp-has-current-submenu' );

                        $.ajax({
                            type   : 'POST',
                            url    : ajaxurl,
                            data   : {
                                "action" : "dismiss-wp-pointer",
                                "pointer": pointer_id
                            },
                            success: function (response) {
                            }
                        });
                    }
                }).pointer('open');
            }
        });
});plugin-fw/assets/js/yith-promo.min.js000064400000000511151327614500013622 0ustar00!function(i){i(document).on("click",".notice-dismiss",function(){var e=i(this).parent("div.yith-notice-is-dismissible"),t=e.attr("id");if(void 0!==t){var s="hide_"+t,n=e.data("expiry"),o=new Date(n);o.setUTCHours(23),o.setUTCMinutes(59),o.setUTCSeconds(59),document.cookie=s+"=yes;expires="+o.toUTCString()+";path=/"}})}(jQuery);plugin-fw/assets/js/jquery-tiptip/jquery.tipTip.js000064400000015266151327614500016363 0ustar00 /*
 * TipTip
 * Copyright 2010 Drew Wilson
 * www.drewwilson.com
 * code.drewwilson.com/entry/tiptip-jquery-plugin
 *
 * Version 1.3   -   Updated: Mar. 23, 2010
 *
 * This Plug-In will create a custom tooltip to replace the default
 * browser tooltip. It is extremely lightweight and very smart in
 * that it detects the edges of the browser window and will make sure
 * the tooltip stays within the current window size. As a result the
 * tooltip will adjust itself to be displayed above, below, to the left
 * or to the right depending on what is necessary to stay within the
 * browser window. It is completely customizable as well via CSS.
 *
 * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

(function($){
	$.fn.tipTip = function(options) {
		var defaults = {
			activation: "hover",
			keepAlive: false,
			maxWidth: "200px",
			edgeOffset: 3,
			defaultPosition: "bottom",
			delay: 400,
			fadeIn: 200,
			fadeOut: 200,
			attribute: "title",
			content: false, // HTML or String to fill TipTIp with
		  	enter: function(){},
		  	exit: function(){}
	  	};
	 	var opts = $.extend(defaults, options);

	 	// Setup tip tip elements and render them to the DOM
	 	if($("#tiptip_holder").length <= 0){
	 		var tiptip_holder = $('<div id="tiptip_holder" style="max-width:'+ opts.maxWidth +';"></div>');
			var tiptip_content = $('<div id="tiptip_content"></div>');
			var tiptip_arrow = $('<div id="tiptip_arrow"></div>');
			$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')));
		} else {
			var tiptip_holder = $("#tiptip_holder");
			var tiptip_content = $("#tiptip_content");
			var tiptip_arrow = $("#tiptip_arrow");
		}

		return this.each(function(){
			var org_elem = $(this);
			if(opts.content){
				var org_title = opts.content;
			} else {
				var org_title = org_elem.attr(opts.attribute);
			}
			if(org_title != ""){
				if(!opts.content){
					org_elem.removeAttr(opts.attribute); //remove original Attribute
				}
				var timeout = false;

				if(opts.activation == "hover"){
					org_elem.hover(function(){
						active_tiptip();
					}, function(){
						if(!opts.keepAlive || !tiptip_holder.is(':hover')){
							deactive_tiptip();
						}
					});
					if(opts.keepAlive){
						tiptip_holder.hover(function(){}, function(){
							deactive_tiptip();
						});
					}
				} else if(opts.activation == "focus"){
					org_elem.focus(function(){
						active_tiptip();
					}).blur(function(){
						deactive_tiptip();
					});
				} else if(opts.activation == "click"){
					org_elem.click(function(){
						active_tiptip();
						return false;
					}).hover(function(){},function(){
						if(!opts.keepAlive){
							deactive_tiptip();
						}
					});
					if(opts.keepAlive){
						tiptip_holder.hover(function(){}, function(){
							deactive_tiptip();
						});
					}
				}

				function active_tiptip(){
					opts.enter.call(this);
					tiptip_content.html(org_title);
					tiptip_holder.hide().removeAttr("class").css("margin","0");
					tiptip_arrow.removeAttr("style");

					var top = parseInt(org_elem.offset()['top']);
					var left = parseInt(org_elem.offset()['left']);
					var org_width = parseInt(org_elem.outerWidth());
					var org_height = parseInt(org_elem.outerHeight());
					var tip_w = tiptip_holder.outerWidth();
					var tip_h = tiptip_holder.outerHeight();
					var w_compare = Math.round((org_width - tip_w) / 2);
					var h_compare = Math.round((org_height - tip_h) / 2);
					var marg_left = Math.round(left + w_compare);
					var marg_top = Math.round(top + org_height + opts.edgeOffset);
					var t_class = "";
					var arrow_top = "";
					var arrow_left = Math.round(tip_w - 12) / 2;

                    if(opts.defaultPosition == "bottom"){
                    	t_class = "_bottom";
                   	} else if(opts.defaultPosition == "top"){
                   		t_class = "_top";
                   	} else if(opts.defaultPosition == "left"){
                   		t_class = "_left";
                   	} else if(opts.defaultPosition == "right"){
                   		t_class = "_right";
                   	}

					var right_compare = (w_compare + left) < parseInt($(window).scrollLeft());
					var left_compare = (tip_w + left) > parseInt($(window).width());

					if((right_compare && w_compare < 0) || (t_class == "_right" && !left_compare) || (t_class == "_left" && left < (tip_w + opts.edgeOffset + 5))){
						t_class = "_right";
						arrow_top = Math.round(tip_h - 13) / 2;
						arrow_left = -12;
						marg_left = Math.round(left + org_width + opts.edgeOffset);
						marg_top = Math.round(top + h_compare);
					} else if((left_compare && w_compare < 0) || (t_class == "_left" && !right_compare)){
						t_class = "_left";
						arrow_top = Math.round(tip_h - 13) / 2;
						arrow_left =  Math.round(tip_w);
						marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5));
						marg_top = Math.round(top + h_compare);
					}

					var top_compare = (top + org_height + opts.edgeOffset + tip_h + 8) > parseInt($(window).height() + $(window).scrollTop());
					var bottom_compare = ((top + org_height) - (opts.edgeOffset + tip_h + 8)) < 0;

					if(top_compare || (t_class == "_bottom" && top_compare) || (t_class == "_top" && !bottom_compare)){
						if(t_class == "_top" || t_class == "_bottom"){
							t_class = "_top";
						} else {
							t_class = t_class+"_top";
						}
						arrow_top = tip_h;
						marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset));
					} else if(bottom_compare | (t_class == "_top" && bottom_compare) || (t_class == "_bottom" && !top_compare)){
						if(t_class == "_top" || t_class == "_bottom"){
							t_class = "_bottom";
						} else {
							t_class = t_class+"_bottom";
						}
						arrow_top = -12;
						marg_top = Math.round(top + org_height + opts.edgeOffset);
					}

					if(t_class == "_right_top" || t_class == "_left_top"){
						marg_top = marg_top + 5;
					} else if(t_class == "_right_bottom" || t_class == "_left_bottom"){
						marg_top = marg_top - 5;
					}
					if(t_class == "_left_top" || t_class == "_left_bottom"){
						marg_left = marg_left + 5;
					}
					tiptip_arrow.css({"margin-left": arrow_left+"px", "margin-top": arrow_top+"px"});
					tiptip_holder.css({"margin-left": marg_left+"px", "margin-top": marg_top+"px"}).attr("class","tip"+t_class);

					if (timeout){ clearTimeout(timeout); }
					timeout = setTimeout(function(){ tiptip_holder.stop(true,true).fadeIn(opts.fadeIn); }, opts.delay);
				}

				function deactive_tiptip(){
					opts.exit.call(this);
					if (timeout){ clearTimeout(timeout); }
					tiptip_holder.fadeOut(opts.fadeOut);
				}
			}
		});
	}
})(jQuery);
plugin-fw/assets/js/jquery-tiptip/jquery.tipTip.min.js000064400000005261151327614500017137 0ustar00!function(O){O.fn.tipTip=function(t){var g,b,M,w=O.extend({activation:"hover",keepAlive:!1,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:!1,enter:function(){},exit:function(){}},t);return O("#tiptip_holder").length<=0?(g=O('<div id="tiptip_holder" style="max-width:'+w.maxWidth+';"></div>'),b=O('<div id="tiptip_content"></div>'),M=O('<div id="tiptip_arrow"></div>'),O("body").append(g.html(b).prepend(M.html('<div id="tiptip_arrow_inner"></div>')))):(g=O("#tiptip_holder"),b=O("#tiptip_content"),M=O("#tiptip_arrow")),this.each(function(){var _,v,m=O(this);function t(){w.enter.call(this),b.html(_),g.hide().removeAttr("class").css("margin","0"),M.removeAttr("style");var t=parseInt(m.offset().top),e=parseInt(m.offset().left),o=parseInt(m.outerWidth()),i=parseInt(m.outerHeight()),n=g.outerWidth(),r=g.outerHeight(),a=Math.round((o-n)/2),f=Math.round((i-r)/2),d=Math.round(e+a),u=Math.round(t+i+w.edgeOffset),p="",h="",l=Math.round(n-12)/2;"bottom"==w.defaultPosition?p="_bottom":"top"==w.defaultPosition?p="_top":"left"==w.defaultPosition?p="_left":"right"==w.defaultPosition&&(p="_right");var c=a+e<parseInt(O(window).scrollLeft()),s=n+e>parseInt(O(window).width());c&&a<0||"_right"==p&&!s||"_left"==p&&e<n+w.edgeOffset+5?(p="_right",h=Math.round(r-13)/2,l=-12,d=Math.round(e+o+w.edgeOffset),u=Math.round(t+f)):(s&&a<0||"_left"==p&&!c)&&(p="_left",h=Math.round(r-13)/2,l=Math.round(n),d=Math.round(e-(n+w.edgeOffset+5)),u=Math.round(t+f));n=t+i+w.edgeOffset+r+8>parseInt(O(window).height()+O(window).scrollTop()),f=t+i-(w.edgeOffset+r+8)<0;n||"_bottom"==p&&n||"_top"==p&&!f?("_top"==p||"_bottom"==p?p="_top":p+="_top",h=r,u=Math.round(t-(r+5+w.edgeOffset))):(f|("_top"==p&&f)||"_bottom"==p&&!n)&&("_top"==p||"_bottom"==p?p="_bottom":p+="_bottom",h=-12,u=Math.round(t+i+w.edgeOffset)),"_right_top"==p||"_left_top"==p?u+=5:"_right_bottom"!=p&&"_left_bottom"!=p||(u-=5),"_left_top"!=p&&"_left_bottom"!=p||(d+=5),M.css({"margin-left":l+"px","margin-top":h+"px"}),g.css({"margin-left":d+"px","margin-top":u+"px"}).attr("class","tip"+p),v&&clearTimeout(v),v=setTimeout(function(){g.stop(!0,!0).fadeIn(w.fadeIn)},w.delay)}function e(){w.exit.call(this),v&&clearTimeout(v),g.fadeOut(w.fadeOut)}""!=(_=w.content?w.content:m.attr(w.attribute))&&(w.content||m.removeAttr(w.attribute),v=!1,"hover"==w.activation?(m.hover(function(){t()},function(){w.keepAlive&&g.is(":hover")||e()}),w.keepAlive&&g.hover(function(){},function(){e()})):"focus"==w.activation?m.focus(function(){t()}).blur(function(){e()}):"click"==w.activation&&(m.click(function(){return t(),!1}).hover(function(){},function(){w.keepAlive||e()}),w.keepAlive&&g.hover(function(){},function(){e()})))})}}(jQuery);plugin-fw/assets/js/yith-enhanced-select-wc-2.6.js000064400000016041151327614500015645 0ustar00/*
 global yith_framework_enhanced_select_params
 */
jQuery( function ( $ ) {
    "use strict";

    $( document.body )
        .on( 'yith-framework-enhanced-select-init', function () {
            // Post Search
            $( ':input.yith-post-search' ).filter( ':not(.enhanced)' ).each( function () {
                var default_data = {
                        action   : 'yith_plugin_fw_json_search_posts',
                        security : yith_framework_enhanced_select_params.search_posts_nonce,
                        post_type: 'post'
                    },
                    current_data = $.extend( default_data, $( this ).data() ),
                    select2_args = {
                        allowClear        : $( this ).data( 'allow_clear' ) ? true : false,
                        placeholder       : $( this ).data( 'placeholder' ),
                        minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3',
                        escapeMarkup      : function ( m ) {
                            return m;
                        },
                        ajax              : {
                            url        : yith_framework_enhanced_select_params.ajax_url,
                            dataType   : 'json',
                            quietMillis: 250,
                            data       : function ( term ) {
                                current_data.term = term;
                                return current_data;
                            },
                            results    : function ( data ) {
                                var terms = [];
                                if ( data ) {
                                    $.each( data, function ( id, text ) {
                                        terms.push( { id: id, text: text } );
                                    } );
                                }
                                return {
                                    results: terms
                                };
                            },
                            cache      : true
                        }
                    };

                if ( $( this ).data( 'multiple' ) === true ) {
                    select2_args.multiple        = true;
                    select2_args.initSelection   = function ( element, callback ) {
                        var data     = $.parseJSON( element.attr( 'data-selected' ) );
                        var selected = [];

                        $( element.val().split( ',' ) ).each( function ( i, val ) {
                            selected.push( {
                                               id  : val,
                                               text: data[ val ]
                                           } );
                        } );
                        return callback( selected );
                    };
                    select2_args.formatSelection = function ( data ) {
                        return '<div class="selected-option" data-id="' + data.id + '">' + data.text + '</div>';
                    };
                } else {
                    select2_args.multiple      = false;
                    select2_args.initSelection = function ( element, callback ) {
                        var data = {
                            id  : element.val(),
                            text: element.attr( 'data-selected' )
                        };
                        return callback( data );
                    };
                }

                $( this ).select2( select2_args ).addClass( 'enhanced' );
            } );

            // Term Search
            $( ':input.yith-term-search' ).filter( ':not(.enhanced)' ).each( function () {
                var default_data = {
                        action   : 'yith_plugin_fw_json_search_terms',
                        security : yith_framework_enhanced_select_params.search_terms_nonce,
                        taxonomy: 'category'
                    },
                    current_data = $.extend( default_data, $( this ).data() ),
                    select2_args = {
                        allowClear        : $( this ).data( 'allow_clear' ) ? true : false,
                        placeholder       : $( this ).data( 'placeholder' ),
                        minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3',
                        escapeMarkup      : function ( m ) {
                            return m;
                        },
                        ajax              : {
                            url        : yith_framework_enhanced_select_params.ajax_url,
                            dataType   : 'json',
                            quietMillis: 250,
                            data       : function ( term ) {
                                current_data.term = term;
                                return current_data;
                            },
                            results    : function ( data ) {
                                var terms = [];
                                if ( data ) {
                                    $.each( data, function ( id, text ) {
                                        terms.push( { id: id, text: text } );
                                    } );
                                }
                                return {
                                    results: terms
                                };
                            },
                            cache      : true
                        }
                    };

                if ( $( this ).data( 'multiple' ) === true ) {
                    select2_args.multiple        = true;
                    select2_args.initSelection   = function ( element, callback ) {
                        var data     = $.parseJSON( element.attr( 'data-selected' ) );
                        var selected = [];

                        $( element.val().split( ',' ) ).each( function ( i, val ) {
                            selected.push( {
                                               id  : val,
                                               text: data[ val ]
                                           } );
                        } );
                        return callback( selected );
                    };
                    select2_args.formatSelection = function ( data ) {
                        return '<div class="selected-option" data-id="' + data.id + '">' + data.text + '</div>';
                    };
                } else {
                    select2_args.multiple      = false;
                    select2_args.initSelection = function ( element, callback ) {
                        var data = {
                            id  : element.val(),
                            text: element.attr( 'data-selected' )
                        };
                        return callback( data );
                    };
                }

                $( this ).select2( select2_args ).addClass( 'enhanced' );
            } );
        } ).trigger( 'yith-framework-enhanced-select-init' );
    
} );plugin-fw/assets/js/yith-update-plugins.js000064400000003471151327614500014655 0ustar00/**
 * This file belongs to the YIT Framework.
 *
 * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl-3.0.txt
 */
(function ( $ ) {
    $(document).on( 'click', 'a.yith-update-link', function(event){
        var t = $(this),
            p_wrapper = t.parent('p');

        event.preventDefault();
        $.ajax({
            type: 'POST',
            url: yith_plugin_fw.ajaxurl,
            data: {
                'action': "update-plugin",
                'plugin': t.data('plugin'),
                'slug': t.data('slug'),
                'name': t.data('name'),
                '_ajax_nonce': yith_plugin_fw.ajax_nonce
            },
            beforeSend: function(){
                p_wrapper.text( yith_plugin_fw.l10n.updating.replace( '%s', t.data('name') ) );
                p_wrapper.addClass( 'yith-updating' );
            },
            success: function (response) {
                p_wrapper.removeClass( 'yith-updating' ).addClass( 'yith-updated' );
                var notice_wrapper = p_wrapper.parent('div');
                notice_wrapper.removeClass( 'notice-warning' ),
                result_text = '';

                if( response.success === true ){
                    notice_wrapper.addClass('notice-success updated-message').removeClass( 'update-message' );
                    result_text = yith_plugin_fw.l10n.updated;
                }

                else {
                    notice_wrapper.addClass('notice-error');
                    result_text = yith_plugin_fw.l10n.failed;
                }

                p_wrapper.text( result_text.replace( '%s', t.data('name') ) );
            }
        });
    });
})( jQuery );
plugin-fw/assets/js/multisite-updater.min.js000064400000004143151327614500015201 0ustar00!function(e){var n=e("#menu-plugins"),a=n.find(".update-plugins").find(".plugin-count").text(),t=plugins.registered,s=plugins.activated;if(0==a||""==a){a=0,n.find(".wp-menu-name").append('<span class="update-plugins"><span class="plugin-count"></span></span>')}function i(e,n,a){this.php_js=this.php_js||{},this.php_js.ENV=this.php_js.ENV||{};var t,s=0,i=0,r={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1},l=function(e){return(e=(e=(""+e).replace(/[_\-+]/g,".")).replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,".")).length?e.split("."):[-8]};for(numVersion=function(e){return e?isNaN(e)?r[e]||-7:parseInt(e,10):0},e=l(e),n=l(n),t=Math.max(e.length,n.length),s=0;s<t;s++)if(e[s]!=n[s]){if(e[s]=numVersion(e[s]),n[s]=numVersion(n[s]),e[s]<n[s]){i=-1;break}if(e[s]>n[s]){i=1;break}}if(!a)return i;switch(a){case">":case"gt":return i>0;case">=":case"ge":return i>=0;case"<=":case"le":return i<=0;case"==":case"=":case"eq":return 0===i;case"<>":case"!=":case"ne":return 0!==i;case"":case"<":case"lt":return i<0;default:return null}}!function(n,a,t,s){for(var r in n){var l=n[r];for(var p in l)if("slug"!=p&&!i(l[p].Version,l[p].Latest,"=")){t=parseInt(t)+1,e(".plugin-count").empty().html(t);var u=new RegExp(" ","g"),c=l[p],g=""+c.Name,o=g.replace(u,"-").trim(),d='*[data-slug="'+o.toLowerCase()+'"]';e(d).addClass("update");var f='<tr class="plugin-update-tr"><td colspan="3" class="plugin-update colspanchange"><div class="update-message notice inline notice-warning notice-alt">'+s.strings.new_version.replace("%plugin_name%",g)+'<a class="thickbox open-plugin-details-modal" href="'+s.details_url[r]+'">'+s.strings.latest.replace("%latest%",l[p].Latest)+"</a>";f="undefined"==typeof a[r]?f+" <em>"+s.strings.unavailable+"</em>"+s.strings.activate.replace("%activate_link%",s.licence_activation_url).replace("%plugin_name%",g):f+'. <a href="'+s.update_url[r]+'">'+s.strings.update_now+"</a>",i(l[p].Version,l[p].Latest,">")&&(f+=s.strings.version_issue.replace("%plugin_name%",g)),e(f+="</div></td></tr>").insertAfter(d)}}}(t,s,a,plugins),e("body").on("click",".yit-changelog-button",function(){e("#TB_window").remove()})}(jQuery);plugin-fw/assets/js/metabox.js000064400000011717151327614500012402 0ustar00/**
 * This file belongs to the YIT Framework.
 *
 * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl-3.0.txt
 */
( function ( $ ) {

	$( '.metaboxes-tab' ).each( function () {
		var theMetaBox = $( this ),
			panels     = theMetaBox.find( '.tabs-panel' )

		panels.hide();

		// TODO: check if someone is directly using it, otherwise it could be removed because: 1. it doesn't take into account the possibility to have more than one meta-box in the same page; 2. it's not set anywhere.
		var activeTab = wpCookies.get( 'active_metabox_tab' );
		if ( activeTab == null ) {
			activeTab = theMetaBox.find( 'ul.metaboxes-tabs li:first-child a' ).attr( 'href' );
		} else {
			activeTab = '#' + activeTab;
		}

		theMetaBox.find( activeTab ).show();

		theMetaBox.find( '.metaboxes-tabs a' ).on( 'click', function ( e ) {
			e.preventDefault();

			var wrapper  = $( this ).parent(),
				isActive = wrapper.hasClass( 'tabs' );

			if ( !isActive ) {
				var tabID = $( this ).attr( 'href' );

				wrapper.addClass( 'tabs' ).siblings( 'li' ).removeClass( 'tabs' );

				panels.hide();
				$( tabID ).show();
			}
		} );
	} );

	// TODO: check if someone is directly using it, otherwise it could be removed, since it's not used by the fw.
	var actPageOptionContainer = $( '#_active_page_options-container' ),
		actPageOption          = actPageOptionContainer.parent().html();
	actPageOptionContainer.parent().remove();
	$( actPageOption ).insertAfter( '#yit-post-setting .handlediv' );
	$( actPageOption ).insertAfter( '#yit-page-setting .handlediv' );

	actPageOptionContainer.on( 'click', function () {
		if ( $( '#_active_page_options' ).is( ":checked" ) ) {
			$( '#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab' ).css( {
																											   'opacity'       : 1,
																											   'pointer-events': 'auto'
																										   } );
		} else {
			$( '#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab' ).css( {
																											   'opacity'       : 0.5,
																											   'pointer-events': 'none'
																										   } );
		}
	} ).trigger( 'click' );


	//dependencies handler
	$( document.body ).on( 'yith-plugin-fw-metabox-init-deps', function () {
		$( document.body ).trigger( 'yith-plugin-fw-init-radio' );
		$( '.metaboxes-tab [data-dep-target]:not(.yith-plugin-fw-metabox-deps-initialized)' ).each( function () {
			var t = $( this );

			var field = '#' + t.data( 'dep-target' ),
				dep   = '#' + t.data( 'dep-id' ),
				value = t.data( 'dep-value' ),
				type  = t.data( 'dep-type' );


			dependencies_handler( field, dep, value.toString(), type );

			$( dep ).on( 'change', function () {
				dependencies_handler( field, dep, value.toString(), type );
			} ).change();

			t.addClass( 'yith-plugin-fw-metabox-deps-initialized' );
		} );
	} ).trigger( 'yith-plugin-fw-metabox-init-deps' );

	//Handle dependencies.
	function dependencies_handler( id, deps, values, type ) {
		var result = true;

		if ( typeof ( deps ) == 'string' ) {
			if ( deps.substr( 0, 6 ) === ':radio' ) {
				deps = deps + ':checked';
			}

			var depsOn     = $( deps ),
				depsOnType = depsOn.attr( 'type' ),
				val        = depsOn.val();

			switch ( depsOnType ){
				case 'checkbox':
					val = depsOn.is( ':checked' ) ? 'yes' : 'no';
					break;
				case 'radio':
					val = depsOn.find( 'input[type="radio"]' ).filter( ':checked' ).val();
					break;
			}

			values = values.split( ',' );

			for ( var i = 0; i < values.length; i++ ) {
				if ( val != values[ i ] ) {
					result = false;
				} else {
					result = true;
					break;
				}
			}
		}

		var $current_field     = $( id ),
			$current_container = $( id + '-container' ).parent();

		var types = type.split( '-' ), j;
		for ( j in types ) {
			var current_type = types[ j ];

			if ( !result ) {
				switch ( current_type ) {
					case 'disable':
						$current_container.addClass( 'yith-disabled' );
						$current_field.attr( 'disabled', true );
						break;
					case 'hide':
					case 'hideNow':
						$current_container.hide();
						break;
					case 'hideme':
						$current_field.hide();
						break;
					case 'fadeInOut':
					case 'fadeOut':
						$current_container.hide( 500 );
						break;
					case 'fadeIn':
					default:
						$current_container.hide();
				}
			} else {
				switch ( current_type ) {
					case 'disable':
						$current_container.removeClass( 'yith-disabled' );
						$current_field.attr( 'disabled', false );
						break;
					case 'hide':
					case 'hideNow':
						$current_container.show();
						break;
					case 'hideme':
						$current_field.show();
						break;
					case 'fadeOut':
						$current_container.show();
						break;
					case 'fadeInOut':
					case 'fadeIn':
					default:
						$current_container.show( 500 );
				}
			}
		}
	}

} )( jQuery );plugin-fw/assets/js/yith-promo.js000064400000001325151327614500013044 0ustar00(function ($) {
    $(document).on('click', '.notice-dismiss', function () {
        var t = $(this),
            promo_wrapper = t.parent('div.yith-notice-is-dismissible'),
            promo_id = promo_wrapper.attr('id');

        if (typeof promo_id != 'undefined') {
            var cname = 'hide_' + promo_id,
                cvalue = 'yes',
                expiry = promo_wrapper.data('expiry'),
                expiry_date = new Date(expiry);

            expiry_date.setUTCHours( 23 );
            expiry_date.setUTCMinutes( 59 );
            expiry_date.setUTCSeconds( 59 );

            document.cookie = cname + "=" + cvalue + ";" + 'expires=' + expiry_date.toUTCString() + ";path=/";
        }
    });
})(jQuery);
plugin-fw/assets/js/yit-cpt-unlimited.min.js000064400000001424151327614500015100 0ustar00!function(t){"use strict";t(".wrap h1, .wrap h2").on("click","a.multi-uploader",function(e){e.preventDefault();var n,a=t(this),i=!1;a.next("span.spinner").css("display","inline-block"),n?n.open():((n=wp.media.frames.file_frame=wp.media({title:a.data("uploader_title"),button:{text:a.data("uploader_button_text")},library:{type:"image"},multiple:!0})).on("select",function(){var e=[];n.state().get("selection").map(function(t){t=t.toJSON(),e.push({id:t.id,url:t.url,title:t.title})}),console.log(a.data("nonce")),t.post(ajaxurl,{images:e,post_type:typenow,action:"yit_cptu_multiuploader",_ajax_nonce:a.data("nonce")},function(t){location.reload()}),a.next("span.spinner").css("display","inline-block"),i=!0}),n.on("close",function(){i||a.next("span.spinner").hide()}),n.open())})}(jQuery);plugin-fw/assets/js/yith-ui.min.js000064400000011165151327614500013112 0ustar00window.yith=window.yith||{},function(n,e){e.ui=e.ui||{};var o=function(n){if("string"==typeof n)return n;var e=[];for(var t of n)t&&e.indexOf(t)<0&&e.push(o(t));return e.join(" ")},t=function(n){n.stopPropagation()};e.ui.confirm=function(t){var l={title:!1,message:!1,onCreate:!1,onConfirm:!1,onCancel:!1,onClose:!1,classes:{wrap:"",content:"",title:"",message:"",footer:"",cancel:"",confirm:""},confirmButtonType:"confirm",cancelButton:yith_plugin_fw_ui.i18n.cancel,confirmButton:yith_plugin_fw_ui.i18n.confirm,width:350,closeAfterConfirm:!0,allowWpMenu:!1,allowWpMenuInMobile:!1,showClose:!0,closeWhenClickingOnOverlay:!1},i={};t=void 0!==t?t:{},(t=n.extend({},l,t)).classes=n.extend({},l.classes,t.classes);var s={wrap:o(["yith-plugin-fw__confirm__wrap",t.classes.wrap]),content:o(["yith-plugin-fw__confirm__content",t.classes.content]),title:o(["yith-plugin-fw__confirm__title",t.classes.title]),message:o(["yith-plugin-fw__confirm__message",t.classes.message]),footer:o(["yith-plugin-fw__confirm__footer",t.classes.footer]),cancel:o(["yith-plugin-fw__confirm__button","yith-plugin-fw__confirm__button--cancel",t.classes.cancel]),confirm:o(["yith-plugin-fw__confirm__button","yith-plugin-fw__confirm__button--"+t.confirmButtonType,t.classes.confirm])},c={message:!1,footer:!1,cancel:!1,confirm:!1},a=!1,r=function(){a&&a.close(),a=!1},f=function(){"function"==typeof t.onCancel&&t.onCancel(),r()},p=function(){"function"==typeof t.onConfirm&&t.onConfirm(),t.closeAfterConfirm&&r()},m=function(){c.cancel.on("click",f),c.confirm.on("click",p)};(function(){c.message=n('<div class="'+s.message+'">'),c.footer=n('<div class="'+s.footer+'">'),c.cancel=n('<span class="'+s.cancel+'">'+t.cancelButton+"</span>"),c.confirm=n('<span class="'+s.confirm+'">'+t.confirmButton+"</span>"),t.message&&c.message.html(t.message),c.footer.append(c.cancel),c.footer.append(c.confirm),a=e.ui.modal({classes:{wrap:s.wrap,title:s.title,content:s.content},title:t.title,content:[c.message,c.footer],width:t.width,allowWpMenu:t.allowWpMenu,allowWpMenuInMobile:t.allowWpMenuInMobile,showClose:t.showClose,onCreate:t.onCreate,onClose:t.onClose,closeWhenClickingOnOverlay:t.closeWhenClickingOnOverlay})})(),m(),i.elements=n.extend({},c),i.modal=n.extend({},a),i.close=r,i.cancel=f},e.ui.modal=function(e){var l={allowWpMenu:!0,allowWpMenuInMobile:!1,title:!1,content:!1,footer:!1,showClose:!0,closeSelector:!1,classes:{wrap:"",main:"",close:"",title:"",content:"",footer:""},width:500,allowClosingWithEsc:!0,closeWhenClickingOnOverlay:!1,scrollContent:!0,onCreate:!1,onClose:!1},i={};e=void 0!==e?e:{},(e=n.extend({},l,e)).classes=n.extend({},l.classes,e.classes);var s=n("#wpwrap"),c={wrap:["yith-plugin-ui","yith-plugin-fw__modal__wrap",e.classes.wrap],main:["yith-plugin-fw__modal__main",e.classes.main],close:["yith-plugin-fw__modal__close","yith-icon","yith-icon-close",e.classes.close],title:["yith-plugin-fw__modal__title",e.classes.title],content:["yith-plugin-fw__modal__content",e.classes.content],footer:["yith-plugin-fw__modal__footer",e.classes.footer]},a={wrap:!1,main:!1,close:!1,title:!1,content:!1,footer:!1},r=function(){n(".yith-plugin-fw__modal__wrap").remove(),s.removeClass("yith-plugin-fw__modal--opened"),s.removeClass("yith-plugin-fw__modal--allow-wp-menu"),s.removeClass("yith-plugin-fw__modal--allow-wp-menu-in-mobile"),"function"==typeof e.onClose&&e.onClose()},f=function(){a.wrap=n('<div class="'+o(c.wrap)+'">'),a.main=n('<div class="'+o(c.main)+'">'),a.close=n('<span class="'+o(c.close)+'">'),a.title=n('<div class="'+o(c.title)+'">'),a.content=n('<div class="'+o(c.content)+'">'),a.footer=n('<div class="'+o(c.footer)+'">'),a.main.css({width:e.width}),e.title&&("string"==typeof e.title?a.title.html(e.title):a.title.append(e.title)),e.content&&("string"==typeof e.content?a.content.html(e.content):a.content.append(e.content)),e.showClose&&a.main.append(a.close),a.main.append(a.title),a.main.append(a.content),e.footer&&("string"==typeof e.footer?a.footer.html(e.footer):a.footer.append(e.footer),a.main.append(a.footer)),a.wrap.append(a.main),e.scrollContent&&a.wrap.addClass("yith-plugin-fw__modal__wrap--scroll-content"),s.append(a.wrap),s.addClass("yith-plugin-fw__modal--opened"),e.allowWpMenu&&s.addClass("yith-plugin-fw__modal--allow-wp-menu"),e.allowWpMenuInMobile&&s.addClass("yith-plugin-fw__modal--allow-wp-menu-in-mobile"),"function"==typeof e.onCreate&&e.onCreate()},p=function(){a.close.on("click",r),e.closeSelector&&s.on("click",e.closeSelector,r),e.closeWhenClickingOnOverlay&&(a.wrap.on("click",r),a.main.on("click",t)),n(document).on("keydown",m)},m=function(n){e.allowClosingWithEsc&&27===n.keyCode&&r()};return r(),f(),p(),i.elements=n.extend({},a),i.close=r,i}}(window.jQuery,window.yith);plugin-fw/assets/js/yit-cpt-unlimited.js000064400000004577151327614500014332 0ustar00/**
 * This file belongs to the YIT Framework.
 *
 * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl-3.0.txt
 */

(function($) {
    "use strict";
    // Author code here

    // open media box
    $('.wrap h1, .wrap h2').on( 'click', 'a.multi-uploader', function(event){
        event.preventDefault();

        var file_frame,
            button = $(this),
            selected = false;

        // spinner
        button.next('span.spinner').css( 'display', 'inline-block' );

        // If the media frame already exists, reopen it.
        if ( file_frame ) {
            file_frame.open();
            return;
        }

        // Create the media frame.
        file_frame = wp.media.frames.file_frame = wp.media({
            title: button.data( 'uploader_title' ),
            button: {
                text: button.data( 'uploader_button_text' )
            },
            library: {
                type: 'image'
            },
            multiple: true  // Set to true to allow multiple files to be selected
        });

        // When an image is selected, run a callback.
        file_frame.on( 'select', function() {
            var selection = file_frame.state().get('selection'),
                images = [];

            selection.map( function( attachment ) {
                attachment = attachment.toJSON();

                // Do something with attachment.id and/or attachment.url here
                images.push( { id: attachment.id, url: attachment.url, title: attachment.title } );
            });
console.log( button.data('nonce') );
            // make AJAX request
            $.post( ajaxurl, {
                images: images,
                post_type: typenow,
                action: 'yit_cptu_multiuploader',
                _ajax_nonce: button.data('nonce')
            }, function( data ){
                location.reload();
            });

            button.next('span.spinner').css( 'display', 'inline-block' );

            // flag
            selected = true;
        });

        // when close
        file_frame.on( 'close', function() {
            if ( ! selected ) button.next('span.spinner').hide();
        });

        // Finally, open the modal
        file_frame.open();
    });

})(jQuery);plugin-fw/assets/js/yith-colorpicker.min.js000064400000015273151327614500015015 0ustar00/**!
 * wp-color-picker-alpha
 *
 * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
 * Only run in input and is defined data alpha in true
 *
 * Version: 3.0.0
 * https://github.com/kallookoo/wp-color-picker-alpha
 * Licensed under the GPLv2 license or later.
 */
!function(e,a){var l,o={version:300};if("wpColorPickerAlpha"in window&&"version"in window.wpColorPickerAlpha){var t=parseInt(window.wpColorPickerAlpha.version,10);if(!isNaN(t)&&o.version<=t)return}Color.fn.hasOwnProperty("to_s")||(Color.fn.to_s=function(o){"hex"===(o=o||"hex")&&this._alpha<1&&(o="rgba");var a="";return"hex"===o?a=this.toString():this.error||(a=this.toCSS(o).replace(/\(\s+/,"(").replace(/\s+\)/,")")),a},window.wpColorPickerAlpha=o,l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",e.widget("a8c.iris",e.a8c.iris,{alphaOptions:{alphaEnabled:!1},_getColor:function(o){return o===a&&(o=this._color),this.alphaOptions.alphaEnabled?(o=o.to_s(this.alphaOptions.alphaColorType),this.alphaOptions.alphaColorWithSpace||(o=o.replace(/\s+/g,"")),o):o.toString()},_create:function(){try{this.alphaOptions=this.element.wpColorPicker("instance").alphaOptions}catch(o){}e.extend({},this.alphaOptions,{alphaEnabled:!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"hex",alphaColorWithSpace:!1}),this._super()},_addInputListeners:function(i){function o(o){var a=i.val(),t=new Color(a),a=a.replace(/^(#|(rgb|hsl)a?)/,""),r=l.alphaOptions.alphaColorType;i.removeClass("iris-error"),t.error?""!==a&&i.addClass("iris-error"):"hex"===r&&"keyup"===o.type&&a.match(/^[0-9a-fA-F]{3}$/)||t.toIEOctoHex()!==l._color.toIEOctoHex()&&l._setOption("color",l._getColor(t))}var l=this;i.on("change",o).on("keyup",l._debounce(o,100)),l.options.hide&&i.one("focus",function(){l.show()})},_initControls:function(){var t,o,a,r;this._super(),this.alphaOptions.alphaEnabled&&(a=(o=(t=this).controls.strip.clone(!1,!1)).find(".iris-slider-offset"),r={stripAlpha:o,stripAlphaSlider:a},o.addClass("iris-strip-alpha"),a.addClass("iris-slider-offset-alpha"),o.appendTo(t.picker.find(".iris-picker-inner")),e.each(r,function(o,a){t.controls[o]=a}),t.controls.stripAlphaSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*t._color._alpha),slide:function(o,a){t.active="strip",t._color._alpha=parseFloat(a.value/100),t._change.apply(t,arguments)}}))},_dimensions:function(o){if(this._super(o),this.alphaOptions.alphaEnabled){for(var a=this,t=a.options,r=a.controls.square,o=a.picker.find(".iris-strip"),i=Math.round(a.picker.outerWidth(!0)-(t.border?22:0)),l=Math.round(r.outerWidth()),e=Math.round((i-l)/2),s=Math.round(e/2),n=Math.round(l+2*e+2*s);i<n;)e=Math.round(e-2),s=Math.round(s-1),n=Math.round(l+2*e+2*s);r.css("margin","0"),o.width(e).css("margin-left",s+"px")}},_change:function(){var o,a,t,r=this,i=r.active;r._super(),r.alphaOptions.alphaEnabled&&(o=r.controls,a=parseInt(100*r._color._alpha),t=["rgb("+(t=r._color.toRgb()).r+","+t.g+","+t.b+") 0%","rgba("+t.r+","+t.g+","+t.b+", 0) 100%"],r.picker.closest(".wp-picker-container").find(".wp-color-result"),r.options.color=r._getColor(),o.stripAlpha.css({background:"linear-gradient(to bottom, "+t.join(", ")+"), url("+l+")"}),i&&o.stripAlphaSlider.slider("value",a),r._color.error||r.element.removeClass("iris-error").val(r.options.color),r.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){var o=e(this).data("color");r.alphaOptions.alphaReset&&(r._color._alpha=1,o=r._getColor()),r._setOption("color",o)}))},_paintDimension:function(o,a){var t=this,r=!1;t.alphaOptions.alphaEnabled&&"strip"===a&&(r=t._color,t._color=new Color(r.toString()),t.hue=t._color.h()),t._super(o,a),r&&(t._color=r)},_setOption:function(o,a){var t=this;if("color"!==o||!t.alphaOptions.alphaEnabled)return t._super(o,a);a=""+a,newColor=new Color(a).setHSpace(t.options.mode),newColor.error||t._getColor(newColor)===t._getColor()||(t._color=newColor,t.options.color=t._getColor(),t.active="external",t._change())},color:function(o){return!0===o?this._color.clone():o===a?this._getColor():void this.option("color",o)}}),e.widget("wp.wpColorPicker",e.wp.wpColorPicker,{alphaOptions:{alphaEnabled:!1},_getAlphaOptions:function(){var r=this.element,o=r.data("type")||this.options.type,i=r.data("defaultColor")||r.val(),l={alphaEnabled:r.data("alphaEnabled")||!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"rgb",alphaColorWithSpace:!1};return l.alphaEnabled&&(l.alphaEnabled=r.is("input")&&"full"===o),l.alphaEnabled&&(l.alphaColorWithSpace=i&&i.match(/\s/),e.each(l,function(o,a){var t=r.data(o)||a;switch(o){case"alphaCustomWidth":t=t?parseInt(t,10):0,t=isNaN(t)?a:t;break;case"alphaColorType":t.match(/^(hex|(rgb|hsl)a?)$/)||(t=i&&i.match(/^#/)?"hex":i&&i.match(/^hsla?/)?"hsl":a);break;default:t=!!t}l[o]=t})),l},_create:function(){e.support.iris&&(this.alphaOptions=this._getAlphaOptions(),this._super())},_addListeners:function(){if(!this.alphaOptions.alphaEnabled)return this._super();var t=this,r=t.element,i=t.toggler.is("a");this.alphaOptions.defaultWidth=r.width(),this.alphaOptions.alphaCustomWidth&&r.width(parseInt(this.alphaOptions.defaultWidth+this.alphaOptions.alphaCustomWidth,10)),t.toggler.css({position:"relative","background-image":"url("+l+")"}),i?t.toggler.html('<span class="color-alpha" />'):t.toggler.append('<span class="color-alpha" />'),t.colorAlpha=t.toggler.find("span.color-alpha").css({width:"30px",height:"100%",position:"absolute",top:0,"background-color":r.val()}),"ltr"===t.colorAlpha.css("direction")?t.colorAlpha.css({"border-bottom-left-radius":"2px","border-top-left-radius":"2px",left:0}):t.colorAlpha.css({"border-bottom-right-radius":"2px","border-top-right-radius":"2px",right:0}),r.iris({change:function(o,a){t.colorAlpha.css({"background-color":a.color.to_s(t.alphaOptions.alphaColorType)}),e.isFunction(t.options.change)&&t.options.change.call(this,o,a)}}),t.wrap.on("click.wpcolorpicker",function(o){o.stopPropagation()}),t.toggler.click(function(){t.toggler.hasClass("wp-picker-open")?t.close():t.open()}),r.change(function(o){var a=e(this).val();(r.hasClass("iris-error")||""===a||a.match(/^(#|(rgb|hsl)a?)$/))&&(i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o))}),t.button.click(function(o){e(this).hasClass("wp-picker-default")?r.val(t.options.defaultColor).change():e(this).hasClass("wp-picker-clear")&&(r.val(""),i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o),r.trigger("change"))})}}))}(jQuery);plugin-fw/assets/js/jquery.colorbox.min.js000064400000027055151327614500014674 0ustar00/*!
	Colorbox 1.6.3
	license: MIT
	http://www.jacklmoore.com/colorbox
*/
!function(t,e,i){var n,o,h,r,a,s,l,d,c,g,u,f,p,m,w,v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:undefined,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},O="colorbox",_="cbox",j=_+"Element",D=_+"_open",N=_+"_load",z=_+"_complete",A=_+"_cleanup",U=_+"_closed",$=_+"_purge",q=t("<a/>"),G="div",Q=0,J={};function V(i,n,o){var h=e.createElement(i);return n&&(h.id=_+n),o&&(h.style.cssText=o),t(h)}function X(){return i.innerHeight?i.innerHeight:t(i).height()}function Y(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return this.cache[e]===undefined&&((n=t(this.el).attr("data-cbox-"+e))!==undefined?this.cache[e]=n:i[e]!==undefined?this.cache[e]=i[e]:B[e]!==undefined&&(this.cache[e]=B[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function Z(t){var e=c.length,i=(I+t)%e;return i<0?e+i:i}function tt(t,e){return Math.round((/%/.test(t)?("x"===e?g.width():X())/100:1)*parseInt(t,10))}function et(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function it(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function nt(t){"contains"in o[0]&&!o[0].contains(t.target)&&t.target!==n[0]&&(t.stopPropagation(),o.focus())}function ot(t){ot.str!==t&&(o.add(n).removeClass(ot.str).addClass(t),ot.str=t)}function ht(i){t(e).trigger(i),q.triggerHandler(i)}var rt=function(){var t,e,i=_+"Slideshow_",n="click."+_;function h(){clearTimeout(e)}function r(){(C.get("loop")||c[I+1])&&(h(),e=setTimeout(K.next,C.get("slideshowSpeed")))}function a(){v.html(C.get("slideshowStop")).unbind(n).one(n,s),q.bind(z,r).bind(N,h),o.removeClass(i+"off").addClass(i+"on")}function s(){h(),q.unbind(z,r).unbind(N,h),v.html(C.get("slideshowStart")).unbind(n).one(n,function(){K.next(),a()}),o.removeClass(i+"on").addClass(i+"off")}function l(){t=!1,v.hide(),h(),q.unbind(z,r).unbind(N,h),o.removeClass(i+"off "+i+"on")}return function(){t?C.get("slideshow")||(q.unbind(A,l),l()):C.get("slideshow")&&c[1]&&(t=!0,q.one(A,l),C.get("slideshowAuto")?a():s(),v.show())}}();function at(h){var g,w;if(!R){if(g=t(h).data(O),C=new Y(h,g),w=C.get("rel"),I=0,w&&!1!==w&&"nofollow"!==w?(c=t("."+j).filter(function(){return new Y(this,t.data(this,O)).get("rel")===w}),-1===(I=c.index(C.el))&&(c=c.add(C.el),I=c.length-1)):c=t(C.el),!L){L=F=!0,ot(C.get("className")),o.css({visibility:"hidden",display:"block",opacity:""}),u=V(G,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),r.css({width:"",height:""}).append(u),H=a.height()+d.height()+r.outerHeight(!0)-r.height(),k=s.width()+l.width()+r.outerWidth(!0)-r.width(),W=u.outerHeight(!0),E=u.outerWidth(!0);var v=tt(C.get("initialWidth"),"x"),x=tt(C.get("initialHeight"),"y"),y=C.get("maxWidth"),P=C.get("maxHeight");C.w=Math.max((!1!==y?Math.min(v,tt(y,"x")):v)-E-k,0),C.h=Math.max((!1!==P?Math.min(x,tt(P,"y")):x)-W-H,0),u.css({width:"",height:C.h}),K.position(),ht(D),C.get("onOpen"),T.add(m).hide(),o.focus(),C.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",nt,!0),q.one(U,function(){e.removeEventListener("focus",nt,!0)})),C.get("returnFocus")&&q.one(U,function(){t(C.el).focus()})}var B=parseFloat(C.get("opacity"));n.css({opacity:B==B?B:"",cursor:C.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),C.get("closeButton")?b.html(C.get("close")).appendTo(r):b.appendTo("<div/>"),function(){var e,n,o,h=K.prep,r=++Q;F=!0,M=!1,ht($),ht(N),C.get("onLoad"),C.h=C.get("height")?tt(C.get("height"),"y")-W-H:C.get("innerHeight")&&tt(C.get("innerHeight"),"y"),C.w=C.get("width")?tt(C.get("width"),"x")-E-k:C.get("innerWidth")&&tt(C.get("innerWidth"),"x"),C.mw=C.w,C.mh=C.h,C.get("maxWidth")&&(C.mw=tt(C.get("maxWidth"),"x")-E-k,C.mw=C.w&&C.w<C.mw?C.w:C.mw);C.get("maxHeight")&&(C.mh=tt(C.get("maxHeight"),"y")-W-H,C.mh=C.h&&C.h<C.mh?C.h:C.mh);if(e=C.get("href"),S=setTimeout(function(){p.show()},100),C.get("inline")){var a=t(e);o=t("<div>").hide().insertBefore(a),q.one($,function(){o.replaceWith(a)}),h(a)}else C.get("iframe")?h(" "):C.get("html")?h(C.get("html")):et(C,e)?(e=it(C,e),M=C.get("createImg"),t(M).addClass(_+"Photo").bind("error."+_,function(){h(V(G,"Error").html(C.get("imgError")))}).one("load",function(){r===Q&&setTimeout(function(){var e;C.get("retinaImage")&&i.devicePixelRatio>1&&(M.height=M.height/i.devicePixelRatio,M.width=M.width/i.devicePixelRatio),C.get("scalePhotos")&&(n=function(){M.height-=M.height*e,M.width-=M.width*e},C.mw&&M.width>C.mw&&(e=(M.width-C.mw)/M.width,n()),C.mh&&M.height>C.mh&&(e=(M.height-C.mh)/M.height,n())),C.h&&(M.style.marginTop=Math.max(C.mh-M.height,0)/2+"px"),c[1]&&(C.get("loop")||c[I+1])&&(M.style.cursor="pointer",t(M).bind("click."+_,function(){K.next()})),M.style.width=M.width+"px",M.style.height=M.height+"px",h(M)},1)}),M.src=e):e&&f.load(e,C.get("data"),function(e,i){r===Q&&h("error"===i?V(G,"Error").html(C.get("xhrError")):t(this).contents())})}()}}function st(){o||(P=!1,g=t(i),o=V(G).attr({id:O,"class":!1===t.support.opacity?_+"IE":"",role:"dialog",tabindex:"-1"}).hide(),n=V(G,"Overlay").hide(),p=t([V(G,"LoadingOverlay")[0],V(G,"LoadingGraphic")[0]]),h=V(G,"Wrapper"),r=V(G,"Content").append(m=V(G,"Title"),w=V(G,"Current"),y=t('<button type="button"/>').attr({id:_+"Previous"}),x=t('<button type="button"/>').attr({id:_+"Next"}),v=V("button","Slideshow"),p),b=t('<button type="button"/>').attr({id:_+"Close"}),h.append(V(G).append(V(G,"TopLeft"),a=V(G,"TopCenter"),V(G,"TopRight")),V(G,!1,"clear:left").append(s=V(G,"MiddleLeft"),r,l=V(G,"MiddleRight")),V(G,!1,"clear:left").append(V(G,"BottomLeft"),d=V(G,"BottomCenter"),V(G,"BottomRight"))).find("div div").css({float:"left"}),f=V(G,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),T=x.add(y).add(w).add(v)),e.body&&!o.parent().length&&t(e.body).append(n,o.append(h,f))}function lt(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),at(this))}return!!o&&(P||(P=!0,x.click(function(){K.next()}),y.click(function(){K.prev()}),b.click(function(){K.close()}),n.click(function(){C.get("overlayClose")&&K.close()}),t(e).bind("keydown."+_,function(t){var e=t.keyCode;L&&C.get("escKey")&&27===e&&(t.preventDefault(),K.close()),L&&C.get("arrowKey")&&c[1]&&!t.altKey&&(37===e?(t.preventDefault(),y.click()):39===e&&(t.preventDefault(),x.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+_,"."+j,i):t("."+j).live("click."+_,i)),!0)}t[O]||(t(st),(K=t.fn[O]=t[O]=function(e,i){var n=this;return e=e||{},t.isFunction(n)&&(n=t("<a/>"),e.open=!0),n[0]?(st(),lt()&&(i&&(e.onComplete=i),n.each(function(){var i=t.data(this,O)||{};t.data(this,O,t.extend(i,e))}).addClass(j),new Y(n[0],e).get("open")&&at(n[0])),n):n}).position=function(e,i){var n,c,u,f=0,p=0,m=o.offset();function w(){a[0].style.width=d[0].style.width=r[0].style.width=parseInt(o[0].style.width,10)-k+"px",r[0].style.height=s[0].style.height=l[0].style.height=parseInt(o[0].style.height,10)-H+"px"}if(g.unbind("resize."+_),o.css({top:-9e4,left:-9e4}),c=g.scrollTop(),u=g.scrollLeft(),C.get("fixed")?(m.top-=c,m.left-=u,o.css({position:"fixed"})):(f=c,p=u,o.css({position:"absolute"})),!1!==C.get("right")?p+=Math.max(g.width()-C.w-E-k-tt(C.get("right"),"x"),0):!1!==C.get("left")?p+=tt(C.get("left"),"x"):p+=Math.round(Math.max(g.width()-C.w-E-k,0)/2),!1!==C.get("bottom")?f+=Math.max(X()-C.h-W-H-tt(C.get("bottom"),"y"),0):!1!==C.get("top")?f+=tt(C.get("top"),"y"):f+=Math.round(Math.max(X()-C.h-W-H,0)/2),o.css({top:m.top,left:m.left,visibility:"visible"}),h[0].style.width=h[0].style.height="9999px",n={width:C.w+E+k,height:C.h+W+H,top:f,left:p},e){var v=0;t.each(n,function(t){n[t]===J[t]||(v=e)}),e=v}J=n,e||o.css(n),o.dequeue().animate(n,{duration:e||0,complete:function(){w(),F=!1,h[0].style.width=C.w+E+k+"px",h[0].style.height=C.h+W+H+"px",C.get("reposition")&&setTimeout(function(){g.bind("resize."+_,K.position)},1),t.isFunction(i)&&i()},step:w})},K.resize=function(t){var e;L&&((t=t||{}).width&&(C.w=tt(t.width,"x")-E-k),t.innerWidth&&(C.w=tt(t.innerWidth,"x")),u.css({width:C.w}),t.height&&(C.h=tt(t.height,"y")-W-H),t.innerHeight&&(C.h=tt(t.innerHeight,"y")),t.innerHeight||t.height||(e=u.scrollTop(),u.css({height:"auto"}),C.h=u.height()),u.css({height:C.h}),e&&u.scrollTop(e),K.position("none"===C.get("transition")?0:C.get("speed")))},K.prep=function(i){if(L){var n,h="none"===C.get("transition")?0:C.get("speed");u.remove(),(u=V(G,"LoadedContent").append(i)).hide().appendTo(f.show()).css({width:(C.w=C.w||u.width(),C.w=C.mw&&C.mw<C.w?C.mw:C.w,C.w),overflow:C.get("scrolling")?"auto":"hidden"}).css({height:(C.h=C.h||u.height(),C.h=C.mh&&C.mh<C.h?C.mh:C.h,C.h)}).prependTo(r),f.hide(),t(M).css({float:"none"}),ot(C.get("className")),n=function(){var i,n,r=c.length;function a(){!1===t.support.opacity&&o[0].style.removeAttribute("filter")}L&&(n=function(){clearTimeout(S),p.hide(),ht(z),C.get("onComplete")},m.html(C.get("title")).show(),u.show(),r>1?("string"==typeof C.get("current")&&w.html(C.get("current").replace("{current}",I+1).replace("{total}",r)).show(),x[C.get("loop")||I<r-1?"show":"hide"]().html(C.get("next")),y[C.get("loop")||I?"show":"hide"]().html(C.get("previous")),rt(),C.get("preloading")&&t.each([Z(-1),Z(1)],function(){var i=c[this],n=new Y(i,t.data(i,O)),o=n.get("href");o&&et(n,o)&&(o=it(n,o),e.createElement("img").src=o)})):T.hide(),C.get("iframe")?(i=C.get("createIframe"),C.get("scrolling")||(i.scrolling="no"),t(i).attr({src:C.get("href"),"class":_+"Iframe"}).one("load",n).appendTo(u),q.one($,function(){i.src="//about:blank"}),C.get("fastIframe")&&t(i).trigger("load")):n(),"fade"===C.get("transition")?o.fadeTo(h,1,a):a())},"fade"===C.get("transition")?o.fadeTo(h,0,function(){K.position(0,n)}):K.position(h,n)}},K.next=function(){!F&&c[1]&&(C.get("loop")||c[I+1])&&(I=Z(1),at(c[I]))},K.prev=function(){!F&&c[1]&&(C.get("loop")||I)&&(I=Z(-1),at(c[I]))},K.close=function(){L&&!R&&(R=!0,L=!1,ht(A),C.get("onCleanup"),g.unbind("."+_),n.fadeTo(C.get("fadeOut")||0,0),o.stop().fadeTo(C.get("fadeOut")||0,0,function(){o.hide(),n.hide(),ht($),u.remove(),setTimeout(function(){R=!1,ht(U),C.get("onClosed")},1)}))},K.remove=function(){o&&(o.stop(),t[O].close(),o.stop(!1,!0).remove(),n.remove(),R=!1,o=null,t("."+j).removeData(O).removeClass(j),t(e).unbind("click."+_).unbind("keydown."+_))},K.element=function(){return t(C.el)},K.settings=B)}(jQuery,document,window);plugin-fw/assets/js/yith-system-info.min.js000064400000002065151327614500014751 0ustar00jQuery(function(e){e(document).on("click",".notice-dismiss",function(){if("yith-system-alert"===e(this).parent().attr("id")){document.cookie="hide_yith_system_alert=yes;path=/"}}),e(document).on("click",".yith-download-log",function(){var t=e(this).parent(),o={action:"yith_create_log_file",file:e(this).data("file")};t.addClass("progress"),e.post(yith_sysinfo.ajax_url,o,function(e){if(!1!==e.file){var o=document.createElement("a"),i=e.file.split("/").pop();o.href=e.file,o.download=i,document.body.appendChild(o),o.click(),window.URL.revokeObjectURL(e.file),o.remove()}t.removeClass("progress")})}),e(document).on("click",".copy-link",function(t){t.preventDefault();var o=e(this),i=e("<textarea>");e("body").append(i),i.val("define( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );").select(),document.execCommand("Copy"),i.remove(),o.find(".copied-tooltip").length||(o.append(e("<span/>",{"class":"copied-tooltip"}).html(o.data("tooltip")).fadeIn(300)),setTimeout(function(){o.find(".copied-tooltip").fadeOut().remove()},3e3))})});plugin-fw/assets/js/yith-enhanced-select.js000064400000024123151327614500014733 0ustar00/* global yith_framework_enhanced_select_params */

jQuery( function ( $ ) {
    "use strict";

    $( document.body )
        .on( 'yith-framework-enhanced-select-init', function () {
            // Post Search
            $( '.yith-post-search' ).filter( ':not(.enhanced)' ).each( function () {
                var default_data = {
                        action   : 'yith_plugin_fw_json_search_posts',
                        security : yith_framework_enhanced_select_params.search_posts_nonce,
                        post_type: 'post'
                    },
                    current_data = $.extend( default_data, $( this ).data() ),
                    select2_args = {
                        allowClear        : $( this ).data( 'allow_clear' ) ? true : false,
                        placeholder       : $( this ).data( 'placeholder' ),
                        minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3',
                        escapeMarkup      : function ( m ) {
                            return m;
                        },
                        ajax              : {
                            url           : ajaxurl,
                            dataType      : 'json',
                            quietMillis   : 250,
                            data          : function ( params ) {
                                var default_data_to_return = {
                                    term: params.term
                                };

                                return $.extend( default_data_to_return, current_data );
                            },
                            processResults: function ( data ) {
                                var terms = [];
                                if ( data ) {
                                    $.each( data, function ( id, text ) {
                                        terms.push( { id: id, text: text } );
                                    } );
                                }
                                return {
                                    results: terms
                                };
                            },
                            cache         : true
                        }
                    };

                $( this ).select2( select2_args ).addClass( 'enhanced' );

                if ( $( this ).data( 'sortable' ) ) {
                    var $select = $( this );
                    var $list   = $( this ).next( '.select2-container' ).find( 'ul.select2-selection__rendered' );

                    $list.sortable( {
                                        placeholder         : 'ui-state-highlight select2-selection__choice',
                                        forcePlaceholderSize: true,
                                        items               : 'li:not(.select2-search__field)',
                                        tolerance           : 'pointer',
                                        stop                : function () {
                                            $( $list.find( '.select2-selection__choice' ).get().reverse() ).each( function () {
                                                var id     = $( this ).data( 'data' ).id;
                                                var option = $select.find( 'option[value="' + id + '"]' )[ 0 ];
                                                $select.prepend( option );
                                            } );
                                        }
                                    } );
                }
            } );

            // Customer Search
            $( '.yith-customer-search' ).filter( ':not(.enhanced)' ).each( function () {
                var default_data = {
                        action   : 'woocommerce_json_search_customers',
                        security : yith_framework_enhanced_select_params.search_customers_nonce,
                    },
                    current_data = $.extend( default_data, $( this ).data() ),
                    select2_args = {
                        allowClear        : $( this ).data( 'allow_clear' ) ? true : false,
                        placeholder       : $( this ).data( 'placeholder' ),
                        minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3',
                        escapeMarkup      : function ( m ) {
                            return m;
                        },
                        ajax              : {
                            url           : ajaxurl,
                            dataType      : 'json',
                            quietMillis   : 250,
                            data          : function ( params ) {
                                var default_data_to_return = {
                                    term: params.term
                                };

                                return $.extend( default_data_to_return, current_data );
                            },
                            processResults: function ( data ) {
                                var terms = [];
                                if ( data ) {
                                    $.each( data, function ( id, text ) {
                                        terms.push( { id: id, text: text } );
                                    } );
                                }
                                return {
                                    results: terms
                                };
                            },
                            cache         : true
                        }
                    };

                $( this ).select2( select2_args ).addClass( 'enhanced' );

                if ( $( this ).data( 'sortable' ) ) {
                    var $select = $( this );
                    var $list   = $( this ).next( '.select2-container' ).find( 'ul.select2-selection__rendered' );

                    $list.sortable( {
                        placeholder         : 'ui-state-highlight select2-selection__choice',
                        forcePlaceholderSize: true,
                        items               : 'li:not(.select2-search__field)',
                        tolerance           : 'pointer',
                        stop                : function () {
                            $( $list.find( '.select2-selection__choice' ).get().reverse() ).each( function () {
                                var id     = $( this ).data( 'data' ).id;
                                var option = $select.find( 'option[value="' + id + '"]' )[ 0 ];
                                $select.prepend( option );
                            } );
                        }
                    } );
                }
            } );

            // TERM SEARCH
            $( '.yith-term-search' ).filter( ':not(.enhanced)' ).each( function () {
                var default_data = {
                        action  : 'yith_plugin_fw_json_search_terms',
                        security: yith_framework_enhanced_select_params.search_terms_nonce,
                        taxonomy: 'category'
                    },
                    current_data = $.extend( default_data, $( this ).data() ),
                    select2_args = {
                        allowClear        : $( this ).data( 'allow_clear' ) ? true : false,
                        placeholder       : $( this ).data( 'placeholder' ),
                        minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3',
                        escapeMarkup      : function ( m ) {
                            return m;
                        },
                        ajax              : {
                            url           : ajaxurl,
                            dataType      : 'json',
                            quietMillis   : 250,
                            data          : function ( params ) {
                                var default_data_to_return = {
                                    term: params.term
                                };

                                return $.extend( default_data_to_return, current_data );
                            },
                            processResults: function ( data ) {
                                var terms = [];
                                if ( data ) {
                                    $.each( data, function ( id, text ) {
                                        terms.push( { id: id, text: text } );
                                    } );
                                }
                                return {
                                    results: terms
                                };
                            },
                            cache         : true
                        }
                    };

                $( this ).select2( select2_args ).addClass( 'enhanced' );

                if ( $( this ).data( 'sortable' ) ) {
                    var $select = $( this );
                    var $list   = $( this ).next( '.select2-container' ).find( 'ul.select2-selection__rendered' );

                    $list.sortable( {
                                        placeholder         : 'ui-state-highlight select2-selection__choice',
                                        forcePlaceholderSize: true,
                                        items               : 'li:not(.select2-search__field)',
                                        tolerance           : 'pointer',
                                        stop                : function () {
                                            $( $list.find( '.select2-selection__choice' ).get().reverse() ).each( function () {
                                                var id     = $( this ).data( 'data' ).id;
                                                var option = $select.find( 'option[value="' + id + '"]' )[ 0 ];
                                                $select.prepend( option );
                                            } );
                                        }
                                    } );
                }
            } );

        } ).trigger( 'yith-framework-enhanced-select-init' );
    
} );plugin-fw/assets/js/metabox.min.js000064400000004514151327614500013161 0ustar00!function(e){e(".metaboxes-tab").each(function(){var t=e(this),a=t.find(".tabs-panel");a.hide();var i=wpCookies.get("active_metabox_tab");i=null==i?t.find("ul.metaboxes-tabs li:first-child a").attr("href"):"#"+i,t.find(i).show(),t.find(".metaboxes-tabs a").on("click",function(t){t.preventDefault();var i=e(this).parent();if(!i.hasClass("tabs")){var s=e(this).attr("href");i.addClass("tabs").siblings("li").removeClass("tabs"),a.hide(),e(s).show()}})});var t=e("#_active_page_options-container"),a=t.parent().html();function i(t,a,i,s){var n=!0;if("string"==typeof a){":radio"===a.substr(0,6)&&(a+=":checked");var d=e(a),o=d.attr("type"),r=d.val();switch(o){case"checkbox":r=d.is(":checked")?"yes":"no";break;case"radio":r=d.find('input[type="radio"]').filter(":checked").val()}i=i.split(",");for(var c=0;c<i.length;c++){if(r==i[c]){n=!0;break}n=!1}}var h,b=e(t),l=e(t+"-container").parent(),p=s.split("-");for(h in p){var f=p[h];if(n)switch(f){case"disable":l.removeClass("yith-disabled"),b.attr("disabled",!1);break;case"hide":case"hideNow":l.show();break;case"hideme":b.show();break;case"fadeOut":l.show();break;case"fadeInOut":case"fadeIn":default:l.show(500)}else switch(f){case"disable":l.addClass("yith-disabled"),b.attr("disabled",!0);break;case"hide":case"hideNow":l.hide();break;case"hideme":b.hide();break;case"fadeInOut":case"fadeOut":l.hide(500);break;case"fadeIn":default:l.hide()}}}t.parent().remove(),e(a).insertAfter("#yit-post-setting .handlediv"),e(a).insertAfter("#yit-page-setting .handlediv"),t.on("click",function(){e("#_active_page_options").is(":checked")?e("#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab").css({opacity:1,"pointer-events":"auto"}):e("#yit-page-setting .inside .metaboxes-tab, #yit-post-setting .inside .metaboxes-tab").css({opacity:.5,"pointer-events":"none"})}).trigger("click"),e(document.body).on("yith-plugin-fw-metabox-init-deps",function(){e(document.body).trigger("yith-plugin-fw-init-radio"),e(".metaboxes-tab [data-dep-target]:not(.yith-plugin-fw-metabox-deps-initialized)").each(function(){var t=e(this),a="#"+t.data("dep-target"),s="#"+t.data("dep-id"),n=t.data("dep-value"),d=t.data("dep-type");i(a,s,n.toString(),d),e(s).on("change",function(){i(a,s,n.toString(),d)}).change(),t.addClass("yith-plugin-fw-metabox-deps-initialized")})}).trigger("yith-plugin-fw-metabox-init-deps")}(jQuery);plugin-fw/assets/js/jquery.colorbox.js000064400000070712151327614500014110 0ustar00/*!
	Colorbox 1.6.3
	license: MIT
	http://www.jacklmoore.com/colorbox
*/
(function ($, document, window) {
	var
	// Default settings object.
	// See http://jacklmoore.com/colorbox for details.
	defaults = {
		// data sources
		html: false,
		photo: false,
		iframe: false,
		inline: false,

		// behavior and appearance
		transition: "elastic",
		speed: 300,
		fadeOut: 300,
		width: false,
		initialWidth: "600",
		innerWidth: false,
		maxWidth: false,
		height: false,
		initialHeight: "450",
		innerHeight: false,
		maxHeight: false,
		scalePhotos: true,
		scrolling: true,
		opacity: 0.9,
		preloading: true,
		className: false,
		overlayClose: true,
		escKey: true,
		arrowKey: true,
		top: false,
		bottom: false,
		left: false,
		right: false,
		fixed: false,
		data: undefined,
		closeButton: true,
		fastIframe: true,
		open: false,
		reposition: true,
		loop: true,
		slideshow: false,
		slideshowAuto: true,
		slideshowSpeed: 2500,
		slideshowStart: "start slideshow",
		slideshowStop: "stop slideshow",
		photoRegex: /\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,

		// alternate image paths for high-res displays
		retinaImage: false,
		retinaUrl: false,
		retinaSuffix: '@2x.$1',

		// internationalization
		current: "image {current} of {total}",
		previous: "previous",
		next: "next",
		close: "close",
		xhrError: "This content failed to load.",
		imgError: "This image failed to load.",

		// accessbility
		returnFocus: true,
		trapFocus: true,

		// callbacks
		onOpen: false,
		onLoad: false,
		onComplete: false,
		onCleanup: false,
		onClosed: false,

		rel: function() {
			return this.rel;
		},
		href: function() {
			// using this.href would give the absolute url, when the href may have been inteded as a selector (e.g. '#container')
			return $(this).attr('href');
		},
		title: function() {
			return this.title;
		},
		createImg: function() {
			var img = new Image();
			var attrs = $(this).data('cbox-img-attrs');

			if (typeof attrs === 'object') {
				$.each(attrs, function(key, val){
					img[key] = val;
				});
			}

			return img;
		},
		createIframe: function() {
			var iframe = document.createElement('iframe');
			var attrs = $(this).data('cbox-iframe-attrs');

			if (typeof attrs === 'object') {
				$.each(attrs, function(key, val){
					iframe[key] = val;
				});
			}

			if ('frameBorder' in iframe) {
				iframe.frameBorder = 0;
			}
			if ('allowTransparency' in iframe) {
				iframe.allowTransparency = "true";
			}
			iframe.name = (new Date()).getTime(); // give the iframe a unique name to prevent caching
			iframe.allowFullscreen = true;

			return iframe;
		}
	},

	// Abstracting the HTML and event identifiers for easy rebranding
	colorbox = 'colorbox',
	prefix = 'cbox',
	boxElement = prefix + 'Element',

	// Events
	event_open = prefix + '_open',
	event_load = prefix + '_load',
	event_complete = prefix + '_complete',
	event_cleanup = prefix + '_cleanup',
	event_closed = prefix + '_closed',
	event_purge = prefix + '_purge',

	// Cached jQuery Object Variables
	$overlay,
	$box,
	$wrap,
	$content,
	$topBorder,
	$leftBorder,
	$rightBorder,
	$bottomBorder,
	$related,
	$window,
	$loaded,
	$loadingBay,
	$loadingOverlay,
	$title,
	$current,
	$slideshow,
	$next,
	$prev,
	$close,
	$groupControls,
	$events = $('<a/>'), // $({}) would be prefered, but there is an issue with jQuery 1.4.2

	// Variables for cached values or use across multiple functions
	settings,
	interfaceHeight,
	interfaceWidth,
	loadedHeight,
	loadedWidth,
	index,
	photo,
	open,
	active,
	closing,
	loadingTimer,
	publicMethod,
	div = "div",
	requests = 0,
	previousCSS = {},
	init;

	// ****************
	// HELPER FUNCTIONS
	// ****************

	// Convenience function for creating new jQuery objects
	function $tag(tag, id, css) {
		var element = document.createElement(tag);

		if (id) {
			element.id = prefix + id;
		}

		if (css) {
			element.style.cssText = css;
		}

		return $(element);
	}

	// Get the window height using innerHeight when available to avoid an issue with iOS
	// http://bugs.jquery.com/ticket/6724
	function winheight() {
		return window.innerHeight ? window.innerHeight : $(window).height();
	}

	function Settings(element, options) {
		if (options !== Object(options)) {
			options = {};
		}

		this.cache = {};
		this.el = element;

		this.value = function(key) {
			var dataAttr;

			if (this.cache[key] === undefined) {
				dataAttr = $(this.el).attr('data-cbox-'+key);

				if (dataAttr !== undefined) {
					this.cache[key] = dataAttr;
				} else if (options[key] !== undefined) {
					this.cache[key] = options[key];
				} else if (defaults[key] !== undefined) {
					this.cache[key] = defaults[key];
				}
			}

			return this.cache[key];
		};

		this.get = function(key) {
			var value = this.value(key);
			return $.isFunction(value) ? value.call(this.el, this) : value;
		};
	}

	// Determine the next and previous members in a group.
	function getIndex(increment) {
		var
		max = $related.length,
		newIndex = (index + increment) % max;

		return (newIndex < 0) ? max + newIndex : newIndex;
	}

	// Convert '%' and 'px' values to integers
	function setSize(size, dimension) {
		return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));
	}

	// Checks an href to see if it is a photo.
	// There is a force photo option (photo: true) for hrefs that cannot be matched by the regex.
	function isImage(settings, url) {
		return settings.get('photo') || settings.get('photoRegex').test(url);
	}

	function retinaUrl(settings, url) {
		return settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;
	}

	function trapFocus(e) {
		if ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {
			e.stopPropagation();
			$box.focus();
		}
	}

	function setClass(str) {
		if (setClass.str !== str) {
			$box.add($overlay).removeClass(setClass.str).addClass(str);
			setClass.str = str;
		}
	}

	function getRelated(rel) {
		index = 0;

		if (rel && rel !== false && rel !== 'nofollow') {
			$related = $('.' + boxElement).filter(function () {
				var options = $.data(this, colorbox);
				var settings = new Settings(this, options);
				return (settings.get('rel') === rel);
			});
			index = $related.index(settings.el);

			// Check direct calls to Colorbox.
			if (index === -1) {
				$related = $related.add(settings.el);
				index = $related.length - 1;
			}
		} else {
			$related = $(settings.el);
		}
	}

	function trigger(event) {
		// for external use
		$(document).trigger(event);
		// for internal use
		$events.triggerHandler(event);
	}

	var slideshow = (function(){
		var active,
			className = prefix + "Slideshow_",
			click = "click." + prefix,
			timeOut;

		function clear () {
			clearTimeout(timeOut);
		}

		function set() {
			if (settings.get('loop') || $related[index + 1]) {
				clear();
				timeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));
			}
		}

		function start() {
			$slideshow
				.html(settings.get('slideshowStop'))
				.unbind(click)
				.one(click, stop);

			$events
				.bind(event_complete, set)
				.bind(event_load, clear);

			$box.removeClass(className + "off").addClass(className + "on");
		}

		function stop() {
			clear();

			$events
				.unbind(event_complete, set)
				.unbind(event_load, clear);

			$slideshow
				.html(settings.get('slideshowStart'))
				.unbind(click)
				.one(click, function () {
					publicMethod.next();
					start();
				});

			$box.removeClass(className + "on").addClass(className + "off");
		}

		function reset() {
			active = false;
			$slideshow.hide();
			clear();
			$events
				.unbind(event_complete, set)
				.unbind(event_load, clear);
			$box.removeClass(className + "off " + className + "on");
		}

		return function(){
			if (active) {
				if (!settings.get('slideshow')) {
					$events.unbind(event_cleanup, reset);
					reset();
				}
			} else {
				if (settings.get('slideshow') && $related[1]) {
					active = true;
					$events.one(event_cleanup, reset);
					if (settings.get('slideshowAuto')) {
						start();
					} else {
						stop();
					}
					$slideshow.show();
				}
			}
		};

	}());


	function launch(element) {
		var options;

		if (!closing) {

			options = $(element).data(colorbox);

			settings = new Settings(element, options);

			getRelated(settings.get('rel'));

			if (!open) {
				open = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.

				setClass(settings.get('className'));

				// Show colorbox so the sizes can be calculated in older versions of jQuery
				$box.css({visibility:'hidden', display:'block', opacity:''});

				$loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');
				$content.css({width:'', height:''}).append($loaded);

				// Cache values needed for size calculations
				interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();
				interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
				loadedHeight = $loaded.outerHeight(true);
				loadedWidth = $loaded.outerWidth(true);

				// Opens inital empty Colorbox prior to content being loaded.
				var initialWidth = setSize(settings.get('initialWidth'), 'x');
				var initialHeight = setSize(settings.get('initialHeight'), 'y');
				var maxWidth = settings.get('maxWidth');
				var maxHeight = settings.get('maxHeight');

				settings.w = Math.max((maxWidth !== false ? Math.min(initialWidth, setSize(maxWidth, 'x')) : initialWidth) - loadedWidth - interfaceWidth, 0);
				settings.h = Math.max((maxHeight !== false ? Math.min(initialHeight, setSize(maxHeight, 'y')) : initialHeight) - loadedHeight - interfaceHeight, 0);

				$loaded.css({width:'', height:settings.h});
				publicMethod.position();

				trigger(event_open);
				settings.get('onOpen');

				$groupControls.add($title).hide();

				$box.focus();

				if (settings.get('trapFocus')) {
					// Confine focus to the modal
					// Uses event capturing that is not supported in IE8-
					if (document.addEventListener) {

						document.addEventListener('focus', trapFocus, true);

						$events.one(event_closed, function () {
							document.removeEventListener('focus', trapFocus, true);
						});
					}
				}

				// Return focus on closing
				if (settings.get('returnFocus')) {
					$events.one(event_closed, function () {
						$(settings.el).focus();
					});
				}
			}

			var opacity = parseFloat(settings.get('opacity'));
			$overlay.css({
				opacity: opacity === opacity ? opacity : '',
				cursor: settings.get('overlayClose') ? 'pointer' : '',
				visibility: 'visible'
			}).show();

			if (settings.get('closeButton')) {
				$close.html(settings.get('close')).appendTo($content);
			} else {
				$close.appendTo('<div/>'); // replace with .detach() when dropping jQuery < 1.4
			}

			load();
		}
	}

	// Colorbox's markup needs to be added to the DOM prior to being called
	// so that the browser will go ahead and load the CSS background images.
	function appendHTML() {
		if (!$box) {
			init = false;
			$window = $(window);
			$box = $tag(div).attr({
				id: colorbox,
				'class': $.support.opacity === false ? prefix + 'IE' : '', // class for optional IE8 & lower targeted CSS.
				role: 'dialog',
				tabindex: '-1'
			}).hide();
			$overlay = $tag(div, "Overlay").hide();
			$loadingOverlay = $([$tag(div, "LoadingOverlay")[0],$tag(div, "LoadingGraphic")[0]]);
			$wrap = $tag(div, "Wrapper");
			$content = $tag(div, "Content").append(
				$title = $tag(div, "Title"),
				$current = $tag(div, "Current"),
				$prev = $('<button type="button"/>').attr({id:prefix+'Previous'}),
				$next = $('<button type="button"/>').attr({id:prefix+'Next'}),
				$slideshow = $tag('button', "Slideshow"),
				$loadingOverlay
			);

			$close = $('<button type="button"/>').attr({id:prefix+'Close'});

			$wrap.append( // The 3x3 Grid that makes up Colorbox
				$tag(div).append(
					$tag(div, "TopLeft"),
					$topBorder = $tag(div, "TopCenter"),
					$tag(div, "TopRight")
				),
				$tag(div, false, 'clear:left').append(
					$leftBorder = $tag(div, "MiddleLeft"),
					$content,
					$rightBorder = $tag(div, "MiddleRight")
				),
				$tag(div, false, 'clear:left').append(
					$tag(div, "BottomLeft"),
					$bottomBorder = $tag(div, "BottomCenter"),
					$tag(div, "BottomRight")
				)
			).find('div div').css({'float': 'left'});

			$loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;');

			$groupControls = $next.add($prev).add($current).add($slideshow);
		}
		if (document.body && !$box.parent().length) {
			$(document.body).append($overlay, $box.append($wrap, $loadingBay));
		}
	}

	// Add Colorbox's event bindings
	function addBindings() {
		function clickHandler(e) {
			// ignore non-left-mouse-clicks and clicks modified with ctrl / command, shift, or alt.
			// See: http://jacklmoore.com/notes/click-events/
			if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey)) {
				e.preventDefault();
				launch(this);
			}
		}

		if ($box) {
			if (!init) {
				init = true;

				// Anonymous functions here keep the public method from being cached, thereby allowing them to be redefined on the fly.
				$next.click(function () {
					publicMethod.next();
				});
				$prev.click(function () {
					publicMethod.prev();
				});
				$close.click(function () {
					publicMethod.close();
				});
				$overlay.click(function () {
					if (settings.get('overlayClose')) {
						publicMethod.close();
					}
				});

				// Key Bindings
				$(document).bind('keydown.' + prefix, function (e) {
					var key = e.keyCode;
					if (open && settings.get('escKey') && key === 27) {
						e.preventDefault();
						publicMethod.close();
					}
					if (open && settings.get('arrowKey') && $related[1] && !e.altKey) {
						if (key === 37) {
							e.preventDefault();
							$prev.click();
						} else if (key === 39) {
							e.preventDefault();
							$next.click();
						}
					}
				});

				if ($.isFunction($.fn.on)) {
					// For jQuery 1.7+
					$(document).on('click.'+prefix, '.'+boxElement, clickHandler);
				} else {
					// For jQuery 1.3.x -> 1.6.x
					// This code is never reached in jQuery 1.9, so do not contact me about 'live' being removed.
					// This is not here for jQuery 1.9, it's here for legacy users.
					$('.'+boxElement).live('click.'+prefix, clickHandler);
				}
			}
			return true;
		}
		return false;
	}

	// Don't do anything if Colorbox already exists.
	if ($[colorbox]) {
		return;
	}

	// Append the HTML when the DOM loads
	$(appendHTML);


	// ****************
	// PUBLIC FUNCTIONS
	// Usage format: $.colorbox.close();
	// Usage from within an iframe: parent.jQuery.colorbox.close();
	// ****************

	publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) {
		var settings;
		var $obj = this;

		options = options || {};

		if ($.isFunction($obj)) { // assume a call to $.colorbox
			$obj = $('<a/>');
			options.open = true;
		}

		if (!$obj[0]) { // colorbox being applied to empty collection
			return $obj;
		}

		appendHTML();

		if (addBindings()) {

			if (callback) {
				options.onComplete = callback;
			}

			$obj.each(function () {
				var old = $.data(this, colorbox) || {};
				$.data(this, colorbox, $.extend(old, options));
			}).addClass(boxElement);

			settings = new Settings($obj[0], options);

			if (settings.get('open')) {
				launch($obj[0]);
			}
		}

		return $obj;
	};

	publicMethod.position = function (speed, loadedCallback) {
		var
		css,
		top = 0,
		left = 0,
		offset = $box.offset(),
		scrollTop,
		scrollLeft;

		$window.unbind('resize.' + prefix);

		// remove the modal so that it doesn't influence the document width/height
		$box.css({top: -9e4, left: -9e4});

		scrollTop = $window.scrollTop();
		scrollLeft = $window.scrollLeft();

		if (settings.get('fixed')) {
			offset.top -= scrollTop;
			offset.left -= scrollLeft;
			$box.css({position: 'fixed'});
		} else {
			top = scrollTop;
			left = scrollLeft;
			$box.css({position: 'absolute'});
		}

		// keeps the top and left positions within the browser's viewport.
		if (settings.get('right') !== false) {
			left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.get('right'), 'x'), 0);
		} else if (settings.get('left') !== false) {
			left += setSize(settings.get('left'), 'x');
		} else {
			left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2);
		}

		if (settings.get('bottom') !== false) {
			top += Math.max(winheight() - settings.h - loadedHeight - interfaceHeight - setSize(settings.get('bottom'), 'y'), 0);
		} else if (settings.get('top') !== false) {
			top += setSize(settings.get('top'), 'y');
		} else {
			top += Math.round(Math.max(winheight() - settings.h - loadedHeight - interfaceHeight, 0) / 2);
		}

		$box.css({top: offset.top, left: offset.left, visibility:'visible'});

		// this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
		// but it has to be shrank down around the size of div#colorbox when it's done.  If not,
		// it can invoke an obscure IE bug when using iframes.
		$wrap[0].style.width = $wrap[0].style.height = "9999px";

		function modalDimensions() {
			$topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt($box[0].style.width,10) - interfaceWidth)+'px';
			$content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt($box[0].style.height,10) - interfaceHeight)+'px';
		}

		css = {width: settings.w + loadedWidth + interfaceWidth, height: settings.h + loadedHeight + interfaceHeight, top: top, left: left};

		// setting the speed to 0 if the content hasn't changed size or position
		if (speed) {
			var tempSpeed = 0;
			$.each(css, function(i){
				if (css[i] !== previousCSS[i]) {
					tempSpeed = speed;
					return;
				}
			});
			speed = tempSpeed;
		}

		previousCSS = css;

		if (!speed) {
			$box.css(css);
		}

		$box.dequeue().animate(css, {
			duration: speed || 0,
			complete: function () {
				modalDimensions();

				active = false;

				// shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
				$wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px";
				$wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px";

				if (settings.get('reposition')) {
					setTimeout(function () {  // small delay before binding onresize due to an IE8 bug.
						$window.bind('resize.' + prefix, publicMethod.position);
					}, 1);
				}

				if ($.isFunction(loadedCallback)) {
					loadedCallback();
				}
			},
			step: modalDimensions
		});
	};

	publicMethod.resize = function (options) {
		var scrolltop;

		if (open) {
			options = options || {};

			if (options.width) {
				settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth;
			}

			if (options.innerWidth) {
				settings.w = setSize(options.innerWidth, 'x');
			}

			$loaded.css({width: settings.w});

			if (options.height) {
				settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight;
			}

			if (options.innerHeight) {
				settings.h = setSize(options.innerHeight, 'y');
			}

			if (!options.innerHeight && !options.height) {
				scrolltop = $loaded.scrollTop();
				$loaded.css({height: "auto"});
				settings.h = $loaded.height();
			}

			$loaded.css({height: settings.h});

			if(scrolltop) {
				$loaded.scrollTop(scrolltop);
			}

			publicMethod.position(settings.get('transition') === "none" ? 0 : settings.get('speed'));
		}
	};

	publicMethod.prep = function (object) {
		if (!open) {
			return;
		}

		var callback, speed = settings.get('transition') === "none" ? 0 : settings.get('speed');

		$loaded.remove();

		$loaded = $tag(div, 'LoadedContent').append(object);

		function getWidth() {
			settings.w = settings.w || $loaded.width();
			settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
			return settings.w;
		}
		function getHeight() {
			settings.h = settings.h || $loaded.height();
			settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
			return settings.h;
		}

		$loaded.hide()
		.appendTo($loadingBay.show())// content has to be appended to the DOM for accurate size calculations.
		.css({width: getWidth(), overflow: settings.get('scrolling') ? 'auto' : 'hidden'})
		.css({height: getHeight()})// sets the height independently from the width in case the new width influences the value of height.
		.prependTo($content);

		$loadingBay.hide();

		// floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.

		$(photo).css({'float': 'none'});

		setClass(settings.get('className'));

		callback = function () {
			var total = $related.length,
				iframe,
				complete;

			if (!open) {
				return;
			}

			function removeFilter() { // Needed for IE8 in versions of jQuery prior to 1.7.2
				if ($.support.opacity === false) {
					$box[0].style.removeAttribute('filter');
				}
			}

			complete = function () {
				clearTimeout(loadingTimer);
				$loadingOverlay.hide();
				trigger(event_complete);
				settings.get('onComplete');
			};


			$title.html(settings.get('title')).show();
			$loaded.show();

			if (total > 1) { // handle grouping
				if (typeof settings.get('current') === "string") {
					$current.html(settings.get('current').replace('{current}', index + 1).replace('{total}', total)).show();
				}

				$next[(settings.get('loop') || index < total - 1) ? "show" : "hide"]().html(settings.get('next'));
				$prev[(settings.get('loop') || index) ? "show" : "hide"]().html(settings.get('previous'));

				slideshow();

				// Preloads images within a rel group
				if (settings.get('preloading')) {
					$.each([getIndex(-1), getIndex(1)], function(){
						var img,
							i = $related[this],
							settings = new Settings(i, $.data(i, colorbox)),
							src = settings.get('href');

						if (src && isImage(settings, src)) {
							src = retinaUrl(settings, src);
							img = document.createElement('img');
							img.src = src;
						}
					});
				}
			} else {
				$groupControls.hide();
			}

			if (settings.get('iframe')) {

				iframe = settings.get('createIframe');

				if (!settings.get('scrolling')) {
					iframe.scrolling = "no";
				}

				$(iframe)
					.attr({
						src: settings.get('href'),
						'class': prefix + 'Iframe'
					})
					.one('load', complete)
					.appendTo($loaded);

				$events.one(event_purge, function () {
					iframe.src = "//about:blank";
				});

				if (settings.get('fastIframe')) {
					$(iframe).trigger('load');
				}
			} else {
				complete();
			}

			if (settings.get('transition') === 'fade') {
				$box.fadeTo(speed, 1, removeFilter);
			} else {
				removeFilter();
			}
		};

		if (settings.get('transition') === 'fade') {
			$box.fadeTo(speed, 0, function () {
				publicMethod.position(0, callback);
			});
		} else {
			publicMethod.position(speed, callback);
		}
	};

	function load () {
		var href, setResize, prep = publicMethod.prep, $inline, request = ++requests;

		active = true;

		photo = false;

		trigger(event_purge);
		trigger(event_load);
		settings.get('onLoad');

		settings.h = settings.get('height') ?
				setSize(settings.get('height'), 'y') - loadedHeight - interfaceHeight :
				settings.get('innerHeight') && setSize(settings.get('innerHeight'), 'y');

		settings.w = settings.get('width') ?
				setSize(settings.get('width'), 'x') - loadedWidth - interfaceWidth :
				settings.get('innerWidth') && setSize(settings.get('innerWidth'), 'x');

		// Sets the minimum dimensions for use in image scaling
		settings.mw = settings.w;
		settings.mh = settings.h;

		// Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
		// If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
		if (settings.get('maxWidth')) {
			settings.mw = setSize(settings.get('maxWidth'), 'x') - loadedWidth - interfaceWidth;
			settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
		}
		if (settings.get('maxHeight')) {
			settings.mh = setSize(settings.get('maxHeight'), 'y') - loadedHeight - interfaceHeight;
			settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
		}

		href = settings.get('href');

		loadingTimer = setTimeout(function () {
			$loadingOverlay.show();
		}, 100);

		if (settings.get('inline')) {
			var $target = $(href);
			// Inserts an empty placeholder where inline content is being pulled from.
			// An event is bound to put inline content back when Colorbox closes or loads new content.
			$inline = $('<div>').hide().insertBefore($target);

			$events.one(event_purge, function () {
				$inline.replaceWith($target);
			});

			prep($target);
		} else if (settings.get('iframe')) {
			// IFrame element won't be added to the DOM until it is ready to be displayed,
			// to avoid problems with DOM-ready JS that might be trying to run in that iframe.
			prep(" ");
		} else if (settings.get('html')) {
			prep(settings.get('html'));
		} else if (isImage(settings, href)) {

			href = retinaUrl(settings, href);

			photo = settings.get('createImg');

			$(photo)
			.addClass(prefix + 'Photo')
			.bind('error.'+prefix,function () {
				prep($tag(div, 'Error').html(settings.get('imgError')));
			})
			.one('load', function () {
				if (request !== requests) {
					return;
				}

				// A small pause because some browsers will occassionaly report a
				// img.width and img.height of zero immediately after the img.onload fires
				setTimeout(function(){
					var percent;

					if (settings.get('retinaImage') && window.devicePixelRatio > 1) {
						photo.height = photo.height / window.devicePixelRatio;
						photo.width = photo.width / window.devicePixelRatio;
					}

					if (settings.get('scalePhotos')) {
						setResize = function () {
							photo.height -= photo.height * percent;
							photo.width -= photo.width * percent;
						};
						if (settings.mw && photo.width > settings.mw) {
							percent = (photo.width - settings.mw) / photo.width;
							setResize();
						}
						if (settings.mh && photo.height > settings.mh) {
							percent = (photo.height - settings.mh) / photo.height;
							setResize();
						}
					}

					if (settings.h) {
						photo.style.marginTop = Math.max(settings.mh - photo.height, 0) / 2 + 'px';
					}

					if ($related[1] && (settings.get('loop') || $related[index + 1])) {
						photo.style.cursor = 'pointer';

						$(photo).bind('click.'+prefix, function () {
							publicMethod.next();
						});
					}

					photo.style.width = photo.width + 'px';
					photo.style.height = photo.height + 'px';
					prep(photo);
				}, 1);
			});

			photo.src = href;

		} else if (href) {
			$loadingBay.load(href, settings.get('data'), function (data, status) {
				if (request === requests) {
					prep(status === 'error' ? $tag(div, 'Error').html(settings.get('xhrError')) : $(this).contents());
				}
			});
		}
	}

	// Navigates to the next page/image in a set.
	publicMethod.next = function () {
		if (!active && $related[1] && (settings.get('loop') || $related[index + 1])) {
			index = getIndex(1);
			launch($related[index]);
		}
	};

	publicMethod.prev = function () {
		if (!active && $related[1] && (settings.get('loop') || index)) {
			index = getIndex(-1);
			launch($related[index]);
		}
	};

	// Note: to use this within an iframe use the following format: parent.jQuery.colorbox.close();
	publicMethod.close = function () {
		if (open && !closing) {

			closing = true;
			open = false;
			trigger(event_cleanup);
			settings.get('onCleanup');
			$window.unbind('.' + prefix);
			$overlay.fadeTo(settings.get('fadeOut') || 0, 0);

			$box.stop().fadeTo(settings.get('fadeOut') || 0, 0, function () {
				$box.hide();
				$overlay.hide();
				trigger(event_purge);
				$loaded.remove();

				setTimeout(function () {
					closing = false;
					trigger(event_closed);
					settings.get('onClosed');
				}, 1);
			});
		}
	};

	// Removes changes Colorbox made to the document, but does not remove the plugin.
	publicMethod.remove = function () {
		if (!$box) { return; }

		$box.stop();
		$[colorbox].close();
		$box.stop(false, true).remove();
		$overlay.remove();
		closing = false;
		$box = null;
		$('.' + boxElement)
			.removeData(colorbox)
			.removeClass(boxElement);

		$(document).unbind('click.'+prefix).unbind('keydown.'+prefix);
	};

	// A method for fetching the current element Colorbox is referencing.
	// returns a jQuery object.
	publicMethod.element = function () {
		return $(settings.el);
	};

	publicMethod.settings = defaults;

}(jQuery, document, window));plugin-fw/assets/js/yit-wp-pointer.min.js000064400000002361151327614500014427 0ustar00jQuery(function(e){var t=custom_pointer.pointers[0],n=t.options,o=e(t.target),i=t.pointer_id;e(o).find(".wp-submenu li a").each(function(){var s=e(this),r=s.attr("href");if((r=r.replace("admin.php?page=",""))==i){var p=s.add(o),a=o.find(t.target.replace("#","."));o.toggleClass("wp-no-current-submenu wp-menu-open wp-has-current-submenu"),s.pointer({pointerClass:"yit-wp-pointer",content:n.content,position:n.position,open:function(){p.toggleClass("yit-pointer-selected-row"),a.addClass("yit-pointer")},close:function(){o.toggleClass("wp-no-current-submenu wp-menu-open wp-has-current-submenu"),p.toggleClass("yit-pointer-selected-row"),a.removeClass("yit-pointer"),e.ajax({type:"POST",url:ajaxurl,data:{action:"dismiss-wp-pointer",pointer:i},success:function(e){}})}}).pointer("open")}else if("yith_default_pointer"==i){p=s.add(o),a=o.find(t.target.replace("#","."));var u=e(t.target);u.addClass("wp-has-current-submenu"),a.pointer({pointerClass:"yit-wp-pointer",content:n.content,position:n.position,open:function(){u.addClass("yit-pointer-selected-row")},close:function(){u.removeClass("yit-pointer-selected-row wp-has-current-submenu"),e.ajax({type:"POST",url:ajaxurl,data:{action:"dismiss-wp-pointer",pointer:i},success:function(e){}})}}).pointer("open")}})});plugin-fw/assets/js/how-to.min.js000064400000000144151327614500012732 0ustar00!function(r){var t=jQuery("#yith-how-to-premium").parent();void 0!==t&&t.prop("target","_blank")}();plugin-fw/assets/js/yith-fields.min.js000064400000045072151327614500013747 0ustar00!function(e){var t={selectors:{imgPreview:".yith-plugin-fw-upload-img-preview",uploadButton:".yith-plugin-fw-upload-button",imgUrl:".yith-plugin-fw-upload-img-url",resetButton:".yith-plugin-fw-upload-button-reset"},onImageChange:function(){var i=e(this).val(),n=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),a=e(this).parent().find(t.selectors.imgPreview).first();a.length<1&&(a=e(this).parent().parent().find(t.selectors.imgPreview).first()),n.test(i)?a.html('<img src="'+i+'" style="max-width:100px; max-height:100px;" />'):a.html("")},onButtonClick:function(i){i.preventDefault();var n,a=e(this).attr("id").replace(/-button$/,"").replace(/(\[|\])/g,"\\$1");if(n)n.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(n=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var i=n.state().get("selection").first().toJSON(),l=e("#"+a+"-yith-attachment-id");e("#"+a).val(i.url),l.length&&l.val(i.id),t.triggerImageChange()}),n.open()}},onResetClick:function(){var i=e(this),n=i.attr("id").replace(/(\[|\])/g,"\\$1"),a=i.attr("id").replace(/-button-reset$/,"").replace(/(\[|\])/g,"\\$1"),l=e("#"+n).data("default");e("#"+a).val(l),t.triggerImageChange()},triggerImageChange:function(){e(t.selectors.imgUrl).trigger("change")},initOnce:function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(e(document).on("change",t.selectors.imgUrl,t.onImageChange),e(document).on("click",t.selectors.uploadButton,t.onButtonClick),e(document).on("click",t.selectors.resetButton,t.onResetClick))}};t.initOnce();var i={selectors:{gallery:".yith-plugin-fw-image-gallery",notInitGallery:".yith-plugin-fw-image-gallery:not(.yith-plugin-fw-image-gallery--initialized)",button:".yith-plugin-fw-image-gallery .image-gallery-button",slideWrapper:"ul.slides-wrapper"},initOnce:function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&e(document).on("click",i.selectors.button,function(t){var n=e(this),a=n.closest(i.selectors.gallery),l=a.find(".image_gallery_ids"),o=l.val(),s=a.find("ul.slides-wrapper"),r=wp.media.frames.image_gallery=wp.media({title:n.data("choose"),button:{text:n.data("update")},states:[new wp.media.controller.Library({title:n.data("choose"),filterable:"all",multiple:!0})]});r.on("select",function(){r.state().get("selection").map(function(e){if((e=e.toJSON()).id){o=o?o+","+e.id:e.id;var t=e.sizes.thumbnail||e.sizes.medium||e.sizes.large||e.sizes.full;s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+t.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+n.data("delete")+'">x</a></li></ul></li>')}}),l.val(o),l.trigger("change")}),r.open()})},init:function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&e(i.selectors.notInitGallery).each(function(){e(this).addClass("yith-plugin-fw-image-gallery--initialized");var t=e(this).find(i.selectors.slideWrapper);t.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(n,a){var l="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");l=l+t+","}),t.closest(i.selectors.gallery).find(".image_gallery_ids").val(l)}})}),t.on("click","a.delete",function(t){t.preventDefault();var n=e(this).closest(i.selectors.gallery),a=n.find("ul.slides-wrapper"),l=n.find(".image_gallery_ids"),o="";e(this).closest("li.image").remove(),a.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");o=o+t+","}),l.val(o)})})}};i.initOnce(),e(function(){e(document).on("yith-plugin-fw-codemirror-init",function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.codeEditor&&e(".codemirror:not(.codemirror--initialized)").each(function(){var t=e(this).data("settings"),i=wp.codeEditor.initialize(e(this),t);e(this).addClass("codemirror--initialized"),e(this).data("codemirrorInstance",i)})}).trigger("yith-plugin-fw-codemirror-init")});e(document).on("yith_fields_init",function(){var n=e(".yith-plugin-fw-datepicker:not(.yith-plugin-fw-datepicker--initialized)"),a=e(".yith-plugin-fw-colorpicker:not(.yith-plugin-fw-colorpicker--initialized)"),l=e(".yith-plugin-fw-sidebar-layout:not(.yith-plugin-fw-sidebar-layout--initialized)"),o=e(".yith-plugin-fw-slider-container:not(.yith-plugin-fw-slider-container--initialized)"),s=e(".yit-icons-manager-wrapper:not(.yit-icons-manager-wrapper--initialized)");n.each(function(){e(this).addClass("yith-plugin-fw-datepicker--initialized");var t=e(this),i=t.data(),n=t.next(".yith-icon-calendar");i.showAnim=!1,i.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},i.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},t.datepicker(i),n&&n.on("click",function(){t.datepicker("show")})}),a.each(function(){e(this).addClass("yith-plugin-fw-colorpicker--initialized"),e(this).wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.trigger("change")}});var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),n=e(this).closest(".yith-single-colorpicker"),a=i.find(".wp-picker-input-wrap"),l=n.find(".wp-picker-input-wrap");if(a.length&&i.find("a.wp-color-result").attr("title",t),n.length&&n.find("a.wp-color-result").attr("title",t),!a.find(".wp-picker-default-custom").length){var o=e("<span/>").attr({"class":"wp-picker-default-custom"});a.find(".wp-picker-default").wrap(o)}l.find(".wp-picker-default-custom").length||(o=e("<span/>").attr({"class":"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(o))}),l.each(function(){e(this).addClass("yith-plugin-fw-sidebar-layout--initialized"),e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),n=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),a=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==a)switch(a){case"left":i.show(),n.hide();break;case"right":n.show(),i.hide();break;case"double":i.show(),n.show();break;default:i.hide(),n.hide()}})}),o.each(function(){e(this).addClass("yith-plugin-fw-slider-container--initialized");var t=e(this).find(".ui-slider-horizontal"),i=t.data("val"),n=t.data("min"),a=t.data("max"),l=t.data("step"),o=t.data("labels");t.slider({value:i,min:n,max:a,range:"min",step:l,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value).trigger("change"),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+o)}})}),s.each(function(){e(this).addClass("yit-icons-manager-wrapper--initialized");var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),n=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(a){var l=e(a.target).closest("li"),o=l.data("font"),s=l.data("icon"),r=l.data("key"),c=l.data("name");i.attr("data-font",o),i.attr("data-icon",s),i.attr("data-key",r),i.attr("data-name",c),n.val(o+":"+c),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var n=jQuery(".ui-sortable-handle"),a=0,l=new Array;for(a=0;a<n.length;a++)l[a]=e(n[a]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("wc-enhanced-select-init"),e(document.body).trigger("yith-framework-enhanced-select-init"),e(document).trigger("yith-plugin-fw-codemirror-init"),t.triggerImageChange(),i.init()}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),n=t.closest(".yith-plugin-fw-select-images__wrapper"),a=n.find(".yith-plugin-fw-select-images__item"),l=n.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed").trigger("change"),a.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("disabled")||t.trigger("click")}),e(document).on("click",".yith-plugin-fw-onoff-container input",function(t){e(this).is(":checked")?e(this).attr("value","yes").addClass("onoffchecked"):e(this).attr("value","no").removeClass("onoffchecked")}),e.fn.saveToggleElement=function(t,i){var n=e(this),a="yith_plugin_fw_save_toggle_element",l=n.serializeToggleElement(),o=n.find(".yith-toggle_wrapper"),s=o.attr("id"),r=e.urlParam("tab");l.append("security",o.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),n.closest(".metaboxes-tab.yith-plugin-ui").length?(a="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+a+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+s+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+a+"&tab="+r+"&toggle_id="+s,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,n])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,n=e(t).find(":input").serializeArray();return e.each(n,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),n=t.find("span.title").data("title_format"),a=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==n)var o=n.match(l);if(void 0!==a)var s=a.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)))}),""!==n&&t.find("span.title").html(n),""!==a&&t.find(".subtitle").html(a),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),n=i.closest(".yith-toggle-row"),a=n.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;n.is(".yith-toggle-row-opened")?a.slideUp(400):a.slideDown(400),n.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),n=i.data("box_id"),a=i.data("closed_label"),l=i.data("opened_label"),o=i.closest(".yith-toggle_wrapper").attr("id"),s=wp.template("yith-toggle-element-add-box-content-"+o);""!==n&&(e("#"+n).html(s({index:"box_id"})).slideToggle(),""!==a&&(i.html()===a?i.html(l).removeClass("closed"):i.html(a).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),n=e(this).closest(".yith-toggle_wrapper").attr("id"),a=i.find(".spinner"),l=e(this).parents(".toggle-element"),o=i.find(":input"),s=0,r=e('<input type="hidden">');l.find(".yith-toggle-row").each(function(){var t=parseInt(e(this).data("item_key"));s<=t&&(s=t+1)}),r.val(s),e(document).trigger("yith-toggle-change-counter",[r,i]),s=r.val();var c=wp.template("yith-toggle-element-item-"+n),d=e(c({index:s}));a.addClass("show"),e.each(o,function(t,i){if(void 0!==e(i).attr("id")){var n=e(i).attr("id"),a=e(i).val();n="radio"===e(i).attr("type")?(n=(n=e(i).closest(".yith-plugin-fw-radio").attr("id")).replace("new_","")+"_"+s)+"-"+a:n.replace("new_","")+"_"+s,e(i).is(":checked")&&e(d).find("#"+n).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(d).find("#"+n).html(e("#"+e(i).attr("id")).html()),e(d).find("#"+n).val(a)}}),e(d).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,d,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(d),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),n=e(this).closest(".yith-toggle-row"),a=n.find(".spinner");n.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,n,l]),"yes"===l.val()&&(a.addClass("show"),i.saveToggleElement(a))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){var t=e(this).closest(".yith-plugin-fw-radio"),i=e(this).val();t.val(i).data("value",i).trigger("change")}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).find('input[type="radio"]').filter('[value="'+e(this).data("value")+'"]').click(),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var n={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var t=n;e(document).on("click",t.selectors.units.single,t.unitChange),e(document).on("click",t.selectors.linked.button,t.linkedChange),e(document).on("change keyup",t.selectors.dimensions.number,t.numberChange)},unitChange:function(t){var i=e(this).closest(n.selectors.units.single),a=i.closest(n.selectors.units.wrapper),l=a.find(n.selectors.units.single),o=a.find(n.selectors.units.value).first(),s=i.data("value");l.removeClass(n.selectors.units.selectedClass),i.addClass(n.selectors.units.selectedClass),o.val(s).trigger("change")},linkedChange:function(){var t=e(this).closest(n.selectors.linked.button),i=t.closest(n.selectors.wrapper),a=t.find(n.selectors.linked.value);"yes"===a.val()?(i.removeClass(n.selectors.linked.wrapperActiveClass),a.val("no")):(i.addClass(n.selectors.linked.wrapperActiveClass),a.val("yes"),i.find(n.selectors.dimensions.number).first().trigger("change"))},numberChange:function(t){var i=e(this).closest(n.selectors.dimensions.number),a=i.closest(n.selectors.wrapper);a.hasClass(n.selectors.linked.wrapperActiveClass)&&a.find(n.selectors.dimensions.number).val(i.val())}};n.init();e(document).on("click",".yith-plugin-fw-copy-to-clipboard__copy",function(){var t,i=e(this).closest(".yith-plugin-fw-copy-to-clipboard"),n=i.find(".yith-plugin-fw-copy-to-clipboard__field"),a=i.find(".yith-plugin-fw-copy-to-clipboard__tip"),l=i.data("tip-timeout");l&&clearTimeout(l),n.select(),document.execCommand("copy"),(t="getSelection"in window&&window.getSelection())?"empty"in t?t.empty():"removeAllRanges"in t&&t.removeAllRanges():"selection"in document&&document.selection.empty(),a.fadeIn(400),l=setTimeout(function(){a.fadeOut(400)},1500),i.data("tip-timeout",l)});var a={init:function(){e(document).on("click",".yith-plugin-fw__action-button--has-menu",a.open),e(document).on("click",".yith-plugin-fw__action-button__menu",a.stopPropagation),e(document).on("click",a.closeAll)},closeAll:function(){e(".yith-plugin-fw__action-button--opened").removeClass("yith-plugin-fw__action-button--opened")},open:function(t){var i=e(this).closest(".yith-plugin-fw__action-button"),n=i.hasClass("yith-plugin-fw__action-button--opened");t.preventDefault(),t.stopPropagation(),a.closeAll(),n||i.addClass("yith-plugin-fw__action-button--opened")},stopPropagation:function(e){e.stopPropagation()}};a.init(),e(document).on("click","a.yith-plugin-fw__require-confirmation-link",function(t){var i=e(this).closest("a.yith-plugin-fw__require-confirmation-link"),n=i.attr("href");if(n&&"#"!==n&&(t.preventDefault(),t.stopPropagation(),"yith"in window&&"ui"in yith)){var a,l=["title","message","confirmButtonType","cancelButton","confirmButton"],o={};for(a in l){var s=l[a],r=i.data(s);void 0!==r&&(o[s]=r)}o.onConfirm=function(){window.location.href=n},o.closeAfterConfirm=!1,yith.ui.confirm(o)}}),e(document).on("yith-plugin-fw-tips-init",function(){e(".yith-plugin-fw__tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200})}).trigger("yith-plugin-fw-tips-init")}(jQuery);plugin-fw/assets/js/multisite-updater.js000064400000020720151327614500014416 0ustar00/**
 * This file belongs to the YIT Framework.
 *
 * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl-3.0.txt
 */
(function ( $ ) {

    var plugins_menu_item = $( '#menu-plugins' ),
        update            = plugins_menu_item.find( '.update-plugins' ),
        count             = update.find( ".plugin-count" ).text(),
        registered        = plugins.registered,
        activated         = plugins.activated;

    if ( count == 0 || count == '' ) {
        var update_row = '<span class="update-plugins"><span class="plugin-count"></span></span>';
        count          = 0;
        plugins_menu_item.find( '.wp-menu-name' ).append( update_row );
    }

    /**
     * Add the plugin update rows for old plugins
     */
    update_plugins_row( registered, activated, count, plugins );

    /**
     *
     * Add the update plugin rows for old plugin
     *
     * @author Andrea Grillo <andrea.grillo@yithemes.com>
     *
     * @param registered Registred plugins
     * @param activated Activated plugins
     * @param count     Number of old plugins
     * @param localize  Localize strings array
     *
     * @return void
     */
    function update_plugins_row( registered, activated, count, localize ) {
        for ( var init in registered ) {
            var plugin = registered[ init ];
            for ( var headers in plugin ) {

                if ( headers == 'slug' || version_compare( plugin[ headers ].Version, plugin[ headers ].Latest, '=' ) ) {
                    continue;
                }

                count = parseInt( count ) + 1;
                $( ".plugin-count" ).empty().html( count );

                var regex = new RegExp( ' ', 'g' ),
                    info  = plugin[ headers ],
                    name  = '' + info.Name,
                    id    = name.replace( regex, '-' ).trim(),
                    row   = '*[data-slug="' + id.toLowerCase() + '"]';

                $( row ).addClass( "update" );

                var html = '<tr class="plugin-update-tr">' +
                           '<td colspan="3" class="plugin-update colspanchange">' +
                           '<div class="update-message notice inline notice-warning notice-alt">' + localize.strings.new_version.replace( '%plugin_name%', name ) +
                           '<a class="thickbox open-plugin-details-modal" href="' + localize.details_url[ init ] + '">' + localize.strings.latest.replace( '%latest%', plugin[ headers ].Latest ) + '</a>';

                if ( typeof activated[ init ] == "undefined" ) {

                    html = html +
                           ' <em>' + localize.strings.unavailable + '</em>' +
                           localize.strings.activate.replace( '%activate_link%', localize.licence_activation_url ).replace( '%plugin_name%', name );
                } else {
                    html = html +
                           '. <a href="' + localize.update_url[ init ] + '">' + localize.strings.update_now + '</a>';
                }

                if( version_compare( plugin[ headers ].Version, plugin[ headers ].Latest, '>' ) ){
                    html = html + localize.strings.version_issue.replace( '%plugin_name%', name )
                }

                html = html +
                       '</div>' +
                       '</td>' +
                       '</tr>';

                $( html ).insertAfter( row );
            }
        }
    }

    /**
     *
     * @param v1 Version 1
     * @param v2 Version 2
     * @param operator  Compare type
     * @returns bool
     *
     * @see php.js library http://phpjs.org/
     */
    function version_compare( v1, v2, operator ) {
        //       discuss at: http://phpjs.org/functions/version_compare/
        //      original by: Philippe Jausions (http://pear.php.net/user/jausions)
        //      original by: Aidan Lister (http://aidanlister.com/)
        // reimplemented by: Kankrelune (http://www.webfaktory.info/)
        //      improved by: Brett Zamir (http://brett-zamir.me)
        //      improved by: Scott Baker
        //      improved by: Theriault
        //        example 1: version_compare('8.2.5rc', '8.2.5a');
        //        returns 1: 1
        //        example 2: version_compare('8.2.50', '8.2.52', '<');
        //        returns 2: true
        //        example 3: version_compare('5.3.0-dev', '5.3.0');
        //        returns 3: -1
        //        example 4: version_compare('4.1.0.52','4.01.0.51');
        //        returns 4: 1

        this.php_js     = this.php_js || {};
        this.php_js.ENV = this.php_js.ENV || {};
        // END REDUNDANT
        // Important: compare must be initialized at 0.
        var i           = 0,
            x           = 0,
            compare     = 0,
            // vm maps textual PHP versions to negatives so they're less than 0.
            // PHP currently defines these as CASE-SENSITIVE. It is important to
            // leave these as negatives so that they can come before numerical versions
            // and as if no letters were there to begin with.
            // (1alpha is < 1 and < 1.1 but > 1dev1)
            // If a non-numerical value can't be mapped to this table, it receives
            // -7 as its value.
            vm          = {
                'dev'  : -6,
                'alpha': -5,
                'a'    : -5,
                'beta' : -4,
                'b'    : -4,
                'RC'   : -3,
                'rc'   : -3,
                '#'    : -2,
                'p'    : 1,
                'pl'   : 1
            },
            // This function will be called to prepare each version argument.
            // It replaces every _, -, and + with a dot.
            // It surrounds any nonsequence of numbers/dots with dots.
            // It replaces sequences of dots with a single dot.
            //    version_compare('4..0', '4.0') == 0
            // Important: A string of 0 length needs to be converted into a value
            // even less than an unexisting value in vm (-7), hence [-8].
            // It's also important to not strip spaces because of this.
            //   version_compare('', ' ') == 1
            prepVersion = function ( v ) {
                v = ('' + v)
                    .replace( /[_\-+]/g, '.' );
                v = v.replace( /([^.\d]+)/g, '.$1.' )
                    .replace( /\.{2,}/g, '.' );
                return (!v.length ? [ -8 ] : v.split( '.' ));
            };
        // This converts a version component to a number.
        // Empty component becomes 0.
        // Non-numerical component becomes a negative number.
        // Numerical component becomes itself as an integer.
        numVersion = function ( v ) {
            return !v ? 0 : (isNaN( v ) ? vm[ v ] || -7 : parseInt( v, 10 ));
        };
        v1         = prepVersion( v1 );
        v2         = prepVersion( v2 );
        x          = Math.max( v1.length, v2.length );
        for ( i = 0; i < x; i++ ) {
            if ( v1[ i ] == v2[ i ] ) {
                continue;
            }
            v1[ i ] = numVersion( v1[ i ] );
            v2[ i ] = numVersion( v2[ i ] );
            if ( v1[ i ] < v2[ i ] ) {
                compare = -1;
                break;
            } else if ( v1[ i ] > v2[ i ] ) {
                compare = 1;
                break;
            }
        }
        if ( !operator ) {
            return compare;
        }

        // Important: operator is CASE-SENSITIVE.
        // "No operator" seems to be treated as "<."
        // Any other values seem to make the function return null.
        switch ( operator ) {
            case '>':
            case 'gt':
                return (compare > 0);
            case '>=':
            case 'ge':
                return (compare >= 0);
            case '<=':
            case 'le':
                return (compare <= 0);
            case '==':
            case '=':
            case 'eq':
                return (compare === 0);
            case '<>':
            case '!=':
            case 'ne':
                return (compare !== 0);
            case '':
            case '<':
            case 'lt':
                return (compare < 0);
            default:
                return null;
        }
    }

    // fix ThickBox issue (width-height) when opening a changelog
    $( 'body' ).on( 'click', '.yit-changelog-button', function () {
        $( '#TB_window' ).remove();
    } );


})( jQuery );
plugin-fw/assets/js/yith-enhanced-select.min.js000064400000007045151327614500015521 0ustar00jQuery(function(e){"use strict";e(document.body).on("yith-framework-enhanced-select-init",function(){e(".yith-post-search").filter(":not(.enhanced)").each(function(){var t={action:"yith_plugin_fw_json_search_posts",security:yith_framework_enhanced_select_params.search_posts_nonce,post_type:"post"},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(e,t){a.push({id:e,text:t})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),s=e(this).next(".select2-container").find("ul.select2-selection__rendered");s.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(s.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,a=i.find('option[value="'+t+'"]')[0];i.prepend(a)})}})}}),e(".yith-customer-search").filter(":not(.enhanced)").each(function(){var t={action:"woocommerce_json_search_customers",security:yith_framework_enhanced_select_params.search_customers_nonce},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(e,t){a.push({id:e,text:t})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),s=e(this).next(".select2-container").find("ul.select2-selection__rendered");s.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(s.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,a=i.find('option[value="'+t+'"]')[0];i.prepend(a)})}})}}),e(".yith-term-search").filter(":not(.enhanced)").each(function(){var t={action:"yith_plugin_fw_json_search_terms",security:yith_framework_enhanced_select_params.search_terms_nonce,taxonomy:"category"},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(e,t){a.push({id:e,text:t})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),s=e(this).next(".select2-container").find("ul.select2-selection__rendered");s.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(s.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,a=i.find('option[value="'+t+'"]')[0];i.prepend(a)})}})}})}).trigger("yith-framework-enhanced-select-init")});plugin-fw/assets/js/yit-plugin-panel.min.js000064400000010470151327614500014716 0ustar00jQuery(function(e){function t(){e("[data-dep-target]:not( .deps-initialized )").each(function(){var t=e(this);if(!t.closest(".metaboxes-tab").length){t.addClass("deps-initialized");var a="#"+t.data("dep-target"),i="#"+t.data("dep-id"),n=t.data("dep-value"),o=t.data("dep-type");e(i).on("change",function(){!function(t,a,i,n){var o=!0;if("string"==typeof a){":radio"===a.substr(0,6)&&(a+=":checked");var r=e(a),d=r.attr("type"),s=r.val();switch(d){case"checkbox":s=r.is(":checked")?"yes":"no";break;case"radio":s=r.find('input[type="radio"]').filter(":checked").val()}i=i.split(",");for(var c=0;c<i.length;c++){if(s==i[c]){o=!0;break}o=!1}}var l=e(t),h=e(t+"-container").closest("tr");h.length<1&&(h=l.closest(".yith-plugin-fw-panel-wc-row, .yith-toggle-content-row"));var u,g=n.split("-");for(u in g){var f=g[u];if(o)switch(f){case"disable":h.removeClass("yith-disabled"),l.attr("disabled",!1);break;case"hide":case"hideNow":h.show();break;case"hideme":l.show();break;case"fadeOut":h.show();break;case"fadeInOut":case"fadeIn":default:h.show(500)}else switch(f){case"disable":h.addClass("yith-disabled"),l.attr("disabled",!0);break;case"hide":case"hideNow":h.hide();break;case"hideme":l.hide();break;case"fadeInOut":case"fadeOut":h.hide(500);break;case"fadeIn":default:h.hide()}}}(a,i,n.toString(),o)}).trigger("change")}})}t(),e(document).on("yith-add-box-button-toggle",t),e(".rm_connectedlist").each(function(){var t=e(this).find("ul"),a=e(this).find(":hidden");t.sortable({connectWith:t,update:function(i,n){var o={};t.each(function(){var t={};e(this).children().each(function(){t[e(this).data("option")]=e(this).text()}),o[e(this).data("list")]=t}),a.val(JSON.stringify(o).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}),e(function(){e(".google-analytic-generate").click(function(){var t=e("#"+e(this).data("textarea")).data("codemirrorInstance"),a="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";a+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",a+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",a+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",a+="ga('create', '"+e("#"+e(this).data("input")).val()+"', '"+e(this).data("basename")+"');\n",a+="ga('send', 'pageview');\n",t.replaceRange(a,t.getCursor("start"),t.getCursor("end"))})}),e(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var a=e(".wrap.yith-plugin-ui").first(),i=e("div.updated, div.error, div.notice");i.addClass("inline"),a.length&&a.prepend(i),function(){var t=e(".yith-nav-sub-tab.nav-tab-active"),a=e(".yith-plugin-fw-wp-page__sub-tab-wrap");if(t.length&&!a.length){var i=e(".yith-plugin-fw-wp-page-wrapper");if(i.length||(i=e("#wpbody-content > .yith-plugin-ui")),i){var n=i.find(".yit-admin-panel-content-wrap");n.length?n.addClass("has-subnav"):i.find(".wrap").wrap('<div class="yith-plugin-fw-wp-page__sub-tab-wrap"></div>')}}}(),function(){var t=e("#yith-plugin-fw-float-save-button"),a=e("#plugin-fw-wc"),i=document.querySelector("#main-save-button");function n(){var e,a;e=i.getBoundingClientRect(),a={width:window.innerWidth||document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight},e.top>=0&&e.left>=0&&e.top<=a.height&&e.left<=a.width?t.removeClass("visible"):t.addClass("visible")}t.length>0&&a.length>0&&(n(),document.addEventListener("scroll",n,{passive:!0}),e(document).on("click","#yith-plugin-fw-float-save-button",function(i){i.preventDefault(),"tinyMCE"in window&&"triggerSave"in window.tinyMCE&&window.tinyMCE.triggerSave(),e(".codemirror.codemirror--initialized").each(function(){var t=e(this).data("codemirrorInstance")||!1;t&&"codemirror"in t&&t.codemirror.save()}),t.block({message:null,overlayCSS:{background:"transparent",opacity:.6}}),e.post(document.location.href,a.serialize()).done(function(a){t.unblock().addClass("green").fadeOut(300).html('<i class="yith-icon yith-icon-check"></i>'+t.data("saved-label")).fadeIn(300).delay(2500).queue(function(a){t.fadeOut(500,function(){e(this).removeClass("green"),e(this).html('<i class="yith-icon yith-icon-save"></i>'+e(this).data("default-label")).fadeIn(500)}),a()}),window.onbeforeunload=null,e(document).trigger("yith-plugin-fw-float-save-button-after-saving",[a])})}))}()});plugin-fw/assets/js/yith-system-info.js000064400000004166151327614500014173 0ustar00/**
 * This file belongs to the YIT Framework.
 *
 * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.gnu.org/licenses/gpl-3.0.txt
 *
 * @package YIT Plugin Framework
 */

jQuery(
	function ( $ ) {
		$( document ).on(
			'click',
			'.notice-dismiss',
			function () {
				var t          = $( this ),
					wrapper_id = t.parent().attr( 'id' );

				if ( wrapper_id === 'yith-system-alert' ) {
					var cname  = 'hide_yith_system_alert',
						cvalue = 'yes';

					document.cookie = cname + "=" + cvalue + ";path=/";
				}
			}
		);
		$( document ).on(
			'click',
			'.yith-download-log',
			function () {

				var container = $( this ).parent();
				var data      = {
					action: 'yith_create_log_file',
					file  : $( this ).data( 'file' ),
				};

				container.addClass( 'progress' );

				$.post(
					yith_sysinfo.ajax_url,
					data,
					function ( response ) {
						if ( false !== response.file ) {
							var a        = document.createElement( "a" );
							var fileName = response.file.split( "/" ).pop();
							a.href       = response.file;
							a.download   = fileName;
							document.body.appendChild( a );
							a.click();
							window.URL.revokeObjectURL( response.file );
							a.remove();
						}
						container.removeClass( 'progress' );
					}
				);
			}
		);
		$( document ).on(
			'click',
			'.copy-link',
			function ( e ) {
				e.preventDefault();

				var $this = $( this ),
					$temp = $( '<textarea>' );

				$( 'body' ).append( $temp );
				$temp.val( "define( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );" ).select();
				document.execCommand( "Copy" );
				$temp.remove();
				if ( ! $this.find( '.copied-tooltip' ).length ) {
					$this
						.append(
							$( '<span/>', {class: 'copied-tooltip'} )
								.html( $this.data( "tooltip" ) ).fadeIn( 300 )
						);
					setTimeout(
						function () {
							$this.find( ".copied-tooltip" ).fadeOut().remove()
						},
						3000
					);
				}

			}
		);
	}
);
plugin-fw/assets/js/yith-date-format.js000064400000003414151327614500014114 0ustar00/* globals ajaxurl */
jQuery( function ( $ ) {

	$( document ).on( 'click', '.yith-plugin-fw-date-format__option', function () {
		var $t       = $( this ),
			$wrapper = $t.closest( '.yith-plugin-fw-date-format' ),
			$example = $wrapper.find( '.example' );

		$example.text( $t.data( 'preview' ) );
		$wrapper.find( '.yith-date-format-custom' ).val( $t.val() );
	} );

	$( document ).on( 'click input', '.yith-date-format-custom', function () {
		var $t       = $( this ),
			$wrapper = $t.closest( '.yith-plugin-fw-radio__row' );

		$wrapper.find( 'input[type=radio]' ).prop( 'checked', true );
	} );

	$( document ).on( 'input yith-date-format-change', '.yith-date-format-custom', function () {
		var $t       = $( this ),
			$wrapper = $t.closest( '.yith-plugin-fw-date-format' ),
			dataType = $wrapper.data( 'format' ),
			js       = $wrapper.data( 'js' ),
			now      = $wrapper.data( 'current' ),
			example  = $wrapper.find( '.example' ),
			spinner  = $wrapper.find( '.spinner' );

		if ( 'yes' === js ) {
			var newDate = new Date( now );
			newDate = $.datepicker.formatDate( $t.val(), newDate );
			example.text( newDate );
		} else {
			clearTimeout( $.data( this, 'timer' ) );
			$t.data( 'timer', setTimeout(
				function () {
					if ( $t.val() ) {
						spinner.addClass( 'is-active' );
						// Call WP ajax action.
						var data = {
							action: dataType + '_format',
							date  : $t.val()
						};

						$.post( ajaxurl, data, function ( response ) {
							spinner.removeClass( 'is-active' );
							example.text( response );
						} );
					}
				},
				500 )
			);
		}
	} );

	$( document ).on( 'yith-plugin-fw-date-format-init', function () {
		$( '.yith-date-format-custom' ).trigger( 'yith-date-format-change' );
	} ).trigger( 'yith-plugin-fw-date-format-init' );

} );
plugin-fw/assets/js/yith-ui.js000064400000021754151327614500012335 0ustar00/* globals yith_plugin_fw_ui */

// Make sure the yith object exists.
window.yith = window.yith || {};

( function ( $, yith ) {
	yith.ui = yith.ui || {};

	var cssClasses = function ( classes ) {
		if ( typeof classes === 'string' ) {
			return classes;
		} else {
			var filteredClasses = [];

			for ( var value of classes ) {
				if ( value && filteredClasses.indexOf( value ) < 0 ) {
					filteredClasses.push( cssClasses( value ) );
				}
			}
			return filteredClasses.join( ' ' );
		}
	}

	var stopEventPropagation = function ( e ) {
		e.stopPropagation();
	};

	/**
	 * Confirm window.
	 */
	yith.ui.confirm = function ( options ) {
		var defaults = {
				title                     : false,
				message                   : false,
				onCreate                  : false,
				onConfirm                 : false,
				onCancel                  : false,
				onClose                   : false,
				classes                   : {
					wrap   : '',
					content: '',
					title  : '',
					message: '',
					footer : '',
					cancel : '',
					confirm: ''
				},
				confirmButtonType         : 'confirm',
				cancelButton              : yith_plugin_fw_ui.i18n.cancel,
				confirmButton             : yith_plugin_fw_ui.i18n.confirm,
				width                     : 350,
				closeAfterConfirm         : true,
				allowWpMenu               : false,
				allowWpMenuInMobile       : false,
				showClose                 : true,
				closeWhenClickingOnOverlay: false
			},
			self     = {};

		options         = typeof options !== 'undefined' ? options : {};
		options         = $.extend( {}, defaults, options );
		options.classes = $.extend( {}, defaults.classes, options.classes );

		var classes       = {
				wrap   : cssClasses( ['yith-plugin-fw__confirm__wrap', options.classes.wrap] ),
				content: cssClasses( ['yith-plugin-fw__confirm__content', options.classes.content] ),
				title  : cssClasses( ['yith-plugin-fw__confirm__title', options.classes.title] ),
				message: cssClasses( ['yith-plugin-fw__confirm__message', options.classes.message] ),
				footer : cssClasses( ['yith-plugin-fw__confirm__footer', options.classes.footer] ),
				cancel : cssClasses( ['yith-plugin-fw__confirm__button', 'yith-plugin-fw__confirm__button--cancel', options.classes.cancel] ),
				confirm: cssClasses( ['yith-plugin-fw__confirm__button', 'yith-plugin-fw__confirm__button--' + options.confirmButtonType, options.classes.confirm] )
			},
			dom           = {
				message: false,
				footer : false,
				cancel : false,
				confirm: false
			},
			modal         = false,
			initialize    = function () {
				create();
				initEvents();
			},
			handleClose   = function () {
				modal && modal.close();
				modal = false;
			},
			create        = function () {
				dom.message = $( '<div class="' + classes.message + '">' );
				dom.footer  = $( '<div class="' + classes.footer + '">' );
				dom.cancel  = $( '<span class="' + classes.cancel + '">' + options.cancelButton + '</span>' );
				dom.confirm = $( '<span class="' + classes.confirm + '">' + options.confirmButton + '</span>' );


				if ( options.message ) {
					dom.message.html( options.message );
				}

				dom.footer.append( dom.cancel );
				dom.footer.append( dom.confirm );

				modal = yith.ui.modal(
					{
						classes                   : {
							wrap   : classes.wrap,
							title  : classes.title,
							content: classes.content
						},
						title                     : options.title,
						content                   : [dom.message, dom.footer],
						width                     : options.width,
						allowWpMenu               : options.allowWpMenu,
						allowWpMenuInMobile       : options.allowWpMenuInMobile,
						showClose                 : options.showClose,
						onCreate                  : options.onCreate,
						onClose                   : options.onClose,
						closeWhenClickingOnOverlay: options.closeWhenClickingOnOverlay
					}
				);
			},
			handleCancel  = function () {
				if ( typeof options.onCancel === 'function' ) {
					options.onCancel();
				}

				handleClose();
			},
			handleConfirm = function () {
				if ( typeof options.onConfirm === 'function' ) {
					options.onConfirm();
				}

				if ( options.closeAfterConfirm ) {
					handleClose();
				}
			},
			initEvents    = function () {
				dom.cancel.on( 'click', handleCancel );
				dom.confirm.on( 'click', handleConfirm );
			};

		initialize();

		self.elements = $.extend( {}, dom );
		self.modal    = $.extend( {}, modal );
		self.close    = handleClose;
		self.cancel   = handleCancel;
	};


	/**
	 * Modal window.
	 */
	yith.ui.modal = function ( options ) {
		var defaults = {
				allowWpMenu               : true,
				allowWpMenuInMobile       : false,
				title                     : false,
				content                   : false,
				footer                    : false,
				showClose                 : true,
				closeSelector             : false,
				classes                   : {
					wrap   : '',
					main   : '',
					close  : '',
					title  : '',
					content: '',
					footer : ''
				},
				width                     : 500,
				allowClosingWithEsc       : true,
				closeWhenClickingOnOverlay: false,
				scrollContent             : true,
				onCreate                  : false,
				onClose                   : false
			},
			self     = {};

		options         = typeof options !== 'undefined' ? options : {};
		options         = $.extend( {}, defaults, options );
		options.classes = $.extend( {}, defaults.classes, options.classes );

		var container      = $( '#wpwrap' ),
			classes        = {
				wrap   : ['yith-plugin-ui', 'yith-plugin-fw__modal__wrap', options.classes.wrap],
				main   : ['yith-plugin-fw__modal__main', options.classes.main],
				close  : ['yith-plugin-fw__modal__close', 'yith-icon', 'yith-icon-close', options.classes.close],
				title  : ['yith-plugin-fw__modal__title', options.classes.title],
				content: ['yith-plugin-fw__modal__content', options.classes.content],
				footer : ['yith-plugin-fw__modal__footer', options.classes.footer]
			},
			dom            = {
				wrap   : false,
				main   : false,
				close  : false,
				title  : false,
				content: false,
				footer : false
			},
			initialize     = function () {
				handleClose();

				create();
				initEvents();
			},
			handleClose    = function () {
				$( '.yith-plugin-fw__modal__wrap' ).remove();
				container.removeClass( 'yith-plugin-fw__modal--opened' );
				container.removeClass( 'yith-plugin-fw__modal--allow-wp-menu' );
				container.removeClass( 'yith-plugin-fw__modal--allow-wp-menu-in-mobile' );

				if ( typeof options.onClose === 'function' ) {
					options.onClose();
				}
			},
			create         = function () {
				dom.wrap    = $( '<div class="' + cssClasses( classes.wrap ) + '">' );
				dom.main    = $( '<div class="' + cssClasses( classes.main ) + '">' );
				dom.close   = $( '<span class="' + cssClasses( classes.close ) + '">' );
				dom.title   = $( '<div class="' + cssClasses( classes.title ) + '">' );
				dom.content = $( '<div class="' + cssClasses( classes.content ) + '">' );
				dom.footer  = $( '<div class="' + cssClasses( classes.footer ) + '">' );

				dom.main.css( { width: options.width } );


				if ( options.title ) {
					if ( typeof options.title === 'string' ) {
						dom.title.html( options.title );
					} else {
						dom.title.append( options.title );
					}
				}

				if ( options.content ) {
					if ( typeof options.content === 'string' ) {
						dom.content.html( options.content );
					} else {
						dom.content.append( options.content );
					}
				}

				if ( options.showClose ) {
					dom.main.append( dom.close );
				}

				dom.main.append( dom.title );
				dom.main.append( dom.content );


				if ( options.footer ) {
					if ( typeof options.footer === 'string' ) {
						dom.footer.html( options.footer );
					} else {
						dom.footer.append( options.footer );
					}

					dom.main.append( dom.footer );
				}


				dom.wrap.append( dom.main );

				if ( options.scrollContent ) {
					dom.wrap.addClass( 'yith-plugin-fw__modal__wrap--scroll-content' );
				}

				container.append( dom.wrap );
				container.addClass( 'yith-plugin-fw__modal--opened' );
				if ( options.allowWpMenu ) {
					container.addClass( 'yith-plugin-fw__modal--allow-wp-menu' );
				}

				if ( options.allowWpMenuInMobile ) {
					container.addClass( 'yith-plugin-fw__modal--allow-wp-menu-in-mobile' );
				}

				if ( typeof options.onCreate === 'function' ) {
					options.onCreate();
				}
			},
			initEvents     = function () {
				dom.close.on( 'click', handleClose );
				if ( options.closeSelector ) {
					container.on( 'click', options.closeSelector, handleClose );
				}

				if ( options.closeWhenClickingOnOverlay ) {
					dom.wrap.on( 'click', handleClose );
					dom.main.on( 'click', stopEventPropagation );
				}

				$( document ).on( 'keydown', handleKeyboard );
			},
			handleKeyboard = function ( event ) {
				if ( options.allowClosingWithEsc && event.keyCode === 27 ) {
					handleClose();
				}
			};

		initialize();

		self.elements = $.extend( {}, dom );
		self.close    = handleClose;

		return self;
	};

} )( window.jQuery, window.yith );
plugin-fw/yit-deactive-plugin.php000064400000002272151327614500013057 0ustar00<?php
/**
 * Functions for deactivating plugins.
 *
 * @package YITH\PluginFramework
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! function_exists( 'yit_deactive_free_version' ) ) {
	/**
	 * Deactivate the free version of the plugin.
	 *
	 * @param string $to_deactivate The constant name of the plugin to deactivate.
	 * @param string $to_activate   The path of the File of the plugin to activate.
	 */
	function yit_deactive_free_version( $to_deactivate, $to_activate ) {
		if ( ! function_exists( 'is_plugin_active' ) ) {
			require_once ABSPATH . 'wp-admin/includes/plugin.php';
		}

		if ( defined( $to_deactivate ) && is_plugin_active( constant( $to_deactivate ) ) ) {
			deactivate_plugins( constant( $to_deactivate ) );

			if ( ! function_exists( 'wp_create_nonce' ) ) {
				header( 'Location: plugins.php' );
				exit();
			}

			global $status, $page, $s;
			$redirect = 'plugins.php?action=activate&plugin=' . $to_activate . '&plugin_status=' . $status . '&paged=' . $page . '&s=' . $s;
			$redirect = esc_url_raw( add_query_arg( '_wpnonce', wp_create_nonce( 'activate-plugin_' . $to_activate ), $redirect ) );

			header( 'Location: ' . $redirect );
			exit();
		}
	}
}
plugin-fw/init.php000064400000007265151327614500010146 0ustar00<?php
/**
 * Framework Name: YIT Plugin Framework
 * Version: 3.8.2
 * Author: YITH
 * Text Domain: yith-plugin-fw
 * Domain Path: /languages/
 *
 * @author  YITH
 * @version 3.8.2
 * @package YITH\PluginFramework
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! function_exists( 'yit_maybe_plugin_fw_loader' ) ) {
	/**
	 * Load the framework if it's not yet loaded.
	 *
	 * @param string $plugin_path The plugin path.
	 */
	function yit_maybe_plugin_fw_loader( $plugin_path ) {
		global $plugin_fw_data, $plugin_upgrade_fw_data;

		$default_headers = array(
			'Name'       => 'Framework Name',
			'Version'    => 'Version',
			'Author'     => 'Author',
			'TextDomain' => 'Text Domain',
			'DomainPath' => 'Domain Path',
		);

		$plugin_path         = trailingslashit( $plugin_path );
		$framework_data      = get_file_data( $plugin_path . 'plugin-fw/init.php', $default_headers );
		$plugin_fw_main_file = $plugin_path . 'plugin-fw/yit-plugin.php';

		if ( ! empty( $plugin_fw_data ) ) {
			foreach ( $plugin_fw_data as $version => $path ) {
				if ( version_compare( $version, $framework_data['Version'], '<' ) ) {
					$plugin_fw_data = array( $framework_data['Version'] => $plugin_fw_main_file );
				}
			}
		} else {
			$plugin_fw_data = array( $framework_data['Version'] => $plugin_fw_main_file );
		}

		// Check for license & upgrade classes.
		$upgrade_fw_init_file = $plugin_path . 'plugin-upgrade/init.php';
		$framework_data       = file_exists( $upgrade_fw_init_file ) ? get_file_data( $upgrade_fw_init_file, $default_headers ) : $framework_data;
		$plugin_license_path  = $plugin_path . 'plugin-upgrade';
		$plugin_upgrade_path  = $plugin_path . 'plugin-upgrade';

		if ( ! file_exists( $plugin_upgrade_path ) ) {
			// Check path for OLD plugin framework version.
			if ( file_exists( $plugin_path . 'plugin-fw/licence' ) ) {
				$plugin_license_path = $plugin_path . 'plugin-fw/licence';
				$plugin_upgrade_path = $plugin_path . 'plugin-fw/';
			} else {
				$plugin_upgrade_path = false;
				$plugin_license_path = false;
			}
		}

		if ( file_exists( $plugin_upgrade_path ) ) {
			if ( ! empty( $plugin_upgrade_fw_data ) ) {
				foreach ( $plugin_upgrade_fw_data as $version => $files ) {
					if ( version_compare( $version, $framework_data['Version'], '<' ) ) {
						$plugin_upgrade_fw_data = array( $framework_data['Version'] => yit_get_upgrade_files( $plugin_license_path, $plugin_upgrade_path ) );
					}
				}
			} else {
				$plugin_upgrade_fw_data = array( $framework_data['Version'] => yit_get_upgrade_files( $plugin_license_path, $plugin_upgrade_path ) );
			}
		}
	}
}

if ( ! function_exists( 'yit_get_upgrade_files' ) ) {
	/**
	 * Retrieve the core files to include to manage license and upgrade if exists.
	 *
	 * @param string $plugin_license_path The license path.
	 * @param string $plugin_upgrade_path The upgrade path.
	 *
	 * @return array to files to include
	 */
	function yit_get_upgrade_files( $plugin_license_path, $plugin_upgrade_path = '' ) {
		$to_include = array();

		if ( ! ! $plugin_license_path ) {
			$plugin_upgrade_path = empty( $plugin_upgrade_path ) ? $plugin_license_path : $plugin_upgrade_path;
			$license_files       = array(
				'%yith-license-path%/lib/yit-licence.php',
				'%yith-license-path%/lib/yit-plugin-licence.php',
				'%yith-license-path%/lib/yit-theme-licence.php',
			);

			$upgrade_files = array( '%yith-upgrade-path%/lib/yit-plugin-upgrade.php' );

			$to_include_license = str_replace( '%yith-license-path%', $plugin_license_path, $license_files );
			$to_include_upgrade = str_replace( '%yith-upgrade-path%', $plugin_upgrade_path, $upgrade_files );

			$to_include = array_merge( $to_include_license, $to_include_upgrade );
		}

		return $to_include;
	}
}
wpml-config.xml000064400000000141151327614500007510 0ustar00<wpml-config>
<admin-texts>
  <key name="yith-wcqv-button-label" />
</admin-texts>
</wpml-config>init.php000064400000011117151327614500006225 0ustar00<?php
/**
 * Plugin Name: YITH WooCommerce Quick View
 * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-quick-view
 * Description: The <code><strong>YITH WooCommerce Quick View</strong></code> plugin allows your customers to have a quick look about products. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
 * Version: 1.9.0
 * Author: YITH
 * Author URI: https://yithemes.com/
 * Text Domain: yith-woocommerce-quick-view
 * Domain Path: /languages/
 * WC requires at least: 5.7
 * WC tested up to: 5.9
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.9.0
 */

/**  Copyright 2015-2021 Your Inspiration Solutions (email : plugins@yithemes.com)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License, version 2, as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

if ( ! function_exists( 'is_plugin_active' ) ) {
	require_once ABSPATH . 'wp-admin/includes/plugin.php';
}

/**
 * Message if WooCommerce is not installed.
 *
 * @since 1.0.0
 * @author Francesco Licandro
 * @return void
 */
function yith_wcqv_install_woocommerce_admin_notice() {
	?>
	<div class="error">
		<p><?php esc_html_e( 'YITH WooCommerce Quick View is enabled but not effective. It requires WooCommerce in order to work.', 'yith-woocommerce-quick-view' ); ?></p>
	</div>
	<?php
}

/**
 * Message if Premium plugin is installed.
 *
 * @since 1.0.0
 * @author Francesco Licandro
 * @return void
 */
function yith_wcqv_install_free_admin_notice() {
	?>
	<div class="error">
		<p><?php esc_html_e( 'You can\'t activate the free version of YITH WooCommerce Quick View while you are using the premium one.', 'yith-woocommerce-quick-view' ); ?></p>
	</div>
	<?php
}

if ( ! function_exists( 'yith_plugin_registration_hook' ) ) {
	require_once 'plugin-fw/yit-plugin-registration-hook.php';
}
register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );


if ( ! defined( 'YITH_WCQV_VERSION' ) ) {
	define( 'YITH_WCQV_VERSION', '1.9.0' );
}

if ( ! defined( 'YITH_WCQV_FREE_INIT' ) ) {
	define( 'YITH_WCQV_FREE_INIT', plugin_basename( __FILE__ ) );
}

if ( ! defined( 'YITH_WCQV_INIT' ) ) {
	define( 'YITH_WCQV_INIT', plugin_basename( __FILE__ ) );
}

if ( ! defined( 'YITH_WCQV' ) ) {
	define( 'YITH_WCQV', true );
}

if ( ! defined( 'YITH_WCQV_FILE' ) ) {
	define( 'YITH_WCQV_FILE', __FILE__ );
}

if ( ! defined( 'YITH_WCQV_URL' ) ) {
	define( 'YITH_WCQV_URL', plugin_dir_url( __FILE__ ) );
}

if ( ! defined( 'YITH_WCQV_DIR' ) ) {
	define( 'YITH_WCQV_DIR', plugin_dir_path( __FILE__ ) );
}

if ( ! defined( 'YITH_WCQV_TEMPLATE_PATH' ) ) {
	define( 'YITH_WCQV_TEMPLATE_PATH', YITH_WCQV_DIR . 'templates' );
}

if ( ! defined( 'YITH_WCQV_ASSETS_URL' ) ) {
	define( 'YITH_WCQV_ASSETS_URL', YITH_WCQV_URL . 'assets' );
}

if ( ! defined( 'YITH_WCQV_SLUG' ) ) {
	define( 'YITH_WCQV_SLUG', 'yith-woocommerce-quick-view' );
}

/* Plugin Framework Version Check */
if ( ! function_exists( 'yit_maybe_plugin_fw_loader' ) && file_exists( YITH_WCQV_DIR . 'plugin-fw/init.php' ) ) {
	require_once YITH_WCQV_DIR . 'plugin-fw/init.php';
}
yit_maybe_plugin_fw_loader( YITH_WCQV_DIR );

/**
 * Init.
 *
 * @since 1.0.0
 * @author Francesco Licandro
 * @return void
 */
function yith_wcqv_init() {

	load_plugin_textdomain( 'yith-woocommerce-quick-view', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
	// Load required classes and functions.
	require_once 'includes/class.yith-wcqv.php';
	// Let's start the game!
	YITH_WCQV();
}

add_action( 'yith_wcqv_init', 'yith_wcqv_init' );

/**
 * Install.
 *
 * @since 1.0.0
 * @author Francesco Licandro
 * @return void
 */
function yith_wcqv_install() {

	if ( ! function_exists( 'WC' ) ) {
		add_action( 'admin_notices', 'yith_wcqv_install_woocommerce_admin_notice' );
	} elseif ( defined( 'YITH_WCQV_PREMIUM' ) ) {
		add_action( 'admin_notices', 'yith_wcqv_install_free_admin_notice' );
		deactivate_plugins( plugin_basename( __FILE__ ) );
	} else {
		do_action( 'yith_wcqv_init' );
	}
}

add_action( 'plugins_loaded', 'yith_wcqv_install', 11 );
license.txt000064400000106266151327614500006746 0ustar00Copyright 2015-2021 Your Inspiration Solutions (email : plugins@yithemes.com)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

YITH WooCommerce Quick View is released under the GPL

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright © <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright © <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/philosophy/why-not-lgpl.html>.assets/css/yith-quick-view.css000064400000007033151327614500012416 0ustar00/*=======================
* MODAL POPUP STYLE
========================*/

html.yith-quick-view-is-open,
html.yith-quick-view-is-open body {
    overflow: hidden;
}

#yith-quick-view-modal {
    position: fixed;
    visibility: hidden;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1400;
    opacity: 0;
    text-align: center;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    transition: all 0.3s;
}

#yith-quick-view-modal:before {
    content: '';
    display: inline-block;
    vertical-align: middle;
    height: 100%;
    width: 0;
}

#yith-quick-view-modal .yith-quick-view-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba( 0, 0, 0, 0.8);
}

#yith-quick-view-modal .yith-wcqv-wrapper {
    display: inline-block;
    vertical-align: middle;
    visibility: hidden;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    text-align: left;
    height: 600px;
    width: 1000px;
}

#yith-quick-view-modal .yith-wcqv-main {
    -webkit-transform: translateY(20%);
    -moz-transform: translateY(20%);
    -ms-transform: translateY(20%);
    transform: translateY(20%);
    opacity: 0;
    height: 100%;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    transition: all 0.3s;
    -webkit-box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.2);
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.2);
}

#yith-quick-view-modal.open,
#yith-quick-view-modal.open .yith-wcqv-wrapper {
    visibility: visible;
    opacity: 1;
}

#yith-quick-view-modal #yith-quick-view-content {
    height: 100%;
}

#yith-quick-view-modal .yith-wcqv-main:after,
#yith-quick-view-modal .yith-wcqv-main:before {
    content: '';
    display: table;
    clear: both;
}
#yith-quick-view-modal.open .yith-wcqv-main {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
    height: 100%;
    overflow-y: scroll;
    position: relative;
}
#yith-quick-view-close {
    border: 1px solid;
    position: absolute;
    top: 5px;
    right: 5px;
    width: 20px;
    height: 20px;
    text-align: center;
    line-height: 18px;
    z-index: 2;
    opacity: 0.5;
}
#yith-quick-view-close:hover {
    opacity: 1;
    transition: all 0.2s ease;
    -webkit-transition: all 0.2s ease;
    -moz-transition: all 0.2s ease;
    -ms-transition: all 0.2s ease;
}
#yith-quick-view-content div.images {
    width: 40%;
    float: left;
    opacity: 1 !important;
    margin: 0;
}
#yith-quick-view-content div.summary {
    margin: 0;
    padding: 15px;
    width: 60%;
    float: left;
    font-size: inherit;
}
#yith-quick-view-content div.woocommerce-product-rating:after,
#yith-quick-view-content div.woocommerce-product-rating:before {
    content: '';
    display: table;
    clear: both;
}
#yith-quick-view-content div.woocommerce-product-rating a.woocommerce-review-link {
    display: none;
}
#yith-quick-view-content .onsale {
    top: 5px;
    right: auto;
    left: 5px;
}
#yith-quick-view-content figure.woocommerce-product-gallery__wrapper > div:not(:first-child) {
    display: none;
}

li.product .yith-wcqv-button .blockUI.blockOverlay:before {
    background: none;
}

@media( max-width: 480px ) {
    #yith-quick-view-content div.images,
    #yith-quick-view-content div.summary {
        width: 100%;
        float: none;
    }
    #yith-quick-view-content div.summary {
        margin: 0;
        padding: 15px;
        width: 100%;
        float: left;
    }
}assets/js/frontend.min.js000064400000004134151327614500011427 0ustar00/**
 * frontend.js
 *
 * @author Your Inspiration Themes
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */
 jQuery(document).ready(function(a){"use strict";if("undefined"!=typeof yith_qv){var b=a(document).find("#yith-quick-view-modal"),c=b.find(".yith-quick-view-overlay"),d=b.find("#yith-quick-view-content"),e=b.find("#yith-quick-view-close"),f=b.find(".yith-wcqv-wrapper"),g=f.width(),h=f.height(),i=function(){var b=a(window).width(),c=a(window).height(),d=b-60>g?g:b-60,e=c-120>h?h:c-120;f.css({left:b/2-d/2,top:c/2-e/2,width:d+"px",height:e+"px"})};a.fn.yith_quick_view=function(){a(document).off("click",".yith-wcqv-button").on("click",".yith-wcqv-button",function(c){c.preventDefault();var d=a(this),e=d.data("product_id"),f=!1;"undefined"!=typeof yith_qv.loader&&(f=!0,d.block({message:null,overlayCSS:{background:"#fff url("+yith_qv.loader+") no-repeat center",opacity:.5,cursor:"none"}}),!b.hasClass("loading")&&b.addClass("loading"),a(document).trigger("qv_loading")),j(d,e,f)})};var j=function(c,e,f){a.ajax({url:yith_qv.ajaxurl,data:{action:"yith_load_product_quick_view",product_id:e,lang:yith_qv.lang,context:"frontend"},dataType:"json",type:"POST",success:function(e){d.html(e.html);var g=d.find(".variations_form");g.each(function(){a(this).wc_variation_form(),"undefined"==typeof a.fn.yith_wccl?"undefined"!=typeof a.yith_wccl&&e.prod_attr&&a.yith_wccl(e.prod_attr):a(this).yith_wccl()}),g.trigger("check_variations"),g.trigger("reset_image"),"undefined"!=typeof a.fn.wc_product_gallery&&d.find(".woocommerce-product-gallery").each(function(){a(this).wc_product_gallery()}),b.hasClass("open")||(b.removeClass("loading").addClass("open"),f&&c.unblock()),a(document).trigger("qv_loader_stop")}})},k=function(){c.on("click",function(){f()}),a(document).keyup(function(a){27===a.keyCode&&f()}),e.on("click",function(a){a.preventDefault(),f()});var f=function(){b.removeClass("open").removeClass("loading"),setTimeout(function(){d.html("")},1e3)}};k(),i(),a(window).on("resize",i),a.fn.yith_quick_view(),a(document).on("yith_infs_adding_elem yith-wcan-ajax-filtered",function(){a.fn.yith_quick_view()})}});assets/js/frontend.js000064400000012333151327614500010645 0ustar00/**
 * frontend.js
 *
 * @author Your Inspiration Themes
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */

jQuery(document).ready(function($){
    "use strict";

    if( typeof yith_qv === 'undefined' ) {
        return;
    }

    var qv_modal    = $(document).find( '#yith-quick-view-modal' ),
        qv_overlay  = qv_modal.find( '.yith-quick-view-overlay'),
        qv_content  = qv_modal.find( '#yith-quick-view-content' ),
        qv_close    = qv_modal.find( '#yith-quick-view-close' ),
        qv_wrapper  = qv_modal.find( '.yith-wcqv-wrapper'),
        qv_wrapper_w = qv_wrapper.width(),
        qv_wrapper_h = qv_wrapper.height(),
        center_modal = function() {

            var window_w = $(window).width(),
                window_h = $(window).height(),
                width    = ( ( window_w - 60 ) > qv_wrapper_w ) ? qv_wrapper_w : ( window_w - 60 ),
                height   = ( ( window_h - 120 ) > qv_wrapper_h ) ? qv_wrapper_h : ( window_h - 120 );

            qv_wrapper.css({
                'left' : (( window_w/2 ) - ( width/2 )),
                'top' : (( window_h/2 ) - ( height/2 )),
                'width'     : width + 'px',
                'height'    : height + 'px'
            });
        };


    /*==================
     *MAIN BUTTON OPEN
     ==================*/

    $.fn.yith_quick_view = function() {

        $(document).off( 'click', '.yith-wcqv-button' ).on( 'click', '.yith-wcqv-button', function(e){
            e.preventDefault();

            var t           = $(this),
                product_id  = t.data( 'product_id' ),
                is_blocked  = false;

            if ( typeof yith_qv.loader !== 'undefined' ) {
                is_blocked = true;
                t.block({
                    message: null,
                    overlayCSS  : {
                        background: '#fff url(' + yith_qv.loader + ') no-repeat center',
                        opacity   : 0.5,
                        cursor    : 'none'
                    }
                });

                if( ! qv_modal.hasClass( 'loading' ) ) {
                    qv_modal.addClass('loading');
                }

                // stop loader
                $(document).trigger( 'qv_loading' );
            }
            ajax_call( t, product_id, is_blocked );
        });
    };

    /*================
     * MAIN AJAX CALL
     ================*/

    var ajax_call = function( t, product_id, is_blocked ) {

        $.ajax({
            url: yith_qv.ajaxurl,
            data: {
                action: 'yith_load_product_quick_view',
                product_id: product_id,
                lang: yith_qv.lang,
				context: 'frontend',
            },
            dataType: 'json',
            type: 'POST',
            success: function (data) {

                qv_content.html(data.html);

                // Variation Form
				var form_variation = qv_content.find('.variations_form');
                form_variation.each( function() {
                    $( this ).wc_variation_form();
                    // add Color and Label Integration
                    if( typeof $.fn.yith_wccl !== 'undefined' ) {
                        $(this).yith_wccl();
                    }
                    else if( typeof $.yith_wccl != 'undefined' && data.prod_attr ) {
						
                        $.yith_wccl( data.prod_attr );
                    }
                });

                form_variation.trigger( 'check_variations' );
                form_variation.trigger( 'reset_image' );

                if( typeof $.fn.wc_product_gallery !== 'undefined' ) {
                    qv_content.find('.woocommerce-product-gallery').each(function () {
                        $(this).wc_product_gallery();
                    });
                }

                if (!qv_modal.hasClass('open')) {
                    qv_modal.removeClass('loading').addClass('open');
                    if (is_blocked)
                        t.unblock();
                }

                // stop loader
                $(document).trigger('qv_loader_stop');

            }
        });
    };

    /*===================
     * CLOSE QUICK VIEW
     ===================*/

    var close_modal_qv = function() {

        // Close box by click overlay
        qv_overlay.on( 'click', function(e){
            close_qv();
        });
        // Close box with esc key
        $(document).keyup(function(e){
            if( e.keyCode === 27 )
                close_qv();
        });
        // Close box by click close button
        qv_close.on( 'click', function(e) {
            e.preventDefault();
            close_qv();
        });

        var close_qv = function() {
            qv_modal.removeClass('open').removeClass('loading');

            setTimeout(function () {
                qv_content.html('');
            }, 1000);
        }
    };

    close_modal_qv();


    center_modal();
    $( window ).on( 'resize', center_modal );

    // START
    $.fn.yith_quick_view();

    $( document ).on( 'yith_infs_adding_elem yith-wcan-ajax-filtered', function(){
        // RESTART
        $.fn.yith_quick_view();
    });

});assets/image/07.png000064400000155505151327614500010103 0ustar00�PNG


IHDR��ym{tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:78CA2416BDBB11E4836F80A8CCD3E4E0" xmpMM:InstanceID="xmp.iid:78CA2415BDBB11E4836F80A8CCD3E4E0" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:70C56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>'��r�uIDATx��}|\W���ʨ[�l�9���)��BBIH%@xK�] ����>��wao	�.��!���H!=��;�E.�,��m��;�����i�UF����ѝ[�=������+�Lb�����xK4u��+VFP|>_�����W_=��N����eŊ����,8��x��e�X�gŊ��/���/�.�8�n�A�� gŊ�q��+�>�|t��)vy�kς�+V����(�A�$�=��)vy��8/�>��X�������d>�:��$�,@���|��gŊ��8�0,�e����n��7	�.O���u��Y��b�J���n�	`���bw�,˛�`���2����?+V,���t�sW�;�2��8�.��l�r�e|V�X�˴.ș���y3B��& ���l��	��]���e}V�X�܀���m���{>�-�MTf7��̲�ˇZfgŊ�\��3��oW����\�&�Iv�/�wW�s��႞<+V���r�]2O���IviL��οe5W�p�y�>+V�L��z'p���2^ZvgM���/�9w�����p��;+V����0`�	�D
��Ys�$�L�й��}8sz�X�ڀ����t2�_.��2Q�.O/�l@���w��l�w<fM+V�L~��e�̴�p��2a�O����^��*�+s�3�\qt�09�ӝ'����z��+V&7�ect��2��Źq켜�\�͍c͚�L3�l,V
���pL��4K>����!�ߖ�Y�2�X��$��v�8�z���9�e�n��]60�z�,��8��ف��+S�r9��@��3a�xpr^�dЖ�Ml�s
��e:O�������W�X�29�\6V��x���3W��|��MD�f�qh����<Y��z�W,�Y�2��]�8�\ G��&Й�|�Ԭ���`v�0�L �
��%_�f>sx�X���.�9���.n|
x�SK>:#��C�0<+�ҁr��<�΃ܦ�\��vV�LF�<����s:��s���`t��[s������rDџ^��C.��:����lr��V�X�2&��7�d2yG,�a��t�<�~��v��e�k�4�#�}�{ߛ�����m�+V��I��x����A����%]�\�k�@�.�s��͗��B�[�b� $��ʔ�2A�Q�Y��`�+]�ӑ���%n�+V
IR:)a��,ȹ�<��&8�eJ��Ff�����bŊ�B'�%��	tVFb�Q��Nݕ-��co�+V
\�f�ϥ�������V ��bŊ�Bev�@._ೀ7�]>�o891-��b�J!�5w���k�m�]�9�Lqx�2�X�b�J!�]�gnJ��,�M�˧bx&G�;+V�L ���z��C��~Zv7�����B���Qł�+V
Y<Y@�e���gv�.�R?·NJ+V
U��J<���Iv�&a3�[fgŊ���w3�
���}�&8�e�Q窀`�+V�:�ebvnlS��ecu�V,�bŊ�Bֻ�@.�˦a�p�]��=�
�mGAV�X� �B�ڙ��ӭL"fw<L�:�X�be�0�\�fu�$�|���7Κ1�X�Rȃ�L:+�L)��Mf7;u>�R�X�b�Py].�f��;W�9h��E�b��D�\sv�՛V2H�׳;���{�^�X9��r���\��D%�L���յ2����dv#���V0/pf�/-��liY�+V&
�r�&m��$����k[�b�J!�lgu�$�|&e]y���X�b�u[.�J�Ϧ����>V�X�h�,���L!�;�NJ+V&���xv6�Ċ+��X���+V&5�Y�e�Ί�Q�4.�X�YY�be��F]����a@=g"���#��y���/I�烃c�j]GI��/�<o;x��4'����z��g~N�{j��䤒�{k���0��/ʹiӆ�Dg:�v���X��
��r����7D����N(@�"��w)pK&cG�P�S�ZVQ���u�~r�~O��Vx�������V,�Y��/^��?� 1���D
4F�XdM#?�&E������>�Id�x�hTa��"�;�
��(G4گ��e�0
���CDm�V�0��}���nu�>�3%`�U&�c������@ii��vV���?	�
����g)�w��.ɹ�DT�WTq3��1�}~$@E���L�
���čP(�h8��<O�8��C!h~�#a(��[19x>�!��K�fB����x�]��vSJd~�/���^&b�c1c�$�3�`�[�S��շ��y�$�^ww	Eۼ�(�J�%S�{;seL����hO%�2�E#C�2񥬬%%%�4m��ʉ��q����/Foo����gG�!&ǣߎ^���a��)��m�Bie�
ڜ���/��"�̙c;ɂ��Nxϛ7+V���a�J�Imm-���,��`g�;���&LJgg��	,b�����s;L
D��-�!��|tFR�z�SKlP�+V&�ppRTT44h!�Y�`gŊ+�섙�ÕvVNP$.;TV��;I1yej���k��Ѥ��[����SO���,��-[������a{���sD�kkk��/���-�>��3�߭���Q��x�9�u����(�~�e��`�~UUUX�z5�y�f̜9S+���j��܌7��
�ܞ�sn�1��w�n�s�=��s�b֬YSC�y���$�GR�i��+V�}y��ַ���n�I{�}�_�g>�!'������G>�m��������{��G?��Ç�}
===x��ߎG}W]u�^��z�C�ڻw/�:�,<��3�>}:��
�W^y%��׿깨K.���7�r��T���wq�-���B!
�<�T�G�~r�)�,�Y��V$H�4ϚK���rs��e�hB�ַ�U+ӝ;w���F3/*U��7�������]��v�Z�}]]����?^x!������8�|�_��wީ���~�3�L!û�+��o[�� z��c���:��i���k`{���qx�U�Va͚5��L����}Ovuuهۊ;+�L@cpu�E~3�/�e:V��&��-��4��<F�"P������^ǿ��bƌ����LP���{�d�|�+_�~�
~.:ϫ�������1����'�1&���k��C��ǃ>����VʦM��)t�ƍ������[�`gł���L���?M�s���e{��6N�7Qd۶m�5q���D��5�=�4y�u��K_��$�?VŠy���y7�g?�Y�mG�"A��y�0Q�O<�|�8t�6WR�nݪ�8	v4g��Q�x㍃/�b�d��3|�Wt;���Z���?���6frj�uP�r�3I��L�(N82"�
�<f:��m�~��?Ԭ%W�
��su4Kr��LlѢE�DI�"S{�ߨ͊��_p��Nt*�c
͌6l�i���۾}�6o.[�L�����,*:�<����N̨���{��կ�?9�`;ׯ_���h�$�q����3U���8��r����w�y��`�R��m,��M��R�?��;�G�j����|�;�T&c%d+�SI���W�(�3��}w]&Vg�S��F�����M�b1��8�8�3���)��Լ�Є)��dq|��	B�@`�Y1�w��(�d'W�X9���<���>�/����?���	�����|�͚	s@�w��܃�z��t�MA���UFx�yRߣ�X�%�XƒL-�U�tB�7M��M 1��Dar&(e2=��F�lO�Zu��R+�1ਜ��r,�3�'�/�gz�	@���k~��/�#M��d���N�����֘m�)7�W}˾bXs��v#,���J�8ٜi�1��\�x�R9_DG��0Y���L���,ד��m"�eu�NO���M:���Jv�����`�g��[��r�/P!��8=$�q��92:Y�Ķt�R�;��NӢ	v�R�NT&K��ш:�`�ob�i���|7�L��B��rA��d�.4�}n�o!{��z�8�\����"D�v��K��	n�pt˅�|�á��n|�s���~�;���O��m��܇�<�6xLZ3��>�_�)	�%:t^��O��r|io!�+�5x�����'T�����dB}�7�.f_�q>�:��fS����$]�8�͑�\I�F6�4W�2d�2㵘�n��lhh��Lg19r!0�k����wߐ�<]�9�f�Xqq�;9�8�H�^L6Y��7�x3�d"ϑ_#^���ȹ:�5�X	t=Oh+�3o��&��#9�+��ߦ޾�杚��,���~ʲ`�1-�Y��@�9q4�|��\B��(]�#F�	��ԙ݃n��H[�r�fmN�"��&K�C���O}J�$��o�>���9������l��&�)�v���|�\��c�*��$�{��v�*<�v+��l��
��⻀ƷG�YWp��7��
L{����s�ː��֐6��,�Y�$�N^j1;��@���c���Q�I��XL�\�E�Ǭn=��iq_��%��y���tVb��وy w�ܭ��9='���9��*�9��I8^�	._-|`dI�
������Qס�Л\)Sw��Syh���N��V@gYݘ�;c��:;Y��2�A���OzX�]�y�i@�aC��	����SO=�g��̏�$��̌���N��tF�\'�q��s� �…YE�B���o���9�L�8�2c���7E����n$*�AR���^l�� ��e��7"Q�Iuݞ7�F�;I|�s#�E�7W�8��{�+�N+쬌��F̕Ν1���Y<�%snf�aVde��ۑ���i�dfn�O.-"�%
�Y�BP��2nG �~>�KZ�T�G���6�J�g��\6�>{��C�?(;Y��U�%G9\�A;�V�X�`geXg2!������fK�#�гR����&�mP;'����]�%!2?�dn�V+�7���I��b����L#&@n���=��}�9�Pē�7Wڽ����b���;a@���&�K��G�"�DŽ�D��@���"녉�Y���O1A���b~��]i����Q�����B6�v��dz�朞�e�餒�fA+�ZvV&�,B���	�#�;�SĴ(�GH�G��,3�@�%�s��Od΍��'���'4+���;#��w�-�w��Q*L�d}�4���|�L�g�΂��	
x��q���fFP �p���C�0<�r4���fnL3q����8L3��?���3����܎ ,��:.�:���%�]����YVg%_�ψ;+�`�J ��,����|��� �(�&A��f�ayN3���l+LK��Ig�G�*�/�5�&��ɼ��4y>i� ���X0؞�ozӛ�����g�~�r�)z[2l:]u�U:؞�-%�X�2�bӅM"FG 8�&t�f%�C� @�5��N*�M��L��df�FDz�9_6�p�IͿ9W__��G�c�?�e�	T�!qr�LEb�:����>gur֙{饗��|G�vPhN~�gt���ú0++�3Pߊ+��m��R�k	���\���Q�S��44;=�)��X%����k:����#�q�8� s_3�����F͔gf6��<x�4s�I'�k���P/u���O&w�m���s��q��v��+��/0!�H�ao�Š6�ifF1�S
;KW�`h\��o'`�O���y;��&Uq�Fi�	�fL����f��<	�g�P�9��yE��X��NA��z�|�T����
������>�^��>�V����9�Ixt<1�)R��#��$�@d�řEZF��	�Iv]n]Ն%|��cM��)&R21��x�-Y�̿Q$ ^@Y���4Y��r>�=cٮ�.�L��駟���G�B�&�u,X�@R���hʵbŊ;+�92���^͘�\fnL��@oaO�L4HJJ|)EO�E��јOF#d���a�h�9<qt��=��D��C� ,��P��\�th�J��6��\N>�d�7�>E�;AmDhʤ0��+V,�Y9��g�	Жu2&�cz5����I7�6X.��) ���3�Ғ*D#Qx�B�i��(*ra�I�(
����W��:&�\2��G�%��=̘BRz0���Hc��9	�p�2��ي+V,؍����L���h$��g D��M�FƫQdN��:f
9ac&3�iŠ����-G���z�{;�Cp�PP���}ش�W��"`���h��c;���]4��ȼ�tק�SRL���2�ܝ|�~�+V�X��R@f��P�Tt4���|)���� @@�!��Y�]��sfx����]Q�O1�b�ٸ�;wT����Q26�x4�^H^P���+�����ۃ���q+Ѝ�cC��@+m�(ޘ�Ӣ{>���\���1�δOrͦ)׊+V,؍��0�n��w`\�R���:�
;#3"@�ǣ�f֯ۿ���d01SlM�L��V@�GO>�0��]�-�#l��^���
����%
��T��o>�k�T��������W��`�1%��աt�w2T�Y�$�&H��X�y�t�vΤ�V�X�bCFHb�J�>���PZ�@D)�P04& KVG3�"S񋉒�DH�Äx^:�'��Lh˲�r<��z�}��8�����k���:�'�?��r��-FŢzL[~2j+�и�g/�ďo�KN>���Xf̞�Gs^P��<�d�Gd)'al�}��g��X�b�n�ĥ��=a��+���G��i�4��%I2Y����NL�������D@��oV}-,��#mG��׃2�;3f��߽��@e
X�]}��B8���oz�+�Q7w).�?�����;�cT��$��9IG� � v�W�Ӭ9�@G@f�"(�|����,<_�X=o�Ν�;�WM�YS$0?�p>�}*���\H�:4�����ى�Չ�T��&byH�o6�b+V�k�!I&�bv��$�1TUOC���Q<_r����'R̄R���?f�|�=���wje&�ɜ�3=���/_�_��7ؼ�O(-��??�ƒ��7cK#��!tw �`Z���r$B���soz�[�R +�sf;���6H�g��svƦ�U��RǐO��tsu&荶��O>���"e�8�ۺu�PH��Vy/l?c�x�n�c>M��}�v���ި��?���j
n�����������3��Tl�ҥ�</��s�"��l�s~�y�n)��l+��R�P,�pJcc��#d ͸MZ
4�!��G����@�E��62֐�0��} ����Y��%�?x�ގ߹�g���+�Ɖߑ�y\^�)�<�*THTb�4��]�=����^|�E����O<MG����=x�[_��#�x�=������_?�CG���E��1��)`��@8���F\��z�T���~p.�S�����T�dGl3AC��xmT��qxIg�4=7Gc~���Z��_�g�y�>Y���R�s=5�'P�s^���A	K�=�^1o��'��˾b_�\&���doO=�֮];4�vΛ7Ogo��@��~goذA1��y�l1$�m'����<l?��c��I�z�����_&2U��������</���C9 c�1���,	������k�Ί�qexT�i0�H�5�硢�20c�d=��ߩ`8�g�6G�TFd��4���ˠ	�La��]ע$�Xۜ����nF��0�ϬVL��`9��)�_bv�ދw�c��?���C�<>�1#�4dN#�$A4��'&-�4�}fAm3&��Yg��YB�gΜ��}���;A��%	�	D���^��dp`�{����E_�g�Ⱦ!x���x�$�O�w��]��x¼�N��g���T'�fn��׿^�]���LlM&��=�V>����ܟ���z�l��J�[p��������p���~4��<�q�9����K.�d(VӊvS@ļđ��:��Q�u��8:��Y�l�6C��E"�R�D˒�y����8�B��0>|��X6�&|�;��u��=���/�)��|�c��?r9�B-)��r{^cz�䖤�ܶm�n�W\�sIR�)�����xI3�<S&��;��~�B��(RY��6;�є7��������,��)0�ly�����S�n�������."�O	jr.3����O�B����7V��%�v����	fG�験��&�;��<� G��h����p.#f���#��=�*N"��/x⯿���\p1fϚ7�.�;�v%Q;}66oنW��{���u���3�4�&��oT��=���Gb�	¢ �:$^�NX^&���I�p�h��|�G�>'�M��b�����mƩ	�H�I�@HS���$E����
�������]g��3~W}A̝�笽P���܋������U��/��^WR��w�Ъ8��;Y�_��m�"���漜0W�>g�0'cs*��V�&�pN�]s	kڙ��8/�9�|@ʼ�X���	��B5���G<K�B��RSS�1�ir�M���kL1�/�W2�H{�$�\w&O͑r+S� �.�x"s��-	���dB܆f%*
z�Q��DD��8��7$͊<���^�}C8�,��o�*y�o�����ԡ���$+�w���g�_��h�j��
I�C	��!�%���N�/���#/B��'N,&������ͨ�7B�:����k䠂�)4r��m��������^^;�6A^�h��9@����_�F�d"��	�


z���x���xlΧ�"����z�1��3���ɹH���H���޽[�=��&ONx>�ǹ���l7�'yM�^?�5�a�>�M�4Dz��c��|Vyn��eH�m+V,��DBeDe…`!�����\���4֭[��xC��G�b^�K��Dm���¬�ڵ� ��c�έ�*q̙3S�07��[���9:i�	Ҽ~�����Yj���pq�����|�\/���@�
��`�p2�<�C*e�<=�vr�d{	fdw���dd�ɜ&<.A���:^/�6�+܆� �KOF�=8	����q��u�k���I�pi�8�p[�%K���QX?	�ܖ��r��	F<��s�y�H�q�a��	��/����9y
<�8*�ه�On�g��#��gh�2;+m��9�8��s�(v)�*�_2�G ��3=����{����V�.� �͘9]��kp�p	*+���;X,�nf=�n��Q�%���먠��C�w*9*\��&��q��Q�8�ؙ�O�h��ʙJ[����c���$��d��^^��X�Օ�r��#�,i$�	2�J�H&E�����g�^s��^���Ib�J���Xd[<?�KJ6S�N��>8!c{pl��ߤ�.��c1lA�P�'dr�F��RVܞ%���L�;=@�=�c(����!�Il�ɾ���pV,�M2�T&#sa������K�2:**iqh�2��R��<��yΊ�r�ؾ��v�ق��h���94g+e�����܁+�yC
�C�mR;��I>�&	XF�v�>b�5=*eΏ��ڸE�nzN�
a��0iS��DN�C�Z4ٺ��)�cs;���C����7�a�����6l7,�w��)�i��c���<kJ:��t�D�tJ:��/�Pw��a��h
j�X3��q�3"h�qg��d��t��:*1cQ�R1p��cQ鑉�w�Cef:��W�|^�m߈�}N��?����+.�e~�7�Č���h�h�<�v`��$�ɵ��Nؚ����\��+��<���.�ܲ�hϟ�|�ͬ��ɍ�3UX�c����(W��p�%}�hI6g^�h��+1�[�]�Xfge/��Q�á��̉)�>q���E�#�I�I�G�� �}�W̡���-X47�kX��9�q��jD�Au�/�Ph5�6�`K�1�U[��EY�ٌ`!�d�br�`3@�]�"�
�LB��|���tƌ$_|�P�I�sN<?Y���Y9���pl�'Ñ�K�	�#��7oެt��"Hq~
SS�"���A�˶��p[��q�P�R�6���#�?i^&��]�G4cґD�&r[qta;�\�o�Y���;M�m�s:�p��(qV�1xo%(�� s�|n�q�䱲�d�Q�Ir�b��JfGH�E��*!23�Y�/���8�g�rf�'έP�P�J��#��\�i�"�UT���ޮ������‡�֬FD)���ǘQż*�D1���s_tF����ל�3�E̕ܖ�O�]�>�N��p��롷 �ʚ������|؟��g=�`�4�����v�Mt2�ɐi���r.�B����}!��׬Y��!����w�s�]p���=��QD�	z��d[���p\�a��Gp�|{��401db����~�w�,��8l�/�'����?���g��&<�e�]���}�s�3��Rx�<7�k>Cl?��������u2��X
����!W�k��ڊ;+�Y�(�l�/G�T�T�b�3���b*9*�O~�z���H��x,���OH�@/�LjT:��|�YVF�T�<�',�4o2s
:��$��H1���T~Tx�n)W$�_���m�"�x~:uP���v:��nf��
���~f��z��'Y��	6�[��O���C�O/F*|�,���s�od��!~�x��3����\ Y�E�a���w:��4#�y������cs^+����܆��cJ�0�;�G|y�xLB^��\������S�c�����������/���F쬜�(�ʃ
��\�t	s�£��Ba@��ߎ�����w���ކ
�/!������3���&�&�H�Kq$��BfNKqT!�<��sun���7�yr[��J���O�M6`����9 m�9O�j��a󺨴�X%�M9��)f�.*u�
�AL��"t��=%h9�l�`ˀn��^� i�$����B`a�)����Ӝ�ַ���u��
������N�6H,(ٙ��
�9�'�������l���O>��~���s)�M�i�g&+��pȋ(�� �($/s[*@����qrQ=�nS�����M���P���S4AG�������%Mn������aH���Y�w�.���45���3�7�6�]O�y*�C��qr9�p��Ll%W_K-Ŝ
(pf�E�s�gh��%�$~�����:��y-|�h��`�ˑ\�n��g����I�=c�n���D����=��92�'���=�
Tҋ	3��h$��ijI�Jӡĩ�LoJqҐTe�,C�&[���_'ac�!%��tj���y�l�Z�X��F�)��.�Њ`z��1���r��X;�d�c�Ϳ��y ��)��_����!OR�	X����a�T-�Mr�9-�m�L��|7��+��71J�+�̦)Ҭ�'�'�����6*���.r\�u�Ui�k�L��4�rތ���Uz&�1�:���i����zlp�� .
��$��Y\�㲿i��|�b��:xR(�,�U��,�3 �W��e��!fp���k�E@M4M�=�,�ݔ|P�i:�L,T�<��vpͺ���P᳝\�k�d�dC�N��o���_R�&$%��s��V���lI�ͲX'2xr�p �kc��ڵK�;���bj�4Kұ�3>;>�}Y����즠H�;**.Tj��	0f�U��i��3Q�)�N���;.�u򎲂c���(�B�/��	.�ZN�F"�ʚJ� (i�hV�c��8��
p~OR�qތ�pJ0�xq>aNI*~�qR��;�s�R� D�O�!�+���`�:Iep��ex.��cp{�/y+���(tnO%�2]���)fY.Pz���I�)Z��N�G��!���$�Mpe�	��C��&A���J!��ە��r�L@&��2`�9��&q��n��2̍��%s.�5:/�u���ʲO2,D�`7͜�@!9��$��	j2���:�b;ٝ�,"kV@7k���&�
���B�Ϊ���g�X���ݨ�9����dTr�5J�k�")��SQ��N"��[�
���#^���º���8��&�-�$����J�N���8!	�	�<6��y$���FFL���"��Δ�?O�	H<���қ��d��;��1\|�6�g8�#99	x��5�|2p�@�Ǖ����}��<�'��G>�]@��o|���o;��Ҁ�	����ƻ���p�[2ñ����ς�����
 �P}��L�[��D���2�b�	�f`��R��7��A-��"��*dT��*sv�eJ�Í�|�0YI:e+��}Fd6zV�S�2�E�%h�]�$��-�J�h��8�p;��6A�`)^��6q(��v�gG�}�rN�q1]sa�;A�m��O�O�B���Q���.3'k�w�x��te���d,�ۿ��Gŷ��-�7ٷ,V��&s�.eI����4c�ڑL�2�P2(&�a��B<vS��7��xC%�Q�6���2͗	���;͘��x.��gzuf��tK��/�%���H�5ۚ�����V�B�I��힚�6�!d�y^�g�63��T�f{���9�27�-�9��)��#g�9ϗ�{�{�����e����̕�O+�eN������9w`q��%��\��d�}��W�g�n�����w	90=/�;x��1�	�Ns���r<�L��d�&p���i4�4��5��F���Z/�����H�ܘo��O�ޜ0f�<b&v��R8��}_�'��2����?���ϯT�0ϕ��.tN�Dc&c�	`���bw�B<��O��VJ�������|�R�U�8%ˉ�������@�4W���YE��d~�Fger��`w���n���,'�BE2+:~�|�qb��75.�U��ӁE2���K�WҔ)y1�^��y^�mG/F2��qN���<ɾ����p饗jУ�	��yD΅�e>Se������d>J�y:�BFg�7���fJ��&!�M`S�qGjpc%�K�wI��`��{.�Kt9��x��)t�ڨ��� ��9�D�))�$F��N��<�	PN`4AL�N��*
�v&p�a�v�/�y���&%���瘘#�N)K����'#����<��~�oܸQ�����_����^�0�����|̅�}�DY �� ��� I����؇�����'�I�6s_N�29#x�nH�n�A{�>��#z��O3�@m�v���)�ߝ��bwN6�0��0��.ȹ0���p�x��)t2*�(T�df�J���fJ�A�a:�@�5L��t)���t�1��g�N������Z͊$~N��´l��}�B�#��87FOI�=	R��HOC11��"a"�("��7�Q���e��S�2y|�I�c�z�	�R՜̓�΢��2?I�w���^$5�L	�)p]���dv��y2�Kd;�0�.�\_&�;^�7�g�n�]:�I�%EPx$U��T J��t��
�|�3���8P�ݑٹ���,O@x�YG&��2��������Y��,l�e���zg�}vڼ��ęG2������97hnck��ɇ���~��w�).LFo&C�����dp��zߎavb�t:p�L����ʃ�e�Lf�ە�\ҕ	�,��2j h��0��f�/ӻЙ�Yc͹8e{'�s���yɗ��&�	?0e�#]�H���_@o<�	���K�{_>�R+�����d���L
f��dI��ph{�S�ٜ�;�2e&P�g�|�-�%��p�]A��,�MRV�蜠'srr@sY��5YgV2p:�8�t:�ls�=�3�.N��5�vf �x�1G���"X�{z<}�甌�s�É������c��2�o:�L�.n�0M�K ��]>��):�D��	�Ҳ��6eZ��b@'��L����G'������g�d�dx�|��n����L�w(���z�3
�]���lb�z̞�2U����t�P@΅�&P$��7&Ǿ�, '�t�o�͙�&�˛nΎ����/.G�&ؘ�r���S�I�v��xs��j�4Ӂ�3]�lʧ�Os<L|�&7�;�`r>�íOG�� ���>A/���	���t��b6`����]"��
	�Ył�~y�J���ƽMο���S�B/B��'��b�u�L���ͦ�0��8=0��tz1M3�9es�3�u<��ΧM�A�8��])F�0�Od����I'�sub�t;�ȝ��ebs�L]@M��|y���4eZ��'8ł�q��	t�H�������!���&�?�.�̘�bV(7땙!�1�s��_�)���lɬ�'��	�3s"�����DK�H�H͊CQ��=‹,(`M��}(�|�t5������T?�L�C^�z�2�+S�:IG�5��c|&��i�����9Y���%iҀp�	5�a�L��FH��Eh9܊��.��K���O��G�2�2�P��s%�8�%�[%�[@Q���d:�qz�	 9��dH���3�\��Y�@�=�@�)����e{��������|vMA�],U�%pѷ�*͘Tf�qYav�T��'�%9�HY?�
��)��א�o�N��±�|.�% ��ô9n@g�n�Oa�bK�DT��"t��">d�p��=f+�����^��h�{3XLJ���dy�I���D	B�P��9ggz���9͘rM�*u����q��|�"Wj�`٣�Z_<X>V}�u��q���^����El �d<�U��ȫ�uy\�wX24���&�U,�'�G����=>՞X�!I����	?:����9(Mtf7Vf�T�y%X����2�;Ӊ��Т�at�@�Hc�LfX���9��3u�DӪ	rY�Ac��,؍�CG��X��KQ��4���11a��o:��_:qT�	Sܢ�\�f|�ɬL�L󂦲7��w'2l?e_S�b�k��L`�y�ɘ}*���@`����
�g2����`���u%H�u�GzQ6�
�R�����X4M�4��ѵ�0*� �D��_˫�������Û�P>�Z���cu����!t~�21n�l�=�k�d����y�x�۾��K=;nGJ13Daȋ3v�ɱ$��Ћ#}�='�媭��Z��	v�(�Е�U��aN]��y��f��e�ْ"��M��`�
��6ٚ0�t���d}�ܙ2?�c�]:f�p��9C#�+�J:�K���63�0e��Ru�c�E	���Ho��%8��Wb�OQ���g7���޲"x�+�Y:�؈��ը\<{0��ň�4Slz|;"�_�
�=u���K�>��r?��T��j���T-���Ƿ���I���D1љ�X�c d�-�1�t��L�)g�|N2�/��\�n�^:�	�fм��X9��ae�D�uJ9�%�H�<�/m&�G�3����Mڛ�"NoK��������<i2��@vg��9Y�����9V���sQώ�M��o��~�)Pr) �=e<>/�u���3�Z��@-�v�|�\Ua��pO�OlF��98�|#�7���5+f�B�c߸m;����(�Q��%u�m�@��zt*6��W�e�>���A��?gq݉�dKm7�K�_�ů~ן�R��oY���q�.�/�z���4Y'�^�Ƨ�&��|�+3��nB�^r|�K2�fd��C���ę��i�L���''�F���>MӨS��wq��6fIg�09o!�1�1M�眨90���r��QTS��bk;�|��-E��i�Gb�y����`��OA��=:PR@i}�Z_���o���V�g�U��Ho��m���/FeC�]A�}pf_���>D�a����k�=��p��z7��-9)��Ɗݥ��5X��G&���R�tf5�t��<�p�y���=&Ҙ.Ŝ��,�Lf�ӂ�$0��3��tg=�K���R&�M��Ns��5	�YF�e���c
n#y�v,���>�	��`��Q�.ź!�j�=d���+�tR�=���k�GN����l��
�і��}�V]ɳ���};�e%�Ov#Y5h,=ұ_k�}/�u�u3��+����٨N����n^l����M����x5�f4u���"���m@�^�[p�x�E���{2���P����]�4kf��0��v�&�e�5Ǹ:΋��#?	t\w�%���
W��͉��6H}�ѐ�=/�{֡-ļ��ly>��{�w\�7m���$�~
�Y'�_Z����V������y�Uz��_?Ł �ޫ.�@�L��؈������c�΃𔖡2с��w�+��8*�r��l}߽���d6�•矋�����f��G��4�����!?�;w�S���8m�I���6�k��?���|@]%:��ϽՁB�{P\��m�mƗ���h�+~�(���<u�x~w;�܀�5�QѾ?xtN�U��r58�^��/l�ŧς���߀֝[��5�}Zڛ���n���<�,`�#8�.œ��~ۥHV/�y�x9X��}����I���~�F�J5�;7�nݺ�ԟ�!{�z:�e�y�1�������z��!&,EC�c�4IF� ��Y�Ʉ�'�o�Y��4#�c��*�l߄��Z�x�}�!�t�b�1m�t̩����߈�@�b:
(��ˍ���?���<�a::��`+-�G���@�����-��Ɋ�x^�jW��'0w�<t�وW�� ��v̝���ʫ�a޼Yػ���XU�-M(Q�?�8ﲷ��	O��G����	'-_�p�.%�v*e��
W0�ֶ�	�_\���A��
�kk�i�S8�уP\
�@-^8G}&�/�FMM5ZZ;��\�sW�P����p?>��K������G�8������nA��^|ݽ���Ũ>���>���v�MJ*qt�Μ�3�h\(��:�� �#رf^:N���f�S�LR��L\Q���+�QSQ�[뗠�߇�}����S_�)�J|����_��\X�5(X4�B�?_1+_u=n��î�;�۝��Q���*4n��q�=e	V��P[�ɫ]�V�����BmU>��O���
���]�V���ߊs�r
�^��?����?'ͯź�Z�y�`-�y���J9n��
h޷�X*�ս���F��pޅg��s���Y1���r�[߆θն+.��@)�������������w����?��g0�4�C
���h�TT������ߌ{�b�(�<%�a-|�(�zx=.z�0��2�\^�zS]��pla٤�o�tEdb��5Y��N��,�.��4#/�{�^G��y����Ͼ��T�0V�K�(�8y�r]�t߾���G?�뮻N���1�#J�j�������׿�U����(Go�^z���V�6��OČ�6��3����Ⱥ������9��6����9}�я�Ք�u��;wcN��A�{�9��v�z�z��[p�yg����A7ϝ�_�w�rN�}���z����n�*t5�7NiX��]ۀ�:̙Y��q77c�Q�v,e$ާ�Λ?������)��7>����ɩ�8@�\}�Ֆ�M��:F8A�40T���)���]6z?�ѱb����J���QQ��`u�N�,P�{�E�`�4�Q��1�3-X�0e��b�\�N-��ًP�Z?gɲag��������86at:��\�wcƶ��Hu�׍P�=��=;����,�sn�ɥڌ��wz��5V�X�5��k���9�Lswp_���&�$�I����4�by>�glϟ�L`�i��4��rj�]/�����n<��F��}�h�@<D��6c�>���g�}_p���s�}�y�1�o94���>��іx?���3؏͍�����������n�����r�+��o�կ��I�lْ�溲� ����<J�Z�n]1]��L������΅��A�z��<�L��� �
xzd����͛5�1�@���b�+��t9"�5lLer�9�ѐ�v��_�g|����Ys�
���*>���@�܅�&c�����M$��aZy9*�=���L�}��L
Gc���k'����[���ܗ�Y�jo����'nDW�L���ȝ?�
��'��Fm�O�3|��aw5��Q���6|���{�]X�p�%���(۞_����ͷ���<
}��o����_cּ��:�/����������j�u�u{���AmՈ�∨�y|~=�^2�ӈ�)�{�������ԑe�>O�@��e˖��uXf7�<_�L.#�g�ٝ��՞#�Ԝes��x��x��w�K�����U��)�4n�/��4=��;���M����A��C����9���ˆ)%�P�)�Q�21B������`~�����u��9��s�>��?��v55�/ho�?�y�Z����~��}����=����3�j
ZRB�����=��|S|���?��Gų��t�����Ƨ�/�VϼO
F�0cZ5��`���Z̜Q�`�*����l�Fzo�\I�-��(�N�1�/?���4�[�r�1�t g�M���ڊC��i��
�+����"�nw�����x�kQ�N`�&���o8���u����p�'q��g����P\�̘Y���N���_��ʑq�	TO�'AS{���Z\{�eH�������'q�k�����n|�ӟ��מW,���v��7|W\�:�c!�en��Mx�٧N�L�3�#{�X��}�X�t>��vc?f��?���߉`���nª%��>҆��>�VV�����=�i�TW#(B�H�2������-dK[�L�9CO>���%#6�`dD�(EM*Α�޽{�}�z׻F,� W�A��n�O<�6l؀�3gC.��Iz�LD��P�JWJ*����W�jp��D��W=��J���U"A���rc�7�KTu��?B��
�zCI��
�-*F0EY�qV�P�:�#� |�>�(�T(E��E�������n�v���,�RU�P
>u����(P����b���EE��;��i�jkeU�`[�������LV���:�v�H��t��w�Oc�����ai���w�*�Ѓ7e�ƥM>@)�8r$��d�S�޸}(J�h��������}�"5��PУ������A�S|5=)�]����~�4�*�i+O�^R^9���#���,-+=F�UV��w���L G�]��*�x͘�Sҙ(��|i�n�o,���-<ing&|�9E+V�Lh��'%X�Ѓq͢b�n��V؎E��S3D���ι;�F��8•r;�b*�G���MJ�?܏J�~/|���.�:���4� �)���1iW4Ƒ�#(+*E4U�������Y��HG#JuHDJzQ_Y=���V����F�_�H"��0Y�K�<�7�v�(�[��P*J�����*����`��˂݈�|\�U�9wR@��cl���8���)�z,ky���jz͡�Yr66��`
���1}�
�z�c����Q�$��R:+1��7���ٴ�z����ttv7���S��ɧ�s�z���>�=;��Fe��*Q9n��_��{�#R4�͜�-��*Н��<�(?������.LW`\�݊S��Jjd�.����7�0�1��VF�I�;Dz9!$]n��(8)�a�&4[2]XGG�fyR|�H��ݽ�
�(�x���'ԉ��;t֛�j�d�1��p.3�q���0<�
T���ۅ��"�t��q]!<I�5��S���(���צp>$b$}e�M�h<��M� �NOQ�!hdo�09��FI�ɸ��(c��2J��ޛ��Y�N̘\��͙�Io�V�5�棺�
}�v��|�BԔբ�����1c)�f��p��`�ҊY8�j�V����H���E�7&�����@vʂ���<��`��Y�"O1��%�U��_���eu��iAM�\��F�e���7
ظ��Y�A@�z�{�Ѧ�^6
	Fh�$�I�*�0	|㑬z��W�yu�Y7
�C�+����,�v�`鼕C-rJy�xBV�J���@5N
8�.�}���^[V	+���2�[A1>v#iY12���0��&M�2_G�J*V�X����*�g�n������S��&�B�	�b�J��݉��q=���~
8�a̐��I��G����b���; ���qv���ձ�����/�矏��J
�R�NJ+V�t��5�c��X3�H=:q��W���I�%Ie	l,�…��֦sv9r��<+V��`����X�)�x���ՁҲr�a�1�����9$�CȠG�w(�p�yIRg.���'L�&͹s碾�^׸�bŊ�='K+8Gv#v��:K|4B4�C8��)���o�>�ܹS��������4'J�HN:�$]���Nz��-n/snr*�,�*�V��L�ߛ
�,�:��=~�d�72�]�k%��K��k��"�Tr����F[I��J�y��)8:�ijj��|�r�koȞ�
l~�"�)&(U	ZZZ4�q{n���{ii�ޟ�	jeeeC�'y/��2��T�T�^�jC�A}��p+�+��vg���t��όSuq�]<�@m�-]4��/�`7i�q��PTR�+8WUT������ua�
�����lڄPp0Y�,��V�Z���*=Z%�"xI�.4;�ڵ[�n���d���Tءu6�,n�{=C,A0����E$�i�*���w'��хr��]ɸ\��OW���.IuUR��k�<��
����֎@e�����vJi��@�
�1V�ͫ��"|��P���w5��KDB��m�b���n���}6d�2�)*�@���]����P��t�Y�R^��
�B8|��6s���s�M݁��3Ϡ��z�����X������T)�X}����j�G�����g�v
�6��7�ys��o�ϣaD�@��H1�.�������U����@�R����t�F�Ϗ�ڧ��W`�%�"�[3+�ǯ�@g+�mj��5��޴��tci���v)펁H��tw"���UT�؝�@8����j�>5���ȃ`�-�)�T���j[�s��S�YM55��?���-��-�`�U��s格�с~$=>����H�����VL�O!�W
&��`��2$�1�e����D�8
ͣsaF���N̙U��}��]������,��}���s	��A�&MޢE����Z�_]M;p��µ����߿�9�*�`Պ����7�-_��+���?��<,[P��_:�SN=����Z�����E�fM�������@�n�T���V�{;�|I��8_�����8�kq���n���"�tr��h���kg����#z}�qު�X��hX��
���Į�.��ga�m�1}z;q�;���ØVS�U�������U���fYy%����{�o����Cw��_�+�\�y3��On��/Ū�'��oG��SP닣;���K#�X���T��ПP�W�ǖM/���Z�pҲX�d.�������.q��;����hz,W̌#�姭E(�Y�-[6�xb�n�I'���:m��V�P�T. ��R����{r��e#��܂M/>��� V���D��
�ks+�ز/<�<��+xi�<���5m���g���z���珰]m���Obws^~�%4uQ��'_ŝL&PYY�ƽMhimEY�y���I��9��]O�+�������hoه_x���<����Fp�ݿF��Es���?��
���g��΃�س}#��W��d�*�l��~����?�	�@=���O[_�N<��Ә�x�J�50n޴�nٍC��x��'���#hٷOmؤX��_}	��?c�֭x���O>�Qo� 3�b��
����T\�U49Ο?g�u|>/�-o�so+W�ļy�-XFnM���]t�E�\I�uA�f�
�S)��4|E�lݏ��{p�[.ċ�<���](WZ��H�CQ���p*�~�us��|�̤�u�"�u�k�"��pK�>��u`M�tw��}<y�����4��3/m��zv�ۇ���Q^�GWW�f�~���S��7g�bg}�ē�Ȕ0��b&�g�Ua��-:Ѝ֎ο�-xӹg����X�y���E).
`��Ϣ�+�7����sB�r՞�u �z&���Vy�k+��ө��A"��%c�K�P�M�t-���H�⪫�Š�bjk�!FV�ӎ8�@�c�٥�����ɒ�.z_����)�Gv'�V�))b��&�7}��	L�>�O?
�u�0}fN�;��Z���7��3�jϿ��;'��:]{��z:V��%~��<��f�[x2��Su(Q���}}Hta���`Z�tt������p+N^���5`Ǯ�XQT�Xo�U��OF��1��Jt�w��7\�}m}�3�5���d�
�D=���rn�ɧ����Q��Rټ.�zb��Sp��0:c���M��-�G��a��j�{�*�m>���̬؋�
!�CmM5��g�]p���6'�8��z��x��2�3�� ^���pJo���
0�p�eoBW̃�Hܾ:�:�s)�袖�(��"��m�,Ipc��Y� P��Rt��{{{�B�O��̪�PS�E4�����'��%�+FW�qQ�RD�:z���^�[�;��EK��Eo+N[���E�X�p�~|~��;��y8o�b��4���pS��z&��Y�~�����>��x���D��wY�b"Qtwu�d�<���0�̛?�2¬y
�=/�����T=/a4,�c����8}�L5��̻]��_��zf�o�fV&.�U?W�#a,nX��b�.�tu�+�v�=�hXq:<�"tR`�T<>�{��~zk��P�ED����E�bt��>�D�ݽ�J�`ł�$;��RP�������^��%����f��qs�� ���$����`�@+�%�L�-��Xh
[������oh�5����>������C�{�CZ�[���|�y(���>;ۥPmj�pP�M�}��&�����x�u��Ț�R���nW���ضD*ή������8o�ыW�Q[4���CG�w�l�#�`I;On�n�*S$u�V�c�O,e��I%����t6�m���CU�����`m̬"ssK�,�sx����R��F�q��=J�m�N�]|��+����w��*Ԃ��d��KJPZR��§��/�;��šC�t�0ɠB�#��s��ݻ5������RK|��n<�@J�wOF��r<�~_Af�����3يv�v4Q�0��+���y�x��t1O	S����"�����wɌB!�q��A�L�k
3�!V�X�b�n�M2�@&F�E!�q��;?3-��%�w�b\�X�b���q�Ҵi����/yQ��dbmf��t�gn��>U����3^�!���Bh�8<M���{E�xyFʜ�h�X��r"��L��_�C=�_�L�I$G�e���t���7�pÔ�7���g��_;���0��׾�5|�_(�v}���-��R�Eo�K/�������/�kll�O~����﵊ς���䩬U�%@b4��>+.�1��s�`"�n��s�ζ�	l�̞&���N��`���z�t�޽+���H��x<��E;)�ʞ*)L1��f��"݇�c6u��+�>9�kΔ�gɧ��J%���]tVb�KJ���+�m|��b;&Bq�ƍu(�8h�g��ڃ�;����ѡ`Hg5*.Rm�EG�3�CQ�_���'�B^N��d��[��q���6+즄�`�(<n���/�W~�A�������R��E�+O��K�s�<�ئ�.��Ucy�Z���Ꜭ-�<�'�����O�����L'�ݏ�sf��~�\�q��Ӱ5��غ
aW1V�uښ����3g�#Ё���_R=��8v�ڡ39<=s���e(+t6�ro�t�r�]��9�z����@W'zCa��RA4�Y��bFy	v�؁P܍5��Fw{3�4���J�` CMU��Ji{Ѹs�z��J�'K&t����QR^~L����_W����3\��v��%�i8�z��
$��`驧�b���(.�����Ν�1N`���:�X8GEY9j�g!9Їݍ�t�4W"��js�z�9�(��B�ǭ���m�@bł��bt>B�$^ٸ�HD�2���D(�/Q�z�\%zOz�H�A�.�[{q���2`Ef5��%�U£kry�%j��X���1�x|�@rţh�
�=�~�;��k܎�~{<3Ѵ��ЇP۾�ر����5��IxC�[����V|�đm���ޅ�{ϕx��{�y�.�\6,�	cG�A�8�4���хzs��4u��7|��Ͽ�}�Qī8x�W裘ۻ_ذs4��"<���+���L;�����`�=���7n��
������بڵI�x(`ȧ]��_�x�]�j��?�=�8i�y�o���Q>�M]��O}���Z1c�|����G~����h�M�W?�������p酧��~��Z�@a¯�g��İ���jޏ��|��e�n����^!��;;0�F�>�bk��)F�#J�u�Ńp.�n�W�g�;����J�^�憻���T����Krܟ\�KBڥ	!�R.�.�HH�KbJS��.�M�d���>3����J+Y��q�>�hfvv���{�BH/�@��mv�d{�����Yr]���cHOZ�g�B�'R~��*��
�!^�
��&�}���+O�}�w��,����z|�h&"���¿|�ntlz	?��3h=p�{�������^'��_�+̠eE�u�ho���ǫ�<��m](<��wl��+����{���O�hC��˖\��|�?����A$��#w܉�����)����;��q��i"�ChlZ���W�q�.D�%��ހo~��K��yM�E1H���/���e������XyU#Jɵ?�ȣ���+n���O���ho���y�><��UtD����ƊK��py#�_�
U�4�(p��&��5�M�?�ȯ:�1�m�=9�&L-!3�Ӆ����Vupy���t:�:`�8�.����v2��VVQ�����,��r9as�
�v���s�q��S��y�$�4e��=��5�@��7�=H��h\ڄ�c���@�^����m)�57_�K����^#��r48��]U	��{�'�r�B8#��ե��U���c�� ��ͤ�b�}��U#���fx�S�}�����p�/����-h>ֆe.#�Ո��j�^v%V����s}\�x�����iKw]V�
��q�M��+�@L��G�E������0F��Ԧݧ|^�~Q����Ҙ����������s/E����7~�Nx�ؾ~����Y�o��H�8�g/�E�Xu��,.E�W�v�\t��x�`�u���a3��+�w7ٙ�:��X�g)
��<�m��P�Q��!-/"��F�.7�6�'���0��3��	��|�g�����o���/�h� �V��I�p���0��y|y��:7f�`_0�O��=�|$���A|�S�€?�
GO<�	�^{
[�F80�NO~h2NedTOԽ�{?n��X�ƫx�������?��D�w4c���
��,�B^����a�H�x�\<�q7���1Ҷ����O��C�A�p��O�(F��hi�#m�x��5]����GV���j�3}���
<Ԝ@"M�l��
7��_����K/Z�
��ͯ��oЂ�#G��}�8��J�k߀�_~����1�|x�::Qn�bǡN�|<�2sp�{W�zSf��_4Ԁ��MJ�M�v{7����I�}UV^�����,
#��ǐķ�x�1D5���!�:h~H9�t:Q�Eiy��I��~WQ�bd��z@*"�vv���-���G%QZ�s�T�K!�����v�LJ��XX���~��Y��sPCY�J��%�A(�]X�ʪ*��w����Qކ;/Z���Ѓ??�{V�z&V���;�;>M��u��jP����3'�R,Hwn�g�R�%�;d�G�R"��5�PRR��x��#�������3SMp����A�S���B�׎D*͇8�qpL_tww�y��8�q��vPh�5�f���=2`UNs/}���~t�����<B��	#c2r��=�͓z��D��c�ŋ�x�s6����c#_7��Sd��M�^ݽc��ǎ;/ZI��p�(��}&�%л���\]�&��вH�{�V��[*G{�wu�KV�E�(��.j,�Gk�?�\hMJNv�
��Gq���%�믿~Z�=�����e?��ϳ�
,,�<�*�`0�k�����8�qpL/�u�]l��>/�X�����1988888�qpppppp��������d������Ɏ�������';Nv���9��88888���)��r2�$�qR��4��D�K�K�ʋ��8�ꌔaۅ����䮙�����d7��'>�IA3�G"V�r����� �R�U��-���H��&��z����Z��6�?Q�ދ��7����)oR�qp����$5�9ql��(:B���e`�Z#fy�p�w���b(�V|w��~7��S�d2㕾�`x�=�dw��d�Ke�u��f��y�S_N��~\��)��5/0�<(���؍ϯ�
�����	Z�tbRk�6a[�.<p�(� ��Yz�i��F�րKšP%�J���t� �z�B!X�V�7%ANvo?����r�哑#ǻ��-^���{��H����cp�N͗z+�L^\T8���6��F�Nԟ�N�j.4ј�Һ
R$%��l�Fsng���s��U�<������pb���&�':��B��"���;~������H��d}�(� !�"k!kFsl�X�n>��+c88c=C-Qi�����;����R�M#���QX�S�����Q���3٥R)���/'<��Άz{3�)�q�w[�N��a+���D���
0�Il8'������C[hŶh
XӺ��+<s/8#Qt�=���G���a؈��<܋B��@�f�6�ʶ'����b���	)�]�D�~dr�*y:-��[����b�X�3�H�ɱ*�D���tR��L2}�1����R�\�c�L��a��/5[�q:Jx��8ٝ
�S&!�SQv��8�D(9�cI	�\�	�T7^{!��\�Z�\V-�7a��W4]�ۚ�¶�}��;C�q�2��0>p�|��w�m�����]��_ݍ�y�������A}c4z�y5g�Gz������o�_��y�	���_q����ۧw�f\y��X��bÝ�wߍ�^x��-��#O�P�N\y�hS���[�I<������}|�Ώ���r�g�M,��}��؃{�"v�݇���_�����֛nā!BzB_��g�����w����Q�#��{qǽ_;-���t0�lN	�.s'Nvg�����	��ͩ9Q��%a5���l1���,�T�?����
�,�0QA�D��Vd$2qh�3Cva/9�E/C��J�
����e��z�
W��6���_����uڶz����S�v��}�zl����O�����xv��p��}�g^�x�~ln���
�Y��]�5���_pb��eػ�Y4.�;nXy%6��ކo<�:���p��ED�����^�-/>���g(�[�ہ�-�_��;��9{�b��<��"7ֈ9�E��=B�a<�z3f�x�$B�8ڂ??�ve���ݴ$�S!������1y�'�����c3�a ��
���O�����@O3^k߄��D�!؍&hD-��� ���ԤE=�rS��5��A''������&�K>���m���o~.�m�dC���/Bk�c���s�\��}���k�d�<Z5�i��\@�Z��������'�O��F�fԣ�a�2	/8����p��?���+����|����p��^xJ�ѝ?%����<�o���Xq�rr�T�5��=�=�$n���W�i\�b�N_)f�V����?�l��qS�?���]��[��sU��`�Y�Ј���v3��F�V��FR` �$��jW���,���D<�8�X�Db4�|��U2Rh,�d
�l��b�GBc)h\��#D�����B��������2X��*Eb/!;o-���訉-7?f5EJ����g�`dd0[!¯#<�T�[�д�
��-x��0�Pdg��kE�&��QP��?�2
4F\�`���2��M;��W�%nT}����o�*�\k�%7�s��YՀ�����(`�t0t�H�>�Z�W�p�o��2���|e���]�#0���ys���
��_�����y'2�$J�D'OX��8��b{	<f7��zPl)�WkuQ�G"B���Bk�AJ����h5h?І��L�𨉒���,��LT����eCI����:^^���=����I֣}�]ո��O��e'�l	��I!��!���|
���n����MD}x���[r
|��U��W^�������G���FSC��qmG@O38t�v�Â��h-O�g�>��}���q�g��8��_��|�k�W�!�n��[V]�u�����x�/���o�Z|������Ѳu+���C�E���~�������p�Z�~����z�طc��rO?��,����%ܼ���8ٽm�\�	�+;�I� *�k�⦺�q��2:a#�#M0j	q
v��V��kW�zNl��,��z��!RY�!	2W�N`97E��@���ɱ�D9�.���(t m�cP�`����y(#䙦lA�L���ȹ+~?SU4�G<��`��7u��N�d|�O #�D`�ZQ��&<�f҉0���^\�%��C��_�"�c��N�	��y��R�Y�.������?��_��t2̻�X�p)���:���Ob���߻`�u�E��#m����`W#�?��S0���ᘄ������(�xO��F�����wކ49���z��(0p�NvӋ�N��+;�"��97#�I�[~�b�%��⥹1ӄN�ê1�K�|��ёQe~�df����r�1���^̪9�¨���?���A�~{���5<�"�/���m�%'�-�L��+�^��Q�*$�Q��(B�)K���<%��ڒq�\x��;j��ꕣW�:2��8���e��pt�\X��U=�`"_v
�)++c�+Ǿ��i��rqY5vnx��K��'�EQen��a��
�����8�M;�N��0��R�0qpL�d&�x2��-|?��>�f���?��HE"Mɦ5ay�B||��Q_Ҁ@(x�1��%�
���$��KDqȌ�D���T�0���,�'�E�q3:�iiLr�,
�%�g�y:�k�x�۹c<�]��_r%�o��)*�pL

!�QO))��W`V�\l�ڂ�x�m�tWca�B6&7�xr�)����J��Sd�K��Jv�>ɜ��N�Q&�j�)��h�VYb��
9 UmFr
�^)Kxr�v��(��QdG���u\��d���t:-���">�"�qp���"���a�6\;뺱��9"����o�\vJ�Ԩ�Y�%S[t��5��<�Y[۝����<:�d�N"ɼ71�7S�"T5�~#A�7���`�	�1����$����_P�m��kGٶ�ܴ�@��Ȇ4���a���ہT(ZN�������.�� 4䑙�ɝR���M�^<c�dۦ%%�i*��Y(3$q��d���#��>'�u,\�grj�?�"�P�yʻY��*�	Y��߫5��lE�W@����cg��"[��#d9C���|(�,P���nBxd[������	(�!!��2\
��O���PA�w=��1�Ru�$��Ɏ�4SfX�%k��MŜ�"����e
ScY�˵f�5hEu|����sB�ܲ�\̩;:��=���?��d�Fo8{%�̍��Ȝ��4�e[��+��j���L:�!j�N]6�$��J �J�~�Xȉ��+��T�r
O�d�C���hBc�L�Ɂ-��u���D�ɰVIM��l�9#>JZ��B��*��j�9�(��8EUA�Y�ISS;\N�_�
�+���UH�t���,�k`�q����
T�;�E��&‚s���u꽀���o�ғ�M��JT�k��
��]Mv9�����	S��l��		�;�p���K�K$��L�pUiSi�l�sNQ$U�eU���0EE%1j��dU uh�I�h�^ցE�dC�$Gc��)�:t���j������_"�`э����?|f3�k�{�����o,�͔�lX�
Ǵ�t�z0՘�T��9E'qe�q.�<"Y^L���X�-3O�x;�V�V�N�2�k
z��LFX�f��&�&�:�/%Mz,!�sS��/��ȐyJ�DNIB�F���8����{�
i�/�ί��J�M��&�<A��+<!�o>f�q�����t:�Jb��Z��(�jC��NY�d��%�S?C4�I�(�$sR�����Y��@ ̈���(iɂ:F(S�Yaߝ&Dg ��B/�g7¥���.��
|�+�add�?$�iLv��7�\�@|�ei�\KS*qp��V�%�f���* 䚫�@5���&�3j�-) 8�B(C0�P��2�,V.�t�J������X�Euz�d]@Y�!C=Q��]h،?�������%�s�{QVZ�P(�k�qpLc��Wt'
$���r�F��6��N����4L��7�:O��?�/��h��b5Qh�NOԚ���yQRs#Sd�:�f2��6�A,�B0D�b,-X��	�u�����?�ͣx���.Bow��
?PM�,''������Vw��E2�x���dR�������������1���rd5q�dD��+�?G^4��'?�~��-�<���?ٛ�ͼ��SLBZB>i��M��9����<Y0�;��j�T�+�:̡���)�Z�Da%в����S�b�$�u�����H?L�j5p�uh�{��x�G`u��DՆN�Y��̎k&���#�l"Nlٴ��;u!�$Lӄ�&��r��IH�!�����3�&q��d��7���	�sIB�Є���s�˄�D
2gח�k��ѹ&���D���N�ud�27��i<Eu�� gƤ�R��@�5��p7R�8�B2�Gy��%�YQ㳡��)F"2����XדF2-��Ψ�[`Tr�}�A?�1�
��j�I��	�R���NL���u�����`,늘G�'#���1�S��pn��Ȉ.�Z(�irė%x��e��U�T貢�"�9��i~K�!)��8��e�M&h�uFGg�c(�(X>LjYU�3�pH��p��]�C+>r�G�"D����*95��rl�P�ż�/+�@w�+����$M*}����ϼ<�����uuu��A�l6�>���"=ҋ�olǀ���YMx㥿�8�J\Y������^�;�w#4R���v�Ɗ�s�:���7��e�m��`:fP9��SMƇ"d��ҧ0�������q�N^z���<w��ov�s�7�u���J�t�m�4(�T*�A,�@�Z;��Ota�r￵s������< ����¥	���b˞v��d4�-�4���Ң~�����3�b��M��CV᝙�cǎa�֭��شiZZZغ�G�2B���Ď;�>[�l�Ν;K��?�o|�G�-.�\޽Ͻ��
%7ֿ���v��}�(L6+�Zмg��:��8���$ɠ'3s��ǔ� �e��7��O��&�-��(�s����_��f^̈́��JN{A�"Wv��+S��]�V��� q�Q�t��w~�A�E�VBL��O5a���߉���X�����><�n?ZwC��`gm=Q������0<�:I*�
��VEG��w~|�^o�=�3��qLD�:�N�� SnEEE�����g�s�T����q	
����}�����&�
�W\��>X��?½�p���m�,I0Z�pحD1�f���3c�h�.��?Uʰ��D��n�	'!��Mv����'=Y“��2k�T�_�YOL�r�fZ}<����t:���>��oO`���hh��t:Y�V3�\u5Dg��'�'�b��=�2Ar0��iA&9���s,��]�,/&s(�!�tb
������ �VԣDt&�v��w�̓���lN��,..fDG�Q5I�x=a֌Ftl]��g@���:���
~��c�u�G��
U%�(/�c��o��"��@���߼�72�w�M$)�N@xS�.�8�#�Tw���"��� /")爒%��1�ܔUu�+��qZ�d�7��w����X
������Ν��h?�Ǻ��J��t(�.���q��n��;Fs.�<֊����>	O�+�g�Hk�Af�tc
K
ͪ!���B^��.�v�-�9s&‘��Nꬻd�Fd��S9[���b��t��G�
)�Q�Fĉ���>���v���q��p}"MO�=���ʯ�Z�	����6��Ѓ��X!`1s��w.�)'Qw�@r����M�䞜���*�iMv]����;E�e%Ϭ5�
-��͘�)���׈����D<���j\��j<��j�x�Y���'㑗6�X['3���T�nu �N"��?8���⑟���X�b��H9��d�2�e�S��2_��W�<�JgfΌ��Z���Hm�>9P��0Y,l^V=ct�Ŏ��,��ٯ0�v��x���D���=�d�7���I�s�D7����d7Jt9�e���&�.A��;M�G#bʇ5iR����AQ�z���~hv���0�s�FH���L&SH�3�d<gI��f��f��v"�Kap���!R6���U�ؖ�'��ӽ��˰`�|D"�3Ft����pR9Q���/�域JL�0&,S;����;cvb��b�5O���^�B6�\�\N��j��+�&LN��\:�fdGU^�@
.���闘;w�?���7����,�`o��&��Lĉr�a����_~���{�G�w�������X�W�&��ƙ@���&6����88���;ѻ' �S!>Ǘ&|8=���Ɯ��rץɛOzJxP�G[�qwo�a��:�����"�W'-d��Y�1<<�T�׿�e�#����6c׶�Dm?)�f��T^�_{�h�Մ�����Aj=�lV�]�Q_�|�������dw2U7��+7
	�;�('Qr'3[���bg���E��d�G_v��XM@g�l��$�{���W���h4��ӳ<���KFH/T�D�ɲ���i�?�%���1���L�Q��N+��O�G��ؽ{�hi������j
jM�|?چ�J,$Ǥ�!Ӑ�&1e�Y��'��DOTD�����ݔdGM��T`J��R���O <a�"��D��f̷�Xt�z 
j��Z�|,L��k6�����{�{�ږ$�'��E�	v���Hks`)*.����4��e79�5��%߷�S�}�ͩ��%���O�B9ޭ��T�T
o�\�$�&ɝ/%w2�c���؛�%�|��IO̻���͘�	_��Q�Y�q�+s\�MQ���z�W̵�k�HƣiQG�t:���jtv�ᯏ�a�������TZ�Z0HM&K
���ի��3g��{�9kD72؇#����%%E�<|��{0w�B��s	�B�j4�%�(�z�ue��EG@ ����E�@o�����h<�d`���b��e0��X[w�De�h����NJ<.ș$�Q�����^����YI$C&�@,�ɀ�}�h�a���P2x}t=�ݎddIň��r��x����\�a�Y!�s5i�L�Лx�XNv��&�М*O�d�S!�7S�|��D"W&��Zbf4a���˥O��u�8���j��P��CNɉ���0�h�vE�J
�Q;*�ތ�k�ʺ��hSH���M0[M�ݼFWO/�㋟�e+.D�$Z�N�5�E
�ڎ�c�~�)6��bٚzg��nlڼ3"q��J��up�-���`@�ZL'@�F����a�G$TTV!:8@�*��މ������ކ��&,h�@��[@
�������H�@�\_(��r�� ���x�+Q=w>
����2�dS�E�����h?պ����
k����:ߥ�`/B�2ȃ�:,�6š֝p�lh��xiK$���h1t	{���t��NNx���t8	jʜ���S��/O8�?�,�f~ͷ͔u,��^�n�w�2
M�N��gp�f8)��'��+T>.�	+�J���H������ۯ'�����,ݷ�CKK3���"���(.)@2��D>+HjSe���wQI���/~�3j�z:DG���QX?/]���Y�ҁ
a�a0�X���6�є��!�p$�Q�%^'"���G���D)�ʊ
B����a�,�L���
�d�ݽ�	�PV聙����F&��d��ٍ���
AO-�&�g�á'�#�a�h��@R0{�l�)B�ABھRT��0@]��?oQ1��Z"J��W;l�tN�Ga�իWO�~�\�›X>�I�T�p

�(���>yfH!;N�?i��Z�=WڇF��ܲ�h4�t�ʕ�\0�ME����}ٳj�ˬV^ډKyu�H����P���a�vl�&�ʆ/�
�2S��zqj4"sly��'�ʫk��ن��6�鳢���
�p�͸���70���T������h��p�7��.oՄ�+��p8�+�������B�y'�1XmN���S,NP�ՠg�Zz>��!dc�A���מCw\�˖\�\�M/"�Q`1��X1��H��ɵE�!h��5��He-��4N�k�\O�'M��ɠ!��X�l�3��	Pc�ي8y�	r΢�B�6�R* ��]�pu&�֚����ٍ�pժ�����r F:����
g�t&A͹�ׯ��Ǡ����>?��i�y��q|��U2�Vf���S�ٝ($A�¬9�)ӈ�NŌ9��S�9Cd�0V��)�)=̈́F�qZ� �"���ol�⭢�U9uGOV��З��P۶�Ė-�K�@MM5�K�P\Z@�_FOO?���!#��Zb� �aάY�c�;�A�f�XF�thRg�)��8�9�L�OYx�ը
E	��}F����T��~��:f24cLU���9	)��0��V��M�А/(,T?i0����djq��8�De�|�q��0���NP
a�Tb'E8��0��Q��jV1����d�#1q3�de�8N��h=;r�3d�*9�
Ft�ug��(*,���y5X�A�=����=��` �!�=��T�$��*K�fN��Υ
#�M�0���G�FOѝIģa-���@i�^o��H��N;��]g�98ٝ.�a
u��(<���&�쉶M;�C^�E���9B�\�VNvg�����
���j}TIK����V�I�}�]���U�Z@k�$)5!:(�Y�%S�2S����Z��ݹ���)���4�5�̔)�Lp�-H�%�6{z��Q�-��bbf81�'*6O`xd2�sEԋ��k�{`1�����U��H�M�����bE:�@80����������\�"����I����ek0�4l$c��Гeꉩ#�/�sk^�̋�D���<:_\�,Ҧ\s�<h�"��#
�����*M��e��F>f���ީ�ɲ���������]V�MFvN+�3Y�w�7�P�P(�0��~�ƪ�+l}�D���t,D&/��.��B��CK���*)�j`��V<�cRj)-L�L����u=��í��d�,:�b�[!�K�$��EDڿ&�\�D�lC��%h�9�V#c���i.J<F��gQ;�}ǎAcuc$��Q{&�D2
o�sj+�/A$������
l�5����]��
Uذ�+�/A���薝(py���j��U���1B�A�5V �hѱ�
l%���ދd<�@0�5��)��0�B�c�2�Fg�Xq�2B�:��9ٝ}��-��{�8�"t��ѝ������U�";�0�	�5��S5&�R{���Pc�F��1�d
E��er4"+�#(�%�GݐFv�'�
KEF?OU˹ ;����	mZ��"�[ZYgF�p��� B�]X�+�߃�?�{�u{!�Y9uW�����<L�74���C���55�KbWG7��bp���!����SY�ٌL"��UW!��M_>�C�!L��EГ�X�&��KԢ� @�$dz�Q�aA
1I��3��p�Q����`WϜo�	݇Z`�2UNe�_98�MS⛊���$�S�;/��,�N�[!=��i���ToK%{C�dV��Tb�<��2OLJkԋ�b��ed	e�QЧL�E�c�?s!�sJ�\�����lY�	���ҹ��nt�
J�~�*,׷p�u7����>I��DQyk�h破�([}용)r��Ul\�V����9K�#c΂1���zLĜ�1����f�"2Mx9�}fTTd�1����F��n�_>N�O��Λ3k�gל`�<ј'�3HvL�)9��\xA6]����e�)@1#!�}�
���Sx�Ԑ�Ob�F�%g��YS�ޝ4�������W*GtA�n�B��Ĩ�\�!��C>I	�eq�p��|s�-����':NvoK�
�@�'R��K\+B#)4#?Mք)
y5��:�JR�vV$���X�h����)�7��i.�\P�	SR��ɠ��T)�������2�h���f��F����(*�����i�O8��dw���|�:2L�,�3<q�IВ>ZV�G`
�yK�x:�²j�1�(0�eN������"��TQN���ɪPF.�\��ۅs�B�$��7���B2@IE9Z�l�dp��v��D�\��S$�D2CUi9�.�C}�d��
2���F"A?
|�8|�&����C�|N�%"9܉m�P\7���\f�mN�bqD�0��m�Q��֠������C-N
�?��|��P$�`(_I��6�i�Fo��l�k58ܲ:��%>$�4�;MTĬ�Z޸9�qpp��@֡�-��A��KQ��0B�fJE�/ݣ0ӎ�@�J��GTS)sPQM�r֜)����PO'����0�M��0��]_���4�[��?GUA��5�y�V
�0�Ȇ}#X�h6^��c��BO�Z��0!53����q�%!l]�"����\v�*W�Dj�6t��Ę��׷�j��#
\<��|>�˃�@+��� �bX��h7�o�W�Ů�!��44��x)�;�?�&�ӎC{v�eVPT�H,wzk_߆���,޴9�qpp���4�����	9FBr����2���0�0Z
-���QO��Ɋ�4���2����ȣ
�\�����2��QU�F���gfFA�B&D��9�:�8�1���
����d���9�va���,v���X���6�!���z���.C8Bw/��u��mD A1�nIg�UJ@��-�P�a�D�jg�$�q����y���X�t�h�#ʳ������VҸ�� �3�sfcv}d�Z���c2{�R�k䪎���l�]`买E5��y���8g��9K��-�C)�yu��Ջ��c�V�Z�ղؘ`��>7�z��L�]MȎ^_]���&{�>z,��ndRih��3ˢK�`凌Rfo9j�|,�0?�K���8G���K�o$��p@�j@��zfxK1_����&)��t�sp\W���}�t��j����}�4ɏ�Ɏ�c���S��1���:��T�˚8�s�R��PB5��XƔ�	S#��{7+Ȧ�dcwR������|�1RВk��m�[?�k�d2a��E�O�t<��Ư�c�cS�L�D�NA3�YN<�$[h-¼��xg�?Y��&:5ΎSe�Q��'��$Z��n�eV�����sY#<�`4ݖ,�	�I,�fN�Hy��\�0TF���dVU`\��i��C#�nK'b'2�n��"��I����?4n]8=F(�䍓�+;�35���R~1��["�L
k���D&��\�E�CLVU��(���%�%1�L��4S���-���Q��q:z�$���sU�+�b�?�J��qF��r,��`:��U\���(�Л�u���r4U�a�x���ɋ&�p(���j���}Р��O�]:��	�e������@4���C�Yرc�D�2�6����g�j�!6؏�h@ii��}�D=�:#	%�p�"��1�mV$h|#����^mN���q:Nv��DY�j�1�(���a�5�2T�I��S���H�-�*�8v�(�ti�Z#ҩ8����.<63�p4DA+h��j�0��I�x9
J?�ю����E���o_֮[��s1�@��9ڋ]P=o1<�4��X~�2̪-������1`f]
v5����j�d�Ʈ���A��H/2��]�-���f���}Ā��C�Cc֢nF#\�-Gx��_؎�E@�����I�`X�1ttw��a�.�Y�,��>Z=���r��X�uϮF�R]4�4!�XF
�/sXQPX97t�Ɏ���S-�J	��%'�(����f�C^]��H�l��2Z�,l����`����[�w��"�H(���-��Ӣ��#ڎ��,��Xf�AS�,��Bx.X�vu�YF݌*ڵI����DZ��ʼ(��aq���ԏtp�U���QSYBm� !k}
G�G0�QD��s����1�AT���c��k�$�36���a,\����������G��2(��	����Y������.H�f_��6�	�}0�
X��
�b	4o��]�ōu����#mX8w6��8�qp�S�2���,��(�Qs�ޤ�$�̑!��ّW$47�F'Z�gƌ��w��?<��I���^BA��Ajhz���
��_ॽ�O�vlێ�`$`��l׳��
p�-���suMd:~���B6��
�qۮ�Ƈpphn�̙�4��q���-�ʫ��ߵ3�6�T2��b�\�t�s�VL��������:(�2��JQW�h��|���ಎ��;
6�
���Ñ#GPRR²Ӱ<���p�,�#��c������]t�E�Blj��dGs[���_��~\�j��hm;�Î����u���}	Ά�^}ra�����z���me疣���D��\�۷1�C�����R,"�I��csxq�����3a�F4\�`���';�w�����*����#3���]ȼ�$��w�{��0�
�
��Ң��!�~����*Pҫ��c�D4�(�A�[�[?�^`���a��:�A�ÅaBv�ɃJ^��\�n�&YNM�=>�Jc���?���Ĝ����z�VO���dGc]�i��C�� �q�������;��hqԜ)�7�ٳQeŌ[z�o��˯`*��:s���%Gtt=UV�h�Q5)2�@��;���.�h
g-F��qd�F\����gJ�f �ׁ�}�
������qq����Z#`�W$*�j�"���{�{�f��t���`"��I�[P��F��IKBrď�ލE��`^��׮�����o®�{��u���QA�Y
3�pd�N�<eD���?i�ٶ&�_$8�F�H<�ׇ�\r�%0d�nC��
��.�Mfh	=~̝7=��YᴙP]]�h7���������b >��a(��=؆�/Y���#�X\�`��p���X�F���d��C>q1H�)��*/2����c�ƬkߗW�f�s���H$����Ϡ����lF,sf��!B
�vb�P3�7n&/|�7mF�?�ޞ^���%T1�RLɖ�d��q�d���.��Ƽ�ͽҊ�<�!s��4�(f�cx���B*Ӌ���+�b���0��"d���f�ͥ��B�҅H�x�g�P[��n�jf ı�8�bE�(B�8�D�>�ܳ(��᪬A�YD*"c��c����(-����YT�=�7�e0!1x�I-��^�!���Ԓ��y���Kj`�h�¾6|�֕�����]2F�́�^x�t
�n�b
��:��ꄬ5c^S��p���x�!��:3�-x�Ս�0��ː�	��C�޲^��8��cv�����g�m�믿�+o�7�r3
��4j"��cמhIb����ѳ}+Jk��h�L���)��d����^P3�P�ޘz����
�:-©�o����\�7��DQa,7#�(Q�vBֱ�.��n�]�ص4>P��������ϒe�"M`���E�LH��0l���9HIi\(�a1i�chdnw��.X
�b��d���@�B�*��cl*몠�X0oյ,�\T����a�le��i%x�t�{n��b%琀���N21�-�C$��LM:�D-��4Zi�����*��y���;��o�����=���T��n���ttt�?5]���O��1�&�<�2�+�P��v37v���s��0ް���b���
�#~�<҃���d�>z�'3��b�G�SM�-��ֵ�m�P�&&
ɔ�V��l���%W�P^0�!�;�>�$��;�N�˸c�e(�D�HΊ�q����Ϋ�b����d�x��9ݣ�P_��u�auL�)9��TVd�?Nvo���rz��>�Ow�X� �#i�u{�׾�H�:�L��+(($�AQq�s˭hn��O8��	�ݎ�h��,����u���?��;QA1����&/�k4"#���(0��6Kb�T�e�˔��]�7|�o�j���q��P^Z������]�ҸȂ�>��\
��r
�hllB4�R9Qg���
hD
:�ۉ��*\��,��" )�.+���\�!�Fdu�[o����n_�RqQ�KJzԜI���l���h�n��i��@O/���̤z�0<<��@�D�m���{Z���l䐖'Ik&g��0"�S!t�yIf�M9>���I�Fϕǻ��r�H,�pFBUQL�d��'Poǩ@	�euu{��X<�G�Q'֓՟��`d�HE�JN�͊"S���z��af�y��5"��@���
Q{=���I+#Ъ舧��ŗ��{>�b�Y>k����z�arX��ݏ+.Z�Ɩ-;!iM`�k�-���ߏpw7ʚ汐���70���_Y��.t�D�P��={��b�e��~x�;��Y]��#�L$a��u�p��jj��5����FM���þ�H�l=B��TE.'"�z)����"�a���cN}
o���88�=`%vh�4�y�whT��䶛1�_�5�\����g'4�<��4#���v,Ɛ�0B�����ժ�l���2�^�J�*�Z�5�ԝB��\蘝��;��'L!;�z|3����a$0��Μb���Z�:`��Ph7���(�w�N.҃����	�۷��\v8�N�"A�w/[�����ۆR���8�.X5:4�o����"���`O!��i�(6�'d�;A�/���!{�Qb��v#���W6�TP���.t2�����G�娄�-�[p��W�/�)&�?2��;�p���x�#���l6��W����z�����F��Ek+���7	:0B^�t�\�A.� _���r������T紖-�O&X�怢3Bd)ʴD	�Y�z>Z�SS�T���� *,<�zU�wn�������#X�p�Y�g5����H��"�&���W�Av?3���lA��`�ͤA$E��Kf�bo��]y	*F� �<��Ѡ���Cq#!�/|���E:�l��f&nY�:�:Aœ�Qh�*�U������uYa7��_?QE���F}4!A���ϼ�⋯�G���(i	d�c	zw�����;T�Q�c+!4:&�!�,)G�
�uы�K|��bx���P]S���8���yaRb��0��=z=�ذ���$�:�V͸O�Y����"�R��(t�*-�79�D<�x&#!?��� ��>)�vh� -5�f����s�==~lY���lE�DoG���22X,�V���vx�%l�����Y�h��r��}���b6��J�JHn�)d�v;V�\����2x��d��n�oIS{���U�~z�{�����F<g�Q���4&/�sRR �MD1~��b��M��9PZR�ԡH(JCK"�(¥�4:
��c���q����t<�zib�ħ%�����ؠ^����P��N��x���ݟ�4�%��A���Ҩ�9~�L�e��jXF�M�u���c	e��Ht��\�iNvo[�̌4��&��S�!e�j�Zٔˉ��l��8�A�ook�={����	1b�i�����vU	Fe�R�{�m��׿Eg ¼0�ll-D�3��M���GgK�>�P�U�o��L�X�ȡ�0��2�5�
��@��`"),�`.t�hG��2Wթ�W�>W}�94���N�A*!
��:%��i����I��4����"
=��Hgņd`]�0|3��=�+.>�<�bi��rp�������2;[����Y�<D�%5���%��Ĩ�yS*�r�(�ښja�
�d��V�U��?��TrDKHF�y=�gm.KSF�J���e�����>�4�筀�ҎC�̉&%�Md��`֤��ߧV���p�E��Ձޡ$�0b����7)�ev`׾v�m*G"���j�Z���b�:�X������V����$6��:b�������.j}�bQl��5�/C_o/�zP�c�n�ꚰr�
��������[[��Ճ�
79�
#=�P�yڋ*q�X'��|�$��Ɏ��m�Z�vI�Ӊ��^rZ�]r���򾵶�Y ���A��4RF'�h{��%�/�?؇#�Ga�h�^f黴����ɬEE}5��$
�(/���fV�c߁�*/�HwXg�!%#���	�#!�@��Ka1�b0��%�Є�q8�D�g$��ӣoЏ�H)�::9����Vh�!iZ+���WFoEqx;��j�E3��r����r;��a�񇳉իW�;�&�N�s]m1k��˹I3a�N2鲓>;�I�W��+W:�#�逺����ފ*��E���ƾ8�##p8]��	�2���dfZ��D�FϞ_,���Vk�h���J
����8#Q��p.��f��"��H�\V�S�K�
ZDcq27 �L ���q���4Q��y�
�RD幝6V9�b�C�G�H�c���2�8$�V����$����9N�t�I!	B��s�!I΁&m��-���������~����>9��tv�[�Sf�I�0�yS.3����*qe��qB8����	��u,��81�����%dh���l�iώ�ҎO�~�S�2Z�|lJtl��[�#/g.��fͫ�N���3���;Ȳ�oǩ@I��ꈞ�g����2-�N$�ƧT�x�x��tNv����݃�cGqh�nVǏ"
���$��WA� �s69z� 	�*p`����#��c͆�h9t�Fϳu���7���C����ޖVF|R:�p`o܌��qB�D�[w4�w��m\W���¾ 	�)�Z,K�lɖ,Y�)q�Ȏ����Iog�L���'��=�L����?��q��Τ���3q��8q�$^��Vl˶�}�(�")� A;PU��#K�`l\E
�Ӂ��LJ��w�rW,m��W_�øe�-�þ����Q�r�,Y8�b�V��-x��c�@�ۊ��X�j9��Q�Ј��C�gO���D��8Z�6�B�y�Y�
�u�8�_ᕞ�N�ᵥ�|�J\۱��;;�5W�E.JK
�'���h�xɔ=����
V�����
3�oh�•���*b�Dt�kB"E�`�*?<�tcCA8�n�u��!�h��B�:�Ն���0�/��Ύ�b;L���p��M��)9��[�C(’�:tZDb)Xť�ɲ���V����{p�ͱ�oK�$��.��UԮ�!�N�:��W��qat<�����C��<�\�R� 3Lf��Î�b;:V������Gb�lY�V2���.�m��HG��H��"�++��,3GvN��_k�0&��*�H�Z�,���b�X;��b�v,��b1�X,�Ś�x4&��*(Z�[�L74]郌KZ<��{���T�,뚛��T��s	�;�U"H�g;�,-�EY-(�z��^��`wۡ�V3E�o
��>���'Î�b������`gl/�.�ޓ=����Q�Y1_z�*\�&�C�I�2+��i��V���*��lP�*�XR�QV�U\���8��
tMG:��F��=��{eı��(_=��<���+�#��;*�0i��3�X,�>��P'�Ju�}�`�	QU��"��رܷ��R�ǎ��Q��\�$�F��P�Q�n��J#I 1C�%���4���Z
w��Gz`sфv:�	��
�T鸶
���Uw�g��2�{���1Î�b��(I}y�����Gkk+��i�����X��6T���o���_�Q�᣽�\� ����GcX�Ga�91��Y��}�
��jE=�}�M��wj�oE�X/.����oEr4�3/Ī�nBl8,�av�S~��K�삸ɬY�#��b�����Ց��J+f�h����
6�6��������U�<z��1�}jN�vC��K�Q��Z�=��5�.�C|���
b�	����_R-\b�h8�u��p��<�/ZAN�j/�Vˌ�%Y;�u�Žg�Z'��a��X�(��}"�#��nh�軮4a��i�J�i��{p<����p����!��}m����w`��7����H����&U�*\�pT9at
YW�8��b��%�-�iҨM�6�P��ҍ�����K*��п�K͋�#=:v��9R��@7jV6``��[�1���[׊�O�]�ʼn_��h���mδ	��Z��u�HB�E�G�{�/�	�Î�b�r8;�koo����b�vv6�
��:�E��WB]Cr;�ã��рp|�U>W�
�\�M�
~���)v�.�i�Һ�8
���1�2p�^�8,�S����ˣ}r�Î�b�1�(\�d��#��,M��+���\�#��
G>|5�D���A0�=&t��D�͐��&�w�kS1�Ohh�/��>F��U
&�Î�b����q4!|6o��Tc��6ǖ�S��c1T.�����#Î�b���ONU�/F�z�>hD�/�ɕ�bرX����hMKk1���X,�a�b�X,�b�&X,VA�ID"���2�r{'�'�X;�5+���H�G����f���A(3Y<Y��D}�f(��N�r�SSU8���a�b�fO���eb4��OZ@��&-�@,��I#�j�y�i�tZ��<�J
'惍���(b)U.��p8a���؏i2Տ�NC��`�J$�����X,��Ś9�,68�8���?F]�2��
.�t�*�joBt|�F��x��cpy�8u�}���Eu}Vw�����ph#C}Oꨮ���8�Ս�GO�m�M�m�*^�5�7a1�X,ּH �jq��!�{�_~�a���^�f'���!R„U����ɎS�6ܲ�V������٣�q����FϞ��׈;[��ģ!DcN�ۃH�^x��ņk�#���󩲦}��U�b�J����
'��};0ڵ�@<f+v��~��p�6����~�}q��
�M�bu"P��[��{v�]����Ep$��F|,�_�܉��.�FB�AM�q��^;rX8E�.Y��X,�|Ʉ��(�.�'�mG��^�m*:o��V�%MhY���D����B:���������O|��ؾ��h�@��c8�Շq��|���{=P�|��5Mh\Q��
�t�]�a�b����i)��V���xh�s�N��2>:
��;>�B���HΑ�V�ۈ����'`f�YQ�E82��ͷa�$���-nD\�?)��QѠ��i�/OOƸώŰc�Xs7�O�!5]��	��j��!������
�XL����K�v+�("Qʢ���06>�D�):"	U�W1i�,�)�I�S�K�1�pJ�Űc�X�&�1GShj@�̶�~4���4E1/^6(@ʜ���)�ģl�^��1���aQ,2O�Űc�X�&�z`���̈́L��b1�X,֬k���dα�)�z�b�X,���b�X;��b�v,k����8~���??r���d]1��UP��ݽ�X�Y�gNc����
WEQU��G0��W]�)�h(��p
6�>�W,�E�Η~����ho�D$i�߭���a��X�I�� ����V�sųv,k���~:Z��_�F�}��v�*k��u#�T@?~�H?�Z�`�f�z�\��F�
J"<���1�+
v���HK�`����7?@�׃�Ӆ@���{`��������ӱv,ktӭ�q��Yt������Un+>���$^���P[Z�Dh,�ۋ�j76�t�pv��I��V7��P`3)jP�4�~O5�k}�8G��'��04C"�2�X;�5?rx��씏�.i�����S��];�k���D��k��^j��U�瞖�>w��YGh�xO`�
5�\�,���Z(R�X��#���XI<��b�X;��b�v,��b-pq���*�P(�T*�Db"����BEE�L�z��E�����h^��������H��t��3r������X,�`0x��ӕ���5�a�b��T�><���V8�N9r����$�^y�	A=�X,���;q��1�ڵMMM�~<��#x;w���8�n7FGG�i�&�_�]]]8t�������!_c�v,kn
0rt�7o���_�.LUUTUUaݺu2�*��^��ɝ������I��C3T[[��K�������6�Mn'׷a���O��r��q��������ώ�b���Gp#p�(I��0&�kɒ%��s�$	\��(I�Mz<���Ia	�MڧU���j.d�=Y,vv,k�E@"@�Μ9#Ë:� �ͽ��[x/��gf��ɓ�_�x�䶡�!	Lz/�G[Z&��S��2%����c�v,kNE�I�W#�F��{�G�5�������$��577��x<�K�ɹ�q������_/������FؒB�S���4@�b1�X,֜j�ڵ�K[�n͹�f@,[�\"��ر�+�5��>;��b1�X,��bر�t���mτ�Ϯ<O:!�UDG���+؅x:�jOk֢�U��H����>+C�TO��4~�:Ҫ
U�D,&͞Z<��~<���v,¶�aw���z��r]:���u��ˆ2�c�mќ2�7f�������*�\4́&���.�QNڞ��x�d2C7+0ic�6q<q�v��?ҋ���u��wk���j�\�Ʉ�cx|�'���)�E/Ю,X2���$,���E�$-LL�h�
��WEf����7���|l��gZS2W�M�i�v�re��c�z��2R�>2�	f3)W)u���!TZ}Q���8�.�qU�����qq8�t-���E08����Wq8t�VKW�Y��.�m�S��K��b��O����I�ðc=�L3813�����	��@f��Q�"'��ʼn��l����[�\��,����a��ľLӪ�٨�|N+f�.*J�/�Lt�w��(nN���0F�,��A(
��^D��pYl���_��ht����g"C�*T9�������9ܲ�V�k��?zV2��g����qU^qe-�D-�0f�F�XCI�4Z��@�g��>}Z>�%��Fꚙ*��ˤ�Q-@�s�4�� ��e�L�3��,Kv���2\ 9hZ�^7�ȌD"��F�f#����v+|N�pl6�lVxl�<nx��r���1���k|��_��$P(���w<M��1�V�b$<�ã��b���
GĬ����q~���R�$=OS�Mbgǚ���T`� N�T&T��2�Ba4Z�g������[��|<88(Cj���R�T˙�9��G�$�����'�gp�}��~��~;�_� �b	�Su��ʒ����TW�>�@�{y�5��z�0�ٳg�2`��3�&i1Z���R�Y�06���vzp��~?{E1�І�����ž�0���k��y
�U[�5օ*���_�O�yno�0�P��au�i�-Mj��H�/�{��֕k{��R[İc<YL��
�����w�ՀRCI���7���}�k�5jПx�	�Z{�1��#��O�L���H:�<6�EG��{�'��{~.��Q��?ǿ��Y�^����rtf
�|�"�FA_��{�QG��(w�.l��h-L�#zN���ꓛ�����$�~�q�FQ_��p��
��Z-���Rط�N8>��e(��?���D�}v��AS�&��p-Z����]X��~x�~��E��u�����mL�v銁�aw���B�P�>���@�j�3�9����_9%������|E.�L
65�#�.��#���H������5k�s{���a<�w�o>���ғ��	4�\�e��+���%�8�R@6�qV�\)]]�6zL���G��sF��D���p�pi�?]^	:-fح�%��P�q���^�g|��%p9�pD"�C
TU���Ecw��Ί��F��{�W8D?|����
u�c��Y\����w*�ɰ��^!�e��M��JFß�aτ��>{Y(�<��P($�
����Ơ�����wf�0_���)��ҋ/�G���t
����S��r�Sbpx�x�C���G�2���
�/T.�?.󽴝�En�`F��m�J�J�B�=¤�z����F�ʍ�e�W��ߘkz���"��
ŪW�B�i�`�b�S4�bI����S<����8�[����W�Y�p��H�ơ������g��*��nE��t��B�B;�`B�<@��;�\��2(tG��2�hS�M�7�#�g�.�{��ٷb�+�}$�M�p��U(,�1�����m�EÜBD@�=�r�얋�S%A�2P?�ǑS��Q��#G�H�G��SY�)c9}��C���<�t���f^�Q-��
�Ĺt����'�ՁJQր�/.��U�lf��k�%�G�]	�poM�F,qV���A��M�<�#�d��Uw���݆,�6�awu�.K��r<.K�e:�l�kٸq#n��v�9j��!'�Q�zN"7g��-.W�M��/�?�x*��� FB��hoCSKF�����\二L�TG,:�]��s�N��h�]���F��1��B�T�Ӂ[��p�~EC�ÊX{t�]�0p�.=%CCu~��E�֊?�_o�"PI༼L���{Ã�qV��͏�c���iCJ鿻�@dؕ���s�$Xy�XWW'�
WG��݆S��1�q6Gd�Ú��m�7ceS�t�C$�ā}=����3�5���d�F�Ο?/].e�ī�z)�k4�-��*Ù������(�I�#8S	]f;���<��6��pd.O\n�{����s‰h��ݽKԗ�Æ�EC��{���\�c$1��TD܏�h�,΄���[��oM��1Z�-X��}vW�;
�8yY"�B��F�D�Ř�@���n��Ĥ��d@e6�k�M�8�
����}򯾄����pMG:��Sj���_�z0��r�Grh9��e˖a͚5r��S�{	��x�?ុw`h8(���&9:�K$Q�Q�6�R�nu2ԫX�@���?��7H
���;ŅK=>8t��nF|,�����ᅪe�7�^��}�M�S#�5���|.�@�8����ո��NlY��l%B.ߨ�+
>���<S�PAv�A˺�25��:�~�m|�;��ݻeC�aÆKN��^CMM
~�a�ge�4��K�9c^�ں�F���>�K�������A_���*�:��k�.d�ܝ10�n��%K��i����
7� �I����5��$^�uHo߾]�`LУ��ꔍ|s$M2\%�(�S�p����c�j��)|�����P�Ҋ�w<��}�^�9}fU�U7���}�G�<l�����d�U���)�l2#����Y��Ӳܝ6�p�uxƼ��W�-�X�"�A���׿�[n���dȍ�ѽ1����?��Sx��G���+�)��>#ȈcS�с߿��~�st�?�8T4<*^��Z�q���a�����G�\��� �����G��G��ꎀ��҂��w�[ۉիW�:#�KN�B�F_"�Frҍ�M�ȏ���w��{L���c��[Q]��/���o���7n��Hg�NCuڹ~3��5�)�;��:7���Ńjg�V‰0ƒ��.s��[p��v�@����0�|�Q����&Ea�W_}��7��� �r��Hh�!�=ZB����% Ε�$C�� P� �R��Hڅ`ҎS�q�S\����?��B8�U\��'�K�9
C677c��Ͳ^~��_��sX�|9�{�9醷mۆ�n�I��S�d�袁�C����t�|3��Ϧ�������/=���g|[?������*�����_�/>�`�Xa�\�lMg����c�F9�h���r�i�%�N�jJi�Ji�v���:�y���+�c���ܨ!'�a�[.n�;�i�&�@S�L΄�>|��w�vT�Ѿ~���h���ж����a�m�QY[)L�	�D��j�/�쉓��l���X�����#����;�>]P�S��	_�[G��lݺU^DP�R?�<�So��(��KƢH�è�U�m�"C��
۶
6Q��nƒ�f�E]��.��8�&��uV6��|�ӗ�m>-bg���Px��gr����)�������>�����1�����'OJ�Qh��6�:::�hBj���XԘ>C�,���'�)�X.k`�T�Ј���jAJ���>T�h��vGB
��n)�D�~���ư 6:�h"!Í��o�=�ΘcG��w�w�Yw*O��p(���/��u�Ds�"K�ε:'����`��gO|Q·�������O>�ʚ�:����ڍ[`ЍFǡ
7��= �t3�9�9�
MC���cر��|����㦖#�r�# Pȍ��o�Bn�\h@
=_�b��A� ����S�3��A�ݦS.Z�8�H	��#9���>��n܄��O�j]'Ң�V`�J/��C_p׶u��	:	�\j���̇G�]ꫣ:1r�aI�~�px�^�d^lٶBk�f�_�>hb��bi�zp��Pš��o
�x�W�ۋ�3�(Ң���8.ᆭ��o�~�R��\_�1�<m�����ÎU��3NS��d���L��B�+����QcL�6#G#ɵ�6�B
4�7QRS
mR�N�8jȩ�̞�kőb&�,�=�H�2i)C�Ph��Ӎ5+�⁻��A�xM3V�422�sȕ�*���!�LA�#�[	��re�Wf�����To�O��'Wl��R����E3�JRM��_��>��ąJR���2 �X�$�k��Cc��?�#�[���\O%Y�mO1�iy\^��q�kʡ�b��� ,[g�-åP]xr�-�W"��򗿔ΎBq���Q�n`!`N{�<�(��(7�ݘ(��a���	�z��c���O�o�A�zN'�6;�bQ�L��9�/A��n�NreHȄ���}�F�f�,�_�5Ѹi��N�Ȋ������`T|W����l�ڌ(OGC�����0��;;5���Kl��hH�����\�5�^-%ߍ5)Z��–ԧD!L�_�ͻ�0����D�.��'8��`�UAtl����*�O�Ǎ%T�t3>�m�iiC0ۢ�]�	&��#�H($���"�f�2���������+��IWe��,�	$��2۬r�l��	�l��l�"�@�3�ͅ�h����d���̼b�cgw��6��3�\�c5��RNW��R�;vL6�.rsFh��iL�6Yz��\�;�=�M䚿�7!!`��R[Ccr���?�����Wv $^�F�����^�b9��e$�Z�^�&�����Ƥs#y�^�ܺLW<W�'���6�B�d�V�re��xRSH�eIj���������~-Y�NE�*(pϰc����H��wg�n�:����}*S��&wc��8�Tj2��l6����%���P�M��Q�B��4oé�4;�ucp�^#�Q8���vY�g�F������#u�"�
�d�",�_��v"�!�R	e�n���W��Ј�m��M�cҪF8q��e���f9^�"q��Хq~.�p�9�e%�+��SG�?�n��.�\<o����If����(��;���Jn��&��d�\q:���\Jn./g�4������Ɯ�z��\�9$�?�<�i�'�)N��������J�s%�&�������x\��C���b����p��S;1"8�cq��oY�.|*>�mR(��%Ҥ��+�	�k=�\�ȍ��pv�I��?w?Ά`�}�[>ؚ��X�aX�yn��@��q3���Z:Ƕ\ή���U�y���;�M(<���3�gθ�J]�s��Ś��\�l���[z��ꊅ/�4��a�HD6?#�Y(<�eA*_�B9R2a�p�`gbرXv����vZ�ZQEC	}w�.&î<N�B���P�^.�����찥�ȲX���s=֋�<����y\�aF��}��
8<�/�o�zGW��rv9k~�7��ͥ�6���R츹�ǰcM�$7�xŗx�NP
��]2�X�+�)�R]���FZsu<ώ5+�+t"��<=�53r��4�Kut;k���x�W(����0�.�e��Rx�0�s�T��su;���Tw7U�Whtg�ј�ώU�
��4Mx���̥��Y���dž��5�G��c��r�:< w��RFV���.6_#1vW�IoB��f>���TB����_2�X���\��CHi%��R@��Fd2���^���^�s#��=�D/�䊅-M;k�a�y�qz�@�_�X��+>ɜa�Ȕ#�9U�e,��Ȁ�TF[
[2�X���TÚ���0EW2��3�ɰ+Ǘ��e��e��iB����8�^)���ܴ���İ���k�f��xZ����B��),��^|��(<���)Î55�0*(��.�tL�%Î�Z�+��Jb>��j0�!L���<py��Xr����B0cбXWx(�iZ�k&p[�c�]���,�<��t�����W*�0����c�]����B�*���K���c���+��T���J��aW�CwW�_!�����
��h�W�+ӧ�:��U<���b'�i�?�\�c��X�z�\����9�]�B���4��0Y���R?W��ve��W��6��G��c��f�8�]�/Sӄ�|��X,�"iO�v|Җ���b�^R&]�o��b1�X,��bرX,������OE�͞�IEND�B`�assets/image/09-bg.png000064400000021011151327614500010453 0ustar00�PNG


IHDR����Z=tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:AC51E659BBC0E411AC0ADDF352E54947" xmpMM:DocumentID="xmp.did:92555F207CC511E5935F8D1C178EACD2" xmpMM:InstanceID="xmp.iid:92555F1F7CC511E5935F8D1C178EACD2" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:330A001ACC8611E49D4AB4761D866044" stRef:documentID="xmp.did:330A001BCC8611E49D4AB4761D866044"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>7�O�9IDATx��]
v�8�l�H��������fb���e=�R"�Di������4��ՍF���Axm��A�A�A�A�A�A�A�A�ADADADADADADADAD]]]]]]]]DtADtADtADtADtADtADtADtADtA�A�A�A�A�A�A�A�AD�5Q�������7��S������O��s����~��х�@(������i��cDta���jÚo�O�}Id���oz�~�eх������gG��
�y�������.�+��UO�]Ot�˧>c��d?�ktO…��� ���ؽ�Hu�?Vl��=��e|�R�פT@�>"���(zR����	Z۲��
=�z�7+yW��Z�
��A�D���^��$ߌ��s,�[O�C��{�+�=@��6a���JD�-��y�@v<�xы�ro�-a��9���a�х�K�*��u��Q��,3I�ޏ	�݆��Dp�eH^���r%�����v?�ؐ�q6�D�'|�w�p)-XX�.�b�q�]�T���M�}�9��"����'�[bk�~o������.�>v>�=��W]DZp�=�x�	����.�s�ۚ��D���zeb����I�9��8�Ys�%�#��M�C�i����A.����d�E�W@g��a�?�[�D/�z�$/I.k.���5Oe�q�e��;��� �Ʊݍ�>}�����`i�|��*�v7���>��qZ��
��~J�@q!OW�d�AC]x$�ꉳuz�&>)H�h{��OΦl8��,��.i�K��’?���)܍*�{�D�E�_J�ٹ\q�bf�\��<Z�4�2�E?��"�+$ٿ������8E�D$?ҟSIߔD�UW����rd������]eק�8��D0�%�tO!�%�E�FCD���ʆ���\o�9X�]W�Iaѕ�.����~�?iB_�
�n���4x8wȑ1(����>�aѽ�ή�H1��b1*b��"��B`�t�ga�Aх̭ʙ�H��lхYt�=t��'S�v]Xͼ*�?�~&�ˢ���
�Ua�A8��h���^�:�9W���C7u�{�݃�l}�"I�L>z�ya+��	C[,�B�b���
�e|�6v�W�7Մ�}��l�"�5��L�Ȃ�>��i��=����#��gSu�gs���.��F�3Y�3��T��2L#�"�*��.����1�(,�m��,z��Q|�De����(���$z���%ya<�-��d�{��͜����;֤�?����H���Rwkץ��,n,���S�(�0�� 3Tv����0Ft�#��}Ʊ_�EG��!2#����G{��Da�z`0�	���呸BK��軾��41���:��o}ф]ڟ�`��l8��3؋�s1�_� iQ�a����`��E9"�[~���3���&½���;�]�q%�Z�-+NX��u��T+;~7���&�Æ���{)!T�Ͼo�`e1`���^OP$L��1�$7�z�����y�c^�ܾ:��w�ƛ������|/old�w��$�F�;v!1ϑMx��v�pE"}Ni*����B���W�-h��3�,ѫ��,Y�Q�����1��Y��CV�Hn�g�w�qW���Rǽ�Xl6�T	�nS���h�����ra{�*?�+�B ��E� ������w�A�W��W��`���,���vx��"����6���Di���k�?��8_� �ڌ��D�Q�m�e1Ȏr�1Dߐߵ�<�n���㏄}�NTN��)"�H�E�x���}<%���q>��ӑ�� #:W��?�/�=.$9����������vB��'#:�{:�����D	��+�-���"���n���̒[[��)�&nk=qQ�-3�s�	J�AH��u��ى��S�b�IC���� ��-N�p���$&TL�YHZZΪ+�:��r�K[{���
[���L4���7ѶG}�����G"��e���?���ݍ�7E��ZG�ʴ��Z��-:_^��Y�Z�
�s<�3��zL!vA��/�&̈+���o�O���	���v?e
lI+�w6�'��m�͊de��'��Z�@�)�A�j`�tA|�6��vxb0�<,n��!�����(=]��[�+�2h'���W1��#K�V���hՍ� X�It�S�&���4vv�^��EQ�XȏN�����MI>�٢�Fȅ��1��ӓ2f�e50�j���V�'zM��-��^�U$�md@ײ�Q���>~��,��ŝ��K
�qZ�y��%O���h�NLvw��D�i��Q|���ֱ�!����LpJ�q����F��Q}�Y��HS�X�qY[����D<E0�A��Go7L�8��2d�8ɧ�D��v3�?VS�RXK'hA��{{3W��R�>�t�G��z\P"ŕ;�:����Y*����%����ݑ�ci���-m�h�Ҷb٫��~����UO����T�ѱ?:U
}��Nq����߅<���t���l�mB���6Kg��n��\�ƛ��@�u�=��ϙ�����d����$�z���d,;��J>%�Z[��	cTkׅ0����Rt��y�8��I"�S�m��~��!��]G��r
��t?��[Z�Y��[C�GZf�c�Haq��g �Q��#"y�����v3�( O�Ϲ>�%��k��D�Df.~ȝ��%G���^�ב?��hP�eGa2���:�$�P(G���^D�d����?/f(����Y���D��|��`��@4	d[g���r5�{V�#���w��վ�P$��9,��mAv��Ƣ�2���^r�C���}js_{�k
�,=�����Ȝ6{+ϬD�Z4ei�T+e���!+�Mx�vb��E��-�TD�ݟ�}��Byf#z�ƣ�����b"��
xZ�؞��c�X�<M���:y�eWIu^�;ߙ��
C�"��l�eї*��g�yX�؃��z�˰lPJ��99���I�T[k��9�e(��BSb����]g�6�x��sf��U�+�v�9�gA�T�I����)���Yxso5@t�pɆ�x�~.���m"���NU��I�F�„5��r��{��#S[�X�>�UY�
���.ou���r��:-�z&qRD�SIK>Ŗ��w�xa�'	S䏧>x�Vg(N����ƮK��w\�_^K=��+ѫ��.�-��P���c�C���Jz���J�Ś�ba_v�P�m��1Urѧ�pK�d�M-����3D�e�杳E/H�f�-%����+#��e1m;�ui-����^.l�.�[����36�T�L�/�Qt�u�)��8E��T���ܛ���H	�e�v(؂z��c,hhǨ�E�M��D�K��.۔��1��VM^�K��wD��D��^�_����'�{�����,s�@�mX
��B�#�n�{�����v��m���T'�J�y��Z��H��-�T���d�-��)��u��d{�l�qg��.Q
�x��0�+�H�%d�U'�[.�PG*��)�q>:�FZ�r�Sk��Xt/�w�6��s{-��e�c+��8=ŝm���\)Y6v��}����y���/����}X(�Fsfq5�\��]������E�	��}dZ(�;�+�X`ͽ������J�����J�KYr�^�%���n�`��;ˇE2 	=�&{��ч�o]v	����s>����du&^D=ɗ�������c�m+�"�e��j-�o�G��M��ڻ*0����9P�E$�Å�KI��d�9V�b�}X��\S�q ��њ��Q��>&����A�.��a�9���ɟ���϶�$�Ew�˛�KN�:2�Q=�O-!zE��-�=,:ܣ�\S�B�������[@��O���yKe��)D�V�N[�&o���?vZ`1�,�:Ѥ^2Q���>���,�H��${��n�X���N)������H������/�_
ە|b-��s��rO��XJ�(yŷ�~8�pV|��K�K�=�EG�pcF�9-����=�\5&�q�)EV@K�<!�S'����/"[r=�NKz����5߱�ԚS
���{�`\*p�	�����`�b�S����K�����	m,�Ò��Ζ�{+��4��KI�~��΂?��!�X��*Z�tɾ��Z���m������
I���n���	�[`�6���w��8�xV����m��&�?�d?G,:�D?S(�Z�}��k2tWu�"�O]e+��?H�ާ��y.^P�B�^�>竭�X��
.p���y7��%ٽ.�h"߿��d��DOyQ��r�`�l��aЇ�ɛ=� ,5��n�Kf�����
�s����rԁ��y�d���=+�m*��
��ID��k|��C�j��$�k˳Eykw<�u����/�e�^��a��pa��`P8���"���P1v�d��cH��Dϑ(������O4ъ�~+�Ç�Dǧ���^G�i�����[3`�*K{.|l짐0,N:���?#����
VS�מ�{��:��r�����,o���뭼�4P��E�6W�uh�),_]�s�Pz[t��Ֆ�"�j;� wS���"�CK��BV�$��(�s/�����H���e�8��<�Wdn��]Sds�P���Dr0����Z�ZK�v]�g鳱�`Qi�I<���?Y�v���sr���d�Z��7o�3G�W%�,P�D�/�b��`~sJ�q*ѻ'$:�%���ä��~}����-�w_v9�P����ZTӫ��'_?�Z������bNY��s��0R_��m������ʦ���E��)����9�@�U��'z��I������Hޒ!h�:cn��[R`$vGoG��HI"-����I~�N!�3\�}md*!����b`���ϝ�U�H_�k|�j͡���˥)��S���'8ز��H�-��3�4B5�� <��j��b*ћ`g��3~����� ��k���K��'
�aW+��s��~m��>�ϤJA�E=���M}ł����m�� õ:�q
�9�����{'�T���X��+��[�=ش�Mkr��_ѧ�d!
�_�y�T�ޓ�q������9u��}J��%��%4���sn�ܓ����8K����"�i�=cr�#kӬ��0D9�f`�_Zl#���Y�&x��[F�>յ�$%;:u�����GZ���Xe��֦hS�cO>�Ԭ)��6RLa����{X�K͸~�~`<XI�>g�b�I��/��r���Q>�0.��U��9���@�s�{9pp�6�&ǽ�e7�Ois��(1jd(�9�6��]El��S:Ͻ�@��fۦJ�#M���`�etOw:�6�j����Y7�p�懭8�B�"���x�
�j�7�'/�&�9<E��U��2fuDc���K�+��Q�Ʈ�)��1��{킉�I��^�|<�L�@�S�=h#�/��H]|�=ؒc>N\���H�3a��2rl�	9�4]�'�&/ u�/����O�sĚ��Ѯ#�v��(��q"����SL�+���u$xg�RKZ�N�5��`�?2�	�#͛s�bq�E��B�~&�����l�/�gl%�S9Ey‰~���	��	rDr�y�$:����j'1J�ϯ�)�э|
ܟp�b�UE$� �Jܹw�
��#��'�}��;x�k�bZ��wa�fv��l�������
�H�M01�	/����V�2�K���#۬���)60�C��ek0�� K�fd1�P$g��'���yN@�p1�@�K����\v
���=ͧ3�I1���1;.��A�Y:N�c��.�ρB�l�~%�8{��+��2x��d���-�i��h��������Q���ǯ"�qX�C7�3ȅ�y'�V��j�c�>�*��,8q�l�&���`b�6� 0F�V���RL�Po��&���{�m�`I?�*����2Q��h7��u/'X�s�o7�sS�U&��u�&Ɖƞͥ�j�.��(�V;
2O���G̽��]wv]�/��9���GL�j�,c2�
�o3��L����ᰝa��0X�
�Ҿl�w��I��+%CX|�d)��=�Ē���U���>h!���p�� ����\U��{�+h�_����6+�|�K�v�
����X�9�A��]v��iMAD_N�$)�jp4���5��-�,����|]�Ʈ�0�6N�m5M}�/��2}-��W2� ��· �c����4�{�!�QAx��E�\=��\�<�ʧ��R�E���\�����fMa�'��"�x��|sAD���;��s/���'�9�	5O��yfYtAD�(�*�9m\�km�R���7�}D�C��\�>��8��mj��{�Yp�A�]�#�8�8'�+�s�\���m��*�,"�]�Q�5�1E$9�%��֕�Eē�Pg]���:����2N���OF-8$�x�ikNw�����r�mN�
5��#����?���N�`ߗ�.���r���?"I���Kc!A�sߜ۠H� �ߐ�}�u�V�o���b��2�y��:k��.���$G�:o1��x��(�h#��7�L�����D�Al�Y�}�I���b��
��}#*�q�dD���/��󈰏�P�\3���p���<e��i������R����/EB�{ܝ&/G�o�WOĹ����v��,9|�Tw�s�p�����.	1KB�3��[
��
��iD􀘐�V鲈�s	`�I�®O�I�"��o�}�n��_���)/e���sd�=�R���%;�W(�]�ס��o ��'|G\A�]�\�G������{�]ч%6�gՓ�ϸ+�U��~��U&���z��6��'#:�be�d$��žӚ����7�Y�;�x2ɋb����� �O��Xt�lF
8�L{�(�-���/YrA�n�;{��](&��r�+�.,z�$ҝ�MS}vA�a�Q@q�r�d��&3����ֵ��9��GӁA����lMrYo�d�ErA�aѿ�P~�\�����
�B�#�GU
R�����F����ք?ɒ�����ՙڈ�V� �U�Q����~YE%��3-2_v]�YG��l�l9Ԑ�:�(?��3�"� �%:KxGR~�@t�X����|D7�lma�h�]��wg��J�ƒ�Ζ�!�ܓ�����9�.@Xq|��� <��L���wԗ+�U<���d�;R
� ���-�.��K�҂!�.	Pt��%��R] "� "� "� "� "� "� "� "� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ���.��.��.��.��.��.��.��.��."� "� "� "� "� "� "� "� �� �&�#���ii�մIEND�B`�assets/image/04-bg.png000064400000007460151327614500010462 0ustar00�PNG


IHDR��`#�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4D93C0B4BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4D93C0B3BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>1��`IDATx��kO�:��g�R�@�P(ەV�;�����s�.���rkaf��F�3eJ�؉/�#ET�$v��Ǟ�O�ݻw��on�IQC���پ������Y��YYY����6�Hgg��5-+��� + + +�@�����ܚ�������9�U�o��=�!,�~�`Ƭ���
�
�
����`�ͤ��������`@Vddd@V@V@V�X�7��)�d�ǿ(�����
�
�
�������a��
��iײ���
��on�I7�1+ + +��� + +��� + + +��� + + +����K�k��[�Ϥ9�A���@�uO����RCVhN�Y��9�-ϕ�����^Q��
���Y��}tj\j�K��}��\gZ�;JY���"沑t���;�`Q�#Ҟhi��:��^���><�:̄I�I���"������>�NZZ�WfL|���h��Pvl�ق��Hڛ&/�
�SFԩ�3e��DV�_[���K���[Xd�q�NQCl�$O�&��&�Ja9�a��t���t��=��Vn���Y!�VU��V���9���i��e����*��5.s�����@+Na��8��'�E�K��h��k���~�a~1��(���T��H�r^'Q#��OZ�W��I���+�L0ڪ.Y�"��:"�\k�\�,K9<lBVfβ�u���:��=�9d��xa�Y�`�+#��'��uXb��Ýۆƈg&�2̚{@VH�������W��gO���-3%?w�%�h*S&�;���5e'�_���K�������-��Y��z�%?w�B�n���̴��j����"fw�3�V���ĉ�F�xg`Q7
YaT���s��E��Ձ������K�iʫ"k�`YxB�aa_G�H� o�ʮ�{@�DE���_Y�"o�(l�U��-s��= k����p�l�–]ᡍ)}3��Y5jaoJ~n����;�dEԨ�-�yW��\�ua�B�7d�Kԗ�D�MX�@���|����5Q�=\:xaͶ�e'�O�{Yj�>$��k_��5$��5��f�e}/3�cƲ>�S�QdmF�X��y���^�y���zQ~9�;�wdE�G�E��R���b?�IԼ��kmX�����E]�!�,�I�=M��=+�^��Z���uvv�s�t�5˸�+2X�[�f.�J
Q�5:�ג��(�AH���E��X�fy���s��3~�Vr���0�W��:�孜.�Vu(�SV��9/���0��q��!�dV���}FZN�b�f��\�K�*D-�c��X�XZ�ۚ���jJ�/�c��L��5y,�5MQj���T�WSؠ66����,�Rf�����pY�:�;�Q�<@a{Fؐ&�M}��P���[�D��q�N�-����Y���#ž$"l����WF�^�)
Q�{�IA~���}}H�X~[nr�(i}��]��]�c\�C%,�\
Q�\=�HIXs?2�C���>I�I�U\��E�E��y��E]k[Ԅ��ͩ>����W�-��{IC�r,�Le���g+~�#�Q'B5UaƲ�8�����S�HVeL�3��5��k�������b#�)������kf:-Wv?ĩu&O��xX:t�ė*~݃�oZPi5o}��u��"laz
�ڐ��!����#�xoz*!ą���'z�Q���B���o8�����Z/�w�U"���"*�6�=���U��jw���)��R\-�ʰBz!��@��u.j�ªH+d�������WC�g�$.�VEX!�j��+_�^\D#���B6*�;hQG�=F���"*a�'��
FԠ�U�W����k�E��Q���QXI�Tu7��t\t*����s��V!*�f&���U�]EV��B`"�/q1�*.j�B���"*Ž��Ɋq�5�]hZX���I�z���FTy�[!.�~��������]��:��D�/�ʩB�����D횞���]X�������ޛ!�M��
VX���9��@����)���e��
QQ�V�\!5D�^�����k�ަ��
�Z�M����)k�a�e�, w�#.BV!*† lMQ�aҵDza��VE"�C� j�š��u�l�\/�V5X!ߜUE����	[Sԃ&D*ۏm
�u*�oN�m^�!Q�U��窅��#�Jв�<A��u �e�e[U�E}��Aʊ�;&.dQ��D-�Ձ�/�
��Q�ֈ*��>�p�a��%��$�2RE�V�"�[a���z`�6&��$j�c�+웺�u}��ia�"l	&�;$�l�ӏBՅ��ˊ��A�c�߯�mUa�����ߜ�ڼ���7a��%²�&�r j���1tq��aWsշ�ʁ�I=��L�K_šŰ�+d�$fQ}
�a][S�ӄ�֩�
Q���f���E�!�jX�cDMWX�fɋ
�NQ��JW��Z����";Vط�X���N�s��c
m]amd��1<�zR��'��kmam
x
Q�!و�JXY�t}?!*�>���Du!��Y���a����z�y�VVy��pGXDu'�BThH�sD+l+�"j��V<��,�	�۸����|`]T���⁚(���P�Yk�>,�&+��)�Scث�f� +���%'��z`3��"*�>��Q��+���FXD
LV~؆QaeA�]D�KQ���l�Pˊ������k�
�
�
�������
�
�������
�
�
�������a����[�-+ +��� + +���;&v����0?6����IEND�B`�assets/image/09.png000064400000217660151327614500010106 0ustar00�PNG


IHDR��O#�LtEXtSoftwareAdobe ImageReadyq�e<�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:EBD9BA64D083E411AA70E18925C9C19A" xmpMM:DocumentID="xmp.did:9ECBBDCD7CC411E5A23AFDDDF2F8261B" xmpMM:InstanceID="xmp.iid:9ECBBDCC7CC411E5A23AFDDDF2F8261B" xmp:CreatorTool="Adobe Photoshop CC 2014 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:eedc9f2f-9754-8443-9bdf-83e19a6bb108" stRef:documentID="adobe:docid:photoshop:cca1a172-7cbb-11e5-b189-dc44290b2c1d"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�<���IDATx��]|�}׫�N�#	��D���c��16��kl�$N��c�;.���q�p��b:�It���:��T��̞N����t�<�߭�ffg���o���9�N�‚�����py��G�F��5õ�U�mk~�kN��.R�]��c```s�6��u@J�Kp#�+�$��`��q>FR�)�~�g<FF� a�R鎤9]ER:�9)1�b``�Zpvas��Nw�2r�J��d�k������p�	������c��b�R�@�# �y�����j(%￝����X��c1]%��_H>ݽw.�b$��p9H�y�p��0\FR�B���L9100\+����>��}�9���TJ�RD]m�"��QNKL���羯��ݜ�)�+LJ�/ꎔ��AP�"'��AL�s��y^_��H�*(%_��?Rꎨ1100\	��<���NL�$�+E���&�s���"#~��G�a=FJ����SG*�}����^�����TJޤ�k�$"�yTw����"$��AD��y�1y�#��LJ]�i����I�+�:�P#(�!"�'!y��x~|�.#�ˤ�x]�DW!9�/膘�5��H����r�%_!:���G�{�(FFW��|QW��IH�OH��.�2�$%�ٻp�}�SwK1\fR�EN])!Ajj�;|>?��t��ۉl��,T��p��edx��&�Rds8�����h~�y�����(ۉ���q��V���:�uBX ���~�I�nϼ���έ�XJ�$�s���e�Q@�6�-:$$��:�u���j�i�AJ�.l �]e�䋴:��E��5a``��@�֚5k��"@�k�m!3x��p~k�y�LN��\���,WH)����N�ji��acW�����"��C$V�r���{����l&SP����5��.��[��agW���ᚃ�k��k�4��]�1�p\���,9ԉ�x<�c``�6���4zG��3�)��*��	�M6
��H�t~	.{�5�&�_R\�ǡw�|%>�8JF|REP���B,�W��֫q�n94o��f��t>�x>�����h��
ǻ���]���9�>����_�r��_�k�.3���l\�p%�.������A�MmGҦ<�6���ӳ��mw��Aԑ"I �n^���ms+z�����>�1I0�)��A��%�H�B%��Ţ���Y�)��M*��p\3�O�'�H!���yy�E�+��H��ɦ�~��bZN�@�T
�D�LrE:-�P,w];���_(&�	����P$"u_9R"�Y WC� ^�/%CR	�>��<?'GGR�BBb�"�/b�2$b����|.%w�˩��>#���>$��
Br������+�z&`ޝs��Y0w��8�?Ry���UVI��7FX�I)�"�Ɩ�<����ɣ{PRgB����D�}���_!�KlV�Onr�s����?��^!1�6���S��T6�]z����u;�gv��/���K�����p7��X1�rT��� BZZ1^V�6λ�礞��~q7�P$Ase1���;	�q!�Z-�Z�u��\���P#�as�2��6#�o����Јİ��^�������BD����N�pmuq���T�[K-v��AtBD�\�8ig5��B�_&�E�b��j���H[���t�?s?Bz%���B�E���q0��@$��]Sj�8���i����rX*O@W�ER2�b��#r�A^��I��#ןօ3����	Mt�f��{T�r�$f�nu�I�*�6��FځԉG��։
ڟ6����I_v�Ѩ�%}W
cs�R9�6!��݉&q��K��D[M��i1ld?ȅf�}b�G�
�<�J!,�}�2�z�&��,)�j��V,]��|�	RR�q��z�|����xaы������$vݳW^-�v��R��wUHI"U�XS�U_�CYy�a�"51�&hu&�e�!��Q[S���
���F�:9��HZ�`�8`6�a�;��~p��ж ���j9�Ahhh����b8�@��|BN�M�:���'$�Ь��s)`1����9G*�]T�����|&%ddBk����=�O=M!�oX�#EEط�gd�j ������DI<];�[�A7j��|+J�-�=����x�28�4��Zېs4%ǎ�xv!1�j�����|�%K`֓�"v�J�f3i^{8�B!�)a�����kp���Ս\omjl�����(�GKm	Vlق���E>�mD�a�kq��V��NǮ�y���Ⓤx�6��E�j5tж�”^�=!l ���r�*�n���F��E�Z:O�����QO�I_2���'G���80���a8�B���[��Pg�01,-��� }���MK�G�d�g֖VR'�LH��hIMQ�/��8I�I�ؔ��U�X����.%�� ����#:<�MZL͍�؜��uFr���ٓ��2#B�C '��^�#�Yr6fa��Br���C��[��*�|�L����Z�C�7♧�@f�n�x�����EFL]#J闄�r����
=1�R��͵ؓ�u)�
�S�3pB�Ĵ�<��ކ���r3p,�xz��W�A#"�Ƭ	�� %�v5}b��|�$�o�?0�����6¨�G��'�t�Z�Wj��Qɨړ���j&
Ƅ�H���/�G��T����?f!1m(b�X�a�����	1�/�
l63�f�zx0�`�n�;Q���TT�B�4���7k1���#�|�}q�x9e�@y�b�
��Iڃ/Ecu>6��
���tV��I1<q��f`X?
l��/�V�8�z(w�����ͳ	96��҈C�2Ф�
�<e�݈߮�w������t�~�I�!��V��Jh��a��G���L�5��c�y�?j�;v"�!��	S0$1����o>���X�
͘[,E���V�e��˯B�Q�ϔ�t��G��߄��{�Z��2�'Daad�U�6�h	BؔiP��Q��X�3�N�U�5[��B���V�ES�I��L�_$qx�dA��Б�!p�/�j�v!
�	�W枀�csS)2d!�h-��6�҂ 4`�K0lX:��# �8	��P�k������qN�b0`Xd�A�Z�����������5��Jȑ8R	q�)C�+�\�1�s9�L%]�-�ڵkq�cE���s���aaa�%''�(��D�8��7,�ah�F~A1�����Ğ�W���
B49�8O�=�Y�P*텹�S���h��@�A��,jEd�(+��G���1	�M��>q���A[_����4R}r�
��$J�8۶�@��E[��-&Μ�Bd;7A|�TL�㹇q����{Ǐn@fV9��(�}�x�:�/�[�F�j���qd
�E�����ذo?��U0�T#( :b4�"�,�	ӓP_^��'��6`Kv�N+Z	!��(	)�	�mط%UͰ
�8~�b�BzR0��k�B�GHX ���1�K�P$Dq�A�$aH�՛#�ualAƑb��*I'Rb����L䦱��/ &��<�)q���
4bӡ�A�!�V�ڂcm<���qt�V��]����cd�7�#mx
1�#W�Ӱ���&R����P_x�ޣ%A[]1�D��{$�F��<�QK�0U9�4"[=���׳�w}cmx��IiDr���дD�f�AsE#"f�
�
�x�$ѩ��������΃Eo�_߾9/,,IC�B�bTb���M���bXx�"ts��gq�J��(H)�Qc���>���m(�!�I��YUt(�6���^q�?-���P�DSCV��w�}7�‚P�@�ܜ��D�����Zƅ�/)�{G �u����M��!X���\�~(`WO�EW5k�,�D�(|w>^�U�	�lVXzB M��������0��0Wb]�6��o*dž��P2)��‰w��׈�$�� V#}H_��Z�'#��T  \
�ٌ��t���p��'OG`����L?��3�}��Q}j722s!�F��`��q5�P��FC�$�	;�g9�M��AT��mu��z�oL$�v����J�<��#-���;�4z��!?s;�!�R@����C`�ja��Po�!1>�(+��NAZ�H�EN����/vnۇf����*���<�;��||��8\P�cGvcSfi��)dD�)��U�q���/9���1@X��g�n�
hdX��P�� W��#�j֭Z
I`ć�8wvGBZ�<R�
qc�b�6@{�
��@*7`�΅6��>Ҷ���(~��j��Uh>��([R��R�ũe�Pҏ�P�E����:�O��D)���Tb�vOq4TP�E�z�8����"f�*1l%B&�'���g�C�]I=T�H����J,A��Ȟ�އ\����R��P�A)2���U>q�"k
�:
�†�9����	:��wϟQDw�
O@�f��0}�h�ѳW
lVÕL�.d�ByWX)�Ϣ��+��_�D)�z��5�r���@Ym��#�_�P��"�_H>�"e�h�Jhs�0u�0���C�pʔ�t��80�z���N*& ����h>
!W�H�1F!:�7zƆr�q=��#RR�� Bj4���Ja4F�B�CUe���(���A���X�I[��NWCݣ��4I��9�����U���X��M��DQQ"FEa�I����x��}� ����H��G"u@2�R(������@⍛Ѩ�U:=Èq�Z.8vA����jT�ѳ�DG#��H&�
!�(��#��`��n:6&$�|qe3F��A��P�N��#ڏ�7U5
6n2Q�ǰ�X����#��c�@��S�	h��jb�G��Ap�7AO�#��C "�� �С#��^JL� BiTI��<r�� �Q�{��U�L���!�ʈz'�@�Б�kT��E�7 r�m��SH���8���a���#�D(�ǭ7�BC�r]B�o��¤�#$"#�EX��
��bЫw(q�3�3J�
F��S� ))��!��]����V�%rL�2�Y��l�2���Oضmn�u6������\��p:���ԍRZ㥊>�SJ�]u�tGJ���	�7Q�F�ũ����̙��<%������\
1�Ve�@WQ�M0�͐)��c�k!RPEBnhc�25w���Dԍ�KR��e�O�f2A$Usմ��`�9 %� ��9���D�+��+�����6����X��L<B>,V�]D3��V�Ҕk�]+��"1�|��%\,1˕�d��`z��ͤ�~����6�'Vr�!��pfu~�>���&�Rw�+K���h��k�6npN+�� ��҉�zn,�w��OBH�O���x	!�q��2(�NH˕tb���V.����8I=��:)���|��:��f6.�����8��R������b�MhF�T��(:�6�������v���k�Q�K�YN5�G0Qv[�4�f��V�s��iDS�	h�C& ��k�BĤuȉ�h.&�t��t��B�-@Ӱ��6�����
�@CS��V��Mf.RH�K�9�f�AH���Lz��;�p2ar��!���В>�'$�t�Ov�YmM3-eJ5�������}�'(�7���i�����n�fC�%��gB,	h�-�X�x��n����y��/����̫
�Ǧ{n�V>��#�D7
)�qX��<�ɴ��m��z�pk�=�w{�g�z���
�='Оٿ�Ļ����gv���}x��G]�ۑ�%�g�.A�ۣ��N�3]#�>���=
��M3,�� �<߸d�8;B����yY`b����#D ��y�w|�u	Q�V#Q��x^��G,�yf#����Sg���:������?��;���g�_w׎FTD"17��2'f.CR*EnN&w�~���j1]�q
FJW
�������<ޙ,��;�ݟy���n��m9�:�R��w���?W�tA�|��2�J>���>������FS�ߗr��W^*���7���}���9a'dө���9�~���q����>������3��tN�����}������U�|>[b��õ� ���Q��R6��)1000\kQFJ��qk����]s�
:Տ�6o��p���@��)eW��4~�Q#��
��n4R�s.܄�H����310Rb`d�p��FN��10rb`��`y�̉a``J����R�J�sl)1#���u�c���:�_,���s~�Rb����&FJ� Q3��H��)�k�����7q1��H��#�멾�e��������H�hVWFP��)1#��v~��5pFL�#XJ83ڝ�u#�����2B�Rb����+i�_��`���)%FHL�vb}���)%vS3���ӹ�TSJ��X��zb```�t#t'�ef���00Rb�犣2g5&�%bȘ�:t���
fx��j�ۚ��k7֘�C��۶bテ(�l�:4
�!�W��C"�>oZe`4K�ʟ7��ք^C�XϾ
F�z�aYy���"�Od≇Ċ��g(Wc���[��u�E��R���`��g0���S�P^��bX��D���p����M5����8B�q�a��(.:�cy���-س/�!!y��ls^�2�+��}��l�s�}MXx���)�.Q�}%��B������:}���x��Q����ÐXtM(*)���@T\�(��0Y�0���MD�����������/�2A���..@m�����ӠY(=]	�ÉV��	�&'��ֆܜ����/)�g=mV�9�B�p'J���D���n�uвTT��	�ꍈ알`���Q�#y(��7!�[���,CeM=�R5�{C�s��|5(��O�BRR<�\�0���R�`D���q���z�;_�ľ����.���+���TSLL)]A4W4p�*?��OC������0�ӎ�Kq�of 91���C�20��ӭ��\�??2�i�3n"�g���$����1j�0:_f�q��g|��">i FK��w`Sn��k)�c�#}� L�4o/Y����c1t�hNKń[��݅��
�����󑔜��c�a`���x�}�r����X����]7c(��ԛ��������CJBF����i�0{>��)�½�+�ן'���ԁ;~FOǨ���w[|*���#��S� -m9~"��	7݌�z�gL��)3�d�>��x�Æ/��"��ÈQ�0z� �����|�b�j�j�Y��!X�h��֮]�'�����&h߸����[���C
ŕ���钟PYtzy����p<n�O�aE�p�M�n�q��L?
CRP���wmG�-�M�bt��Q1���u�8�N�?���"��o��~���ڵ�3���h&���� ����&"D�CVf�dW㮻�@Id_�G�
�����ı]��H6	�&�C��
۷�Ī�[0x��
93~T|d=�]{��gBH9Ûړ�;c:��ۏ�o�̩��0c�-X�~��
b�gR)K��(X��>R����ݦ}�7|2�NA+2���f]�'܂�׵=��3�~�y�����6�EI�{�d�݈�cf!)R�A�|̿m.��r=�&`6i��#q c-��?��4�M
?)��	��n,|�K�aޜ���}�v`�ϫ ���z��|��+���������&]�YC�����؜�l�x�Y�f����w�#�������2�֟�>��sn��i7ah��>�V�
�3�Ěo��x��9#1|���ڔ�ƗG�-�d6�v�%H�㪭��u��-����!o�^��nƢO7ೕ�xwY�n'@k9fDHiTaFz�o�O�=C�X�&z�|��G�2�&3��G��ť[�?���_��5���kOދ�G*��'���]c;>�����.Ũן��H1~�D���bu�����o03�U�È�����؊��|�>[�u(��N^��ۿ���;N7��;�җ[�eO6n����>��cu����<j�~���8�KH�OޣJi��o�ś1�?��>I{�����>���~�n�(Y簔{���w��U��4��K��e�1���e��/��5�~~"4B�?��&���s�ú�E^_Pb�_�W���n�Qi�#\bq��5|S��m+?j>>� $�I����g^>CH�H�ߋ�a26w:_Cc#�7���AHR<CTC	��m#*,�V��x7�_����s;Ō;�q��D���Qro��a'F*}�L�H��x�		<�(޵�M6��v'�ҥ_⎑ɝ�z#��m���;ν=y�{���ǀ�~,}?i�t�˝8�?�T�]���OH)5x�����X�Y�q�1<BCa�7v����y]��]w�c``J��A��/��(��X��g��<�-?-Ö����?�
s�FN��Ci45j!��XZ�G��k��4.�.�(@iB���B��6�`v(���?p���a>�*Ҟ��'^���R��j�e������0F�A���$1tm-�1��Z4������#�ho
g�=?G&�_�;K�P\݄8?H"0aJ89�C[+ZtfȤb��4��G�S"�d.�'Jka�t��m5�$�r�)�V�a�9`��EAm|�x�x�xNX�N�"�f��2sѕ�:r�CӡLܞ��/E��T׺jb�����z���gS�ȓ��5x����:����a�����l27���}��WoEU]!���h�5����s���n���EJ�v�n�Y�f�sx�N��#�N����DJ�S�92�L�&�,�	��&8��<)HeJ��ȡ��9���&%�>�lh���iDN��&X��:�g��W�-Ǟ#�hm���H�mP(T���c�4�F1�X����|1���Dj�Pحm�꽷� W��[nG��1a��� �Ѧm���L\��{���",P�A�nRꊈ��wx�rh*c`�I���8��U`��q�T��Ő�'߁o��bx�H�V䣢LKH)��̝9[��b��O�ޔ^�a�㕿�	��q���y�v�Z477��X���ȥ�y�4�)����Xm��\�B
�@  ��ɥ��"$��h�u�R�36���
|I0�C!�Jqh��x�����']� ���ߊ��xouR	��3�=���҉"��x���?x�o�ڟ@.s���4��YU�M��#Bb���?����\�C!;!���ԕ�')�RN��ʓ�.wJ��LL�4)]��Cܼ�x{E���_�^Xob4��iB�q�M?|L�3�y߼�{�����xF��8�E��.1���l(8�cE&('�g��ӏs�w�|������@��1���x�{п����1��QBnC.
�ZY�J�Qi�1�w ��f,��?��4X�鏘>0��x���xq�
���B�B5���@_����
Ku-āQ?�&̸i�
 �0	j��QTmD\?H$���ҲR2ro�aBo�������VN���������+�ܻ���fj��-��" i�mH��"�f��h��Ǝc������\�CH���ο��Ä���ڗ���i�>��Rn�A�>�n4:����ǿ��&����:�#@�*�L��0�1�1��Շ��ٗ?�����}����@^��ύv��Ɲ��L&����j5��F��ڻ�r����vˡGK�MM�ж�v�-'���|#���0�w�U9ƖJl:TM�՟	鿂�>�o��̞4B�r��-��q�PU^���xEu�N$q�d�g�u�eT�T\�)��:��t���T�]o�D���8]����p�(%��EJ?��G�<��#	���ٳ��͈K����'�Sk'���0�'���aje�mع};���O��{V��?Fa�}0(9���W�>��j��?���S�=s���'����9���돱"9s&
�a���~��;s��|�/���C�8�_����Z
ڼgU!&�N�{��Ba��`"w�EW��k���~�޸�=���b��	HM�«�y'���Y��#��{V����s�����;���!��=%!�5��Ǽ�LH�f��
+q�R������}NA(���{��P�o6Y��c�p���K��D,�\.GQQQ'�1�>�"-))9�@s�EBW��|�-��;	�����AbL(,Fʋ�5Ag!3cJt|��;H�!}u��"����*)�R'\����%�+^W�ق��R]M�xm�MԾ�}qjj�9s��
		��l)?�ş|��C�8x��
\5b��b�����O!ο�h���;x�w���B�?�?�<��c�h�X�E�K%x��+��S�1� ��lEp�
f�Vb�W8�ѱ�x��aX�Q��t�fD����}YS.F��c
���74aง�󚷡"-���SL��I.���Q\Q�5gb�0ܿ�q<1vGY���=��42�m0Z�5�E,y�!}���cM�h��H��6w� �N9MDhuQ#N�
��}���{��*,2���N�d�b��x䩧p���0Eg2�`6�a!�g�k��p����y�G�����&NZf����U(#�*0�ǍFd�!���(�>%'����v�gY���,ow�{uc^�p#�g�/v��v8''�a���f��<^�f�ڼ'�:ܧ�<�G}Ę�F#%Ocצ�Em�N�qqQ�KEk+��,�d<Bծ8Yks
�F��R���⣴�m&!�r1�V�Vbz'@)�t�I�m��%ě7�'� ��.��:UJz��&BfBI z�����Ҩ�����<��>|	U�K	j�3���o��	�%夕�x4ez�
u8b�;�5�W���~�Tw(#NQ⠊B$u:��K0~����/X󟿠��<��[��h4vt���۸�WOc�6�+E��?���=��3Gߣ�4|GCw�\��nb�$�.���6.��^׮�����)1Rb�KHH~���v^����91B�	#[��b{���Q=��<|z'$u�=��&j��Q��է˺���듬9���I�hká�P\5		Q2
}w�:>e��1u�H�F��x��F�m�݆�[Y�R�k�KQ�$)�q �555qJ�֏��э�ӛ�(�uZ79�﹉�����S|�€��#%�k2����s��pWW+x�	j�=�'(i���A���z�E:��S���(�4�7�b��J�zFy�_H~�0��;O!����vւ`���Wb����{�N�����hil�R�ӌ�f���p�
J��tJKw�*��EÐ��h[���ML���|lw��ù�ξ�֞ks^�h��O��-t��~�����s���&�ل䭄<<3��{��*���T*�"$�=:>TUU��'������3�t���!.�+�	_�!$���F�|n�zn�Q����%��t���A�PC�Ňy��*���AL�zl���s��}�GɅ{��Np����~11h�|���<MTJ�:u:�hQVV����R�$'J֔��	�Y{��z�e�]�>�2��Rb�:�eiEv�a41��Q���b��΅�ꄿ�T���n#J�85��cFn�:T��)�	"��D���
�P�
7^e%��Ѫ@B�xj 8q��Y�F&(�ОXBԗ��Ft^����xy���Bu b�a�p%ϋ�<�%��&�ڝ8���V�[��ń��������qK�[�\Z��2��W�q��q;)�T��R��L,��Ђ��&T�4@���$JN��4'̭�(���8<�x��ɺ
M^
��#��\%]���)c�ͪ�~�|�W�^=5dt��=ɴ�03�q�zl�o�w�Bo�6��6e�f7b.QD�����o�aO�3�#���T�	�k��h�2�dᾅ/�SS��u	��a+��x�@/�q,�����^)��;��^�-�"�I�>���>��c�-�b��)��Tc疕0
�Q��S�H&`�_�G�\�N(����'HǼ)��V���V�Ĵ?.@�F����?%��
��O9O���%����e�7�<t�d(kr�-�4�����~s�HB\g�=�DU�Tm�Cz���J�U8��
�
���dW��Ky��<Cug�e'��ï��ǀ!�ӣ�m��\��+���<�Z�[$�ൗ^Gc�\<����\MX�ŏ�T�=��c�ݏb�>p��� ��=�����x��тDI�>�c�Г��s����>��#ux��wP�?}z�ּ�w3��|�c��w��~3�?�7�*]��?�pyR�2�2'�y�ܾ��{��]b��]q�@	��w-;D�bж x���g ._�%;�"�ε�b]�>�v��f��
MD�u^����;�ϝ(���]��q)'ܲ0SJL%]���IDn�䭎蘑�`>=E��
gU6������2�E{�\��5�kB�#�>u&�&G"���P\���?�g9	�J�@~@"�F����/�BsC�����m��>���=1f���D���@�ԇ8l��_��XBw���KW��}�6e"T�"�<�'>�9=&@�.6djŮ5�"Qo~폖�D�+��UُL���ٽ
J�L����!Ӧ�_����ɐ���m��h	��nҩ
))�v��ݪ&�W�X���
����8!��D�MH��(!Q�I�B��;��j�}����X̐�����˄��������p�\Y:�~~���68��}�Gw��`2ѩQ.0f��wV |��>8
[-"�&3L<G��|'�m:He~��U�QAjn�E��ȅRtJ�pX;R��<?Ȝ��<��?���P����^Ʒy6�2s$�R��(��7V�s�9�H(
���c��ICE�7��+�SH�*P:O�n�D�~�g�ޕz4�1�t�	�W�%#���	���v<��b$�5c�7��>�����ě��o�	��C���V���X�ښ����Zb'�u.� j�bur�Hh+B]��{�К����7���i`h�r3
D�O֢�=th1���d�`�tkO!���;w�x�H�߆���a��	fK�GH�R���Od�^�%7����ϩrX�9�"Pj��S!��>�I&#XlF���Q��f$D�=FN���ܬo�2�A������[�J_w�ȅ=V�8�v9�	#%FH����RDޙu���ݓC=��fDщ,|��3�N�=6C�X��w������7�<���WF)C��� ��/+M�Y8[_���=�~ʦ�i����Mn�'k^��3�0�G1H��{�>ǂĞ�.	w�I����Ak�#�g8T<���,zd����(����J,�*u49��A�uʎv�3�ݎ����1xvo��F��>�d?6}4�y98���}O�A��Oᅷ߇Q���T�I��̥���B����)2��!Ar8��x��–�s��':��{����W'�����������l����5�RWv��D
 
���0�PP���J+���9?�p�B,�`���@Pd8d-
O��*FLthD�b��O�	�<�A[S���b{�OBS�	�yE4V洡��fE8��07ס�A��Xb��t[��m56�tE+��z@NCw����2���Q��@d\B�1����o��\���n��I�v�We�ע�Ҁи((E|��hh�m�b�

	m
����Q[~
:�=ƒ�s���D�*�j����h��E���b���z>�X!���G��&�C߄�		>��i(������~ޥX���M|�C�7Zȑ-3te�Ɣ�Q�t��:>��'�g���0�
Rs���w<rO�<H��
�#w����	��I�x���K�J��:qf`�?,�l�#e��Bzğ	�iB�	���pߑ .!��LW��@BHg?�>]��XR_�^�E���suk������쇒r��9)��r������D���8������d̰��藞΅�Z[�ӵ!**�Sf��1t��;	“�<ê���1&�����w,tw��K�ɽ^�'����b�[���S!�.��!?�>I�LJ��������ۍ����|ͻ���'<?�'�I2.C�&P��=�TBn	!�6v��fO@֞HBۚ�
���g:����|FSJ7(!]�d|=hε������ӽ�:u�O��X��z��O��=����zT���q�ʂs�7ix��<7�j�tI&���i�y�Z���VL�P�	�X-������+"�뙐�z~���MH4��{	���zn�:JV�k��W��$�s=��F��ǜ�S��u�jt�W�N���;H��7%&�,x����=I2bb`��T�U+��ȩ+B����#�{�')y�{Z_�;oDx�/r����s�%%΋���xm[71�'5�<���l110Rb�����ؑw��h�75n��<��ѕ���t~��:r��w��Ӹz����^9�	�;s�{�+������:«���D[JL�Z������K����p=��}w�UڹVjp?��*$OB������ܝ��x��r�v���MZ��ʉ�k}�������nw�1d+))��y>��B��d�=��F� 00R��I�Z(wWKu����0
���^�$���9fT%	�]>ڛ�kbrmn��;�S�r���H �JPT\ą�:n��P�'1�kr�Ő#&FJ7!]��]wkٹ��	�����w+$O��2�ijI��n���>��o'(��z�Q>���k����	�>u��h�5�/*w��#Ϭ��R���>y�I쯣��L&���=H(U��o/��_�Yaі����,b���Vgd�H�����sIυU�8�g�7}����!���zfI�y鮅x��6����v�9b�\~;j�p��|^u�i3nÔ!Q��}��<��������t��ڌ��VW�vv����-6�%e��\������sg!$2TJt��$�o�#�C���/�^CY��1Qg�k}���
�]�>�p=�W��P{,�69��O�$�+;qMN
R��^4��y��'vg#<5�{�{����y �zu$5�Cv���/��`8����%��4:�ҧ}����}�V�C̈ix��y']@*��\Ծ|OK9�z�l+�GH�<��=܃��|�&�l�(�=�~��ӓ���ꬰr�p-��oa���Z�$�O��}�����؞������xrn�}�o��v
��oC�-+�/�N0�9?�} ���HT����6F���bn�n�kƗ��/���6k��7J��q�^�>�/݂�;���9�#��o�t�&�J{b���`r�G�96�@^��[��8��\�_|�c6z$�A�7~��
V�؀����?f��p��l��k�2���8#�N�9��y�?�����`16�1BBT��\/JL4k�^S}�IԘ�H���L� �"��
����nԮ��z�)B��à��ܮE��"�N%��20�ti���G�!?������Sزe;�)�(:����&��Z�����ܓ#�ڏ���*;����,��7��դ#y�BΉR����ڗ�6�

�s�uMZ�j��B�%��VU!��A4��x�-���X�
�8@T�G��`�)�xN.@�))P+���rdE\��p���Y�{�[D�{/=w��jT���o}��8(����C-{���+A���|!%.+���29f*��y�����wOe�������G��n(ع{��ɾ9�ö�
<��!]R�����ӵ0��ʕ9q�BBH���qB3�}�9�W�w��(�e��gM�s���C��7��_rh��ۀ{��7n�g����?૯��n^�Y�`�U�'8�A,}�78������n��]:<��gX��)�^�.J�%�;��m?��|/Lc���ʺ����
z<��exl|N5�O��r7���8澱K�<��e��hm#��v`�aࡿ�3�Dؾ�'�����0t�p�x�h�V�J�ˍu�?��'������8Y]��/�N��~�ܒr��y��?����t,���I�0[�/5���f�MM8,F�߳eu�0�M��9��G�QM����	�6oB�֥��H_]��d��V�p�xw��n�>��{��⺷Nbρ������HOa֡����>���q(kTp�5��8�}Z��Y_�_�R����TN̥km����ys��gl܃��l;T�o���QX�E�Ê`r�6�Co��Xa[Qb��6'��I2�e�A���\
�����#`��j����Z̜�������D��;�E�;p�s�c	A��zr��
��S�Pʔ8�-�2$�i=
�� �k|��X�uN��q)X4:�S/�	�8"���+�t���Y����3�!��/P��mPKxh��[��Z1덩���|�X��*��Ut�� e�U�eJ�RڍlMF�M�AW����m��`v)�N��@z=*�퇝�W�b�?��Y�L�i��,m8R�'r�?�v��p?�(e� *qBiu�vb�o`����M8R^�~Z��;�z��HC��\����q�+Ak<cu�Z�i��
�F��ɠ��78�e�1�~e#z��h��>�M��TN&�ݸZ]���(��ǸG����0f�p�)�U�@�PBJC�� ����Bx��e%�۷����܊0"8�O��@έ�G���;��T+D"4~r�eS��8�0:�70�y{�~�.�h�M�2L��#;PԦFLl0�O�ª$
�Ϥ��M?#��r[����6xzt�RT6i�؂�hU��rϮrK.�Qch#�֎�?��\����#�م�Fڰ}�>�T����#,¶�&J�Xkr TlB��
��p�S�{��{�CB"�`7h��z{*�˳�:����xh�X,��g�
�9}��X\p�GL��/�2������棰��B]�7TB��ɨC��1�s�܉�=k�Qт1��Bk��dq�bT*?�y6�ڬR�`�|}ʊq~j��]����chC"�%��|���a�=Oa�P�����8ab�Z�%*�Yv�KQX��9�+�q���R:���\�s�u;�Z��>.�#����MK�EM���I�D)
ŝW���X��r�B�a�0q�c���@��1�$�$R6��c<�an_!G�N�^{6�U�_ܾ`!�+�`�O\8ʷ!G�AG�DD�ڈ�)hjӣ��xꏳ` ��D!�B��(�9-��N�bn��GiG@�=M�V�����EKY#��šG�_4ul�uj]����R+a��A�jHyM(�ӂ[�
�+�Ua���H��(R5��z���X0���؇����H)g��ZTL�,�������D
}*�ь��z�@}c1�D>di��h�����Vd؅��P,�s��1�,���=�у����G��e�K4�^��YSS���ρ9�X�z�c�0���3F�`�2����7�VL���_�}�Cm�x�/�_�
K�l��x �L	��_�_Q���2�c����O[��_.�,���hmk�U���S!��cܰ!�[j2Z`�9A�m6����8'!�ӂ_|����58	~*r�Au�	A�B��a=�:>$�0��d�O�N�4q�B0c�����ӏ(!�kʰQhؽ?lݏ��R6@�Rvʲ��~uE��3�+k5{xy;w��Fs�nœ@9v�X����0�V�%��������ĆO�p���rX
��7�^o��վ&]t&Gz��V�����`@��s�դ#�ݞt��3I���O �g"�C��#��ªb�HNsJ��?~(�`inkC��=�x�����}��s��و�V��^	��Z��5c��鰛sQ�䏤�8���HT@��E�NrmZ�Z����1V��%�jdz�����)�G��)�5�H�@�Q�Y�
���qW�m0X�$!�'�*��m�%�"b"��13�'Q�M�Vc��*8���K���@ξ5�a�nD�0,;�
�7��Д�q�KIG� %����C������a�Ν�5��S���{a�K�Za�}��O߂�xB|2,_�ʥ�y�d���BkA�Yl-�X�qI��"P懡iC�H�3���(���&�r-R	�g����ق�S1sb,�}��M�MG���,/C�,Z���k׮�r���]l��+q�aaa�&''�����T!a���{�π�H
��NgǨ��+$�~�n��BIyԡ���F1�!A!B`p��r�Mzh�8vdڄ5z"�c�Pw���d̘4��#�c԰aV#<����GpP(Bb�!�SB��P51�9�ǎDJ�����0K0zXL$��u+$w���zv���B�x
i������"��ԘH�돔!I��^���
�=���
Tt<�4��L�<&
i�SP�����W��?��.��ݭ.͇<n�Gk:�o���b�#%������r4WVA+Ǥ=:��U�F�0CF��:E������x�aWA+
F��Y;�R'@��Q9���|U���y�uW���m
キ�8�޳m�t�(�ƒeCy���c����h�]tѝ6{��$N�$��x�mK�dm�W�EqҴ$m�ꤷ����w���'�%�ba��|B���4n�'�y�j����.Ao��̠�eKǡ�Z�m�#-w%)�������F�2N��xz;+��N�t<C�4��Ξ'�}�x.[��co`K,a�������G�
��3�^�	kL	���k@�;����2`������ELKN"Ood�SOqF���Y�08�8�&Ξ����L/)D&��Ĝ|TN#ڤ<��������O(b�,�[3>=��H�����|�ed�����t�,�#��L�	ް�����RI<,�cZ�x�gg���.��Ŕ�̊'"^�"��K�)��N
�����قCX�9yy�g$OFbq�I�g��y����AJg,f��)d�d	+����,�VJ�Ҕ�(T�k�}W^^.to��՜�+)�g҅�@<���F�`�����}����;L��ä�,W���\����rU�Υ�E:���VamH�H���Pk)�tP�W
/�\H��_�V��XW��ـ�ot�+�d��D���9��|��߰�sk�R��.�bĵz|֧����^)���K�6���kUqޡ=��yG��Ϲ����!��r�A�Q	P��^�RCR����	����[��HνP����b�7Uª�`�z��p����Uɔ�J-��-|W��U�!�]���ԟGZ��Bÿ/V�n�GƐ(��1V���(�7MV���+U��A��6����;o.Y��~m2��@\�b��e~�qU��]F2����JR��y���6z)7Mz�`���g�t��]\n�.�a�p�ҵ^
<�\��]<�FܹTҢ%+I�G
.]<,���RAQ3��o��Z��0@ʧ4�(	�� ����!l�a�x�һ���z<�T��t�Q���ñ�(�bC@3&	�B�4��].7�U+ԯaH
m}>���,�g�w(�+��N�-���X|�^�3\�!LaP�������lᠵ�s "��b`��@��=�[Y,&-�w}��k�
�"�r]���pt���>�t]��� �dHe�$��x>r
���,L&�y-4��$/�:űz��uL��F�[x_�_=.z�pz�|��ڪ+�i��a� v�١4 U\����8����G���W�q����ƶ�qae��5l>V?�9�&��@�A6o^����%���۷���_*�����|�%�b���.�`
h��t]��3`
^��a��K冤Pv��T�:���X�FDn���Q�r�<�YKV����ˁq�z_w�$��f<n�8��2�.�0��'�c+[���v��j���c�O���ʚ�2|�x��w��8[�v�l�%������s�"p5��,c^C���<��za����u� �j�Z硭;�n�����c]Iӡ�d�-���š���k�.*��P�Bn@�U0�v�
�Q�oejB?e���9���#�M�D��}4��Ι@l�^xq/�y�����]��&��7�0$��U��3s�G��k��R������CO|\̘��G�6)��lp��ঁ�G���z\iq�tu�r�����!�Z��ȼi�:�G���MdN��C�[�Ύ����ͥ(v�c�N�?�d�eDk�|�2�4�z���-&Wca��8�f�)������NJ��F�6V`��
����,���Eʴ4� 6'���dN�ɶ��X��f�����b՛��6�10�[Oaߚ�h�f���c�>��a�};_~�洛I�1���q����ٟ���R�Xv�YS&sr��UUc��E�
�S�R�Nh���������t���h����*ʛ���K�1.+���>��YC�&����H=�f�:Z�utSW�˲�q
��������u���I��n�ܼGc%�,>}�ǘ���)��َ��fn��*g�
�q��KP	���TBV�t;��J!:�0ZFh���P`
�Ե��҅�M�Z���{��|fQiX�h.�>��i45��+Ơ���ǫ�q;����jZ�m����tM
��VLʤ��Q�z��Vj"�P�6�{IM�BqN"C1L-��D� ���o@rS�U��W���!�^�@g��&z;z��lȼʑb���^1&\�W`�bͺװ%���n����4
:ĶN��fL]���8.16��	,�8����<�-f�]C�<���AtR��0?�A�*�6�+9�bQ*5�:�����D!wۨ=݂�2�����砙��z̃<n��ϋ^�������V<
��PU]E�ńL%�.}��sY����f�Py�r�*��j�n�%��;8Hsm��G'���Jݡ#t��Gi��vc�߾Y�@;zp���f׎#��دV�`1�T��6�x��.LP�u��F�|&�%�ej��bF��M�X4*��ˆK����)$�[xc�)�M/��T��)@d�B�A) ��+�$��p
6�m�z�
��!G���AdT��Ĥ��NZ����K��|�Hښ�0ۉ��ǭws��=�ڽt��1a�"f��y���&@C%�A�C���y��G�ꣶ��B���
���W���n����o���#��swPu�4}}z��wPU}�C�>4t�Wt��%:)�����(�.
�� S�b�ޣħem`Ҵ�x:��s���de��$��L��;�*2�Y����s�L#�J(��F�Ԓ���"ʞ2�ή_���X�"��Ԝ¡�fR�D�UZ[��0}�H}+����U�ѹ���Ј�w���y��{ybg5]m'ع���q����BO�I���cc1h��7��_�3��Le�'`wW��WO�^wS�S�K��S��W�G�⾵����$�y|�c��!..A�(�ŧT�'*F/�����d_^�\�ɤ10m��2��jo":��Tpjm�1�(�1D%�	OV�]�Aj�'��'�&��(5:},�bl$&'P�a-%i$�i9-���i2'ͧ ;���d3�(�A��Nu}#9�397��'����d��3��C�]Þ�NV~�6䃭�nbʬ9Lȋ�Tm+��٤�'������JEcy��Y2o.��:*�;�<qE�)(?@`
Wtx���\��
]�W�lC#���	�*�����I�>H�1���\}G����?}�;����6�
Z���X��5z_����rR��Щ��7	���L�5�ݟ8�P=f��)����	~}�#�<� ��:��s�0��ڍ<6��X��.��t?2�� ��%�z|��EO[�(��z���22RP��ؿO��YѾ< ��LKg/��t�}�
��?B��ʧo'F�:�0��A��CJF:����V?Hk[?	i��T
u�im�B�JJ�_����h���I\�Yvt�<� 93�HU�n�sp�IMO�I��v�43��&[n�}�����s|��P�=��frrs}ɶ�����S����[WڭJXBQ	y�ş�c�_a@W’�Z�q���K�W��C�@g��f����H@<�p!!si�@&�t�s׵oz���ᱟ|��������Wpr��<��a��K?�i�4�Z�3o�I�Iˬ����w��̾���fnχMk�s��x�ߗqt�[�PYFʟ{��{�����x�`����>Ĥ�^���/1��_枉:6��6s��?�7_�-g��9-���<��L�]q��Wx�ٵ�*����r׬ڪ�b3La����~��qK1z�}�Y��O? ���XUIߡ��h�|����k{�F~����yI����|����,�oO<��f�g���~'�CU��O��������_���Ӽ���9PqO�J����S%䚽<�싔��)\x3���H�@��'��xN��>���q��*w������d��o���&�a�3T��y��I�C_c��_��`O�i9���H<�D��:o�/0,��J�[=y�=x�a�Y� ��岒B[��.��zzzF+7�F۽�;�G_�>�M�J�7~!���ɻ�N����~���cT>ͯ�|�/>�7�Z�x�x�6�7vr㷞dqV���܄��",������ý��$��Wy4m�藸�-��뿸�H���~�&�,���O�����Û1�b���!S]^�бcT���O�F�Mt��_�LƗ��;s0I�Yi�>�5�&�q'�{���~��=��Żx��;���?�����Οr�A�{���i&��%~U*����z2�'�v���k�Wy�?ga4A?�Ꮹ�������Z�R_>y�}�G|6^��}<��b~��I�ṗIY�#�Y��?��K���i�*o'��f
���P$,�A�K*AN��r�ȫ����oR&��O���5��ŊAz���FiX��_���o5/�w��<��!z��$�_`�EX,�)J��I�$�J���HY����1�(tr����Zǔ��XT�A�3��0��ܓC�_c�/��Ma%��4Iy7@�~ףr���>j*����x��N�\�gT6�$���;V�$)�t�n��������(k����i�g���eN4:-�"�*����z.Ks��C
{p|�7��x���J�'�װQ�7ڇ�?�	3���=���[���:�Y�8��;������r�l^�g����[��7 �L4t��tC
����&*�q�U���f�m%{�ס�'��v�[K��]�a�%{�m�3�S��obbG�H9�y�o��P���	��~��G|��g(^�R�H����������P
XKRruh��0�)JazG�]@h2���I����@*�m���tB�(=��Kr#��X����R��M�Bb
^\C>G�|��g�0q?�d�{x�U���`�6���(������	`RYt�O��������a���
�
�W*��7�����4K?���v+o>�=��U<�췉��kU.U�p���'�z����ų<W`Gh8�H)��1
��*���D��
�r��0D�J.֙�5��G�~՟d�r������V��ڽ��τU������vn��������G����韼�U�~�C<A%�Q��j�ݍB<L�Z��SM|�Ƴ��C��l�W}��<���L�."����W�p����66�}�~���k�!Tt��}�uY��Գy��!n���N�`P��]�R
��~'k�R�hok7{��Qs�0���G?c���6+Ͽ��)���}�ҝ8�汷�9yl�O������ںy���>y��ǫ}�6Zo��e/�[�Z�(k��,�K�p$EU�m���H��WҼ�16����`�ݒ�-fz|-e���r�����w���C+
x�ؾ~��;(�6�׃Y
�0�]�^�}&,#�+6�	㐿�N�x��%S�i&<���f&��ē{im8ʓ�԰l�|1S��|����;y��ү�Ͳ%���©��l�c��A�0�(�`o�1L���o�T%o��i*NUQ~�8����Oh�l?̉�;8��IG��,��4�Gʨ:���Lz>�5U�{k/F'�%nC�̻���(;}f��k⅖!�Tjj�dr��o�����~��/������i�:��=��堲S�؁�v��yL�lZ��~[X��,]�!�Rɕc{w�l���D{�3]Fzg/[w���������������F�#gHJL��h(���|���Q��ٰ�IYi�4?��)��1dS��˾
�8P�LNA&掓�ݻ��#9�����h�)g��p�w��̓e�(�a���]��P~�({v� 6k�a���)M#=�C]}Sf/熒D���w�m'o�l�R3�aZu�^�ue(2��Q�A��J��YH�����!�{�!��I�uj
�Ul��k&s��˙�sx�CMÌ�1���&O��ȶ��5����dj~�Y�
�[���2Ξc�z�	���x�ߦXXFS7IE�)HP`6��-�K�^�~�!"��q%��S��-��F�pf���9��O/�i�3<��%w}�/�6�ǘŋ�h��S/m�YĜY�L��m�N���zu�,�?�YEE{�q�T��:<�䓝�͔y���g�]�Y���ɅD'0��
O=ɖ�>r��g��i$��?��2}'Ng|n6�1Y�*�y���DN�MIN,qo��&���aݪ
������a)�Zvo�@}�����O�Dm���4L�5�ٰ��!:a�u��O'���D'�P�{�/$;=��c��9e�J��)}�͇v`��r�lvoZ�W�Y0�R砦��WɠI�qG�v���M�N���̞m�찐�����QQ����U{���ⷨ�&R��b��X�:�(�M��QT���]�4
c�@G�)dz
G�s��BL�����8KJ�y�Ӗ�!��]�!��R�֟�S1�Bh�S�܊��f����[�ٲi�}�d��X�IL�Zb�, �����md譜l�}�����{���RQ��Y�l)�#;��vkqna	��v����&�3H��;YP�.@�9���9Z�3�/�r������o��$6��S�Qs�Ls��$�]�v8��q8�8]�j
.����Zb��
妘�^z�����}��]�J�"�0O���d�TT�5���G���h|�_���w�N�o/�g�ʕ�U�M\�}K�F/�̦W�L�{�pd�_8٬�1���e�
�妺�N�2��>u1��^�����p��蠟�7.[��O��KYY;7.���}oR�n���K�>9���e>�9V�ɍw��l��-���7^"u�<�z�Y�}�S�_���I���G?�m��G���pHx�}w�؉ƦF"��s�-+�_Z���KH����!���	�
-V-�2y�8�ʈJ�r�+���D�"�8a1^�8Nj^	�!4"�(.)!%5
��NkG+�%�Y8������h�g�a\^C�A����?	u�7�{OsIW�b��5--<b.+w��$w��GK�� � �`��l&&6�
�“���m�N�e�q�)�q��ɏ��a;�5���W�>��Ρ�����i�z!#;���ؤ"J'+�e�2R����Aq[9��%!1�ҁ���u�l��e|�ϒ+��ێ���ڷ��y���
KL���ʋs�C�!^�d�R#�om�p�m�{��K&�C
�q�:gR2N�L!�����P���BJsS�ho"m�|>~�]d�F��'J��|���n�$)��v
�S�LZ�G�P�Ý��T�@l|2II1�A�V:��Ϭ�N�EAb����D:�v��P
6s=f'�i��FӾ'e�mD�&�h��4my����Ɍ�璩W��zp�"Ծ���K?�"
9�^�Ⱥ�
�$��v~����s9�!��<����k�6�\�An�����nS�Nq��3��L�{#��:���_(��'#"��v^ްMa
����Ժ$rs�H�
s|����ˁCU�sG�&Q��-���+$O���Kfa>�[�m%J��+"',���F�:p���/
����F	���䒧q����0[�IL-D�p��Gڸ�Ώ3�Z�("}	�2"��T
�����7_�/^Ot��B�
+o���&V�u� ����}v�]� �����*R�h�q��v��X�T��!-���%Na���
��~j[����C�q��2�ۆ;"N�aZ;ͤ�g!(
t�aS�6hQ)et61 U!H��6,UaN@R�Q�}ڨ����݅Vp��;7�MJ�,'���p�,()i6Q�mDj�c��
��I�&��.�l�_�7-��Y���7}�	�7��r���q+�HK�i����>R���h�Rl:�5�qj�)��[�c=F���ZD��k��袸0w�>��PEĒ*�5DCs7	�Djd؍��Xdd���Pu�R�R��v����R�ci�a��u���%I&���F�:-gN�H ?3�}Ga�]��	�l�d�@d�$L$�	����c�/\�6+R�\��B��t}��D�I� I��C�"��K����9���)��������I#ޠz�|t)ۇ��A�C徻V�RJ��K��B�Ȼ�m��օ�0�Ņd-�L��h,�����L ]+�/La��A�Z�p���&5Wp�4�@nRh�}���P��L��R��`P��*���0�A)Lc�Tp��`KIr��e�������q���с;�G(]LQ
S� t������ʶs�y��(�)��=��>ZNc�qL 
�XվG�o2�,�P0KC~_�t���3
��u�<7��gh�����c<��&��t0t��lm���x���*�+0���?`��Y[K�o>k�����G0�߻��T�H]S7��u�w����j9RQ��a
�҅���0/��Mʎt��>qp�[��L�߷�~!��Nv�܋�X��NS�)��%񀱧��!�C&*��o��V����5BXz�m��t}�?��ͱ�i�2���Z�Ή��vC��I�3[��C��h��=<�����]��M��}�
${�pb�*�B�,�_}����w��������`0
'�<�̋����g6����d9۶���a.�G��G9Y�W�^�ͣ���U���>4up�HM�8��J��u�cOp�x=UeGhnb�����2<�q.��8�/
#JG��r�O�_M��
����uX��%GĶmRI��F~���ʾJ�bIݠ�z{�9\X��9u�F�#,��t�d�r��W�"VJr����(?S���gI��yX;[�~x�1@v�R4�����w?�P�ƀ����{+p�\ti���%Qeg�o0����=��]e�#�S@�@5�4z*[Y2�X\��<�̕#�c���(Of��	Dʤ�r���p���{���isɌ֠�]�~PDn�T�́ͭV�N�ɘ�`QN���:Rf� ?:�{��;�֘�Q����!zb��$$�w>k�-��WMd�4���oۍ-<X�.o23
�8��~n�Z��ssI4��������g��:rCz)�K�}�Ԇx�
ڻ+ih�3cF1��G�p��A\I�Y��c|�]X �5���(HI��#�)��Il\J��B������ ���Cg�/�IA��R�+.Xi	��(��)�S��ן���:������&���mf�k���n���'��9z����P����u�.��匑�3�9.�T�A'x«E����rb��Z���=7
�i��W_$>~"eǫ��A����Va�ލ�w��f�E	�&�\������M|tI:�&l���z��IK�ٱ���/w��ó	a��-%�N����ܺp&v{;{�aާ`a���;ʄl��Mr�)"��a�d
�]�L���I��',��I3��܁jXF����p�;��>���#�t{(ʉF�ª���?J�JASk���^~����-kY�~-�������
���>�_�T���Gx�'��-�;��Ƨ7cR�td5߹�{�qp/�����~��o�b��G���s<:.��z��R��i~�ȓ�~c�z�pş�u�V��Sϱa�6��Ev�B��ȋ�������6��RSvTX�-l[�"����N!����Mo�a˦���?�F�;��ı��Y�z�=�~��^�N�N^x�y��5����ɍ�J���?}�������V?���[�o�l����Byw7n�����v�����;�䍵;���<��d��ys��1�H�_�ˁV��*��]*Dkg�ͷ3�8���6z�ڰ�ԨmN*�2m�b>r�m��iN���e+�3�i�3	�E+,�a�
���7���0Q�7LJR-��|��v�0ָ8>��{�t��w��LX����Mt�4�\D�NAwW7-��hb���U��1�[X4����:�P��Cf��hf/�#�0ܴ L�=(���C���9|<�L�(���9�ca����Z���s�~��hsR�J�����G��XB"J�odr~9��`�/�����Mf��eL�1�@76��*W���t��Ţ�5RS��S|������G�`I�s��o$���2�e=��t������D�觧���O~��<�MG6pJ{?��̕��]5��b�)�D�[�������⿿�Uƻ��[S�M!�����'s�x��Сc�=��?��~R�:��q>�r~���YV{��I���R��S_��y�/O3���߶ێ.����;�������nvs��_��Y��?������	�h fPr��˒/~��-G����ِ��S^f}�[���o��w�G_�N�N���+/�W�V��`
C6q)��=n0)�U��j��*9����l�5Z��^މ�#�AI��x�n�bETj�66�-�%W���1
�Rb�Ύ:��އJObB��4Z�B9[�f��xRܽl�x���b�ZP^1"ܸ��0GN�t�0Y�)��qͽT�nE�ճw�f�-�"#��*eR�m��j
K����e��B�}'��IL7�ؤ	�[�|��L�#���JP�h�r������`�kX1
lӗ�B=�=����n�K|��V��X�!A�!������$�F_��ŋ��rq:�z��Kg����U��n�Q�Z,	��N���+]���A[�/#zئ��hY��hH�v+�n���
G�{I!�lݕ�i2w�Ffzt&Y��T��ջ����Ko9��`҂;y�r���b�ʏ��ĵ�x�P<�L�w�Vl�'���hټ��_e�厣h\����ay�^*N�h�t�
��.dZ�s���>C�����8�1�2)L�9��Z��Ȍ�D��4
�hœ��֓�J^�e�YQ����\�Q�{#Zm2e[��D�$n^����Xb�c��0�(����`�#62���.'%�@���g��������$�(��.���]
-�)4��q�|_�u���,�ALv'�-$/%C�.�n=�㊄���&2�(�x�fȉ6�9z�]z	Eb��{44��`�ʣ�̼�����uĉ�cb�4a���h�J���t,�y�9��r���i�/��u��HL٣���e��^A�H����L|/f.���D%73}�rf��E�r���3�av����	L����£;���f�n��>*�*�v�.������L��sAƋ���YMZ����@�K짐��[*��֣�ɻ�k�g��f--ѱn����X"�MXD�*~�����~;?BX���ߘGr����o���~u8�W��Xs�<�T���^+F�Ⱦ�z�T�J�ūU��,56̖�rt��$�ġ��5�l�2��eF.��G�v�N��$lr��� ^i�q�'� ���// ](�VZ7i|!z�eQ1�1�(�:���D�6S��
��b���^Oa���Gf�>�O��ѳ�9�:��*
f�h-��œ��H�:gq��]iq�������Z4�ԑ��o=�BR���f
'N
K�0��.'�J�$
f�.���$�/P2& lƪ~9-&�\MLB4����g�&�7�N���3�}$
�l2b��l����"���zM��Z(b����H8S��Ak����2h��߁��e�K��/{��'�����~]�}Fr�fs|�y��U���:*[�8;�x��{o��q�Je��K ����m;-A�$4����b��'N㦲�����Ff�iW��c�v���O��_h˺��znXq��o�⺭���c����G����#
q�3'	N>��O�v�~Z[�h����F��ɣDž�߈}���M��)ݧxp��Q�ޭ��@(PI5�|B><�W.c��Ť�ǜ��p�I���IQ��~�� ]�M��P
.�铟��#%͚�f��\b�JպSǗ0C�ú5ۉ������"7)�������� ��j�e�N$9^�Vh���y��E��P8>�L�Z�̄q�$j�uD�.�Df�~�%�➲3�S���8��*����gof�,b����Yә��׭����Y3HJ��\{��:H����;�K
��(Ȉb��=DMg\�nD��%V;�K����#�����/��ŋǓ���2.�I�Rhؿ�f�������:8$3�HŖ�_�-~������er�L���E�EN&]_��Mg�z�}ܵh*��D�Uh�ә4!
��0�&�O$E+(I�0��D�z(�6��(���Wc���œx�`�G�I���Œ
t8����|�Ŷ�0&z����tUd}�����B۝)�QZ=:p��Y��>!\�5в"X��)L��%�S�b�T�J���:I�IK;��J��(�.�օ�t��z'����N�Y���FҼH��]lں��.�g��:�$!ȼ
pQ���]�.`a�l�sr����.z.T��Emu
F�0����7c��b=tvtb�]���s��/�a��!�V����tu���M��:�c
���«P�Zq��(�P����߭�A�γyp�?ȍ���Z��K�Xo���e��p�����V�,�1�*vwH�.
�B�Ɨ�0bA�R[�i�ZG--�Մ���}߿�y^ٲ��_g��Tל�e���w������t��,&�����j?�_z	ˤDl�yd����l��@�ْN����ؼR2��������L�`����q��b,��%�N��=�Pv`�Zhn���Lk��k(\�Z��>[�a����|2
�s�z
���H�6�e��w�c�k����L�O`�`p����-AU[�__���`06q�T�̤�dY�
�n�@�JK��V-w߾�p;��&o�4��0��鲁�K�+m-��
,����>��TC��lX��;��߽���qh��~�(���Dg~T
Su`���q�GnF�A����V�֝�LZp#ӤJ�!v��FU�Q�\%	�0r��vZ�:fO+��]X5Y�}�\:k�s�x=�����;��e�ŧ���N}MIi�;t��ͬ%+ؽ�
�#)�>�8� ��|��A�+Gh��Y���s��I�X���6w�.�*�<
�.�\��Ul����(7���%l)]�ו�����3T�7 �%i=���&��z����=_�2�s
���c��4q���Ո�����]�63���>D�����z�~�e凩k�@À����^�N�S4n)Q*���eW�T���xC]|a
Ӆh�J �=8H{�
�{���NzM}tZ�%7v����ɷq�,�ܸ�ܹ�0���̜=�%�a��sr����_�yi	T
���R\JJS��l����Nu$�o�?@a��M�g��Jz;��s�
��CzJ6C����h3����e��gLcr���v�/;Z:iml@��b�P�hg������X'��=L�H���y7"S
�?WA�,���Ŭ۸�v��(��=��3��De�s�g��0 �A�j'i8?��i�2`q+��1 1���hin�<hFKD\2s�.aJn"N��ֺ3x#∋R��~�.�Md,y9�41t��&����^T�H"#��bqyEL�_��u6i6��R���N
Z���(�[w'u
�XJ%��&�:�s;��&z-���6����X�R�u;�
��F}c+�a+jM�c��i5^M4z�߽'����&�"��("tQO���Knb��Y�
��֒��NjFK.E���@D��^GU5�����b�:4R)�aJ��a�9��{�0��H�����vs���t��xCM��b���8�򧦯���Ak�� tuSZa	��Vo���3D�[ķ>�Qv7��ͣl�j�{ᶻ?G�Œ��:�Y��8��1}���1pҸk�
�wu�TX|C��G��̦0+������Y!�{zQ(��}a�l�S`�KL'O�GK���i�� ��:�#+�vVP^ebŢy��Kt~1�i1�Df2u�Ra9e�s�^�O�%;/����T�,��˛3�����#a�TV.���IZP+ܴ��a�Og��[Y�x)=]���&��=��xu-
L�]Jzf*Ii��WϸY��l�t[ܨ�(,(��$�$�RN��ϥw���R��U�r�3&L ҐBRr:��^F�0N���tK�Q�u>�ZB¯h8���8P+F���{N�K��\�-�lԞf��^>�����ʢI��v^�iJ�,a�)�;�q�!�khlB�͒��E�����U
S���RZ
�a�R�[��iq���F�hߥ�j,^�ǼR���eE���@�GJ0��΂�}؆F�)Up��r���5b��;�v��pu_�<��E��<.�򲿏pH��G���2�h���2�!��`�Ăqܗ_�*$u]3�)�&�"�h4Ԙ�V�����XLz��n�w��ɔ��*4�'� �y\u�@QG�7A�xg�ͥ�u.7 �)JW�%m�=jT+�,0��Q�.|.�>a^
S��t�)LW߅y�ڢ���5I��pA�Y�
S���0�-�1i�����ܸd��i�>B�Q΂Y���
�71�τ����łV�`�tŭ�@�Mh�A�箈U*{��=]w�=�0(��mF��܍'a<7Lϣ��(g�ɛFI������~Μ8F�GFj���.�/"F��%ơ�� ;���؎mL_(���ġ���N��E�QJ���_?�'��ǿ��h�����) ����A��>�坺#�U|,a}�����%�R�F���7_!9�N�ـ.���][ ���Kձ����':����9乚ٱ_ǝ�f34�E�����J�&+3Uj��c�#ֲ�x=j���3i��j`���ȉ-$Ơ�e�\��uE����%���L!C��Z�_���b�X۽PKa
ژ�!@c��|X@�b�%����.�ޕ׻�9|���d�R+��������|S�}$Z�L'9>��������aAK5
Q��JZ��h4����*kQ�Ә3=���&NGmS3�1
�ϟINr���1�Ip�嶠l�a��~���z<Rvy���
�x�
9���̸w���׌�L������KR��X�/�.Ƕס��ǼX��P]R��5D��(���{K�<�MU�����c#��b�P�E��P��Dh�.�9:��$�9�h��1���?�s��������w-g�{bHM���JZ[���Agu9�+�I�q�;��+��l��:�`H�[I���7�pˏ?�6Z{�Ѕ�s���F��n3Ve�T>䠤��u��s	��	�B�;��Zd�`M}�@Iƒ�P�،"6��=��"�*	���K�����ħ<�<LJR��^A�M��TD�'�Ԁ61��h�O�N�-eY����JKJj9�(�H!+�~�r���,�����V�v��Ȥ(��p�ꋑ!1��N��g��s��
X�Pޛ�FP��=�B��^.^����x�ҍ�ư�\#�
ί��@�{+)t	�_�E�����=�����?՚�L���:��|�*b�!���bG�e\J61I�.�9E�RBE�%)C��4f��+5���F\NW�.����1w��Za(�J���&=`I��UE$�
�
��	&ƀ� Ki,P�YH� p
m�~=XJ��g����B��t߽�. ,��k���u���ޅ1}My8�A)`iKVR�Bx��%/uN)J��E�� 
���
�кw�p�[Jޠ���'��e#���%�S�ޣEw!�.�4��}���.�/8+"L��&T�P�\��$):�]�R��`0
(Da��e���;
��v�|zB��{��cXG�VQ0 �G�I4ֽ����ҿLc�%�t:���S��zӵ+��ahp�T�^��a��G-%��*�a@��R�,���ࡖR�˵n)�S��E�K3�R�'���9��	\��1B~��*i��!��VR��+P
�;�_%�(�wP
XQc8�S�D��5(�Hc��P���u���>t��_p��;$��`���>NJ
[Ja����Pt�/1z$�N�><<|���`^���1-�W#)w@5�@k.�B�hע���B
�{��T���)J���
D<\,��T�c-����?�I
ywb��{}�(2�m��F�kȂ��@�F����B
]���f���}����L�Q)��ߥF޽�èLEFFJ0'&&�gc���e��*9\7�
<�U�/z?������E@��h�*P�ba�W�Z�r�7��@I�{%.���p�,9p�(�c>�9�r�]�\��n+�3K�=7��Mhl�
P
k�0�Z
�Y�f�� �Y���^
G�]��el�K�'�מ{�9���K2��'��R�R�>�Nۉ���z��~�1�)�� N��' �"��v��CDv$2���K����4J�T&�X��o;ǎ$2����,�a���#�F�:)
S�w�
�]܋�0�t�z�B�ⰻ�)TD�P�����ۥ�z
�	�(eN,}�h�"Ѩ��CX�Ao��P�:Z�N��!,7���n��(
2�]b�&�K&��͍B/���@!�`7Z�
9}���H�8���^+r��n�c�6�RG`���e4c�����Y�
�g�y�@)!	x�.ʣ�F\x�e��6���/�O��P�Z�҇�^�(�|�����?��w������-v��5�.i��K������yp��DEE��	M�� ��b��c�ݕu�	
Z������)�2Dә>��,Xq�
'(Ŋ�Z�FlE�Ǒ��a�����:�&
Kf�U���O�*:��,�E^I^S/Uo�����.��=5
`Q�2�@E�N�[Fs���Zh�v��I7��P����j�;p��hKrH�Ӣ�Ő�����MսX-Jb�3e~&Nq{+hl6Pr[)�-U��y�\9��Nj�:��&��i:� ލ���֔R�)��P����l +�����*�El?��wgvW1l&:%�?�3�]���U��R����9%��A�+g$@��A�D�X�tŅ��e��"ӽXO��~�F��d<�x�|ru;��m�*���R��ӽ���{W�����Q�E��JboX̊�iY{��y,OװyU/9�XB�P;_�f��29����!�|e1�c�tks��dL�߆v�Ryh9x�&��o�[m�fLeъlq�#�RY��t��y���Bn��8�VЧ-���ᧇ(�e6��a�ʻ���R;vSu���70�����vaYEH�5D��
��od�k/#)I�h4�x�g	%��B`��x�R����0��K��W�9�E�����y/��|�\y���2y���ћ�~֫����粓`F�R[Zd#5^�ydRh�{��{��������b�l��[n�'�z�B��|@����p�)���?WuΣ<�G@���@I��&n��vl+�	W*PZ�x��b���x\f��%�QLVz����=X�g��[��\�2koĐ�VW:����;X��M(o��_.�`��4��`ҍ�ȷx��PҶ��9��NWp|�	Kb�d�`t[ql;ΎGv`I�'2R�b�%ޙ���v��ϛ����Ľ$�e��5���C���Z��9D>w?S���x��I+��,��P�N�Dq�U-�xP�]�m*B�TC�I���>}��3�$%����>P��҃d����_�y���<��;U�:�0J��%�Z��O��p�^Ʈ\$��S"�O�_I������/(1ޔ�s�I,�]-�lV���Ӥj��.$�AIq@�]ܧs��4��'.čs	��=�j�������}�E2���J��,�f��%TЄ���?$4P�
�N�:C���S@b��/sp��%��_�N�TN�����R1Z�Eh�qĈ���	�Wu.����3�h�%ْlٖG<�m<�
!��q	ؐ\�H���&!������E�0<O`�۲eɳ%[�,�y�����S�>�9:Cm}���U�k������v���Mu��覮����G�_=D9�T:������i���tYQ_�/�ŵ%��_��}=o�Q�-On���5qm4� ��Ȅ�ΩQ!2��b?���w���Ν:��b�5��p;9KkhÇP�K{i��z�Ug�i5ݴ����
�f��+�\��S�tw��W�Smm=���&�o}���7A���Ӹ�X����|��8/�?~���{�o�TP�Pˢ~��+.��<�A~�M!���Dn,A^M��~557�)������ �\쥤�P!�:�GP��8����Gٞ;�Ǡ�6FSL�e�v�QW�Ck�|Z��L�<��@�S?�r��/�h����w>�05]{%��*N�lj�^z:��_�����Ѿ�b&�(��Ou+���&���1�xb/�dt��C��t���:�|���=�/=@�=��tu%��x�s�MV
��DL�_W�2;ڨ��T畨�^E�W�������B�2:c�j*n~���Т�\H	5��>�AN:>��(��]xxv��Zh�ޝ
�k�p�y"�el��7�'_�5�0��%�ׁi"�N�tշǿ!�7u��E�_���O09z����R�Ԫ~j�V��:�)<�ğ�*�;o<`4��w��T�l1�5ũs_�
5-����\�Ȕߋ�^��@�%<VЕ���q�A17��g���K�������)�s���Rc�@�TjH���)��
m��θ�Fz��錋��O�m/�S�wk�_�qh�������MP������y5M7��齍�SjE�����=J������b��;�2�<F۞�P��O�[b������TR�t�Ϟ�姿����I�-��tm��S�-��7�
5B�'�8�6�����U��&��g�x�ֿ��t���zK���Nz��ר7�@G�Ҵz�G�/��
��U��>�>���
�3F�+J����2}�֦�U������P5N�M�A��ko��vO�gn��z槢v�?ż��:*q�k�o�nz���c
�;��4��;� 7�����Hkv%��&lpFR�
�J�,�,�@��T���u��J�<��N��t:���>�XԀz>┬MP�o��j�H+ݗ�ѻ"��c����zv��i1~J�n�g��fr԰���j���Gi񥧨�}�%�˜D�k�W��S������P�)����Ц�������]��R۷+��K9O������ZNu�"�z�Aj?�~$��_��ek��h5C����M+�/�������B,N�K��y�6�6A��(��wz��S_�o:x�J�S�}�Ԁ�ϡ�o����҂�J��.M�{��D=K�)����/���jА�_�ݏi��VP:�=��A��O҂d������s�O�Z*�����(�[;����b���j.<���}Z1�?=@t���c~�%���R*�;Z��]Sek�c��;�� �g~�x��L. a��L�G�1��5M��
L}��O%B���Ye+ʔ'S{�}�3~d�T�Q�yƔ�נ�ym��ct��Ik�]I�{�i��u�����s���S�r�S7���j^����Hсg�PzI#�
%N_Cu��8-\��C��Qj�JZ^[�W~��zbIZ��Khus
?N�߿K��:6&�D���Z���R۫��؋��A�O�<��c��kJ��@`�CG5ST`�lLQ�T�����E�W<J֧(U������W���p7@q��@���WR��P<�S�J}]���V=ZW� ]�̎�ԭ��$�H�exK���CIu>^.GG��G�:���4�Zi�}G���&��ǚ=x���q(�.1�C��jU�B����/Ϯ9J�$��쥃�w���+'�+XY�TfN�X���9�K������[A��^U�Q
���ؚ?�1;<�'S*��"8��y"&VN��.��&yN�9.]��73Z5F4jp�q�4�Y�_.ʔ�졎�ݴ��%T��O��"5��@���Ҫw\F
�#��m��ٿ�Z��C[��I�����9��Q,���5<Z�l�e����Z�o��x/%�\M�j�~l�j��,��ë��o�rMӐQ�Ի��Ԁ���R�{RfƗj�=n��|��tj)p�����B:E�i�_�n*I5��G�����`��VuoRM5�+�FҪ}�z_���j�ƶ0>d�lcH���٧W��1����e�ݡ��5�g�*�Q`e�O��UL?�%ըgb _Ҍ�&h���?ĭ��cO���n��<&M���L�%�s]����<�)�N0��)�wB׍S<���g��S_���_S���z���6���v-YSK��"3	~,�hǽ�ܼ�ֽ�"jt{�J���薗h�S{�Y��F7�����J%dP�����<�UU� w��_��w#<'`׻_{E�/��b��s��t#7���x�(ʥ!��]u�ڄ����cwܙA�㜨b����i��o�vD�
t�\��g‹�0�y��Õ[.������e
�$@5��v�)fCt��/��;�G�Q��r�҂�i��s�^��'(�XNW�ѕ��stTm��Ϡ�J�?FG_�G�{��'vБ�������Y�����d:���C�Q��=�A��-�wթ�CTx�Qq�"���i���=A6(dz�w�vz�g�Ѱ�|��|�q옉�5O���O¯H��_Q�
ʷ�	�j��I�E��X~�%�u؄�e�4����	��e��p��+ϙe.nv��91�4Wmļ�)�^�
�鹟���
t��e�c/1O�;L�lNmS��#�Hǩ�;@�{�iʣB_��qzf�/��S�)��wo�TC���<��|��M6����M�i#'�Q��/�{�нOP߁t�
�9���Ԙڧ���x�~�����C��/=K=�]�d�
��R�0Rc?+��aRO����"��xX&�+`E,��k�O<�  �pԞ)��;����;����̅M�K��랫�L-�:{X
̢�ܛs�Iw�� �\�\����0�S_,���)�.%�`)��m0�3S�?|�p͹j?AH������sj��(\0"�b��5�)j�~�r�v�Y�d�Ub��ҘP�d8�j&	c�f���:$��4\=7H�2�%U|_�:�����k�N�e�W�E
����
���G�j���;��(�t�3j�I�ha�������%67�,M������p}��3��P*͹:3s�)
��a�R�9�)��	���@�A�hyֳ�*�W��Jwp̭��<'���N*�-PϮvJ/����v���a<n�%�S�9I8��
�l �_���;�ـ�ݶ-�ҁ}�8���K�p���-F��`z!��<ؚ�m؋�X�e��N��#�X��
ʘ�IO"�a���A���M�A�Z�b�/1N�4T��ce?�����aJ�H�J'c�)�Q�yW�t���`B��j�0q*�9��wƂ�d��J3�u"�g�G�K2�I�zPa``L�K�&�cg5���J��	��V��b�mݕg��߼B{�|���ϙu*�@g->c9�}�'�
ǒ��M?��C��f�����Ϋ<���*���>����/�$�Ų��OY&k������N�V�b�p,�]�2�ҳ�Hi��P2���rr�S������ X���{��$�ϑ�̔���-�)Y[˃�\��;?`Ls��<SZ�a%������kF#�ᘐsp,�˘LF�潯�Յ�<54��C�9<@�ۚ)}]�	�%:���šp�o���tJ3ض�ʅҨ�{^1$���Ъ�ΣK~�JJ5���l�dl����=M/l݂���ĉ~�%M���H�P�ZS:�hy��l�x�"F(�ēWα�R'�I�5���G����!�E�U"�0,���]��e�G�x���8���F�N�X���ؔ??��T�������������<(mx������Ѡ����(
���w�P
��@�%ds�D�T<�#����d[a�6��`d��k��\�SEl�{�� �N�t���d�@6��-�����[��YB.����&�X�گ�'�:��ݥ��w{ZLXKQ�(�ݭ(�32-8ΐ��	ĆYS-����D9��;}.�,�cC&Q]��m�����)}f�}����T��4D�,?���97����W�j\�Q�=�+1$T
����I���'����������d@3	�g$,�$Ѿ]�i�cQ���Z,��p�y��ň���'�w��`i��� @
�"\l%��ʚ`�g\}�t���l$��T-��pn;_�5�e��1��q��q:��������y��_
@˕A�l&72��l��o"^���:�:�[�$iO��Vw)j���\xab<'�SfI,�Q-�Ͱ�昣2H�L�2�E�(���5)ڸ��3\�q�Vű���|���Q�0_E
2�I�\��I$\�r�1=oɟ�����ڪmn�xʔ~��Y<�vF��l,���$�E��Le0�F3.d�L0����&k
�$���=CO?�0���j���S�PTw��
(0*��:��=�aϑL���2�ME�'O���
w���
p@X-���C�qR'�����&���4mH��mzA�k9뇏	�ũ���fo供f`+�	�$!��Iocc#��$m�-�b�?)Uj�6),)̭%Z��N���EK��\��q�\֯��IVP}V�9Z�⏖%�s�38߉*��|5:�]�irb�x�?�ݾ�5rF��
w���Nr��/��|]�b:���v&j�O&(��R!�3Y8�����4f�I��%�KN�8hƃ�T'h��s�D^60<�L�[�g�/�Ç�B@Ɏ+�� ��]��7�-��-�ƒr�0�	�����%-ݖ�)��ང�|��o�L{<���lG2A6/�(���(�C���ؕB�vS�����o�Ă�CPt8�]��Li\���N��!�5A*�zoH�O%��,�kI
l���H6G����J,UC��z���S�qaĔfD�^<���h������(9�N3��3�[r���fU�(+q���n����R�L<~���r:nC�]g�@r��D���NQ�hw�s-cgQ�n��{���%�]W��l��?9�/;�,�~ٺoN�l���Ɠ�xK�psO�`�7���y
\�*Q�D�r򋨴]�l�tMC��e�2�GR�X2E�$�\�w�-�idNPh %�%K��޽{+Y�*<׍4)���
�,	�[��_?�3�⳴p���N��l_^�c&I��Q�P�S��N����c�mLE��!����
��t؉�D��u\&e�g����I�U����6�P"FT���2�쐽NX���^��(��T1��v镊��vi�ܺ���ԙ��g�1�̀61�Ҵ��0��4aL`K0D��-�L����=���R�Λ=,�C��
Z�*�쿿E�u��������lA�.�(�o�3`�8���fL}vU�8Ќ�},#8h�\_=�v5�!y����A��	rބ�Cp�l&�4��@'�5�&�X�'�9&����Ne�����ʁ��c}�b�=�o�|mу
*�-�?���fv�I�V;�PM*��f����0�$�~���d�����@��\���zʕ�8��eL��N��nR�����I�iT�Uq�QT.oh�3�+�1�R�t��|F_��(2X��Ef?̠���2�]�߇?�e"���S@a������u��r
��8���T�RC%��NA�t۱���;�D��E:�].O�]t܀�*\7��t���V�0O�ih�� &z2��N�p2�)��V��	L�f���f
}5��+�r�I����>f�qmvtˉD$
r�K���
Uk0E�4���dH{^{��F���+���8��L�+���f�C�������6E���,!Ą�HZ*^�94�?qg�P癒��Q�*1��3�~��I7^q`ƛ��)M0�օ����ȏ��cB�hJ_K�S0n��HAp
��p�@����~��QOO'�54���S�e3p�y�8j���*iC�6�J6P�ᘤ��x~'�%���4��@�cs�)�b����6�Zu3�������(�FO�f�oR�O���;n7�Ai�Ɩ�^��`���x%q�]yv���DQ�)�e��ğ�����ʹ�y1�yŜ:3���K~N����f�����ϐͻ�'h7�D+�t6t�[li�X��[�%���lvݙ��S�/n�99X��hp�n`%>.å���Fc�g��r<�,Ly�)�b�7�4(�V�^���6ha‡�p�DmrRS�� O�����ߢ�D#��EE�����K����]�ɋ�KZ��z_(s9?��c�|�`s�qKMճ�2�'x��t�kKRw�Y�H(�kX�@��{�V�����˖"P�b���Վ1��Uْ�bB-�K�\���KaJ��N 
���w�A�ޝ��|+%r%�ۺ��~�@z빃{�ē1h�9���&?S�	��	l�ݪ�?�u7�gȷiL�v��$�����?̽����6�|E1��`���eK(M0�T��CC|�n�����򆓌G�4=���fHXZ��o���RoK5,hf��f(�͒�C�X��	<�u�|O6���+�N���b'�b����73��q��S�?Mɩ~"���/��P mՀ��3�s�Q��ALi`��Y�u�4[3�Ws���I�(��%�+VT�z����H7���`���vww�w��Ez��i��ŜF����2OXtŹC
H�`#a�A�2E�M��`���'�a7@��Np'�Ba
�����)o�nM#�.�L��YƖ
Y-ޘ��tV2��	Lu��,cK�%AnǗX�/I:��U+�M���&j�r���_�2=�ô����.�m���L~8�H�	~�t%Aг��kʙbo6�ea����k.iS���6��o(�M�#����?�.��?�>M�	��s����r~F��4C'ɰ��L�
p[�{ɏ��֬YC{��	ͩfLɓ7\ʣ���{�PA�$`$†}�t��M�.��(��20a�=�$�'���lC�M��2Kq�*���%�.Ƕ�F8��c�%�1�T�u�	%2��*���?�&ߏk]�	5��&��;LuK`���4C��)Pr�C1$�R؄��f	SW�*� ��7��Q�"f���֮]��yV	�0f6����C��H>Wd
H�s��鎯�~��o҂E��w�}z ��b/E�6��p�ı�`�U���@��~~Ag�v�y�8Fҥ>,�����u�&�:㜧�
8~�L`�L'���}���;�,�ã'���N�ʢ�Hy�<8���<C*��Nv���S5p�]yE��Ai�0��F�ta`���q߅el�Y��{��5]��˹$�����R]S�����8�����_��JC?�Z��2������v��+A�0IwZ�@�R�$�*労b�M�5�)@�j=
��T{~Y3%/1�-tg���	W�d�z>R�%c����CG��̥�@i�2� P�"��1���	��׭[ǥ.��?��ꃌ)����}�rl��N���'~u-_u*%R)ޯO}��t
����r��_�O
ΐA�	q��R�I����F=e��|���'��J�i`i�S��0%(^�:�d3yvs:�W�PKmL���2��M��M4spJ��c��v��I�f���<bKa}�����f�b3&Yg���l��_�cD�����3�[� �HCz��ߣ��15.h�2~O7��x�SĊ�\Q��Pǘ3�a��#�\r����M�J�F�z������-�{�-�f�E��a��ɖ|�����{�w�C�����g(��G�WS"	�c�J��`���w0M��"�4C�xv�t��$�dL4��t�6vH�t3a���a��Ĉ�XI^E�hǐH`B��.��Z}�y�f�]��sB�&T�t���$[��[��1ʰpY�#hU,d��A�B�VѧR�\e�ii����x@׊xR����q&ų�2{�CJǦ8�ʼn��3���~
H�1&q��4���a0+���V�B����t���d�{�}�9	0���q��sĘ:�#t�S�>`Rҟ_��E�1��
Na�00��à�.���c��ʨ������"��D��Xl�u]Z��=8A_�8C<�Q̫6]3��s�����K'0ϓG��D}�55�=�ȯi颅D��S{[�����)��\&��
�a�%�	s
cLL�g�ʕ���JL<25iIc$��~<�|t�U�F���N�
��Sט�x�|v��I����d����a����-�H޶��>�:����i	di=�3[tu��ˤ�pmu� ��}wwJ3�-M0�$f$�d�űϒ%K�<Ȯ<J��l��j�ɰ�o�fF��Q0��@a����w��bFe�Jl�Nt�΄�TU������)���mR�M�CQ���9r�f�����~�f(�]7^5�
['�	�F�F�o[}e�y0�)���&����%������͎�.;ď���\�6��0EbzC�(J⶛-�y&L����;<����4���R?�4��D1�y�ƫL���G8�@Bz�).;4<p@;vL1�.^'1�0`B�"���4�v�"��9H�ZHdp�Ռ2��AD�yHa��
:��_Ԧ��?aR���<g!��8ˈ;���T�@i�Sp~���X"ȎW�&�-�|�rjhh�Ç�1X������F����7\�k&�P��.�#��w��@o�A�VX��5l�貋��%�ij����)r���	"��ԎJ�TJ�i$7�T-�$�Iq�6$_��;��ѣ<��1`�E�bM�R/�3�=��佝�6D"j�-^�x�\_�cŏ<����&YbNP�64-YN�����JMM(�g`���v�	k����싇��1�G
��1Zx���W��=o*V�C}2���Uޭ��6Ȏ�J���?d�e��͎0 �ŏl7�l�ќ�]�襗^�s�9�� 0�͛7s镋/���m�F�<����.�q���k��F��w]u�U��4�w�������#ݿ??�P�b[}~��_rͱ+���>��so�c�޽�^x�:��鬳΢_|����Ⱥ��V��W_}�|�Aн��o�3�d�Ǭ|�����W{��PD�4�]y�a��O�D[&�~�`I�C�:��8����V���G�IIJ��H���uO����-��3�Fae'�"s�l��ya� ;
J��C��O|���o~�z�!������˿��~����ٟ�?o��?�y�|�>������N_��+@���c�K1�����?��?��_�2z���o�vo~��u�{}�ӟ�諒���3>��w���_������t�e��}饗�o���-[F��ݴ~�z��׾F;v��A�S��Ԝ�SE5�r$Y"?��mX�����\��p.����6�VV]j2��b�-*�gcc#�z�lp�����Y��`��0�@K�Rn5	K�,a��r�U[DRd{D��;�� ��3�a纛-�4��|��H�_~9OCcz��y���ַ2x���m(��v�E�^z��@_��W*����?������w��-Z��k���^����O~�ڲe�����������g���.��fP`I`ohx�3�����R�g`s���'�s��}�c�x�>��3S#��˭���3�x�7#�'�h0@2���+�H�5��8��.)�1zň�?ny#�x+���K�5��h�h�l�an�j���*��	׊��{���{t��pKa;q�ـ4\i.�#�h���j���7�H��O��n2��ZZZ��s��ma葳�;���tp_e�{��G?��/
��/���lp�a� ���x_������M�A��/D@�E�g2��#�;����������xNۧ��Z5�Q�X�l(��4��!߇�&��c��?��^��(͂ e�'1�A�� pAd87Zض��AV� ɵ�q��f��B���:0(/�{jǏ���lcE�
]y����~�A��~��m&�|Wp��=��P�����=�������=���������
����׿Ό�.C��{�]u1<�x��}�Y�U�V1KBˆ�m.m��p�w$��w��]s��mģ*����E1�i��OFFq;nL�Z-%F?v,`Q�г��x� �R=�1�0b��H�/�>
7�h$�`p2�L~���ؠ^�� �56�k6��s���~:�c`��jKB,�O��O����5���[X��~�����W�����ψL��|�` k��=D�l����'�'��;`��bRB���}�����0�~�20�/��YX��@�=�_Ͽ�����R�d<㱘G3aZ,��w>#�g��y�D�v�$N���Fp�z�	�
sW�A�^5P����R0eK�qmpW�0�['(b@��Hh�jy�Z�]�|�|�� >Î{��

`�@
��[��$��0�
�����3S��������߱�
>Į��=����9�`;��܅M���;������n��!�_��_��	���N����ۧ�Փ���y�4��Ij��v=ن[F�btNHbd>�����>��S��UF� ���D��HՄh��T0*���M�^⾀�%6�XMa7���d�7ؒ4��a���n�&���X�mذ!������HS�R���/h�)͗�N���b%SI��:�]Js��)ۘ�	8�{
�#d;����'����Y�
Y�t3q�]{AWV0��X@	��O'��BX���6�s�g�	�
FՄ�\����6;[��W�5��w��C��O���f���.��?��	����w1�Z��LŞV1�:����Ec���*�V3�#��AI��<�a.�཰2W}T�jⅹ2�(��j���/3��7�4S�IN�;��7hH%�d�p�$K��b1��
�������G�}���i�bH��� ��%K��!Fc�ÀI$��K܆�\��_ K\I�H��p̨;�
$Fm��FT�u\��dq�-M�F�g#`O_A���Ƴ�7�Ċ����h���4/�6;v��<\9�!�E�
Aj�-�:���z��XDX��d�_
+
����K���TI7�T���"���K/,�w0#�-�1�0�`**%��؊�f�F��x�į�4���M�v„dv(�9�ߑ\ss]Y7i)��_�r��,�ұo�[9��P���D�Vr�D~���mw���}D��Tj�19�&r�����?P��5a&�܆�7�SpΑ͜�L��~;��=��v
h�ǝ��p+�hm7���H4�<us�YL 
�B�W>B�m�(g�w\*���-����O��B~��K=j���x`#�Vm#��l*���FNz�ZΈ�rJ+��Fb��i4���-&��$��]41)�%���
w�p�xF�n(��.����H�沛�.�I���h`Q�6+kRǨ�"/����V�l�bD5j4�j-kQ_M��Q�!E��E�Z供o`<C��'P���U$�&,`-���a�,�|me�pq��{$V4iҟ��2��|�b�.�zތz?��ܺ
j��bg�)9��z��z��k��]{���R�KCt#�6Ai*�T�b��GH�<��'��]z�l�#�O�}�o� c����	�'0��kr�[��C>���H�`���\彛ZGn����_Y���{�4�]y�ɜ���p@0Z��'���
@��r�&X���.bES��Uy?�vQ�@)j�8GJ�:���pJ�`mi����h&�� �T.�4?KQ��|�YAAf[�lwc5�4�ɡ�@%HUߍ��V�J.n�҉�W��0�S�v
��0G�>�T/�T���Q�"P
��>�3�f�o��3.���R�&DG�  
��� -P���I��l*�;34��Y9�N�}���)����=��0��Dy�X^���"u�c!O�W��y]�i"jQ�@irѬ��&`
��T3������U�S�6�T�cK2�*�Ys�LbV�>�˫�0�	�ATR��|�J
H�~I�E�AF�A%(�,x>T�rj����/h�?�^ssc�/�!9�9 %���`FYTF1��s�C�ӕ��K_���K0(A>/	b'�t��%���+|,� omm�df�
�q]�QU&�e'���%?�5�~��l>̆9W#Ub��[��$@�{��"ż��
��}J$���ӯ@"G�5I>u�P��l�@�d��y�"��S�s�x[��c&��eJ�&�	�� �\J�c�	h�y��`��ԪuZ&[P}���;�ϧ�{�Q,��?��W4��0l<n��$To���W��?̕_�����?ϵ��%�QF��n���?ε�P�E��z͢�M?S
cG��3��s:G��'	5Z?|�=��iJ)#�P������L�2
tr��S1���7�r�)�A%fX@�q�>(@��̠p��z��2%����(0I00�0���[�Y[�@5�${�����<��U�R�o�(���vMM�\���7�\���bu`S�s�
��J�2Aa<�G�-��wӦM�я~�^~�e.ڇ2樅�����̢����?�mfS΅5�y��0VW[ر�k����G[�(�T���n���r��$7�'?����:�@��6�Z0	U���Մ�w��-3��O ?���_�R�@z��+�(W!�_D&
B���P�:r� u�w���]�
\Q���o���W^y%}�c�뮻��SWWטU�S�P��/}���Йg�Iw�y']~��q�aR8�Çs�^�ϣG��y�Y�U�D�\#��f%(���L`#��`و��ڔ���S@q��q�N
Se3�����(�-*�(��`���,4(SCm��O���8�m"����_:��T*A.
!*�Z������30��1bO \���_��
�����ts�)]�6�Aꩱ���.Hd{�]w��~v�uvvV�xϤ�@��/2�!&�W�W�7���e����誫��X�'?�I�袋�:Q�<jQ�(S��x�0 5�Ai6�Ɔ3L�y�a�d�=�.�l6C�==8�b�\ǣ�t��r�����KIJ]�<N�w���$��L����ϻ��V�F�,�U�%�|�iKԼ���P+Ĝ�=���?�����,HZ�=��z)��r�M*�o|��y�f���7��kN�5��A�v���g�\���ԧ*�.��R~�
�H4đRQ��D��?��aK�Ady�ln�q�
�:F��ݽ��ӧ�	�r��8Ǚj4�7�������f�U(��u�Kez�y��ܳ�P@���ʪ���]R�w)�*D;��R+��9��O������IL"W�$�����Y��!X��O�H��7?n7�t��2tm���� E-j'�}�0�T�9 z��4�k�m�b�ήn�P�Tbi5X
Q�b9�
0��X@��tQ3��M7��_U!_����)F�Gz/]�����
g��ںfyʨ~2�"�w�zZ�������jpB��Op%�R*��n��tv���.!b�	p����G1�}�Ct�=�00�D�CԢ6��TM��ǔ��͊f��2V������IL��^]ߥ�b-�tJK�6/�3N;��.���?�jjҴj�)<�������s�������Q�O�����N��?����m��hW��xG�bUE2�%y��@�q%D�e�Bf������b�E�L���[n��[�2�������H@E#TԢ6=6؃B�CG[(�x����\b���t���*��NV�7����fMz����׮��_�I,�w��Zڽ�0�9m57��5W\LW_v��wHm��-^�����%L�-���&#�U���%�P�Rv��̞X,}�5���5�֘�#���6�A�ZaE��\�a'C�6�XyS�����Q+��q�޴
n5��J�
�B\���@��?K�\y5��p�g��%��#�뮠Ǟ~������۳N_C��*��/6�W��#�F���P��U��r�
���Ǚ �j]�d�K*�
O�+EmV!�T�Sjnn������/~�R�>jQ��Li$�]��{(j3�!sC��>�J�䨿�ڟͳ�O*��Q�f�L
�}Z�p]���1�Z���#Z�x���)W(r��s�^G�X��z�7�E�B��o g��:�]e��
��G�V17��}ݝm�o\��(�u�����g��0A��q�F��������
�b��x��˛Ƚ���>�h�������+h�qB�P@��{2�9��Ν8ZIxX2V�l$`r�S
�\w��V�l�����ۻ���Q�@E�7T���!_��l�@�2�e���B�$�xZ�~睵���0��ӯ�1����>(��:�Fo��2��t�X+�+�C�Vߌ�8�+Ԁ��&�.�����tu�Jc<ō��6�鍔�z���KH�������r���8��
Y(֮]K�>�,g�@��z�����e��|�r���s�8�K��矧U�V�ʕ+y��#Gx�.&�B�b�
��"�T`��ץ'8k��#�f��2z�ܟ�vѢE,��r^8_�GU�.0(�aCX+��w���~�n��:����SO�ϑ׹�~>��K��z���{��!�4���~�&M�۷�����|�9�cA�۶m�kBF��*��h�� X����;UB�H�ɚs4�V6L�������%�b_��s���$PU?�S�/�SW-��6���(�t���m���%�T?��1�t�%���V\���֩�B��lρ����C5����iURAw�t�bg�����sY�Wыy�
Y�(���+���^XR�<�����7����t7��=ܳg�6H�{w
4,�F���C�F><�] %@}t<`�w��]1�0������۹oI��4�3@����x/�E��6�ɽ"��0?�L0���c�5�����™)�=@`% 	p~��W�ܑN	��zpO0���".@?��ӹO�
@�<1�0��V�.��� �9;v�
�~�s�p�:(��3
��גc,����?ǒe0[v�_�- �h\��dƒ�)E<�r
j\�n
8�ᩭ,�#	���
�
����W�G��O�&~t�>�r�SV,��|�&Z�r9�~�#��^E�,[D���֮^I?���I��j��qefa̐�%Α\h
�Qf{�Cb�r�ŝC��츒�)��6��=6��t6櫯���	FL�s����{r��'����3\�	`c�kH�=�+��~x�O�L��5h0Q}�p���iml���?�`�ϰ-:��~����G���kÆ
�������`��'�G
�����2�����r�)�X��9�:��p��o��`�^K~D|6���p2pfK�K�y�]wŵ���>����:���+��ʫY\��;��^;��8]
5��
;z���vp�y�b#�~4�J+�R�O�:�=�~Ŀ��<m��`�����v�;Lx�ut�9gҏ�+zt��/�w��jz���=��^xe'5����Z��X�[�(��@蚉�^��z(��W���4��A��ė`��*�	�IO1?�s�hN'��{L�LЃ �P�sG��Ź����ۆ`#-�4����&-��8����:�I`�����0����	?��>W�$��!197�'0�o�]a�=�(��3WaQr|$������������XL�7q,�2_A�fO��#�]T�OH+<�j/Nȫcmg$�5�l�6�>���q�zNΠe�{誇�S�{�◖T�	���{,i5�_����>ň��url�uu,��7�Rq�o���QC-�=p��|�%^���E�i�Զ*�t���<y?��g�~�giŒE���M����8m���E�21/�'�3&O���Hm������FT���Z�n��d��tD`&��TU���,�Т������R�1������?9&��!�T��|�	�1��n_֍���>�}/�4I���c����s���&+K�C��us��*�4,�0A�I���O	��e������ >���t�b��!>#.��}�����2P�"���>jS���@�� ���'R\�cC�	n�ښ4m�u��������hۋ�r�$(� �֝��	M1>�-��-��o���sU5����1�7�;%�%A"�rVp�3�K9��.��$�9(�h۞Hk��d���oĕ���V�n:�;������K��n��8h������ťdp��s����NC?p?��-�_�S2 k��b7��p�(���.qp�
wϱ�zp9r��@?������e2�Z
����	��h�]��4�3v�菙�H�Աl?����5�a�+��@P���
�������^���3����gJ��M��W����1՛��h��,�@q�bIW����ۡ�T���bn���ǒ8S��pA����|`-	G&��6��f�vW����Ȋ[L�/�!`=�;w��X�cy�&� <��!��*��\�s���7\vP���@���.��7~�0�p��d|����D�h��3)��c�^q<q��ǁAG<gǎ��H�!Z�;}�<��hAD��p3B��Q��8�!bH���3\��86���s�B�N��{���G�O\#�}H�[,�q�;�V��9�nP�&?��[�D3"�j��-��%��E�D��߱G�Xc���bD�#��a�f��d�i t2��,�q8��N�
40ɗ�i�8���o*�j I�9�4$���kv`*���$|.a��>��\�/@�a�4���}�e�ȋ�9�C_O'�H�a0Y���-Jrm�z;W��(H��t�]apq^p��7@���6@�(�h��B�&1s��A>x� ������c_�	a5��`��0�8����:Q��7��H��?�ǹ�����7��?0 ����` �ww*�-[��t8�
 ��}�66Ⱥ�/�@�����}�6���ux�=žX/
�M*����*��Pa,�C�L���(���5+4*��_͵`J2��{��$�'��ddu?1
׸ώ���ҭ&��o�-U@��:0>�Y����ןNK�'�b-R�A�)�V`փ;Ǯ>;�€�I�f�Ŕ�S}�9�^_'�C2�[6,�xC��UTJ���������h0�0����`�a�q>0��x�;�:�6Tk�Fy׮]|���p��B�cV0z��__qi��p/2�\��!�q�-^�����/>@��qY���s�s�yA=��։� !�����:�����>��tE�.���`K��b���&�-�+��1�9��w�ss �<��·�R����X��bOC�/�F�x�C=Sb�	Xڱ̶7mG���� %�"�0$�	S*�*�����.��XlP**P�`�c
Ĭ��	�;&V�y�	d
���1����PWo!CM:�]u��b���ePsH?�v�����	9�����X<I��P��*���FDTf����J�� -q���:]q%��i0������`8eQ�	c����w`0.�l3���
#n���c��(`�~p�a�G�	%�g�������u����?��c͕�!�)	�*��j,�	�;Z@r�j�'�M��m�Ӟ� A��ZR�g�8�+��O�6��D�,���y�Z"���Z�Y�0�=��?d�|��4n�g�T�l�K[���A:c�Z��\(ũ;�������A���8���MJ!G+��H-ǎp
,"�HҀ@I��W�|*�_v��V��L�0��1bs�--�2�yN�
��&Ý<��O��A���wP*.��>F��`6(�d��L�0�40��h�]�hnrA�f�E���e֦�������nNr��AF�i4�<����xO-*+�����MwS�����|�n��FZ�x��w���g���q�M��W��&��H��Wi0"�L�K�~����"r*has#��1`0T���I�����9w�1�A���pE!@i���Dp�0�`���U&#�M��v��A���;�^p��Q��Y�s蟳v���+�|�{�c�sa0�� ���_Y�g2�\ܡ��Wq-X�Lv���=I�
Ėp>`P��y�w����������J�
�i����e��<IG5W�N&S��Q�ЄRԆ%���-ɷ��L�T}����.����<��[�12pa5��:�5��U��{~D�V,���v:��+ P��������i�i�〹Ma���P�/qZϾ�8�:^Ym�J�g�9�~��ީ����|�qzr�,�C0��)$�X�%q�A�60�0�6���@=bY�À��`8�%č_�x�4bHqM�<���Y`��õ�^˯I��c_n�� .��@�&9��ġy�v��<%����3�<�![�=�p����~$��W,86��7�裏����������Z,���I�U��
�dh>Is7��u�`���8[e�v�H����#U�
��(�`�58r/Eˤ-��0�¦c6�m�,��L���O�2Nu�E
#'���|��c���F$=��ж<��w�=�ydF�%<�51=�u<~�cpJ#�n�e/��nB�$4�S��/�5���~�C���D�r�2B��Ύ�f'e���`��vd4>����� \�Ӱ��`HaPa�q�x��c�L`���0C@���`�a�$'��y`��&i�p,��I~�ko���x�=���xD�:IJ'�/�9�g��ߒx�@���9�^���}�X��%���\d��c�{X�\��x���5�4��M�9H+�Z�d��YYj�5��&�g98��<y��<���u���j����t|�v����+�a�$�ڦM�k_�1*rJ,�`�����5A��{�e�T܇Й �<x�B��.:���΀v�[�������rYq��RQ��Yl��-t�{q��%է��a`[�1��+�@�=�>	�b�ɬ2?��,iIvz�EUX��}.�䒊K����}����=�qя�(�`�a̅i�AB�~$���_}���< }��*�ע$�U�vc;��|/=ر20!��з<g�^�I�"�1!�Gj%�K#�&�k��t1�@i�RT����e7��d���յ��~
�"k��1�(>32s��J�g�C�C<�@;��BW\~����a�#���1�ݼ�q�L_�46S1��@h�.3$��'�ά��M,tP����P:�`��I�9��t��o��wЁ���*_����qyog}�{��:݁�*�V���<D�m��9�$��lU[ŰY�zd{�/�����V
��s{�E�?���GTs#��D݇�������n7��=W�Df�
W}��{��+Ԇ���}�29�p�}v9�sQ�#��RKGy��c(2�7	R��:�C"���֣T�����+5mdt��K/q�"�V�tzy�/B�;7Ơ$�,���Za�jw�c&��u��F\"���d:U1<xͨ�;�%���Šd�l�En��Ch2���r1�ݏUa
+n*��]�?�p����3a�`@��� 	W�D�vFv�A�X\ix�D%�s�KL�n8>�Q&���6B��ezK�@��cJՀ�?��ɳ��]�}ԥE*g(rj�T�:��I�
W�?8t|�nZ�f
]~���2"@C�8���I��� �=W�/6F��Mv$�B�g5�c�{n\+�(��.�I�%c�$��ky#e�D���l�O[!OW��F[��~�k
K�E�_�!H����?����a_����T�0í%�@�`��X��!��}�vR~q'.p�0�%��5bUxEX�X�8�½���ER!��C�8|�p%�Y���W�+��"�@�pw�A�p�� �qN�W��u�w��qO��_�<�(�T��0~䲛�Aj�%l��k��t��d/�`,�s��t1?-	w�ܐK[��TP������ګ*�kl���*��.�`�iɼ+�֙ZG>���!�+s��#��Zq@���jlh�u��mԸ�I���ijjdCcd��l�d3� ��%ӧ���#�C$�h\֋�F�!/�l0�}1���Az
���p`�*���}@]�x��P�!}��L�zs��lD�
�����#N�� ��=�`e�ĀD9��HEZ
��c�=b\87�������5��C=T��F��E����X`E!@}@E����\z�)�Q~�&��iv�@G+�<�-(I�耕qHV�L�#͑v��1�mo�r!G��V�F�##�	x%v�&NJ$��YV�ą�%�#5�#s�p>�l?c����mt��Qz�;ޮ�����I��@�
H'��w0K��"d��tƓ`lat��@	�@��l0�ǹA�7��?C }�1I�o�x8���W�CA_l0H,��0���ǒBz�FD8&��9���,T܋mHis\�����0�������pL���8���.��Y��׀}�ǖ��`	����bJ�;�ެ^��ɡq�-}��ۥ^������u��V��V��WƝ��/�p��R��&�G�Z�\�P����W��m۶�Q��ۨ}\������ԃ|��tZǸ^��	��[��Z������j���B�����җ��:}��ҬeIb�[�;�8_,VS�����C����,&��%���E��h[�b��C�WgH������t�g�H&��c�E�Q�	6p�tJ

j���G(�*�]ݴd�R*�|LL�&d���R†��z�C)Lk:Z��=�0��Ѵ3+����J5S��}����凔�<zh�n����,F0ER�<#`<|h�\��Ǖ{&����f���Ŕ&�.�Ñۀ-fA�Y}��E�	�����@�(㻔X^�v�3�|���C��O}��#�c�k��i�6��:��2��uV��l�}������>o��$@^��ɨڵ�r�pSkV=�ˆT"I4�hp!��cYV������4 �^%��9�**
_R:0(�L�W�=��� /�A�^�I����|��!Zj��b��D�T)�R][!�#9W�T+F|&��Bv����>�S�a�s�ݎ�Ot){�ǝ�{����M�ռE1�NC��7�Fه	��5��z�KT�m6��m�M��;,�f�[w�c^�X�:6�����������Sc�`�!��'�+��l�8H�����+bp��"lEj^��)�#��	^}�O�7q����#<���R�nD���-��3��k��:S����]���j���3R1��9)A5��)�*#�:����m'�.�����g[-�m0��m@n	Y���ZJ�ڮ�)��l�i�u�)�@�$=�1�:�z���������H��0��t�p�8Ugd�'$\;)����t��h�i�K�%u�Q�dͅ����:��˪�2�t�S��܇�����x.*�*p��ێ��sRĭhg(!F�R�fc;�:C�g�8� *��V���C�	p|��p@��,[�~/6�n2�L�=�cu@�S,���z�h#u;�#�rL���\-y���g7Zwg�	n�Τzk!��ŧ����O�r1��D�.�<�E�L����Mj#�m��9*rt��QCC=�XT�SMm-��$��h�d�����A�H��U����X�H�3��D��9Ôn��)9�ƍa�o���o����P/���87V"n�M!�#.?����߰�/���Z��n���Z�%�D�q���M�:
@�:U�m��[n����k��L�@�uI͈ʢ���L��t��x�_*SC�Brb	ڻg/]�	�ɠ��96��������u�Oe�����I�?WW���̨������Iu5iZ�t	�1xb,2�u\������P|.]Q��\�Nr��
P��K�O���
@i��]�ZJS֔�Uq��� B�n����[C���?���@��5��%ZwX,�s�S��_g�������܉Q�*P�\v%j���Q2���f���4�q$��ڧ	@����ݦ�����|��@i` ��D��s>�;�B�a�>g��l�����ӓx9��B�&;��y�����v���
�"�Xy
+� E�$����@?��$+Y�Ѥ&�ľD".1%�H���������݇���G嗹�o"Y�d�
����Mr��>�Sq���%�a��H���o7[��0r��bh6�j[-���|�ּJ��-ø�.��=�oal��
E�g��	�=R'��RJ\��S	y��Ǔ|_'L5e��$�i��g�G�l�L�m�J����J���-�Xw��~�YM�P�g�H�}W��6��c�piv���l��
l�8�,"�6���b��"gw��k����.=��q’�zA⚓��=s\��匿���)0�T �%X ym�j��ɍ�QǡJ�$'���}YjX����􍔪KE?���gLƝG��������!n��jO�=.v�ž�|_ײ5�Т6���4.y���3	-��l�;�ubT.�G1Úʊ���EK�{�:����e/^�}�(�[�r�s��h������J^ܭpg&��|3�У�)��:�t��\��`�SZ�h�~�Y<w)���<p�^y�eV݁� ��L�E&$e"��Ѡ��z)� %!��)��T߰���2kҲz�ʤ@\K�(Q�����ˇ������I���B��`��bY�1#�ƉKT)�H�J��,���^�7��z�@)���/��B�ZԪ60���Ӡ$5�ؕ�Ŵ��׆�G�=�l�:haJQ�;�:�w'��o~����z��v:�o�D����.��ӑ8nd&�"���r�aI��v��YZ���
'\sq8I�RSl�駶P[[+�e",�IuvYn�����@�Фd��Pc,.ѮE����z�$�z�
.�U�K��_c�b�8�Ҹ0R$ʍyT�(��&�	�g�:�g�B���x�%�S321m�f6(���D-jÃ��2K���0(%�|ut�s�і�s*F�g�F��i���Ѯ��ݿ�D*���@u�uTBVf���
,��|�J�`y*�M�<K�y]��P,P1�U�-�s�`�̹�%��s��o�J��H�%�'��ɖ�Ch"�5a=�'��e/������}�}�+�a�9U�Pn��@�#���?p�zt;"�V-��=Gi���Ծ��j���G���w@��4X^Y1_�TC�֜����J=Ǻ�*u��RԢ6����2]ݽ�𗨶&^q�+�#����'
�V�
�ė.\����1�:e��N���_�v>g^���76��6�|{H��+�q+c�;z��맔�h$��A���:XPJA$E2S)�q�Z2�P�X`��6��r�9Z�~�}�T�����9%�P��|ʴ�3x����c3��Hk�XO�ǻi�Y+��ծ�笢mw<Im����!j(E-j�Lji��R�R6�L�Sp�1)��d�\���`5��h1Dm2a�ƒ)Ч�*�}6z.�{|��p�f®q�B��Eם�^�0��.�M��z�8}���C짚ښJ�r�
���ʮ�*�
��ē,�=�e����d�P�-�o��vѺ%Բ�(-8����@�5,kb �:�A��jZ��ooZ��ڦ:f��7�®��@�z��1���RԢ6ͮ��2��% �]"��!ה)O�Y��̙\�^�&���[��YM��7�K����)XK������O���i�4ȕ�����<PCi񢅴r�j���+���O�/�9W�6@��H6c3���
`%rq0��/�|B��T�e~��d\��;��
Uu��k�����AۗH
.ǖZ^=B��X:�@���K��x`D�~�$�q�V�e�>�I�-=�Q%h����w�SB��,�XcI�#�]JU�ƍ!�Ƽ!I�X�vHv�T�=H��&I�*�@�~�r�/ه ��{0�����G$�L_k�9��f�4�2��/gcpں�o�9��0
	.�\>G]=���suz�ՠ�]N��'�X�^��p�Z�s�h��7�7��p���`U�rQ��ITc<�g@s�
�8 ��=]�t��h�����A�?����*���7�B�X@�G�
+ם�ñ?��sϭ

�1���	�<���f�8����;�j���yn�Hi�B>�^��h��m_�G��*�Ԡ/6�_;\�3��MQ�kG*�l1�r�ڊ�‰����4j(Uk2'I��bh�1��謳@��/����f� �I���hǰ�	H�	Y'��)G%���vw�r%s9Z3�m&xڕ��>ǘ\�qg����~<<z�O��A6���H��J�����<�)��n��%m}z+�rB.�F���w	��cgl�F\	Md�{O\x� ɫbK�V�$���vҧ
@�A�fPa��L�R_O+��!�Z�y�B��Q��I�K���4C�P�Ԩ���ƈ�	���O�r\��K���RJ#7I�C4|���z�Em2 b�R�����h��
N���iǐm(w���A]K���<ʐ�p�PSC%�1J�t�UI+��۾�(�O��m$<��
�����"�Q:���@�1���K\�6��^}��. ��O�
��B�Z[��d	80�.;�H��<$)�d6�!\�!�0a����D��u��v��a���5S���q��{�z;e{2
�'_�QV���tSm�{�@�:�ك
��=��r�Q�}�n6
�����m
0�Ij� ��1(��6��ԵT�����M1&�|&�*T�N���#C�a��&��
(��XT<��K�{�-�)s��H퓈9,��;�T֓rcX���?�bȸ�HR
���r�ζVc�u��!� �['M*�J)t����A�(�u�~�zfI2g�f%A�d<6K�7�{ϩ2'i�ּzQ�0G�䁒�~�(#�%�4>o1;�!n��*@�I�������9+�d�!�(��45v�����EE����.�x�[ғJ���#�)���q��.���u:�,�K��U���`�@���*���,C�8÷���UL*�‰l�Ȫ0����������$j9�����s�s�H�JS����᲻������TDA�\��!��p�4W��Em���lU���!|m��o
�&��.�yk�M�K.5�z.�r��f��h����i��1�yS#���7��F��]ԗU��-�MH��8%��5�i�Hx\����H��%��Rgf�y0�)����2?H�(X(���`��H��j����׀g�D@IX>���vEY��Ta^`I�]w]v�e̒d����Hlg���*��������fe��,��Vvb�/�t����l�B�J����7�c���l�Z�����H�QC	�1 �<��*H���
��C��b
D����T|S�H3�B!_q�%[����g�\��3��s?3����a�q
D@Z�(�i"�~�MRB���V�T�?�|ɗF����J�T%ʇ*(��Q��@
Ӏ/�ۙ9s9���>k�5���g�<x.���:���9{o�y�����w�xnI)~/����7� |LYQ����ri��"�\s]�&G8W�o�ˉ��Z	���3e�N�>=O��o�^Ϗ��G�jh�{�6�
ڀ��MI��sH�O?~�sP~&]�zw%����C��w�:f�-9d�M��R�礈l5Sq!���_(�X��v�l�9g��f;�B���E"���B��oj�|��u�H�!D*��#�[�`����)��OԀ�
T,N�4mL����A�|���9�:�*7�l�N������.�p�œ��5��	N���&��&�ڜ��PJO6=��r�HVb�ϕ..j����ZG�D���kuZ�RC���LO1�tj��L֖�����qBD&n惠t���A�-�V�����vN��I��!�IM�������D&�,k�Y��>e�J�Đ�ɟ3ɽ�;&�%&�<g֡f�C=d����nI~_S��n����DȪ%B>� ����zmZ6���dp%m�>�~�L]�ꨣi�:T��$�����j;.	���4��}B93	���eR�m���Fۤ���+�q2-�n2ƍA�PhS���%�/�d��9+J�y��Orp��*8�L;��q� a�4��Ξ=;�zi�[l�Q��?�pnJ�Śq�hr���F�&��B]A[e�3[� W�L!�P��-�1�[a6�ڌ���(%B�?��w�fKTM��گ�� ��v\:7�a�COO^*��i�n�#;����%�ů�k
�.�Y�e�O��
d�5� ږ��~޺��
b|l-uM�*F�*\��ð-Չ��>��Er�N8����kr���P���k�������B����i��;�Ś�Ҷui��?��9q℩(���{�L4��8�s����@%T��{��$��w$<��I���6�����Y�6ʹ}�%�V�{Kg>��?�օ���n�2�����|���LHn�ɮ�E���wKp8��G�JS�����M�q��ܐ
���Jy}ޑZ�P�F]Pj;qy���O����-�
w��i�F�|g`3�0�����4A4��F�.7�|�Ȏ����ϛ��\=;�'9��2�ܠ�d3�[�\=��~���}�v9u�Ԝ��MtN4������j�si�i�w��B�s���~�3#F8Ή�	ٸq�9g47��������f�/nn�C��X��ߑ�4`�(���NmJR�</�4,��R�mR;��L�����Y�m�,��U��I�M��QA������?�E����OF��RCj�Z�H��4�5��+���DJ�@�Q�$7L�Q�>ۈ�
AA���X8�-�b��̾0ra3��My�Vۤ��o��%5�S�;@�ڨ&ъdP��Y��jeb����h���		� ��$���
�eaLJ
���ϕ$J
�/8~T�P%����.�߄�n�;f�o���F0�܁�G�5��u�Vټy�\y�f�	^�Ye�?��f�=ꍃ�H�;iĨp�N�\W�+��ٖ\x��ܸu��\��_�}6I�����ے�v��w�"!���v�GCQ"d�ﲙة��8-�4�t�N[� �d����)��Q�׹+a@T�VQZ߯1mJ�M�V�	Q���3+�r��M����b�"<V�݉3�x�m��3YyH�0���O����
f�u%��b�n����'�MF��h��g?k�������PR�[���cM����n�ͬs3�:� ��j�g�Ν���e����m����wln5e�^�<}�>�e�IuZ������Dȧ�d�I�jh�;3QSq�]�*��Ÿ�Ge��"���Mn�00}N�V,4e�mʦ��M�]��m�����PBH�kb�a��TȚ>�R!��Woœ��m5��("�y}�LOT�4eÆX��t\3\Ze���lgq�u���?lDU�]��/6~f����W�l�䱸��~���$h��a�E7���O��������	E��O�d�E�۵W�?�����3g�̹sr�������꬙��X��:����
}M�z�oQ�$|)�@��9�5�&5���U���:!	b&�R!�H��T�e�J�>�1R����qm��LKNVjr����Nޕ
J�ḤW�/�����M���o�'"I�q��Mx���O*�]S"S�	E��nA�P,�;w���>Y���S��2~�T&&��ԴI���0EO�$�7f���9g5�qjv\*�g��=<B�r�i���}�Qku��YOs�H�O����3�x%O����
���p'HpW6l�Gy��� � )(i.���8%_x������O��GB(J�xA�f'�üJ��l�e���F����q3'O�Ra7ӥWU�BN-��M�O�͸�(�r���?B�jٙ:w�Jm3qu�|��p�$�L` �
fb%�ˋj�̨P��8&�5{�~|��=֯��&�C�׿�u���[� �qK��]���<_`�����r?UݽGQ"%B��� ���7��M�K
5�O�8!�N�������D�p5U��y�a
���e�\�'���d�Iԑ�ZD��5�C���s��NO�a�fRQ��(f"�Qq� ����� 8�?ȉ�k�s��>��}�k&qMv.+/)>i�����{�	U������Bh!��x�A�N���N��NΕcr��}����(�(���:�~��,�Z]&T��Ϝ��ӧ�ܹs2Y��YuR-u;�\\};ȗ��W�r�O
���0�����]V]�#0 �_B�!Lk�0�(�l^6m\/S��2=5e�Bd|�ᜎ�N\Vl�J
(�z�UW��'X��$�*�Ή�B��Gu˔��y뭷��7b�l<db0-�,����F�p�xǎr�w���tG��p�#�a@�/�K�/���9��N��o�2�}��~��NBQ"dE�M��ee�mf���[�PQ�T.�2a�d�6kc52�K�XХ(E���>�����P
��d�a��T���w�W�V����w�y/}̿ÇS��`��/~ьCBЅ�s�к�	OR�|'�?Ok�K:��닭0 *Ǐ7��"�=4W��
! ӄ�?�@���q�����n����3���B� ���n�E���k�q	�(���uM�L�1�A���u
��F]��d��y#nh�ˢ�H�T�X6 ��T�m�"Ӓ��L\RH�lW0��5Q9'�@�@� {��}��g�	߉�늰�9%�tKZXhp��W�k�.sn���0��6�rP��9Y���p����[�l1������?�������%��#%BV4Ν���^�7�Zm�S�0@4p����X P��}�k2aJ	eU�0h6W蓓'NHUs`3��Hn�s�={����;�ӼF@�w!����$�Ғ����5�91w}`8F4A�&̱�1#X���0�vgΜ�+<�7�B��n.pٌE7�!��(J���f>?�"b�@!hB( N�Ď.M]����#��L"נ�j�5��_?��\)!�ׂ;}�o��
����(�t��&m����B��9�vb�s{���k�#���u�:��P�y'n���r͘}P(i�k	�y��ISˆP�Y�"�D� ���0"Wh0�V�� �e�Аi�r��ww����=D0)2�MxI�O¹�� a��o���@�P��Uy@W'�~\cwSp��7���?�!DB'�� �{E��U/N�����\�����+���L�*f��0�b���@x���&�4n��&�$�8��-��{���P��Hyb��M�������&�dE��)&�(B>6�l7'F� ��J��!�P�Y2������/"�P�Yr�(�I�BQ"dY8)BH��/!��!�BQ"�BQ"�B����k����M�(r魹Wjg!ܸ���J<��JM�(򉀨���b�7���'�K/��v��n	�<��?���i�!h3B(J����������VH���`��r�,T�~���ʹ�����@�P�۽v���P$�BQ"dAarSA��0]C	�ґN[�M6+�ia:;�������*�W_}��?������M~�P��M�$N�̪sz������8�e��9�Ϝ�G���t��f��daS�矗o}�[r��Q���
��?~۬�T*�ȄP���2�����ۿ� �0����Z������_�����s�‹/�)������^y���/}	O��+_���w�~ �fK�~�i��LHYyp��,dUP&&����y�F���e��ݲs�Ny��WM_�k������P��wdfvV���N����طO>��/�3�<#G�1�B(J�\�(����@Ivm�B�g��������%Wnۖ�2��$$=@�nصK��j����/��Sr�]d���o�m�e�SB(J�\���Y���1u�a�niN_��~�+�f�3�vR��eaBމ?�v�-��w��Pw���[ڼy�yd�!%Bz��)Û��i]N
�\�&y�_������6S�?~\��\6��	2c����?Kd��7�[��_�1Bv���(J��L��@.�fS���%��KejJꍚ��_yX}�Q���4BrMq4�}�ߔ_������XF�l۶M�z�)��TqN1NE���p���$[�l5�g�Z���weǎf�b�ɓ'ͣ'�E���C��{��_���o��Q!ۻw��?��I�P��M��v\��6;���d˖-&�Mo)�a;Tf���.\�`�m�>�۰�!%B�@p3���oL���+�
�u�\�!��
���
!�>��vpV�B(J��B�&9T\��[��$E)	���А����k'2��=w��sE����ׂAQ"k�n *�ݻw_������tIK�(L���n)JdՁ&;4���?�i.�4�E�Y~���[%+���H&JVO�(�U�0��������1����#+��spp�$Q�Ț�s�ո#s���	hd��Z"���"E�,�(���φ#�,ϛ��rtNQ"K"FH�F����4�	Y!���܉%�dM����B��c� ���r�HR�Ȓ���[�)!d���zC�B!��!��!�BQ"�BQ"�B(J�B(J�BE�BE�B�(B�(B!%B!%B!��D!d��+Hϸ�V!�%rٙ���ɉ	^B�8�33%r���佣Gy!Y��r��%��x!��m�pvZ�� ���7'd͓�,]���!�,��% �BQ"�B(J�B(J�BE�BE�B�(�eII��1KO��A��>�u�09XO_Ga��OZ��9��{�d7d����SУH� #��PS7�6���Qq	�]�G��	$W(H�Ւb�,�bNj3��nkp�m�U6��o �v�|�`Yf�z^�u��󙞞2�q��LFZͦ���\�L��kS,%R1k�5��a�b�ϑ�Y���/��W6.!���nK[�4��;�
9�(�ټ��P�K�2!�rI�$��ׇ�e ����g��5��j*`�e����'�RQ곳�ׯ⤂����8�z�h�� �<�zy=�v�)Y}�<;z]��#�����稦���f�|G>Q��sR��M@��3�KRT!�5Z�$��J�ٶ��K}j�<��_��0�N�T(�p�tM(5
ҙl�<$Zn�HYŷ>5)�u�lF�U��Bl�E=�\��@��q��
��Y��,!H(딁����9�I��)�I³���"3�)�CQ��*T*D�!�����:uK�>
�Y��l��HuzV�oܨ�"�C�S��p�.
�q��2�� hz�X/A�)�E���1�cﴥ�b��T�D��:’D���_S����H�ِ��P�
�i�"�Q"%B>~t6A�Q��+�)�5�[-
����n�;�}�j����͖:�ffZZ�&D�(4MY��KY ��cl��Dz��_��4͋��福���m�T�j*T!3iAS�znۇVU��Q��a��(��	m�Bj��Jy�:*t�k�m���;��$L��6ivB���%L,�X��F�n�b�2���mbCFf�'Ux�Fd����F��i��Ӄ[��BQ"�R�hO5���
q��z��\l�eߔ5��<'Xq#Z
#_�y�ӮC��D��D��M�B�S"��h������0qd����Ux���Y�x�	Y#���D�qD��ѥ��B&�rH-�i;��F���y}]_E��Fd�������2�d:��K�*$����u}+�0�Ug�.�d��BQZ���<�䢄\Ԉ�ĩұ;�$�AzR�Ā�@�lGׯ��T���@����ug�9#�(`��y#qc�IC؞NV� ]t\�(��)��%��t9/�8kx"��`5��ʜ�;��(v�H��u0nP��� �pQ� ���d��?�\􏚢D!J��R~�kp�u��F��F'n�ZM.���B4k�9Y!(5�d�5F�z\"Y�^<�h�DQ�0�	R'�G���T�����_V�S�R��?Gק����J��%���رK�8�)��H�R�(�z��r�R�MW\��5��A0�������,�$&:���))L��~�#^5B�b1��pK%L��]�?�n.	�Զ6�BzFㆻ�]�	��@�)�&���vN�r�lV��6��!�X����%�nlS�)��1Q�֖ҽ����D��f�)���r���!�+�����uJd@�<Q��KO���)LI�����S��~���Y-��R �+�0a���G�
��C�0qF��	Q��z&���A�N)�?�9�y��7�A�v��Ǭ�8K�!du�I�J'�8j%��[�)ف�Da�E)m;׬�|A�P�YS1#m�H�{LsI�*1tJd�Y7�/+����D��qK�x�d��/R��~�P�H�,H�R��%uR���Y�7��\S�!�N�6ߑ���w$}�RF>J�������҄)�"De�1%��K�I�_�x�Ĉ�D�����BIo��y
�dIqZL���DE)!0a���|J��R�5��b޽�ʼn��q���$�ݪ70%�,*L��*)>#B7���Bb%)��N�t�n?6�!�W����DQ"QBh�E�T)B֦S��mz��LQ"����K�C%�P�(Jd���!��D�2cxxxH��rhtt�	}�V=���ܠ˘.��A���.��s�?�}�sv]�}�.Gty�c�{���@�C{�������{������wR����~{>7��9b��˳��?�c������xی�eP�����+��ﵾ=�_E�ҝ�4`�X!L��v���A^R�����r,v9l�g�
A�����0hK�
&�s�?!�����~C����c�1��k��rлv�x}�?7�Y&<�䓼ˈ��?�?fE�@"xﳂ��~*��9=���m����
�z�<��8�}N/��9��>���:�?l��='w��b��`��?y
����`��% ��
�.��%�T��]>˭�g�}��p,�)B�\�����"�ʹ�Þ�J���9�, ~n�p�i�sE�� ��mE����<k��_I��E�w��{"��}�\`��'��)�{�5�����5�	��}�;[Q�_�tGQ"��Ę��D�u�h��At��9�6H�xn�@��'n������n��q
y����OR��g���ei��]�R\݈�zp��!%BH�[�\����
�h��`��wS��G�XXw�sE��9O��/���S��x�Q����u�znEB:�m��A'(��P�$�I���9Kl?z��m���K� �&:��R����222r�sC#�3�#�4��H­�x.�P�M�T�JBHFbq����g�����׾��|��0�8.?#��$�CR����-�:J��q�Xǟ��"�"��$�r�e�-'=�t�r�~*:��)Bր�;���B�D!dm�DB!%B!��D!��D!�P�!�P�!��!��!�BQ"�BQ"�B(J�B(J�BE�BE�B�(B�(B!%B!��D!��D!�P�!�P�!��!��!�BQ"�BQ"�B(J�B(J�BE�BE�B�(B�(B!%B!%B!��D!�����Ľi�IEND�B`�assets/image/05-icon.png000064400000003415151327614500011017 0ustar00�PNG


IHDR'&G���tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4E0F09ECBCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4E0F09EBBCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>��=IDATxڼ�IhA��u��
5��1q��9hPt=�D�A$��%��+z5�� F����

��1h0�QQH�%�[�q	��@3���*�����^W�W�z2���l�D⿱[�}�-�8��YU^��h�6�����`l���F�"e`�Ba�R`��0�c2���:q�q܅]��j�!�(ݶf�Q�jP�^l�U����G��>�SIa�ሊb�lE�٣_�+ϕ��`(��	��]��*�P�o@*@��5ނ-A��%�<�}d�@��M���U�Z�i���.��{���$L��R��>p���2��Z��*�u`&$�5�����Q��Z�4�`������bk�.0�D�s�j�������E�n�b�">�Zp��a��]'8��� �J�&� ;����v�*�+/��&��m�~V�q�<���86]�}���=ͣ�W�†�D��>U@���SU�;��g��p�u44qm%��~~KAo/�E07pq�םY���m��4��0!0̍d=�b�\d�4�	�y�<�t�	t������%nh�y�[ü'5r���;��N%�i��P�ٔ<�l�(i�����+�C4�u���1����-�z�g|	>z��@��0��:�eC� �s�+ܯհ��D�\��q��]ֹ�,�M#w:~ރc�;n����Ʋ�享��+x�~4�y␦����J��9�U��<ĸmb�V"�.ˊ��l!6M�l��fr&m`��l�pm�~<Ԙ��t�%˸���X�:���a�\��X���?ȇ�}�:qaIEND�B`�assets/image/06-bg.png000064400000015250151327614500010460 0ustar00�PNG


IHDR����tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4F08E4BEBCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4F08E4BDBCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>(d?��IDATx��]�rG�M� )ާ$Z�������+��uДx�A,��e�쮻�ߋ��B��Wygv���_�H��xu����ߋ���H𨿟�u��-������((@���Z�E]��@��t
ƫ?����/��z��^��/&��e�2�� �����$81]:�*�V��M0��5A����_�Hx��1��kM%t)��U]ƶѯ��JU}"?�.
�h`׳lq�e��f�'R�Sh&k�ިD�R���8d�~><0wc��|H�WÒ��ܣ?־�r�.(ٓ���Ѽ�ߧ���$��_��o�CrO5Qp���RdS~���؟0��cs,Ż����6���z��u
�-���;��;�q���OXWb���8k>��`��ɓG��]��/a�9�ۦ�wTR���2$��K�9��g��?U$���XM�Q��eO��	O�Wz�"�s"ON9��_�V��u�s~�&�o��ɀ�y�*�wU���yݲ��!x�*����$wD��c��1�د�|�r�9P�J��j�l��d�������������g��yY�;����]�ä���j[�����8�V�qc��pH�/d�#yJ�-�UnJ�:��Rlp|~x?�܍6���S8h��KlC�W!�Hiф˚,���x(ڊ
�Ď�z��KkKW��	)~�D��V|��	�<5�'��A�a�ζ����H�e=T�˗�@_�6=w��?a93�4JE�V�My;����ڱ���g2���!�q�1��N�)�%�t����\@�h�7PT��
8ߐ�E�:̤�\o����	���6�R�*;���(^��@�p�U޳\	���$AL��$�}�-�sMu\Ӝ�Y���218�5��:�*�[i�sw!'�w�G�$��Y�P�UI@��Ls��n\S�5�lޕ�:��N��٭��WTB��60%��Ŀ��31/:�樓A8dhlpYAu�Թօ=0E�$z=,)��R���̀�
!7$���k]��;R3?�S�#����Gc8�
ٗ�7�^.`#!�=؂�J�[r6	�M��	NrO�����{T��$�#�/b�ܓ����)�-�ܗ��m��p<���+�A��³�����r�|����?�tI�A��b���%8Ba�t�.����N�Ǣ��[�ߖ8�a���Z+d����	�j�e*/9Ͷ
����[�&ڄ�lq+l/�Ӑs6Hp{�h�\����3G=/u0� 4�M�����>�32s��&�B�/4�A�TU��ZZ�e
u�������Ko��|QI��ệ����wXj�����z�7���H)bӹt10���g�y�#��EMQ�G��C)���oB6w���G-y�s�a�����B�)�ȁL�l�9� }��
Ep{�`[.�!My�o��h�@�ߨV��ſ�8���p���%c�%�4R�W&T�ϒ��3�nX�����o�(�^����{/����T5���=�B%�\�P�r���gl�D�H}5?;�B��[$x5r_ڃ��O	�I"!Cs��EX)�l^����+��_�&���7���q�9�λ�7���A�-)7$614H�$VX�|�
h]�>	nf4����0�fsjȕ����z.>	ޔM�pPUߑ�5�}���o�K/@��?B�.�\�2�������L�ݵ�%��s��B�N�U�if
���U�J�����<�4\��}3K���e��XP��;�i1�2�ؒg��TG��a��Δ������h�.���!�jB�ǡIK�E�])?�U���Usr�`G�*����Md�%�,�g��ǿ��VƊ4+S*�ٕ{ÅQ��*�^l�Y�^ܡY4R��|B:�Lnu��3��s��p�T�}&K�T�_��:�����F�\_^��Lڪ�K(�G��Wj�>w^uT��4ؐr���ċM�Z�e*ކ�
��	yP{^�ƿ�L�ѧ��/�;��T	^rۨ��{>��m�ן�]�w�=S�� ��S;믪���It��ͮ�uD���&�/F,~O�l�y%�`����I�5s�Rz{_xlU
�#����훗��ZR�*��	S*Ǿ}���8���c�����F����T�CmI�X���9Pi�:�m��~l��<��طόl��Y�������%*�ƙ�}���Ǵ�n%��\�R����SH��3�?d��9��8�]�A\.�����K����K��������������
g�L��+�]��mu�����1m���s�?W���J^�L�EU��K�i�u��y{���B��{��=t(��f�^$����@���������ggC���{쎃fb%�B�M��9o�J5�9kM��	�g0q@�zЛRJ����k[]y�4p"xL(&���~ر�$�
?^����.�m�[Gϲ��#��#�߶�}�ڍv���c
��T�i7�%~�H�g��8�`��8�pޣDtf<f3�#lx�[�Oܮ�;֎c��nvU�mip����{�M��Kā���<-��gia�|\�o�ͱ6Jy�c�:O���Y�b�hь�m���Dv�v����-Q��]�|�d2
5m����ω��A�j��#��,_L��>�6�c-G�oD��k<����TT�
�䯨��	��.�:����|$��ļE5�Qj�/I:�6p7���o|�Ā=��K���*Oݟ�%B7��z��H�CORs�A( [�{ʍ�$x����'T��p*K[�M��#C�<p�C�2{�F^�<����8���;bR5u��;�O�.��=��zip�R���*1Q>��y�48�aC�vFN���դ㻽U�Mr� ��X�K:�dR���H=�F�U��
��jN����;�Ѵm¥.���u:�K�k�Ϲ+��;U��er���ؤؚvB���ƒG�~ ��.�b�M%���%l�D�'|4p�T�m����;Q%�c}���$�*���>��A�%�x%xG��A4(��U����j��#�)����'�\Tsx̯s� �ǚ ��3�����Ze�g(�h�j�+���k�5�����Уj~ ���DӀP���K�y��$8A䥚/yTͳ&8mp�)�%��W��0g��}��LhA��9�y�D��|%��fa����LpJp�	��;�,D�p��'r�����S-D�f?g�S��b�Q5G��N�Ϙ�
N��H�x�M���yIp"W@-�աCB�{ܐ�Qp���'����?�-	N��ݓ]�B��?�CT�G�'"#�0����.$��}3)���0�#[-�8��&�������s�������n�y���l�cOg:ư��&l*%8�|U�!$�
��ESN	N�lY���!�IS��������1�LF�Ql-8RX��\�(>�QC��&?�YS67W��M��j���3Fg�u�q��6Ub1�B�M2kA��J���׹xnt�R�y���y�Gz�&Ioc��Bp܊����2t80�IF����10pM�T����&mpO�(u�?���hB�{Ce�3qO��=��yo���9H�J�/�;y�%��'�
r�p��z��J��R���K؇�~E>e��>�i@*�j��
~|���t'�)p#�G�d�����5Ď5n�(�v���P{����W�ձ����v�y�7�<�
u+�jiϤa��Bq��Dz��ď������;�z@�Ѓƶ���Y�Z¦�$�u��#��cqs��J�P�Y~.E�3E&y�V���X2܋�35��}S�'	.��T���<K�b�g��Trq�>SMb!�&�,6
����Z·^:Q��8Gl/�S�#�~`���;���(?&ݠ�#~^�[��Qz��{;��9����z�T؁��!��~�5�Od>Qu�������y��.����wJ�~�/�7�ɰ�K	��b��
2+�ꪡ��ZC����N��w�g+>7�9�o#�2�4��l���ܦ��r�l�h|{_�A !�=ht�	�7���^ �>�}��6���6�s7��z��m�7e#��T�M�S2X˺چ�Ƚ�|wx��"c&�6Uy���+�Ec���Ƙ���w{�(���{my|%����p!-�A�F�누��%�KXы�mp	Om:h<6υ3�9�F*,.�us	~��M��n�7�oմ�s��z��߀�6���N5	��X�?��6,���`R�s1{6-�ldi{�:�$w���[Ƚ��z�o�����D���T����	~�`��*�]SJ!}~��A�ye�=�9�l�B��I-�̧ߥ�L�6���b+�灪���c5���OڝwnKn�}*��y��qu��J�s�Jp�"��%U�q���\�whQa��1�ܾ�~�Rz�^�;\$�,�5�a~�v#���+>�E�׺p�&�v�/K�yTM��i����9?��L�b.iø���5�\T�!IdA���j+lmo��N��]q�k�d�����*/��D��8\��R=I	f�kꡰ��W���YAM$l�[�a5�$�sS�Nx$�H�ƥ�}��7.����@\�s�����D^�I@"�M�yU�m�a.�
h�t���ϹU�AgYH�m�a.9�p�1S-�9��,	��&\UUz�$nᰑJnf�E �P�Qo
:In[�S��R�]S��Z��H����P�q���?V0�Ľ:�fa|�C5c��5}[��g/��[�>?s��& ���D��k�RŽd~�9Tr�>�B�yR�h�7����]�
�}V�(҈]��AC,n6X��p�
�
��9�vMd1���z��/�nk*Ůh�Z���j{�Hnc�y&7�8U����l�?�{��ط�"|(t���L!ಸwd�_�pX�7�:s���4g؊�U��ϐܮ�sp~��ɘள��p�f/oX���g��r_�jNdLp�h?�G�i����h��ln��2������La�ӆ
B��i�t9q9����g����,��g1~����C��7���1���N�~L-��*�l&�@=G^�[�i l��h��T����w��m���R�D�߄Yj�'8��i1��i�t����ԟH�2�	��)1��w9�gyP��\��nTu�����vʟ/��$���8g|��s�$��)��#�].�E%	�񸘕�s c_�Pk��w����}4�(�;��]7�8���q����`>	�ܭ#8l�/�Ճb�"���?3�ZJps�>��K%�!�ZOps�>� �{_�s���~���VXI�U�|�=kO������c�~pYQ:?���)Jn�#�g�JINI�"��3p��3S>�����!��T�:�q�3| 6��Q_�T�IpIN�[}܈]_����U���^l ��vs���"�	��:*����4��фqE�@W5����KR��^p��$_�+����'q�AI~�-������bά�'Ipc#~�T��KaR	�p�|SU�6�n�n��Rb�.o��I�'i �#8`R"OZLn��\Tr!��7iWz�
�M���v�U��������^�>��� �y�W�c�h%�'ms�����/e$� �䋰�A��	3�xS�fh5�� �Ur���֞�ڎ)��
�N�Jlf�$x��)�QD�#�F�TQǏevs� ���B׊Ju���gC���̞@B$x
��:R�c����Op.,!H� xT�a��|M���?�]m��@��0�P�EU�a�/���P�A澮;��y�<d�LH�����'.�!mi"w���(�o��IEND�B`�assets/image/02-icon.png000064400000004567151327614500011025 0ustar00�PNG


IHDR+/z�3�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4BD29038BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4BD29037BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�ʯ��IDATx�ԙ{LVu�/�ie7V�
o���d��UZ���M��*]T���e^J�+k낳šTPN]�G�ԶfSWIVIt#/Y�I#q@ߧ>���x��8/�g���9���=���7�����X��m?�9�	"C��b���;?Mx�H�B�M�A���*sHX/Kl�X"~b�x_�,�B�n>�"���L�Aq��+p���"�DGO�#���������O�m��I
�k�f�Oeb�!Noq�q,���m�e�/�1)�,^E�x�tr�10;"��J��r[l�k��yW���
߇�Y�ʗ�&Fo�!�l6�3�x�Ęل�yw�DO�X�B�x���7�o}��I����s#㶊�P�k����3�#�LƮ��qG*sDE,���.w3eW୤������3��-��ġ��%��s��&fʻ�~b�X嶧_�SB�O�mG��sc��8� ?�!v�Fe%��������G�|��7KA	^��qd��5�����%Q�y����J�{�g��]w���^���
"�\;����ˋ���j���&�Op�Rô�I���{�6xj�xV�������"m�a�ū��Y����mgl�$?wp�>�M���jb���!-���V��)Zf��K�F�2+��}C���S�$bC�[��,J	�&�=��[��!�Q��=���wQ���
��(����{�IA��A�=QfX��/]�
��룄:{,�,�����3̳����[q}�ŻUf��	�����-%3��xB�״�.$�:��늵�|�?l�S<G[�44s�
���K9P&js9.�ni�أ��P]���|�������i�5V�NJ�o{�}ZҘ�~�Zv-��2V�7�����;p8,�
�T9��بp菾�:'f���px,��o��p�R��定�k_ēF�b�*�FOQt��D��FP�}?tCl���"lg�g�%b�|��i}��E���z�wtsWt���4�1�P[���7RSX%u&qZ�b��`���v+���U�J^81�W��Y�� �(B�I�Z�-���y��ö����wtV�����P�z�z�o븬S��jb<l��ZO��$S�e��*��`���Y����TW&Yh*:Lς��[iM^�ٛ6��X}��H�V�\�*��KY��ŘM+4n���ʞ:�����@^=��>�L�s���:���T+�$�&��\%�R�J��N����I� ]D��f�ؗ�pv���%ti��h���Ǻٯ�m�3�<<��z!�r,��-��QH�`�~!r%�:�C����ɥ$Lg7���ΠN��)ƣ-�q'��GKh�o��i2m6��ٓ�f^�����H�`
�1,�a����8�g�)�K%2�Z"�X��{*\�(?��b]Mx�p"H��]����]o@
o ]�>�t;]@�v�.��c
0�E�pD�IEND�B`�assets/image/04-icon.png000064400000003066151327614500011020 0ustar00�PNG


IHDR$ z�ڎtEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:ABC35921BCF511E4AE37E468D5F5D8D6" xmpMM:InstanceID="xmp.iid:ABC35920BCF511E4AE37E468D5F5D8D6" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>2l�fIDATx�ܗ=hA���#��?�Q���5�Ϋ�
�.j%���06��B��E��'�l���FP����{�V_�۽Kn�9|��vwvf>�����b�r6�F�66r���͇'�q6Xhў���#�l�12�T}�ˁ߸BA��
��,4��B���ƃ��%h��
m��0�٥��P�e�v�R�"�,N(�N��A:)KK�Gbڋ2��g��\>��H]�dC�:�	�0�Rb�l�i�-D&��|�Go9���Ȑ��r�ĕb����^���9�X)B�|�ڛ�c�_�-�ȌAo���tM>��%�7��# K7\��#����*�RL�n�7U3�[�O�@�%�o���V薑�d��Z����T��� B�m�ފ�S���� ��se��"{&��7/��
)퓯IHe.Fɘ	�I�x����O��uW*#S���Uʕ���Õ��2�p��L��.G&ʘ>+���'D�^#s�_W��;R�y�Tf?��2R~VRc���d���w�2N�O�V!���~�>y�Ҷ�B��8�Z�E�Tj�.�l2�Tk-2&�V�yR2F���	[Я~�Q�Bm���-��F�IJ�IEND�B`�assets/image/08.png000064400000174506151327614500010106 0ustar00�PNG


IHDR�n���tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:79BCD951BDBB11E4836F80A8CCD3E4E0" xmpMM:InstanceID="xmp.iid:79A66D15BDBB11E4836F80A8CCD3E4E0" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:70C56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>��7��vIDATx��|�}��9L�{�)NqH���S��xe9N�&n�o�kҴM�4I3��M�n�ر,G�e
[{�Z$�Mqo\���sHO	R"	Jߏ^'�������}�q<σD"�H�[Y2*�D"�H$�D"ؑH$�D�#�H$�`G"�H$��D"�H$��D"�H;�D"�H$�D"ؑH$�D�#�H$�`G"�H$��D"�H$��D"�H;�D"�v$�D"ؑH$�t+J�{���j��N'G��D"�n��J%?����'�ÎF"�H�َų
Fŭ\�q���D�����w��ༀ���$h�H$i|<�~� ��
���]���n"�p$�Z��D|���}~6����t�4��wz$�49�0�&rv�@7)D&�(��
v79.��逑�G"�H�!6�� �'�����t�6�tS�T��H$ir�z����M�~ w��l��T��P	|$�ts��N
��t�	o�qu�B*�c(�tSi�#�H�[r���K�5�A����qws�i�n2�M�z���`G"�v;�`�R��@.�i��@7ȅ>��D"ݘ�pR�M�ڜx���M��@n���=�D��@7]�I_��roښS�Har����-T�M���H$rs����6�
��TR�����h�y>U����H$���`���y$ϧ�=S����BK/r��L�oS_��D"�ne�M��B'z� �
�~n�MYs;I
3X�̉ܜl��&qy2���Bty �G"�nq7�ݜ`R��a�IŐ�q|���^���pNcb��>�M�������H$������N&zO&�'�����'�-�Ɯp�@p��jj�`G"�v����$���	��ɀ7��W�u�`�CL�.�	�C��9�t�@o�N(��ŏL�4$^W �M�������M4�.��L
7y�N/��\�D"�*���IA7�ı�#��n\�/!�[ 0�и�9��n�:Ys"��C��tS���H$ҭ��&��D���'X�[�=!���L���J�uP	uL] h��x�I�d�ҙ$�V�d�<8�Q�IA�I�Z�'������;nh�D�Jy�E�q*=6���D"�n�
:>������I@7�xI�����n���'ss����M�P��q��칃-�i�`F"�H�;�P�)�f5��;\.��>#�<�˛��'�KN�f0e)�n۶m�x<*�ZE�&�D"ͭd2�=*���,�8=i��9e���[�L�`�˱�%�H$RXI.�4M*�歳B�l��)$�D
_��G~����gg7��r��D"�؉�&�?s�^����ک�>3�a;�D
o�yD1[<�X0�M��:�pkؚ�n�I�5ԑH$R�j��_��Hsӆ~��]��R��������hp�,��400�^�=�t|I��UJJ�d�����Ϟ,�9���vS�*l2�o�G)ޒJMM�.$i�e0&��\8Y���4p���OD�pru�ݙ<��e�8;�D"ͩ��/'��*�	���US��+��D"���Bܴ�6�`�~r���$�H$�qvR�,��2��(O;��w$�D
_�Mv�P90�`Dž�zbJk$�D
og�
�o�a��0�}�B �D"��S��-P��.��,���H$��1=�&397l)�	j�:��ze�H$)<5Y/�Pܼz���:�!7��H$i�c~��;�a!�|��t��
.n`�=�D"��v����x0e���I��v$�4���Mqm�v���g2�G"�H���D��†��x��'guOw��9�	��H$i�8���E��Ff>�1@�#�H��;`���|s*��f�PH$�4+�|F���R��N�Z����Pn�;�}
e2vI"��a	��d��M\�&�J�
d�Z��҂��x<����rv�
Q�1��ʢ�"��3�O�o���;��}���jE�!����$�����]*EYS��W�0c@g���l��p�}Ch���a2'd�`Pg����b�@�Tz�����]2�������T�� ֈ^���;{�a	imtuuCk���˄��>��>�nxf����8��i�˒7
���Ot.��ݏ	7�����[�zҢ�O7�KϠ�Ф׬��g]
v�LG=��:o���
�����?����G�ńڽo�_��̬0W�+�����;�.~���{�o�\�/~�*�Z�У��Pۈ�	����'���×>����_��[h�]��&_�t�=�l�Q�;z��Gю��.���W�/Ѭ���W�W�V�u�q��7_�{�����~��]���=�?���+��`��vU��ڑ��b0��aR�ju�x����E�R�+��>���}������]���8:�jq��WZ0b�6�옉�Aۃc??���[6?�z/��C�Z?wu}Z�����
��w,:�{aq�vڞ�"���ޏ�p��^���0Ї������0l���M��o�j����5>H�6�����0����-���������Fw]������C�=Љ�o��'Qթ�1@��=n\<z�լL�k��	���]�~�(�)�i}�
�ˈSG����Ap7�g�s�̶}Pg���fo��G?�.���P�Vg�؉����L�t��(?y	Z�Vy���חa7�X�F����FުG����:2�*�F8�#���a�}ᶟ�#��@m���N��_�aZ�CT��P�y��9�`h��c��0�?�M�_��0
������v�`��h�j��D�W��*�����y`�]�<�?�y	��Dl�4C���'g�H�b����o� nq��E�3(,;�a{�f)�v_���Ó�[��8�a��܆o��?��
���ɓxv�t5ր�݊o|�c��׿�����<��C��A�=lM�w��{�V�YZp`�0���[	��+b�]X���*س|�
l_u�N�����ĥx����/J�ޒ�����GT��	S��\؋�iY��L'>z�U�>����-���5T`۟�>�D�W��?�V¬^��ۿFF��g�UJ�z��T���3��`����8�tWaρR��_be2;@�~�8s�jd2<���H�w�bY=�t�_���s�y�
��[���%��}���}�b����S5���Qp�N�2�2�<�r���.T^>�A.+7ߍ��(!z��#���Pr�F<u�b�;��W."	o)��3{1�L����J��@W+�;sL*}l;T
��AU�n2�>����5#T\8�R�Z�_��s�P�kÒ�w��5y��DKJ[�����jþ��l�Z�X~?����~�\���k��\pG��]��;�F~j�@;�;�
M�߷#�ʐ����i����*/@��FDr3���+�"�Z��GʠH��c�ݍ������D�}c]^
����w��d+N=��#+�{�uY����Q~U}h�+��'��M���w�\љ�w�}�J�=ԁ��ʍ+�R�
G|;���p�6��Ig�0�����'!;S���r�"~ޜ���J�鑖Q��k��b@���(����[��*&NV��x����v�z�!��FPQV���]Xu�]X�()�3Hգ������X�v��Z��Peb9I�}IV�ڹ�waE:;��OB�Gb룏!W1���?��g�E�ww�lu7�l�ΩHZ��ړ8�j�ƕ9�8�!��bu^2�}�ġ]���@��Ɏ�v,�֠��c���6����W�Z��4��>�9$��PVߎ��l�޸
	���/��򬮰��6��N��'Z�����
�n�Z�#���?�䡇`���%����)
��-|*V�.��ͧ�-~_*��4�'�C<�f~N!J���P}�C.hY�mٓ����;�췡����Z-@Ñ)Hv�p�]8�N�Ca�
͝�ȹ{;r�d�o��NW
�{�źQ{�2Z/�O�&��pr(KW�c��Ěl�7���
���bͪ�8y���
`7��Y��`�#���kQ�|��Jo��.c��K��!b�=ؾ�LJ�g��(�nA�����<�i�:-���,Z�C�A�?���/^��-��3-�귾�+!֤uؔ;���f�Qr�
[���+�I��[8��&��q{Qbb���.�A�*���;b3J/��/��%:-jZz�X]����Y�cnod؎G>�I�����|oG)��G�~�`GR�FlZ�ӥ�x��/ �U����;���VF���
��܍�9���c�ō/~��=����̧P��xm�6�`�[��~�����Ӊ%��q����v�����Rp�;�J&%L�y�<x�ϡ�[��=s7p��^�
5s[
k(a��1�;��G�ƶx#z�h`Aw�S��
5.^��E�v+sz�^9���L��bU>��5�S�{ك����&@D/����5b�J��n6�sЧ�ă%��>�O���7��w�9�.$m�����v,_Z�.Vs�n<�ȃ�܏����O����*X��g�Bʚ�X�Ab���W�����ڀu�XU����2��w'N�{έ�O�W��9�+V!Z�͈��>�,C=*
�x��O���"���P~�
"%N���ewna�p�s�}�<}�
�4V�E��
X�)<�ƒ��j��ؑ\��Jq��2,��8q���p��dl��{L��?���M��Sw��X)tC]�6��'���w��/�T�lZ�����	<�)

��EG��j/
W.Fgs=��k�oS᳟x�������G���ź�N"�?��E6|x��Ņ�i�p������τ��k'�D�|Dl|,�)E��!�����Uh[Ǜ&�x&Y� ��%%%��z`j���9���p����"��iX�����̓0ڝHX��jc��lc��F����8�����Xl��@��C��a2ڠHZ���������":����/�:~�=\���_U��N�G���ax�!Ƥ�E��������ۡk���OX+���������x��Q��:p[�Q��I����c�~?�W��F䘅��a���o|�'�d5�~D��OHj
���B�nzoZO�a������)2��t�=.􏰋h���'@��en���N,���J�t�ߟ]�MB����WlR��ai����K��@�!�VB�j�&�����y	ۗ�``Љ���Cnz*<�k�*���GX�
QIi�~�Wx�ӪGlQ!���砽t�9p��Z�J��Wc�6�XM;.���%nFV�1S)���v�z`;U8vN�-&(�R���V�R�;'M=�r9���U�}�v^X�Y����B�1%�	�_8<
�D�OEG!����tC�V
��7I[�={���BAR$�v��bߗy�/V���΂Lo�͈a��U�B�xӐ&�59'C��4��iY�`@q3��U�����h�~�c����,Λv�:}I�
�c��
e�EX�|1�f��Dl��m�?Uɜ���{�a�)�U,�ˎѐl0�a+Rr�X���D*a��b�]��A�����M����K|"߆��ۋz�
�r�ɩX��p<\�iX������8c�e8��W����+_��L��B��D!��c턉�iA�b_��#B�C��9�0�y�l=q1P3'(��[�F�t�B1�V8b01�%�o�/&�|/~�,�)���r“X�UI:��~]�2�)`�e(^{��%
'�=�������;��ó�/�ǖt�W������h�3�~���J|���	ڄ4|�ޭ�=]�
eR��,������Q�r��3w���YK+
�� �X����5���[�-�Y��K.�7a���j�L|�[��1Ps������������Y�j`m0(5P��E��-�]�\���E�&���%�5j,.Y����kp������
�+��e���x�C�^{�(��	,���7?{�w<����}}x��`���� ��O�����B�6ޱ�ΜAL�:�ɉ�ݦV�b]���q�"<�.��ƌ6�J�			����:|u-Zd��0����C\�.IDGM=�%��*�R׌7���9{t.>����=Cs�1j��6�:~
��o;^Q~6t�p�PƨXe$�N���Brv>�&#29��j<]
�*m]�ҳq���98;6m�����3#^�r��$�(���Xs�V��ڠgۓiDc���x�6u��G�(Z�#ͧq��E$e��}�3��Cێ���6;�rVci�
G��jhi�'g��������j��X�4�4�ڛ�ڧ���Dlv	��r�;�Qu��q�׈��݋s���EcG��mB�ƂC��tY>�}c�2�x�o�1梀�l��aV!���h3*P�8�{9��*��΀�6��‡8v��E�pw!s�N��Xe����0�R�<�ǁ}q�ۅM[����Pȕ�<��\�
G��s��݋U}<h��+�R�4��OGK]
��nD�K��������-îڋ8��UBb��z�*�qn=�	EX�kѪՁ�k����40�[Ͱ������Q�4�����d%%�)t�8{���k�l���C�e#F!CفC�Xى�;���<5��ۋ�ګ�E-���
�q�8���40�;�"z����JDg�"�Ё�;Q��Q2�*O�ԥF�1�[�q=�}���ţDjl4T3��y��m�,i1�c�i�@DR&��8|�K
s祳c�1~V�Ν;9���ދ.��E)YT�E�T��m۶�뎉��vz����k�hFTL���J�f�WK2��`��G^F"��P��Ls�g����m�S�h�u��Z4��X���m,ς�q*%�7��P���FO�U�[X�N�1�p��y�W#Y�a��	Nv.�Fm�	Kgyk�6���(�;+� �]�j��
Ewsz�<֯Z:�O�Ă[Z~4��l���W�J�c]���WQ����g���ֻ}NX��1�ڭ��TA���D��`@{{�v
VOc?dd5v��P(����F��Ѩ��)�����p�*�`,����uF��8�{µTV@)���Ȅ��i��_ &�W�#�0ɢ����=�=�v/�=���\6�7�äIGIn��j�둹j✝��O�p�j��aQ��,h�@Bz�"����Z���\�G3Sj�G�f硇նYm^�����M�b�Y��h�cUI����h�����d_*���ƨ4��*#���q(�Nw�4U7"&�iQ�\���
@j��׊M����`a����[�P���t�㐛���rȳV �S�B��2*�ҟ��X��܋��<F�N����z�?��j�Nb�#O@~�4�x๏݁κ*��
��(:�mz4tP�x,�
h��ay~��ޒm�H�@J�B�ɜ�J�V�[q��qY�7S|����VV�0b��`�$�x˙����]��i�y,y�>DԞ�)S<^x��K��P^OJ�d�����Fs,�[��Ey�2t� Â�/F�ס�X���1���’��N7ZTu�QP��wl�5Wj����TAKs�r����ݰ'�`SQ��J0�[c];>%�j9�w�w�����!����MQWQ��|d'j��︸�I��@:z�(��g�8~qJ�d	G^�g�}�'��i~K����-**���ϥ��U���y��!
M�MU8s���l�c%��Sz��Wp�b�)�q���-�����BA�f��ʉ����a�*��ݸz�.�w!m�ܹ��Ze|���p���$�k	�
�ԉX^�Hs*�dH)X�'��J�]��rC۶윢Y�*%��'Z����`˭y��8;�D"��"ؑH$�`G"�H$��D"�H$��D"�H;�D"�v$�D"�H$�D"ؑH$�`G"�H$��D"�H$��D"�H;�D"�v$�D"�H$�D"ؑH$�Pt�VҼ���z�rRh�yJ�r~�՝D"ؑnG�z��v�T*o�&M]�������@H;)�$�ɐ���i��N��y�'�˩@H�f��" �w����2$�nSY�[Q��9�kt��j=�&�z1l	�v(��m���vڻ�`����h�z9a�٧����v���͌!������[
�R�$��5XY��o��߼�>*��a�z��s
uMmS�1W^���+_�:��ݟ���x�g�*p�A�\�pȏj����;܏�~��m���j��N�~G+z|�ٺ�'|�߾�o��;4
ڮ[���*>:Y�˅�Kq��z
܅C��Gj���r
!5�����}������a�x�y+NA�����p��%4hǶ?�ݿZv��ʫ��^�s�+Y�5V)�Rz�Z�_܎k0�jk���;�����2t6�Ã�ѡn�+C�0N�?��q�hA%+[����a�4�V`��Ø�:�4����z��S�~-�6��[ڎ�Fp��>/o@L����݃��F\.�WeЧ�_�i�p]� �,~\M�(C�9�k0�q`��{.u�|T^���|(�,z�:������P��v톞�}���迼8x�OΫ8^ۈM/��m�Z|�{?��b��{��O~����h�r��q��6S?�{�5��w�VgFr��]n���Ңl���O~�smݰwc��O�U����S�x��c8Yz�z�-g���e�\>����2�^�Ɓ?������������%���3�kr�~�o~�[�ڿ��Z�X@�8v՝�K�ڃ���|X���X`i�����/wy[ߕ�x��W��D5L�h�i���Ę�'rp�(����SU��R����	���{�.2 U�����w��zư��'P���׺�^D��O?��W�xu',&#��ߋc�j`jĎ�Ǝ�
^G�x�8~��!���Ya���!&>��~�&v�=�^�
x��sx��9�U�,��z�q����F������C~�7��wQJ�N�Be���A4�V���>V{�+_#t�>Tu
C#\w�z���;[���j,���eBe�E4����R߁�ᅬ�=}—���:��IK����U�j1�7���a��lc�0�~���q��Y\����R�)m�V�*ΞALj	��v��?}B5���<._i��j�J
n�]�}�n��/�==��P��M-
س����cx���BL#=8��[xsχ8����
v��p����v��̅��ى@�(��, Φjkk9Qu<�"�d�O�0=���p�j��������Z��=�(oB��}I�p|;�6B�]�����8�9��
��ѹ�5سK��8����Yu�'�j��s�c��u���=���d���a�BDǤ�3OmG�c��W��탈�/B�)X㲡6
#2��7~������S����PG(
8v�Ct[0�'��'�ı?�}�Xa8���8ܕ�!y<^|�tVW �ѿ��Z��O�㥿y	�{w���Pz|����}�7[8<����nkN�F��*;����u�V~'�\x`��?X�Ͽ��N@�@?N��&�h��(b��a@��mH��6�m��|F��#`�A�=�
4�����Tiao�@��	I�3��=p�����1yK������
�����DZ��-u����~+�.�5*9��]�	��h��q��E�e��v|\*
��8u���?���ȰB9
ׇ��ǩ�F%���	,亱���(o��H� <̖-_�)1�7w�#�06�o����`a�nd��G���n<pCn9"4jD��#/#��*4jyd�Ġ��
6�\2�����Q��s����D�$�1̮;Y�U�Hv�P�І��2\ijAU�N>�=�P�.Fr�窫���Ķeih?U�n�FO}pVN�CGB�ZQߧGGktVFh��#j��
8_Q	Oj.ge!?�1j��=8]Z���x����G�U�E�A\�hƈs���O͈c׵��F��t��-8~�$��[X�4떃��;:�Z[[�
�;����3��Y },))!g���I���Ģ
[��k?��gp�=��NƔ:X���O���߾��M�O^}%�o��~���<��ȟ�p�:���m��"x+���س����ȇֈtD(�Տ���U�#'�9Hlbc�V�`�ø`+��ǿDA�^���߇:!1qj��]4����5<�܏]��A����$�	67�D(�P�&B�R�e�#-#2kze	X�l�SUh�ڈ�U���{��%�p�M�������-~��l��v�VU�
��bQ2�+�]<r�?�o��Ul�T�[gì���e(R�:���K��v#N���u����?��?�qd�C��������6z��8��1��s�M�AV��E,"0b�&w5�~�Kش��F�*�p��,��dx��5(�e��"o���/<�������ytE�Y�	��Խx�w��;�`���3�~��X�<��.H�~r��C�[�*����>��D5FlH�<��8ۮ���>�i|f�*�u����e�]Q���vČ� ������Kp��Et;S��A�$��#U�^���q����08���ނVV����?���2Pz�
���1�E��x��k�&����U�F��Zl�����ů�ZϠk�c�>��i�!�!��J��ײ{�������b�6�w���6C�s�}�Q�Zqu،K�����,]z>�m+�{F�����zI.=�W�#}˽x��5��(�nQs��T���NlI�088�v��$�%���J���,π��
1����@��(��3��ڪ�.���wq��O��Ú�\��P�݃��*��?]!�ѡe�4.�j�n���SE��ߌ��MPEF��p��֨�;��������Y������|��}�9���N�܆%�J��w�	�������qܔ���b�a�ՉLf�i��H������ᵝ�u��0��Á�
E�b�ŷ��]쮵�ٿ�;l۲��OCkrB�隃�ȁ
aɂ(؆��m����k�B�G��E|4�
h�bÖ��֚�2ď���v�q��`��?�6[�ڎU�6#���ނ��Td[z�w�EMv��R!.J��;@;B�A�j�a�X�̋K���ފvs�Y8xQщH�,D�K��AR<�<q�N_�ۨ��`�j8���� T 5I������3(*و幱��b��
���]�4s&s��z��(Z�sN��Z�:��l%��~F"�i�RpzV�:VɊ��k�GQA*��.��=
�(+���{��`���{K�Uh�j�cO9NT�C�VbǮ�Q;�F�ˈ5�<挨��C-[��FHsg�2���N$g��;N�ޅm#��OEUm9.���Jk���T�o���yE(IL@F�4��@��Bqw6����մs�NNZN�(M��,Jɢ/J���m۶\wLL̄]��Z�3K�c�j:{��kO5���b��e'p��EܢL8�:a�␜;V+�Z���,`Z���6�GJ��t=��b��u�$l)H���r��a���ά�R�0H���K�j��#[WJ�ԃ��
\i���囱2+^H���%`A�3À�_W�v.
����qD��Qv��(r�x9�@o��i����{"����f�@�*Y��'��{�a�mKⰚ��m�@aAY]��V�05��r��A�R���$�##�MJC�7�	��4�Q	)8�5��rt#>>�	�ɱ5��\���܊4VS�")9��!�1H���s17p��
vu"�o^�(�z��O����]w�C�E��,]���K�^P�%�̍v��l�K�@�̈́������X� ����]ll�r��ը��cŦ�H��Y0�����Iha�<����tz��"�moD�E�e�y�<v��7��\qVxS�^i��%H��1�D����;�c����t�ϗB]�	r�f�u*I�aDgEB|<<옚��F��x���X�0#f	qr��X�$1����*����2��a�Jﱴ��|�kXEG3؊6O,�5<:��S�J�Nv}E����2��+��\�cE�x�l�;�Q�"��.-*[�X�[����F�@c�3>��^�k2b�8ͬ��*�ne�&����޸F���G�
�=#�Z��,.�,��K�����`G��v��]�*o�tWqx��5�=Q��fv4�
iދf����%7��P�{�K�N�e�H�ޕ�c�$�7V�„�BOL�`G"������p8� nv���;��D
W	:""�
�D"M+n��)J�D��ΰ��@���H$i��.XL���ͣ��C�a�D"���ӈ����ݬ���D"�n�q���l�̬��D"�H�f�W̓���y��NKD3��H$RX:���-�`���<��2��t��H$�jC1Y�t��`l��������:�D
yxn�[�nF{ݴ�7��6��A�S�D�.�<6�4�0������ن�Tb�
�o���x�4���D"��!���mV�s�P�޴S������]<t��H$R���m�F�ȼ�X�g
�F�����]����D"�.��x���'^��?-���&�����F~$�D
9��}$Ҙ3�<�v(Ӈ��Ҝw�n2���9��D"�B%�<��������}o*�<!��vr����[�A���D"��CE�t����YY�����5�&rs�
�#Y�͎D"�B'��"����=+7A�C������`��Z�q��H$)d�e�6�Yef����p�\��.X̉�b�yP�D"��`�Tv**sV§��I�k�Í:�Y�ݳ�>�Fک��TE��6;�D�����f���9+�.X
s��eH�tJ������4�:����N_�D��ߑ��ٺf����3M�M�Յ�&�����<�	�� F"�H�P�2�{az�ݬ�������Mic�z"hAϑ|~�y���D�NFΎD"�B�6_��n�l9;Ow���R~�<!\�gw�d2�	�y^:���ď$�D
��9����GYfaP���a(�nZN.�a'uz�t�h�t�`G���j�D�H���Ѩ빩�2�C�mv��4��n���n2g7
:NR�v@�)̱�
[FG[r$�4��=P���n�����%Ȅ,@O��/Mߙ����MX.��:�k9��+PgN�z�v�:u�y�z��#2�g!q��5�D"��s_Ԭt!E�s����}�F�x,L�J�'y��M��Y|�!�h���L&�'���mt�P(2?�Z��f'ry�&V����_�x�_�B�|����Ǿ?
C��r��[D�|�H����8|3�"�E��Z��Ux�j{��{��A�5�g@��J��%yϻ��9?��ܼ�)�7�+�J���~��R 
9>�Ĺ�8���LFS&^�_d�ߓ�����n�?Z�"�fKj��`G��=81�8g1�d��n	�8<��8���@����t�ɰj�S�T��.z�ϋ���=��3��K�����
F�����F��(�BIw��G��?��	s��n!)`� b��3
�`w��Ďn`�>FӖ��9��`b�Bo������s aʰ�;w��j��rq�~�{c���g�	RX�l��+�<'߬8,1��I�-�y8g|<�LJ�[F�G��e~� >��ҤiH�عq})pmBO�A�y�&	m?&�*,l��F��<�h��z�p��9��K
�@N��8I���q�������Ņ�6�Mp�.~6�w�C�43Ra0��dn(�vW@�)DҾ�y��Ƚ���5zz�R�<�so���D�n�KA7�6�G�hn�õ�Ux*�ГS�9	!����o:$��������m�lC/�jB�f�|>�pq
F^��|vR����}F:O�u����d�50�&~�}m�!�_i�QЉ_�d2�����N��<	�8iaI��EiO)�<"��ą+J����ݎ�� ��a��n��\���-?�f	x�T	P�+&���;�O��!VKM�?v�㱸
O�{⹍'�����ؕ��{�VpuR�S��A�dg�N����O`�{z��@����?A��l�[X��vuz��F��)7䂋���
1f����G�@��.�QG'MMNt���]?<����u؍��9;���W:;
/���+X �|��|\�,
Rₔ��1m77����m	��z�yz�|Fm���A��O���;y��F�*�{�'�uq��x�]����q
�s
0�'��.H:D
.�Ϻk��ƏÀXR���[�1y�]��70��>�5Kp/���j����N�G����_�|U����ڡ�)`�WnF����E:tK<f/h�t���3@:�kZ�ڬ�n"�/��7JN�Z2�	'�]@4��njG�Y
r�yR���x�K�	+G���<n��'��D�3"��RH��5+i�@���j5��)^��Ʒ�'IW�Ǥq� ���e�`v��c�5.PP��M�Y�H:�vIoRJs�H	��=D��ݎ�@ss��1�7�H����f��6�`�U�~'K}��q�N'��&st"[��
�ޘ:Q���M�u�[j2�����@n�Z��.�7���g��ny���RP�{-�ȇA��(&��4��GGe"Pq�k@�Ү����iX��݌�.T�I�����p�|�ԡq"�7:���w1:=Ɂ	4�\v+Cn.�n��r��0#л��'ܴ��ᅯ�ѯ�pu���vp&�h��k�xr�*��L&�-)����f�q�3N2�s#�<c��褮�ߎ��:*1� ����Ɓ��p �F&����'�LM=����@�9����}�����P*�U��/�f,�Y��}.�����d �YJ{�K�M������݅��@��G��k��{��%�*)��ÓI�ܸER��$��m&:��
pn���ݙe��7{?fb�E���Hc��Vh�����hx ��/��Kz���8�2Q�R&�e����ϻ�=��uP�4��ͪ��HB��{��s���0 n̔t\���Q���N.qur������v���D���%���7�Q�&�d����H�U2�S�b,��^y��w��M\n�M�����lU�=1�xѵ$���i%�*�tR�鰛��̓�w����NR3�'�"��$)�q.Oz��,XOP�v�\�MO��H���`µ8���@)��?�2:�;���ܘ�ȵ��KL	/��|0p"pg���2UЉ�H
����_wwq?�ċ������0>�)u���
�� G�#���A1h[�o0s�:vn(����p C��%1R.y��b�'`(�nJ�S�4��H;��э#�轠��ߋH����
�@H�}DI�*��{�c��z��_T�U_��k���>%�t����殃ʍ�Nt�qO�\�o���g�m�F�D�)�"�5P�j����cن'Q�3��=z��s��?<=��A��
����pt�|@0���t9RXUvz�p�����/b�+"m6W/�h	�oh�0����L�fd��q��0��ɜÎ@G
tN�yA
1g7�ԇ�ifv⎂SY���V��"���}�I'��#ȑ��H�����JǢ�+~�lo�4vK��M��gw��n�'f���`��*@.�kgG�#M�!��BJ�`�?�کJ��M�c�Tb��@��`��򍩧�nv;�(��Oz$ᵿץ4u)0>�Ύ@G��s���l+Bw0�_$m�S�p.�]�a`�N�8m�L����x0�؎�|e� -��&ᮼ„����aq��\.��Ys����t����
*��6'Xl�������y�T��dB�N.|Y�;���#”�8��<��9���J������^�:wځ^X�f�v��J���_�w�����V;���X�57f�G�����ع|+FRR"*+��‹/�ۿu�W���%�L&o��tYFEEA�R���CN񶑍]��E�C�+L�}>�E~>�_�b��Y8� t�p�P&��Y�ݨM|�;�"��O�t)�|y�K��dBPe��<x��b� �Ϝ�<ާ>�	�J��7[�pۆ�(U��!#&=��{�T�	�B	��ʠgCdd$�t���CT��]�
/<9�؝D�
�`�	���=n�m>�¶�]��?����	��S$�&
����J��j.6B.�,D�MzrS�M�)]�3���S�@��
�n�%�_s��ͨ�$p����"cX���������V��xbm46�����
P�"������t���y��eg 2�ܙ�ho���E���AtL$<��`��	����v	`s��㽟aO�f�s�=n[r���_����Πs0�;mV��v�&��n�5�-�2��je��{��#8�L�3�_��>�����p^��i���C��;K����	��R&��fL���(�	��LV!_�3��c��J�8����ޘ�x}P8c�N!<2py!!"�}=
C�#dc��ڡc@b��kP1*f,J�3ȥ�΂�А�9�>��ӱ�+��_���|�W3��=����Csc7�b4��|�Q�[^�}&��Gn��ݾ��_m|�?`.Q��el�m���?�>t�����+���?{'.5w�)yoxǎ�ő�����V��������ֶ6m���_ʡ���^���ah�<.7����H�W(�0ڛ���)�����/��0G3�IA|�t���_�Uб����;�vH����R�o�����h�������{SSCj�:<҉��-��f;]%��d6����NH���-����e�|����w�s9;�V�.�	��rh�j���j�<�+\,r����Ĝ\._����4^mA]m#
�󐘘����h��Sp��qR����V�A���w��~n�ڵ��+�0Wi��N"B{��X�qo-j���̸RY�%�8[ߍ�h��DE�+��v�̥Dʜh�)ǹ�6�'%��G;p�Ōeq8w�
�f]z
r�:\<}սz�ژC�a�wCV7�>�>����ƈ>;z
U<��ﶔ��U��Q�=mF�
q*�tF�4\��DZt�R4��B���Kׇ�G���}')ڍ�연&/AN�u��QZZ���AT��q���-8p� ���`���C��dg�����p��$F*��~��A7�mC8~�
-�=HMK�����~�xs�D�D���e�����Mg����]?�w��ī�o��jD'�!:"b�@Kh_�у�K��3.���f���`��(�&\��Y����V!����ݜ�=L�8������6\�8��"'��"���C����?��_�r-u�aƋR��R���rLp$�".z	�y��}3�hv+����&-���D{{/.fW�.ފ��f��u"/?&�E��w����i(y�3��wuJ��S���ϗ�� ��G2@�����[���Ŏ]��W-�Ӱ +v�\o3��;�Z-�5�Cn8d�尥�0J�#������2���*m3�22�h�����dEtRtN��7�r���Yl�amQ[P��`+��k�yC��މa����V��džŒ\v�\h�.Ec���EC7bGLd?�/u#�0)i��}l*��G�.pz�6h*��C�܅�,��ٖnX���YՐr+*Ϟ�;F���IYpk��du>:>|ژUؖ2�ޞVX58�o�CK������hTמc�8d0�u7��*��Q�Yh9�!J��h�wC��C���[��U���ф����-f�\m�T�J]N{&�I��N_�;y�y1��Mj�o
�H�`%����]��mqƒ�w��D������7ǜ��†,�,��'?��.@��}F>�y��ș#���h@gg3j�a�
!+3
v��6��1�����9�=�����m�������(^�#�9�&�&;�,�]8w�V���uK��7��eː��|�eT�T��G�=���hy�z
s�4���S�e6{�.�r�Q��,d�ix���	��MT,J�.cϙ�+��-�ۅ�K�q�r�v��6A���i1(=w��irt]��*}p:�TG����,��#PU^��!T���DDz&2��Џ���x�d��h�"!c2�������G��(����H�_����5��pA�\��9�~�7�#aB�ф%�W� /
Wj��O_?�]���aX7¾3��C�J���"��q�Jl�9���[�k�-��cU�n�a��r�=6��2Y��� ��Io*�t��T��.�����DS��f0H{�M��(�
޶2����u���kC��;��Q\��%K�p��6��Āu�=�����jc�5L��

��ѧ�v��n�w�6�Ʒg�X@S���[��C�/���v��J���|1���%��O=�����
8�<R '	(��Z��e+�H_�kB
�18��z�ʫ�R#&=[�!3N���'P�Ԋ�!���&�E��u�p8}���4^QA1l��H�U��;�c�@�+����aFe6./@E�%$���b���+���]�Mc:�1X��9�3'�s�bQ�~�BĪ9�؝,gcs|*.�C���X��V{4�f�ٸC��ڰ=5ag��e��1���nFB�fY
V-]�R�G�E٩��h�k�һ������}��2a�� �n��K�U��A�̄35�,#���5,w�������sZl�b�
�wn��>�z0:�����9�壃�;��8����{�zݢP(�N��Ҳg6���ggg��.�N(����7'��y\k������G��ڍ�5�h�tر�Ctt5xk��	===�}MHH�p��"D�Z}^n.6o������sr�﷼)L�ɼ��"�����;?:r��j�q1g0����3���x͙g����Qp�g�97�6�������{��u�g���>z�l H��H�U,ɖ(%��v�x��I��/�䷿�$���l���q��cّ�buR�D�0��^�9��Р�b�9�սsq˹�{����ݯ�6ʴ������i�t�97S��`�<�z��ɓ'���pf2>~���`�:�����^�~�
�2���.��U�`�-X���E�{�#X�ѭ8#Z\�u͓�0tyn#)t��0?n�%`��9��	3�30gȶ���i<��^|�k�x^^>����$���,B� ��)2�Q"V��J�/�U��4�̨ߺ
uu��IZx����ߡ ^��7��蹢�|�k�	��;��&�ݙv��2b̵��Vƒ[�߉׃�r�Z+
�-?�8ȭ�"x��D��=�!�v����(\$��0���E։	jc����8���x������1��z8�ڒs�R�q��>�.�p� <Z� 9��@�ԐS��
��t�0��ه)�=�@'��6>�A�s�T��+��tt��We�K��:�X�ab$s]�:S ܖL7t�����l^W�~ Xš�P��Ԁ�nw��8�?�$Tjrrr�g�m4l�Gss+fg瘻�Y�bR!���)�)�:nQ0Әe��FU�9ɇ��/�$Y�z+&�6��6ϝ��۽�6k���o�o6y�W8�!��
��.���u��:���^������g�[tk�{�n�����@l��E'怌�+9�f3�h}ݼ:��c�K����Q�€���c�47}���N�#���Tg1N	S0s�L��]_(�B‡��Y�.$�k>�i�C�Ѭ����Dr(�k�Nr�,�L�(T뱷1�P���l��gm9�>�i[����E�'G����3h�<2���K����\�~d��l5f��Al�xs��N"�P㔵�ۧfQy�n�3t��3�
N���`F�!��]D/G�."⌀Z���v �i��\�`0����y)|��2+N���y" '���|��A��`�A���(�r�8tǿ�;Z��h�����4N�R���139�G[v!]™ON�l�D�؅���p�}���(L��#
&D��{0	%y����nŀY����^���7�&q����t
�q{#rSe�p��++q��	�R�Q���B,#
IXBj&��Q��)%��8w���Jq�ȻPo|����|�{�����͆��
�X��3���-�����bñK��-ʆ�m�4/S�cЪ�:(��K�%�P_����Kh�Ů2��=8�:��=�I��q���rd�K�r�>�>ʶ�gb�[z��H��nCQM=J�q��a��A��&!6�A!}�,2���]>����?Kr����ũ\*�
V�2���R�@�n�45t���8_:aP�x�Z��Χ��h��,t���e� �Z_R�/j�('��D,��fY	 ѵB��1EZwc�!��R	Q�T�u��Ő��L�^߿�d@S{�Z��0�`�#fVw��k�`j�=�E'�[�}O>���kh��E�Z��1+2J5��O0�.k
��m�EV�f��v��lA*
D@pxĂ��dFn�+6�C��#�����U�>}��RFVXȤ���kH��#`�����=J�%Х��4/�=���0�1,!a|6ƺ1�'�8Ђ�����/���6���,�J�c!�^z�<�l[��D�̀�)z[o������6��L����C��Nj;7#���H���B[�54�(�X�yCpy�������T)�C�АY�9�Iz��Nim����4�l$�n�z��rc�J�wĭLx?X�m4N,��ZcŁ�3��q�H�B�B�3���-��}�X���G*������B�����rL����٭�����q@(&�F���)P��"�`����.=
:��SV�U2dgg��<Ófd��1G�J��4���'�#t�����,�Ls����t�2�^2��0��1�r�N�PMjw�`zb���av�������B�^��-;�-p`bʎ�$Z�/�c�]�jL]�f�>�U�hQӰJ��c��Y���b�*�z=a��.�z�Z<�
��t=4j)�Ӓ���3�V���9h�I��jE�CM蟛"�"5Q��Â�aL���h��b4p98ݟ�l��4���>��㄁��hH{����N��N�t��5۰93fc?f̦��[
 ��`�_���|%�{#ƼW��ߚ-u�@���hvG�)���B��!Ÿ}Laǎ��J�"j�"�4?!`��
}?Nq��"'��u~,:�VH� Be��B?y��\8_;�G�)�Y*2_�j;�z�]��ۀ�Հk}3+�p�^���t��2��������K‹�=�S��`S�੭!��HW���� ?���r���e��/�*��$T`�!XAv�ݎ��<x�؜��ޛW!&zoc#�L�n�_��&%RZ��{	y%%��Ͼ�U�\�
)9~�'1f‧d�v���HR��$�G ��dvW�C�ς}zb}JS%���O&(2d�o@!a��Z!�������2�������)�����H]�ʋr9�rZ1�r96Y�aR�2䦨�`�Y9�� Q%@#"�LĂ�T�4_���C�Z��_�2*3��T��S܏�g�J�_�$����4�!�8v/��%���ɠ)�-3�QN����ȣ�=�%�D.�	9��ed6���N�tq�r��(;���c��td��,��п���<��U@Y���E�(�q�߼O*��?�	��EHx̥�E�,�e��v��������g�S������G0��T��/뿬�T.��n�]`�M6Rv�^7"Lީ�%J���T��b�@�%�O;�/u*gz��r*������	��ˊ0�����`|s
�^�@����)���v���Bl��0*ȅ�=�1<��'��s!�B\��ni�a\2ć	sn!X)Ѕ�˷G�+��!�e��M���K�h�2�/��ZE�ѿ�j��c]ݧ��v���0�ЋXW
x�B$�y� �ÎI)�	8H�G��
�'p���|V�0� �	X���,��//")���T����NT�;Hp�K�]�%?���>�����.��.�CJ`���Lo,L��=�{T�n=��w7`�5^�ä���L�&�09kH������E4#9��;i�.������Pݝ�3N���-�.и���-\�R��T��'�
�_�3���/�Q�}v&�w�F�[�����������d��w?ƆG`���#�g(��ZH�S���ɳ�r��.t(�[��$��z̘�Mȱ3
vb> 4�U��h)�aE��9��<p
�ö����.ȉ�1?>�/���&�@8�;OH�9�O�� ����purJ�u�/B��}�0�,�
��Ă�;�!s�ۮ��qr�YN~*�`�|f���-�At���������jӣ��l�Yl�~�}t.�]E8y�0NwO���^�#��~730;���@��!���)�E�G���w=���q���/5,\��1�Z��g���ދ�ϐ �+.bp�D8
�GלwN	�(,�x�ց�=&:%�������P�"����8�c8t��T������H(��ݛ0q�$~�6��m��S��!�� �"�pY�ɯF�B������1�=;�A�c��G/���Zh��cM(��C�Ə3�FT�$��r"����5���S���|�����0l�l4��@L�ʓ�W�1�݁ʢ
$I��v�]�#9I28,nT���'o��

��� Cfi:�}���%�,]
��K&P
2ّ�v�nL��fp�C}:
q��9:ج>Tn�֚"6��O�L���\;An�d!\;w�%�8u�����*��&H�k0�ۃs��x�����x��q#k��S�#��`�/��ՠ�=E�˽gv���=� ���N���5b�/.��<��J���I8��B�|���ou!*^�csB>$�H�E@�>(ħ�����RͰ0̧�r�Lw
����)�Dh|h!�3�Q��O`Se�s�I�D���0�U0�����p٧a1y�i�F��MH��
�*���� `cCo'F�a'�}�0��Lt��wl��xF:���3P����1�:3�ɱadljDm�c���cw�h��=*A�c��p��7�H+F�ЂOn�C-�0e �n3(ں����k��Č
u{�Au98q�t	9f�!��"Y-�7�&	�N��^���!U�EK�}����+��s����D%5HsZ��'�D=6nj@)Y��38�?�����z�<�Sͮ܂���opp���O�����>`��_:�;��v���3�,12�?��`�9^���/j(2I%H�.�YcC:���߿`�ɱ�0o�������DžLD*b������x����Pq)�f	,-b2̋�8��
�7�����zYn�c�h&�5���&'`p������N��1����	�B�Ά�/b��$�)����iS ��a�jAX�FQ^
�r!{�E2p�h�O�^&e@�c�~=n�ls��W:|�2n!H�GN�-!Y��͎c�ϡkp��9�����1S9���$=v5lG�:��LX��ͭ��0:1�����>8����p��IL���t�"�gϝƤ݊9��0X�b	s[q�L%�M�a��rml=m
P����i'��D$�	ؚC��(p��M���"h�\��B.�F`�5&6��ӂ8�ȏ��?�~(o��v�Ř��nD�[� �4�j$k�@,X����̿.��P�!g���1��	a��5�ur�L�Ig���$糎*�"�x��Ӌ�E	s�����[f�Z�ݣf�>h�K���I��`
��&�W4`�b��P�g�##~V�
�2$��)����ߊ�1dr)�~�+(����U\�ك��.�5�hp�s/��
n�� ��PаY���8f1�CB���Ȇ��d�&|��&B-�K"A�U���GK��U�K��1���|�s(/'�c���ن�t@"G�9�H���<BF� �g!##�Y#r
�
:!W� -;vrOUb2�,Z��{�iEuh$ %;�5�)y�i�@^/��۷{'�A��B4����)�:�Ճ7BϜ��������Gr_�UxyqT[#�����(��5��TNLq�c�"�r~;:;9s&��R�X��c�=vG�n:���Q�r�~w��,W�h��	2+�k�,�����/8z�,!�[Z2�p֘�����N	3��p81Y��w1T�~{t-/�<0yf�����,�&�Љ�3�t�H��PR\�1I<\N��O|��O4��S�"����Zy"�2ґ�����qw��1�$���}��Y� ���B���>h�fm�G��?�����D9���,+e,_�N��=P_�z`sk�CxI��D�4(t(�:>D=^�H}�B��-	�^Gȟ�8�)(:%�dz@.��f�9� 4/؁��p�b"���n0��r�5�!(�1{�g�|�R��ƭ�o�����q`�,7�W/��f�9�cԟ0�ܯ���>�1o%��~�j�^��E��0�0?�b
D�L�6CL��D��w��uc&!06��8��eu�z�'�⒰����*)�	9�$s4G�MZ	��͇0�A^9���)�	B�rߓ~�&�K�7���A���~Yz��V#R��ݎAʃ4z��[�Cn������N��p�0�*]�d
��D��B\�f>�������a�~��~@�A�y�2�@�_���9�X�g�g�s'������ȄC�sέ<�~r^8��r�=�ć�7`r��n1><�)�wMW���|�fLJ��7��?x��A�UG�1m��G��+?�eZp9{��UN�GwU.mM���1��ӡ�Ab����
pˁ�r����DA/ȥ뉀CR0oiI	^0�g'�wIz|D���>ޒ�]����YW
Zv�ź@��^p���BTdI-f	[i]C�0�0w��n��z��v�{����^�A8<���n/k��	(�6>��k8�:a(0Մk�<���>x�ߌ��d�~���[؋��V�\�z~�^�;�f3��Y�l�����d�]���U<���si~B��N^�	�a����&���XmN�Խ.��ͦ9�����U����[�Ͻ�~��vt������[�6�F(�5�pD���];���+�g~!�bk,�B�)�nIO��ݽ���m�߱��0������y2pq�K�����]�%ѰaA�k�E;	�h*�gԢ����yX�z�/ȩ'(xz��Yn� ��ؒ�'9��9V��C�X��-隲F>+�ͻ&,C�s/����08��IPA�����P�z���7����>ڎK����LĜك��Z쮯�V�ۺQ��nXn�'�F�)_
yZ:^*�#�,	����$�uy�0�~��B8P����/��Jh%n����Aݶ퐚a��B9܆wN]������89-�޺b���B�K�g�~ɜ�㙏ށ:%a���Llߔ��G��!τ�8�s-�ؒ����J�����s�%� u�N�����zd'&�e�D�}�LH�x>x��7>�ܔl�?�!t9Y���ĩ�M�/OFSS+�|�ij�7"S��
t�w�F@�‰5[�D֘_�J�$��>0�{-��]@Z�ŭ�����������@ _ ��v��>�r,��@B�4�����kG�"�Y��.+.3Dd�FZ��4�BŚ~�0�^&���+�#����d�4ce:a��c`J���IM�Ca><�Ȯ�r��)h�7boE�b2	��XF0`"�ra��V�e%�Ф� 9;
���w.Tb��/ �=���.!�(
!y'.!�DH�&L�at�P_W�\�
Mg�1_��7�,x��gP��s`5�R��r�����B޻q΋ǟ=��S�)�X���716�DY^*�…l�a��Tb)�2%�,.eRdd����;�U�{����^?r��=�*��������U��M��s��=<Ʈ{��w�Rg@'t��kq�^\�xI��,q�͏�>+�8�s�п/��"`�No,�hZ	8w\�W���/���;ɲ�k
�C;sR�8i�G+�ںdv���^��������׈��G����})h0�a(�g-0c!t���������VN���O�4 �k�&Jw?	�H�	�yp��*+j�&9��O$��J�N�b�)ۣ.b*VsY
D�A��ct3���8��H�}�9}�y�C��ܲ�:�`�Į���
�ܩ堧oְe� &'' W'@1=�L)��g��)Ʀ���]Dv�T`N"�֝{p��yܸ~EU[P#`jjn�C�06�"�)�

�):'��(DuV��q��W�{Tb��
$��P��fl��4
I(�j6 �BFA5���p�_�]��PX����7�C#�a�,G^�}��`��A8����N�ObCiz/~�|�
�@UR�$rͰ<�����腁*-�
�p�ۀ��H�<����|����0y�;���G�<A��8DR9��j|����|t���dy8\���"����U"2��, !'d�a��'��7[��uHW�����?�-��8��V'��@�jл
tk���r�p^�1	s��j��с?��?�T"�P,fF)B�hN�/4I�H�屣:�PO9j\29k�����,���{G����'l���Y���r����‰�!�%�ȷʬ.YN<!/�	�Pe�Т��eI�����������L��4!�3�O�˫��N���_�]�
�lBRN��y����\^]R
�s�t�UQ���L�:�W+��� O�G���=cK�иg�+�H�
��4�U����hػ�	ɄM9Q�	"'#.k�AN4�-ڂ?��:����~(�3!���8X�#�\�.�s�v� !LT/�Ę�[�@�YPU<�=����' 9_i$J-��p�'����ɡ~H	8�zb7���Xg0`&�_N���瑓˱���'���	��Z&��\�3�}~���k끟<���>���N����1{��¨�������}E�—�*�GY����x�0Eؠ�1��Q��]�gv��n�ѭ{��Y�X�%:��ms�k��-��`F&p��l�8�/=�:�'$$@�T`[C.]�w���Z����Ż��Ь^�ʲm�O�61��
��LH,�E_kΜ����_9��{�A��2P�����K��]�=��G-�X�Gn����\��{׊��O��y��k��B-j*KٶT�G��^+���v,Al+,Fz2o�.�AǟO��Q��L��,���G�`*�U�&)ܕR�+++�SuMJYl"��́cfAď���.�fn�r�9�%�yއB�Fw�HMŨ���B�Һm�4�X�fw�ޅC
^��B�,t���	�����-
�I_��H~���$�!(T��ܘ��� gt�~]
R�N����$���i�e�ō�\�P���׽h��iD��[�"==�EH���
�zX,z����ʵ+P��K�L?G]$n�F����'p�f+�2��%�?�(rj�9�hK *ل��_���"1)��q$fe")-yM����v�$����o���
�"�F��	��[
zw���[����T���Z���{E���
w�Y�k�ɟr�̥�/�L��\/�nTp�W��������F"���Ľd��|I;�W��S ^>;��v�֗���ֵ��^]�ud?*++����X�`5�����YH���i]�ܨX�O>��� �=�΃�
kEה�I$��K��_z�-+��$5����\�~��z�qd?�9`�2��J��&��C�I�p����G��U����0Mp	X������s�vP�[�
	�S��VV_Z���R@�5`�MЋG#��O���-XZR�k�ovG��F���0<p#.��a���	��?�`�K��j��[8ޮ���ݭ�\�~
n���(--e1��vT<J�M�o�	C�
��:�.���h�����)�˙~�^si]"��f�Y�{���B��׶���%B�ƌ_�9�����%$��x�9#��640�IhtP*T����	A��^��>f�"��C|Z j��Ela�ǀ�<�߃�V�
HMI��n[��L��h�^�`�TYEHSݽo`-�ⴙ135�>�)ڻP/�ov ��ʐC�Ӑ�PT����0��(�J��an����w��C�%�\���W��m�_�y���CYn� ���1��=
pT�F�tt�HYZ�������0f�ySf����#c��]켈K�R�d�B�M�P��D|Ԅ�o.��s���.r�PY��'wl�@H�U͗0r��v����`�4�Źp`��p4�^�g��"�r��0?5�)I��tP������0d4��@�Xˮ ��o�b��Yp��U�0�ci��r�[���i����Ml���ϛ��sp��v�����8c���8g�1�������yɖ�� �'.r�i��_����e5������0YlB`%L;'�^\�x��H+��g����FX��Z҃�g�a�������,z�ΓG��Gg��t��8]�ar��oӆi���N�f;'z���`ʴ0�r�zz!�L��t�g�mW��ލ��mX?|����z��N�5�v3�&+۞�������[-s��'����!NTIY\j��#��*,U߃=���.^(fwA��9 ��[���n�>
���,�C����1|C��k܍PPƢoP��o��"�24�ME�tq����P�G6V}�ib�E2��jhӲ169��=���K[��-h��$|v�%'�1s�&�;Q�����).s9;�|5��ʨ(U2�B���"k8	xS�!5���L�?��(Eݦ�W��3�,j�X�X��{��"ל辊S]6�g�q�_ �8MEZ��9j�Cf�ĕ�>dV���q!�6Y
JD�t��
x���h��_\��˯�#��loN]��š
�+�D��o��W�it]��SI:�b7��?3�����޲��A[�
Y�4n+ο��P�=�B��/\Ajqȡh�|
��R�\;�����!��r�6j���q`�?��!`�mE��
��C��0s�(�I��#h
�3_;����J�n߂�.|�����4B�� =f����Ѣ����ty���q��|mN
\��8����L��� �j�4�kz��bl�^��$Խ�Y�)��ZT旼���T��r� ���]���?��N�Z��J$²��68)x)U
�z$�|>�e*$�Ga8�Rv�J\�MA�!5N�X̰��,�XVV���Eߟ���A�a80!�KZ�۞
åS�17�4)eZxZ�0t�
�Z)z&�1d��\M����#�����A���d-!�&@Aب��A�ǁ���
#�w����||̵Y�.'ڼ[�'�%���u0\�	�<yi���<���*fd�N�B0��`�����������;��w��KH�-�t4iϨXEȅ�2�	����g#�t2�ð�dhE�.���:�ө)�y�a�l!��Ö-{Q�_��6w�C���<։��\�nކ4��M�¡/bff����>���,,\��P
@�ٮ!�����#�<�ǡ����U8y�$�W�������g^����ei�a$a{^::�w@(� a��jY���,�}N���`�^Tf����n��5�:G0�+��[�O�ڗ��������zTi��`2�>ao��G�̃@՟����_���x��ے*~���#��5�|.;��߼hU(`����E���wѿ�|(??��
Bt������k*���@d��������b5[ �QCL����H�z�f��k��-lظ�U3㓈���0�����#�5==�W�ť�0*�ϣ���FBD�)�����"�L��L�AH"GX�Gre%�E���n�
���R�V렒�`���{Y�;�ɱ^€���		 �Xfs��N�PS��������.t`�	J�x��
p��K�Wڷ�{�u�1���((b"Ē���*�B)������D
t�?�h��8���Q��$�Ȫ��N"�W�a��F����4��g��v�AS[/��Dd�$�LPh!��v�!��Q��wH��vn&l��d��G�W\����fΘ�WX�iTZ�Tr�^�AMReah�k��F��2R�y7;��{���
Y?~�U5Z��%�>�<%9J2�I���"ܼt.E2rR� }�l3!�l�ҕ�h���2sKP��ƕ�g��`6�av�a��Ÿх��;�L&G��LTd�q�R*�#
�̙�H��EmQ$�z:nnWɻ�sq0���o��E_'
����=��
ڗ��K�

�	�/�|~���2�������[W��^���6Э���EXUd[��Aw�,N9�[R1m��|�z�cV/�Tj���oCϧ�GA��Df�
p�IW�&_��=oL����F�����}���E��&4_����N�ϒ����jX̌V�|�W�XDX��r)vz����ކm�w�3��.�N�2��-�LȪ�S��t��8
a��_ �V���Oô�{�����2yI&��e2�#�A��"9�j1W�4�{�~ɉ	(.ʅ,!b�?����Ϧ��'��"�ᅆ��t/[R�^&ita��?�$��r�t[�?��z;DJ2�q[�	E	�!2�H��Uc|։��
��8KؚǟAV�bm��r��.)ii�.Ȇ�0P1d�B���
���|���F�-��WR�R�`	
��ʰ/9^�F:5w�'?�*�K�LTEdrv�M��I��wal��iZ1��y�J6n�6#i�)EN�W��W�,����ܲi��*{$tv�l������E�EĆ,lW��G�Xj�b
�2��]™�g����%��Q�_�M[��r�K��P64666���}�����Z���KE��U�(��¡_�"�V+.]����Π�������OJÄ�!�iF��PL�S7AB��<��=�R`��˻ۀ��r�ʄ�y��h^U-43бc�)��&%-�a���Mb
���g��O+Td�����(,O���fk�H�;r/��wHW/�t.Sp�d��N�n s@%% ����XE��;O��KU���D�
���ʄ�gV��Qt�:�[\�N�Mr2�_���z�7��������h�ݽ�Z�Y}�Э�^�)��E�*�r2�S���U����vtas�X������\��i�&ӽ��]F'U���Uf��.2V j�O����g������8z�&�&@ӛ�!5�/`�m�N8`ki��/��
s���XY�:�/tw[��ڵJ6�X��J܏0^Uf�+��j��](3�8~�5�g�������;����a��}(((d�	l�NS�Dܭ�j �w��U�[]㙝ho���	b\;{��R�-����s�����d��ʯ��0M�~߼��.�@�t��ڗ ��7�����FN~>�f���4�cy��p9k͵�k�4�"^��Ηu����<p#��]4�E��bK�:m@C�Sc�5�47_����v�c��3��2rt���^m�`��h�E���M�`�Q��_~3�{�1~4_���98:��?y]�f{���#�ĺw�o��Ȇ��bk/�˟�)�������fA�j�
�6�{�-��F"f��t���\N'��dc5Q�g)�ݘ�?��/�{�x��ݝ�;J�p�{�@��H��tЦ�RB
L<>�%p�̊��ԉ�AL
��̃�}b�&wa=4
�}�V0a�==}p�@e�=����CǴ
���a��� ;n�c�awv:\<�f��;n�@�'�3_{��P@0y	??��c��W?�(���N��]�l6!$Lc����O���!d�����dxɾ��<|�w���������Z��rHIԓg}�?^g��Hd
�t��'��P�ƨ��y�����BE�S�;�pN��'b�E-H�0�L`��9��f�12>�i�$Ʃ�����Fa�n���}�)q^;���`�X0a���a'�&f731�;�r�M�b�8�I��g��U��]����@��^3����jb׿z�\���N�5=˝�u��g�M�<6��v�=3=�27��f��a�0���)�0���ۋY'�lm �Ҭ>7��15g����rKe��w�s=иO��A,w���wIXv���d�N�Z��b1�[�6���Qddd̻к:�3�֩>||�	��f�u�(J�{o��g'��QVW�@���l{��T�m������V|��5Tl(D�'�ez��ǐQU����翼�Š-�*J���?h=|7�G1��iR2�8�2�]{0�}�]�u����3������v�4~��9 %��4���Q�N���m	%0����qZ�o�s�M�K$l�����o�+����X](x9�}�d���o�:��p�<蜘���ZTTU17��ؖ�ݎ�\�a���z9��j�#�W�wO����3f���h�t
U�����1�r	?y�J�q�\j�'5���h$A�t4�??
8f3Gbe-2�a���(��{119���q>v���DH����Sx�r/��!�9u��v'zZ1:5yI*!�y?���!W�|����Q�
�23����q��MPge���'@r�a#��Go #Y���'p}F��,x�F��yy%,�����!Dr	:��p�:��	�v�@򢹳���{���ޏH-\��ݍ_����|�'%>��v��\���EV�Y�n)㠝����:�R����=̩:)Q���:��}���8�'������,t�a|�G?�1�
%�f������>��D;����������Tբac��g,"��zO�"���(x��|�*��7 +�E�|��f�TIsP�c���%�E�r
���~�p���M��ti��Ž���O��$4��/�:���M=�c��׌��j� D��W���.����A2Ϳ�c�>��~_�V���|��E�T�(�"3;	��_�5d%kq��%�-1P�����VݝbxB�ijaWf�!��ݵ��	��>B$jB!
eZ�*�TlBu])�;��z�86؍��T�4�:Cǜ�;f�h�2�ґ��CXFrR*Z.��V��,D�oւ��
������f��{���r���l|�sH�%`z|J����?��iz-��cS�H-߉*�s&7Tz
.tN!���F�;
+�((�:����޲�9�pم�Y[���"�@h��8)O܏��4~��ȫj@a~Ls&�|�%ԕ���3NW�压1�n%֮�{(�+��X"5�P�eD�L�]�8���=�8/�|p���L��H�� ��B���)9���Ŝ�
���Ư��
��sK��"�B�o�)��j?\&˜4r(�B�n��FĠ�xdJ2�#��ğ��B�2�����9	���5�����TЪht/��yɵ�&��
A����m|cC*���V�p��D��6[�NHg��9���Ps�#`G˕Tl�@���L|�����L��$�O�eE&��K�n�61Y�iL<蜜�*9
΀�+�j�ڐZX�\�uR���N���2�m�-i��z���h�@X��]�i��ѻ0�D(-*��]��X��v��K�~�s6Ȥx�x>H�fR+�?�8�D~��Ԑ_~�'z�߀�� �z�F$�P(�P�$%���CFz�R�	s�B�R@E#�(�HJJ�O����DN��YЄ�p
%�z�����Z��=x���0�.·~�7����.#YJ�w�,�����e�e5k�uBk�[O�o-�k���]�R�Axi��}�ØʮF��Sh+�_��KM�x�W	���g#F(^����a�j�G�Z���bl-�B8![k	PI����okEѤ�&;���d��[��G	 3i���4M�acv
ׁ�kP��	yF	v��R�0�և7�1�"J�K1����m�d`%`�3���D���˙E_w;چ��ZR��4?����#
B����s���d&�u��64�WwUC�W��E�K��%��=!���0���LxI5J2��d�zS"ܞ-:����AJJRL%m눋B�b3⪰�۱ҤE�����I���ªd�6Ԓ�Eb��=�ͲB�8���h�x���s��c������͂0�q�^dI��'�����ϼ�9GN�쐺m���a*���\d5�����߅���q9��IMDG�$��qdY�,waY�>(T����\�:��$@*���N<KUʄ2��!�bx��]h#����/���@L�.��>|��I����L?QJ��<�e�\�ݍ�<^��0��쨮���Pa���x��p9]]$l�^��:�;t�(���-#N��I���p׎�I})^��@�5X�rTo݋=�>>;���*d�$�i؇-�~|��I����X]��M�h��?p�uE�j��12`FZN>6�!��
��˸n%pE��TVm��؁F��!��2;
q�͟��XkJa�F�9���z|r'�O��^@rY-r��h�8����`6#A]���wc�ރ{�My��P���������]�I���>������&�6!CM!u���m<no��t�����Q��co�D�$R*�]P����Cvnb�Շ.�㭦�[���J:;��� ��ta*��
�'9�M�G&��_K"�,�WIX�>z�l�jպ��t�&I�GϦ�PO�\�J�D9CU�7n`�G���E��?�z��(�������z�@��|W�>v(�RT��"A�}{b�n%�}O>�:���n�:;ASS�=;��-���`0H�MD�T�BAOH���~~-���ߖ�5��"���&c��~R�^����ˉ�{t�9z���vr�Հ��h��w�:����yk�X�߱�����ݭ�n+�{�چKçEj��M�4�z,'sZ�1��^�v�m��������;=�|�o��*���:){�\<N�<IA�%�|$���%�dY�K�8t�P�vtvw�0�Vsۭ��V�.֠���2b�X�����{����G��E�D��-�^��թ<�@�Y��w��=��/V�W�[�+H�i[Sw�Hp�Xz��$���h���?���%^�o��
>�3•"�DX�r@���̎
΄��w��ߗvA��{���[�;�~W�_,�[	�|Q�u�ws�2�XL����a��FH�C,��t;ֲR�;�5��2^K��v��cb�*tu���g`�c&�-]�l���ا�o��֎�;
�}m7�1���q�F��Λ�Ȩ1>�?��N�[�(H-0W��Dp[��-'�[�Q���$�QY"�@��-���X Kl����~L4���b���2���$���Rt;Ќ��8�|��#@IEG��i.����Ǭd�b뿀�����;|<>2���,�Vt�B���¬d�L�"�JC�V���䗗C�bp`aM2�s����!����g%m�p��y�=!�o��a���
�,��P[+��-sf�g�o�Ä3���T�N�!@�]zb��Y��N@����q�:���董�\gr�!E"�� F��!NLF�3t��bL͘QRR�FF^d�H41<UZ.!R�3�h�3�瞁N����W��o����?���G{�.l��Aߘ	���1�+
�z�oE���b	�s6$g��g1b�FNz*�q��#v�����2�^���j@GY�)��Xr)�YI�=�+�ܝ����"@y��0)�E�Ořv��9����Q�2}��W���΋Ky
$
&-H�w��:�z~�,f''PQ���\����x��h;�&nL?�
���Z���	O�+�E��@r�~)*56U�L���h�zg:]x��No��^���(6�Wa��D���=WpѬDMN*����W�u�;���Y$�e�<;���-�
\�5b[u1&�Πӟ�-
[188��
-�
��f@���{_~		>'~��P�9|��O������ذ�I��nL�Ұ)̓��<%^x����M��������Q�sB^;~��{��P�
J��|���z�$��<�ls�l���w�c��H�#@\�����>*���[	�"�J@G��-������q��k�Gqv�����$ڌ%�kR=11��^$q�Rc��bl��i�O���g�)J�]:�m�H*ވ������ш�%�_���:�*1�r
��$�}!�onĆ�T�O�k&k!	����`�"%3[k*Y:��]�a{#V�7�@BE-J+*���ҊA�O�މ��Td$i��;ĵCX��M[P�S�ͥ����z}��ā�s/�7݁^�/}��i;d��؜��y�MB��-��DY㓨��g絷�A^X���R$�A螁���={ r[a4Y�qc�>��iq��'�+��i��z]�'�%% p�� �ڼJl߰	Y�<>�W��7�+G�8���"̇�1�j5�y%kO�łY2s^ܖ30Y��r5�废�D1�XLo�/\Dt}�R��R`�f��������yw�}E�R����a��]���Qh2J����;�PP��C��'&� A�OD��;<�s������f`Cq\�1�C~4J�\�s�j1~���028M>dd�a��#,V
5<��`�y���lF[	l(i؅��"	�K��"���
�'��=�b$)%�wA&�|���D���v��91鵠:��&�a#��Ij\o�Ff���^���P&f In���DaF��~\k�J�G�^�eIU�<a��=#����-�@��4)z{Pe!U)���O��Q�ytii�q.���X�w�
��P����� c��@�\"�Ѯ�� �AY��Z�.%%�{A�P�	�Ѹ���r�k�(����0��&K��aI�B�:�������r�㵶?�.#�!R������ax�s
/�r#ם�?��H�x:F ;��x�g�3T�-|p�Zq׃;�zpw�‡_%k^:���Z�����r9��emy+�m���lm@��˹),�@��4cR��S�j����۫�2�r�no�,;E�:v�;tk�%�wW_� ]��1��.��u
h������]�N�@����{�E��
z��D�6�E�+YS�&���dt�.���)(F�w[�Y��3^�%^� �z�@�8�k=W���Rf�HPgq�`�4�*��Ԁ�v�n-�PF�[����q���"��{�UhT�h�`,V�/���B���$�G����{-�x��J3b-,%�|ÅBu@�ADm)��U�[����^�ǎ�b���ղ$�$XTf���[�N'�o>���_�o��3� ��!>|�)L�-�9~��b�u�����/���ёt
:�u��V_FoG��(�uM��9�Kܥ@��A�r��X�⦰��Z�u,��[Z֪�[�јf�p���h�P����´Ë�LY�h&mWΠwb���=��pbn��4add�=]�{��~
������og5��wd
*�#g����
��	���� ���	^}><s����fA׍K�|��N�1O��Øq��VKE�������L;9[��gϐ���#k���"~�Y׽����b�t���:4Dz��t�90?�@��
�uyKud�=Wҵ-����̰d�K:/��-環\]��q�{��^�CQM%d�c��C�Z���Ur��_�������Z�1)*D���ә���iD����
y�4Ԃ7�y��|�(NG��B?s
G��_x
�����j�}~�z}i�ϔ�j�«I�`v>�6e&�rν@�T��"�.��ѷ��]��h�*��ܩ��s/"U�����1W��w�R�~=�e_	����Q�K��b��Z��k.�&ӣ���9�Qg�_��٥&������̌�����#gy��[�����{�7��0�Ʀ&$�P�I�	%$`�6`l���+�~��}������m�vU��3�W���4�JZ��<w�V͌fF�=��</v�<�7��s'O�#�d&��W��T=f�\��sf��݉�޽��N����wZ1�V���E���Xs��۝8}�,��Q1g)�j���i��}.����~\�ra�ʅ��O���KfV���qt�R�Y�{/_���r�E��t�ʹX<g.Z[QV3�~8ք����3,)�]�E��J��az�/y�_i�x�V�x4ct��O���u,�ך�
=�*]����Q��iii�:�|[z��95
�;12m��z3N�iDUY!��pd�jI�ĉ��x�/?�}������ڲ"u:Q�S�i`Y�5(����.��h>�U�o$
nG&�3��>�q���q��Qde� �0
C6;��NL���+r�n�Ba�4�9с�;f\w;�s�8��(�:30����5�߸g�텍��d0U�
W݁������$7ø�K�6@H*���4E�����g�L*g?z���"$��J*�b.;ERy
I�O�#�<��S�ŀ�F=~�ۋ^�*<e~�^eg�.��\-�\�̀�v@������ ��a�7j�������.|�����l��0}f$�G�TnM�B��œLNo&AKm�N
v���v��Ȱaz?�j@�ʎ?��#%�̗�΍8e������+�����C�R�q=��0����qaF�^ *>>�#A���[5�]9E��B�&W�X2�;���pp��H�%�Ȏ�£�/p�~ߨ�bI�Q1Ry�}�É���F����Lꁇ
V�Ojf.J3��0ÒvI�a�(�)�'>�O�J
)�p�.ՠGۥ�p��<r�eee����`����Új�)A�$�]�#��8�}1���.�ޤ�v~���=���L�m��T�NMᅫ�b�;��<��j~u�T��52���2>K���U
��%i�Nʞ;vr��8�ZD��k�G��S���$P����w�򑺓�'���G��eL�Þ�}�m�Ν��<�;�`e>f���%X`6,����;-ܬ�YL��TͅI
��z����A(j!��_�eO6؅���5�x��DӼH�3�'M�b�sK�,���kAZ�$�	���5����o���[��Qw��Yk�.��0�Spf���D�P-3�$���)���ȝ��R
We����t�t8f�Qzn
�~f61%n2������[02��I��DRI%�NV<?o�a�Ә(᧦�H�R�Zi*=�K#�2��N�g��y	^z�$/t
�\�n}yטm�N��<{��f��ݸ��$�S���Z�]K�)k_����ʥ3,��ug��I��㱗���?4fۼn��"б��d�z�a�:3Q�3]���4r]���P	�F�x�kOj��[|>v�s�a�[��]�N��.FL@J�L�-=�Cn�{�c�iO�ÚA)4S�.#��z��(M�̔#2M~سR�	V�.u����`�_�6F�)#3ՂU��@�KF��>h���ȩ�Y��K5��(�ScLۧ�?�dh`	p��53aI���X3F��=^ϫBza<�aXS�g���z�<�.v�xA�f�`�A�D%�r��uy�~�	�g[���`�������4�.�
{v:<�.��nXv)�f��m'/b�rr�"kz!�n'��,vۨk'��i��*�f(�	w��K5�.J���\�i7�x<>^��@G���;�E�!77W*a��6��DvM�|���#�l����I��z�B��`���-ݘy�4L�؅��{}͝�v�B���!��K[N�d�L����Ƕ��ƣ��l�+f`�Cpy�Yd1�Y���y�"����o�qT]7�?�VRv�g/�h9��Q�K��Du���B���D\{W�@|�g^x��ݰ������m3%^�v�tf�n�o�¥$#���uy^���Ӛa<n���۷���RJD]]�줇:�yQ��~�&��K����$Eui�y��=�)w.����?^IJ�܌�Y��_�����q�RC��Ў����q�>�y݈��Nt�n���,)V�����m�����D��6,��M(�U�ڿ������+�|���!���]��w����t�y�NO��	��f_a�w���	f�ErOt����Z7B�6���:=]��M
K��G+�@���3�X�V������w �9rD��c����=#
ŋ��Ҷ�(�W���Ȭ�eʤ)�T���TJ
[��H#f�W#kJJT2@�`a@�(�F��6t�u�ٶ�U��X3�����,Z�=+�o�LL�[��Ɲ����g1󞥰���7�u��h9� %�+�yޝ�')*<v��X�N�ﮜT?�2���"�WL������]�R�=3� �5dF�N5���_WL�10�A�w�HUGF���w�ҥ��˓�����w�hN�Krp��w�ʀdfj�hn%��cʍ�X�6���?�G.J��;F99���Eٰ3H�uq
���D\�y�Y���)8+���o���`�6���7��ygHkf��m	�����O8v�?�+����8T�Wێ�.U�{�s+��qQvI���zj��nA�������8&3cu�>���&K@��뗔]��*X3R1�ȝY"�GJ����-4U��"��yܞ��sA��j��5� 7"5��֣m*�\��u���%Hטf������sC��@nb�9�3&������r]�����q�_�wr����{0p�X���܁h�
���;8R�+���`[����9̮�Wztv���J�
����`{��)���X�v<캸�s�]/:[�kLc��s��;VZ���#^l�%�3Y���\�Ԉ���\Y�f�W)Ű��a�fZ�L�5�u��N!�h�}rC��Y����$�%k�.���ZI�
3��}������u���\~m��ӗ��d�RJ��A�d���'��6����dWH�o�E��bI��v� ��`���*Zob��B�)�eppP�ݤ9��:�mʾW�}+P8�
�~>v�llL%ӌt�������ȝQ';���r;z��P�j:�޼�N��An���I+_5SR��4�G�������!��)ytoƞ���i�����У���¿\���\����>�N-��J3Tؙ�>��~t�����4�d(�x8���l?���rʅ�:�\�Gׅs[&Z�)2^��y�N
�`�l�{J
\�h�rM�N��3$��{))H+̗c��컗b�C7H���v1�Q����%S���w�������z�R��F���Tdzq��wfy.lLU�����,z�j
Q����^3��]%]�S/������Y�{�@G�E'N�HH'�ԑ�}ߢ�5țW���5�|�"�
�P�t
νzշ-�tv�I�,��"cUc��n�dM���h#�K��W[��@��iX����yg�H���7����g�Q��s?�ͻ���@e�r���+�?�5���Ǝ��]���>�%˦��
���3%�J3i�Hv�)���n������S�r���pw�ŋ����<|��4����BչF�Q��X��3u6�Y��([:�~�L��Y#�����;%�m}���p�}�X6Uj0��]�}`%R����ЏY`���~����
�}���`�-c� �������@�(f
��{WH�{|+?���1�eT���Nt��VSS���̄tL�mX�fܝ��y��i�䮥����i�9tkf�̂o$�lcJ���#șU���%h�y�~�<�I����Iva�q\b��.���~T��)��v�~�v��+�\7CRgt���ղ�������s����^��WQ�@K�L�_3e�y����t�q3ܘ���Ԣ0�������K$�H�R�y�m�I��Ŗ�����"+������xFX�{z
��[�v���^XR��
y~��,i��*#CÒ2���ɔݡ_n�T��f�T˰�-������`��	����Ek�i�fh0�~�13נ��3ۖ��KאSR���n=fݼx�Byu�\�j��X{5;;���	Q�#�a��(�\��Q�n6�2��|���@�p�NF/S��Ҥނ�)���ɝH�c:W4�I�Rq�9$�p]�&X�\=�Ɍ�A�T��pf9��^�V���c*�Dr]R�^Ɋ��>݊Nց�*�	x<>i��5d��a���xb��(�;�G��L��J)3f���!N��Cj,�]i�L�M��JS�X�EZ�="�Is��F�%�eQ#K��e^	� h��b�|j�	�pV�i��ޑ\��ᶤX���cJa���s�583v\9G��x�4���xTm��^+gʹx�����g�i.<�)�R�b�?�W��;����0G]�[�?�G���7� ���dT��,�0U~��(g�yŗ�@S'�o<��)8��!�,����p��Icx�kg��;�P��~	v?y�0ca� ���܄e��g^=�T��h��ԟ�)M�a�tw�E��s7��:RH�<k)�D��I��˥�^����)��6��b�h1��$+@�������#�u�k�"
�Œ�J7�xoiM��龢��n��	x���q;�fk�3w���R�P��~�zN;�Ѳ��46��[��n�oǁ���4���￀ˇ�(̔TwZQ��%u:2���8v	��O�\;[r���&)�2�(Ύl�֟P}=��ń��ll�EVU.���Հ�gJ�]7St���T�-�4[:�2��,�z���ް�Qv�L���He��p���a��X��{&�'y�S�=zW����C`.<�;1<4��s�(�Q���%��"��S�NŬY��^�x%�w3��� �%�RG}��p<�Mcʭi�I	l&(�m8���P%r{6�}<��c*�<#}N�x:05RUjV�4�G�r��S;��M��.����$�d��6� ���ɥ�ǔ!�F����:*�II�nLv���I2*���z�j�K��a�L~�u�`���tm��9��un;�4vtߐB��Pi)P��z�x��	.����k���c����3���"h�3u�6�� B-N�sz���a+���q��Q�5jd�~���Q�e�a�4��B�����ԀE
KR+��eyMp��G&�$��9�L�7�S�J�k��$%K���s�̶@����eg���:�@-7f4
�d�c���Mђ6�KΔ���ʼ=~)L�£Di��\��# �o7��p�h�P
���&�T[d�,k��)
\�CNU�Ѹ�3L����,BЁ���D���G�&;���Zߗ*dԕI	�@�=�+@�A�����t�;����J�}�"2���p�"-�q.B/���;�x��ҵ��eV�K��THۖn�����=2�F���g�;�4��;�ѣ�"V?B�HE�)�O-�!�W:f��%}'��_���je���>�I�������H=���5
�z=�x�f�?
�1ג��s��[O�n��M�z�bF���&�'�0��%ִ`j�X����ӥ���0�5?�pUY�TW�
s&]�����ܼ�s*M�I�S-���I�5�},՝�����{�J#U�g���9����$kI���"+��X-�R�2����t~�hS♒�V�Wmw�ߡR&"�ܰ�P١Q������SN�y�3̀��a<�����©)8#y��]���`�v�3̰���)���U�ګ}
j��L�c��kO�Rv�fX���	c�<S��:2l`��ځ�r_-���D��T�dh00�7M;��*8<'�y��c����H7~��K�ed�#���Ao�a�W嫽G�!��*F0�����HɅ�'z����#�n�����hK���h�a�&aǧ�1ԝaj5����.�g�IcI�at}�d����ˬ�	4̰�0c�@C�iE�Ų�o�է�"����3�C�SN}��S�f�E�h����J
�A���`�� 3욅�Uߒ�J=7Պ�k�.���T�7���-'+��X�6��������z��M��TG&)V�,v���4C4����`j��������Å���v���M3��$U���tK��n���G�
(���-�L�㝗~��g���_=�S[_EGJ9�FZq�/�x=>��-��@jz&RL#�
L�c���f���w����~�����Cv�ܴf\Nd�f��rb`���j|2�٩��|z�
N6K_�y�
,��6��/ќ��‡��Є�#���È�N�qOf�ΰ؈{}=}���8�/P�2#+s���RsP�kû;��3_�{�u�q����@U^9����'�,�ű��э|��#=Ղ��'���Ţ�_\��3Gq>o�����W�o��E���+H�����K��;�%�ܧ�G�}8��IJeK���GF~��T�1�gz���<{h7.�{P[[�;y8�\A��]s�$a^<�j3._ܮ�֥/��;�:?���0�����սx���PWR�����u��݀��!<��kLy�b��:zq�4�=Vl>7�յ�8t�7�YNZ���h��P\=�J8q`'���u�Z�}��8;ZЕW��gΞ�koo��S��6`�KF銵p���*�{^�3�xq+V�|*���0d�ΰdt�ļ���Mk>02���X��HeH�/�BM��0{����Eux����i�DASuU3P�iǑ�;p����_�n�\�_s=r�O�LkΟ8��]v�{���;��{Ԍ��l��^��}ز�Mdϻ��vTf��(����`wu�ە��󧠾���S0��>s ���z�,�����3p��l1:`�]��j��n�3�aמZU'U|O�i��������74_n9������:��s���:��0ozf-^������iZ:��s��s��Bc#�Z���O`�`�޻0w�4�K�L,�R
���m~
�w���m��8`s
�t�	e���pgN�\S;0^-z�N�Tc�ݸAKJ�|�ӟ�ӂG"#B��z��=��5&��'=�"���5��XK�5�XP��b6�ﭩ��������t�^:E�)#ќN�4'���?�Ek�HU�W��
�Qn*�D��]ߔ�]��Uĩ��yyyc\�t���z��x�^1E�7�##H�����+0����nX2sP]U��E+�hj!N�oB^a1�r�0uf-fM���ӧca��f����;�ZX��Y	�_:��P�a���p��mЃ��R̮�
�w�sW`��
8�+�z�<�F��:��v�Ua��(�΄sh+n~/V�u�CCR��������|D���E�SG�=��b�ϟ���Ԅ)_�ů�@�8g��4a��A��E�cW[Wِ�M��d-:�g�#3֑!�:i���P�n�!;3>gz=dge!��sp���ԟ��”z�Q6N~�\6�!υ��NS:V�t;C���](������>�v�b���k���=}��uG�������d����=5�&�:���)��Y��GjEۏ��S1�ԝ}�bx�>II�R�ܘQ[��t��4\g�ʰd4vaL��Ul��r�xc�`�KiR)���L
�4�Bw� ��Y�t�Xq}��|��i9����+�W�R��N4|4���)]v*ݬ�d���d
�(^�V������q�l=�9e(�w`��}�d��)�ܬԨ�L�.�iyԠ��H���i�==�s�ɇ�.�&�{�r���w?��}�󠳽s�=�q�����q�����5�5�`�C�ǁ��K����L����#F	�~�M^~
���ܚjn-�ψq���de@3�̞7��Σ0g�Ñ?7߰��<��5 �t�^[�������lC�R��x,��@�������,Ց
k@]�R�p����T�_CE�R����`h�%%4��-3��7���
2��+��c�к������W|��%�i�w����)�ʫ�b�U6��e��h��#���( �P��O�W��ZP3��/�?y�jT�d��:��GOF)**g�c���r�b��Nx������#??�>��2��_@��n��lK�*q�fٹ��|d�-R�a�̛6�������eX�r!������V7�	jV�y���l�[�ʈ	���ٿ�o=���B�#��ʑ�!+V�n�]#H������?�E%�(Ýw݇�f�X��O�/#;W�\�#-�0'��zM
v�=d����}�x���&����Z���5lR(��Z<A(�0�s�݉����k&D��b��ϳ������(�)6X�Saf0��d>z�l�ر��%X^���a7�YH�`端�y8ˮۀi��غ�e�m��|�����N�xS�o����A�ӊ�)�0J~`l�����EM�nTO���˧an���8��+0�>� 逷�^c�5X}�
�f;q~�F����)�dK�ע*ō�{��ц.�^�%����ۈ7��E��s`��nج)�H&m�M7�خ7q�yS,¼�Bi|���vjc�ʀ�Pʎ�ZZ�4���5#�tť��t29N�D�f�;�e7iLو(��xԥ��Oa��׏�>�k�`�����nI�>p�3Q�i��������<�a��2��_�2�ր�ӛ��ZaiځO����-�Á?��͋H+,��]O�?#iY�/OV����-�,��0B�%�
����C�q�M�܅��W��4o{_������qg�.Þ��!�0S�l��7p�7E{����ǯ�G;�����{n�W��)C+ÛO
�2�8L�x�'v� /���ᅡ�O�"++5�?�k�ק��PnL��ic��:$v�6e`III����:]ZK���B�o��4̀�$75W�2MA��+��hV/_��#�p�"�Fy0u�l`��qG�4��)78��S�����/޷�|�����gq��8f-@qzv�ف����ɝ��E��O<��g�ah�
������T[�px���O���
�я��M��'����t�o�
3L��X��ݼ&/��_��O��ף�ւ��nC�-k�^���X�eiwf�K/6n|ۛ1o���/�
���r� a+Z*N���T
6+�cz(�3`�4�Nt)���Z�
t�#�l���:d��W6c(�+f�=蒢#�����p�����]\��}��mp�'��O�l��n~1��~;�A���$�om|�;�Q3���n����I'.u���Q�|�.\jEiQ&����nH�_~�KXY�
tt1K���ؿ�!'���h;�.�{�-t!Y�>k0�h�E�}�_��?av㓸������8��E�p�R������NO��A����
L��H
v����W��ʋfB�ۇ�E����5�����/��e�L���ߌ�tR�h��i�ә"j�Č[>�{��:򢷽�Aǎ�+V �'o৯��<��}�Q�p�x�"��^�f
HK��li�����uz��wu�u����{�ˌ��0�F<pz�n?'%[�SґN�jډ�|���ڟ��O�F��Gq�H#�����Ֆ"UHOO���b�#�}�
����/_��S���~���>u<]�o	G��r]K��*r�B�jot*
3�Pv��F��g̺h*PA�a��K�?4��b�Z��1k�lм,�/ν�[�O�i�Vl>߉���^����{��ѷ��WOv���b�RX:�b��TcѬ�ڼÅSQ�0C��)��h�����ܥv�>��_�#����Pp�g���bdĆ
��3�����x���ÿ|�g���EJi%**�����ۿM�2��W���/�-o��ۇ�����ډ�wwc��F8y�/^�=����,N8���<��Ï�݇��R�\�����4�D4�<��S�#^s����*�N�z$�]˦�\X@"D"'���ٙ�ʅ��P�”%�ƔO�0�
8��-j&J���{��߀*���Q,�iI�>�raf�� ?+�V����i�x=lę�Ӱ�X�u3�`N�F͜EX�f9�.\�DQ�
�_R받)�,�TTa�u�1��[f��-Ǎ�!��ƈ,��vz���>+V�r+*S\hm�B�u����'z��[U�
����nEg0m�,�Y�)U3f��1�m��ܥ�pݢ��w#�z!n^��2Rع�C��uX4�즂k؋��cV���e�k�^8�����1�i
��M���\�5eY01�333�N�hTV���SJ.V�o2��rx3ʅEW.̴�~��.&�c?r	v.��L�cNzd���[d���^���u+d��}�N��z�9�Jvv<�~�����覢�\cj�=���mv��%�1��	���]Y�jf��ĭ4�]$��԰�e����wt�%�,Z����4�=��g�kz&r�x�7z��1L�w;��ar��kG.�lp�t����`6ɝ/l�9�)�oG��-��+�R��J�#���9��?�v�ٹp����AoW/�y�L3��?����&���HM	�wd���4𙏆���g �&Y��;v�=}C�f��&/MAVN����&.�A����|����)�>P�/�.NvW���CCC����b7n��ýԪP3)DNz>�X<�E�~�#��>�2!cvbN�q�	v
E�7k:��d���q�!�q6��5%�a�RlyJ��S�n�$<��@:���c��C�w�0����>8��b&��=��Mh��>���}�c7K����(��\��lu��k��-B�i�[>v����1�N��q�
�ޙP�J�yT�)��F��Ҽ3D�U-8�W^s�UY���_����l�ٙ�5�(Sk��Q���o�׆�pr�:�+�ǨǕ4<<<�s�yc.$]��4l��b5��x��n�W��P�ف�o��-{�K����|�?{��6|�+�-nO`��j[�w�G�,��[ʋ�_x��Oغ�`@
��W����QW?N�����oX,@珢��ڬ��D�'�JeG�؃�F	�����l(
�M�C-�BA�:>J�;Qw���|<�����`�%7n]P�����H>��`wo
�V"��{�L���Dj{�����ƻ������R�r�t^<wv�f,@M�
pdbJ6�w���g���1L_8��4[20�Ҍ緟A��.�ۻֲ���\8v��L��{Џ�ڙ��,�͸5[�0�y�-����c4.�4���1TkL
u7y�'P	CqLWiJoo�o>jJ�̔����8\߈�� ,����ØV��s'����%�����}GQ0w-҇��–�p��`݆�Pf�;;�x��^��Y���� ��yq݆�q��a,]�-���t��-��5��]�܄���HChr���Fd�N���Z�^DC}��m�x�s�mwL¤�giO<�8��V���z���+W�E�)���4#q�g�i�����x��Je���e�֢�ہ-��䩓��x&[6�r
�v�,�}VT��ku�nA��s8Ơuǚ�8��mt
gavE.\�=-w�[���K(����w��Y�ȋ�g/������,,�¶-�a)�ļy��km�{8mg������t䕖�"Ճ��a�� /7�Ƕ�{p��+�îة��~
�����/��&*3���ç����?Be@�TR#�.W�����@�5�8\o�\��fQUtz]����Ru�u����3𾻊p��
u�QTS�Z���T����
��\��U�㗝8|��,_�����~̷#�d��B}�e�o�.\����xQE�R����5+_z�b��>ySg��pWn|��)+D��K�`
qFy�f�^�b�tRP:m�UU�����r1l\��w($��ߩ֞����߆P���Ee�����=~��{�Jꁗ-Ŏ��lIQ������Sjz���Ryݔi)���ra*�1�鹘_�+�E��#� �^.{�",��x��0cF�J2��Z8�s�>���\4c�����e��U+k���&�`��:gy���{)/��ˮ�[�-?N	��^Pd�(��B���m9^��lW���du���_E��vZ ћ��������Q�NLCP.��;��k$<;�)!�<tb`��S���5�O�L^�4�`�fGў��k��AÒvZ��h��y�Bڄ���cs�:\NF̕�Z�*їʫ$y�e"z8��a��P�Svb�k��0îaeN�c��3)TT��z�xB����q�QY�6e�I��;����R
tFdfr�Orje�hLUͅIUu���=f�aW�)+��t��	�]؃Q�"/Ex��I`e���ʕ�l��B�.7���q:%�n0C�%��Ss]*^NNΘm��[��\��Z(f���Sv>�va�V�v�e(�_���Mͅ[x�_���S+�>C�%��:r|ʧ��,Uة��0�e6FCtq+�|y�]�b�ݨ�$�9�zB�����\����0�
S����Uw�T��|!����+�Kc�Z��¹4
3�*Uv�Y
|�TrI��f| ����!~��‹��%�@���.�؝�J+��p�G�Έzd��c�8s�v�.Kz�]��ί�v�smF�w����r-���r@�NN=�{$+��BNlՀG�Q㦜��AJCC��4�{��sg��L�Ŀé:�B�9�DU������\�4u�Ny��)�Y�>��˓�+Z��%1�A�+((�"�i!Z��� �m�s�NQQ W��I��h��-�<�G�-�,�m��2�|�|ߴ:>��<�ߙaW=�s��/�|\�̅��%��e���K�%1���t��5�ptuu��M�\�LZW&��C�@.(Em�V~
é:5O���…ؼy�
��Is�d���p�w������غu�T��"퇎�`v�wH�;uꔴm���D�;88(m�}�{����G�bϞ=Rn`UU��ZSS�T��[oży�����u������䪿��U�32�0
؅��ł��.f���eIs�	�R��r`�1���vJЄJ�Rw���I�|�
OM!j�~
��ߍj�5���竪�h�<�4����m��&���3�H���8�2�ٟ�Z�n��cǎI@���:�uuuشiӘ��i���.\(��/,,��ݻ���{���ӦM�mI��d�`��R�u�o\J�kp�3����l��k��W4�"�ZГ]�b�k��(�p���A�޳��wg�����&H��5-w���N��S�P�O���긫���.k���	:t�cee��'NH��h�v�"u�b�
���H�'H�o�>	l����5u�T�ܹS:Ɗ�
�;~�����K���ؑ#G�~�� �z�9Rpt\"��;677Kߗ��pc�����̋�*�r���t����i����(ag�v]�빚؏�D����Hՙ٣��M�"z�?������$V��}��f?�-�C���K�aT�KG���ȕ�-Z���Ԉ�G���@�h(b���6z�JT@|{����⏼J�]
�Ը/
S�ƍ�c��=�ib<��U<W.>A�C��`w��wk{���W$�+���**��re�'������OF�鼗�]׊�ԚȈЌ
��S����J|��tdbi0hj������C�i�3}���v�je��T��똒	7��ү�&���Pp��r��H���H�-IM�p�ߏ����&n�]jAK�yi�?�����n�:%��������0f�&�B�3�xqMd��x��t�o'�����1;���$sM	l9�ђZ�>
6P�e�($]LEU�8v��h�����1힂s�����!������H;�,��K��g�����D�w�[���܊[��Ja?:8L�8
Yi�p�t\�+Ǯ�Qx���:~�]�΋Ё*Z�W����O���6nGct2�1;�<p/=����G�&<���V��A�D�;5��
���)�A�QèI-�NL7��7pa�g��n��</��͘Wj�;o����Q=�)�^<����o����P�������K�R7$��<�W^݆����rbJq�Nl��o�/J2�8�s�F�hڿ���q� 4{1�*'�~Gzlp5�pc?*K��NA�Y�M×?�Z_�9�h+�݋+q~�[ظ��*j�kg���;�䲣,nj���xx�E�Y0Eif��l��B��R�\:�CM����{�c��j�.�;{OÔ]��tkԠU�M	:r_R�E�}I�[�S�0��|5���ajF���7�?!��'ASɑ�l���a�]�[?��`���|Ը�3�
���@��ڟU���#AM-�LJ՝�x>���r;Z-��5S��3W܉�u�oƱ>��o�;�n��b�/{aw��m0h<�v���q���}�|<���b�t���h���P�^�u�f�_�z>�9Lo~��&ܴa5|��`����ョ;�|
�"?�m<�T������ E�ͺ�iò�l\�~�υ93,������6\x��̛���PR�)Cm@�c�3�ㄥ���ϸ�Uv�������?҉�Ѓ�Uu&�<݀)���
:ep�tt=�)�c�o
J�Q��tq���ld@̰h�La�gX���"qeFd�L*�#����x�\�j_�'�'6*^��>�e˖�7	���hSS4�UP��.�Z��p�xÙ���WKG���O��˳i���}J"����+����s��1t~/�9�>p7V.]��Ǭ�|�к�X�c�`�e��ډ��ׯ܋��߂޼G��Kh[���ҝ%��˯���uk��y;>��� ��o���nGS��o��6L�,��P�2�lh�~WbB����\_�}�g(���pw9���}l=5�%xn�q�q�=���@�Ÿ������?���C����`��>̯�B�-�G���=�	?y�-�݁�o�E'.L���������cƇ���M�tO������_
��aW/�"|���A���N���2C�;��Kh�]�3�������A�՝OV6fy,ˇ+d{��g���ѩ
fa��&�{&�Q�U*�]�u�cj��[Vr��
�o�Ych�:u�I��t:����_d�>]ͥ�T#%u�����c��~�\a�ۇ_���!���N�v��
�������
�L��
��6?�]��s�e���琺���K���we w�'߆~8j��(Y�YYo�?}�g�5�kJ*
���%kP^J�EZ1��vE\	y���`�G���_�#?y�/~^�N��z�6�PY=�nY�������(�&u�����bӯ~�����W?R4^���Rt��T���{�������I��R�0\��+>zMN%뿊>_8P��G��v�Qn?�
��
�p�j9rJ��Z�����z溋�ډcv�L������Ǫ�]���]&R$Jx&��q)��3��l	�	~y]5����օ���+'�{���5_�~҅�בR#xZ����r����>�H�z#�SSS�����ܘ��-Y��ta��o��׆ӍM�1���]�nF��Ook��݌�����;Q�h9�d8q�ݣh�E���j�1|�y�����pF��.��.���x����Nط���7�`�{nEMV�-9�܄�~�gT��'Q�j��G��Ӎ�V�ʲ��?�<���ޅL��]8���:���H.޻f*vo|��bX=ȝR���x�����]���9tCC�d��s
?��#�X�f����=��W����2Դ����|Vܰ��N/�ą��X������kG{�w��/�/�r[��lZ�}�|�x�G���\s��Xع�$�qKċG�kZ�y`�h���}��}��;f�h�I�r�	j��x�"nW��0V'O��F��H�ŧ�[�ʟS4�c�>��QG���3�\q�=��y�n��]_FFƨ��7��ˑ���5�$����7mVO��Kݰ�Ua~�,]�×����6ܽl:����t>��{�t�X����8��Ģ�K�|�
�ֵ+`�v����{n��bζ`�}bE�
�C6,`�/��B�;:�����ukQ��-Ձ����*��C���2�a����.)C~�U�T���2]�ŁT�v�1� ��6\´�n�Қ,T�B��	k�t�Y�
EgqnȎ�K� �=�ܪ)�QQ���\��v
�r�}�d1՜^X����@y �{���P�S�nۻ��S��A����@�W��9�a�o�~���svx�{�Ec4��I	)�8��a�Q��E�wR�GL�h���/��A��S��"��aQ��
*'�"���%�x%>^ME���Qv%�ew&/1tO�:��Vy]3-��Rt[�9Tez�qc
�6��	���r�.L9XfT���L�o��IOO�����uvᬼ����a�VĈ?����6�����z|����cx�b!>���a	s{.��˿����w,L����Љ�R�=z����{�reTlyppPr[R'�=���A�~�"wc���Rm�z����(u~���%�1ܘ�cb�v$�Oí����@�=iZ��UF��
UA���x�8nG�kd|��d5�1�-ڟ<�Nj@���,|6��=	j�k<�!<��3��<�+=ʪ�$�I
X��6)�3g���L�M��u������
T���}�N3$F��?������+��#�D֔E��gW�Y�h-_��NR��-ƫ�(��p�ɰ����;gNeg�
 �����7ݻ�k ��A,��@��S��B\A�g�}2�f�.�q;`�s>��Pr��ܸ��b��"Vwb1h����U��`��8�D1��S�(��mi�@��l
U|��9�q5s���}ͤ�xj�v70~�5�&���fj���3��JN͉�C�E�6NǮ�����G.f�~)���ѣ�X�R���|�N�q5'�8rg��A��^�U5F�(�ýc�N��ӚgN�����zJG��&<*SM����� �H����5G����2�w�)�A�i�9�����+/�q���@�_jY�i>uꔉ�&���|��_JJʗ�
O�7*V����y���Ia� �m�7 �������W��z�URt�
W��|\�q�&�NTqBJMȯ��~��p�z����K9�}n�EgBN�`���uݬ1>9����S��<�
� ��!�D��tO�2�+�&��i2܂�#`�S��7�����F�ԝ�T[gg��ȑ#��ٶ��z���d
�k���Z�b�����ʵy�@���5��u��;644�U�΀t4���Ç�T�����Rv��x�u����I���	���2Vc}��h�8�0vѹ3��C�D��]�	��\�׎$(����,�"�$���
́���U�@�X�B��)�p�>�Q��I�#�#5����ʓ���f�fJ��x��1f��-����n�6�3M<�]�Q	=Q�i�%�|� ���Ԋk�I1��T�7�������]�>!�����d�E�s!v��
��(u5.z�h��.L��<�ƒ؅:��<�f���PW���|�F�\8�P�yzr�A�/?�Yf��((bRQwc�x�
��U���IݑJe�3�۷ϴ|��1�}~����߰�?`�)PSw"�D���p��dS{Z�Z=��:�uϱ�*0F��X����-��Q�GV�~��K�©:���5���2T�āN���.M���1�P�M
e�+��;%�`�“UO���L"�d�g.
������6�-o�|�K�����%������1�)�[��o�|��i��ݦU�V�5*��:�`�#��]��#�����&(��5��h�p"�B�Nr�t���l���,===سg��x
���cu�|�nԏ7��R��4��=��шd΀�U
�Hݚ��9�S��x։<��+S͝�{ȼR�4��f���cpjjNT?+�K�m�v�M(�"d7���d�
F\�k<1������x�KKK�i����u�֩]Ћ�a�������P���b�ZЋ��K�i5��DY�Rtj�S���-_c��Q濑Ѭ�;v� wr0���R���Us�N��S����E��h����31ЋD�E>�����ua��]���q�����?��4��|�X�_Tun��
J���(j�1z\o���#X�u��TSm[�~^ #Oz��ŋ�M�6�ׯ_���
��X}�=~�m+%��:5�n�p�SS��Ptj��@�����0[��hU;&���q�F�*��I�b���c��������1S�ЈꆉGqlvQ]+���<�uB�n��̚lgY����Y��#�54�
U��J�	�I���b�V��&��Msב���τ@ʒ��L^!�ܛ�g	xo���y�ڵ���V��Xc����c���t[ʕ;F��CNLGP.J�rw�mP��*)\��ӂ����ʳ������%����Ç�k�.?�~>b>�
w]��36~)�揅��	�X(%]`֫ԢUgq�����Q8������U��S��Vw>s8�i��	?(�g:�P�s���`��1���������o������`)�㵴��_~�e�t�M����1�a
o=���\�-��'�-ʡ���������>%�����]�Wͅ�e\t[��s���}wP�NΜ93����t<��9z��
���8@7X�F�hՙ��Uv�`d��-$�"qaJ��J�1�Dy¢���M���V�A$���HKjB^@ZxZ0Ssi
�}���N���������)_�����y
^����MK�,	��Z�����8촪�����U_3�$����D�T�����}9Bj.55��T�Y�(����T���#F��zB*��Ɲ�G���>^�"'N�:�R~�Pv4�R�[�x�^c���p�/�E�D�ƌ��_��<yn�1�w�/�,����w��k�>--�*����8p�&=� fP���Y���Y��mٲErm�y���U��Q�}�|��l;�ZeŔcw"дT�~J�E�	��RO	0;��;�~ff���innƋ/�H�t�ĨK� G�%퓁Sx�Qe�_��c�
�xU��(�������l�.~�/��QA.�n�D����Tsk�
�=��D������>�2T���T���Sx"�RL����ܥ���Ċ+4N$�A���'L���&�{1UWW�}w�����/���l���[9�h_���A�(%��N�q���s�,��p�5W_�e�s�K�C�]�
;^4��M�����+��y������PǶm�6�믿Tr
�%�v��et=:4|�+8]*J��H/�b�n�s<�PRq��݀]l�W$.O��!���27f�\������Ք����~�f��(we(U�wlN�:Lm��`$Щ=�nM)ќr^$[|�1N��L�	A۹sg�s�>Ǟ��}�RRR�뮻.��N�<)-05�����)#�p�
��cǎ��w�EVVV8��-��� U!7�X����غu��]�],����5����*��9�u`�޽��
�SFF�O�w}��ȫu~.\���{��.%�F?"���C���;F��K�ؔ��q�:��Q����:��+Z7d�\��6@�8�u~^����X�1���<9��߼&�)rI._��W�G���,�:��L�Ĵ�@

���I0䪏�%0Ӻ�c0��ܚ/�����G?�QL�:Uu�k׮���/1��7��C�`�H�.LWv��Wmr1�Q�N:V�ڨu�B���A~~>��h��j�w+�`���uI%���Jѧ4~F9nt^8�h9)_���w�A��g�vFB]��7��}�YZ0}@�tƒR�ۂ��Dץ7vG��]넁N�
��@Pҩ�u�7^e�\��/�D�E�D�@>��rJ��4�	P�/X1E��@�$��5��_�®�p?S7b
��P�H	�!%�G
�OuD�a��L���B�x<ғ�����ɭI���Հ�y�|�����l�g���}���+8�� �|3f̐�����+��C_AVQ���˃ŕo��&Piww7


��+�pw$/�M�]�b�LR���ϗ�����a�U$5�ӧO��>�����M��#G���'��3@J ��A)���:L�>퇮wS��M]W��zr�9l�c�UY�HaA�C�s3\��n�^\�h؍��f(�:9�Ǧ�ك�:J�(�J>�Y�foooЍ�AG����3.�cd��a���x����ϛ^x��G>�Ӛ5k4�_[[�f�qGGǭ���A�z��Y�l��V$��mذ��ݚLE���=QّJe��3�<�HJ�\�Tb��#�&�, *;Z��H#���׿�����G�"�(B��e����S�;�wq.^�����hhh��@�$�ӣ<'���	�����=!B����6Q��U`K$A)���h��#�k�7e�.����>k�E�D��|��H�h4x�.�ߋ�Ƚ&��԰�����
Fir7'��c�bZ�A���5�qKyl/X����Ā#Ao�ʕ��g
�0k�_���~1///��ɓw����ŋ�`���`C��P��f�nL�� D�[ӦM��ݻ%(�z���58�&Ž>O����J��O?�u��I�{ꩧ0e�,Z���	.�v��Ž���a'?%W(��?tU�9�R��՝ܹ�q�ɝ
I�Q��ݓ�)=~�)�XN�˹�"����QDr<v�g��D�1#eD�I��-�tBz�'�3�� 㧆��Q�?���ݜ|����[S���1�H��g?3��O2�{�!�G�]'[gOg�3�5��Xc��5n��y*�����"A��Ҹ;St+�k�v���'>���&?~��r*++q��!iE;���dT�{Μ9R���m� �Qlf�k���ӏ�ݛ�f) 5�!G��Nv
K��w�h��UI盻(�185��u4@���:�o�M��?�>���g[z��k���"?SARML�����X�otI���<��J4�57	��i��ޣ��?�яLLu���>Ӎ7���Y��͖��SZH�U�}-e���쥙l��ܵ)��8qB��>��={Vra2PK��#X	nB�C�%���������q�}���;��;���|�;�����%X>��c�K8:w�c$Դ���?�t
8D7%�2��c��?�։��p�W8[�hQR5����c|H��ؘ�ԃ��t1��)���?���F�T��T��	>R��ƥG�P�	�$%K57�~�͕��Eu�h{mmm�l{S�~+O�>]�~�er����yhy��ݙ����А�y��T�z/�����׬Yӳ`��n�)Z��O�:u��q�ܹgjkk����o�N�D�LE���"�N����r��S����0�HV�%b
���΀ݵe�R��]"�7�1Mб�������=*�ExΞ=[Rz>�#7�r,)W��{�)"�D�	�Χ̑�I:C�%9��M�I~�1ub\��jH)���7�ܭɡG
3OT$jԀK��
�\|�$C����"�4�ǔ�iŊ��(�b���W_�3�	!��KUɅ�\��n"��HXcu��ݬ�9M	�l̡���Uox��SI(���ԚI(K��*O�u!�F�;z�(-x�GhfE?Κ5�R	LD��h�ȑ#�cǎ�)"�}����"=��S�M	9�H\�Q@.^���2̀�$��YD���E����x�U�ھ�sjГ!0J�q�Q�믿nz�W��~�N@��ٳg��P�:�444H/L���Dz	VZ�S������t׌��,]��MN�Mfu7��a�*�CO��Ԃwo����{
�J�okk��)ύ� ���3Q:%}�㣿�q?��j'�A�p��=���3d�wtt�8?/���E��8�#�Pb�^��H�M$��f�aI���Ɛ��m�*/
�Im8�p��>z�tb". �pק����2_��M�)p8z䐓s颂�s_���D�n�ݗ��3욀]"����X\�'B�)"�Z��$�G�<I]	>$b�1fԶ�J����m��55�q����
<т\��D�.ݗ�6�]2�3'h��B�w��C��S��ǡ"�O,��^S�z�4��P�K �F�M�o�0�&�<��M-�@Ol�E�'�-��ڗ��Is�	P���њ��ʿy	�XNy��PO�U�$3\���v�Tw��	S�ᠧW�5F~\�q�AI��E'B-xcZ��@�<~��V/��Z��q�O
E�~'�*3̀]��xB'���)#vk��^(��T|j&*?@2A-X�P�T�n:T�x 7AwM�/
UgX"`���XI:�'B�>O�Ԟ4���h>�ej�p�m`�=�7Ѡ3T�a��h>�&�0��)7�&Y�BAb���B��Pǡg����D��Z����j`���0 -��=��ӂH��g��-�
j2EgN����c3̰I��+���n4�EG��oԋj�q6�X�P�B�-�
i��$��KzX�ΰɦ�%�6*O��2�Ͷ��h�41x2��J���D�(�ݗ�6��K�����V��zj
�)d��0F0KD�9٣3�}�t��3l��ݵ�HA�%�B�o��J�F�j�Μpf��$�D��DE_�zzHS���M&����0vI�DC)�$�D�(�1�դ&��6@g�aIdf��IH�4Q�͵��cp�0@��f�:Ò
v��b�k�a��9K���1:B�%�&Q��j�DA�j�?��+�i��I�4T�a�Z"Tb��d�D��Mt ���˫����M�j+����]�o������Sy�Tz�TH���=B�@wՎ�f�dPv�Tx��o���&[�A�SA�Vs�}�Pu�M>e7	o�D�G$r\.�'�*+�K��=џ�Z�;C6�`�`�M�@�Dƈ���'r�<�7�@g�:��c�_�"���n؞IEND�B`�assets/image/01.png000064400000225353151327614500010074 0ustar00�PNG


IHDR�90v?�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4B0882A4BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4B0882A3BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>���'IDATx��	�\Wu.��SSW��Vk�%K�y�gc�
l��\!/���$�%�/�&�$�ބ��%7�$3�<��ϳ<ɒ���깻�z��U��z뜚���ݪ#����S���{��_�W,1W�7��M��C�>.�L�X�[,��ښ�e���R�]SSS��趶��8O�PN�j�t�Mӯ����fR"��`T(��,�F�3~>�o-�&m��ϸ��\nIs���J��-pjmA��X�1�z�(|^��)�T#yM&�y<�jazf��64-p]$ ����%�[۬��W����~q.j֠T�����1b�Z�`S����7�V���h��qdžj/�
�1�0@�
v�z��aP�%y�k0��v��*���C��A��E)��:Y2�������Y1��J�V�aN��SC�T# �D_��(����@4�A%��PsoQkk�p
z�X�%Uz?�-y�eM�t��x]�3���W	��9O��DK�����^�f��6g@��"�8��Z#��RK���=�~&�8u���i�X�qƞ���u����b�Tt��0��W	�jaKu�R�T
���˫^Q���<�-f rC��ŶX�ey�9��E2�-�t|S-�(���Z�)�5�L�5�U�z�H�W�UU"o�Ң	\�t�A�V���A�/Fpj�qǔ��Q-@�M5�^U`jS�L�)�f< ��}�`ʛsƴX�R�Fk�
}�]��Z�-;��Ȑ*���w1��00�L5o5�R��Ϋ��j�0:���F�0-T]�rf�	����km
RU�j�Z��(p�d�k�)5�+
z�
�|��*�NM���:��KF�P�b�0-P��j�����7hbV�T	�H~C����U��s�5 -$���ك�B��Z��$�R��H���FȾA��U��[M����"�*�#?�M3�2�!��>�UXӬ�B���Xz`��}b-pZ��;*8�k ���L��>Ծa,)��)̄׬�;4H#
D.(�U�U	�eL��o�"C�-�XSk��T�D�=�aJ���F���( jS�F}F E;��5S�&�F��w,k[0�N-`Z*L����<{ ��Q
���ħT�H�;�T�I�T�eZ0`���
N��\a�%[�J��������]A�T�~^Epj�)�ʒt0����0P��jaK�Y܋��c��*@�B��gZ4�T+K
�B�ZP2"�#�}��09R3[�
Juv�
���R$�td�–��ﮕ�͛�_(�y1E�-@!x܃S�<C
#�F�2��*���;� {��`���jM��A
a`	`M�ZS@^�Q�}d���Ȣ�.�J�z
Z���R�I4���4ׄW�o���S(��C)���P��)m�f��9��t,&�G���|��0��ƣ?R �I.�@&_Ǹ�[-7)��:�1$@4�L��>a��!�ъ�S8���,Z[k[L�Ko9������*`_?�uk�矓@��"�5�h�5��o~sR��i	���RZ[k[[�P��z�$�
.��䒔��UYv�ZW�!���ѕ��v�h4��J��%�Z[�Z�R�ʄ!Y��P\�`��Tu�m�C( ��ȹ� �<#��n1���R\Z�q8��ey]T����*Kfƚ7N���T[Z4�-@jm�y�ڎ�[Dp�N�9����F��4͊Fk)�Z�5-�Ai	��֚C��8�*5��b��)3���� ���A�$�S���p[�qǚZ&�ֶ7�낒ߺ������ "Ss����J,�+ _Ţ�
li���ŜZ[k[LI��Z
e�Lɫ��B��C�x<�]E5`
�Wj����m�Q䏴|*��d���ʰ�N�+��[�b�m�1%��j)���Ԑ��.�]"��
�B�N�!Qxaf��p��Y%���z13 �!H���7���vb(5����'F�&О�DWg�;�8�w6tm�����
�򙊬<`^���2S�<�Z&�ֶ�R��.º��^3(%�IR��4�[P�t�h�!��#�׈yq��K�ã{dz�<��C{11`�G��E$[4�2��Gԏ"K�3��枍�z�Ÿh��Nv�	5�H#T��Y3�"������0��EJ�J���BM[M����
H�P��U�[j��|�^*'~�bzpd?n{�6ܾ��N�-ֆ�H1��*��P Y/WfCFXfKsr0�®�]���m�q��kq�+�k�_(�Ө�3{�cm-�kjmK�)�U�~C�TUr�y�t�( r#�*\�_�9�i��RY��S?���v��E�#��b�f |��G�/"���
���fF7gI�hXS�^䓝xrt�=��e��.�N]}"y���֊7=���XSk[��&���Ori�~QE@��J4�"�����u���e5��_�?���tv7�{z�3�3��2�yD�x��"�#�6��eA�d%[����VH�������=�����p߮G�>0��`�}���\mmKC�E�����Z��L��G��W��9 %�@�zxӶ\.7�]��78N��
�Ky>�,b�8�sc��|	?{�>�u�'f�'��9�<"���6��Y0��$����(��(��&h�d{�!��]�ï_�^�����G������p�֯6eE��l���Y�|X�G"���;���R�����K
���P�W	��Q��S3�X*�͌\��ŻPM7���ߎ����0�;�߇�]]6h�&������[*m��|��A����ʟ�<�2�8���U�����G�*���3�2+�	�Gy/������� ?�\���&L]0I&��#7t���d�8���������QOO�X� �"�gϔj�jT�Z2m�}Jf�Xl��L\��2��� *D6,,��i���^�A�9����Wȣ��3�-O|w��u-70a�c(O^�>P�T��M��ef>��0�>��<�/�[�[V�VbF^Y Yb����&��|>?C��c&���|^ϘW�Km���{���o�c��P ���������#^��,[�K��_ɯ�%���j��@s�Oғ�.0͚aOZK:O-����sv��s�w�D;�u/~��Hw�@���&�"��0R�A˱�0���qh�`	��	�4
	�^��H��G��wL��js`��f���qT08��k1��;MP�HB#�P��0ۡ�ѫ��Ƚ&
HZ�P����^�aBG��Nz� ��0d�B����P*�P��v�2d;���(B�)%���^ZԞö�,x[*À���A|���a��2��l),��7��*1sҬ�!��`U��<�[~���kf.�o�<�U��=
b��~�}6[ax��S��� ��[�b厥�f�ek�(U#a�EɪR�,�S�7���ua��j�a�#�Q��z5��Em�( ��#4c�-s(xQ�
 �%qd2������(�Q�o�Ų���-}�*�#!(>�H�:��ⅱ�h�% E�C3���X6���R���h'��
��F��"�y�9[塽���|;w�J�E�*�Ԛ��M+)�J���ǹ�c.�
��:���BL�����b��A�Yxp��C
�ƫ%oiN@)�V�F�Um}~�9(͙�*�8���<Ș}c�����s�>��,ғ���ޅ���� Z�b5й
�br�	�����G�/E>�6ݏ�vދ����$2~S^�|������9��_�>��3���7�T@ְ�d�C43��%s�VX�1㱜g~�o����h���m?��\�!*^���YP4e#�f���7a~�z�K��X	�8�O�+��j��Ha"aǸ�	1�5j	q���>��J����J+���W�+�j�c����e��&�+]����8��`����1����~I �A[r&��D�����G�s�…+�]k�j�JL�އ��(z	L{w`�wzN:�d?����=O�З�W�8�@=}�	�2��bY~w�K]Ha��2�,c�5�2&�
��
�)��k4+b��!�/��%f�<m�&��<�YsM��xW;��x
��܋5��ZSd���٬���U[�a�Zp���j&�Z~k5�Y���R��<X��A+�Ղ$�
A��fXR���VK�\�y2�UcC���eI5P�PV���N��jҳ	��[��X�@%C���GOG7v<�$������c8�k��-�`���`b�6�Z���/ctϋH<��g���4ǜ��[��zM{f1er<7��h¼�YS�>ˌ�:��{q��1$|f�_�T��2`f�o�0����x��t�\�$��1�.c�n"�@��;�=�g�o+�W@�)��Y�!���q�C�2+����$X+��\��д+�V� �n�c^��cōF������J��=�&�Z�6P������f�z�n�Fu��<�&J�
y� HyL�)�O�ś�,ǯ�p#ν�r<�ؓ��N�t�e��n���зv���c�CO"�B�d��i)X�"�(F2Cxf�!�Njh�u�.Fa0��N���F'#陋� ����`5����Ɏ4�V��N!�O5l�͈�"3t�'�؝h�E�Ve��O��Oˍ���5�T4��|5���D^y�y/
F�[�F�#��Q�8�O��+�lX�O�
U7 d���ZέMsA 4v�̞�*��������o�Q��}���<�8�ܫ�榢C�y�����v:��R��l����셼~����owt�N����3_}O��x.���/��^��W_�o|쏰�G�ֳݧ�,[���(ڊYq[q�`��}�B,R@ҀC����2���<l^މ��a�<�"��"mC�(5Lk_�[�>�v-�s��w}�<=�l���^L�!eh�;7��B&?���wb�|ޖ�4lm��^F&5�x[�\c�7?m��A~�Z�����HI�2� V$�\�E�̗�|e�d�p�"l��AypC�:2rr���v��:�zk5%6(��,gAY'������~̜R=��.
N�0[q�s�	S<�F���d�7,d���dk!Y�`��U�+/����?���/?���=������
'^q��ތ��q�oF���,t`����etH�2�i<��5��u��ؽ�qD/���	�����5:�ј�t
�t���$N��ģ�ލ}�ml��@�i��IdM��
�`�0����	\����מ�¡'p����D$g��
����aSۦ��5
=�a�U������8p�Y3V,`fC0����&��Y���c�hʇ.��j�a&'h��/a�b.*e��{#�����As!�9G�x�	@�<���/```�\s
��wb����X9F�-�Y���
������E��-Z' 4Z��?���c�h0-����A��^9'�+EHi~3��#�:�qt�PJg�ch
�w`|�N�z2"�'�����ɍ�?�,����_Ew�*����E
���1�7�3�>Ár�ƻ/�;�^��÷�Ͼ�_P��񅭽�U���q��s�E�I��Ρ��(�ce.�ܤ��x	��i�[�qΚ��iCvd?ڇq3�&2OP܊�Gq�Օ#$#iÖ"�J�1�)ݫ*U\	�٘l�����6��9��Z0�dbbb�<Р��D�
)�S��{�?�s~.�ڴ�����t}H�s�0'&�ل��ˠ�v�@!�4::��{��o��o�u]]]رc|�A���o��_oK0q�*U�`��\�y�z߀��\(6�����*�j�A�V�ԓ:Z#��~����M����,���]88�d[FwmCG<��/~���twd12��6�؋����wbӥoB�A��&HDrF8�H��9�1�.�����|ݻ�����t'
�	d�.�Ǯ�0.�`��6.[��O�y�N4L�8��HMa8ځO��?����F'��ý�|�}�/��a'�߆�\] ��5��ˤ� N��
>��
�zU�}+�AkӚ�7�kAD>;t�lٲeVs��.���������f<9�@$l�������L��%5"�f,��7�1�2��yxx�v�¿���;�6n܈��N;��?�<>��O���G>��o���:j޸�����%���gPb�w3&x�R=�@O8,L"8�&$����m+nG�H����ڶ
Ł���a�2t��0>�F��g�ĊkkV�6 Ս�nè��7�`�{��3ى	�l��)�M�7���ZR$���w^:p�Exù���7ހ�>�
|s���whh'���C|��">�c�נ�ş!;��DX`
��
�ŕ�Vc�O��G;�/��_q٫_�_�>?l32v˸��6L"ȱ��9�df
�L���&���a
B3��~f$�B-����s�{�x�߈��;�D���x`���[o�/~�����ŦM����|�� &f?aNZ��[z�\Մc3�N�(�l}U�k�_�rA�����|Ŏ�*��{?��O�r�J˚8V4共B1Ŋ��z�[��$@:��Qs@�	M���+��I�F��V$}�hK���f����ĵ���ŗ�ry/.߲W�-щ�+�>�S6�kވ�X��i���M��
Y���a伴��F�F�����8I��/�r�ށ��w5N�ނ�����4>��/��#xU�*���p
�1�r����E�%�}���T��q��֓����eI��ĐaDÆ.�<<��Xݹ(�l�^�5��6��&+y�ȊF�\��8p�wﶚs�}��_�2.��"�s�9X�f�ьp����O>��5]~����y�+�h��-�L�y�>�0�f
3�I��P�A��r�]w�[n����m;vO�o>h�_?��w�k�^����s��HAZ���v���B���;�E&����
�B��/͸{
�:`ҙ���Xg�O،}���._���ˑ��bb��0`��x1���)s�d1���	t��UH`�7{挠k;�?k^��7�꛷�]�;���[qΚUX1�	q��2��?sc�9��x�2�x��ټ����TC��g��;B���x���%<:6���<V�s������cF��"�{qČY����<g���6��!	�>|�0���c���8�6l�{���}����}_~�e{.
^;�><��ǿ�mo��_l[:�۷ςC����l�1��
�n踰'�w��{�2�5���m�BȐ�oߎ���v,_z��#*T �D�b###�t�i���q?w���g��ZNZ�������f[�^M�R�jᝮ�t˵�	[����0ُb�0���u��c�qx[�y#��2�pRS)��!Z�.��@	���<�{�S��󍶞� ��!�����6��Ϻ��O��5�s��}�ĕ�oF��;^���|�=�bx�I&�/�)�%��Az�+�����k�|=�/��V�k�n��q�%8x�N<�ȭ��SHd�my��Y̽���}��Z�iɭT�#��x��sC��� ��8�74�(����(�APhi�����Q�^�b�(j�#Gs �i�Ȝ(���{�r�����s�%�a!)�Aɥ���F*��C�j��7��N��	0k?�"bB�{܏`����8f'1�r_�"�X͞�y7HN���b��cHa��F�ta¬�5V�1����e�j!/b�����c�3�5�����Ũ��+%�K��*�r�m���V�mrj�9�#��0'z=���d�U�v��;O��^~���s�g�n�>l8�]��UۑϤPH���g\�h�Jl��o��?�7�����Z���7_
t�`��[q˓Yl�:�l�d
k5l-�#3�*�G�e̋��I��`6�w�	-���;����Xħ���I#I~N!�h�%d�5�A!��s�+@�	\r-���V���N’(���=hՂ;���|�zMX����|�
���:�4�&�$��s�}�}�Y�{�7�yA��V�\�*!�bz�t3�T%yt܃��X%��z\�Dz�^�EGT��4#���B�(�ϛs�q@�C{.b�w�|��g
@1�V�L�L2=K4�yl��G1�n�~$f����C�3�?w~�u��:�_�/�݅	���{�g?~����2�0�oCOdF�S��?�Wv߁�|�1#�#i|�������6�/5��&�A��S����x?��~������~��NL�B��FW��I.�� P0��9)�
::BN�h$��D�E�Ç�-/f"PdH��K88��{�G��<�~(������|��A���*_�ak4t]��ᩧ���;m�e@�L̤Z�e����s�='�|�P���f|��Û��i)����+���5p�PP�j��-k_04�H_M�L��1����-U&��*&��Lɖ
���iS�uO�F-������W"O�Fd��J,7@shb;�4��#���$z�]f��כ����p_1�Յ�5�=݉��v:�H!Y�qb��a<�� �����0�7�:�=xhp�#>:�}�{���Dv����W�/5%��[㭞�'l�>���~�2�"
~&a�"�)�DX	P�dW)-�th8��1�P0�B��-Ѥ��yH4u��h�n�nPTW�k�,�5�U���&�"�&Y�}��4���?��W�n�?�%��W���RCZ����=�;(�A���ym�o�qϔ Us���u;�0
'�Vh:�
xlX�R��|��ڬ�.W��/-��
�;���)P`r��F��ɞ�.kbkq8�A*�A�0�N�ǰ�>��X������D"���5����tF���z�jO!a�*a.{�=��N���E�.�8
��|/zۊ��,��9�ʼ��Կ��-�'��:~a����(�i�# Q�p�	ӥe�!�OAL>RzF�p܀�#p�4|?:]�A@O����F%B�,��I`��ش��4皁4��gۖ��\,�j����������d_��0%a�R��$�%��q:Z�K7<t}���{�V �{1��է�R-��RID�4M]�+׀+00��B��O1bk�E��|�o�9A*�όL+�KXŞHdMYF�&օ�	q�*��,0D
��ҽN�J�s��R4��<w
m�B�,�:���ζKR�Bi��2��Nyy$�F;��V��{9Î��J��a��
���zsy��$IWЂ=��L=`�����4�QC�pk
��~{��I���f|�z��>����*���\�~.�Jd�g�/��A6Ň$e������f%צ#򴃽�ԫ����3��s�F�'h0�J����Z�/�FG�I��('T*����r��Ak���L�$��V�&�R3�H
���PD@颛,�>z�ʹ%�td%�0 �>DQF1�l���+w�u}Me9��ϧ3��U�
�?��L	�̀V�}OV
B��l���v�0A	��*�����ؒ��{�����f��K�'���P:��D��ziP�J��ÀI�
�F���aU����
�d�D�K��^���
���,i�e��k���HYC&�����f����@H0"#�������)O��6/��`��٬�JօF��4’4�enى'�hͷZ��><�������*��rʌ�2>�wrAH����䖣��/u��Bͪu��o�� Ѭ�֥E�9/�S�n�Ԫ��@΃rT�=���~�:�M��s
�i�/S��V�(5I�{!�iR��d2���˚�1�L���൧�m�]�$�^qV���~ڴƍ`$9�磣���ЬF�����Fh�#�-u��B�TtZ��
H�G�a�P!�t$N��1d��X1-�e��sm-뉀��3��e�]6��$JR��
�TlЕ>�>S� KZ�~�����8	���h\(2uA�R3�XN�FC1�t����n���x�V���6���h�{pV�I�ţ8-�h�����
�b=f�5�0�:�S{W�՛_S�%�R�;��W��^׫�9���4a%��t��Խ�"�!W���${�����¥S����s�hޏ�l�G^��K�|r~�K�����l[��Ӊ����|n�4ά�<Q�=�4d����m};��'�W��r���DIJI(~v����gIp[��JkP�l��g)��W�4�z,H3l��a�h�"@ܲ5n�ƙ�S,7�+=�>����.�M��
�:ҋ�I���s��y�����q?j�3��~ݙ(�xֵ舗�c�H)Ұ���;5Ä�M�#ޔ{��nI!!� t�Դ�1�<�R$]��6�{��Y�!�d���
Ŝ,�^E�I�5�WH�����\�NP[�ԗ�Vk_-�_��>�K/�����_˕{�AE�'�b8<F��:d�Z���5������0���gD���4Z�
�9s"y�|WbLA�)�è�s˗��I�]�?�S����ZN=`S�1�
=ÑJ��l������f���ו4K���ڸ���[-B�^3���$�U��
 I�|F6#A�P�� �Y���) �8��v��1x ���'09aXkr�m#_,��k����A���
JaW�'�v��s�ZY��ZQ�*)i�������뮻o}�[Kf�r a�����ENhdW�K�zv����Z*�]�r���Vw��_����A	��
3�U"�9�,f.޳b���g�
6�%f�}�B�\��h�V�KyJ��� ���g��h��<�Sc�b*�m]QL����ERh+F�k2(ַ�kn���(�b�$��^�dRg�0�H��cx�������i��#�{P碫5����w�[&>$]�A�Z�Ka+%�^��V�o��<���$r��R�OaĀ_65��\�NZ�˯�аIst6g���)拈ƣ��"Xi@"�t'Z�,N�]�R�M��L��B-�{���9G-�c��]��:��7�=�6S�H�W����.@r�\q��H�M�A���:-'\�R���Ա䙒Y,K�gV
Tp@�(��$1���y]4�v���F����䍆�Zv<ʐ��ZM�@���B�&��FOxW+��YՁ9DF��e�4����;r��m/`�-�6�w��x4k+���ۓ{�aɣhSt��v��Y�\�^�&��������I�{˕�KA�
-�jI̵h�2tNS��u�$CJ�vڿ�����1+�C�Y<��v�z�L�_@�xЌ�V����Ͱ��n�����1M�|2�e)�~N�ÕyMp�� ���u�%x�����Q���8�W��曧��s$@I�ǀ����odž�J�)��C�@r5E��X��\�[t��7���=(n�CI\
H�JI�V�-�9n⅜��T��	L�S:<�1�4��/���n�=a�oXa4p#P's��3s��<2�y�4ִ'�k���c����[CrUc�)��͢4�~�,�Nuzk}`vǘ�%�?c�.�?|�obm�	6����Tk(p���B�]?�l
ק#f;j�SF�If��k�[�J� ?�0v����w�9�>\����	���\t���H�<��>�۞;��a�w���K~�C��&[�
@MH45ʵJ�ɁѾ/�h�s���&�f��*Y *��|��+$0�p�
�d�c�=fs�!e�d��t����X����b�2$���B�[�1��{����ȒfS�d�ܠ�N~I���Z3:��Q�/m5k:���"F�&116�ɩҴe�:�a#��I�է0>�F17�K^���նr�.�Ru�e��І�a0��<���x|���G��x�\����G!c�)g�0s�㬽�3�6���]㾹��1\��
������smc��<�^�:,%�6RR��Z��2JJ�aCd�dPdI�ؖ�լun���`@i׮=x�^=�k�܈�Y�	3����>N�e�(L��/�K^u.�|����k3��'��E�ߤ��Q�J��ɮ�J���%X+���RY�����0>��ON��9�9���:ozӛl3@�Tl��;�� �4[3^%�%#��0����R��z'�[X�'i�R���S���x�
��<�lHOL"�5���-1�+kL�hn�<�2Y*S�����;w�Cz?����ޠK�k?�2�َ�������#\�=�叿�W��E�x�)�4��IO!�Vn)a��r���(�F!�aub.:�:\wƵh�{�3����Q�\�g�k��52wjiN'EW��H<)�C��F|l1�jժ��tԖ�E��t��-��_b��.�[�Dž�n�p��_�6^>�#cX���u�!M>�mhGߪ��B�1���1�����S#����
Ĥ���Wr[��Z�&��lE���|�T}���4rd��}�C���>g��#g�`�O_���@��i�+3��X/���Q�l4�0�6���_
�FY�0��v��=��-��0����0����!�߿�L�!D��]�r�1�8=���V�K_�;�[�7��<4^\ZGxN���}R���"n"�+��L�C�0�����z�.\�{7`8>��A��bq��68!f�c����9#��C9��"X���']�K׿
zOB:��dj]�����H��Dm���r�*���n��{FdC�"&HwQ:�i.cGa�*��@3$�#���ay/.��R�ܵ����7��ԨMR�g���cl8eV��?�o���	�R��.�����a*?]����/�h�Щ���.��n�EH-$!6��V�_��h�}��`�Jl]/&R���dJ�<�}�
�\���3͝�o+��T���d����l�N�F�%ȧ�Ў�RY�\i@!bR$�n��(�?�mF�dJLqxt
���8��$p�iI������6�uF�w�
��H�Z���=
��}����E���j�L��+{��(��v7��tF<+��y|���'\��=� ����S1b�۸yJ����x��t��y���d���t��<��Dv�5X��d���B�K7�.E��<[I!*G�~�sHc=)h�ǎ�G�)Є�N���O7d��T&��U���#��*�ޟ?�X"��˗!a�Uր���$������㢭�`|t��D��֙*'��.�;w���W_=��6�[���&<^	��6������W�o3^��_i��&��u���� #b=�{���駟��n��*T\x,��Qis��a~����F����H�
r�wZ#u�
�.�J�f��t/<���Xٻ�fbܻ�^���i���S׮E���l6Ίs��z�0�X��Cx�;^��곍�f4x�V���m��48J��5���GV3��O���-�e�{��}�mـ��0�'��p3{f
�q����@�
:�@O{^�m�7�>噅mA����W�oQ͜�&"�NX�\=.4�I��e/A�%cX�]E)�t�� H�d&�������~���r�{x�ŗ0Ϊ�FpE�h7���k�֛����3�R��|v��h�/W����~$m�Z�2!f"^�0���6�U��
�f
ϹjJ�����M���.�������>.��r;�/�����}84�I@�V4��)��9Zo둥Ɩ��|7בv��|R!:��h���888�q�ݷ���x�E+p��M�\n�����r�C��vd�T�Ї{^�q�s���V!e-;9^jXjJ4#	u�/�;��ء��Gija㯾�
l8�$L����Ë�����E�#(y=J����WM������<}�h���m/�|`��Z��ͭpC�k�[h�6mQ�!/�GJ��p�pa^
�����*>D�KC?���
�'������qp� N�r�a�f����=��.�>�
�{p�)g[����fT��9iZ$(�W�V����#	�ţ�KW�� l�Pk0�k&S�3�/�?ͳ���U�69�_ke�>F��\�� ���+U4 i6�}�|H�ZS�;N�����@��'�0�Y�U1b}<Q?f�N�gqh�e��p`�a�?!�/��%�G��6R��!
#���J.�fH2Q\}�j�9!�h�A��H3
)_�Y7�Z1#�0�+��x����]��aKF�FiW/��Q��d{z%_մ��B��i����"�"�R��BHŅ��SТ
J��df�@����K�$�8�Mr�6o�<m�%n������p�
�]v-��Sq����0�em�
��»�nl8q9�E�+N����!l���/��k{��(��������"\K��\Z�)D�6b¤r���4�I�C���RB2'���UBʽ�Ȑ8�8'x�T?b}h;ʴ�$�~��f�gZ�&��	jo���;a4E?������{����3�ê�19�ES�໮��D�~�8N]�Y�
����aL�Nڱ۶���;v�<�渗����gpޅ����=�e����܂OP,��=�[��:��{zKM�,��
��Q�l,{�B
�B_�By���
?'}�f�bԶfp�R%�/����Я�1�{RVHWX �I�
,j�[�n�n!��i���С����*�\�z�����=���_�B*?1��'�Õ��
Cc{��(����Q4s�i��"���o#�]�J�����j�S#�o>��\F���g�Mod��[�Y�tJ�R�rI��y��h�.D���,ٵ���.2*ؕ$m�:����l�� 	�jɂ�ln%qx�������a<��c���?��hW]y=Fǁ�V��^6�FV�w��y-�
�H�=�n��?y�^�?��l>{�yy����׷�vä|Lf-����/G��������I�����m��r^�\�l)`�6�y� :�
K`�'��)�b�b��{%��t�[����>��k���~I������Â�I�ˆ�Lz*1aVJK�R���|�l'e0ڌ��̏ᡃ��7�
��q�r_(�= F�I�;V�Y�@J�T�S���mI�i��Ð]%����'�e���r�=�=&�$ �O�c'I�%Ӭg׎����	&T��E;h��=d��`�"�g���DP�!��Rˆ=l�~�c2V�\��F��.�2Cѥl��7�"���۷%�fR���'�@&������1����<�s׭���U�I��{ߺ��]����-���h�Hb]���ID�����7�m7��w`�-�}2�ǽ�pq&+�ţ�z���:u�i��e� 
���#��l9x��qE���ep*�ƌV��Z����"�n�qW8��7(�_���I^.v��8��V�#��x<��o|��\�Uz��V�x��6l�����?�Gx��A�B��/�?�A�Ea����D�鹦۹K5k�`�F#Z�l��ϖ}5k�}�=�o��R�V��yf�(b�
%p*����*w�=u�w���g�H&��*�zӝDor	F�Gv&}�ZTD�:��T�p6~�ٚ�������in	�z�0��Mx�2qݚ����(������(؋��!<4<��7�w�nЀ˳��7��~��Ƒh���իm��6���B�0h����8�������/����$Y��6�s4��eA��=[���~ι`+�&�y�3*P�w6�C\�2�y,Mn�\�0�r����ܤJB��C�A�����k�;�X��������HgT^P�Tڰ�slqX�l35�9�&�������[����w�<�oY�e��H�,�:Wf�foˆin�=�K^XPU}�!{�!��Q̲�����О�0φU�Hׂ���b�<�nj��R�]4�J%����I5�j�Ț�bXj�y3�͇��Q���n��������eг���6D��b����)�i�1n�����]w㩃�04�����3��a+9�Z�s�����N=���?Ħ�a�y�x=��^���m�R�{l����N���2P��{����/J�8��]"�fS�L/�J��h��a]P(x��.ȁ��Q�׭[gM64͑�P`�f�BC�~Fa��׽�~NaC-W�2¦dN�<"��-SHQ{��,Nq�ňvp�zv�V&��ti,(�鳤s�+�b�
h�u�R�f)��J����[���0E����Ge�eѸQғ��S�l+�1	����OO�嘳|�y¹�kap�DrJ4���U�)�&�VH�"�@m���$B������Y�m-�[�����ѳj%=�s��`t[���@1�1`d���[�H�����0a���N�o�nDF#�sF`��@&g�c3,�i�Hg�t
5���
��~;#��>�L\��7����j�"	��&�r�D	��pY��$Bb�o-�=�8��E���ŇDpa��.����!0��f��P�}��Ԅ9h�{ի^eI���׿�uk
���aܮ�Q�������>[���G�!@��o�M���R�ŰhŹf���f<!&[�$Q+Y��K���D˭X����<�����iSs��5�
�M�{�E�;�}�N���ۈ�aY
���P�D�"W�Z�,u�@ɛ����l�j�|�i�8�u.���S�/_�׾�
<��c��|�6��,������^g,��Dl�l�S�9�=�aX���7���(⒳7��*��k^�L<��Y\em�Q�8K��=�"���	�Fc���?���~+�\a[M@̵�T�"�t>�(��j�L�vO�N�u�ڵ�8�)2$ދ?��?���B0<'Mj:ԗ�Ap���g, q#��r�)�
+|���w�1�o��HZ��۲e�723
5q�K����8��W[������o
^�
(�V2n-C+���>y��Aj�h�B�f���h���`b<���چs�?+�/+7�;U'�������o^�T��\�-]
��1�,�|�h&Â��P�ft�t������wy��<�SNۄ���G"�I�_�է���}?��ؾ�XL�ӀE,n�'�]� Y�u
�X�30���"�����~��؈��q��3;R�)!��f��	��0�"�lOO7���u6<�_�ծqջ��1��ė�+4�}��U�K�����*<#�X��L��1 RtS��n`Ei��w�m�x�x�m���=��_�%��w[��yϽ6��F �5��z�F�ע��j�tP�0�Z��l��������TJm&;�I�Nd��x�r�N��K/ =���8u�ZD�mxż>x`��!���	���)g�����b�fL#TNK�W���P	�<���4���Z�"�2�K!yv��Jm���p��-ڐ�L:�m�DSF�����ٱ���ᆷ\��_ه�{��c��(ߋ�ܣ���6B��V�1u`�>���o¯��f3���dr*z1������slt:$���q��WM|�5/�
�ά���>tm5]�Z�c��K��(1q�W�7��v�ϸ�%0@������.����xM�.��6
n&r�
F�]��x������w@�k!qߏ|�#���g?�٪!I��62i	;В�b��B�B�瓽̵��1���V�6���5l�824���}��bx��_��M'`ͩQ�}�J���Xy��Ɔp�"|�y����‰�mf~��ؤ}���s�d�p�
��uX�h3@e���ϛ�n.�/,�?H��
0��׹J��Y��R�dO�,�t��FlP��x-z�i��=��'�j�m{�I[���c�eY�'���N��?�q��W����8JUx-9|�/!�|	�J�������k��f�`�t�DJ-���ڳ�[�B�bA�Dšy�|�
HU�Z�@�N
^��/��|�c����As�1�p�	��.m0J��;"CbΑ�����ۿ�۸��K-ȈfTGQ�M�yX��*y=	���o�-U�f	K������D%�A�'k���|�^<��/�e�V��q.<��a�~Þ&��ܓ1a�~�l:�
�>l��(��B�t�>�mttlڄ,�H�WQ�D�i���U�u~�N��l�:yVw������L�+%��
8�7y��w��l�h����
;��ms�I3�{{�p�ŗ"��c|p�|
��:��d��>>3��(dcç3��7Ÿ��;5~.�ZX����2�l������A{;�XX���!�ƛ�E��M�j�l
���{�z$钬��J��l��I�-�������qaBڽA�Q��nDd��j�;�k���YU�8�@�U����>3gr���8�s�锓��2c(�g_x'�l�-���V-�é+�c0Cf�(A4��������i���2P���a�,c:,]G�J1�Z�x���oh>L
����^a�A��2��VM0�;�R=є��V �:�=;wa�=Z:̄^��L�)�I�k�^�{���-�GWG;R$�LI�'�q�-�S(k��C���c�@�,�'�xb��K^�bJ�v�u���Z�}V�d#����k�h9>�n��~����-��Cp�<9���ռ�1Z��_��t7�a��_l���H�B��N3��J��jė:k�4�U�eD�m��p{��b��X�X-�zM��<�9�o��Oqxr���.��w�u��^y9>��6��2\u�
8�UW�/#�5�v<�d�2{~��(w�څȝw�y�&Ca�Jn�^P�(�=,����p���\���x"�����֎c���ѿ�+:#ȧ�7�F��ѱA�����G["��k���ҏ>�FF�q���֬]m�`���
�gڏ�R�n��3�FŮfvk�\ͱZ�p�Hnep>S�0ҍ&2.lj��J3.���5�U�����4㉆-&!���k������N|�[߲��c,A���׾fA��v��t�2��½�n%�s�\%�H3�M,�g�ϥﳄ�K
C�M3�������n�����7Ðp����ރ���۞݋���dž
[��K>�d2��qFq���x��y�{n�i��uk�/h��JI8�*:ЗT�l��M��0�s��G��ڡ���\.�b�h[;DQR~�0�	�1���q��l�M�l��<?jK���q���4��v[℡˿�Λ��6!��]n�Aϲ(}��_���|]n@B%P�f���a��\`�J�3]A��������椫=������py�-���&Li���ԧ>������?��?�ȽG}Ԇ�3��f;�(I��d��
A�J�i7J��i�%��J@�7_��
r��9��3�U���cI��gMW7�l���?�����[?�!R�	,�Y�ɉQ;o��
�ȇߋ�d'!5�G�P�4󥫣T9�ss���6?M֛���
k�=6�1XJ����dNR�f�F���u�<�
��R�2���sz���M{��~�bY3ɣF��N"�+"��0z'oڈ�9nd|/m7�d"���=xr�_%m�uf|*�Q%]%����V):,�DT�HQ�n���pk����VN� !�}��&�cܪdP?������Gq�
7��o�碶�����\s��ģ@��lM;�=P���n�h�=_�ʹ��>*��z+�K����8nd�d+��5m$��Z.r>R�QLFF0:��h�y!���������1s'���(�v��Ë��z	sf
��099l�t��+~7��!��Xg	�	���-�4�f���`m�fRqrIȕZ�{�RHVc(F�17]l72�˯���{B�¯X�z,�P���{��ވ��>k&*��R�!��x�A&H�s�2��#:��4F�1�A]�\;���!�P�d���e��#�&7 E��N�6��yO|�$���~=��?�|k"� bmVu`��?��?�����C��*�W}Ou��fJAZ�b.�HA��ߥ����±㼠���G�*ǒ���Ӿ�w,2\�
S)���]��v��i�ZӇ�e�hK�Fb���f]��'094l��J�����Df�9ޜOί}^K�꼂R!�v�̆izn�CI蕪l�^†ql)�l�>����߷��6w��F���,��+��ف�/؊��v�B�����̚1�RP�p�wUˡb_a�0F�<���U��&�B
a���o��v�m���K{l�o�&^1��A��J�-��b�%5�F���|���'�'���h�����C�I�~�����j���v��A3�K��@3�Ν;�Ѥʼ�m۶��bV��{�,2�6�Ǔ8��+ѻ�v�����z���
�p�f��o�_��8<0�h�&9*0is�)���S�f�� ^��kQ��Q��2�-��Z�Z��Z`k�z��'�P�-Pn�gtc��E��z���f��O!55��.8g�u&V���N5���h}I�8;99n&|lF���+K���a� V4���a�oй��A�6�-3�($L|���AX���@�ڷ�^��OaD��ַ#`}�K_���1�����]������Zh�w	�U� �L��
NAU5\ r�n�z!LI��%���;�
�9�-Mx�>�>r���g129���.�y�Yx��s�(6mހ緽���I�\�����p�N�E�S(Dį�#���f��q���`{�ԶZIk�Am�]�TJ8R5����,{2l�9��,O��php/�<`Q��
�sFF�M�ɜ���=W,�8���n��G�Ĕ��H��p��".�
k�h���=�oQᨦwz<�&=����i+P���6	i�2�������"2&�
t��Įy'($���FL��ZSA&�v0Al�֨O�DX}xdK,��dg*(�����}�‹dltl6���=�'{#C�8t��]����z�Z��e�
5�M��u�_��})�IY!a�o�`�V��1��L�D��),�e��E@� �����,V����x
xž��mo6�:�عC�9+�y��w��۶ �)�~��E����B��C�h� D�}�%�����G��J.�4$|\!���
)�����5���p뭷Z�#HR[�MA�"l<�3���f<w�4Z�]��U<�C��L�ďD)ɳ�T"|����3���5l�t�q����SOb�ꕈQy�����֜?RKQ��I$ �V6$WIW�p�x)Ym:(�%i
r)��j݆tA�A��4��Y,�D"qtwwY��9眅?��?��9�MML�Hj��eF�
iJnC%��.v7
.���
���DQ�EVb[�̓���P]j�tD	71��7$��"ү���h��4Kr��QPQ��;Ą#�\�n�Z7)l6��I��6��� �e���]or�$<K���Z�h<*d/lB�D�$�V�Y�Ͱ�{�����Kq��F�Yi����LbÆ���"S����E�m���^��Iʼ�5ɵV󥶘RsYҒ�a%����
��9Z�p��Je�i.o���q��-��֖�����F�dbFABڭ4Q�d�k>�[�kX�cW��$�cP IP�`S����UG���L��[>H�N
	V��e�o"Uõ��
a��t%h�_����k�~1��¾4�I3?m^�Q�شi�5�I�Ty.]c��V�u*��6��V@��#X��ߌW�0��iV$�WJJ�ZY��8�lL����K�;�ʽV�Z���%�%-�P-
�Zug��t�C;9�	��N�lV*k3bA�ڜ��txwXR%0b��Kv͆E�Զ�0��}��V
z��Aڜ႖fA�1W+꼪?��T�K�$AaB'9��p,��X�#& -�4�q[����{4-�$Z������\%��%��9TK٠*��q"RJXǐ�X����̿����ӳ�۱��5��Q�Xsr�F~��5�xR�W�2�t���ެqm�)aa�����u5�0�7
A�A
m潢
~���Z�D��f:�:,�!,,[�����QA��ٌ;�%( (Oȭ(�u�E؆k����mVsA��,�IJ	I����^���p��>۞C}]�h�&@��������K��0�V:�
8��@���Gq���@�82�NƉ�#5���LH�3x���`��b�9���yE��߬G�/��d>�A�.��<�º-�]���B����AaQR�箶K����8:O�@�� `rA�RS7�\�YPP��\�hrbӕTR[H�	�.��[���H:HX��ԦK9��`�X��%B�����M�+�h)nԨ�Q��r�W�o���[�ڲ��u�5HȰ��f��4��P�|��Øj%Sx脭C��LJ�"U����s2�����8�	�H�dz� ��%hAւ�
�_ǒ`ȵΎ��$@ѧIP"P��N����W�Gs=���1�-���j�x܁�/�ϨE�LEJ�W�k��V�.�Lt�� �}.�ҍ�X�T��"��>��?,�B��$�W7�Ӿ� �
�0i��VALM�#~C�������B�E�����+��‚b\�8�)Ԙ_��wC؃�Ka$����f�~��*��0H^����cA��y])sM楾����FL�z�HGY9F�H��������&�z�
���%i˃k}�%}�Ŕ��y�Q@
���������m�}���QXX����A��:�<'��,�\,6��=��S�(Z������l����~�'�|�}�gLG��yu�pw�
�hs�f+a	�aEd���q�IO����|&ݗG���<ڟ�sk�i�h�ժa�c�Zhֈf�<�5GP 0I�9���H�H�+��ȃַ��ո��8W$BS"�8�DC�Ϳ������1�j�D��P���6K�!��V��mW�P��W$LE�Z�Q�XW�Z�� �D���h����m��Aa���a�7.~�f:����	�5���?��%�g�͊�S��)O�'H�?�͊��0�*,��g2CQ(�3��'~ }m�Z��j)��:��ZL�KQ3��oĴ�*���X����V�Xr��g�RP>`p	Y����y��
:�I��������9�oŵ��s*p�Ob��%&`9wP�i˧4�Li�WXf�>���8���/�l�4���]k"lP/�2#1/�AC�u��XВ���v��}�Y�r�)�`��z��{&!��fWW��Qp�%9�s��e�+��8���N7E�>����kڔ��d[��t(�6sJ7Q�#7��M:�է��>Nؘ(a���Յ�>ƽF7�D�gk~��3j��e�
�Ly饗l�Eng�u��q�<��*z<�>2'����$�q�p^K����K����������P��%-6�Y	`*�gV+�#�SLvA�#�,\@�d�s�-L��Z���h;����� ��xnɣ�`&3��g��P�'(�T�Db�d�IB*���]�惦@���"\�>0�I��m&���Y�f�nT��K
u=���uJ���[Ly�)�U����Mu�7�}[%!֠p!��j�R4j��m�e$���H�t�I�1ɘI'�0KGXq\a8\2'�"��|Lξ��, ��Ͽ~���|�z���[Li��v��i�A�/��2�i�]�Z"�\G�0$TZ����RSν&��#0���$I�\�⸕���f{��T@��b&q�F$�P��d�y~�i�YE��b�'H��Zڡ������s
Z�ha����o&�E���[�!��.ު�I�\Ҍ2���W3|s����Jt�I�6�S���{*]	:A��袋.–-[��.S�����F�깦�3d-�p��.�̚���h]���ܗ$l�$V��L�n���f,� ;�k���,H�+w�i�$a��\W�_P~JX�\7S��2�)d�1��*��D$	 ������p�ѴG����h��h�yO�x.Pj�d$�^��}%�W�!��n�:$[�4c�������(� E��T�,���3��{b�Ӿ1}�frj若5��y#'9��)c�yƹ�M�A$��u��5�My������J����U�F��+��ZL�>V���X�Z�m�.���R:H8��AV�.�dP��70�{(�tԐ$k����"f:
W
����|��D�\A-T�cE�J���M��R͂V�K		�sȽ�5	��G�j�|���BF�Q�]�Y#��X�+~��n�:ʏ���A���qr+�k!�ߧ��+1
7Hb�A��f�zY��lj�O,6Vd�n�Y�
��*~�=�^�A��\��%��s�s���,!�2�|MЪl��ȼ�`J�\O�z��g1���q;���h-]G��]X
�0?BP=9�u��[���@DP��^��	�"���#q�K�v�r�X�o�1�">']�T�}/(�:���I�S�OҾ%=bBcJ:LX6)�*׫ᅣ#)3a&c�tІ�C3�i>���^Ar�
6LG��')����d�Mh��']VH�9,�@�z\�yZ"W�|M%���k�e��:�Exu��k!im�%&�.��FXSXWY�}7�ZJ�aV��RsX347!Vޣ������F�B�щV���[��
��m�����v��h5d%JX��[r#�t�6+�I�����X-lt^���p�+)/�)����=�@
�ޠ���έ.���'RAU������6��6�r�0U�'�/(�e��[�7��e�h��[8��;��vT�8�����h��uh�,ǝ�
�K��ד���,��w^�'���5�J%=�r��V6-x���1�7�aHa��aI�k�u��_D@�E �.���"��N7 CG�	`���B ߩʼ>]F�)�$V
4b���A	�3D݄W���t��;�t)��	a������H�$Ѷ]3�T�v�ۖ���U��T���ty+�T8F���G6�
ox�*Q)�N���(�/Ȍ-��
��g11k�0x��dL��}M<N��e����0e�-��p���2�L�����t����}6�ECI���ΰa~� ��@$@�<"�٢���SC�M���ɻ�B��t�
�n�'I�
r���!,�CW�����!�	���(n
L:g�m�Cxu$�0Mj�8<(nҲ[�J窈�r�g�R�j1�|j�vW	s�O	@!J�M���D\����Ϩ̈Y�
��k]���:���|2�9�����2f���}�Eݖf����l�kjn�\'�6�p�A���|6���J�"��s�s�D��*��3l�ك��`D���)��0ܤ^
L�Z��2&�$��q�{��Z{:�^�?}����������g��f�ZS�>,�/ӹeA���^K-<�\�iI�ͅA兴_M����
��1����AL_7Ƭnj��+�F|���)�s騘]y�}�}Jө2���$tY"�p.�e�x~~/���q>J�QXB-M-[>��Ք��]�T+.�*´ً>�d�qo}1�B����fl�尊ߕ�'�<&@�5і.=�hf�!�R���Y�fE\T��p��o��$�enC?w��'�&	��Q}N�I�}<�GK�(�$@C3$�y��˓ϵ/H���IG��A�B/�ޛ�6�]I��0%��5��c9�׭Yd-��.�ID$�pp<\����;��5ّ����T.��W���R�Xa�2^����G3!s�8�\�����(Jzm�)ɳ�V?�cdnk��|j3�T�fɒI�%}�����\m��>g��o~�[�G��~�
��¾+��4�dqJ�jdr>�_���0n	�ֿM�6W��\P8�}�=��肊�j���J��<%>��"�-`���7�$�I@�	_PR����!��%�K~���ɚ���YI��	V�LA�9(Ma�V	����x�Y��b���l����O��ĵ*�V¶�qZ̗�[A�<7�=7=>ҳ��c.c�r�|�w�:�����RvKv}�Ք�z��q�S�%ꮚyo!���s�%ے�Yփ��]�e��/~a?c���|��G�]skܹy�)���V*��<R�G��sӔ$��M��[�$xb탗�G��{�6@���E�I3��E���#��ӽk40�}3����G�j�:�ROP��"�
u=W���89��0��$#`�K��y�Y�X	�0�J�s���#�pN�T̩{��_?]�W"dyO	2G�,>&Qxt}]�~��h�I$��upL97x^9'���V2Ӈ���7�^�bbI�e�A���km��?���|�披�竺��O��t�k7��)}
a�d�pۮs�<	�a����Ÿ�	��I��<ܦ�Al��7��a�a�wF�J�g��b��S�X���MԂ�D6Q�H.�Tv�D:�M�@X���	*�������h&ꎡ��}}�����]^���c���:Q7���5, f��$$�et�g=�V�H�@�?�tt}衇l�F�/����K0���9&�F�,t⛔yƱb�Ǚ�(V�ψ&C�r������f_��J�ڰ��O�8�´O�1XAO _,����z���o�[��R1�(�RC��1���D��&9�ɜ�G��i�h�
=�dX�#:��RbB�2��m"A����~�)w�5�g�bfF`��Q3"0$��E��b�u{�u��	����r~
&
1�,�K�Ŵ������}%RL�G��Z�k��AnJ��D$Ȉ��}>���Sb+���x��]�r�D�	 �</Y'?9^�mq�X��I�+��RV����8�k�of��%Kn��ml0ʹ`cz���%��$���?�K��	�	!$����tp����e[�����ϝ=���ݕ,��e����S��s���e^���x���~�S�N�y���D
t]�y 2{v����ʤ�����Z��X�|M���vL:�dgJ�^ĭ����~$���1��L�m9G(KzC̏p�T��yq�C_u�x��h��h�`�RwՐ�W�C>U0U�/Rϑ��
�Q؈h�z�r/Z���WW;�}��I�^Κ�z�n �I}i�2�[?c�ϱ�4|$���~[�
�4V����v�9{���#p�sL�k�XN��=t��"u�)���8����y&�F��>����6yR�ɝp�g��Ҿ��=����^�Q.<�99�LNV�´��_�RFX��os6�~�B'	�����Dz�}@2A�P��[�9��FL�/1��e�d`�4�:�e���b�<
:&s�6��q�d�{nŮ�Φc0�j���]��t��
�jnHU"�v4AP�.{<j�>��tػ�$L��!�?�5��|��՟F�^uJ2cJ6�Y�`�l�G�wt^���WjeA@�z��L����BZ�@�@��������m�:���~�	�M��bҍ�6��Fڡ�a:�0�-���bC�6mٌiY�v^.��tP>!��R��)�z����W;�Ң
�rë��n���-���}tҀd������(���48��vM��$�o�cO��"������T��UC�zM�u�1��elX���Ɗ��C��S��H�r�!2��FVW9��\�S���V'楸����+*'"O�&.t���}�r�)�馛�gBm$XP���@�Xy*
fU��3�u��i�����&Jİ�g�!]G&�P�v�ۚ0a�����Kr���J�НZ���`��员z���#��0���]�����G��^m�uc�*��s.����lN͝���yՑ�p} �һb@(���ĉ�`�Yg�p�*�{"���X�=��1$����o6�,#Ģ��W����
��$}���Mհӽ7�0��a�����L�g�;͞il���p=�,]/���
l�@o˫�Jg$�j����L�6t��p�1��sIۧ��㈽nf��%�����-1��q���dнH�E��	'��!P�h��52�UX���P�)�'�W�����0*ѥ��T�P�����)�u��B�tc���i�jH���醚���(�x�?@�D3x���$����mGx@)@����w��aci��S�����P���LjgPu��w>�J}�k�
���-�]�;��J�Pn�{A��z����b�x>RC�
 �5������t�	(�\�y#P"τ�)��(�Kc�r��
��j-,��oU�[���7h���(
�@�B}F\GH�M^S�"����]"�
?J��^/���[�nə/R
�J*Pg๺ݪE����hj��+�K���*{�n��2qG|	J�e�}�� ��ᔔE�q$�DJHJ�؈DC�(�Y�OÑ���w0�jK&�̓��
9�cػ�==��e,Ր����zy:�3�SG��5`v�ޭVeEf�Uۓ�|g���y�Í���o����T�qCn
��8�`�
R|�i��H���$��%�61�T�"F*�� �	��PA��Pz�B�q���`{�‹�%�y;/)�4W�K�.���yX�Y���ՍY-�oU҇�]��)�2����T��ƶ�5��v
\SD�2'd��}IE��փ��n��E2ϔJt	�=I=1���a[	VR�/�+D�葨3�h�^Kݪ!36�r��a�nn
�����B�q}���J��t�aC�E��ƞ�ժi���6t�}`�7�Wk������<;+��%��쑲��pd�
򚈙G�D�^Ƀ�{�jȜ�YڊsWL�ᦂ46��hL�F#��RK0�:#��!�B�ng��(�i�.4�:;:w���T#�K��&V��R�)�����|�:�PC\�!��̤��#�H$,��A�I�����

R��0(�/�+��->�$q��d�x�c2���V�^�cf�)S�7�k{��2-�&�	۵��N�,�D�D��f����PCr�Z��U�:g�D�+���{d�ȃ�C�d�8��Og!z�N���og��UW'1�ש�=�D��3�(���������F/�Y�$���L?W#�=����(k!�����Yz�Ke�e�����`���^��F�4\5�Zkjm���W������^�ijL��<��Rd�ix�:�ؐH�
��^���ZQ���e‘^��"Ŵ���!��`��H���%@�'���^�Y�
��.���7���l:yn(3eZ2T���"_:&"���@+�H�+Q�`p<_��zX/=<�:y�.��uS�\���:�)=̫{�{kX�+O�����E�z�WuB���k��H�
�ɂ_ȕk�ToK/-�_!����Ҽ�yt���������u: y�V�m�7��8V�^��r�){U� ����ݎ3r�%2Ӡ�ҿɘR�vݚ�|�	
��jCu�T
+°j��t���⦳�p�~�Lt	��XO��C�X���V-��u�y+We]�%f�JxRW�Pg���z&��V]_��aO�?��M���8m�6�yK�L�F�?���>v��D>��j�~�W���_3�l�#�~�<��z��<A��Iyc'�M��fћ��Je���>+Ӎ�D^u�̌����5F/+ Q����-�����G\���.���.Ǝ=�F��gƍ/��c�պE�a7ꆍC�ȡ��.�c�k1J$(�
@�huU����4�V�,3c��]�)H��z�
a�:V�g�cS�]�aT}���P�Wq�:+WsD�L*R�;�Btٺ�K�/��
��)_�������:fL������׌�B2ۋ�y�ef띤�K��ռ'L٠s�T5��j�!���v��@5����v)�҃XOZ�֋��1y���hY�XW#��N s�r\~x�=�n$S����IL?f
�<Q��uR:SQ7�j2�A@� һ��QWh�Yw���OC�'�M�^J�{��u��62�=�a�]��^9`���ı/�����Egc��g`R�>�b�*/b��.׬%׍�R�iv��½����g��E����A*�m3Y��)Ř��qc=�c�g:�I ��(4��8N0�"�h�BGw'ں���#l���NF%)$�y��!� ���tzl_��I�1P�tj�P��Ӊ��x�k]�֏��*TP���&��3��r.�#�4��WA�@��[�]}�F`*�r/J7D���Cw��]#/��KR(W\YI�XR�+�vZU��d�h�N2�TKA�$2�j]�.y��dH,F��J$)l޺��Q�������bH"� ֯o��
M��Ј��t�$$�8AQ$���R�(G��uc�a��rD�A��sx���L&��S��x=!/�W�F����%u�t�K�����A�4Lxؕ��'�z�A.#�on&��,xA�.(��'�J�����&Ʃ������+��Ok
?�_���:\z<^�7��/UJ��$��>M��d��U/r�}fF���)�U
ذz9^gV�[��.��	4w���t���10� ���D��O�w���t����js�3�-.�!���ibB�'…����J�]u9G�mR��:��+qn�="tY�"[x��a���7����Hx�Tn�c�v��Dc��R>$�=%����^�X��HY_M�m����
�I~���ZM��9��6N�s����hI|r�…ҫ��@U^Gݖj<����jhN=��"�4��ɞ.,Y��6�#(�#��
�۱@�h;	8	KJ�����ކiO����(Z�D�[J1KN�^4�ߵ3�{�LB��-[�"3���+=3ˎ=H�N��Ǩ�����>�p�Yu����]Mx�Y�p}R���y��Y�V���B�n�j���F�SW���P-�<��ت���g�~F�K���ULp�R*P<��k+����}�ҥR嘛��*�6�s��v�8���!jF���`�����zU�0��#���Nf�¤:�Q��RI�������:tlB10���;�y|��=j�F�2�c�A�L�'�_W^���H�O��%��4yKt���Jߎ^�+Xxjnrg���������V���(��J�\����3l�tI!6������C��F"�w�����؆�>g�]�M�d� s�ex�8(�E�I��1P��+��c��#^ts�j]x,�RN'J#�?�P�=�<��{g!�b�HƓ���ܚ'G*6��ks��i8眓0f�(�c��M���vxt��E���`J�H%z�<�S�\�����������ab?㫒Tx��	�L�s6�iO��s��K�k=��_�	J��Χy���z�Ȑ{���$�m�?�eET�ʪ��TBu���j�Tl����o��P=X(RW�f��%���z�0	����݌�����"�S'=�P0Kl�7�B�'�h0�ꪡ:����hD*ށ���{�������S؎��B�����y��6ooNJ�7��J�F-�ǝ.�W*@�\_T��|)���e0Z����J(,����9�bd�����%f�ekO�m��+6��8��`uI]E@
O�|}��ָ_�ƨn������
>ܰ��[������/�NjHZ6F��`T]-�FG��J�!�qBA��z��/c�S���~�T��R�cO3�x���"��!ψrH�@QgQ&n�Z8��'/�:ջ��w������_�JݮW͒�x�`���H�ٮ�}�|���A���9���@�|YJ~a=]@�%w��kc�/�.��^E��c@������j^���,�r�>2�*EZ
����o������;QD˪1f芗�sd�����bx��:�^����H��V���|�ԃ&����Y"�)q����DLx`�M��It��#&��e�֒�v����R�'��\^�W�J��x�mқ�q�>F^��*]�qO�8��}؟|�@��}���%W��o�Ja!=,�7S�ž�:��'@R��w��#�Yj��p��C��(�Fa/5LH�e���0)�f�M
B�bL;�(��x^��65l�%�(a[��� uˆS��q��g��2�哒�jhm'P�aG�}%�ıf�
;�2�Q�L�P��Ot�h�;~���Ά�U�ɻ�Yx,��r����RX
�}�t/ŋqD�䧙6��]/֠:�֓�:�a*�68$Ɲj	��@8�c缑Zd����2�?S����������Jkؼ�[��ΰT�d%Q=�Zxg�Rv(Im0�A߶ج��2��A�ԫ�����v^M��7�.��g��W�Gz�_}Lx=hR�ì0}|���
Ka)xJ�ۉ�%�
���eH��w��ddYd��M�}�x��{����3�5\W�f��nUF��ٖ�7%Uۢ�X2���?v��vl�_���f,�!%��R�%>�
EQ�9�F����lI+�9�~�1�������D�|�5t���;�KʇCy:(��������!O)�qWX
K��aO(���Ob6�n��f�~�s���kfx�$*�>�JJ�{#�qc��#Ğ%�e��B�V��+�|
z�իWK�}F��c��d[	dxųB{['6o݄ΎV�»��DᆤRv��.DGw��,:�0Y������?��"Y$�_Vt��	�(�H���Jj~Lo�ޣ��p��A��%.�U='�������xaz?�UyQ�]�����9�²W�R�Uf����f����
��=g�)�FD�*{yR���9
]�F?>�x�=j�M�@��Y�Ԧ���!"�믿�+Vd�S5�ldI��
��O�[ASh. ����W��0z�_y�e�@���[�dnײ��!��i֬Y��A�Ӿ�~�t]�$�HX%5��68Xł��si|�|�v�~�%�����B�^y%]�d��go��@�O�wB�c���墕�^-jkm���l�fs嗼��c*��HS�h��z�I
���%�M9%�0X���K�Q��֭['�'y[jS<]׍I*XdR�Y7Df�瘺˦��e�rS	�MlڴI���@�A�Nh���\�����s�N�v�v�*���%]B�p�i��H��Kr�'�&i]X�gP�gG���(�;?��p�^�j2�IV#`�HU�P[5p]�J?֋Qɻ #O5J|�d�U�
o���8Ȃ��R�8�*�S�V�
*�����j��g�^O
�Q���Nn��JW?cB�:�P=�l�y~�4�b��J���
Ka)xJ��I��1(�y>���r�%{�Œ1$�Q�/�p��28�d�L��UM�s��C�/��5X�%1��s6��Tے��?�o\/��2�Ǧ2T�J]��������zT�l�'c��T�5���7U
>��k�E��&#~�R�	�(����짠�S҅U��l4�\a�|Z9�}��K"�`�����3'�y�sa�n�?'���G�1c�d<zfcL@� �`�z?l�������uB��#a`�<��군�����F��������3m+�+�<��^��jm�K�"@�s���|��M.��	�f2�����-�(퇋�G]��i6���g�^�Q�W�(D�A�D^y9"�.a�I|Z��t&L�)��"����
�r]��`S�>��LHpܸq�<y�|P���%6l�M�,Y"�C�C�„��	|-8D��i�2t<�@�m�
zM�H���Td�"% �g4���i�P6�C��]G]�W���R�}�+�F�%��^թd�l$�|�t:�>[�
a*%/�@�����-"-P�,�\��3gJE�F��8��Hj�D%L�B���E]��N:IR�9�E�8�W�j�*<���x�W2���2�
��p�^wĹ)���jkk��k����9 �e�5�/~��# �c$@��MB�5��zOW\�t~��ϸ.�Va)��^F�>�%5t�]=���>����3x��c�
+��8�F�d�	��]�ڵkqꩧ��/���Dƛ��U�U��R���z��k$e����)�	����R�pҤI���q���ߩ�z���ȵW��'N���3����sCF������1�ޮ���/�]o����J�&G�Bxp*,P����˶�l�����qy��-g���J�&CM��=�A"�M����Ç���ӥwâ����YR��:jK��r���.�L-��㥗^�@G�>�>ՑG�c�=Vҵ�^+���{N��{^�j~��d��M�QX��q\~��F����ҋdo����W
K� �������׍�y�|��`Q�
�~J�-��U@�Ӂ�E5�;��ˆ�z\�=u6�'��'{P�9呎?��L����K�g!�P�W9��F��r�s�9'�x��=�%"��G�aB3zr�!���p�g�}���>&u�Hݛk�8���<�T�F��F`|��g�Yy��S{)�5�Sx��N^��l�~�:&�8��J^� s��*,��J�Ph/W�@�0[_�G~uJ�;���رAf��J���T5p6�j�<
VY8��$�‚���?�׿�U�G�:U�n��Ÿ뮻$8���8��Cq��GK�J�D�y^a1u���L�X���_��\_'�9�k�{��y�����]��O����
x�K�΀�_a�Ξ�sS���衶�f6��I���R������=�X�������3�����inw�A�0�Z���2�.�����y	���OQ_~�u�����9nĂZ�^0�����/\�=���)�P��;?�;?����JmЧ�N���P��`�>3�<<�ӎ>'"R��cgPc��Cy��Gl?Z(�D�&����կ�t�ܒ��BWtЅRwյ�g�e���C�����lצ�*�v��m��N�eeDm��$�2��#�$�k�sI����>}�h|��ܱ���(�K_�F{J��O�Z�wU�@��S��(��g��m�>�zT�8�Qn�@�Xt�Cb���@�Sx���^��D��TO������M��������T�`�_�/R]�4]eZi}ҲQ67��gV��u��LQs����}�!�o���8%
b��U5��dJ��
W�8DO^'2�q�h?��kD��w��^~l���U>a�|ƒ^�@?�q�;-1��3"Gp&�\�b!Q��GŠ���9-Z(�G�Ҿ�@*�-���:���aԁ��H���_J��8_�)�$;��(	����D`b&.�Pٳ����B�gwzJ]_��Ŕ۰�0���	^��0�$,q
���
�ł���j@3t�z��{p��D A�@I%E�|�_ۼy����A-�U����(LHJ���10e+�hu��*��+jd#�D�o s��o;$�3`��Ȇ�=�^8c�l�p#$�2ԓ>)=�²�PI\K�<#q���u�d�I�`= �׌�pH��c�dg�MX�?�!�v�u��LS����`��x��l�q�B�~Zk^���Bp\�D���5��S��-[&�H�L�6M�9p/"�9yUT7D�P�-s���֭[e�P�y��R���@+_�3����C^j��$�hooE���cJ�"��g,��Ǒ��AK"���N��(��	-ї-�mESKRb�!�YO�*������a:�v[������v�'���ۿ'{%%ܒ3G1k���^��ݫ�㙧߁=q4��=X��`�9gb܂���8�G��{�&t��s�?���-�L� I'��Y��k@P/����r�8�� ױЫ*h�uJD�7o�L�"����z	Jo��T�`�}�
u/��RYdKCų/�����+�SB�Ì���j����l�A�z���u�@J�z��z?}lf�I\1u�0ZB��0�p��mU/աA�m��U���]���;�6mK;K�C3v�|[pÂ'=�4V�¦ߔ���^�^Y�C&��Ѿ�"cq��m�l��ae&��ף��3q��}Cޙf�	��|����(�J$}X�\'s��FR���G���l,�@ ���>���3%��<�V��G_Z��ʑ�4q&N�>��n���?X�Q�!����O��gW��o���g�gV�! �+��}�i�Q�IL$lqq�s�e'݀���/�9��t�L��}�$�%D�/�;)����X{��$�����m��Z0�!7/�n���,�E��v�Ē��]p9���<D�A��M�d�x#%�x�
��-%�{��g�N����+	�6��m�v렪2���z�)����=R���g?+%�N;�4�zƌ8��p뭷ʂY'Z�7����Q����*���j��Bz~��v&��߇ִ�-2cA0P�fr�	�@1�{�G$yY�S��H�����2Dܠ�d�)w�n9I97,���`a��,�%��WN킑(:�y��}���H���
�J�q����Y�\�?�kCQ(@N���v�x�S�-����^7	�>'t�)Z���rK�zۦг��c���a�9	�݄�1��#N^RN�
FP�4߹�R�t�͸{e"s��p+f����9�(�r���@E99ŏ�㏉�����O�C?��0�����*�+(+��6�gŵ�!Y�{I�>�~��~[Ha���S��].�4\�b'Lr�-9������u^~�Q�?�t|���PG7��s��Ɨ���p�����c�N4 oGL�L�{�yV�
8^51;[�o+�|�~�w�p�NURP
<��(�t�R<���GuG|�|PX�X�AztDnP�����D�Mq]FH
�1�Om�ǀ��^���;�%�؟p��x��#�X�\=��,�?��Ӑ�<90Bd,@��4X�b*n�����|Q>CL*�.O�H@��&ω��2�>��,�5��Ӝ�Q3N�me���s�����3g�F]x3�y�&��n�,N��c\��2ܗ4�Mz��L��#��E���X�R9�»�%``۝+�6C�̌�H�
��gd�2�(��bCq"�sfO*:n.�\�~���7~�S���
U`�ٟA�·��c���&����+�x_I�YRb{Aq=��QD�Ϝw�@$�	�8�J<����`!e�� ��t�ː{--�y(9?1\֥Q�=o�M[��)1{	Ҁln3#1h��z�d�0LbF�w�iS[�`���~/,\�hU
&}�:�P��c��C���2�O�}wvh����[�|{,���J��$n�G��I	�X����F�;�\�D�E�%
��r���K`R[���J⼿j	��m�+ϖ/��Ƀ��+pn��e�����TO;3kX�������q�˜���)�Y���)�Qm��ʜ7�%F�ȃp�GDYPX�T7�����(L`#?�O�AyM���@�1
�E�)DF�t'$�B�Vq)��;�Z��p|��L".&@A;�����xˇx����F�e#p�y�㢃GȐ���y�m��7�} ?�'�^ލ#/�8��1�^�'�p^XS��>z5Ψ݂{��O,/=��S�«��1�Xی��>�L>��>s����F��3p���J�&��{�V�D�)7���7���:�q�ɸ����v4�B(�i���g~�{�ט@Ẃ8��cVl����wf�{���l�����o:�G�W����Nj�������d�ÜG���K6"�±'_��O�*Cy��~���Z�}�vG���ݦY��R����`X�Z����x��W�����e-�_L�����7p�_û#N�Q�E���7�'>��Gj�ˆw��˷EF_�d��MϿ��Wexh����
�۟3ݛ�('���׿�5����K��3g���˗�v��s��o��_��\����+���(*���a	$�Z�돼�J��i0=�|=)~��q�D[V��?�9k�b�D��(6�}��?�.�Go�	�u?�E�����JK�'�����!i�V=�{�Ϗ��ب�_ԍ��<��ZqL��\0�slg0�YL�`J;�ȣ�"�]5ϋ���_�s/?�u��<�{�F$}O����N�E�yUG�������o�Ë[�_0��p�<�o��U|��6������^['�5�'G��]��W>�����>�~�9�|�����Ix���?{F�X+�)=x�'�=n�
�+1xFk�7jp駿��Q��}����Z��EŤ�A��E�v�D�����G_�^o �h��I�_}}������V�&~�kq���A�j<N�l��*n��t�����W��i�/���i����� �P�C�L��K{_N�b��,�9[�Mt�B2g���;1w�|�_�&o؊�h�N*Co1�
��'�on<
g_p)����w�q"�j1��4���S��`(��3�A箧�
��+�"U��C�
K��W_}w�}7����ӟ�4���/J����&���l�~�i�q���@�!-�n�A*�3������3���
��)���3��������)b�%�z����)C	�y�1q�W1-�bk��LD�1��3q�葨.+˄�Ft,>�ߟ�'��1G���5X4�knˤ?d�}Т��YiRبXFf$�ކux�x��y���|lj�S����&�Df��C���?�K����νݛ��3��χM=]v
��
�}<.��F������ڣ/�-X���n�
��bu}7Fw���w�O����p��&?�V��k�s_�Hq�˪PS=���-|���kI���j��Qm]݈���M��9�l}
�~��hs"].�g2.�n�Ÿ蔣��jTӭQT�î��,�./��W	?��oqÄv���l��C�p����I��*�ӑ�"L�������?]q6n��d��>��o�GP��'g��%���w�\2ihd�q�*kEK���|�i�_�[����*ޫ�8=�?}��9[�,��8E��Jm)�	B,a���b�rK��'�����8|�ZwzV)f�}���S�y?��G�Ay$&���[n�`t������F�|s��������u޲����Hx��ѩ]�3�7�&��	M�ÇI��Ջ��a%�.�Q�F"����XL��R��1O�5c�����?�ݶ	��Z��L�GN�\Z�5h��#�.oۙL����W�_?=��]k��#�;�m$ҞR�5�y_���h_?#j�"a�2�i������R�5t,���›[����["4tv�M���;��"/"�z9e�pܕ�	?��w߳����0��E��vd��Myf1�
�g���CN'��.��|����1󿾎�{-�P������(7�ٍ�t�:8�f�ަ2B�����%�l��Oc�72�8���W���#RFy0.�#��z���UO���)QNi���T�03h4���@G׶��+n��[�:߽�t\x�R��q���"l�Ϭ$XZ԰RY
U����9jm�H��
l4Y%��XՂX�5o��LDp 	!�@�J�"$`"���K���>�l�|�Ͳ��ލ���j���{B���|��]�-E�n2�`%!��ۈ��.
 j���^a2{I�Bi06-a�H�I��K�^�~�y����|湸���(�$6d�ǐ8[�;����+��J_��0��M�nl�X��=Y,�@]����܉ӎ<7����,>q�Tt��
��0$��RV&��j�^�����I��H�nP�-�>�����
�������/`^d,.9�<�9h�s���$(�xN���مcp�|?|q=�EJ3�V��n"L�l�����HL
��Eu��F' *pH<�!�r��b�8{v���勦�L
oM�J#�)����˰Pջ��$}�厊��rq�òvah�6CUY*n�DɈK\�����o�3��ٓ�joF[o':�,l8�+�Y�ό{w����<
�1 �3z&��ğs\�Q�<�J��[���_���^�0}�����S�0�~�U9"u߼�fs��X��S���A)L�na�BE�ē%�u�mLj���L�
@IQ�{C�B�(KؾKV�c�Gሪ2�H�.��W�P�:y*�$+r��g�2��e�,¨@9B�5��燄X�b�|g��^k�Ͽ����l܂�FY5�(�b��?X᾵i	��ۙ4R�>كx����X�х�o���d)ƍ�Ko���u>��Xq�86������?�>'U�E	�B�4�1���oqN�],z��A>�Q��=r�P��%�f��IL RtR��Y��!��@�bL_K�\���v�^��G
Coc3Z�ik)�4t�7:�{�QR�3)�����+��ذ��><�^�ͼg��{��E=h{�%�����xۀ�'����#0�H\s�d?�K�~��O��No��4�]��.�mϖP��jaW�1��[^����SIW�֛!r�R�1bb�W�>�0=���	���Ǚ��*H���Wl����1P�=��
�v�_�漏��6l}�
�@��ܷ�pi#z�,�Co�Dg\�D�^t֯���BkL[�%�JR�[g7�{�᨟�/���[XK!:���ocцA0䵋j�'E������o[羊;�zK�hx�n����h�h�����'�[�{	^��Oxku'Ɵ|!>:E8߾
?���XaU���|�Q���[�)�ObHtzZ���5���N8��xi�!<�d*���A����ކO�&�>�KO���g}��J����=r���F��Dl�<<z������|k�ˡ$�����o]t�����?�K��ե��yx���|�x��_�m��W����Jx�����o>�??�.���H��_6����uh�Y���^�e|��c�]�2�+�;�Z�,AL�[�}U��.��pNGܑAq��T�[�|��w�T��k�;Б��hiA�	��?�*A��-�okCo�!��'c�qOaEp8�_p%N��\�b���z*�i�ӕ9���2���o���y�Sy��T:�6S�_s(O
����|.23���GD}�h��O<�+���E�P�ͫ���
�z�����yG�s @2֎��f�Ǖ
Ctvw�K��g^�I�%��n�}��q+>3����d�{d��X�0�2��ƹ75s�bkQ9&3����;���J��?)���0�A�'I9BL.�8d#��s�,��%4�`YKbb�un5p�����%�7�bkW���;�|Ξ�d�\��S0}�L<)C�-M�}��	����[��W��^z	N�.�0�����a���������%���d�lK����#��8��
dB��N@�����ق��#q�ODWw#ڨ7bˌ�����/�sX�8�$:ڇ��o�_/��N��������!�]��-�H'�S��37Ʊ9�I�7�xk��:�0|��g1��q�X�:�<<:�8��ab=��ơ��W��^l1g�r~I#%c���k�x܎�Kq�$�&�d���8.=���q:������o�"��N0ȷM®����E��wj�P�J���C�9&�Կ����L�&���zH>��T�
z��|Bt�(`�����=���O9'Nٶ5C4�2�;�.&�P�����Va�C�x����G�X�A��S��|92��J���n�y|Dޓ����7��Kp��;�[wí8B���>M�.��#���}�zLS�O�h����M�q�Y����^2Ee�XG�B|��ft����n�NK�;-C���x��n\wۙ��eS����땄�����z�ض$%;���
�ᴋ���2��ނ�Ay��}�Y�oܝ	4ԛ�xdV��:���t�8�p����V�{a�Δ�ZI헗(�'��5k΄��.~æ�h�\��f=X���5��gƬ6�J�tzA���a-;�	�C��O8Ԛ'���p��mf�q픗��d���
�
65<W�t�=�������ᎀ�`�s���Θr0��1�!�%`��^C�����A�c��t�f��a��%O��5
d)�R�"}�[7cQc��
=�vz�^H��0����ا?�_�G�+�N�8u�s4��S�1d/��u��9�HFH�Յ��o<�]�/>D� ���z��s4
9��f�tA3��o>�;yͭ�;�w�f�g���෿H&�ω��X�A?6���l`�!��tsU9���x?�
���^���hzy�X^�<��h2�;�rDV��$z����\~ڤ4S,��ߝ	<{����ۍ8n�Ax����_^^��,S���C�����p��z���ûM��B��/q���'?�y<�5���8hȮN;8r_�&_��O�/u�k��Ư.;P~j����Bx�����	�nOKӪ���3�Q���;V��
�y����^��|�{+�d�@��?�ݑ����k" �Ϲ����^�9/‡.�z[��df��0��]��t҄�g�Ҵ��L�	s�w��^��Jj�W�怣:_<�<����(eQ�3�o�,� ���8��QUD���R�����5PR�K��k\U>�N
�=(.#TJ�`ĈÐC�����U���r�LI�~Ǣ�F�\�I�}c��'e����@�R�y�m�uv���2$�!�F�]��
Y���e��#$���U
U��F�U!<]��H�p.����,�GuF$�]eU����G8P�U�����A�Z�S�-k��W����4w�K�(--��l!g�7��M�.HI!b
)��AGy���0�z�k>Rn(�2K��*)˄�F
+���%�����B�|8�I�`
��R��8�f����"w�o[��˄�*
(�q���L��������@I	w?�d5pz��U
0�
r�
I�%���!0��9,�y���
)�J��X�5[�C �\�#X_O'2�¯�.�&�MTq57�*O�������q����P��W��+/��6\E*���}�r)�r�����
a"��DD�M9d# I���B�WA�m�GbJf@�5UL�:C�����I!j��%{�lQ��Ƃ"Ս�5p�C�;\@�]J{B������^�e��	y�M(ݤ�.�㗳н�]y��Tn�P@�(T���h=��x;t���|����y����/v���腷���
`�m�G1�m��z����$T.��_%��󒲅���.(n�N u�L��`���LyGJ�qQĐ')NA�Qb̙��1��ARL(�>��nC|#-F��n�W'sfw���~ƶv�r?Y������RT�Tƨ!UH"����Z�v�LToЧJ5L�3s5����{`*`���SA��;`깪��lC\�&�9VY{^T�*���bb���N�W�.?�ö1i<��<ľ�3<��t
��
��y#����Yi�Kl�J0R4���6��3��0��q #�O�B7J^�wF~(��+\���n����۫Z0��zukՍ�~�Lr��9�l=?&�
J,Y�0�T�D�k��A�Sd=�W�=���(�"9��R�Aҍ�jP�&w*(�8�}w����WՃ�cSռ�j�t�s/z9+R=t��W/O�/$ʊL+����9�˹�7t��,@0Z�@Iw~�Ka)xJ�ϐ�m�^7>-:�BL���j����t/e�ZY��X����Rz��W� �=݃�2�~��@d���t#@ᱷ�OX�/�7
���hq�T�.^�B��J�\����\s|��(���}m֚~�(�zh&��_g��q�;��v���=���F\,���ņ�+�����8��ʲS
��Y�q/M;xU��_.-�X�kh5�uΥ6A�(��$+V��l��.��s|���l8y���'Էz�G���v�"�c�ŅEFU��rl)9b��(s
����y�#���Q$�E6�� �!	3�Ȟ�ҀP�e�p׽�!�S�Z���C<s�hɃ���3Ԑ�
��?�GO���A����2���0�W�|q�	�ߤ��{���h�륤г#�m<��jHvi�9�N��c�(q<�����Xb�d�I��ޓK��w>8����H<� !֡�;���I�?x������py�Ӹu׵虪�w4<�W��_^u�|��	���S:ߎT�u�x�һy+V׷Q[^[�~R����ǵ!���ش�ݥr;��z��6�w�)����+Co4�$10�tO1L�L��eF$�|�������q�4ɑ��H*KR3-��1!#�7��G|�~�g�Ķ�9�0%�JJ�=���lޯ@wg���̀ռ��}d�I*M�K�!_�?��πg�V�p�0��-e+<�u�)���%�]��p������=R���eRb��)!2��;12H������"Z?݅t\bH�$'��'�����O��., L0
٦��L+(M�A��l�WR+��o����qV��HZ4�4 �;#);IeYۅ���G‚6HZb�޷�}���S��8Z���mS#���LaA;�UOvՅ�b�����![_�6��J�
���-�j�l�9o�.��HT1d�fbf�x����n�?zN�)Q@<�Ÿ	��(?A]9�E����>����_��,d�أ00���3,�3������_�KoQAZw�e�
9��
~\]� �{3�j��
�m7H�:%y��*z�bf�0r���c�cc���H��x� I�T�)���ЍT�%�tX+�� 6
���n�>�iQ�'���&`�[��k���)��Q$�_��I#$[œ�y����e���<~7�CE�rrA�e9)fGhL�κ���#ff��Y����y-&
�\dž)<-�#<�ߍ74�[l���B{}��ؔ�yH�;��{�b
-�
��*l���S��i���n;��{��'>�	߳IL����Ť�1č&��AW�q�~�@��04�p��_�T��!����u�ٝ����r�[�q�2�t�o�9QSB��
���ڢ�G�^�p����W��{~��淣�
�ߴ
#j�"\V���"�fT�[�ng���jT��~ŵ}	��$/C�ūd�[ZZd���YH�Bj�������G�o�d~>���>p؎(�D�\
�N��q������O�\d?:���ǫ/��!Ê�a��KF��(����7e�s2nRp�^�F��'�:f�Gx&Hv4h�-��MX��
�����u&&�&�z�fL7Ց"��]�n�OY{=�����o�b�PT7c�M8�v,qOVF#�J�����
➻~��ދ���/lي���1&FIi�\���z��nmG���pF����(Z74��N���̐7d��-��8�:Z�qK*kƠ��B��HPM#yV�P�vlG�Ѿ�б,[���a����s<��gR��e (�N��r���Uo"!v?$F��y���~�l����A�|ڑ^��8#[���?�''c.��'^�K
���Ê^q47bcK����KP�a~�����1u(�{Q{�ո�hZ���O����c�
�j~�^Fb~уsI�(�=�T5�\��l�9>/]<����+���3F��$�تP�lܸ��*�(�d'^z�^,����9��c��K���ʈ4l���,�i��Y�;=���EI����x��_�O|�aq��ף�#��Q�Z(��o���Ɨ �����\�����A���k��>�@��2T&����e�[=z��x�8�_�y�U�ݝ�rq^K7���n��
G
��|߾u].��u�\�bT����";����0��B�kG���ލ֞n4�M��+6:��܋p��ك�Q�0��T\�0�,S�ߋTG6��
���Q��Ğo�=�����-9�."��23��Ŝ��Â�&8U(������]D��K�{6p�������	a,|�%,lM��d�X1��:���[�
o��y�Kq�Q�`”i����چ�6�P
�j�s����˖Q?W�-P��U�\�C~^�_�)[�)�P�:^ृ����s吲�n�ڈ5�#���ueA��X�%b�^sСV��A�W���+s�7y;2���cOƔ�f���&�5�����
�{8���y�5�7��3p�I�pX`3�y�MH�
��<ك�ًD�0D�F,x�U,,��Y9Sg��ua���<%��$:R6˳��%CPk���^ū��8��30����
P�0v�x9Q�&���1��:D�$��;�!�CPQY%�Y\�S�'���$�+�tql��G��F!Bq���K�gnJ�����Ҡ��(l7�;Õ3�S��f����@"=1?�`ꬳq�8��[�F��1x���p�;�!^����g�b�HD���t�8��ソ
.��p"��c��'��c��O��\0y��~u�>���׈YSp;z���]�uV�� j-S{{;֮]+��R�z�53��/r����k��@��8'�o#EU�B�����27��SCx��R_T���/lGϝ��[�Jx�)����w�bk���3��9� 0e��0�.y3�ׅ��m��3�ਁpE-f]|6�^�7>�*�H#"�(uHu�`ʥ_ţ��Q���b��1i�B������(��`q�z��~���w~	�U�*����.��X����#��p(ϓB�L�;ދ�����)NW*<�
�T�#޴�;R(�,�#&nRn�F�h�pPw�T�DEQ9���-h^XѐbIJ�BAv�kW�)��&���H9��>�-���^��3d�bK�Ln�T�^u3.�>�m]H[6B1�Ŝ��o�9bpET2�(��8~J�0��-1@Mq��=� ����_��E�'i\�B��;�����{y�~��-�Nŧ���߾�$�0�����tAU��za�^���(����k�s�Q6/��ګρ�U��h�	}�U��A4��p��SqR��`�%y����ݓi;E��q��o�a�RhH�ĵJ�8%@���+��c���({����H
���[1~���=a�Y%�=)���v,q.��*ԅ\sH���Ϗ�x+�Do�NPx.�\�=����?y3���0��[	q
��ZS��nĒ)7�L]r�ĵ��E��P)��t�P��Zmm�ž����Hkc���QQ3
�����f!|��KΜR>}�r卜��.�Ҕ�k�8�fG:ږ`�]����Y�ĭ�2��~�Xg��L�y
o݌��zy5����{�@�.F��z���->~�
��zE,#4�D�2W���^ˠý��59�O�Y!A]Wߎ��Ϧ/�tԼ�a��}Џ��;m¡��>~�J��T@&o~æ��
��ڍx�WxtA��ql�jCw"����tu��R���ٽ�֦U0�ף��[6��nDR��tbŦf`�I�&z}��~#k���-�(L���m��e}0�V�82A�MMX���8����$T���ӄ�[6�u*$�­%��CYQ1"⺴6lFo*�Q#�0����I�m}��Ċ�bhi��o�b��Am�����QLV�ƶ�����M!��[�d��M ����d��q�Ս�T%&�y9n��-�qP5R֠c�|����J:��o^���נe�v�M���É*е�,ycbn'5�.@Rͅ���g|=�|�/
&8yQ�Ui!�롅<
�Te��U���RL��޼>�&��TY��/��s��%���M�ף�#�����Sgaty���`պuhH�z��[�M�-�u9t��1�+W.ł����?�O�|����u����'�
W~���5�q�8���q��cb��P-{˗�f̖a��ر���|�ȟ��[p�'���aU�#��.�ȣZ�[��%��ƺ5k��Ԏ��V�^��])b�[/E��{���{Z�a�:t6w����֬BGO;lX���ô������G-I�(��#�}R�g������3�Z������s�Ez����I?�	Z�o48whJ�<!Yٽ|�r�x5~��O㦓�������G7�Ļ�	�P�SH�w��eX$��'�+	x�0�-t3ДQ/�C�M2�ž��	*�#�Z�{y�B[��^�n�|�~���a���u"��HX�G��K�վ��p�g���ʒ��nxϬlGSS���y��b����
p�d͠�5h>�v|���gߎ�}�F\|�x���|����UX�:�6ܮPX��G\t;n���p��5r�.9��w�`�h��0SxV�1����:t�U��g����4I���ˮ�_�<�j)����)�v��E
]�n[���2T�#�0�mm�NnAXMʮ@�4���IY��^ZY���1����R��-=@���p�ٙ���cu޼y�-Yb����?�� f�&=��I$�,	�o"3��!z
����!���h��g�����;/�+/���H��=����QY����h�_��ұ�+�!���쬵~=��q�[;��M����#��0����y���o�uK�qp���.�z]����p�N�f�N�/\�P>X��f��!;�x{:x�ޑ^����l:��X����K���b�R�YM�>]7��SΌ\0L��3ﻪp�v��^^���+eP+�ʒ0��p��c�&N���_s+Rer��1�`I����6��T/6�":zv�G�c�&��֢2�=ز�գ� ���X���c�0�"#�wRhڰEu�Q�qx��7!"�_�!�ڈu���q`�EN�4�g]1�J�4��X��!Zx̀n�,�E%PTM���	��^h�?��V2�����#�=R�Ï�hϸ��˝>yJ鼒�+����? Y%��ݲQ�(�N��1��p��2�ʚqic�}Q+=WՌI�Jd��%U��f��E#��а�LYoK�U�3��AE%.�]h���_��K]�[��N
��������~���X�t��)yQ��w�h�1㎶9r�HM�@"�n�*��{s�'�v�ݏb�$�%��cj3�v�V�Q�K|�/���%���/���ݧ�	�;d+��v��->+-Q�G�-�۟JJ�v9�rJ{PoWlëFFx�;�<�����١^I�]�Gm@g�m�
?y,3�ς�Jz��+,��i���	��b�*;O�U��&
����s��usy�~�9jԨZT��9��w��/,��J{�yՄ���Y��P��
��������?Iy�Y���Ƣ�d(Y�G��y:Hy1�tpˇ�������\?nUl6_��
��RePZ���M�aĈ;�/�o���=m�YX�#P7^>��j�f�{S^��ѣG�`��0T>�Kq޲4z����5�}�s_^RE^`���1�gt��^�G�<���|�K6�U�`�ƃטb/)W���Hp(,���)e]҆m�_�Zw����:cT���"��l�<�A���q�ۨ����v�^�a��[=��Tk�c�ǫ(V�6�v5��{Nٚ"z٪��v���6����;;Y�%������ƃ���
�^RZxVk���]�W�v;�
�7�ok����O�[��²���^�$��!]�$������K���
蜄+q#��I1�Q�#�#�l�F�am#SDG�F���DR6�e�0�F;n�<�^�?p��R6cƆ�
83�Կ�y����|�j��rn^=j����
TY�~��\�N~a�|Cy:�a�ر^�	J��%�9*�`3Iwd�9����sN�[R��K��%�Ӓð�t!�n]ۅZ�f�qhK�+v��%�2��N�_ga�7=�����I{A'"_Q�+��S�`��q��\�t�R��>E-��oG`�����f
IRu0I��e�
�+�bDm�vƊCe~����Μ�Y�W8N�m�4u��S�����R�C�n>� U�u��^���l��:�.�n�~�L�����nyai'/P��%��;�����IM������M3>�m�G7���!�/ݓyѹ|1�����!�E���Җ��_-"��t?>��~UF�i,�^���1�ؖNH�@�fi0��kI�¦#�*$����!ٕ2L�!�l��
A�i�&F{L��x/"Q����SتGT���EzS���G�ͷ(�߳S����
��T�T��V
�aA��F�����+L����<�#��X2)��GY#I�ѣ��X�^�w��릐:B��>�ރ��b�+�
��RnH^y_��=��5�t��ɉ!7FL�"z#�p{�t?Ht�q�Ѓo���uH���D�%�����!J^S��EΑ���[H3)�A
�҇E�S�u�2��Aj'@.
�� ̖�^H�:
UJ��6L�O;��.�,���e�up�/0�Z��d$հ�.�vqUk�� X?��"S�:�y��7���j�̋T�W�20�!J~M�5~�x�������%������� պ��u��6���FBxC!�.QQ�x�B�tO�3����)�en�8q9���^f�E}��/T�������@�.�b�Y���ޖ
0����7dLt5���=0K��#��vO�
,jjt�t�jX5��LO�(�9��شKZ�y0F/)�H!R$�y|=��#V2���cGc�굙0�����1�!0�a^_��,�a$n[A�x�X�U�{�"�:h�5PLD�������q�%��XRsM^/O�+��%�ӿUOm„	�a;/
��J��lx:bZ9ӆV	࠰\���c],��꩘\Y�����o�k�{�gTR"�ס5b����N ={�u�.Y��㧣2���H���x��ê�-�
�6f�`���)JjF��������9�)em�N�D��)y��t�60��e�$؍��g@1��+��k�(�5[�܇_�[��p�׾�y�1L����o�}s�c�Ĝo�>����Hy_��ͫ�ƃ
�IŰr�;���*q������%@j�;X�ఱ㑊'���̩�z_��lt9��z�j�X�B��*�Ɲ�y�Q��^�=/��+����=f	�v�G�	d�7�X���C~,���Sқ��t@�Q�����d��=�����=��*/�qe���9�մ�9��B�V���$6V���L��ʯ�Ⱥq��������C�:V�7��v�����p���ݞ�&�����S
J:Va��^7
C�b[^�=s߂a�X��y���CJ��5�����O����Ϭ�DC�Y�P�ȕ
zw��X<�|�r�|�cF�Ykl���î�G_�OO���%���<�𐂵��kq�QW�{���-/�ۤ9���Mxv�;��x.;��T݉G�͕7��Ob^�0\q�8��C���1�3)�x4{V
Ϭ��&��Ҿ�0����{���G� b�8^����b��
8���|?j�W�^s�$��b�"/DU=gb��)y�l���}�3Iy���3�Js�M��!�E6�?�'��xr�k(�x.=�*\3�0[���E�U���p�8�j\V܂�K^�$�'6���|�k�?��p%F�i��T����Z��Ϻ��|#ʺ��KVӗ��ϡ��l\>�\3�O���i/[��A���)	�iC*AI�m`�9Wv�NS��n�HU��x�>��\�Ch���M��8=C."��"�^G��x5/��@9�?{�g�U���n��6��]���*$�d2B���
��������
�G�
B (��Z��ڜs�3��o���Nw��
3;y����ܽ���S��WU�jJ]�P$�AM�D�����PB���B�
��ֶsB�-\��߅�W��Ч0Uڎa@uj�{�.B���S+Ϋ��c�Q�(~w�k�n6o&���_��*���2I�3$%'Ɂߗ��ܝf�Eg�l�/��/�ۻ~���&�0 ycf�^&K�&C��+�<
�(��`�U�Żg%H&k�>���ЫS��zvޱ�.QE�/I��J��}oB�d{5m��z�M��,�L񷂥�5hm�M{��eL���"^�5,Cuv�wg-?�cJc=D=_��O�"��yLQ
����ўi���HTU��:��pf3��^����NUH�����F"�����q���'AH��N�C���U�����HO�VW׈FM��T��o�J֎bu���"���S���Ln7���8��Q�`%�N`p���6?w��z�I���76�w`�}/���V�5;,�_ǿ;��0D���
�޹���_��+���/���G�;�< 4~��U!\�LW��x>D,�^�؊���P"���h�û<�o�}��{�g��
���
Νz_���'�%�a��F�8�QVz6��Qv;%$HN�|RF����I��("J]�J��@�O`�4��f����r�i����y��C��كox��@��Kd���؆9�e�'�	<��c[����[��8>��-�w�l�-|�p�`H��(���UQ30
aDE��$,BVFF!�0���W2V��9s�Z�~
���*u繳׼��
�Z��A�ϵ��眼����5y�{~���1S�9w��¬кْ۵�e�~s�v������eǕ��H�!Y��UC�,,ɐ�i��X$p�^8�t4�3G��O�|;Ο�;!3:�N��
���Vl�?��s$�#-��[?��.��7���
�/_�x�E�R#2���4��]���/D<��uwE��l��sҢ̈́ӺCC�6�Q=���x_�,��ø������z�*���
h�nƒ��"�{ێ�U%!�FK�T̙y+�j�aۡ��y�
3PS��\�;՚��:4�1� q�I<�Lu"��QK����z��s�Wx�D%���^�NOf��������ͬ��ڝp�Np�� o
����/y��yr��B���ܮH�5���:x׉�8�a�q��vۍ��Y�a$�d$����x����[p�=�62�D#<q�,�L���[���#��;�)ū1�fV����l?�ak��FT4dk��4�1��Xǐi;�4�l��P��P��y�1��FTi��L�Nw�ǹ�=�$��eRH�����=��w�G:�ܖ(�^�#[�ڟ�EOk/B�u⯾��8���x��}8�k��o=sٺ��UBXV�@�쀥@Ӈ�z_���3�M�6���j�y-ro��R�T,�T�ٞ�K`�>{�%9��=�4�s���
P��^�Q�=�f@���R����?�쇯�������Ŋ��X�o��dڕ�#�Dq��ʒ,�qm����d�=8�nþs�3�8J�hۈ�����=s��TL%{����V[V{�"�Tݨ�Y���@m���7bz�^���ѡ�>�5/�$�êPHv�Dw�k�VbuuA�5�)���M��p�7.��)-|()�V�"��3���&Oa�ރ�m��yl������?u�R���
��}������s�`�[�Ɓg�Z�)�;�}�*ܿ�f4���c��3=͸s�՘��c��c�ۭ��ߊ)!͉d/l�s��ԑÈ̻��� ,�HJv#A�I���	�be*�������A9�utt���{@�S�=��708�x�κ�r^��
�n�ە�|���Ŕ�<w�j� ���+�e3f���|���ɝ�����
��ܨ^@�"�s���M�b`t��4�{$X�x()��;���!��b㉳7Gб�)<�g=����='~�_�>�m���lo_w?���Q�މ����dL�?�
��ǽ+ �>�𿣷�v\3u	�
���ûq��z\���k�"A27�&���^‘�C�v*��7>��j�}(7C��zJ8�C������~�$|�:���
��V[t�
����V��|���~PI;t�		�b��C02�H�è��P�p����󰸾^��N�ۂSY�>�KjE�V�z��v\8F�Հ�3� .g`��ww"�4�9�F��վ{;�h�z-fG	n�W?�����g�"����i�^bQѪ�U�������9�k�������Z�;��(r��.����鱻�^�Hr�u�À����nf�vރ���an��ٜp����� �L�cv����=�U�p���!�{�ȝ��Ǭ����K@��h��H^�a����TpnβUP4���暆h��/u��� ڰ�a��>�]�f4��l3/N����Î�Nb�s�j�tq�6_��TO
��&�1sWM?�:N�X4w%�TDA���#��vSkVaAC
�$�����4��}�@��a%Q�y�;Dy�:��b!�����U�%ILM̆���g��X�s2�t1 GS��
R�nBu��H�Q�(�"�����`\T�G�������]����+/�q@�I�v���:[�N�8����8@���2!��r���X�b��/倍��ヲuuu���k��r߫_�ˌ�	��ϟ=g�`�<𺙥y�e܍4 �P�
�,9NB�Hي�p]}
���$�_�D=C��|I�C'�H�h�I]DvG҆dէ�M�]��_�\���4Q@I-�*��/)dHy�	'�Lg��\�^Wh�����Y��Ȇ�N�ɚ����mZ����M�`L�ůQu�6wVT6D�G�Kh!+�7�a"+�HB���k�LfXV������\3�ʃS�Yy���_�q)T�2��^�����]��V�ԛ����?X�:YnΡU��(k���Y���`�N��^�����1��20�}�Ė�����}��r��_
z�"��$�:b��g��c,���sg�]N	��Hb
���.2��w6�<tI�2�M\H�A^�I��U�㑣�(,l`\D�� \�*�|y��=J�E�W�d8���V���c@2B�X7��$͠8&j�If��9��)��I�Vj��S���L %)9ڋL����S�$+��K��B�DuD��!
F���EgHH��&����\5����	
��2� *}�(�‡pM�V*=LJn��0#�X��]:Ŝ*Ί�ܹs�X%n�.��H�SN^F�8��|���)����iݮ,�|��F�����z����^��ct�:r��.7�+nj�*5x3�G�L�1��_�t���~y]+9�teđ܆"���2���ZJ��M��a�U�bM�U�UT� �ӄ�BT�gy6���iϸ�l��A��(���.�Bɦ$�
���@�.���l?K��1@iPli��^�XWg%�j�/oe:��
�J�aX�y�~�_f�zw�#d��?ƮB�^�[.6�c�'��K��=�L�V���d�&w��38H��ĉ�Ą��խ|�M�5�+E���a(��5o{����ί�­�wsm�[^�z��+HŊ���!1�t�"�W��*Ml��Ù��2��{����p��)�m+x�%;X��J�gK����O�?�]�7��-�+]�;�Z0�1u��mv���m;Q�ӫ����L��%�I�æn`q�_|��+fE���9n��y?�{X�I�����u�Wj��}��V�(vV�XaU/ 9��8��o' MF��`�(q�Y�H+�|�v��hS)�P)0�"\�l�(I���58�sn��Uޥ\z~��׆«L�������
�{h�4���r'P�U$���P���j��A<�I
��}�i0&Sr�'� ��ZJ�z�� ?���ҥKq��1���|�LN:�_�R7��S��v�܃�\�^�(�N��=唴�9n9oR��������H����eW��iߕ�C��I0��Q����i��b]c+&'ˍY���83��������ة_�kw%p7���������T�s�y���}F1������]���y3윎�����p*F�F��Pn���A�]x���J�T%��(HVt\��S��,t��Ơ�q&���i�~��w�ȭ@�@�Q�n��>�M�M$(��ʁ���_KXp߳7ޏKh�yg@*�sj�9�Qi�h4j�Md@
�4c��L�1����X�9��gr�y�2~�̙�7kr?�m
�v�K��2�bL��`��{��U)w��P�7Q�T�)��4tw��L;�����Rt}�`pjٕ�J)P���	+̈́���r�
��ʻT��ǔ)SDev�q0/�p�-���7���Pʥ�~��~�L�˚*�h���>_�	�_�W�to��,ǎ��#ǵ�W�a�R�����履�<�ʯu���Pj1w��ŋ��ىS�N���;����ǒ��PH���U�JŖ�*�{�֕˴s�nϮ:�b��Lɠ���1%fK��6�T	Sr��J��x8��Ο?/\z���L^Pr���{��Xw�J�ȏUU�z�8�_�?��#Ѻ~�t�+unw�`�@
5�)]	�0y+"�K�p����T��5��?Ǜ���d��;�z+W�_�(u�*��S0�q��R�#wsC"~w�{��CIfbH��8%��섕����0U:��"e���u��̜Z[[��i��e��K�*x+B˲+W���2D96�W��(s�y�����Y�G�J�`�'g5z�w(F�����y��L��&7;*V��Xi���y�e��`���-׹�8�'�O����S)���[�Xjy%�v�@�`�;��?w�e�X�~mv�%}TʌJղ)�#P�sK��t%���TZ3�O�r��T�V���-p�YfN�>��"���\ŀ�X��J�R1����r�:�sUUU�^K%0���J�Q) 
)�`�C��n�� 4�
L^�; *Ŝ��M�J�5[��kŃ�T�L�̺�g���4�n��}0�,+��Pt~g���Q̭��4��`90��u9�����(s�刏0s�ř����1-��i�W�x���~�rfp�V�N��2���������/�a0�ă���.1��������XQH��8��v�]1��0��eL���bSg)s)���R�z��0u���4螞^q�����9�n��qV)�򂔷i����aW~�����Q��|܏K�w��黿�~@o��TF�.]��.]��a½w�"�z�2��ޡ�������F�1����Ś�ZV��w�z��9�_.�/\U�yԉN����޾~&�T�.Ɣ�Y���I^39��Ǭ�2�=���k�t��Q%,i��(`H�e�Ҥ��ƃq!��i��7��0�c
�-��-��¤C�F
���xڸ�9�w�a]�W�bNY�`+�i/^�дjk�Q7@�381�`���
�i��0!���^������ ���@T@�Y�|m��X�U.#��G���U�(�Z��^��Kr̠�@źT�g�dN���U���<m���{��k*U �X�pV��q��`+f/~-6.W�
��� ݯ
�5;�i0�\�W0�lK�I�,[�X���oL�Q��L+�����*9�Sꐩ��t��Xy���hHӠ�0@
&�0��7��p����{!��b�����Ss��Tz�p5�L�ش�ײT�)?#�*�Eƃ���r����,�P'S�,�4����8��o2I
ذԑ��2���-RZ�l� )}���n5�ġ*�'����.�ӊ�Z�ʜ
N��V�.�%��$�bC�,�Ϗ;O̧�\�2Gk.fhx�c���1�q>3`Mc�gl�?��	��8����IΔ�Z�DL%��_Q�
P���8	�>�߱sk$%���9]�f�4gȊ�Tmp�UEXSCeS�.]\�I
)G�,,2��2��)~��\WW'8L$K
��\��&$�:��
���dU�C�/⻴����q,�R�PБM�ޢ=����E6�y�z2�
�4�@i�li��g8�.�'�P��jQ���	���L�X;U��D1w���`f.Ʃ.�>��>tDž��0۱,5��{�(A��Y�)����iχT�����J����U:g�\�1��q�Ɠl��cX��`�f�ZI�xMHv���ʬ���Ep*vP�8y���`�'	W���=w�B��"�b���2%��`����%��ԡ̛�$�cJ*o�m�J��o����eO��E�rg�ʁ�bZ~�R1?P�J #��K��ˊ\`4�t�+��/m�EͣQr㍡���y ;��T���-W��ldpSğl�^�NӭX�?KP��h�r�����,����[�ן�k_��E�b�|IϦR�����E�����x`��
<��������Ƹ��FRG��s)ۻϰeHrɒ�|�[��R&�O5/y��D����/-�ݿ���D!�k���(�l����P�B�8-�"�Ȥ����?�9�N��I�����ô��x�(�K��3�v��M�]#��oB�EE*���U-����C����v
&#Fñ�+��B��o�![��|п�dɊ3��/��(�B���x��_
ȹf��\�S�~�:C|g�ɶJ3ż��(6�����M����9�߽)����Z>���tD� �⠢�ǃ`��kg�^b��/@s�2IW.���R��@�4�V�Eξ~�eδ�L^��M���Z[S�&��!�ߣ�ރC'aa,�kF�$��)�7&���μ�|:GA�*�ѴS�$i�q���$v�9\��<��
GW�t�&g�1x�I0tD�2�H^r��j�x�h�S��!�|_��G��X�/GB�E���Q!����$	@B|�AJN�9Hjh�]):�hyΆ3,�	�δ�\~�Ώ�مlbk0$d+"+�0Yɪb��dP�A����.5xzM��=͛*�V�p*Ql�_�tI)�R�9a-��"�>ZˌTC����֑�k��j���近(‘0��BW�35��f�2B�0B���YZǴ��l�HYL��y�N�a�1�;�J��=m�|��ym�d���m��R�yz�in�b��$��?I�F�n#&^�����K!��“b!!�F.�|*+�AE��\�*h2�Z&{
RF2̆��F�3i�L5G{C{<J{'(G7NfJ7,@�k�D#]�Bz��]R4��0��ҿ�|J�9�Ai��%Cl.�PIx�x	D
d��ђ %��Eo�D�m"M럦�XP3��Fi�5��DZG;µ1H�&�5�!��Y��b0����h��DU�uhHD�mc�$8FV�
5Bʏl63
U!��`K��F2m10�N1�^%嵗-�>d1pVd�`W
�HQ����ת0�
Q�lG����-��J’���;�*wW�>S0SR6���ˈFTW�AJ���� ��-�����ڌP���™�^Z�:������9Z�jt�g�…���uQL�֒"ԑV҈Ӟ�!�i�Q��������|���+,����K�U#����E����`�V�1L<7فt���n�O%�b6Or���Ȟ�:���3��'���@s]��C^�����{�#
#�BCC
�B���~>PJ2)�,��ຏi�H2d��ʰ���熠w�8yO��%f�N��@�d��LUy�RY�].��t��dV�$+P�=�"tr�ַ���cH��I���$da�W#O/�!
�)lz�g���$��_���y���/C��T�&z?~�տƧ���m�h���"%��ӏ�!gv�&L�z,A����MC@e�#��b�\���\S;V_��Cv�VZX�I�c���t������n!;&��ߦ�"���n��R�g��"h�E��8�?��w���s6d!�V�u�����kz(u�~�M|��?x�5q�F�f���h,)�d�9<�ݿ������d�T��)0Z�$�uUyz_��F,IW-��ƑX?�e��b��V��闩VG2F�[\�=B�-D��.�wۯ�o|��J�$ʪi�̃�M�"�QM�FW�O~�_���.���hq��/|F��Q�~o���3�����_c�YZ�h�����AE�0���ja��-g�C4�l��cp�G{�P`Q^�XH�҄�����=��R�ecJ�L�0	U*�Ϛ]r�)��h�1����o���W�|
G���U4�����+�Φ1eƵ���Ģ�z�Y�$@�p,(�����w�|�[��ʒeB\O!.�a�Y ���D�Gϩc�u�:o4��P���r5�P�T)�e�L��j�2����]d�J�N�X�̮!�r؉ؔr�|����N*ZI]b�ɲ��!�cӋ��s��S��C���
K-�83@��L:���o��>�>�7AT���К�2Y�z��������Q����9�R��+�Yj��r�Ob�6$�l�JcH���.^�D(�t�1�v��آ2nD��+3�zU�:ԇ��|�3���ntD��ɒ�H����yO��=����ފ?��[P��h%c�#c��C�o]�"����?���w�<t�d��O:Iֈ�������O�݉��y�LV�2�F�Z�$�#���&�.�űc���{�a'Y�D�d�W�qk+ 18v�E&Z��!l=k�?��ӛ�g�!�j�6b��P�q��~#�-͐	?h��FI�}%*�A�	-���z4��%-)h��8�[VU�,�=\�X����+x��mh�nF�� o�ɢ� ^[�Fz��բ&!ez�`��,��D�U�����֡��qM��t���Z��:�9��oѐ���j��Z��	{���hjnBm�B�G4��ٟ�����hlj �Ґ5�`�);�y�`��]�ĝpPIS�J]�@��99�ql'�ʸ�7�'���w�B��rA���NT�}Ղk�g��13�Օ3CVl��Kt�mj�bL��4���9W��j2CRt���!T�xM�|�{��#����
u!M�NI���Z�����4I�7��Z[b�1z/wץ�i�}��7]3�e}�/��ZDi�8%b�յ�Zք��k1�7�߉81��1	�����v�������K�cJ&�G�͚G6^��ݛp&<�Nlz��t�9Cƌ"��X討MAtJ����:z�k\�2�W5R��F���&�T%VT՟�`%?�
�қ��-P���o��"6L�:68Z��p��/^G��1)�E*Yl���N��yCE�U��-w��~h��ӿ�>`E�

�n��1�0�w#�d
†x5��Y|�+���E�@�SU�I�XVv��bJ�|ޔ��ב�L;��ޒ��bcBg^܊3U+�η��ܟ}�o?��Y�t�0U�e�����Wpn�5x��R 
bc�Y��Q�=��~�
���֭��EAK���-GvY����Hȝޏo?�}<�{�U��oDz����N���~�w�!A�8�{q׺��f3ȒU�J�̨Ua��x�m؋�Nw4u1�~�MXX��9��|��=M�6
L����y7�D�~l=����q&���zv࿞ی�%w����3�NCmل/~���v?n_9Z��
�s�V�bhec]%�ؖ�)z���q��F��ݝ�g���q��S�b�J�T��?��VK����B�@�,L�J��i�������-�+��$�",s�&��K$EiE;�'_�o�t�^��}�+)���6�s�b�mG��#Oc���n���n�{�r�gt��(��3�� �훟ē��B_!�|�2�s�۰��f������k;��*�0��{'L�G��&|�{��ppկ�n.�?>�ڲ���3p�ṍ�!�{���p�m��5��@6�'�$b��02��X��ā���I���D�����
<����V���P�I��!Фtc��_�C�@�����h�X�!� j���c?��8��ȑjt�)�H�jh%�1ӈ�8��y���oco�d��6���
�{�;qˬ8.�|?��v�+�Q��㺷�7/�A>��������[�ֳ~�}<w�<�&�W��o�
�,���؏^ƾS�H��Ҹ�z|�������+�:�|�,��]Ƚ�5<��7��nI�ч��C'�Q��O��^�5���Z��3t�!�Q�+�)
�q�ƫ�L;���`4so�܏���n�\,iL��7�3���%NԠsϋ���
~�����ܞ
��E"��RZ;^���O_�>:��Q'_������m�	�"V�c�Gʨ���kjЗ!E0c&n�i
VOiD��.|��ſ�p+n"�٘�w��3��#/!����I"�
���<�0��s�����}�4���ɯ?��D��>�����b���e6����3����0�f/��f�1����a���8��O�[�:\3����-Xw�X�BJ8�CV�"�U�T@����7E�R�S.�U�$����r�������K��Q�s���=K�7"���/����Yӈ
�ݹ	'	�f�u�U�H���ط�_�)vǚ�9�C�ЎI��˓0�
��B���L�R�+���Y��ƕX6cԮ���)���_w'��V�ȗ>�O?�*ڴԙ9�$��1]/>���/a}�7�[�C?����F־����?�S��o6n_݌=��e|�[�@{RF��y�j��]?y���xz�I�}�	|�_����z,YƉ�������uh�����4yv��"ޜ�%Y	�8�\��`͢9�_؇�۶�D�Ib�Q�z����}
{s�XX�cۛ�К�&���5�{��4���
�̘�|�!��ރ&b9a Ph
3��zsf48Dѫ�Q�t9��*,�Vpn�/�?�,~A�;o���7����w7GHx1�s�!v��|���>��Ukqs]�����|7"56����>�h˯���1|��?��Pȸ��t��O����ӧq�����������YX�CO��������(Y	��yY�T.�Q����ȫD�IN���!Mt��u/���`���P�z,�f�!��ٍ�P�6�[��9Q��?�i��{�׭��lGmB��8{/=��UŸ��d�ލ%M&r�>2��+�,^I��us�|i3��p�uX�j
�=�8~��	���୷���:�EVҏ�K'�8mD櫒Z�p�^����z
����Mw݈w��zܹr&HnQ��>|���(Y��ހU�8��ه�������q]]}�}X��O��>����O�k�L�ԩs%V�۴kn��ˆ���MP�ؘig�Y�P�ɁJ�H�uDz��'�?�ΐ�/��MX�l�]�a��n��Ɉ d�kO◡Ex��%~�;p��ftt)��h
���b�3�#?���'~�v�{0}6�s.I��>NX�)d%sM��,^:
��|\{�X>�G^x?���~�-�p���}��_?�!�=zH�X��h�N��'�g�q�o|��q���g�1P������#��wޅ;֮Ɗ)5h�}{z�śq�57�Yu�Nua�������n�j�fMCXJBoZ�[n\�9ͤ�s)�3ٳ�[g��8��q8� �Spd�8��k��z�b,ZÓ[��ء�b�P���泿���Z�Ƨ�z׽�e�\${Z�D
��:�l�s/�aλ�'��w�]�\�����
"f��8�D�)������eX5G���i��m�BL�ڰ�g�Ux�w�t~�����|���q #�`�t�Hy
�?�82�=�����ߎ<x-y5ȥ,y����_�,��[q����{vĹ��p�r�}�,��Л���������{�d�̚Ҁ\!s��]s5f�t��z">�O��N�J	g�t9n��
���>;���2���8֙���7�E5�Lg�
�ppӛ8�;��݇S��}J3�&�oZjh��f���i?tv��L�Dxim�>H9MsfCWv��t����2Z9�p�HR�q�g�=&���Z� _��fR��G
a��)�>i��|'��a��E�ӭ8�v
��D�V1�I��5�Q"&ӉΪBF;^��a���P��|���qkH����OY�j�s�k��إч��$�r�,Jbw)�GR�m�48�=/G,k��K&.����ボUV�qa���<�ܣ��i�®^μ:�M[��7N�r�]g�cF�2�V���~K�a7)�Y����8�L�~V���|�,��xU�;T;�0c��*��42�r����'N�d�p��Z�s��e*�!�”i�rKg�.KꡐEc轰�ں0��3��>	k>��=^�p�\��!���/c���I���V���EZs_�ݺ���e�#w�j�m��UP����)(�
��$�w�jڧ�p�q��χ)�غ�x#�?����N���_�����5{�`۞=�v�2�Nu�p2�#�[PcW���V��ަ�H:�yJ=f7�"M�Un@��iз���L�1��<�uZ�\��*�8G3]�5�!��p��򔕈�e��}UfN����CL�����U�1fϩ��H�aִ�H�s����y=�1ZE��ZZ�7_�~~+��0f���N�����2��N]L:#������в����"E�@�'a���Dh~��W*S2��&��hS�;Y21��\;6�8��w�������_~7����`s+]j�JT9H2��	"�>EF�08�*	5gꑂR�(A}5
j$##�O��9����9-�Ѧ%vYH���D�3�)�H�8_"�w�":�:�ʒc��H1�t9ڤJ�����ī�E%�ŝ�#�q��^E���?����f�ѥ�Q�"�V�W"I�+��h(di^ 0�$�(�f
9���J��XA��W^RDBV�.�db�jA[�dha��xn�	̼�#��o}����x7�:�~���C��A&ʊ+�ɺ�<KNg��$�&.�ř'��\����Aon�&�Ľs �]�y���y7V�|qZ�Dsf�QH�Pj6'�����V����yT�Vˆ�����5��"+\�P�<�G���W�y�o�ӿ�>,'�K�*�(Z�Ji��Q���/�	=G
��N
A��aI$F�R���)f�?�#ǖ)�W� !tn/^9]�;?����������~fc�ػ�9��i�B���[�x����jCe���eb�U���CrE�ͿlWࠉ�|
l'C#K���$T�c�h���&E*���3�t>VN��YO�U�E�8�,�*
_�	�D$S�}w�y|��6��j��G�ѻ�"�lÅ�'�l
Y�64S��y
=��Ć��h]�]�	�_dh��|������+�}��&ˏ.7G�ӛ��]�5o};jj
'P���v�jTmލ�;N�5��ۈ%g�alj��.��v�,1�D}̔)������d���ǮmGI!%"�R
�̓R����u��y=��l�IqI�Z�Zy
����V܆X��}Gk��3���E��{͘���u�.8|
m�l�.<�}?zε��(�\�k���t�i�%��k�J�,��*V�ia1����M�T&Ŗ%����Q�݉^�vN2��}$89��@ʌ+:(|�J�.9@{q
F���u���ښ8�Gv����1/�!��x�Mx�u�жm;^�C
�~�̜��gO`�Ib+$�{�o�>�y54��iX�E�}8��E۶C&I�GU���^���I���u�9m�#��d�F
�Z�K��8�k'2b-[���NȵS�tv#�9�#������]�����꡽0��P���'����8qDiq�����C�n$��xB��P\�,���1>Ĝ,��tb�l���62zHI�bfkFg��7�n�\�z��jTqv�+8U�wߴ����&,��6\�h��ߌ��
k��U�	L?�:��l�O{\B6�3�c�t�D+�Y��]��G��&�1��F�4�/��k:�׉E�Lf��#S�YXs�|$Nn��c���A�)l<҆�f�”�(�+]T��2���Ƭ��޸m�)(UQ9�
~Iƒt�Ν�@���X9��ڎ����fT�*�]�����Z��FLd���kJ����$�]HNu�K�VY��lu۞,C���?^Tu��i�v�I�żC�Ӵ0�*y(����oY�߷x�b�r\<��seT^Z%���l·��?�7΢iZjf, �������c'�aG{�3��k� }z^}�5l9�=J�=ۅMo��^y*����n0�����]���E���ހ�N�bF�b̚��ZV!6��<v�[�-7���JL��߀f��������sO��Z���?�_[\M������\76ա������p��q<��+8��{nZ��<^|�%9�"k2��s;�ƞ�h��3�'����7F.�A_!�����D!��(}8��u�zs3^ݹZ����$���'c��r�.\‡j-3���s)!�ŧ�6������������sHL�E��t��6���j�o���nT�_�{�C�֗�
h?ۃ8Y�zz^~c��,��%�:�ͯ<��F�n��F����#)�4Mż�-���5!�����xe�b��b3��[��<�<�y}����Ǔ����|����B�v��b7UA?�?��?q���4b��:�wv⥗_����!�އ�N�a�R,m��/���Ѧ�d�"SPQ;e�4baľ�$�nކ����[�_����JZV�8�R�cwq�&�8��hE��lvyR%Vh���g��o�jK�n�,�N��x�6>�,^y�5:��.hX�dV,���-/м�Sg�#Y8wo�=�y	�^w5���x�_�'�uHhRB8��WX�������9����FL�H�ǖ����7��]hZ|n\K��m'~��Atw����1�N�
��w>��
�2y��#�Xm�i3]�$^yc7�؆'^܋Ђ5���&�=t�nxg���̳�p#��1��ڕ������O�恳�r�����b$�*g(;׿�m۷b��c�9{!f5�����F6*��E��Af�ܿ�i�#�j,w��]w�n�<��e����Ö-[�^aGG�d��L%�����O�6��ߪ
:��7�d~����aRX?|��߮�ө�ND)���<ʓOEw輹�<�CZ��r3VŻ�k�8�C��DwG"�Kp�m�o=�
�6�^��n{����d��Zp�뱚@�Ю�ذ���[��`��X>�ƩKp���AlI2S�
�8{�v>�Nzn6	�u3j��:l݃{�!E�57��׌��iH�0�RX��U��LTEۅ3�L��\G�7_�Bd�{[���&��R�6��\����(����Y��]���ҶN�����f����d{�~�0��w�Kâ�0�t�Yd�>�]��X	$��Sum�Pf�ZK�yV��'�@���p���&p��<�2vl�u�����U�ނeZo��,�e�(����B~�2�g�<t�<��[��7R��n�
飻�mt���qf�gp���u��i���kch߶oM#<e�\��>	y��m�간���c�QtQ�Zt5�̙�&9�S��O�����b�&�}4��I4�dw(�ǢH]8Ek����L[����2�xo;]K�����bQ�EX1-��Ď��� ���.�{V�l$��C<܃N��Ѿ� �X�t
�N%�]H���*djʢ���O$���^]]M
-Z�:f��wwvSS*���y;5M�&�?Y@��Î�,�r�՘J��ʫ;�k�!K�B����kIɷ�w1����Ѵ��dw��׎�Cw��5���a���y*�e�ߌk���~�&l�R�fյX3�	�t��^!E�E�f`߾����f\��j,o
�Mc3�~�)��koDc5Йj��ʼn))�dp�����L��I6ܲ���5��$F�k?��i?��|ܿz1�܀�G��`�U�#���X/�DYګi�7ܲ
5aE�C��I�~?v�B6��ꕫ0��3-b����Y~ԓ�K�<(�|���|>��p-����?���6Xy���X�x�sX@���&()6 iPr�x(=��w�C��T	(
&�#�h�D���<MK��2y	U5�V�`C�*�	ȅ4B�īh��lgr�D\��u������Q!�fp����� �g3����"�5���
�0*D��ì�N�@#��dN���׈���[����&0 ���D�C�Os�א�W��bŵ\��:�eE}"$�/ٓ"v&�F�'�B.�ZG��OR֓EG���*
�JdA��
�E����K�����Yjf�yIP2�y$�2B��kAm�T���d"��#�D�H��be�L
]�}Pbը�E�i�:�J��@�q��.dH��檪5z.Ӂ�>њFp7�m���iD
!�z�H+V���EϯNpC�?��5 �HD��YI�t�8�"�u�#ŐW�Ě���	��IZxO����%Ο�h
�55Bx�]ݤDc��E���E�J]"l1�E����ٱk-)�P��#)bS�'EsC���+�*�;F�$D�@$Q���2G���n��:��b/$�oo݇�PC��J����4�_��[����y�p���?,�E���IEƴ��U���})�k)�
�G�i~�QK녨$����\&I��4T�U����/��Uȉ���<��ي�*d46���0<�J2���R2�j(J�����ˠ:��3��{zh�����|��S�Ņ�,LC��� F�I5l����}T�+�WPz�����R�FC��.�ʉ.00+��Q�Q���k�NG�@ іI��"\o��A�6K����f��LT��ݗeŜ�
E�>#��D2K�˙"�jh�{{�tq@�O��r�J� %%���9s�#�\������t&Y����y��
\ܵ�:�S���M�� =�ay�jY���ԝ���K�W�Y�g2(t���O{G�a��F��a�,��V�G�G��݉
W
'K��ı�L�/�����1N��y���Jr0l��9�%N$�����i>���YZ.Mʋ���a��<ɝ]H�����y�1MR|x5�C��AH&��AF
 B�%<�}��4�\(O���Љ��-+t��{��*��)�j��}���p�nrr͢�B#)v�qR�b
 �4Q=+
}�*�?ˈ}�&��l&-pD8���Uh���A߯Y�P(�R"�b�h�p��BL�22�`����l��ҾE�O�?WΖe�c齺U��n�YV1�T�{ם&6����nUZS����EOqHJ�6f�R�^QA[3C��v��p�e��@��K��?�>��#O��s�a������rF\wh�YK�΋��%�0�\k��*C�
���d�*�QV��Y&s�$2&2t�vH�_�2�1�d�z�,��#}���B�Lv �ʵ%�$�d���]<8�=H��k��C�����P�FG��etw%��S‡��P
�"�e
�Pjd�V��8X���N�28�3�T�8�ʀ!,w)�)IB� Bʐ6��YX&m`UQE��Ȥٲ�I��4,.�1�Cv[�Y�9aه�q��E�M��`��
А���!���+���Ud�C�=GR&�b�;�e��O��es¤�$R^$v*Y����R(�� #%&N�K"���3JWͬ��c\�I!@*�}�
��Vr��C4�qY#Æi�g��"�U�~��l���+�����F���F��P9{�]�&�FC�u��5ĕ�
���gM2H��"� �gѧ���sR�ə���a�ʰ�
�̡dΐ����9���.�����%I)i<lX���,��x�4p�N����%�̼��%ڊ�aA��X�j"��ηݧD��Ei9˓�%U]���b�
Š'�gh��q-s�>Sa�q�B^��;D��I6*�h x�$˽�옺$>��I\�+"uz�>��!�d/DV3E\��[Sx�"s2�#�����5V��ab�{5�eg$J�K��?��N������JV[��a�3Q��[���q�H�����X�.$d��	{F�<d@,����ɠ�M9'��Э;e��۹��!v2���{OYx�R>�$[nW�B,}f��R���K=6�1H�tɍ�y7���80���];� u��d���z�h�śQ	����ߊ(IcZՅ
>!�
�e��+B�:7��Z����$U/��k��d5�M��ݺ�Z+bW�nZ�-Ħ'A�ˢ.wA���+�#�/�Q`ڼ)5�,))5�-eUT�N���V�X��$�y.{O��fU}��U�D#5�������]w�-�>���E��`
�W�<Q�HV�BlBcC�@��*Dž�@Z���D�����U�Sc1Pf � �J�?ϐE#��]�b�h�Dshؕ��Zf���.�ɍ̬΄�dV���o��
V��XW�^̊>Y!����b��� [�)	?�8[�V23(nPh�81l�+C
�`v�`1clT���]���^�L#��X%ɺ�I�K&�q��Ȁh�'	�����4h�	��A2�r��f7�+�^��0�Vq!#�
>����1G�h!�� ��>�I�kQ�~d�j���P�b��`w�ݤS��MNK�GE����BX�5S����i��0|T[&U��m��MĽ��Yv�A�)�b&CSX��n���*,|Q��"Y�v�I��.2��y�{F�)��i�۠�ދ�_㾸�7U)c��'��n�	E$J�[^l!�:4WD��6s--V�q�������6-1]
Y��g�wlb���%y��,��m�䬴ҼS�׺6�����l��9���_'+_S����bDGT�>�/e`��+��*���7�.���[�?�z)C2-`6]&kxX���d��=(��Vca��o�-;,�=d�DZ�arңf�K��
9d͐ʍ�
b�Z���9!�,K����$3&��h��
VC:��2V� ���������y�$Z�F^��ȁl3��i1v��;Й��+�n^���pچ�	�m
$I��--Z$[���"�mZ�F����8�;(;��1Xް��
QX2i�|��Y��v{��
���?w��^Ȟ{K�D�ɰw��;
ۖII�z�ڻ��&�U+�Ʃ�uA�i�粪��\j��M1���6�y^��ג�|�2�����#�#Kb�$���V�.�,rtB€晢�и�Wo��!�a%��~Nt(�%��R��+��Cu�y�WIXs�{$�K6J̭4�5f�K���Q�*_�=��w_z�F%[ʗ�� ����J��{j5���[�2��F��tϹ�����yѭ!�\I^ג{
$�7KE���-�d����M*z��e0��<�^Q�.[��= ��Kw(��Ȓ��p�"�%
�#�ľ�L&
�96+�����f3\o����JCҋ�O٣c�5�dqә#�s_���+���п�
wz�T7�r�%I����!`Ɛ\w�L�c7M󊘷��Z�V�]�1�c���/~khɓe�9k8�fe�x���?��l��s��,㇬(�a0���a��)�`�}r����*[��+�X�([�'����5���+Ũ��r�Yq��%T@0*I|(�9�!^�4DDu?�J�,S5����D=��~`�J����Yf��g��h���E�ߜ�Z�Y�d2]4V8�h<�5ð�c1ZK>oV�Y����G�Ie��6���Ht<,[�xz�å����k��^�]a>���I|0=7V��s�9?C�0j5�>7c�ƜT��'��uB5���m�˵u�ԯ�5SF��?W��ĥ��DUB��	�o�e�Iz"��^��/H(���J�hȠdg�IŐϛi�d�y�7*eJ�0��Q�`�ጽ��Vz��1��t���`����O�a�&�xnPli�w�9
c2��ذS0FFi
Ǽ1��
H���v��0|�3P�A��Ih�CKÓ�g��w�S�؂�[0ƌ)�
(wn�b"�Ư$%�(�-�)��U
T�>�L���{��.`M�FF�uP*��W
*�6}�����+r��Pf ��FH���Lɬ�Ŝ�իW}Q}}}%�QI���8�5AF09�:.Mt(uf	�0��i�yYL��*$/S6P
2 �?�”t8�;L[+J3%�O)�4�ŮRC�#�w�E�R�Kœ�@0��`�cB1�bn<��*�~�T
�����+�T	S2�P��Jt(%����J�`�c��R�<�B�T��ྫ�1������eIV{��@X���`c�������Ĕ�2���T)0��u��E�휟�H	X ��)����x�v)�tYI<���T�B���dWs�\�~��BT�G��pp�)������v��4&�
�*���li�֭�&�݅�¬N+o�U�B6���n��O<�ăE�C��!���`L�-��\�����Yx�RElI*%8LBg�Y�FN�J60�O���6��6�s�S��ߋ=��.���l�O��F
�I�N��^�I����^����1<�Z.�ThE��Y��}��sL�Sz׻�U�)��s�='g�9�TdB�l	��+�*��T�s�n0C��uJ#�œ���T�����4���QHc<���-L���k
�m7�γĔ���
�q�9��W�`d���LR��4m�1]���$@BP1`%p�7Ip���1'�u���d������@	E��_��,�R	�t�T����?���&��q���)9���؛n@�]�]�4�T�R01ɗ���xS��p*�ɪ�@�t9��(Êt��]��-1T(�S<�l�$��h�ْ�m�ϝ� �T����10�TII�@`Fʂ�F@��Jp"���I���gL�ė*(�ä*�Wi'ڡ��d2i0�؎�<�|?��0I.�}&�F\v�g6�$U�F� �h���Ⱥ�FB�����
��`KC�R��u��}N���J�%���>7�����x��V�@��[I�4�	�$�R�NVvҘ��b��v�&��%�cK�ڗC:<��F%�dVL�8�&��"$�OÇ-9.<@��nv��#�
>
h�\o��7V�m4�w$�c<�AH�)�&�@��fR����?���}HL(��-9�+��Y.͢���E�d��#c2C�l�|��g�2R0F�1���Q%�d���I�S*7�tL•�r��|���bG���M�Nd�<���a��r�MD�󛓡(�����֣W�4nS��JcN���\�U��	�JS���Ӏ�10fd���'*�� ��3��(�����Y7�u�h)���1�,�p*L�=�d����F�`��Dž7(*p�Ò$��K�"���ǹ����tu��Sq��w�����S)�
H�@����|�p���&bLfW��p�ɺ�<.��`W�^1F�q�(C
�p˻p�1N�h(h��&���7����b�)H��0L�T
�<J���l�+�+Ɛ������}_�����hM�h)���J@����J�eid����»4ܮ<c���;�]�> T�����d2W2H���-�<� �	ɔ�œ*��J@���r�嵐�s`�30ٛ�Rp�Rv�\��(���lj�M��n�+d]�@
�p��p1��~VI@�:����lpr��lq�|��(��W�S�|��i����Hq��F;���x�B�
 �1*U	�dG�����(–.
.�ꭑW�=
�	
�\�̩�f�72��tf�B����*�<7 *���X��)I��.���<�	D�(F�1q�a<���|FW@U4�F#JS�w10��r�WT�~���cA���ˈ&	iB��P^o��]	 �(
��f��Z����}�x���W�k0�.1������T
D�J�T�.��k���&u�!��
㝁��`�\q`4�	����U-��l�B�qsmA���xJ��r�V�s��`�c$h܁�wlݺU*! c���85q�h��QHЌ��9�!�իW�ŀ���x��S㉒ u���+���a�}�� }8���Ǐ_Q���'�(Śp�»���1�`L�!2$Ec�s�S�=�D s�}H��D�	((I�W�12��+c/��q;��,0�ܝ�UH<&��,PPW��`��)]Y4Y�e����R0�te���ž�1IeF�@)�b�,��0
F0J��'����d�>IEND�B`�assets/image/06.png000064400000200200151327614500010061 0ustar00�PNG


IHDR�m��{_tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4E7A1691BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4E6438CEBCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>��9��IDATx��x���٦�-7�H��{��c6&��j�� !$�/�		%!�z���TW���-ٖmɒ�޶�w�hf}u5�E�]����3������{ι�;#�V��q��,]�lݺU��˓��y��Z����D�=��k���YL�F=X�(�$Lf�<�K��[�1&`�b�5:+����%�]�J�w˺�f>�f1�U�p�ܽ�����-w��U��d,��u:�R/�Ԇm$�7��n����b�D�V�ԕ�_���͕�$Ir��ܞ��lrϾ�6�Gwy\\\�i�E]�l8 ��v�U������UBQ��Fv��K�~���c0���ѾF�u,#�A��a�l����!�
��5X���k/�Vl�tM�]�+��On��ۺ^�eO ��,p��0C6�철
��2й	�nZ��ҏX#���.�[\����:9�m���3�&yx�C��l�
Z
�&h��-��mk �U����,�����H�#
̿R;�Q[*3�=�}����t5��?؊�
�Z����#���@��6��<}�Jek�Q	�pߎ�j�+�`{Y�d?Ж}G6h ��tnM���y��l��UIHu+ж������5ضUњńkԁ)�����۹M ���u�d_�j��`),�~����:���LȆ�����FS(@kB���h�\���H��0�FFhb"����~�s=>~���`�Z�3�p��!T�&h��
`P��Uy^��m���&dM�F����Rۑ�dU�I���LZ�`�s_�`hŹ���H��+��CY�LNm�[՛,�ۢj��jքk�U��}�}��Hb`�.S?\�
�l_��Tn>��~��l]�g�sX���O����R=�%�-�^��'\?}���LMR�@��?
Y=��t���2K��hM��p�`��,��>.ů"5��Wό������QWъj6P%+��j}��}�� lWP�Q�@ kӁ�^�!P�Z����|�H͚J֬ģ�:�W4*a��PT�r�[/W]�r;�:�U�����V�qdj�ݹ�e�,�+WN��Z.��4�C��W�vi5���p�������V��L�&\M�>�����c�
�=����;00�����.����TpP�ա,W�T-��<��P�Y�x��`m�1l��p���b����k0}�zP��@�Ʀ�5�X�!X�9��%pJ��,�Qq;����T,dm�����)N��*-��-ڱT�z� �K�]�w�C�u&�F-dm>�j�e��Xk�@��1�	��א*��{IG�
R���/�Bj�ڼk�)SIG�j@��Tu��@kU-�VsL��jʥ�E�--�I�s���5f����
��ҥK��iՃ�Mk�5�m ���f��=�ڭf�s9�ǐ��a	�j��>UY*�}<���۷ZN;�^��L�������z�Nb�E_�N�#���(|V"q̠�Y[���C���5�k.6!k�5,_-JfX����3�$�4P��_�/�$=�z媙v=�5)jU]�Q?M��y!���cQ���Q������'��U���4�	�P��p(��*���S��*W=��`��l�9A�k�B�����)�a�>�O�)�T�����:+���P��:��b�����m�<�9%+�[(Ym;*��*��h���5�k�^4��W�dmT,F��F���������b�5j�S4�5��fV)u��f�Lŭ<����yW��Hi_��T%���E����B��/GK�-M��P���!۶R��ǫ%�0R�MMMR��
�ST��qg

X�rr�f����0��l?a�U�G[m�t"�Gk�Pypzt�(�I> �)I����;��[Oۺ��.N�����5r��M*`��nu�&��;Vwm]��ًI9����S�F�Ӥ�٣»�\���W��Ds�өݛV�)H�� �� C���T0dm:$�^E��2\�?���nV��,�
��JQ��U*�)��m�/��<��M��;�$,wr�A��d�Ukנ��R�3Q���V���u����1Ϊn��2�ĵMI��E�X[��bԒV(�].��˥`Ƒ
!آY�vh�l �&|��W?lkU�ՐY�.ad��~u�Jѣ��h:��,����V��'Z;,�y{Es��S�^���T���ĩ]pJ����m��=n͡I0[�;��vk��@e�����v�eM�h˵�f�t't&�v����Bu|��ڤ���b�]��τ^�"u��t$�L���e���֡3��u�ף*M���m\�9=�w�U8���ƆW�_��GLz��/so:7�a�7��P��D�u��¢`E�/�j�5�YL�v?��[�N��ͩW�,���y�mxA�`+�ޫZTG&mr�����>�J�ͽ�r����Aփ�^Ś�_�|O�F�}���0��'Z�lD����0����q2�YL�v�‡����j�q�P�8�c�<�X�qx��S�^�}��µ
�����5�F_h}���@�ϫUI�_��ajY�!=R���P��N�dm0N��+Ó��æ�5�	֮T8F����B�>T�z���m���,�ث�P���b��,%��&Z��[��9��J�O<�ӫ��$k&du�~6^��\.9��h�9REL�Z��=P+z�
�,&\��m1�Gt�U}�S����e|z�S<����8��2�UT޼:u��'q���Q.o6�(C�0�L"g&����
����&�v%k���d��`�>
�W�q{I�8����.�6��jdz
 �Ku^�ͼn�.��DK�bIP�� �
�:C��;��a���%m�N��T��R��<�����5r�/��[��ńk�P�|��X������+���$�u�=�y�1[V�p-�eA=[в��W��4g�8F�y����+F��A��V�3Žj�֏y8Zi4��]�Z�p�@U�Y���j�5(��J�7�S�s��f>գ���8���S��~N��9Z�Q�.��ī��ti���Q�"��"���3rjR�Q�w;M��mG����Y[�'4��˓�,f1Uk�)�W�V�u���S������i��_�������BR�:�A#���fk�O����GP��%45�J����Z�u�����}C����3ф�qby������=�+���`�H�^a�1���5+oS�vE����-��z�=��V��N|r	��7����W�|��Ň"旻��c>��s���?���6��6_�=�ۑʰ��l�)Y[Nj�A,~�X�֠5&Iqg�h��B���a��f��M(/��#&6�-p�#1�޼��uN	����:e��
f�Բ�?66Ƭ�M�ڥn����2�K�/�(Vp�x�p�?U4�`��K�Xt���ѹnQA��$�\��r*XT�z�V2R����)�v&g
���Lj6ꔬ��%�:��DZ�J�R�E���=�n��j�葧q�ц��d$'7O�jT�L���R��z��Y$$h�`�MP?'!�t'���W��x����ӿ��%7�G@-��od�Ke�$��X��~�_����'��g�<�+��&\�l�1�h�?*�X����H9^�k����$�4�0畮�4�B��Z�����6���š�Z��r�
�_���k�(���K(�`��������v[�H����9��X�_�C$�HBZr<�N�[o����`B6�}����G��n�q	�K��e�O��N�����/7���)�Ӂ?��6�_t=�&������͎�_�+���.����`pNo���{�|�
�^:=�Fb��<l^��{O��HRn��e/asS_<�Lh7���}&\;�z�3��v=�BG�J�b؎�\S��Y~���P��j��:�T���5�/����q|~V-r���q����5��ۣ�C�dmA[
p�������C��"��?K1Ų��T#m�i<�����V�}�uX��!M�U����r�ǁO�[�X�_�U��xe�O�Y��4w�~�wH��&��N�U�����Ÿ`�1|�q����3�!���,�}��ݽ�yuƍ=y�
.�7�}�}�U'�q�~��ȽpWW�e��&X;_�t*���%����D�b�&1A�o�Ys���T�J���D�R�a��B�tr
{��U�sG�6RC�u��;dDZ�՟�8�F��d�KL2�
8��F�<���j~�G+�0�?`l�!d��������#�6؀}��"{�b\1"���4���_c�0^x�-L��{K��㥧Ϧoi�C��ix����݋q�C�0d�4�Ȟ�)s�a�-n��op��~��i�X��
v�6�\<p�`�����Ѭ�M�v%�'w�|�[~tQ�9i*�.(L�A[��X9;���7��C�qy��r�֫nU؊瀞��a�)Z�$���mgS�YK��E�����m߿�>r;#GB��X|�%8��2�t�����੭D{5�KϠ.1K���c�`w����F����j����ǻ�mFbb��lht��=�q����/�˜�6i4&����������Gc�Mv�dxJ
Q\g��W ����Ơ�m]f}oµ�+Y��MЁ/��GCT��\r(�޵n
R�1�'XS�V�U��k�q�[>�����H��V̚����$������z�=���|�P�ۮ�X�,Y�7������խ���6��zEvv�54C�.M�M0bfM�3U�<�L�:Ç�F|�4ڒ�?wƏ����8���!cĄ���De���b��1��[\o\4cb�p�ŋ0|`?����q��8�ါ�=�|W\<�d!�o/������p&q�� ���`�����L@YU��DZB���dµ���+.�c�T�[P�.(�1�n�-�t�!�'�����H=�g��n�m��<n5l��(h1����X��=��r�Ǝ����Dٝ�(�H:EΝ
��ҥK�@5�]������d�ۗΚ5�n�D�;�N		)�^�wmU%���kj됐���
�S�QY׈��de}flB<�5�i� %5����q3��FL�
Օhdϵ=&	jHP;�S�#%)�W�?��z��'�V�!�!���))��q5Ա�7!2�ń�Y�ҵ����CR/����хϠ$�e��`��;��h�ny#�z$k���M�rm�:O��KXNjZ��K��������Xu�>SJDo����b=�``��d�S[߮�O(�
���J�[�tQk	庪����q����]RM�%\�UʛCY��SS���W��X�����X$��
�r6�=7{��8�~c���F��U�ʁ�hU��?�	W�]�H:p��d���"!��{�iy
��_�)l�������m�
���+sn@w��2��`�VI�/Z��ѻ���/�����؞g?�c�*�TC-�;]��鸱�u�g�0�	�Υb�w��an�-Ci��'Zt�����������C���VY�T�Zp6E���(���^�nBnI���AM]i��B�҆(�vK���n�����ezI�墇0���a�a��{Xo��s���>�?֪��9U�e �����&r�OU���=�-	�Q�Ρ��Zjm�W�S�K��'TB��1l!�iW�fej�y�*���#��{кo�"�BYG����^�~^1E"ߟ+&��k�?UlPw�$$��8�*q��NJ�\��7P=�e��IK&ae嚴�|m4��.�dm!|�"�	�d�t���C��X����r�q��b�}���$�!H�8�:@�e����~T�8��O�h9[�H|�W���e��*�j�j^¤B��4�z��I(z���i#hտ�=˾���e#�����tK���yP����bS�v�"q0�AE���t��ܥ)SNQ���U/?w��'��׼�����6�������ZthR&^�*��T�rn�<X�[�/V��m+ ��Bt�	�H@3�sD��Y�YO�ń�Y�p���)`�\*A�٪�Q~�:NZR	����mgc�4
�略UU�ྋ�y�3p�yBr
V�Xe���uv��n�#PH���#eˮ���NE���lTA��YL���-�Z)G��a@�K�(&�U-�C�>�>OYP�"ĵ�5x6�u�.T��wki ��붨��5I�!xeM��:xn��0�*&a:]���h%i�7��s� Z�*�C������_W�fGB�T�f1�j���co���0�,5��*���T$霷E/��W��P귥~M�\+�ؔ-M�6�����iQ!&�פ���6Mhiֵ����8�1�cj޻L�z=��2�ʼ��A.9(��Ƿ�7�O�1J;�\}��Fʡ�-&����:��oV�f1K䀪�����
�Q�$(7qx7�NN|B}7�>x��%�ל� �[35S}����r�TG%
v�f�h!�Z�lL����DU�J�W0WjllT>���U�kmm�����^�D�!eN5mP9dm��"����,&���{�k;q���y�'�2��Uo;+�b�y�Ue)��hK�~Mlx�b��[/�m�b:nv����Ԍ��<��^Uk}�J��
W��h'�8Jڞ�.EES]����!S1��_9G}}�r���$E��Ж�s����^o$G��&�)ȶ�(�����5kQ��w
�5U���d�'�+N~Xp�Y��H��p|L�֯N�j*֭�n��4��j�-dN�\��w$9�q�YY�G���RU��l���%5K��2��e���)Y(�c2-�s�y�������Y�l+��t:�1
b8�i4���8��k��ໆ
��g�i��o#�A�nNQ�pֶє��&u;��w+��<T�8O+�	$4�1q��O5e�9)}�dVj���e��O1S��Y��	�L
����h�cZL�i;�2)U�EOLL����F1D���Z���J�MMMHKKuk{@
�S@��YL�vC�����W���f�ARorp
��u�aɇ���0����uiJO�`���MKدV�k� �83ijY�_U�@H��T �}���Y�j=���L�O�lI�z(̧���J��2���`+�둘�(�pU�gΜQ�#999\����.Y�f1���g[�����8ȶZƅ�X8��p���2��fv%�"%��SwP�Ge{R��I5V�Op�x���i��J�)IMR�06'��)��`ȀfU�Gsr��lK��%��R*k�;�Bu�pU�d%''�f2�Z��I���eE�:��v�TWWG�PE�l�X�^��
����CS���	X��p�"�3�P�b�]>˒�C�@D���ţA��1�
^�%?&,�23�G��^q�U���q�1]�?
�w���d@S�4�$��$�6G�X���q��\���`%m_2+-UT�ى�UU��\i[�*�?[UU����'˃���vC�h���5k��`
z.�J���F\�J<(��@i�%��3.��5b~��X������
���������T$Mj?�����z�bX�������W�:YT����>]�6}f�+Q:*l�|�)w��%V��J�ɤj�����u)))-~���r�{����!�I0p�ɸ�{��5��^;��m���m4�DI���jf#��`e����$s˚�z�W
�<�]<�qh�<Ų�^���*ʙ�S�6�G�ZJD��}+**$rDb�U��O-&��K&iU�j��U�`��ʲ��

v��t[�q��l||�Z�~i�OA�6Z�lg�l�P6k������U<Yb��Iq��T�ʇ�\��Z8/�xu�f-���/Qm<�Fp��T�ۏO�F�AKl�굡e�D�:'u� ��L��eee֣G��YWK*aQ�|�����)ZEɲ���
�=d*VR�t,*\�������e�Z�V�>1h���)\�嶔��o��������F�p����@A�U
�4�����bnjma&&�P�|5�����Oj�[��̹���~�D&Y�`4w�y��F������u�?�hgX#�BM���WD��'�)55U�rss)�F*..�N�<ic�u�w"oaU�*�黩\�-�
�qS�[2G��X�qU2=Q�-e�ҮG-���t~�!6w��p�ޠ�鲀]�|)�3p�ȾX�j��x��V���_�Xpݢ��>[�*�O���`���:e"6��)c/Dߊ��l�6�eǹ�G�:^��Mx���[��,�K����ڊɳfc\n��v��Ґٸpxf��ϱ�cm�W^~AH*}2��:]	�Tq�I1Z����s��I����ʆ�)_�%`�W,��F U{���*$[��+����t��׮�{c@Kв&�
��fǭ`�3��܊�t�A���x�*[�;���M�G[ZVXXhٷo��M
�Vj0�N[գ�L�rmm-�R�GJ^gږ�KNal��f�W�l���aP��š)* �e��¦Q��翹O=t/��
�G♧���o݈��a��O7"o�L�V`��Eޜ�QYS��eՊ�鳏?Flz:���C���V�
�n?���۾����8t*��x&6��X��g������'�\yz�*�H�Dі
H2��RdN=}�6��U_`\�x�C�ۯ�g,��1{x>x�Ď��Fb����R�q*~�-�n��<'��Fϱ�08��?�6.���G�)���D^���!��I,[�	9��F��|��\�5�M�vH�5U�Բ&sV[@ٕ�J߅�eSͦk0&_�u~�**8Io�/�T�q�r�Z����\��Y�e��'e�B��FCfYu}=�qv}�^f�^�SD$_�=l�ܹs�={�H�l߾]�LNPt~��ɢ��F�m�lL�a�0`ʢI��k�)Z?���qg�lwU�����4�X�պ��>�����1��[Q��k���6̺|1n�6��:q�����lCV�Ȱ7'�9o�(�����}�$�_�M�c1~��cG����=����𗧟BR�`�z��X��S�}Y
�x�����0%Ņ���p:���޸z�p��зg&�������%8u|������1�̘����k�0^}�xNl�7;�#s�,ԝ܏5�J���{�����b˗���ոp��_�����X
F���v����o��zU*>:"�*����.k��
��5�������,IP5����� �U�U�z'ͤ�/A(\�l��s�86�c��#𒥦�����^�����@vH��C�y�4|�p�M��⋑��oY�v�\RR�4@�A��6V�7}�F	;��P߮��`+*Z����%6��P'�.
�z���Ř�S����1}�L�!&َ����� =-
�*���Uzo,=��6r,�(-��R�#�;8߿�M\�e-����:O]��U�v@ꝅs����B�����T����ӆ�ǎ��&,�d.�~�n���~x�q��$�����g\r�R�ᛵ���
���e���gU9�/����l�ŀ�\|��I�;�R��V�=#'�O�>��u8��W�IĈ�v�^�W�W�i��9��8��o������kQ|���B
��̓�C���{��Ǡ��	��bq�5lRj]$�%��bX^�NW>wl8Tk(��5�8G��9�9�̗���GRsQ���sy���T�l[��_��9�MS���A�����3��g���W�ҽ�0a��M �(2!��G������h�2��j�Y(�Rӱ{O�W-��)n6j�� �)WX�,Y�yɉ���d�5��8;;�DK8�ʇZ¾MW\R"Ffga��<�?	�r�#�f�2��߰E�֣�:^2ٙ���$`���!�w/���ɐ⑞�S'N@Jr������`O鉬�~�HJ��}�s/EZe6)��+�å�s��0�[W`��!p'%`�y3ѷW2rGMBNFb��P{�8��`���a��L4�v�L��%_��Q$'a��I��-W�^q/��	νlj�����$\0ez�ꋑ���_`������Ğm(��yLG��HHMfo���_g�N�f���D���v�&j���u]|�lߎ�����c|���۱��qmۄ#�8�a3k�š��(�8��>�1�_�N�\I������m��?��ԟG}�\+����J���*��h��	�nMjB���e�r��$��׶�z�����ح���,�2�9s���t3�;Q�`{-��A�)�����ܹs=���R�eeeZ
��U��������Z�
*ԏM�%��R5��Z��AR�4�s C
0��V�s�U%�X�t���"4m�d&?���Y�fك�dQ��9�;��k>Ɩ�uH���9�fc`Z�{2Ph�����
|���YX�Y�M������o�0 M;N!kL.
�c`no�;]�)�=�}�,��n�O��춚�ɔG��(�`Uk[�J�#U���H<U�4iq���>�M�k f�6��
����D%~fe?�J�n����(��x[Z�(�I0��5PW�\�]�v�pwJ<.u�j��S�G
��i��O4i�cu;�7�jV+���r�.d����deĹs1��ָ��Qթ�(>uUr��ȱS��5�}���?nK!R�塇;���A��3���{��K�5��`#�-�>�+R��P�>GMA)Ƕ��T��w�u}�ëA�K�_���gqR�I��N���C���Ħ���̖3ȝ�en=z��&<x����{�mۦ��`i���U�x�!�'���[��q�L�Ѿ]Ⱦ{�l}%N�zл��(��P�	����R��Z�
W�� %"�g�:214�76��O|ox���XY	wM5�
�f��V�W��Ɗ�
P8}|~�h��?/`q9�7I�
V�*�'�,�]y�j҃+�@�Y�94��7�Z����@���#��������*�*�;hР�Z��^=x�`�����Ç���~ۺu�V�� ��yK��rQ���?K���r�t��h��N
�.k">��j���H���o�MGv����ǽ�|W��)*ލc�19=�j>Q��^��o�Y����D�fϗ���l�CQWW�=Vw<6�',����cC�ˍ8��9�'!R�|���@Lā�	n��2X��ٗ�z���w�j�j��F
4�u�*ٶ��o]�����X�t���Z����F�^�J�s�]Fa>˖-#�1��*�����&��/���f���!0���.��<��1���9)8�y
�[�)�=������}j?��Q��sr��;���U�`U�(��ۯB�d���*�P'W�ʕ�vFp�j5+���H+y��>}����RU�:�
D���g8M�m��U�H�R�"X�z�-���}}��C�b�vWQ��w���/�,R���C���X���o�;B�̀�&bg��?��4�n�r���iف'���>����G�]�:��W�on��zW�m��H���b���]�PcC�����%���C(
����iI�!j�d}��}�����p����z��b����������?m�����m�����{~�2d�:#3�#�裏�k֬�����F��2>���52s�E�l�&��f.n������=���g�Φ��4�r�K����q�)��������q��,���b���aB:�$\�
�0r(�.p�+`�]{L��Vr^��/|��O�:��Vb���VU����4�����)�y �'}�֗��U-?������:�+JjŊx��7��ٶ��0���y�����t�ή���ԑ��'C���������{Ϟ=qj�f�db���(=�شL�ZM�Fʔ��K0&a�U�P�'���1R�'O�TL�Fq���Vv�80����O����h�3��)�
�.���S��-[du�@�4���`y��}�0G3<�f*6�`�bµ��^��9��,�b�L��.)W#eH\k� �(/�f�#%����_���yyy[}U������K/QW���j���e�d�h&'��p�.�b֫�E�J�`r&�5T9�;vLQ��j�MI/�R������L_��h}�����w}�“���g5�-
Dpuqq�`��f��N��ży��ҦM��lP��o�F)����/�N���oy���c�]M���l(t\�	������빧�yգG�*��/��AU�,V��@�����Җ�l��F05J��yf�VWWw}III���&�Ƀ}�С;v��g�Kee%
��<4�.AW�t��jQ��n�P^�	X�t?��Qp
�FLX��V_�-�z���,L�X�<��
��
�P�-��b����V�|L���������gϞ{���G��?>=C-ԬB�g�� K��«�(�l����YL���؁@�����Z�\XX�ijjd����v��V�K�hy(����yIqq񄦦�M)))�z׫�Y"���F�LƤf��z���L�~��i��	X���������qʌe��J�T	�Z?�6<���l|�U/%�	���63���������a�DcZZ�6�"�S�&L�N�8!;vL�bp5��f6�_Vk#d#m�8�M���˫��W�$L^�F��ې9��S%ɫVq�8���f
&T��`@TE5�&;{�f���̩��ݒ��^*^5�fΜIϗe۶m�X_&�n
ِ=�&`�b6Bt�83�f�@�(솜�ԑU�z��׸��@����H�ƀ�.A�dnP
�@���̓�����f]���V/��!C0f��������S����	X�t[��p�[�~C�(>��
杘�M�L��;���T�4Y�N4yd�}�ޚ�_j������dOB�M��Ĵ_��e0Y�3v��4�5)))��u1�b�����`9~��r|�~Y*��S��a	�,��Y�,\���k �?���!����^�>X����OauX�]�pfbzœRS ���[�-ŧ�q��	)=z"5Ɔؤd��XQ��dx]��$X�
K�wJ�!����1_�6��`@+*Z
�z��ҿ������򣙙���롄%�>AӲy�f��X	��3N�oA�S�Xs�u��
��5P�j�gI�
)Gۜ>]��'!;b�������M2S��i����U����T5HHII���������i�0H�ZTֻ��7��zӛ��O~�U���Ae�`�����8��kx�i,~6����FE
]jGjjs&�zw#�R�6�cq 9Q�he�UU�)���-�����ˌz�y���V]��`������999�HNNn�gѢE��-��%�gL�_����/+��Ѷ��v��5K�S��W~4_p=z��>������@�'�qr˧xg�W�_�ò�`���h��AV��+��;��o0���Q~�s���̾
$T:aI��n�%�}��3���[o�.�93�:����.<����8s�Ƕ�3;�L��b=8��s|X !O:��W�C�?����pb�ʥx��/q��cr{��jj���j�h����F�Jc�Bz��MMM_��P~��c�b�Ν���D�+ٰ�����lD�T)��끍_`�E��u(,�CZ�
;^�~�g���>|��/p�_>�3.���7.�-w�/��.����b�mb}�ҁ-�WX�xwv�Di�V��U�n�Y;x���p��׾<ĥ�߰\�푀ڂ�X��bj��͡"ԕ�せ���+�����S�]��*c��6���T���_݀���
�݂�rn�痐黚�f�A�ן�}���Һ���y$��{�wL��j%xVWWK�w�Isn"x�>����z�,!%���l(ͮ!hXM�&`�ҥ�k4•O��+���*#����t��_�Λf�r�C��߫����x����7�Ǧ����'Чo/ԟ��t�<�և��c�ٶZ[�/nj<=���g�;"��u�z7&��(���Ƿ�b�7�5hd��7�b�>�����?�!\u��,�����6}�O+���O�5 �qL���<~��m�q��ē�o�:����{�,H�1�k[A��^�\L{)��s�Mmll|qǎ?f�e��o߾���1c�X4�VVVvdCrK;�&`�b6�x�@�}�ʍ��m�l��m�,W� ;il�76W��7�����
o�~���ك��hlr��X���0g�$[X��F�腘�zvv^;xS�r�&��j	��-p;P��k~�V���⮋g�G�+`UI2<L府�]un���.G�����{V���.�U�leu�];��Ƕ��3���z��v������3l�̪&X�S�Fy��B�tb����۷o��a�x���d<��8q����B�N�l��ÀnZn��n@�~˗/Ǻu�hx�vU&����{O�<�)�ìY��`~�d�+ng#����9��1��+��AzRs��@��7.��<8ֆ�R�b�ǣ��&�ʀ�r��3�o��4�fQbR���q��M�����I	V�d��y�g�<��<�$?c
�q�E�4H�I�z�	w�5X��>|�8v$��%��~醦��N^.I6+NJٸ�?��ZT�㐔h����8l*ض>�F�P\�j+�9zn�Bv���

���̼1++�X�����g�c�=&�_����;%%E�zi�;�,8�'Q�
C�E�)R��ng�,!��|�M�����HC�߱H%̘1# �R.���qp�'���m{�����?����0{�qǸo��SOb��!�y�K�1�֋��J�P�V���ߊ��h�&���r��g���E4n"��e1E+#!��<�+,�g��Y��R�^ٟ�~;�헆1����?��!�7���n��˿w?��t�9͍W=�N���ڃ�E?���|�id\s.�S�qF���sr��|WBZ=oc��Ӟ;��\��1Z���ӧO�`��
j5h�}�݇'�|���W_!�Ҝ�,A֏gq$!�!07k���W{����=��R+�j�R?��Ra)<2ey[�h�ߤ�����}d�>�k06�_��*�@��d9����2�
���z���9�{��%���Ϡ��=2~���H������)�A�o�|v_l�94mr��
G:�M���t7�?���8v��W������c1}�
M���D�s��ؼ�#$Z�p�/�-�?�6?�k����q���"v]�̻�{<�Cc/�&_�|)0i�L�Z��N����$�����C+a�I��yw�����"�R��6��ՠ+>�<h�ҷ���}���<t��u��n��Z�/��¯�U�%		2����@6T
3��\�ҥK���Col�d&?���g͚e�5�V[
=8�N���J�uX�9�&c��-WV�P��+�.���3<�8t����qb�|���,\�܌�][֣,�?&�R��?����‹g4o�ƾC��;4֊<���q�6y�ϖ�Ƀ��w��_�u+^�O&.�^�l]!^�p�����7�p�r�⩧�€�<I�����%%V��l��A%&.��'�X�n��a��):'�6�6I�^$Y�l+ۿ	.��l(�J�)��o~��q�>�Ӫ�j�(,P�&�����#F��-6)	1p���� k����������z�%S
V���:�cCcC=(ǃd��u&dٱd�%&��	5�.:�R��JƂ��x�Jn�6�K	�+��Q���'[��C�e���a�e�w7�II������V��6�0�Z�L�c���Cf�v�;�c���_���A��g�1���g@oNa9�scLL�
>���>��3ҧ�~�!Ȳƣ� +;�Ė+)Y�,;�L��}y�R H%�mBv�.ۀ��0Nybpp�~���h��@�x�ŗᅥ>ݏ���x��W0��o�x�J���0�T�ڈ�^�j=2�?,�2,�z
��9��W��#.�}�}�2PZt��:�b�#���AF�A<����Pr����U�}�\��3��i���
���W;��sR{�@�'�QaMD��cLѹ�s�7��$�up���W8a2c�x�_Ob՞3���9��b�[���u��e�++?���bۛ���C
?l ��^��O�N.�������X�~=�SS�`���߇�Ɋz�2`2|�v�j���nS*~5�lvXY��^x�&���.�KI�gc��vB���$\�h}�ӧO7�+92eJ�T��NTu/���V�OgJߢ�����v*�$�?�H����!h�ӺH��P�J���V���3M.�r��JVj~�i�f�Kj�Жto���͐&u�M��!��s��)�|�%4]���	���U�%k���T���PC���V~'Y��=&\��������@�ڜN�%Le����'��R+���Z8�M�h��X/wq;cd�)t'��tQ���k�Z #�r�Rz;����}��W[P�[��\�g�����W�1��
�;�b݆=���pd�f�'aP�T�f�G/��!�1n�l��߁5_�e�‰��s��5���Eš-8���q*&H��=�6�c�y��*+{u��ގ2{:�>�L�~�������WZ��cŨ)܇�W�DZ��P\V���
Cz$�R�/,ۈ�?��0mX����ԧ����wc���زz3��Ɉm:��[7"�7p���>�[£^y���g(���<Y��P�*uUF
gC�������n�[��I�R\�Dž�bm�%/X�d�)�ͥf���G�T(W�ܹs�ꕲ�2hy_-~�m�K�w�r�*ȳ�i_#��ml��g
��g��c�に��]��Fw�s��]Y_`�ci��a4����gϞ�� {��	��6�,�X�xȶa��hh@�袾�T��A��(?��K+`��`��P^р��C�EFJ2♬k�tn�=06oJ���{n��6�ʼnS�J�!%6ӆf`�+q�)��'&L����JlܰG�ϰ�́ʒ�j�0nS��j����Z�
j�ٔ9`忞��#VL����%(*.F̠I�d�<|�������<o6
7��m�0�w�f���lUx�Í(����㧐�=y��QY|յU8Qz	��0�w"��$
���C\�z۵�T��͔���8�Ű{���ݟ��]L��=Md�S?�YɉJ!���
���8E�6)���+�[��}�4~�W�P
����T�!l��Y˔j��p�s���ϯap�BE��L}�j��,M�=WzϜ���v?�cǎ��I}��w�E��KF�mK���pJ<�����cC٨Q�]T�ZQ�(v�/@���p����9��a�y�ܑX��Z���-��k�$��?W�܈�b�2�<}Sc�����#[�'Ca��w���9�_oډ��C��D��2�S��{됔�7�����D~a-F�b�Pˠ�=~�d'�T�^��C��c䰡h*9�]�T�y�'1X&�_+Csұ���>W\r	J׿��U=p�u�PUՀ�]����7uY����p�V"m`�¨^[(ؔ�f�����Z�Z��c��`�~C�,cUC�dWL����~;�ݪH32g��%�'�9��l((\��N&�9s�`ҤI-֕����ɓ����F��5�Yx��=8��NŒ@���+ܩ �������x���U�z��"�sڴi��G���J������j)}��CvK��]��)����6�-��y��!1�u
�=
W�w�{oC	Xrr��89��PF˱A5�F>v�_�U���m~v����|�f�c9��&Rp��:t���o''���������x��R
�4ag�ϥ^b�I�4�;=	�̞џ�5�e�s��w�C~~���IM�씘����h[r|�bd#�����0�t�PR��Aa0�W����p�R\��N^��Ғ�Աh;��D&`����`5��gV��/`C���{t׮]�#G�|K\����=��u߾}n�F�1����4�����Hľ����YL��%$��%K����>39E
��C��a���W�g
�Z%E^ĔdB-��L���#@��h����|bϞ=UÇ��_A��;��>����AT#��T�ށ�� �mLB�^@�����4%u�k6�%d,W�Ѩ8UUU /�@�V#�`�f	E�נ���.��ɔ�Æ
[#w�����?,3��bdH=���M�Tx%��Ⱍ��|�=\�*�
)����)}����8҉\�p�f	�{$�\�]�655ͫ��]�@Xʯ���@^^���'��
�!�Ҝ��qd��aO���,ݾA ��Q�T!�‰��@~�0=������H���5K(�q��P{洴��iL�fc����o2�TSS���������$�Q�F�7�p�套^R��@�m�dJն�X^m*n�5�cH������������|�[+��ȑ#�m�+_љp5K���牷��
?��
6�)--}����U|͢E��c�Z����g�!�ԑw`|l{UlDn�	X�t�A &1_}�T���(��z�������+3�Y���u=��_A�{�Dz�_�m���;�>}�X	�����GVKB�w�m�]���5ae=��ߕ_Op�s�;u��)�T����Y�N5dʼn�86o׮]w��������� �gz��j� �Q�bM���[�W��z�5�w�����+��Q(�	W�DdE�;#%���={��-�cȐ!��_/��i�b��#d*���5kª��@Br��]�$L�5���_�	W�Dd��S_�6��0X����s\z��)SZ��F�T5*��Y�]����a�hNMT|95��-l��,�
Y����@���t뭷������FŚ�5K��k0�aQ�R�xW�~W��DaF�#1
�P5K����F
���,((xX<.����;n�["S1����ն�SqH�	XX�����w�Ô
�W�k�fa�f�&��AV�Q,+W�ڵ���9��o���-JZ,-�Ta@�D嚀5K�T�����21�w�q]��[�ԫ��̈́�Y:#d��Y��@{DeJv�x����	�T�U�	XX�~�3
�Һ��Bo���|"	�f�̐��F�b���O3p���c�5wfk�J4K�R�F`��2
S���!M7R�f��Y�R#T�@���	G��s��Ꮽ��_~�e�D��)��Nm�wĝH��cXL���[TF7���i����~W
�\���zCЉ`5=��ҙ��Ƨ��X���P���}�����?6���}�]+S����ޗ�g��;V��V�m>��k?$�0Wy���8QZyvAc{*}�؈�c���=p���8�W��<_��՟r�B�To?J&�;t�1���L�����g���I���,:v�'[	�{����(E��ij����u㣗���U��{c��K0 5F�*qh�(t�"/ہ/���]����%
�׳y��3�OÞ��D�C�2���&�=ۖ��5��0f�<\=o:k�Q���ٳ5�Ƣo�E��|l(s�k.Bee
R\xk��8��+��g=Vm�G��ؿ*J��H�x���u+�c-F�����'��9�1��{��G�b�����z�b)�	[�}��g����Db�5�w�Z�������]i�{L��L_�j��
�\�b��[~�����?�#�5���?���}�?�6�Ϋ��*���Cj��U�: @�w:���m®M���PZ)�ߺ����	�7���Ⱦ��P�WW5�����ʷ�zon��;(�f-��y'R�ẛnA�D�	x����<w|�2���/��$Xb0e�D�f;�������?X���:� �7zZ*�l�;��?�뇒�۱c�d$:��αY�~�lx��ǜ�X�ӆ���u�:j&zWmBaS:ƻ�׊Oǥ��C�X0w2v|�.^xw�Ϳ�)�ۋ��!��WX_P��3fD�NUM'%%y���He����h����*敾_YYY+��W=�&���,��"d�9?������=a
��<yry�>}�ǟ2e
^�uJ�(�bR��6ڰv!�`8�b
��e�5��r��žzi�^ȩ��� ��t1�M�u�/���/��!�#��F�s��'~1�?�,�G�߿�~�A�	��h�zwRf���A}p`�NzRS�PUv���U��$��Ÿ�P����|�O���f��E�|K�x�їb�X�X�� ��QIL=5:��G�����/���3p�����^��"{�d&���+�0��oC�����.į�����/���I�d���A����"mD���h}I�c����M�"\�Q�&\��U ��d��K������1L�>��W�m�/(����?���E;�wxҔlgV�]�VF]m-�v6�DCZ/ԜމG�;N��"'ō�^|	'�=غ�EH�ѿa;����<f"�e�##5ML�I�"�p�L�X�<��3�Umõ7^�ꂝ��#��P}�D���ȉ��S���-����)�Ux�=�1����=��bK�}$�X���OE��H�3�-<[�0g:��F��w˯�X��3���Xq�\�,���Ʈ
_a�wnƀ���{�8���
*;�,K��m~*k�����'�g�!����GP~�(�)��#�q��q+8��݇�~�F�V}�[�SUU�87�NLz!F��&\���!+�/�����ߌ�����cS�bL��)Y>l'@�g}{ܪX�,YbQW����d�5��8;;��Ek!���/=����p�x&�Z��gMCr,���>�5�B�͂��FMA6[�:b
����;K^�~�)�g��;��g"A5�f�}��wQ�6K��DV�4Y0�yѿ�L��1C��`Q2U:��4,��2Ӕ[7f�t̜8i�q�쟋�3� �]�K"����L�#0��'���XN�&#'7��5a,��">�����k04Վ�>9�IO�#�/;G�U��O���Ԁ-_~����G\�
�?��W�̞
�Y\����PR߀=_�ҒR���Gk��h9�FNFnfjXի��p\\\+Nʖ���g����5��Dl�tf�{�E�˿{�����W���III�֯_��;�;��`�LL�b��e��&ӻNH��K�.�@U��M�����'v#^�5k�]/�k{
Uzd�4�:R��d�ze!>
m����F4%''���o-[�����������iÐV��}õ����Q��(�e`SY%&����[1k���J�	`��\i�ʀ�^[����d�j�c�{،w5KW.��cŸX>>V������
�x��O:r䈛����Eꏕ=d&�� ��|��Ĵ�f&��c&�W�m\�f&�6�^}��]�**Xkˊ�����AfV6��
FNN��Ё��;8��`������0 /�]pի|96�k�Ҷ:�������4
����X�_�;z��KJJ��c_w�u�����8��v:J�J�
��7|�O�l�L+����PM�oevD�Ic&b���1�OH2W#`K�L9���r��`s���%�8����XR�dKQQ��TeW~Y0f4����CVo����c㪪�~.w���;v��_�b�������^��e39}��?��7��{�8L�2{>{�<p�Ey�`��z�\ԭz;����I(?�	_���sg�O��|��X��31�MZ�4nr��ӛ�}�Y��i�|V��'��v�*����SSS���J�O��0tf��Y���۷�������h�������uR*.ڽ{�.\��?�UW]�m۶)*�Kp%S��Cfb#��0�ؐ�k�|'����~�Q�c�n��X���=%XQ{�/���.�3ht�����8�͇؝1�o��my�:,mU�Z��XȱI�zf1~�/s�Y���k�.\y�m���f༟��
~�!C�)S�X6mڤ�|Buh��Tl�s��]��xĻj��H��b��mȚ�}\$��+˿����
����{0ӽ�X�9�ٓp��n�_���ä����_$��ׂ֛�-j=�J�H��B��w	&[����,f�t��
���իWT�?F�&�������Y�̕+��BްaC4�ؐ(ܮ��<�/��<�����`�w��e�eu!�t#Pc�O�	�_�~�n�r�c�6_жz�)��8�L8&_�=�
xnJ�%���c�Y�����@�񙟟��]NNex��R�a}�Ŷ�/�Dۯ���=�K��	��d��>�i�⎻q�������b�`R�8$�e9�9��ΖsG(m����O��k���])܈�s
6��	[���%X��wZ�޵q�^z��+V|Ư[�h�WŒ7?Y��N�P�m=n�4�OU��,���*_ڪ~mG�W�t�)�5rl�<����������PC�s���t%��;��Z��K���FT��xt��~Ⱥ��rr[�0ؖO4*�ܹ���h�Xޣ��^v�
�	�f$�	�.�A�WJD�{���T�I�x���蹷��W��&c�[{��S�~lؼe~+c�{Ob�w��
�\��4-�Y�'���{#��d�����x����+�ƥ7��n-5<L�'����-C��*Fe���������U9��%$%#99	q�ऐ:�
1	�JҘĄ8��N��mRb�z��z���2��mKهe�
�8Z��ĸ��m�€9�)�i�^r�%-��� �@�Ƌ�pȎ	X�t/��U�v֋{��D��?ı�h�~��|�J�Dpc��u����qe��d7�}�I<����H�����Es�c�8sd�ݏuo��z�5�|r&^�_�Fb+�v�]��1�mw�������oh޸�+���P\�<���a�"���c��'?��Ͻ��|�x�Z�q�m�_���p��1��ꎊ}x�ɇ���Bk?X�z`dV�;{|�[x�7���%eشs/
�����c��
��!9$�2�{H?J�l��Be]�1� �n(�iMU��!.�At<�m��Xq����Ŷu5U�R��a`o>��jb�����ڽ�h~~��k�0a�ܯ_?�9���bèbۥ~M���˪�@�+%��ի���@��Sp����O���h�~�/���k��-u�)5�N�ј~�ڻ
���~,/'2������
�5]z#>9\��O����<�=��oz���4
����s&�ɣ0�w*J׼������Ơ������Վ����t
E�z������s��dz��LCWl���]|U��^�-��:B�UPA�X�N���k�u�]���������( H�"�	�! !�����ބ��K%��90�7��s�̼{�w�s�9w��N}+���F�I��w���]À�xi��X~�˖�q眷A��
��
@#���/<�ڷ�sV`�S���'=]��7f!�/O�-�at�9����a�*(>)�@&�@�w�n�yr�;�N���r���pиU��#f8`���:�e�x}Y�9��NOY'�n��|�n��W�Iȯ�����ވ�����p�
Y쥂�����,\♛2�3�@���kKV�in�^Q�Ќ���<��O�a�.�cJ�ye^p��6#c�p��p��>�T!a��$�T�u��<�w����H>�[������Ƀe�֯�/g,P�NUf܏�>��ȁ���'P��\�V�w����P$uMG�`攉�\���1��w��p��O����
t���kՀD���X	��x�_s��#]�?�ƥE$���3��s1�k(���M�h�$��ns�a��DA�b�&�8��v;�<HeR�.���s�-��M��
���힖���S�boXV*jX�M��}e��,�)+ �
�����ᇷs�Ι��?~�x7ѿ,�a�����>�3qk0�����6���)�J�ӸצN�԰��5���n`8�n�kwAȘa���P-V���>x|��&�fb�tPQ����rh��� ��ԣ�҆��p��J��"ֽ��7B7p(�'�3	7'{߅�d��nnTK�چ���F����O��+
=�]Z�vdw�����4��Z٣7t��(t��$��ݹF{uC �B.�����d1�Bi�4�`�L9�	��m�Tgb(�}X�0ۙE�iY9d���W��.keʺ=e)[�\�e�n�0;)���i3��p�Q#Z]]ݍ�|�I��3�q���������%�q8��ݱ�87�4�J�{�ԖĻ^ȃ�岣�$
����ඬdܗ��37e��ݏ�>���w�x��6�n�};`s��a�0�@o���)
��Ơ��i��=p��'Ct;���
j��Elǃ����Y����`;����9�󝖪|���&����R���-�ʣ՘�
�����t�I�P�aŒu�z�,^���.H%�l4`0�9e����&Y�b�v8�vҶ��i����)��
F��t��:� #`��Qg�z��=&a����{�Z}e]�崬Y�Z��W��)+&e����o�\�F=���uV��G��ݻw�7�Mĭ���*fb!�9�(�\h��k#��׷8,�9@��P��6��
�tJD<�����tR
���{�[�tJWh�_�d��'���"H���'����_�J�fR��0��w0��1��͈'�!���,�[��xa���t0��?�����zF�(zͪ��������Z�C�¯�U�o��8�
L��B�z��x-�x������0+���ja7fT��uΫsQ��[�x�|2�Oł7�!MLn�.,�*j�g��M����'��
;���R�J�\d�#�@I~���KdPRӰ]�\@���dw��rr���%횔�M�Q�b1)KچN�,e�t�g�\%Q?3i�:���X��T��1a�W������V����������g�z�'�x{��NT|˗^�(�Ubb��`9f�nlS���}�������i�aڞ(�Rg'f�g�I��&�4{!���@�����j�����B&���&���K�p"��}���brB*����m�.C5�n)�U��:̨�5C�
�\�]�����V��?�r�]{�BZW�rw0b����%E�UG!��F��˷"�K���qU���3UG#>1
�3�ۋi"2���l�נ�. ���z�ˑy0a}����N�Uz8d�dܸ��d�ʕ��[�J$���9��]._*m�$�!:��qJ"훆�ڷ���RV�²|V�T({v���^�IY��F����n[�|�6�3�[��G�-]֥R�<��R�U�ծ�֊���ĺ9�����cS�L��lp��:��Q=\�(�I�O��j�
��m�y�N���T/�$����)�9�*˜g�e��S�N=ľ�fW���;)ku=u����Kt�E�cy! ���
�6w�����(�����ͽ�e�(�mIhN P���.�ڹ����e=@ aK��1�������n�M���O�K��@��7�%)<g��C1�@�6P�d��Q���"t�HM�\ڍ�RKDs�Ν>k֬����ݻw��'�앂,���-�h�`�, �g|��b_,��^K���� 愓�&��'%%!$$�M�jK�'D"�r��Λ7���2�N�����4&��V�`9i߃�����2�0�g��LW�r��d��ؿ�h���I�o�Q�Mc�����G$�]����0:�c����LL,3�H���/G���8��Àv�y�����flℓ�.��ͲV��!S�'�t�&nr|2�d�?�ݹsg�b��^a3�e���'d/�<����9�&N8�D�׌�4�%��&���
4��ԉ�r�I'�ѫ"�rҮA6Pr	F�2�rsM��N8�8�m��ϒԵ��8����}nr��� �^A1��`0��r�<�ʚ�h�q\{`��YW���@�o��gw�Fݜp��ųX&������������^a�*��4:�A�`�صj��� "&
c'������YGP��!"��C�K1�_ϋp7����ض�(z����5���h!O��3�;{p���`h�h�,ff�ĦB�1γ�lظ�Ə�$�v:
�6׍H@�EU�����@̠��raӶߑ:l�*s�1K�QC�=�>�D����p�y��].����z�6�$
�	��>�s;�ҹ�V�D'4h�R�Üp�ɥ-����/4g*&:<�y�]]'�,ݧ�
ۛ�.�-��tP��`��5�
����E�菓��'��D���Y�[��1��H{7	�6/����#Aݾ�y�^�t�;o�� �
����3�\9l0V/]�q�N>z����8n�!*Ā�m+���(��7�O��}"q`�z:����>d�6``F"����^i���ވ��8�/4i�V�[�l�J�.��o�����g��wwRV��������+�>��c8TdE������g7�����3ey�+�<���ӧ[�a�bA���*L,�D)�6h�B!z���l�C�<�	'���=��H{UVV�W0ג}����Ξ=ˣY�ˀ,
��%�h�:��ӧ�q>U"{�_`4��/���g	&’9��('N��e\�FAX��r��{G�?��^�oD��I��H�:�E'�xujw��Ï8\�ư��P~�0Ґ�H�A���\�R�<�I��˜���̃��H��
�;��~��� ���g���� ��}k���#=��#�6�_���.���8�w��ۄ:�|M�mF��=�˯Ea�	���A����݊����!>���7�	�fn���''(F�C��ݛ�?'�2�%��<U��wLG�J�*
����3�T�T���2�\�D��R1DB	����Ğu%��b�,�BN�� K=��&��V)!'׸�ڦ�k���g6j���$
��M�H�3��0f��씈L;��N���8���(��oj�&z{�]ub:t�P}�p
�tc�������O��A�`]����:8�Y��¬?�����Z R��Ƶ����D���Ph�Cm/��M�Є��SHz��sF��~�3jpO�X�1~Y����3nAM^6>�p>N��x�~��"�㛰d�Nd�A�!�,�ú}��Z���ƶ�����iaȫ�"*:�0c�S3p��c����9eǶ Wu��ӎR�����m,�5f�i�{�2)4�9������\�e�
����z%��Ez��Օ����s�!�
N7,�^�R�B���rXhUro@�D�d��@%5)� “\�T!H.FYYj�<����%�Zj�	�r��Kp�aN8�U�#��&f�&a�#���֭[#�ن�a�V�F���t<w�tx�j��$~�D�K�BMQ�z��X����fŮ��/�V�!�����h���:25��Z����(Qw��'B#q��҄!&"-*�F�W��AtR�vϽ���Z+�Cɛ�Srg���2]4n�~�b�$AHMLD����.���ӫ;B���5$(�QV���={ކ�7`@�(�;!�s*�u��)�n$�vAJBta!������y��x���E�鳞Ř�X�朅<D���p"�DT��j��AQ�:���#�����1ߊS�z�Z���\9��L
�ZMWHh:f�`��@�ꈈ�����R�3X&�?��p�z�T6_2�P�`?f��R��O?��9ϲ�>����yX6����^M۠��VӹD9~<����k� ۚlݺ�%Њ�س�(
�����
RB�k�Z�#��@I�������Cn����ѯW
J�尻�˴��������R*FeU5�d@��HDr�&��3�Yc�QM��%T�ꗦc6Z�[���`M���t8p儓+��2:5�t�����캞y�:�$�颫�P��+�0���2�v�`uw7��t�zm��-������	|�j�E�z��'�b�E�ц�G�kR23��.��Gya	\�H�9au��q�Q�)P�j	 ۑ�1����.($H)��,�y��b��X�28q��U�w-L6�ެVk�=4߲�#L�Ķ `�Egp,'
"Q�<zE&��_i��&�A�
Cld,�CBQZR��:�j�
	���'
�H���鳧�����\���7�
���su��C�ӈpv�fd� <1n����q�����s��	'Wh���_Oɠ�����6��B��B:l.�~���#<-1��:���H���/��w�0��ې����$X+�p0�����qp	�Y�Ѕ"5(��Y��p�.�(�5C�����b��j�G��\�B�pY�(.�EPt,R��VC��SԔ�`*���bm`rb>���ο\��r`�	'��M�6�j�؋��������1��~\�
S�����m�a��LX\�j�a������>��r[��#v�㟝�r�p)��p�3A"y���NϜ&_�@X��F;��p�v��W@
>0	+���u<!Bɾ�f���&��H}j�꽈�I%�UH��#�ϕ���SN8��`۔�m�a!!!e����n��*++���m�Gh	�vL�%�1}|��il�
������� }�P|�:<��k�ϵs�[YBO<|���q���_��{�ޔ��DĞ;C"c�N����"k�+�X�0���l''
��1�%��;�	'm��6�����$&&R�
��y�k�p��Ύ	��.�ydO|�׿�焩q�4l_=����p�0��?E+������z��8q��tz��l[�Aܯ_�����S��Fd�)��|UU�F#7��	'�h����L'�lrr�{��݌��'T���뮕t�9؁7߃�}Q�P�sZ:EE���AJ�	I�P��0$G�ȭC�H-�RR!�s��R���Z9��X\&�?ˬ��\�@�ʁ-'��.�ҿ@`rM������6��z������������W�b$�	��;&��q��\�2�����ۦr�r��	'm��6�]���q�-ut�V��r�.@�%e�Y�a��/��ſr���֋\�=���*�]����/�}ԓ�~^ᔉ�rrm@�Zo �JF��6�s�	'�h�`��>
C������
�f/��
������XN�
p����=�9@ZN�pK*��pҺ����@a����L�l*�]�����B��j�.�~nN:
S�`�
�\�+']jj���%1�v�v��X���KLc�]�ӷ�;蹔D�z�yX�؟�b��'T�XN:�b�����8�H�N���lƢMP�N��vy{xw�W��~=�����;�� �B���~���;��$�7L�զ`�9k���y	4�du��1s�{ǜ�W�9�%|T4�߇�mu��V3���3�)��)�z�����|-��rhF'��L6'`9��
kss��8X�D]KU�,'�Z(u�˟Jp�����YV����]�l������2X����?Ē�6�_�8>V��lv3�m%T�sr�C��@��N0��r��I�S��ؘ��m`ˤ�����>��\
�-&T�XN8��o��Wv����u4�Pc0�3z�I��7e�t�.��-	�u�N�}�{�f�	�}���2`�|_y뻄�ku8o�f�|����*�c���Dgݾh�[
		i�w�P�˵\ꅜ���v�\�������Nn��N�"�� ��
Xq��1Qa�]�m��^�_3ς��cF#E#X.w�s�5�?�g}F3N��B�V�p�PTJ�3����5a�G�a@�WA�p��$�hP������} I�s3e'R��w�����4������c+�}�|g����T�1_K�e�9��F���6B!�Y�)w	��q���
�M�6'L'pm��&l�;���{d�Ăoa��k�R�y�%|�'f�g���'�Ϡ�y�
�.-C����F���ݸ����`�)l��s�9XX�27�u�i��b�Y�`�y���O�~E]�]L���TZ�\c�hLV�e�g	 ��}cP@��|�!�)ex~Љ����R������.�$�h/!��Kړ����k����5�1A�ͫEȬF,�W���}�H�3�cآ6��B��c�����]� ��J����^��X�V��rr�X��@���]K�ۯ������۠|k?ޘ$'7i��e�џW!�v|/�����9���e(G!�'�}�Eƫ�]N��d�`��o`|�WM+����+�c�V��8����X��e5V�}�,������f���@ B�X��'���٧�A6��D]��CW�,zy�)���9�xe!fv��k�0B�H
�����C�*Ǟ�a�Z�WI@�8;KDX�-��1��j'x���>q^Z�X�;
z�	�\�~�:�茐2��F�/�M.'��Ͼ
Ưy��B�Q`k����%9^����	��y��+����&p�]�zm��q��䁀�����*1��8<x�8�r���+�xb�R�6��o��_��	�4������Ȣ���R�S)u8��C|c����D�=ںq'p��>p���R�~���!�}��<��������r>�25�Z|�ij82�_X��7�R�=f��P�pz�oXX��^{�v��	�I�z '�qD�� " �M�>�{�pB�ѥ�)#�,/FR�=|�+>T�w'�J�W��w8����lu!�!���2fMh%�*��u�=GVc89oj��$�|,k��B#�&�NרC�g��J8��CH K��xK1�yX��t־��7>��u�'��E�4p��1k���x�?p��@��Bد�ȡx�{�3NK���M���5MX��$"'݋�*>B���*�?e�Z!!�{�YX[������X�ۧM���AT:ͨ���g=��q���%��X�t�q���4?%�6``, T`$�L4U�͇��qɄ���g�I��J�S��:/xz�O	�]��GC0޾��l
�� ��у�9R���S���TC�nd"�j�m�+�XN:�P�D|�A�FʓުӘ��`�J�*X��n%�����5�����M�+�{���;G��yY_
��֨�~=bQ�l���GE�
� �OkJ�f$h{u8a%�D�C�9��"�y90��wK�p��\�p
�D+i+K7�U���A������B>�,��\��Qz�Wo\��	p$�4(($@�xA�b�#��/ې�5;�xn����oV5fP�X��z6Wc�B�h���ܘ������%e�(�r���J�N��#t8J��*�'���Ov��O�B�މ8�m1�Ƥ���@��剦/>w!��1�<�������sK?��x��'0y��X��{x�"��Xk��x0E��
�PsZ�&ߕ�G�{��Qص:�~���:�>S���5��&r�ϪN*@bW��U8'F�$��F*lz/p�[�+��J�ҥ�	�
O��T��D�Ey˚�*���0��EX�ڎr��nƒ�ISV�s- vY��B��h2�y﫥�`��?�R���� �>}����ƿ�&hn#2->>^p�Y��6���M�i�77��<�����.�=7��$�J�dMM�����BM���"v�햩����v&�ARW��ӧQ%Iƽ�=���	
��a@j
��C�gn��?\��tH:��>�O�DDpT���wC�¯]C1`��H1�TA�AI��
a1]p��Xd��Ʈ7�W�A
i���
=�������U4�U<5>ɓ�U��=������]��Ry�ڟ�ԉ6�Jj�Jr��-#���V
mH	%��Ի��Ef�I!���e���L�?���㝈�yR.2!��{�
�?-څ�l%8l�1�|��� *�5��0F���h����>7���F�H�<�������b�W���8n�DBu�Mu��� 4��c� �'��dW�߀�x�bA���B�M䷉�y�E#G��0xP�}a
���rY��b���d`̐^
�Y�Ja��:ȯ2">4�_jđ�ѣ{Odo_�U�g0j���7�.<�g;*�	���]}t��0㦑��:d�A��} ,�#u�@�H�Q��7�����so��]8|� "��#�6�
��ݣs�<���(,�J�(�Cu�+o��?�V��Ö��{��*�ѿ��p�30��OZ�B�NڊPL�9�B�fxͺ�H}��7f�U���A���K{v�jXee�z,[��w]���]�<�1�2�=��K���%�w�>�t߁����
:���J̜9�����Y�.ѭT*]�Op�t��˘���r�K��z���8X�l{����cƪ�C]x�
6�_��T�.��8�[�#�Wagu���c�O����C���ao%�|�n��O��Bh�̘<��
��fc��(9���.������6<��]�Q���c���Ġ��f��1���Ъ�p`�v��0�W(�/��N]�w�)C�A�	�� ��P�F��EbL(Nd�2)����b�H$KZ�ş"�W1 {~+�Bj��=&̀z�$�CU���Db%z�(`L�$��}92�I�s�X]�_�2?:�$
����0���1�}2��)���2'�t(��>�ȌCM~�X%�������]lò��&�i��aumGo��A�]H8$a��D�z� YT��,��)�ӻ7�d�1斩��؅eG���_4��9*��JJF��m؜:��p�u�1���펗05=�/>Ú��"9�z�JE��,t9�8�=N��z������#�?�A���@�8��8�/����I�8�;��g�ӭQWZ��TB	��q2��y�iq�C"����Ȥ��ȭ�F���j=R����3��'qǍ���%ؼ}��ZQ@�	�=�H{h<ԭ�<)�Q�˕d{�f�@̕�`Ɉ�X���5aN8�Mw�Mr�z�e�Q'C+�)�k-t�υ��Z��ģ<;�u��`��5(��#L)B��BDb�K�Qk���tf�;`�������S�������������p��1��s`�З���K�SWM��a�٩w
V+�����r��ST�^��aݗ��|����r=���2��1?�Z����P�5�K��Q�~��m�n��y�X��<!�%��;o��CK��	™B����i����`j�[	g�f�.����h��(�Fc5�Ka5�"��ƚJr�U0���s���9/bN8����:QS��m�����B�,�d_����s	Aܯ\.�K��`e:n(�ۇ�^#1yt������ס_�'�
w�(t�� )��ໝ����٨�Ɂ��d���'��kr�L��/�ǯ��.����# 5Ub�<a�nT#� �,��һ�/���a*(B��P@�[~
�4��D�CG�[��]�&�|M
f�z��@w��wKh03�z�����C������G���6�ܥA��N�18	�U�m2C���F{,B��
�QZP���I�ܻ���9ȅb�!�U[��U�.W��DBa(=s�n@rR+�9�Ij�r(��2�c�mߒz�JE�~�Y��.Ͼ�I�S��8�pP+��	����?1�we��TU[r��NN�*�b�<R���Aſ�
�����u�y��m�X�z-��bİ>8u�x�=T���ΰ)FT�$�;xq��Y^���8���|��b?�k޹����y�#��h[���D�#�ɉ~2s���'�]�8�w�~��^SS�G��'�w�>���׃l���1�uM�2�ꪓz���ɉ:;i�Z�5tr��`/I�<0�{���

�Pc�R-�����T�"�p��K�Mz
œ��
��\-2�U���g�p�ɕd�����D�s �/����,��|,��_�^�����Z�7-��9밢�N'����]dg'jj�3۸PTX���u8�{r�ǠOr:�u�DMy9*�k`�5��Z�j}-j��Pk�CMuu��2�����Ѱ����7x�bN8i�r�c�s��c2Xs5V}�!�+D���ã7EޙӈJL��X�BM����ƶ�
̸�&��$��:�/���Юx`�}��� �܎nɝ��#�b������R�QRR�"�*)�	D���1!6��N�
���
�T	A�`�E�
_&�nHO���
��\��UZ��mS@۔�r�N�/������l6�X�M*x�XU��8Gj�a�
Cqp��b�J$�i�?m����dcӆ#�4�F�)���W�#l��xxX",EG��.n�q4������~����Ϛ1}�$�w���r�x��/��'���Gt>�լT*�wG�s�y�t^�
�V�H$�l��ږ0�@�q�	'mV�Ӣ��;+�ʡ
����,Z�ؑ�!.T�Q�c�7a���Xl�H�y���(s0vhd��?�k
;����b��"v�4lY�#�\�w�o��=TJS1u��H	V��[=Ez����e�M99�;<1��*�\9��0\ҿX���~�-Թ�c��,�v��3ܙ0v(����ۑ�c+&�|
�uGp�H��U� �s
��DbjFw|��ߐ9�FL�>�[�㟯�1r�X�U`�뀼�xu�#��A��R����u��9>�U����:�Y�d��b��N�-h^��s�l[���`�{a�ɞ��ẃn�:����9O��Ɗ"8�:<xa�|/�:��l�i��=���`l:e�ȑ}QSVmX$�P�1c���٣Pq앲V�r%�%�f�4M#cvf�&�g�s��	'dk��mw�ŎK��
D�11�<d����"$���٧��.Ǣ�o_���y�=�JE��b�c�v�a%eL�l��Nڟ^3�k2�o�F���$��V�8N:�J�H�Hp��	'j�\Ո��ԴY����v'��(X�s��9�儓��T��U�����VWW7�ڊ����*�]���`�^�M�(��p�&�jS���Dl6�y4��I���o��8��]w�%�.�`�b��r�I�ڦ�KD���
��)���!V���D�9��C��@�z��)��pҾ-;��0�b�r����,tY�4��XN8a���,;.6Ш�B�=�p�I�gS�M1X�P�모��/��
�"��z8��C0�@���6�Ȝp�I�a����lt)�F����E�3K�]Miwq�L��+�5�=�����dke��K�,��@�3@��&愓k�b��?�-��d6p5��.�V�Kյ��t�-����h4r-�������#Z�Ѱ�t�̀�B�'��r�I�觚��<�����
�L��<��`�''��A�n��T�	&]bss��r�ɵ���Ş������M?7�I����JVM����N��655D�-�6�b��rҮ,M��2[S���%
�	'������Ot�����7�d�2b`[M�9������?�^
��Npҡ��-7����`���@���Ď�m
�ڜp��rҦA����0X/`:�nΓ�c���w���A��s�EmT������󼳢��������t��57>|{�غ�:���a��N&D��L\Vg�,'�|�0�O��ߓ�YU�B��\�'�]�%uȚ��`�xmp�袘�ml��.8���w�@K?�"�Q<|{�Dn.�m���VH0q��a��P"�r�.�z���:K�]|�*����z#\��g)�Z��Qc�7��l+�#I ��	'�Vk��MJF�	'�E"!ԑ:(��6i.��'�:�\6����>KV���+''�ͮ�H������BC1֮]����<��H$�L"�<$��=&K $�<��j�d"Ϗ*� !eQ_V�DB ���X�)+!��_,�Jdn݀�O�)Q@C�+�bR��}"	4;6��������H��9��Z
�1!9�ۜ�"��t<i���_����W�l��dZEf ��wpjkq�`�*5�l�?��?�K��B���oGI�	J~B�r��&�&�!5t�:,[�����gC)K�T ��|���A�րWz�~�	�����P�����oa�����߶�j�ĺ�˰�D!��R�2)a�uX�[�Q�D,Fy)~�
2B69�Pc%����щئ�Up�N�t(hu7�<0����f���[�x��s��������C�9F6���fm,���˸������3g�TZƃX.�_��m
ů��ݛ��1Ĩ�{o�
�ǰt�xح6T�:�,DV��}��x��%p�m��ԨP����6��tc�/Kq�̆��@�����a���x�Q��?����6�/`,��+W#������J<��?0�o�b�1��r�G��<��Ð�r"sշ�e�Q%�c��&����P�r+3g�NH�u�p50��9Xf���^�i�Հ�Z3� �d���M^�Q�eߒ�<#�e���z|���܎d�-�����M�y�Tt
DE.�&M5�0� -�K�xx6+���'�^#m��WmY�Y<2g,�W[�j~��G���l[ Z�����z1�g�2��b_(�J !GI���r��'"�U�8J��eD���M��/&W�I�@��w�z@u��#�<�uT�i'��<ۢ�h���P�������^�"��Ù���{����M�u��s��Ԯ��~V�1�F�ߏL�����n��/k�c��d����K`��
8Q�ƴi��ाpja�%��As�+��#߮¨�����B��;V,ƦC���LE\X��,ü��#(*���yՐȥJ�H/t��j�g�<���My_I���fc̘�����i���;ah6}�>]��V��Z��V��2�ղ�=�zu.��r��`h�P��gX^T��3N�Dg�`��Q�wϫ����ʋ�I�.x�f܋f݁;��L-�֊��/|/%��W0s�'��vx)�1
�Ϟ�)w݇7��7Yc��x�ͨ�:$&�_�9V'j��IO@��H�j�������尚��͉M�s�I`��`�Xyn3vU��vѲ&�q|}b��"(y����s;�:w;j �S�����ӿaѹ���H �3{gbϳp�/�
��?Svvv����q�`�n����%I��z!��UH��a��p����<����8�'L&�G,A]uv�.%�
�u�1c����_@�<��N��Q��s8X\�^:��%�t�㱧���o�CG@~QV	�z�~<u�}8�t�=t=�ziti!%�INF�E�(Ҁ�6=[I(��k�t1��,T/���e/�.|��aXv�G�A�x�b%��'B�Jl�~+4c&"��G<�7���0����"|��R�ړ��?�8���̚��p��ނ��	9�~N���r5Nn_��<��Lt��F�.=~7/z�ҵX�vv�}���������yr�� 5-JO�`�_�/e��"-5���y����<�}���ߋ�7vr6�?-C��7���)�x�+|��|=㓜8r�:�k�l�KW�Y�w�ĭ=B���ĎF�5���P5F&J����9��s�T�[�N�����K1��� ��oO���{`�vs[��KvC��<��u��su(�Fi���*¯�`�9�0�����SU��ds��z���SIn=�j�*,��#�!��@�1�s�P�R�do��e�Hً���$�6h�|��
��w¬�';G��z&��Rm���4L� (��볱�(�mi3�2���c`�##z4z��	%8V�	Gx*(���O�6��X'ȾX!��XYYY���Ϳv�v�a��1���7?���k�u�1�z�oh���o���w����G:_�����;p8�-�w<��n������_z?���B�n��3j2�v��ϋV�NF]r	�������3�}�N��>]ñ��n��BLWA:����p�$����(��B)�����̖��)�����ks1��"rj�4`�
8T� ��J�����a�*Ê��ldaZ8�C��w(R� ���O����� o高��&�w�����ח����^�Կ·�Sg(w���U����x͟'�`��p����Hؼ�|�i�'���;��g�H�pz�#��,�ǩp�8Wf��U�Z�@�R�΃��wR0A�x���&�+Rj���Y��{䓍7ރ�o�;'#�<��q�E��l�#z�D�e����$~�!��%�y�r3ʄ:ī��i�я���{�$��~��6�Z�!Nv{?����`�6��t(^�y�G�:w��y���E���B�	�^�DZ� }�\X��G��A������5(�ԎzL!_���	��i���ҽ�PW��5�( �M�P����Ҋq���إ&�0��$�4�y�[ʍ��E!U����C(��!#-�{IY�2
C5��t:PG����N25��1�ڭ�4�Ms�C�%��@/m4�N�7d���W��!����ٳg����f~��0�`5 ��Ks�d2y���")�����L"��2s��ɨ̈́�fVa�"��g1L_�L�[f?�q�:�H��`ω:��Ͼ��.0�_��XW��#Q�{��2�9�PPs�{�&��b�=/̼�t(V���9Y!{3^4V���
+,�+0���h�;t.�qV
4�1\6�щY��,�r�B�Cޱ5��g�⺧уt�&I��u>œ ,&z���T�t��w�@�UH�A0��iC�B���:�f~���'C�p�"ly�z��c�2l6f�e,]�����A���A����=��w��4�A�;��Mgŏ+w#���⭱0Gdᛅ�
eX�d?ƾ�O�S�F��M�H����n�;#��Ȉ6��%v�ތ̧f��7�踉�僚��F�
T��I�SR#����	�ڌ��
`,.D��"���L�M��H޿��q)H�1�=U����
�9V.Aj�t��
����`��1^y�p}FN�˜�c�J
�N��S���>7�^�/ܦ��0tɯxꕮ��0�����~�e�!�Q"�E��R��A&�a�̌޺���$)��Gr�u!�R�?�2w(FE�"��~�R�z�8�T+���?B��	q�d<�J�atdg��Ob��NFj��s�qd�Ud1#����*���)>�81R)lc=���q�D�G<>%��Μ9�@'�M�������ӵp�z����D��|�<AYo��(ӎV�wB@:7�I��Z�9av���6<7Lf)�&#A+x�<�2O�p-V��N��{��DX��	�C�{y�tA�גa���|�@@ju9A}��|Wv�f���un�7Svd٠z%L�UEN�E,�;���q��0k�X|FX����>��U�iw�k�;�bf��L���e&%b�B���b$JI�Ri���9�;Ci�A.W@�ۨ���p�L!�<��2wao����~�����'���V=�H�D��l56�tZ�h0t�a!���sM�ژh��PD��q�ZϢ�IH"��S%D/RY.E�;�����!��n}��B���b��&�N�����{�&���9ᇱ��Qdu ���C�����<��:���0�T¥�@���Ad'p�<���ć�ۛf�G�� ��g�"
��h�Q¡Q���0m<��m� �`U���PRs��E��G �t[Ja8�ƎA���o���}�a9I�I/Ug#�R��� ��%aL�����B�1G�H?K޳���0>*��+���̿���B�p�@,r�Ͽ�_�%�W�(߁L�
Y��>]��|��?Ka�5s{2����E}���ˡy�f}`�������0c�{��{=\�p��5�D��J$���6�s�+��^yyH7j� ��)�)�p4w/6���\�e+�C�$�Q�Qd��-""c�#;��4�$�<L��_}�"����9�dS�`�3�i��K�u3�R�v~�yxa�x��G��{�!e�GXW���`�7ߣ�j��%�aqq
��:a`X%~�r�g�mբ�8|��`�R��Yر/�m��5?`{罟c�h�>0�U�+挊ª���0Ք"�l���ؘY�I߉����{�J〩�槔�!;{�f�ք��}*T���9?�F�A����8W�[3� �Op�ƈ�/��~[*�'�i��B9�߰����ߏ�?G�1,X|c��'�Y���j��7$}��Y2z�tGge��cXx4̆d�eک?��2�XjɀN�(y0iF�Sv��bd�K G�5�E��
UT'�RDIu��i�S�3!�P�j�wRi�����0\�U�I9R~u�H�P�`���q7�u�g�2�r���;v��_���S��L�>�C�l�l��6"������s�O� ����x3N.~ 徠	�(�������x01���Z����9:w���͉�`���[v��O���˃�ż))�w��x^�W���邔�t�GG �v_�9��al�М\����
]�$L�i4$����O����T�}�K��Ď�����.�p�o�?}8b���;�����¼�G $8a)��+�C��]cQ��똻3��Z$&�e�(�'>�>�Y���h��0db���_!H���,uwL�1
�l���y�e[%F��&��kp1�G#�j'���w���Zl1t”I�h܋�,G�Y��nZ��n�ņ��s�Dt��RB:����Q~��۩CD���]��y�{�q�z��}�î��qC��o��
VUE�^`*���2n�6�F`积c�O��0�Uu6��G�)���x*ϕ�|�Y���a�J�g]v�˃�'@�4�"�����Rp���.��X
�>A��'4R�}#� A���]�m�`G�9H������4�NEߐN�ؕȈ�X����ݹ(vaXX/D�]�98QY�P�)7n7�8���)���%�|�zL�|xZlG�>��걛�'L��5X:
�R����b�&��k��ɮ
,,^�X������o�mb�Fn�ȑ#E���K��|Ol+��2ǘ��Z��j��������<���f�X�(��2Jҹ\
����5�&�T!��6˪*.�(4
*�IN�Ó��c̬*F�@���|uI	\�P��:K�!����g�����M��Zd�4+����>�ٰ��dr@.'���fDG�x:<+��3<qԢ�܁��`��T���sT�Rz�֗�V�M��V�^�I���A+�&��(ȃ0"Z��Q�s~ku)��*�ɛ���PR���� kd��\UX�� H�ĜC�O[5�*��H����3�=�C�!	[��C8��F(tJ����h�7H�Z�d��y��]f�Z��I��
��:�
ڸ���#@M�x��佋)�@�v�J�RXe=SR��n@i(:�p�&�
.���x��T���To`��\�$�<!����7����O�X��I�Ѹ���(�}w�'�h&D�r��k�9.����ڑ@6��4���2RK�6��Mz7�`p�s�ȔA�-��*2�|I�y5�E6���ED4�3<&�+?�"h��w�\�����y
�L�\==���+���"&�̾KUXTx;m8b�aHL�Q<�@�#х7���"R#"F��G7|t���L�#��~E|ڱ�x�F�t�f��OA�r�͓f+��������d��I�E� ��1�64LVQ_����P��I>avzA��&�I�%�3̾;�<�s��#Q��?Off&M��bXi�m$���r��5
7���+uh�X�����7��Wn�Nڣ�X�
���ƖZ�蜮�I��Pg�����6R��&�`��<�} ��oL��_������Wq���a����+�?8��4'�?�c��cL�(_�8XN8�&`�p�Zm&��mt�V�q�
:t�����霞��4��a�N>�_�޽{��a��N����儓�X66�C��t.�-�\JYlK���c���Y�
�K��L%�1Ŷ�^�t�|���@ջy�۝vH��F�u׮]����0�N��B9��������t�,6�Rob�L�v�j�ԉ�pr5$�Wb�����?�[טE9�4/a�t:��b��R�V�׷cǎz�?���˘��o��,g��s�������MC��2�M��X�:�9XNڋ(d���kC:��yp�6��3�K�	ydi�S���3�P\dL�}�w��?
�lpe���\�륂��C,���
�g@�
{9:�М����;=�/o�ns�r�I��a�����D��b�M���&ⶐ�],�hgy��9fzm��B��V^��?�e�ā�mΓ�N8i��韝��%�����m!<��3��J`�l�Y����EΧ�t��14�퇂.��e��p�wz✝8���3����e��j���<�<{���5����}\��
p�k��ga������}���/*���sS�ŗ���N8�
l��=�H�[�l�x�漇��y���w�UTi�Ͻ�=!�� �
�(���uյ������Zvm�k]]]{�"��@@	��{����m�w2'���r�ͽ�9�3��ܙ3���=�yO/����ՐU� �)X
��m2��Q͜'�x�[�U�N�����Q���~��aX�zl��U��>f����d9Ty��{����c�@:v0ڵk��g��W�n�\�/6,O!���y-k��
a�����t�j�X�x�I��0��t��[������e˖}_�
.�Epo��4_h�'�|XG�E]]�dr
�Ǭ����׶�L����K�E�d��O<9�>���W�Y�D��D����U�,�W���f���C�aw*):�?��Oi�ƌ���Xw�uv��4��v���L̙3�݋X�_ϳX��{�ā�Z��}����]�W���_-���Ήz�B�R�&b�|�"�ݦ�)?g������z��J�{ݺu�m��&�x��3�j��M߾}h���<9��Rם^�`)�%
����=;�����u��aiBiM�#��h�##-�����p�Y�i�HeV��]���ld$����^|�?�MvTs4$�<�=J����WrI0�Mm�m� ����D�A�چ�،�Mv�MXܓڴ�:2c+竤���
Ç��]1�MYjժ6s��{�]��J�_��I�%���:�Wg�M�h��
��������柾�f��2�zm@#[�PV����zl,*±ڶ~���Z,~�	\wۭ�j�.iݎ�[��`�TW�e�X�������X}[��W⑇���}��X�&���M��/�x��ױ�>-l�/����ak��]{PY���
��]
u�)����`&���ևG��y��D����z��ƶ3I3G��#���JQ8�&�m��'�H�%�i���ػw�SOb��ȹ�婷�U��W�nmvv�/�|�,Y"�W?87����
֎G����
���s!r��D����b������|�2��U���_p�nBfB&���4l�᪳N��o��y�1pƅ��{
@�㦡�h1�Y��.����1���������x�q����7	�;~¢�?b���S�w��l9���Z��IS��F#4m�T0����" X����@\t��8.&Z�j=�N��a�
G[�`P
GKSZ��y��kPF��:d}�嗸���u�`��b�*�'����L�����G�ז-[�m۶��W�j���ޏ�ˑ�z���Ǡ�gcr�s^����	��R��ǟ��N�9��#Ũ�싿��dXK���mo�( *:N��l�b���F�8�L��_x[�F㼓��ˮENR4�^4�Ñ;��ܼqŷ�x.��X��3��gc���a~�y����y����^�Sbzԝ7��`�M����B��Ͱ����@�ԫ�jA���Tj�ư��� �*��������񪩅)M�,���o݃���$�wL�7oƾ}��n�52���So����u}nn�rm�T�U�WeR�W=�&�'��P���K��d�U�`�)�Ah���
k���srɔ$SZ	�����B��F�|7�)��LƳ�=�`�ȁ�i�J\r��=�[*��ջL�2*�g��i���]w╏�bȤ��:���CL�u"�a�y"j����cڙg"?!/=�Λ�>M�k+�(�@��I)�JKT"I�����w,S�f�sXbI�J��a��3(S�kS��d�ܾ�Љwm��/tk��剧�
[/�^����~�Y�F7�%g�5�}_�N=�D��Y�NGt�	��u�B<��I���`�ޣ�2
fk�tE��hd�K����m{G�O�]�'�O�������1���p�Y硹���d��'	���[x��!;�'l�C�ѣqi��9l����0����<-%�з���
Ř�J�Q>��`X����.ArNEjW5�*-�,aXd�[,�4϶�z�$H���.�ђ��Ԯ����y��{�]G*�"9��֭[�s�N:�� JjS�Zs�'�z�zՃ�TU�srrVh�7o��:�K8�p׻kBbB\�5m>�}0j�������d��1���v䉧t�6�O��?�`D��yc'#O�"�'��y3�J��,��L�đԧG���yy��O�=`��L�p�x�Z�վ��U�4
��NB;p�Q"�'�:���[x��G;��H;z���'�UV#%�X����|),"�W��Q`	u
"�&���@p`"�U$���=R�]Q뾨u���ZK�oذ'NT:�w�Zͪ��ꕧުb��o��T�����6�?��0,��z�&�&�lK�e&���{���k�z���F��Qu��D��l���G�2�,����So�������&bM�			�i�ݴiUjCA�z�/,O>����UH�
��v�vxu�崴4)򓞩بێV]s�����^�Ա�UF礧��h�~��w��^���!�^;��C%��k*�yu���d�IX�E��>�3���+<���uWͷs���m~˗/7�Εz���,���0�M����y�DI/���F�q�	i�uG��y�'@�ۀ41��X\\\����6��J�z��_���W<�`K���s�ʄ��\���$��r�����j՛4����k�^�h�PSSӮ^�b�z����<�X���b����|"==]*H�ͻ�G[8q���puG�865���w�,))�y�R�g1��^��n9`{h��vV�F�b���a���ܩf�Y���<�H�*���I�߆ʱ�Ɍ��bm�����H�\��U1
X���m���^�b�`K�Q�&,�V]phw�lP�
8x�(5�k�+ǁ�ch�W��� Z���rrr�j�$Ǧ��׋ZӰv��PV��x7��P)�}}�F�9@هT,�T�-��>��7V���T�;UE��[P�–�q��Wb|�������2r$Ҥjo5���!yH��}���vXp��"��=�|P��7_�q�:�m����^�)�!s[~x��R��q����!kr�<8�����\kG޸3p�y��kv���ۅ�8.�ݯ���cq8sƉ�:Y���o��M�Q�N�EKm��F�?\��n�1l�R������������Q�UșS��[Se�����			w1�ڡ݅<�]96i�{U'?�{��g1W�<�E��l���RhSdd��d��v�*����<�G_�1��n�7���`pm�BYY5lR�eEMy�4�PK�j<���ԛ_bgI9�~�w��/xfq!���aW[��p�*l����M�4���E?c���N�lپ|�����y\v��xh���9j`m���c���\2��;�c�nT	�HM��	���G<������¦=ʱ���*���L�4����u
>�݊��&�_U�c�l}c5���߯فe��Էе7b���(>�^|��9�;�;T��-��E�U�9*ɵ�����#"�
 R��,[�CbÁ��Q�+��q�p	��-�=>�����6��{N�]MM����dR�sT/+����<z}7�<��3�
ڡ=ϥK����ޮ��DImV�{��ջt\�`y�*�(ޱ�Ʈ�(��b�c�R�
>A��:��6E�����V�y�,�_��uS���,��<�������4�^�埈��\i*��[��d!��BC�V4l܀勿DŽa��P����a5G�b{
>�o�86�rޯOFvr=�[�S}O�1��|c2#�H��j,Ģ
f\��C��z!g�	v͛?ǝ7>���f`b�2�G>�l۞Oq�e��e�Y[��i�	P��?aK�r�L�4 �s�X�xq]9��y�����kT�z���0�OX�¥��{������u���œ%��oƀ}��|��l���Q�e+���c��\S0I%)h�8�\�GV�X�ݻ�p�ø��`Ǟ���م�ar�a���x�/�A�7��蛰���ƍ��O���
سy���qܠ<�2��{T	���dUQ+PO��V��91iիv�a~~���i �7�|SR�z�M�n9�z��9|�u����;��u�Q��}ܝ�ˊ�X����~&l~�︵�3T�ޅ���-)�5���UQ��Vm�D��O���0��gq	�>ge��F4����9��������o�iw>��˟Gui	��a�{��wo���^����X�����i"RH�}�;�f��]�W�����Ԃ�{+Nz;��EO��Ǘ�H��������Ş�N�O���o�TB=�I�ę8ej!���Y���7�6<�"
����̣�1��?⩑K��8��]���q�uw|&�9�f����a;�-n��5|z��Kz4~Y��W��'ND?l��L�{��lV��
^��!�4�J�5�ـ~��;�������[�N�>�N�4i>��Xq�3���Ps:��j�kJq©��W�,!t�q�yw�72���qs�����;��aJ�>�l{Ħ��Dљc��^����77��7���N�F��0�<�O;/C�^�N=��d�y�""��T��ێګ��ށԂɸ�p�5���y���&�m�&��
�9R�k���ڬ�W��VZ��h3���כcq�9�IKIg��R��Ԍ�l\z�R;m\�Hd�M�PS06ò2�c,�zV}��ߞ�ek�����!C/��Sp�E��67�\�cU��ؔ�kfOfk͘|��J
G�(��h�Y`�k[,,܋��gA0��9�>�7�LѢfFӰpM��R�s��}�|�~�bl��A�4�zȉ��"W���-;���%eaxf�)�`۲��T~�9�@��Wbj;��)���4����?��Ė�fg+,5!�-zQ�v�G��^ �g��UBj��p�BTVV����݀�
��خ'jO��"�
!��[c�w�NЖ�ղ�J��h/Pږ[��A|<��:@K��)�Ct�x�j�;dN6�y��q�g�qQz6�K�'

��}�vĚٱl���"��7�u5��I�Fd�`����q��58�ToAd��c&�ڈ���1"z��z%�l���'��h)�M�ǚ����X����N��[Q���>��(�������(m�B�� ��XQ�F���r�Q�v=�;�M[�mw�^����qn\+�y�
��k~}B[���X�;��u؅k����6jf��0��f�ْ�����Y�����L�y���2F]A؂��jq��g�����q�-���������@���T���h�e�0K5v�A�<$��8�{��<�3������ �O��ڄ���o�ƾ����@|�t����xcv�����'���1U/!���7�	�u��Z4X'v���e�J�.�������캎�/�%zx{��,��1<����Ʀ��xjr"���g�
g�n^��}Q(h&G�lL�sO^�;��{��M�	�/���������
�w=
���
�`�Ɖaf�).����3bS5�*G�Υn��Xwv��ڌ�c���pŷ�ᥫ~��rn��C����Ѩ�J����k\�{�]��U;PU9�c��1%�	���H�׃��Uw⢢G1���0�zO�
sO�T����~��aL�x
f�EU�9x�Q�9����c��C	p-�(>p�6�����������G�����M8v��g�����q����Ko��I�y'ⲛ���o�}�h��<=cN}y
~�iN�=�
�p��|�c�Xj�ލ����{_��N�BK�F��Κ���r
�~�%,���|j���G�b��w㲨��P9�J�}\
��8�p<�n*V|�o�㴫�ĉّ[���{���L�zeu�J�|����"P;�\LfgK����̾"@�3 �=N�`,����m����Ҷ�[��6Q��&�f�%`���(���t���(��S���d^��,��M�oa�����9��w����@ѡ6%�`�2b�y��g������CSi5�_��n���c������N@����1L��z��<����ȱqޤ~8p��/�\0F�1)y7v�&G����'��
�I��P��Spڅ`x�⦔�1�#;�/ƟtN�c��8�?��S�""�/���Č<�d�lo�~;c,�����Y���Sf"�V��@�3�Νǁ������3�4t2��ٗ�BRK-��S0j��0v<N�:
u{ �p�ugaPB��S0|�x�8,���X��~rl5SclA��$,F�äa�H�$�;��1)���5#k��8a@
��\w�%L�Ec�	Hde�Ȃ��9LARc-����̄������f��Ĵ;9)iߧ��IH-��
	�10�o��:6����rj�>�'����G�ί��G{q�?¬�2������'��w_�����&²�5<�7��*O2W30^�@�ɕ��^���+��ihH��Xő���y`��c���,̛7�lU-4�4S�f�P�����i�µ�/��0��؎���K~��眇��d��<�EU�x�OX�z��:#s���_��<��
�œG�4�e&�-b��]>H�Ԁ�d���)��m���T5��){l�F��d;�ˀu��Al��a30b�ڗ̚�!�N�`_�XQGa˓(��,�!��4�]��`
;
�^d��v�c��D�?M�y�(Rz�f�xr��k�Ij����}�^��n(Ě�7#�Va����|�8�O<�V$L�峦"�����vL�}!2���0�1a�󞙏��i�xbV~�-Cq�'!w�{xksͼ�~��s�����s�X�s�Υq^�L	�qqq#Ӱ�����3l���GQ�7SG��ݍ�w�p��\�Y�%���e��o��Jk���x�o��'
��hٿ/�>ǎ���_b�����r<��<����}x��y�d�J|���%���֭R�j�O���g����Q(j�a:����rC0�s�@3�6��[�3�
�`���(e�`��=a�9L!]��b^��!��V&ե^;�:�ɱ�4���XMg�s���K+X[PZ��d`jT
�lhAbf�N8f������i�0@��3����aD�M���]�Ű�L�w:0�ƫ1��!���@��q�I�V���qۅ�������|v��%<��%�0A��J�7ͫM�T�3��iا�����gN�!+�-""��1y�8D�*�q�Rl�p�
���p���]>�~5F\p�<�P����÷�|k�hD�_�/�c�X��T�:�
GZq�e�!s[��e�����$쨏@vc3��Z�֧�b�.�P�r����`rۅݾS�
h:T2��u�v�%�HVo97�S�a��Z�
�U�����X�
�������6���t�"��r��Hgўx�ɓT�Rˀ���Q��ΨGf�	�'�Az��Z[��BD���k�)�����LpX`�[������>�l�HX�v�M8�彠=.)�9s�Gk��k��p�.Ca��G��L�8�7gCظo��1��
�ل�~�
$!#�7�������>�O�}�a��+�#<C
����U�(=vMb�ʇPW�=�(�:�b�'��X�j55�
�V��@#�t����e`�`�-e�MMa�ŵ�ÚF6�`��od f,*eJ��@����bŋ�WP5�,T�A�� 9�J�Y�ښ��h���[:DzR&g�۩P ���}�y�Jj*ۇO^�a�.|�el��q`�^�^�ab9�V��������Q/���nⰷ�S��u� vzI_|�E�����K�b��k8MýD��[��˅�͞�ٗ�����j�&�A�G�w�`D���b���i�^��7^�����^��"~�K��W��v�j�'NF^�a<�Ƨ���[0n�>���C��U�Z��d`�q6��@B:i��[�`���>������z7&��ZR���2������=�׎j��!�)�4zL6?(W�O�@e�[*B�|,���q7���Y}1�E���n)ж6Y���A�G�"�Uش
��Y��M#NDŽ�M�;�$�Wbwܩ8{�I25��Ԡ��
���*T�5H��FTW�"ւ��j�Z��f��ՠ<�B�%)������䴾`�aÆ
d�vWgp
��p�իT��T''���>l��S�<	��^�V��p����b��,���"�T��ӎv�]i;|�!��/Q\��I�#�9;	�8�**;��sP~&̶r,�l6V�"}��y֩ȉ�����Ɂ�<�;��uf{EH�_;�Oڤ��D���vŀ����E}�hLN�w�	����L;3�G�q�2�nL�ԑCa;��7�b��ш�Wc�3��"6�Fiˆ�Y�R�����gx˖-ƒ>���t�!����4��U�
����XI���nL��f��5Uo{�tw}�#X����lF�w1��^ɖ��e�n݃���}�mX�4SFb�U(�4��E��\��[�!m��ȕ�V{0�+�:"O;M�֔�)����q���������u�yH�=�xrY�N”!m=��Ən�`�bƏ���5p*��&a����t92�#Cf���1d��""�Ӄ+95=���઴��3�z����҄��.'3
�G�b7���f}�Pge��ľj�ڣ=	��*��w���aV,56��S��?�6n���ێ�$�y�x��bs3�?�>��ώ&�$DJ�n��a��z���x�k�{~��%����?@�#	�Ԥ�_�<����Ǔ{�*w�tՎ����To���Q{����g��w$��ujR��a�kW�Ɂ���L�<u9�3�$�l�����\(oO�AU�(��Og�I.�����Yń'�5m�0i|���r�h�x�c��{���NÎ�o����3>�3�̰$��|x9��#~��"ܑy:s6�:f*�>-��\�����k'{6�*O�^�U5Bu��Snn���c�;��/Jq�@�85����7e�cu+r���,�@x`N��mȢ^���!�:t�;�u�V �64H�զ������1�e֗�`�mӤB�s�D���FÌEE >��Ƒ��pu^�B.�:^�������_u
r��6�O������4i�}�U/x�\	�,�{���?�;���?O��u���
��`���
�'�<�l��ūގ
"ގ��;�yW^����5X�m7�#
P�e*cЏ��bEsS8�� �|)~�:0=\Ć-{w^D�v��R�
��a�S�D�����u�ؕzՎ����ǏW������7Jpu�1L���5���6�,��]��A=�@�
%g���(\�����[�=CP�z;~s�C��[q�n�8���������U�X6��7Bi�<�*��	��<)��Ul�X:��z��h�9�D��!C���wL
�f���q����5P��2�y��B�r��<��.tvl�z�gRTO���,nĘ�n�-�����̡8m�HK�ș�0�r��F�ο�'0�&�#w�X?4}"x7�:���w@[[��m���:y��;�������r��Na�I	{��q�kP�ӭ2����)T��㼵y�U�3s�V8{G���%3�R���}d�0�[�A��[�|�����1��H��=�~��Q�;�'NM:���iX�<�����V��6��îL������jEcc�.d����RC�k�)��VX���M��Μ���]5NM��rxCnn�w�]L�<�l[l(@֨M��Ѷǎ�
6�@T"��U%o5h���s��j��[���V뵵��_k���j###����Y��Z�p�����	Pn��_Y�xA�~��Mj����hX���,i^c�k������]�G���\�j�Ĥ}G���|����
�����<}���W�<quV1Q+Yg��L1�j	GR�Z�̫�93kϓ�ٞ�Z��gV���ze˛�NKK+�;�O<�իW�WU�ѝ�8�T��2
��`y
.P�$�j�3����%�OR��&�����\��O�d���6�A�`�Bՙ3��;��0�_fff�Tg��9P?���B;�����jS7�>���� t��@�<�	���i;VС��
��՝�	�V
Wu�=%�m�u�|y
>��k6���J726og�SxAo<W
H�� �5��	`�@��S�!Eۓ�,
��S�NjB5�0���	�2N
O�� Ȓw�Z��j��٘��PA��U
Y-,��JV�\��
M�ꪛ��z�L��j��rss���ѣG��K/	J�Cm	o��'��@*S�Ι�'�@y�+q��m�IO�-Q����2���~{<F�3�P��D�b�,�������_j�5���Z5��e�L}s�/X�PU�����e=�&��x��z�ACν��+�C���!m��ɧ*���@��AP
+������y*ו���o�<'�
g��ƨ��0*���p�%����F�mϫʊ�V��OJ�����A�U��)Y�N��V�j=���3�1mp�UO��93�U
Y����������U�\����;%*��8\y�&��va�㥺��q���dWKʛHOvS�9lpa0y\����XA�ڱ�e�-HN���mT�n�9.�����!��(s8�+���dд�y�m�@����D�{�`A�@���!".,u�z���&��on�/��n�wu�C[iP-��#`�4�h��X5h	����&��Ŗ��<4�P�Z��w�l�A:`u<BV�
��ݝ�����,X�@x���=��p���h��8!W��Wm�у�Kޚ����*�|��R9ȱB���Ͳ�8x`�l!��M8x��}��c�P'V��/�T�[��3x��_#�����^á-��X0�5|�d��[ٞ�x������q����Y�_�!�~|�/�6Tc�#�KhA���p�lߵ_.����سf)�v�_��%�r��C��c4���yWz���:��,���a��L�zShD�E��R�Cu��dmb�8p��F���8�����c�a��j4ղ�E!FhƏG6�����bm�nTXP�\�M�[��|��o����F������G#B�$v�'�vD�}���"�˪�N���,�7&��j��N^��~�F�;�gyZ�����,��A����O			����Q|��;����LUO����uE����Iޖ,ر�
�PYǀ�z%��,�6u6��ݿ`M]_\�؂_��i'M�w_}��;�q�U���',.܊��\~�ȍ3����R���9v�?}:�o܎��lT�X�w�|�M o�p�,o^����Ŵ�'a�7��m�y�E8{�Z�o|����6�MJa|?��^z��ߌY1-xr��8s,�Y�
������">������[����$l��[|��D>�O�a��q�Z���#�N���3�+�#q�u����=pOM�f�TM�z�ه�M
�N
���Q8X��c�1�O��������Q_�1}�!%"
�j��u��%8�
����QyS�ND�i#�75#�l��8�{J֡��d�JV:�ڙ׮�T,էT�OF&c�ʣ�2V+X��X�[9��X���-W��S�z��H�z�P]+{^O�����
ݚ��Ι3��]vá�"4�!�|i"��F	�O�āC`c���� y�bM�(/E�����31�i�r!���j�<s�z�EX�F���O���_vU#��4\z�,����TY�N,Z�U�q�?��e���믽���\6s#���J:�ȸL��ދl#
-��Gsp�ݯ2����{5t����q�A�F�X���S𛳦�p}Λ:��ʪ��O.N�/-���|\�䋨�?��	���ڇK񟧟�E�Ós�`܀q�����f�p����RT�T�fv�-�b�L*�Y��]I-S�f�����e��T��vQgP�hF�����hb�h�A�qy����7Np�t
_A���֍��Zк2˅�aj���ZS��l����J��
��`���}kv�^�w͉#�X�
���*d;��mѢE�;�#�m�839���z�D����)���8�N��w�w�:+~\�����^��As�.,^�#��\��5��+14;K?]���G��P!��؄��F"���#�b��u�0ó�$U�ч��0=�ۏ� )%�~Z���7f$�v��Uk���:S�
���(�{�sd��߀���G��1i�`����h�|,�x��6,^���8�e�kd�����ǒ����? C���4�+�
�!21
}�ñv�hI�ıy8p�9C��/�ߞ�Ql?"0i�X�*n>���qO5�#���Z������Q}�&3R����Ñ�������@�0j%GG�P��F�#��PS5�'�Ah9�C�6�a��֢K��
n�F69f��0KC����a�N��ӻ���d�#x��Ջ�D�Ґ曛�
jg���`p5���jՙjՋ��d�Vejb��1V���z��Ԫ@a�,Y�`e�#22�T)8\�sN���pv&
`/�>��#;�/JKJ0aڹ8�)��3̉Y�6k&
�B���#&!?֌��q�X��)���3�?=	1�ILQ�����d��")k.�>� /���D+Sh�N��'OB��o~3��D�!>s R�H6'$�Ԗ���?�����q�p�H�
��Y�G#6.'�r
�dgap^:��Q�՗��p�O�/-�O���cG���ӦO���(L��ǏB|z6N=a�+�b�	gb�IǣOj���}�[��qI)�����t$E& �,�ꎀ��<M�FAB_dƦ!;6u͕h1GcB���"�)�~Q�8�x�]g2t���Ť ����~��Zl��,d�х������4p�de������*mkԞ�
�]P�3$^o��+��ՕI�H��m�{����^�8��Ν;�����b;�U��J ���VO�J`U��q��֖�b<X�lFV��	����g"���/Q��$d��$��D�ԊH�(s,���m�-3#�$�e;bYe���I�`�G����#��AD���U�"@�ҭv�x׻��j�T{�
��=�g�l�X<Q0�����D�w�}��3d[�ʝ�Yw*	�
��B՝g����jWy����a&f>�u��F�|.\�7�|�*�2	˕7���Gh\q����<�Ht���ቻ���������?��Sfb��͎�6jI]�X� �y�b��][a�B~άZgc{5ѡ�MlkS�4/�z�,x#�9��N�M8�B,*�,y�d�g�RBB��;A�������٤mw��V�����s�^�S���"�)T��Z��� �KNL�fdd<���htޤZ�}�Y�v(�L��*p��S���|��A&��F`9`{�����0�I��b!�����[�;iX9q��̤�2V;@Q(E���ާ��J����W�Y��e��Ywa�u��@�ժX�܀+�D\�*TO���2:j6X�tiժ�%,[H�����`U�>Oa��f�텉��S���>I=F��#m�OpWƊ���F~Ԅҷo_i;-�wYŬ��^T(wa�)p���8|����:#��
�,�` |:++�H�]ze���˩_+u���R�
`������&_�x�:W
Ut2�ԋ ˯Ž�����Z�Ұv�R�z����w�<�	���+Ȫ��LѪ����jw�Q��b�d�W�՝�L*G���Y>տ���
���Ra�ܹ��z����I���c��a�]�XW���'Y7���Xm.�S�Jp
WNP�^h�2S�
=Ъ#M�a�j��v��k��x�p=y���S���)X]u�Q�[Ǟ��٭Ҕ����ҥKI�����UժW�;\�
y�T��z�nN^ts(��1>��&cm��fc� �&R�555��U@J*X�b��)��Ů@���Qe�@�}N�q'������7
�3~+��嬬�5ei�I���O����^��m�~g�U�>V�=E�z�^�����zup�!˯ǽc�k2֪Y=P8	�Zj�5J�;M�d	��<���`�`��p��k��Y��*n�VO����oZ����]�qqqs322v�*?�mۆ>�@8t�Eb���?���V���/�pOQ�^�UX=�*@U�\���C։����;�c��L�ʠ�F�z(�72��ӧO�-MJ�E-l	�yw�e��j^w�jT)��qɕӒ�7O�[� �q\*a�j{'&&V8)�%�0�^�p��s�N�&n7S�C�^����v�Z���E�p(�5 ����)U�y�8��5�yg����}VG�h�7�qL�C���#�5�]��x]A�W*֕Zu�^���(BG���}[�7?33s���*3��ߏ%K�[�l�F���o�J,aZG!6ɹ����µ�j7�`=Oa���m���>;�+5�������(XMTXhi"UkYw��\���z\W���WgJՕb����`�899y	S��V��-�۝�X�~���u�V;)Vjc%�RK��\��Or�`J�b-X�U�p��<����kssg�s�fa���,�&7��-̝�Yw=�������y,�6U�@ M�VK��D�uW�z��`�U���pYoC�b����[v/��e�MU�
��ҡ��r�J8p���MV�TY�G�#��R\a��DE�RݠZ9\��#/v4R��<q�@�:�W�`���W����P�mC��l���&���� �N�l��wn����+y�����nm\\�
�����\��ҁ����f�����')T)Xcl��%xH�q�<i��-Y�j�z�Z�	�P0��,O�n:z��A���<q����K�^;-A�`�(Z��z���ZR�Zʇ&Ŕ�I�ٮ(�쾹R���6����ؽ���˦���v�J�j�B�Zm�������+�X�B O`�]U��l�C�H�aR�R�VQ��ٳ KqW��T���H}r܍�dY#�j������_Ъa�*��3�KJTQ�O��;�Q�V��� �R�\�Ofi#��Zw`�
����d[v�v��}��3!!AQ�
T�Uô��I�2��v��e?r�u�!�`b���I��`���԰���I�R&df��{/Ec��9�������I��,��b�p5�'Y~]>?���΢$9S�ʾd�TT�ܟ�e[���U)Zʏƪ%�e����������z۷������M��ڎ0x�g����j�'mG�)�=���b�СCf+� ��<�O9ЄXR�]z�>J%�*C��� Kl�>+�.Џ���������`�Z�ꙋ�`UƏu�����W�f])<w�u�L ��`+;�x[
����A�d��M�3�z�.�*��j�u6���M
윫L+���<
�,�vhQAԤ#&��3)�gYYJJJL4��jd⥮:�1
�N�T.7�V�(�$��=$���$�Z5`�W
�l���i�������b�R�Z��6X�{m�̐�Z���Y g�
��U��4�14��SV�W��Ȧ���p	�_5�)�'
��ʩH�XZ�>��C�Uj��ͭvv\+�7e�-쿅�oa�jb����k{�b�U�+e�Y^gR�S�Z	tbuu�Hm����Ӕ���d'$�&���}�2h��rHQ�hږ�+��ߩ���,��R~k��e��]p]]�z�.*���=�چ���!�D�M��!
����X�2����j���Lm���e�"y�LJfU]v��G�8��1��m����ː6t<�����]��ˏ#�_6,5G�j�6���}0~DnP���ݔ6�.�sB�t���T��]�j�p\=ө�騔-���@`пVЁ�Z�9��)29ģ�z�-�m�:�4u��j_�
�P)��y�*R�F���á:F���ʇ����^QQ!�{c"B��!��]VɊ�W�N���bI��*�5L %�`E�Ҷt�ɛ��`����ař�*@��W#�j?g�Uې�~1#�|�G�=>~�e4gŦM{Pv�����TUVcӷ��6g���?/�SO<
�Ε�h}n��<�؎ϗ�F��	�9a$��*�����[����L���nA�m�b�����7j~��K|��H�|���>�S�7��O��?��5�p�"��[����WPl��	�yh`p^Y�ç��\s���GDFY1��"�6c�ޅ��9�[�ՇX��	y�1��J�M8y�<|����tt7��~�W���{nDb��6}�f�P�	ʗ�C^��z�]
b�I�\��[u>�_q��yR�4)�ը)A��.�@L�F�X�2x*%�.��5�@�l&�U���k�iV�4y욛���s�ӳf��7u����e�7A�@�A�M��U���5��vV;��o�~��lڇ*�i�D�nV�mve1��cM���ﮂ5�Ԥ�)����=�X�cS��4HD�G�nBLv�{���g���?�C}d�f"�Q�����\���lBJ�	>�e;��aǖ=�����r�q�ٳaٶM����������).#�$c���boŐa���0�X��yh�_�/�ـ�(^|��s�%��'ؑ8O�y�t��{
��/��Q��6���j�z��`9!>gN1	,���,\{����e�)�r����[��Hf���cW������%B<{�t��X*��c��I�@	��*j���o���6I� ��I0�떁+*��>P��/[T�4R�j8
��ƬQ�ڲǬ�I�7�s�$��cU��nj�@�d�X�l������h�.w����K�@�e����H�U�ʆ]���/A�����F:�-��%�J�dV�|1�(��*�m��}MNNVT���������!̛7O�&�:��|��̪��{��b/���W�t�O.UO�W�F�u�wWV/˕�*�@C�!�ʊWP��SAW%ήQ�P���M�<yYiSU&���E�lc˒'0�9�Ҩ6r;p+)J�����*�ߪ���u��y������J�Ye[�����Z��`2Swv�6�R�j��Qqdo`i^��L��r�r��ԤXtl�5T���>F��:��W�ڌ�����&���I�o��y	�ʊ�'xqL���#�=��5:�O������>�v�`��]����m�c�z�i��OF�=iEY�*˒�Y��ǐ���re+�CV~J���m������T� +O	Ɣ7O�]nC�K�_*�~i�ԩ�?�N��Si[��j��J*T� �Mմ��IV���L��'��W5`�
�n�]�a��y׉*���
��
.��!�Guh����x=~��X��{,��W�˶�S��T��|���Ǣ����4O��;����㩗%oa��I}g��u&M��<;Q��S�9�4ݡW�^��U`,/C�]lK
�0U��uZ�*�e��c9>�C�VC��r�Z98D��j���U��A���p�j����N&�5G�Q��LL*��WWp�k���Z��@@V� o����bt,��j@��M�v�*�
PU�_
����qV��`UPŎ6jQN��j+m�J�|Q�rs�SY]*�9�ve�
�v��\��i^9��E,�K���T��iY1��?�5��p5���h��[-\����1
s@�D!��G�AaרE��7mW�6���;�n�*"�@��-�Uˢ�zYV~��
�+jU�
��ʅ,Q�bE�"lW�j�*���F�!���i� ��]e��$���m%rt&)����9AܯZV��0B��ZH�r�v�F�0�M��jBg'��^�
O�ʕkp@V����2����s�*h�����UO٪��m��j���,���T�ڴ�sLA�GsOڽ��]RT��j�J���)�M��I���:jwU�d�9*s�Z�Om�V+S������KX>V{YI�			��V�C�����6�J��
N�RY�}��;���s/���T��V��^��Q��z�W;ڎ�ܴ�䴤��:��r����������P�����vh��+��b�U�O*1� U塴�J�����n{�/�i��E��xw��:
��ZЊ]���� ��)XwT,�@V0�6��:��d�&`9\�O�v��w���P�U{����}v�)[=�*����։���T�E-�Հ!8)�ʗ��B1k��MUP +���Mi;L����j�JM�~
4合�f}��0��U3\�5D�l�����u'Є���B֤[��lj��G��ĩ�C�!�m��\c0A�+��G��e&���F�5OVpQ���ko�U)_Q瞋r�����d*�2d%ھ�Ze��S�/�!I�[�:ծ��R���(WʼnI�NW���T���m�+(w�?�\ǩ����S�n��z	�4`UCU�b���r
~e��;�t ����PւS���V���<�n�Њ��UP;
�d�t�.&P)�Ӵ�B�l�hjv�_�V�ˢ����7%_5���(V�C�;k��nO�kgː��}�j�zq�������ȉ�]�a� P��8VW��t�`�f���hͶ�(\-x)��	UP*ʱ4�zϾ���뺣n��M��a�vV
 �}�k��6Հ��[;��*p��T�+��l�O2������;�Ճ���	�:j��F��*WXY����8�&`��^[g���7��ڹI���r��W*+t̿��j�+��զ`��v��:
��z���
���FpU�К��ԫ�po�*J��Vc&V��F/���.�YOԪ;@�p
B������i ���}�x}�����h�#�x�>�F��d�~�F�w2�:�4O 52�:�L�U��>�k������H���� ���V(*Yo����`
���}��;Cʕ}� +,�V[�Z��z@Ձ*԰��G��C�]�k�����E����,�V=Њ�)����D��}l>d�9go�����{N0�-CXtql��3UkS���੗������P�>��k�ꘉ������+�l@����J�����;��[��2fbm9ө�3��Y�z�t��\�T�.9n(׀� �Tk�õ��u���fb=@y%��T9XC�r�n����L��ȶ��R߾��	Z��p�V���m:��)X��D���z�_0X�
��ݘ������X�
���`x'�9����7������~� jt,`��
ꮷ�գ�	�*�����,���YG��s�x���P�]�(޴�z{�@;Z���T�]�@��]@;�8v��;�������>�x�
W���U����5
:��(<F���'����D�y��P����*�	�@�_�
���5;S���՝�܁��ړ�>�,\
끚u�b�:������pu�ab�T0dE_(gٙD�v_/��1E/�)vn]�߰0	F��T�㉞�ەm\�Vo�G�$��:���Z�:Q�p���;w�n`�J�6���y�+yy��m�
&E����D�K������M!
�ިZ��W�'�	[g'$z�8E�R��Z[[)y�!�3�,�����^�T�>S�~�bЫ[_�M��,�����^W�k[7��5 �����f����p�����1��]�+P���a���
�����c��%��]��&�y�s���
Y��"�
�v��۶U(C�y5J�2���E�S��3l��P��/�	�b�=���zk
�[�tX7n'e_����@|�6�3/o��x]���N<�wD���a������G�U��s��$WR����	�JW��חjG�q��8O�r��̳;��p��@�;���?�%��{*�>x�a���)H
!����]�>8w��~������y����_��/�*�lxx�[O=N�cm4�k�T��bf
f���ޝ�Zw~@pY�B�<�z�����<���o[�f�A�{��0��=�|���C6�k���e����:���,�`����So�l�Ԟ����]��n�`�0�g+���[����l����5�Ӻ�➋=�=I�r���[!,j6Ap'�@U�����p�婷B6�
�Ppd�
�LP��Z�]�-,O��`���Gwx
s���Wq����^np���#!�`on[�-]u��:�����W��.+9`y�
΂���?g�`<�`���Z��\���!��B#�k��ؿ;�%����:h���SO�l���R �� �|���
d����<�:dC�c
'&�؊A�;����Q�Fe!,O���7T
,gJ���w��^�!��w���C��
�Pu`�
����Ł�-\9`y꩐�͠
4l��M't��`
j�r���S!��m(9ht'�B�	)��=T�B���KY��SO�l�ՠC)
���k���"�S�zR�q����!��t(v9�]sx������\��Q���_�"!H
/!��|����{C���
fO�O>
\��ԛ�l �Ɔ��K����PC�$��So�lO�uww<a�����smH��9`y��95��>|�$��o�R������7C6���PҬ������gH�v�*��_��0k��tWIEND�B`�assets/image/03-icon.png000064400000003562151327614500011020 0ustar00�PNG


IHDR.!���tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4CA8895BBCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4CA8895ABCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>��r)�IDATx�ԘkHTA�wW3�J(
M!h�;*���fTRAQ=~DfAD��H�_Q`Tdme��$	��� �)EY���m߁#,���]��^������{�̙qz�^�d�\�IzE���x<c�Qt�R�B,H(��~�����#����/p�{���{� :�z8��0�^O�;�@��τ7"O��f%ǿ
�_u�Y>����D��c�;\��᥾�L
�kX����!�~dCs���?D�岐Β f� ��y�8�ķ����P����~���4��`�0y�Q����`�e ]FsJS�F����A:
��Z���[���A�ҥ4'�6�d���N[E���P��
���ʑ>tr"UDS�һ�ԥ�Kcy�㤹��\������EA�!�)���B����.�is�F��$��A�|$"�#�p�A�3B��[%6���8A���t��
P1�|E ��$�~�2�府�ъ�$Uʢ��������n�Ʀ�P�3<��G��*���0\���2y�p�x#���I��[%h��K�4�$��4�f~�ga%M�R�H�����2���:�
���~��t�ՂK2�]�; ��X,D�[��S>o�~��^�T��{����t#Q?�='"%Zl��C>��B+�[�6���Ќ�J&�6I'�Hπ����I�
�%���t�N�h�ԍV��qY�|�N��OQz��覇"my#�|�n�f�kF>�b+���W��q;B�A��2rȯ0|ԭ�=*�2�'Y�7i�m�F�34E��5���s�|��˪Y+ۺ�R9���'���6��:���~�ZO��Hwڵ8�OkC9;��.��X+:ٱ�r>�.>;e~��+�-�ZdI��� ��y�?�{[/ێघ�I:G���C���)@Րq�IEND�B`�assets/image/10.png000064400000245237151327614500010077 0ustar00�PNG


IHDR���AAtEXtSoftwareAdobe ImageReadyq�e<jiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:EBD9BA64D083E411AA70E18925C9C19A" xmpMM:DocumentID="xmp.did:A3D3191B7CC711E59D93834A6ABD8C0E" xmpMM:InstanceID="xmp.iid:A3D3191A7CC711E59D93834A6ABD8C0E" xmp:CreatorTool="Adobe Photoshop CC 2014 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8CCB8F637CC311E589CBB2A3B227AAE9" stRef:documentID="xmp.did:8CCB8F647CC311E589CBB2A3B227AAE9"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>VX�\F�IDATx��}�\W}�i�̝��k�%K�\$��`c�1`�c'`z�L�#���ˏ��n�j 0��ɖ,���]mߝ�z�)�sggW�}%+�=�W�ٙ�w�=�;߿}(��G<��<(��G<b��G<�����x�#ƻx�#��.�G<b��G<�����x�#ƻx�#��.�G<b��G<��]<��x�x�x�#��y����7 ��Ex���'��ߛ���h)Ũ�����@V�9�����x<8����!˧���5�0�Sdd��,µ��������#O����C��-�c��DzC~�G�w��ӵd��8������y\�n�s�8�Yǻ����s�Ғ�|Gdv1�#~w�I�;���d�w��_�['�\>�3u�
���đ�c����^<���"�s��gpш`N�����d�z��7f5�	 8���p0��w1���^�Ҟ�1[gp�:���r�ȟu���b�w��ݜ}*�(�܂8�%ر0���n���X.�x5m�	P<5�X0�O��C[v`6R���]x�Ξ�?%��~J�c�qf��r�ԈPO޿�F����E8G>��P�x,����żZL��.zd������A�A��%!��c{�������
��q@� �W�)�wfWgx�-{.�G<����s+�i܃�m�:�t�Xɞ�n��(�X�8��X��
� 〇4�w���C�Lȃ�	��'���m:�$�[|�"?���&�z�w��ݡ9�g�$I>�]�9���=�n�G6"��x�����B�*(�X����S�H��|�ه�/�<�x20:
7�'�5�4��O��0���b�!�;�2��SH��gO��1Ż�7'o��_�Q˙`@ �	6����gD}y�RsB������>=j��A��|�E�=�/0�!#�Gc�#�-���?hX�o��OU�	�XHC�b�,����-D�"���iH�Pw�1V�M�M�c�ws�8u��w���y��`�p�vH�R �Q^�ԴE�
��rɪ�{ܟ��rB&�%�]�"T-�.2D���" _!׭��C w.\#�6.��&�8$��<�Ղ��%Z��ba��ʫ���5�~�)E
�վ���ŋf���jy1&��)Q�J���Y,�8��F��O�ʲ���<Ɍ�S�A�	C%�#X��"!BP.J�1@������"#�i"okON=��J��C�����R
��O�kU@�0W��G�PF!��7MDf�pT?0�GR�����0�)g�aGc�(��!q�{K7���\(`�En�T����y>fy�
��걦�:�Xy�"���plj��X%&�L������5*�2yOC5����|��#F�m����!t\�;�g&pu���%ٗ��&1oi'�1s:�����n�//6����Npl"��<O�?I��`�g
x�G���1&�IBF�*�X'Tv_�#Q��L��a>�Ojƈ���Z�r�?P��2�Rh�G�T�5tx�&��g�
��/�8$V��ʓd��e$�W����eM��f(�0��D��\ck�<���35��0��0�R`�M��i�� ��4�'7��]�S���c[h��J_��w��G��4�t&�ʻ���d�&ej���$�Q�
C�M8>6^ȗ3��ģ(s���וG�XB�r�T*U�z��wX�t�1�;f ��NN��OÅ%h"!���{���F��2k�l�F�p��-k�ZO_�����d�z<�����}�o�r$���.m����˭���_�q�o�2%�-8�v��'G.����^�b�
¨�Y���G{?������O|sy����7�Ά�W��*�`���pM�QWG�a�vfAV�[���J9a'zzz{�Q΃���/��E�	A�'6J�ff�@{�gkS�VaA��k�#h�0!S�x�7-�	…
�(*(�!�.�
�E{����:�=a(U�VpX�ִc���%����͝�q�߾����c��v�7�������L�hH�C�
���5��ro��5���"��So�-T���5����>E���9��T���+.�V���b\�[j�[+�3%O'-,�ø�8�RI�}m�F_Z<�K,O:�?�L��/[��6H0J:��c�pA<�a�� ���L�R�-M��)�:���z�‡�դ��0���Yϲ��5.��Qӑ4%�q���M�ȷ0��w�#nb���2Qm]���>s�ȍMfe*8岳w�z��ozQ��Z
�X���b۷o��]�`~���)���Y��Ê	F�5#2U�GS�"H4�i0!�r�'����1��S�3�뮿~�����=��V�u><���-�߾`:�I�V")�2��aE0ψ��
D�������8�5䦦���b&�ѡ.�0_�*{6�ͨ�0n��z�w���,g��Ő�d	m�*`���{&]��K��c��]�Sϡ=;��ҍ�����E��=7�Iw��zl`�yY��;���_�}ۗ��u����
b����J��D��ƻ��)��Ɛ|��a&ZiA��>�E�ʣS9�u��5zx�ڴ�tc���rx��{��(a:9T*Za�����Ҁ�L����jZ�f��\�z�Xcc�$\�J�2-���z1��?DTZO�f��-˒D/�x�;S���J��Jt$|8+˱�3?O���7fᓮC��4��9�ꬥ��r�M������������_���-~x'�9z�ݘ�n�Tybo�0�I.� �0��2�n��R6S܏1ɥ�˽:�E$r��&D�v��9I�D����<j�Y�(��666,��
�`����s��8fHPͰR	���n��qx�gs&Q.E�>�-b
��V�Cf���y��h��a$���N.=��9E�m�r/�1�<���s�{�Cڇ!��\fb���E*u�W~�]�Y��S��鮖Ug���k?�~ͷ������/z�թ~�؂�@�D�M�K����F��*�7]^��/��׆a����ɢ;4usO�y�M/ �S��C�#��0��1KF��J���M³eJ��l[�jPq�g�D�bP+a�LOMi�h3M;�N���gC����i=3�{�{}������Q��x��1�;��n��{��s�iy��g�ldz�؆�ϛ�:��q�y�<�?m��/[�� �u�g~V���/�d�MUq�#f��3۴翋��4��D�x~�7LV�
(7 �3�#�C
,L=�����ޞ��J��mٓZO�fb՟�*��R��'�Vy��N��o����6����jb��t!/�~iOo�P������/|�� :
l舟� z�9JIp�����a��7~k�|�!i�$������\CP�N]����-]Mvw2і���\�f T�n߭&��K�zf�8��I��XͶ�ݼ��{�F�\*�S�)�XY�����XDK����=w��>��cf`�%��6�W�죀Ba�l5
��zPH�J�T���?V�r(��`���r��"�=3a��X����x���TԤ͠�$����YMG��q�ڳrVPN3�ti�h	���G��jf���@K^vZ�oz�]%3EU�����&�={{A�p�V�����?}`|K6c2��G\@��F�N@�怄�	��BQ��*��{r��J��k�g��#�z�(U�����x	�ֲ~f\���3׮;QڪU�2�H$	10&�r%��.]�brl����|�4@-*�>d���pE�����V4�6�=QL�Vu#���hgE�1�z�m=�9ϔ�gG<y��8�ģ�;�s�|��Xӯ����ǡ^�~���b`��Y�w�7+�җ�TB�<����$a�d��'�����֪�!�ʚ���O!�z�c�m��G>;�ߒm$c��m�ugl�^�S�)MM���V�3�D@"հ񌓗���/�bh8���ݙ���ز�GI�������;nW�v���QQmJ�l:�y�D)h[#�~kSkOGO�R�Ī�~��-b��Ú����Y�6
H�V���"�s.|��ఆru	��F�>:T�Qt>1��1WC-�Rm������R3�k�r�����Zϣ��Z��C]l�12Y'X%���b�;��)�dE�&���%�Ltd��a�U�JrS�P�s{�<�\��:Ư�?uo:�'���o�bɪ��кI�GL��U���H��weu�L�L��G���}g�=�]���7�O� 
���ˊ{{$E��'
�{�	7/�7Ru+�UI�
W�?�������2�II�j��d�bX0����.mԌNˠ��C%P+J�S����\�1cVx�4H��6���8�� iN�$�"ֿ�G��;��6�����Z��ѭ.��j}˜�^��y�t��*�9ot��f��R�|��n�wIN�H#H�0� '�	�Lj L��Q.mM��g�ĐǤ�$���Yr��}��W^z��
��+o�<)ldrM��v �+�W��BW����������Ƕ�u��v`���)����zE��qq'�5�I�W���4Z�H����y�?�AΣl����b���<B�k�4�Eآr��Quc�$]���%�-�a��e�8� ��I�`(�P�
���Y��fh�H-�I.�:��׀������b��)���-�GZb])����($���"��}O�`�1����</ƻ����0��0t�S���]��O�e
���}E�ij��O
�aW*y��g_t�e�{�7����4���Jr�k&�
,�>m�:����W}�;=>.��h�\.X��lj�N�a
͈��!�5Nq��{L��,a�^E�]�dS	��p
E��P��hδ�Ո*3N�#�Oq
�ZKO~�:����h����(��r�w^��ђT��0BH5Gj�*�D#�f�a���Ǟ̟?�%'S,�T�EA�$�OX�t$	�?����-"��F��|8
�C��n:Bm�0���=��+��bj�!�����X�Lc5��DTK3^�	��mo�|r�2�(��OI�(3k�L�<�˿������`b<�bŅ/?��_�)��^�uP=.�w��)�\�HLCa�J��	4/f��$5,q�� x�Pd5�/U��}s��&D��k=�@j�aT���"��os��y�A
a��
<��b�z�P�8�xa�B՜����?:�H�X�E��ia9�B������ޢI�~�pW��DoїV�@�a�����sy�k��b�;�m�?�-l���D�U��N|��lO#�N�|��r]Q�.@	\`��"&,	�r�%����4q¦�ҙ_xU��g[�P��sKn9�zH�H׈5����"��$ּ�\C:�gV73Bq�#"�{*��
�̪��y6s	��&
Z��Z`�YE~A}Q�*��iO�B�e����jk�Js}p�lHx^CK3G�A=�X^�ωP�-�DRe#����ؔ�zm/�\���U"���"��-����dp�Fb�S�zS,?	D����F�"��Ҕu� �ƘD��G���R�Y:����K��澫aŜl��R�ZGx�f֡)��=��a{��Y�0�����
H]�W[���#�V�9'�S�i�!ь����&C�js�`s�bS�@����qs��)X5%gu59��z�wϙ���sYn�F•��$e66w��æ��+A['�zI+�}��>(��x��̐�%Fs��2l%"QI]�ˎ�|c�G�!�h��l^��}tǠ��(�m��9ic�{�)��b)�P�l�FG��M(kJ�L'(�X�&rE� 
�o݄>�Dr٪�/�t�.6�����H2z���r����๭0�|H�Y$�f��6�S�f�i�y*�5w���x|B����-��bq�T���k��3<����<Q<�F
���5�L?�mtb������"�[�
���7�����|�NA
h�h8�LלZ��4U��!�`&�-z�4��ʤ	9,�^��Wo��:�T���{Qr�b�jYP�m;��taU
@�<ˬ��[s`�Ky�RB'j`�=W���d&T"�	�22�'��#O}�ЬF�P�N�7�T\Y[���'|\����r���Lݟ�<���|0&
0QZ),�d��ˆ�_�wQ�@�VE	s�D�
�r�z�˽�g�ac.L8��)hs���tm��n�u�kO]�ǸPA7i(�f�"hR�DlY���D�E/9��ѹ�<����'-�Z+�(Ԭ{�E>�cN�t%X_�skO7�S�LLPs�CL�a1]��b2��!ER�82k��J��*�yM/X�`*���C��u��38�ÿ�3
��g��ꯅ���p���/��_�a�J�B-6O,d�'�.��_N�=c
�OCN(0���aһj��^v�?}뻿E�
�&��9���|����	6rQXE�)mi����7�_�&�K�ƙ(QAB�!+g??~.�l�vҶ'�����J:9'�Vյ�aٶa���@��$-�����s:��a�l\M��n���q��ރA�X83��BԄ�ㄔ��[��-&�uɱ��d3��.�N��`8i��Y�ځ���$v]Z`��QО���g��q��w]��4�H���oB�L�*c�k�̥o�o�Enl<�Ԓ��1e!��l4qm!��J)�����sQY8߀}B��� y�sLB z�-,
�N:�g�	e�A����ጭn_R��e;��y�Š���m[��fu�d���i��7��0}<�G�,D����C�l�ԅW�S�;E P�5U	����I�B��t�X���Z���I�/x։KA��L��P���o��XCC�L�Z��]��Z�l�y����%`�I4�^��±��C�!<	aU����j(�]�*G�%8��?����;��*������n�y�o~����ϯ�H��Ar��QU�*\����~�����[Z�,�^w�j�,�p�n0O6��\۶Z[�㑥�]S�����F�qH�}cԋ��h��ŭ3A)(�n&t����N��ha��!��e0hm���}}�������t�����w���e'�N���
���'��6��-�`���N�����|580�1e8��W\>t�q�a؉d^��,�q7��r%��y�?2f�V��\w�p��3_�2J�h��w��W�l:���[<^�/1�w��/���f֞x��SO�tک�֖�q�333�J�C�9��#&X)pA��O�]�w�m ]�Z���)��F����j�Zȩ�{��@��e�'s�Lt�������~��=�oӦrK{Ӿ�6m�5�6a[#�v���oy
6�	
�!
O\�Z6^:��2t�F��7�~��_7<���A�*\���HV6\:��-�e��{	�ZZf`՗���TPB��t\�7�C��	�Rϳp#�a��VM�������Y�r8ԣ���pj�@��e���!u�����1-�s�r�%�sJv�<��)�=�l'��T����Lz���9�&>�@�mY#{�O0�R�R��^�Ug���;�\2��nP�U�����z<b�[��*-d��X�I2h1�(�N�_��K2��"��	�
���𖁛���%͍_���v��Jm���/]��X��؏�᷾�U�YP�mļ��u:�EJ����k?����e�����?�o�o��Aox��������t.�Z�cc��ђk�����欑�P�!�+L���8����O�KUt�B��O~�׿���ow�+����϶*��J��꘸�̋��q��sf63��9���fu����U��s^u=���u�SS�
�\(��ǧ���T���ɳb�*��N�JE@Qv�a8������Syª�'�����1�-��{?�zZ{0��i5����'�Ӿ��.��̍<�1x�2y�+y"�d8��}�ǐ����{.x9�ۏ�/ҩ;�������NX,�}q�%V��>x�9��<�w�$��Y߿��+�^��7^x����/(��p�g
�.�>��۷�}���u���}�
;9*���<����h[���Z�S�<������;���W��mo{�eZ7�|���n���niiZi꩸�V�?岷��Ͽ�ƣ`�9/}���]C+��X�w��
�ju��Wl߾}�RQ��B�T�V�G�z5�
�j`H�j⩚��o����K�-��_o5�H2�N�d�b��	�N>
�rZ��	� �1��.?���
y{��S�J�Rtڛ��=.�ɡ�vz|d��}l���9���nj�)�OY�y8>����n{o��X֒*|�JvƊ��nx�U��h�.^
�j�� 7��{U������b�bԃ�jl���ǯ�B1��?m���4q�6�\Qz-C�ƺ���m{�C��[������G>��|�﮻��\sM���w��o@T��T������K��ɯ�����?�QKT�m-w�`n6�X>�"����|��а
�A�N�k\�L��j�(�!\�D%Ye�Vh�E���ntqŠ*�@sNJ�.ƻ��w���[���~d`�W�l��doW�����[�iG�\"
��`Pu��r�N�`��l���K�!M���� ��;,L9��>�H
�r����iN�B/m݀���5��E����-Aa8饠m����{�
,�nk�V��~05�с�^��i0LIK�4j��fO$5,|��>�(�߾+�$����/����㎻���|R�=�5�l*���Q��+�àfF0�R�%fJd	�YQ�hLML���I��cp���%��#qQ�y�P��>mp?"S���_�-(R��A�R�\�uy�*"�)���؞}��
�Rn`9љ��P��r�ӎD������?��Sny�����+65V���ny��.<më�=w��J�����Uz���>@0S����H�"D�0�ef�p�@�@���fF)!�c��B�q9��r���+ixbXSP�M&�%�dh&:��M�?�?���^�h�bC��)`:Vn_X���C��,zeK�"�f|mH�5�M�r�R�{��{�;��ONN777��}�j��/~�g�����7l�H0|
Eđ���CMl�p�ޞ��Ոl	lĄ`���Z.P&R	�4�~�_�䴛7�3��\[���ԟې4�� Z:yS� �,�]~�
���	ۙ|���3�����E=�Cã[x���
��h��&��C��1�{ڻ�2EЬN�f�L#���k6��F��|�}����2��N��@u���9w�ミ��j�r�;9-��_���i����y�����f����AHi��S�4Vn���]���$DT�a�ja�)'`O�{�@s����K��V��	NX��N`��V��_'O��~��r��6K樺Z�Hn�aqڌԯK�W
�{a���v`�q(Y�Z-A��{|��G�s��ܢE�OX�:���A�5Bs��۶m��;�h%M����BS��D^hǍ� �D�hx'�<���ߖ��˖���`px�yxÊ�7,ͤ�ٌ�2U�)
��R�N��;����遁 �*�U�P�yMsTp}/#%�#"]��X����5�{w�gr��i�mZ�ruGGwk��k�-K}��ت:��D9$
�X�$��$�]���z_�z��X�L��m�n��%��jI�}���w��۷��qɝ_�k���֜յ,�{�[�~�\~�~QX����y+��E�|k>��u ��'�Nb�t�Kzo:����d�қ���H�3���|���ܜ;�ĩ�Kwm�h�N����Ƣ�~��~{�'��$�H~	�ӑ_Hڀ6�˭�$-}ad���������i��C�CRRψ���@�R�]}����\�q�N��˃!BĶ���>��ĵ+�B^=W�^������r�dv�R�
�JfT��BIӓ�i�	><n��1�8�[Fr��g�
�b�Z%P��P��d�|!�v)Q���hFZ��^��)+�O�Ngf�>&�'��{:z���-�%-�m�-�>�P�͑�{���"�j�!Q���m�em�%
��Ό�hj��V+��FȔX���y��6��в������/��L+��{�-Z,-��GfZۮ�x߁?�pٹ'�{����쎇W���!x���a��S��1в�!��7��/�a�i�u��:���=�}}ý;̍�6}�\�\��XW[e������9'm�@)}Kȓ�.ź�M0�'���+��.�t��7T8FcCw�8�8�ƻ����tK[[cSC6�Vݔx-�C�7M�JX�0F��"�x���8QN0`��$�\X�J�_e���ZsI���k�ȃt!3�3�o�a������5�>���D
��)����o|����_�&	�������r�p,���?
*��p_?v2'�Z
T:���ȰA�ӓ����X�+B��x����R^Wz�T�9Q&2���t
��z�Xh����d�ȰJgGZ*7꧀t��d��^��㯿��l��UJ���2����sŚ�}?l��ׅ�Ȧ������?���!�L�-B⠽�����?��G~���.M/{=h~�+����4��f�×�#?��ɾ~����qf"@,	Q���m_*9�2+S	*��{[u�ʶŧ[-��\
$-�YU��#LQt��

vw��AF�Z\iI��Ph;q�=w�7:>�êz��n�kG�ּdv&�-�:��WM���z�
E�Y�^����o^U���?��m�U�F�W�}`�ɝ"{Ë�����{�s�{-O��ƶP)� �8�CN�R�t��M�_�v�2��;�yJ\O���m�"ؑ���.v"�����){��u���`�bؓH�Ni���@I��q���U I�8`$궠؝�q(@Pj��Z��u��e�a�uJ v����&^��*�;�LGv��%V2#�����C����4�Z��7�6��c���K���K�����#���:
�)�<�`��$�Zם���Gc�3gA#�y)d�k��,�C˰�gЫ����2ol^�d9C~AGg�1ǵ��9�g;�p=3����[��Y��3����|:��nػ{`�X~���)��Q=��D�*vU��)�$��̰�@�����ۙ4��fv�qC���d���赿߱���q0L7s�ʩ0!���hmS��.�����5gs�2�$O=ZY �R�J���E��t�}%@���T&WA�INhiU��㨊���>ީ*"d�D�uP����'m�,Ol.~2���m6S
����U?wXW�Д�AaC"��0�}Z� ���˄9b�|6`1Ӱ�T�P�ϔ�n��}�;7-��~
�b|�d,"� ���BeHm@66�a������nP�︚��
f%{1�ɪ>̠OX�|�[߹�����ɓo���UJ��~�����+��b�T�����ۗ��i�0�Jk��
̤�{8��!�8�іF>U �k{��&c��=E�哃��Sũ1\?�;Y�-K��_5U,�<�@�99IbH���:�W],�����N�
A"����=R�X^\�URe�Ei�|����O��[���V�6�ӈ����7�7\�>�&-�����`s&���^���]맚�k)�
�n^��$Y���&m��PP��4�#⤺Y(�*��0�N�]ø}O�wOD�Ԧ��r�%�LdF)��x߭�a���c!�MB���n��TS,	�6�>�}aq���e�y�ק�Y�5�r�a@CK�U�bp'Ky��/�]TZ�ʂvN�
���<'�EV)P��V(���p������W�D�5Ai�tST}F�$���j��X��Z�������j�n�-CU�r�uʝn���[�)-���|��١�e;ߐ]��N�܀SZ�^?FwA%�P�5� ��&�4ܪ(
yC}�^�.N��O�;+9{�����a�0�
by���_`�Ư�~��}����M��%� ����3�����7ʎ�����Id�\�Y�(�V��0Tq�;��D�k��0k]�ٵDTF*ܖi1
��6����Lqݦ���v�pk2�0@�N�F&�7"~8�o��)�8��ɗ*�\��(�%P0���M]�}����``�(4��:]��Vþq����ӭ��%����F�����-�y�geXyM���&���i��Pe�q�h��J�b�&Xɲ�4�^�k✳�u���6��%����H)Jq��r����[�?W�L��K�$iQ�Re��n�'����D�%Ϳ���AČ^��6����A@���k��)��'?��R�����"ey!,�6���z��I叩E+8�UU'�#}�6��Z2=�@6�I'��|�	�`��D����K8�� iwh��j8��f�R`5��QP:p�-�k��ޓ�Q\�ku,tDQ^3�9 �T-��r�H�82U��S?$�iɰ����o�vy��j�"`"^aد�t#c�y.r�4�<��?��WݫO���+���}y`|��_�x|�At���ѽ�LSNJ�n+�
�<�Nsi;ȭ��.�@�5�x1�=��#N)d*K�&���x�/�#K�ͭخ�6�[[A�͌\�|R��ɷP��[�8W6��>���.��T� 4��L!����Q��"�U�<�i;���C|߄kaj�XMa�Y�4�)�
H*�py[S�
�d��J�j�=�+_,-i,�g`�>Zp���͋^����j����FU %�6�=	g��Ϗ��	��nZQ��ҖcG?H$�W�r{���$�z�;�p2����r'J��nlϊ��lj�Ub$��������GZFˌ�줝�@����g�?E�:��ζ��e��C\��D�T��bpT5B�q�lO�\D�Ju�Qw5�ה�SxB=�*��S�+I=�	L�[`����)���}����i'�����߼ۺ�W�{ϻ߾f�I��tt9N��_�4���o��`dt��]{��	1�-��8���l��kI�#��&�X�@AF1��E����O��u4�h�|&L��$���$�a��O"��I�N�g��dz�c	��V�$h`�q�]f�P&�D��!
Bx��ƛ�Qs+Z�c4�bD���!i`�tp���ni"ݝ��n��0ن�H$8B�q��1�B-im�� 9��3�a>`�H�����d�r�2tH�U��C�Z�:���*�ẉ�o��m�RE8&>--t�Huf�m�zmj��=�{�9����U������R� 4mLddI	�e��L��G�]w�{��G��,��r���gw�.���6ߵwp0��tG�^<D�J��|O���$���JeF=.�U�R/�$zi��'J?�:>6�%"h:Y��U�t��ɩ�3�>+�*̂��}ݘn^�{��'�6��l�5
'����a��%mm�m-�=�&6�b6�F{c�����ʕcKNc�3��sa��N9�*A�*@ �l�ٞ�0�b��F�ax��ѡF_�'�ń�"�ɀ�7�Ԣw�>��A�\�6!�B�br�~�<sR�'ZIS7���=f�*�UV��ϼ�'�����S��v�`H}Kh�0�Jr�÷@��4�›��0u����S�hK�Y@%]��tE�@�$M��q�7Z�ĭ���3�I,��x�Ty�F%���ϯ��I���o�s�y&7��9q�@_�]�N�&�kN8��,d�ɳ�$�&ʣ�=Z&.?y����tc�ThJ&\_�3c��\ع��}�[�������b�5<%!�/1h+�LLT�"�EZ���d0&��Z���
�1�0�.�l���
Y�lˠ����z\��!�S_��p_㺍+nܼ���;�87wɫAн��tez�?��Mԉ�iQ1R�e$Uݏ�k(ʉ��))�s��H"����k�(��e�<R3넵<5�����15��*�4�$ct��Au�/L`J�Ț�%���KRM���8,95)R�[��?�fhܽy��d�d	�HqS�	��J�:Ʃ��%�N����žYq��^�NH,f�(1�_(�*O�rw����ri�^�2|m����>��	�2�O�e�p��yFG�;aH���K�gu�`���[z6���fIKP|�֛�.�l�f����/�m�|��SPZ�X�
B�b�%�JpB��C�N��Kz��t��� �s��y���L����F���u4�  L���0���9�۝"P�)�z�D!|ݓʽ�H�F���g'0�d�����iQ-�PX�X�_D���[���p�׮���Y008.?3�?��ѦwL3ѵ���d붏}��d*��9)GB26L�+a��)KEU�:`��w"��#
Ң��hϴ��vKH��lҶ3�&H��[*ί�������	5�~ !�`f�Q!���!���%	O�!n'�&lH��+.���TR���;�}+�l���xd��I'�e��IԴ�t�2�>g�<�g-¿�ڧ=��v!cڭ��dg�K�
�$��*��5���$�W�-����(���3�# �|���4�!�՝c�v���e��*��ݰ��zYgW˟����=zWް7l<����j�FNCӲ���W}�3K����'�Ǩ)��3N���4H6v�vZ�'������
�{��CZj��\w��Bk0)��%Һe*�M(�)0�o��ϒ^g��㓉���K�9�pzB�,-�n˫j"d"��\ko�͓��-"?�
�\�t��V�ܚ�}�C]�]i'�.1dNkSj�e1�<�����X�K�LX5#�Ҁ��Py���
��(�b�>�W�Ug{\�3�#J���$�Q�:Ҳ�&b-rK9�(s�`/)��T��!������VK�JZ�_�jбZ��z�����v�P��ON�yV.\P�F�-�"+HKJ*P�4m��(Tv����"�P�(k=�U�B�m���r��u��ܸրQB��	�c�i&]V9�oe4��ϩ�n���ޮ�e�:ٺcp�P,z�x�Y�)��G>�����{=��}	��3?��'py2��[/8��ݣ|z�Ra||rZރ���x���3V����v��s���3���U\�R��%v�*���4�NRU���39����<`�����f2������\�X�IJB����O`��j�\�y٦5�}㛾������K'^|�%@��H��)O�2�a-��CQq���۞�E�T�Ptv���SG��=7,
�L�
�#���.�2I`�0$ڮ�sQ�#�Ҵa#�)d����9�(-�Hr�e�F�8�����N����`q�	I�$�Ti��DW�_����s��?Q.{
])F9��L��%��a��'դW~%(HuF���B�(���(5�6&8I���<>�{��6�����;�NL :�J,�(�G*Xg߳mGH+�t�6���E�[/<kӺu+a��;�<�2p��>2��g��&`.��$t�I���S6�hK�rի�jq�03Q-���߸�O~B#��tɭ��CG�������PU#�\_-b�qH}Q��^�+<sO������X���lm�aY�d
�[qC�or�JjHZ�|�o.9�G�}ן�g`ホޕOpq0F�B'���H�fn*�o�o���y��THT�D2��L��i+��S m�*�n��U~�b��Z��'B3�b�A�6���T‚�<�M5M�j�]m��9Q����=���䚩��J{�"Է1p=�G��rE��Lb,�Ï�_�L����"g�x��[�޸uw�9h�De�I���l����?���(r��!�"�^S~v�"���E�S��$	&Mx_y
+�`HU�ѿ�s�2�Ct	c��;Z�'"��;��٘~ӹ+��J%�����=IW��?�p�7t5��;�$�Wiw&!�d��I�v�v���������N;%�ݚ����D���ƫg-��
��r�矽I�#�9̕{K�A����1��fC©�����4�C��J%��?&���1E�i˞]c�	r�\Cf�a���'�[.W+�*
�xV1Qi����Mm��\|����{��/�%�GH����T�]?q�7��ul�z�c���E�"r�QJ�e$3������"|SQ���|5e���<V/�u,5�f�Bw�~����@�6H%�r���52�l�:QY��1�6n�٪��BOfe�MOL�����醾65M�����+~?8��)�O�eeA�w����Z���v�lnl��#B~�T�E��[��3S�>�����$���Q6��Q��f�BQte�r�	"����jl	L�fg:��MAAu�S�JGy��H���Ra����}���+�4�d�jɦ{��r͟n���ec����
Y'�Z$	f R�a0[.z#iu�4l�J������u��=�t��Z^�����u�O%�b�*~�n1��t03� �<Pn�@�+	6M#�usTm�
�4˻w��s/x��Jq$��n����sR���+�7�{��[�R��M���Q�ȿ�-��aۃ߹����*(�u�󉛼6�ͦ���$��~Xq�\*��w )#"Xŝ�q#����h��K<�I#�$�t6)m�PeTaPK+�H�,c,b��rJ#,�a�z�qZKo9��S��,L�p��7!ו�*�I��`�n\�sI6y��ëEɢT:��O(�(Pu�pb"�Ԓ $���%Y��[���r�|�m����ik�p����s��\��"Z����,������r%�%	��ҡgiC�B�P�X��cʋ�W�i	y	B.*L�Tb�똸��R�k��E�r��p>�ҥ�~���z�G9��-w���YK��3һl��={��(e�uO=��N.J/9�3�U?d"�n�(�N:�3�i!w
dJZ��+�i{B�Éj�-נ��ACS
��Zo~������aL$������"�5?�
��PZ���)M0������$��I���5w�w5�HZ�2
	���͌x)������}?Ry����R������|�u�ߺ������D�Y:W�]$����=tKխ�~��-M}�[zxEWO�K�-f~��̪ɈX��y��J��ˍ9��D:��<d*׶&Qw�'�4�FQ�:0|fbTW�`�����A^�Y��Q*�,yca`
��j{7�[2%E�Ḅ���knB]��-6��2IzScC��m�����d�pifb��f�����N&F�L���v�Ƴ{}`xfp<��J�H�+K�SrZ��%�ɺ̪�kf��M69�q����P
AE"��9�7d��s�>\!���T0���U�i�8O�Q���W|�;?�Jp׫v��6���:w�y͋��V�9d��n�{�v�~5�g
�(�N�\��(!J4R5er�1�hl�S�eI���k@ZrŹ'����~�螾5���|��O��8H�j� �j��d�Xc�6��� X�-��Zv�]����ϟ�?Y����~�]����(��!NU�i� Į[5�����[��X�N���~)�N�?���!ܲ�o��?�S�̗��ŗ]tacS�u+h�-ԐH�u�u�r�y�w:V���^�ri+�4�6�V/�m%pHW�qa�R�L�Bҩ�|��?�ߔ����ꆮ�6�	��X��pyf{�2�W �?�l�"�����
15��,�(����MS�ɱ�L$��d�.LU��V�&GϽ@\��
g�5��7m��g�B��8����t���р�\�)�'	�m�v��Lj.�HC	�CGP�h�Q�J}�Ƨ���fV8�6'�|>N�H��T� ��R���u�Q��W�}t�#���5�<mٲ��0����sOk_�rƧ�h�`c[�̮]}��e�*A�	�$�J���iK�&�O� ��G��청��NR�s��i���_�›;
˲޾}���
����QUJ��֐`���T��U�l����$�&�M�l|�k/͗����+��M��ҽ����������r
Z�;�c��#5�X�3�+�^���F���k>������S��v���]�Tz| OL�-����Q�66e�w��rbP�_�
�D*���5s%���H�!UU�g��4�2c��-�XG!�fl2��	���s��mMS�/����Ǫű��"HR��`"Ґ���dh���j
i1?P��j��H��=�5�)��L�Q��!	h��
���Wλ�r��j�%�Db�SR�D-�t�(���� ˹�9�\�n;�vz3�f�0�20V�)�3b�(K�8QM������Ž�lڸz�YC{���[����Ryb`����1�KTp�	�Q����s眛�m*�wiH�c��� �)7�	V����y�t6g���{�'������k�Z�C,T'JJ7,	=.M]Iu}pd`=//2X�Ċ�D2�N� axp�#W^�ʢ�OL��+�LZ��Ne&�j��]�Hp� i�n��m���y�
7]��F6�!�'�v��՟��$���SN���e��d��� ���d:���wLg^�d������N&��N�^-9���HR9npU&.�Z�i[��Z�D7��J�(��3�ò��҈�ޘ�S�FJ����m~iTZ�U���X���E<�H�I$Pƹdhdթ�ܩ�m��%���@�o��;cbz|�kjf���P�X(�&�VBNtR��E.�ئ���*�e�5 n����$�M�z��+*����W	r��h��q�� T�J�tT�$t�<��
��g�o~��W%C�L��T훘(�Bɓ��J�3U656]n]�mR�9T8�W�h�$�a���io,������~ubhdldL��X���ʮ9᪷}@��f�kMޘ�&"k#���mʧH�n��=i懒ѩPPH+3%%�"�4�����،;�D!I[ƞ;�lc�@
�m�͝�t���@~�*�H8��'��^�G�����z�4ʥҥ�xy��a.��4�<8J�����wQ���lC��
\a\wc�0h�R��O�����ʲ�<���^��z2&�8ȃD� a�0�)K�2e�ڳ�MkW:����>��kiw�DJ^Y"E.sH��9�&���/�wc�W�w�u���A�`@�8z��
�����+�S
l�E��V���lǰl;k[-ł�:g;U�ЈZV�
�:�������A��0:b��h��+#A�2N7�X�ĕT}�d#���Y�7�y����R=
����)f3�TS's+Wy�։#�F�u�[�
y�ɝ�Bmm��0[ ����L�޴.�\lu�7�F��r�t�d�еj���3�(G�,c7?�9$�|>�#tip�>��sr��B?mQ�#�8ٜ�m��-6
#S'
��#�үaVdI[�Q#h֫�;�1)�)L�^�rU��9U«r��z�8<F{�4��+���>�2�z�V���=�|W���yg3�YDzh�T��� ��f^��.����$}n��*���n�������a����vdթ�ꕙ_����~��g�Q6	��0�z��C��PM�F`�����`���R�н:YY
~�{�r�T{A����Q�P��G�vR�s����F#p;�9�Ǿ���g���nN��c�v2io(�]ƙ�#2l�VW�7
��54םj�����N�"��MA�L[r�^�B1���0��ڧ���,5��lg���2�Z1Ǐ�용�������P(LM���k)��Ț��h�c]���j�71۴��������dE�:#�V�{���+��u�os��Z��J�SS#'|�r�j����aܴ��]���m�ْ�L�T�و�7�2'+F¢m�V�8�����NOW�]{��z��Z�.��ʧ����4D�V��,pTZ��p�,��L.��K�՛��8�L��d��Ee�y�t���E���U�p��b�����M� Vz22U��Ȉ*��C+,�z����۷n�V�63�g�L��	=�$���ϋD���Xe�c'S��_y��Yʥr����8�R��t	�w�C@:��
�N�;0�`0J�A��pzs����ɲ����+������u��Z�?�s�K�_���o�8��ٖشV@]2m�2Y?^�5���j�9Xe���[k�.�İ-�0��B��"�p�Akg���]+�ь’�dG$љpQ�s��|��d�.�ޖ�������X1��<p�h��T�樐�s��a!,J�.��&ń���#L
�U�jT�-�B�b:�(��_�����n�c&�^uـ��	���FըU���
ֶ5��<F97Y�э&�%ݨP��j�~K�F&W��
ÌBp�V����>PZ1��Y#�Z*��$,7�F'W��r�Gw����7�w2�0�;��M)CRТ|��G�n���ĵ+��2��`�.�;I�?�(֬6[u*g�b7c�
e^U.��ߙ\�_�]~�tY��+�*�8O�P�I���ʦf�E���'��k^�t���uK9�Lg�0��hZ���?�N����H�u�=5fM���s8x`���2[��f�2遹S>��d�:(�7�{�w�A���f��@Nt:⊼#�1�HTK�P����͙��2�Ԧ��.;32:^���٢�����l.�3mJ�Iy���7}�\)Cה�E<P�wU�D =3`L.�!0NvƲ�*P��(�0��g%)���%�I���	r��az[�/W���c�WP�K��R=s*%d6��V�QiT��	��:�!�����1�z�fܱ-����܊Tܠ�u��&�.߰
x���>t�G�i�V�6K�1�v�jl�F�EJ	e���Զ��곱";��xWȳ��̴(mB�SJ���*s�G>Mh��:T;%��]�U(��v�6̤Vb�@�Lf�"
:U�230��.�����m��6����S�d��}��V��E��^
|±�L��N��SBWޣ=�5q�����Q@�
�T���ti��hk��v�Q7r��!���)��
�:>dy���x��
�K��5�b�0��gph}����^�Q�֛ժO�R}�=��0�������S�>*6AD/����D�(? /���
�9+35u�
�p���^\<K�#�=J<�� TQ�'����je3Y�,�|P!�GLG/��E|�놁W"�p3N>𩢐e���w�*�I��,a�����i
�0�O��P5�|1���ýk|��
k�Tڻ�
��e
�2+�k%t�'�ʫ*e��x'�yF£J\��
Kǻ�o��O=Tɔd�浦^��	+kmhmK�3T����.h%�8�OV6�U
�R*�S������4)[�۴�<�@8Ω#�F��3L6��ʌM���	"��Z��A6��ڬ�'BU�
�y���_�_�4
����JVR'��Q
��,�I�H�Sq
�P�d�
!�4��ki	h&�HSӽ���ˏmܼL��VJS�/��Ԥ�h�-�)�Kel��X�Eʫ��ES�8/�8t�Y�1:��3}�>��za�4b	+�b`���ӡc����A\&��+o&A^�Bu�Xi�q��Q�*�
�ݧ���P<�����D�Z������%"cK��}�v
���o}Nm��t4m�0x���#Ǥ�Xr�,���]ȭ���S�Ɨ%ӬnF�D+ۺ���*�v��핎c�h%!װ��*W�2��5�t�KRvi7].�8m���۪R��;�B��RBB����6��]�E���8J,Ǎj�ܛ�Б��ᩉa�<�)�8˚NY�R���m�}�Z^�Be(b*��@�.T�,�p��vI����sC��@[*�6Ҡ��D2d`��8L�$1nj��Hu�7����C{�	�^q���))�҈֪-������՗F����Z�R�*�F�{����N�h���y:ݕ�Q�w+�S�&��f�jix�x�^Z�~KO�k8���$��4�\x���"L�R(8�T���.��Q�I�6
�9ba�݉}&u�+>'S๾[��'�F�5���V�Q�#l�,#�w��K��f�R6�@kq>���o�,���w!%1�����r���\pH�!���N�)ڽ[�3Y�M��:�K�:�k$NƁSb���O*�
˶OW㎷K�H�{FR�Y�����;���t�*����lؔܘh4���nrL��p�gq�h�\�v��@��e�\�xY�O��=K�ʦ�3��^%�Se8t���l� ����8�|�P:!U;G�����Q�@�Al8\��Yr
�:1zz��^��Om�x�#Ӳ�;�8�L�0����iҹ�B����Q�^���1�pgĭ[�-�	pz��fk�T����m�̶����D*͌z=4j
�
���Sf}po�i�ʡ�+9���0P#B�3VKC�S�(��5�����r�BZO�FX5������*S��
��o�.?�%�2퐲Dɀ�y`�ѵ�`����$_������K����U��}��KGZ��݂w�6�1Ӷ�
A��X*w�����N���@����:���ea�T��c����C�U`A�&�F-��fl��#ƙ�YW����
/�����N.��gR�s�!�}�x청��`^:�2U^O����d�b��8!�R�6�%5ʜ ��6�,D��u�V&�G��ew��{���_�C�G�H)�)�hHf	%�+��Pnt���3M�Z�;��4�Qu��ʐ��AW��o��f��hК�4C[!�b��@�M�d^��$}���P�e��۠����tN�V)�k5�O$�Sq45��ZQ��{ҏ�nٲi�Uq���T�t��F���?��!����tkݫ�Lo����3���]d�`�u�hg�LAA���΀�R")�/��ҡ6<�Y*8��a[v�Qi�N��u}R�T.a�ρ��J��$��W�!��.p�f�k��9��o�g�
��,��>2���V*u�bT;!��-T";x�P̰�L7R�(�as�4�l5
�u����@�"�3�+ô�^O%<�b
RG
�l.������=�9ub��6�f�&� 8R��
�(��⎥�Z	�P�f�'
�T�W��a��!+��
m۞ҐE��o2(��h�8�BNN��fg	h��ڗ	HH0Ɂ��	�vl�(�%U�"9�)u0A$�o��-�b*Q
k�nhJ��i���/*�MN9Jx���<���a�W朞�1ǧ<�ިr���,��:.ިt')s��gIm��|
�7I�O���=A���ԖY�u��b��tҁX��$����7�4� (�@H��YT�ʜ����'ݓZ����y��I8ĜdX�����es^�5r�����<����h�B
�E���e�%
��J�v%S��Tw-��V�6�hAQ�B�ؖ�L�$T�kGQ�/��zǦ���T����T�YZ���pd�q E�ʌ���R�=n�̄H:��V�%��ء�u;Dx>U����T�l���
����2Ψ�*m�����y6���G�r(�ʨɲ2t(R�C���jn���c�Ҝ����ƭ2�/�餟2^M�
źQ��!N1�l��3�+R�ݻ�8k�WI���)C�>%�^f�T\"Q�%9(-�T9|(�c�;��D8��5}R%>&[���wۡ��.B� K���c�Y‡����m{^��EyG��U�|`P�d�9221�Ov�r^��5ǰ#����T�l�t�\T�tZѤ���em�2�PȢ���T7\���e�S��1�9Q�U/�(�J��s�~5˕o֬J�h��1�<�)p%VD
��*W�N���V�Fu�1�J`��_��o��(��\�A��3���f�2��C�`y�>Bp����%CPi4ʸ�3T�'%�
��M��x�*�H�~�>�ۡ�P~ I�z
ٚ��?U���b���؛O�����vYiNuڛ��J�/�ص�Mr�-bnl�5t�!9},�������KM�a�%Y#f2Vm�9Ri?��x�>Ɩ�w孜�?M��X]�6�穤�R�&PO�<�v8�6D�F�g(��P���2��g��=<�ls|�ղ����W���۞��FU0���8�.T��l�hTi
�/�����	MD�ߪ7qU���DۋKa7�T��5%��g�T ��u;-�
s�C��^�8�%�9\�}��0Bƙ�
Y�4�`U�N�3������@g�֝�**��Պ?6��Z R�8�k����4�]L�F��	K�G:�����M�ʇ� t��[���A��p���ʱKyaϮ�G�Ǻ�2�O�:x�O/��oG*<H��e,���|�����]�z�f,u��*��=�v'��܈d�jըK���%��F��Ʌ�ͶW%�'�D����VU���a�+g�� �UH?

Ǭ�P
��Ci����)�5KX&��yo~r�3�F=̕ŕ��n��a<8�b�k�
����T�3��V9�FJԁ�!i�).�}�lr�K�U4�u��j�Y�"dD�9��d�8�N䂦�Ĥ,B'�-
������庆Fu�i�?9�v|�R^���τS�Y]���:�0���x�4[��U�C�kL)��E��ղyU�-���SA)͂����F�	���F�2�*ը0<�B��!}�fZaN�.[�i���0�Y�%��`�[e^�z��+ۓ�|�$s��FҊ�$q��*_Ja��"�4����&Fo���ё�o��/k�2z�U�n&���q��4��]�w1��$4R��+�F�!A�0
��J���U0sV���X�T�U�'�T�_�l��ZPrP��e�VP�iP��|�,i6(xS�+uh���Zn��$"�}	<��g�8�=T5�/ ��+�,���X�|2D��
 �6�M�ڰ
{��^��W�'�+y��
W��X�}����ꅠd�R���U�
��'GG���A��X�׬F�bqEO�:v2�r�J�:14�=tY�t�P���l6݁��jeJy`b[�N��ښ����6���@&#ׯ�Ma�jղ}�7�ўa��tkMg�%L
ވ"#㷚Yr866�<�+{�Tid����.��oh����*�k�@�2�tPǕ}H���,�%���S�˛a���\���N�!�/�d3d�Ԯl\�b%�$Dy-_9��|�ݰ16��d
Y���A�%�g罘�@pp���?�[�JFh䎋���h�ܱ�뜘���UU��Z�#�S��D��JX93[�,U�'o˷Ly�
�G�Z�T�D"F��Z�!#c)�fx�)vO�a�>�8�;����!�
7��8��8�.~�O���j٪Q�v������z](�����ٜ�i4��V=
������|^��H��u�X�92��ukc�;b�HN�޾���T�]�f���:�ݽ��'
�9V��z�o�r[D�Mx_�w���б�l#[�dgM��|�Y{��G����K_�4�U�@O�<ǽ�Z��\Q�g�����V�����[��X������hv$|[�Uy��ȰE��P�-f�r�‘��x"���x˿��t�b�	�������8?ʈ;���0.r-����������6�2�r��u�td{4I�R�sCX'�݅A���T�g���.=�c
e�`��Zeh�Dձ%�E*�jZ��� ����u���4�B%:Y�V��.����~���H�r	<�����Gy�?��O"�^�'��t�_�R�`[��~���/X��.��eI��J���GFG���o��}x�R�؁����'�8�ߤ_�z���'��KےZ��ZL�>eY!�Aĕ�e�M��%�jӎT���?u�-fҼmEH��t<�W~K��!P�S�k;_�~���i���֮1�f��[���+�V�h�bW�ٓ�ر�V�|);���+��jﴽ��w�.#fq�ɞ˃(�_Ě%*3�,y�1*qZPU�"Re��a��L7�:;��@���Lޱ���<[��D$c�h>��Y(�?�(M6�������"0sdQ1�*�Lv؇�����Z�`E�!��IQD�Mp;T�V$*�I�dy���-�Xl�SY`IE_�R�6��v!�I�e����T�U��l �O|���<�Q(;����BW�ౣ�l��.i#�vL�_O<�5�~�9�����u[R��8N����+Ǐ9q��E��L�@�Hf;��=��O[{c��k�tww�&�HƌX6��f�'FF�<�ݪ! ��8�J]������i��9۶�����̈�j�$�&�ak8��DP�'�n籜�b�I��G	��2���6���cCCk��wEڵ�L��9�n��*NK��?&y5��P��k!6��x��A�C-O�Y/�L�k�4J��w����]x���uD5��B�2�9!W�zQ4�g�#C��\�*��\w_���أ^����r��0ƙmf�<��h�ά?d��jT�>�虔�C�9��(��T��d�l!oe,m]�J���P��8�7{-Ϡ
m���\+U�\-�`yI=�0E�@/�JLn:ڶ��j	��PO��Ħ��Mm<�쓭f�
u�$@�fn�ud��߼yEe�(c�agt���X�}���tѦ��FF�H*$+�I��M�
��Gn�z{�5�yMiU�r_���/<��������ß<�|�pb�́R=��S4&�d��t6����x��N�/�c�s��X�^Z@%\�����/ޖ/� �[N�<�P�ZW#��秦�_�KoZ�{*
%<4���i�EQ���L��9�D�c<����te�u�ϥ|	�yN5�-H
�lv�$��C��8nH�D!��n��(�ŢIu����î��]E���UKڔ�J��eb�s�N�-c�������:�=RYO�$Œ�С�yf��UER�]�H�G޼>�Q'cg�L16k�86XJ�*|	�mZ��?Y9q`�>��o��#�_����V�������^�v�:g��k/y��G��o��S�Kc�\!����qd��j��|��˦ioٴ	�2����w?�5�����Ay����e۷Y�P��v�kכ�z����Z��u�[�_;f�'��T�qM��O�Ŕ��6�..B�5��D,��*�F*���ȦL?���,1�����;�j}�<������<s�r�i�!���;����GB��M���H�?Ee4�z�J�놘G���`�f��	�dJn
&e�T���ЧD�Ey��n%d���J��CO{[W�M�&3�Z�ΈsFH�'���24�� ւ��C���qȰv䗼�9��K]؁�g�d�Y�fz�*�A��f�����緝�/Ιߪ5���c���/T�qQoF�
�NL騾J�"�N���}�y񅁩���}Ν���5���:��ɲ��y���}l��)A\uh(oĩ�{O�{��O�8��6r�^�4�^gY�G���]7%�3�çFv���_�	��\��Q9���+icǁl��f���N
|�9Y|K9�)䚌6��}����bN%+���	�f��5�j̶[���˫&w�W�֭��='^�[��"��������^ �]��;�W�2�D9r�+��|��lU�eb��c��L��R��B�4-�n�.�#�\H�/%��ܙgz�# �͌^�m�"+7�cQD��s57�W�:#w6J�g��B>�V�^/v�v�i��	"��Ky��4代���ĀA��Q�,^�^��z�2l2����ׁj��r�^sI�G
�����zw��u�t��EC+Xw~���7�`���5[wl���W��ā'<�����|�����xǝw^�صT
B�|�ǟ~�5�V*��o���u���(�"SS#C/��ޏӈY+;N*Uݥs�X�w)Ў֠ެO�� ?J�5���zyT���󏙼Q-)�Sx��%�r�QZ}���*���_���=��奿l�4,ܰoˇ/k6�K?��lOv䗯��[�`��S�#j�킑gy��dZ��<E|ߖ9�Q�XH�·���v�be(� �Z���ߴI�E���pVL���?�_���LaZ��=ū��*�@}&aI��7J��x���6]Q�$�9��l��~�Pj�P%7�
�a�Q3�
�z�B;���˕J;�
y����L{��m�u�V�f��%ȳ?�yJ/�w��"�U�:�	k��-�l��0��ͯ�����sטF�7Z��o���5F���
;����c����b�5[��
?��e�[�Х7~�}�7�^0>z$��^˵�'��Xq�o޴��N�?c;���K�ۓ�T�q!Q9���>�k�,oG]��l�A�4��b�EtSn��W��-;�U�(�7���Je�w���|�����K?|���޺i������X��<���߸��g_=���M���E~\�L�KK�\x�����u,W��Ma���Z����@^\��O�!��W[�2G�
�m�g�e�,Ǥ��Q�:����e9�����j��r۴8t)�G�Z̊��Ѯ�}:��x�Qv×�8Q�3��J�8��P�&w,�F~=����0�V˔��f�](�ʆG�y��Dɮ�yX�����:�oXTǾQi�j-KX��k�,��)X�Ys���-�-?r�l�Rf�н����P� jUJ�LNf�\��{�������	�J�l�jFT�����ֳٛ��C7k:W}����5`�Q��m��N��k�&�F�]�<��f�Yiy�d�yB�6V��l��-ϧ"�J��*���7�����7����|��j�;��]���Pe���'v�/d����xd�wl�wg��5���6s��<n�K��m�)����+x�#�����&3�&(�t�He��JB�9:�ŮRXx�y��t��'���j޶�H���^�TcM�u=�բzfJԚe���fT��x5�g�yAO]-��3��m��b�J�A�7'�ca�~�j��,�z�8�Ny�Ćf��(هXYˣ��(���5kM��EuX�����TG{{�tL[�
��==]�G{�sAS|��O=�
&�S�v���>�@>00�L<��^��<Gw*�H��j�(f�%�a�Ȱc���̊�|���es�Z46%i5���Q��F�jU�}��W�f3P���I�1J5�,l6d�����ꮃ�<=�}P�tl��f���/��;���k���W~w�����Y&���`�"�ۉw����,��OjI�|����2�hD�G�Q��O�L���*�E�PA�M"����A��CZ���2��_���DC%�cr�q�s�G�V�h)����$.eP�W!e��������C��
pf7k
4��&̈D�;Dl�Ŭ5�
a�-�Ա�T������A�p�N�'��:�ύ��[�3�G�R%)VǯI�F\Mi&
C,���T�m�@�D�^P$�%��%X��Y�,�I�.�l�2_�]����杵���O���Za
c���:y��M�Ǹ���S:2��?�:x�ѧ��}��[�M�^z�}V�b�!|*.ľ�3f/m��&��)��_
UI�kY�V�E,�9C�����\��!�`�(;�d2YAU�|�]}��"�AY�m��q�S��rR.��e��4Og��r�.�ɹ(���v���3�8M�]��ZOiq+p�zP������	��8�קV����*�&���?���ֿ�#[��c'&<���5��g&b�*9�C�3�g�X���u��0kQ8E.g��nӱ3�V�2e�2&ZFSF{�/U�k����˵��2��1ݫz&������ʋ׮�dm���7N��|���щ�g�m��f��c��nu13�<���G_9ngSe\$�;�g����{o3u�=$:EEe��(z�̑�e��Z;�F\X*k�P�D�f�r�Yᐥ5�:�TY��{9#q[�'y�uTulf
����T�%ݕ���l% ���q�(�=�b��Ao�##%�IB�`G�p��-/@�֑F��Z��6=R>	�3��1Z�٘�ڙ��>e���b�f�Ӝugs�S���x�����I^שȽ���V�*)EY�e2v�X�!Ce�)kA�v��nZQ��[v~����+?��o�
�!�B�c�[e�Z�j�oc��;�8����K�z֯��O9v>���[O�<�B��ޱ��/t�92�q��,INy�#��_�Hw^�n�ڋ�~J}�O*�%U�'�۵Kx�Z��-qCW�Ĩ�!$@�uȼ�6����u����emm6k瀣�SNR,�	w٬@E�`��$z�C����:�����	~N���b�L<���Io��*�HD��X"JK*b�=����N���#v����XI�h���Ua0�;R`�^�(g�_�i1�����`�w��)O��v�o�!�LV��c�S����>�>���_8><1��<�� .��a�0���;/����a�\}�+׮���,�>�ݾu�Xd���a�䊂��Ru�He���
CU�P�{[����1���tu"١����d&뤕"�TIl~���2V6��l�y��(�L�q&�Y�%�!Z���Rε�}*��=+B��+���_йI'�T��B��� ������@%ދ&��5�,Vi��S��m�OLٱ�&��LM�1i?�31��*[�~>�i4�Yi�h�E_�����(d�_�-x�!G롫&�5�Qkw�����o�:���D�rN�����	�����oǧr׆�G��I���ft��Tau`d��+���3!��#�l+m
|�U��E*�x���td��V(T}B��H���w)���Y���\��"T�l�kS,�
ؒ�K�m��.j��)���ӑa�	�T��ȑV�E5��:�8�#�v�F:g��O�f<ø�μ�Sٔe���ox€��x"-���[���04x3���M�bf��Llش��—fN��v(���.ۖ	E2c>42�h�gPG�bu
������UpovE�v랭�O}�8ƑܮEr��8c6b� TM��K���e��-��N�*��4��je]�gI(��#�P�C����m\^TS��$;�����(��ʇ"хފZa!�M�U�O�4T�΀J6{�-�f77�"L������o/9o0mo��#�K/�0u,�փР�uL�8��IBa��ƏE'm��Ҷxk����j�FNmT��mO�j, �d�b�p�Qk��}�=v��N��xk�..�UDu�EP��k��{��$fH���k>v��:�P\��4�V�oQ�[r�Hn�)e�䑉��v�
Uy(�p��~��{�`�u)�]�Z��IgD��ϊ�3n�zL�1��Z�6�.�3��\��N/��8�00�#"�Q�y&�J'��Ūb��K�CwT�d��BW�q<���ˀ�pL�}�*x�R;(�"��r�<���I��$�����'-rW�^�,���D�e�I��UU�k�?����R�k��_h�.�
1��¶-[I�RM�l,u?>�x��B��\��b��p酪R^��ϓ�@W6�,�c+��yͦ��W?�7�^N)gj��ɀg��ёNˈ��2�O�,���ٹ�b��$1�iU����3ܐ�dyKf��q}��+��E��8�&���;�ʳg���y��椊#��K�Q�Ce|��㓫*�Q�M)�)�60(ϓ/B��u:��L�H�M�0п�4��1>Z6Y�<ϣJF��i�2��5]�eǻΦk������i�����gmy[ޔIⷦ?�ʏ����D�ذ�f_�����);�ep[r�b�\8ӈ��9äP��iy6�2�e���r��L�>�@U�����`%�W�+Z�-m�j�yFHl'����	��`/�X�_M���Z�qE����M��,�0�ⴥm.�uT'�u�rip�ۆws=�y�B`�wI���mL�.mi[@����%x7�.�����cs��;Eׄ���_��6/ޱ���|V0Y���cs�����Tu)̥-mHK	��IM�_�J��N�[��EBҼ(��\���["͂�6�݅w��h�H+��]��v�;S���+�u�‰�S�K[����״-/ޥЖ��]8��snf�*iK[�R�;3g�������2MzN��J%���eY�j�u�L&C5+|����0��Ţ��V��r9\�ϥR���Oh�Ѱm[?B��y|ŕ������mĸxjj
o���=���h�Z===�^�f���:�300�o��Ւ���u�Ww�JC@o��1��/����-�	$�M����1�cg��
����Q��x#ޅ���<�qֈ����<?��jz2�N�o��d���Ol|�+���=�:6T]�'
����'��w�H��	�A���AQn��'~��1EN�\�e�ަ�Q莹T�-�Ǟ���-���?��i�ҏ~�'Nlٲ���W^ye�ڵ>� ���^{��W_��}��>|��ѣ�>��e�]��A�ַV�X"�~�k_��J�

�>q
h?=�/���c��
\��h�������#Gv��566�a��
t�<��s����pDWq�={FFF֯_\��w�{�С�۷k�n����F��?z�O<�Fw��c8?��O�{���������?�����ч�+W��A�x�o����7�����v��o�Gy�>��S��UW]��o��Dp%:��&��ӓ��o���	��G}��'�Ij���O���?��+��`��׿�ܺu+�<p�ƈ��+0�/��^��/�1������m۶�z����p
ƋEĜ<��cx��ݻ1����	�����o�F,:u�Ea�0|L;��W�Z�p�������:}�n��@�
7��m�}�� xh�;��Q�x�`av��pb���n�:�⥗^
�gt��I|�����~��������?���>��O~r뭷����7��
�����@\�����Ao;w���+�ԀA����n��~���x��NF}d(�L��M|�1���M��k��(�W����s��C<䓟�$���]n���ދ�$Ǵ|�Ŵ�{�����y�xF���} {��cD�\FO������
���0�O8?�����p�\w�u�=�b����/�
s��'��#���ś�4�y��#���ہe�p�{fF�
���c��-ƋI�c��
@����$�����v��-���/T��3�PK@��>c���ė�	 �N�т��x��w@*�3�?���>02x��\@dǎx&���n�
�
��2�
�p�Y����o���=�ex,���'��'���j�č�N
|�􌻴�{�b��j-Z�.��˫����q=���ď�1?��`�#Р'�#}�g��������%>Ct��j�@-�&������[��Z�F�L@30h��a��I�X5����\��td����:��,d�+�?5��p���%�D��a��+m�,�]B���������g�ݬU]	��z衇��
���4�9$5�.��l���@-�����@��h�tȨ9�>w� o��o�X��@�A�l��A0�
��wA^ʔJ%܎Wk|*��4Cr�0�|�@Hv�j5
�`�����x#���	��O����L�H7�c�b�:���k�����v ��u��vt�2xF\���	��sp=�<gӦMxX�����\s
����x�nkEg��.���ez�HC����%�v��L&'���w7+��r
K�܋;�+�~� �N�G�_��x�%�\�XZ��A��X��h�<���_�2 (P_�</�t^	�5�"6�,���/\�"��ů���+�����~�g=�$����!����܈���i�8����$�;�;�į�&���
�����.�N��t��w��q�F��$��f2�c�=v�M7�Om^��!���X0z�x~“�@���LB�?��G}t��Aa64��a���{}��s����ɑ��N�;L��d �DP���'MK�3�8u��7ߤ���O7�0�����z�H+� ΃>������A�ۼy�fO4��㏃���X��V'���5۷oǿ���Z�J�E[��!�h�_uo4�dp@�RȤ�ƪo�bG
:x��S�������zP��D��]��~�a�W����b8Z>E�Op���q/�Fb)�$0n�<
��;w�:S���6e:�A��1m��	�b	 ���ҁ�ߍ�a0!�h�ѡ�+\����j��x/�e�<$I��+p���o׳�ч����15V��&�.`�Щ���:k�t~�H���,�� ��Q���|�[������.� X?�Q`	_}�U?(��}/����x�o�� rP�
7�<����5�t�FwU�V~�7��;��@�/~�x2 F�*���}7B���K�J�<��g?�����7��M
��{/���ø�zxڱc� ���0v�#�A���0|p�ޅ�p0b��-[�`B�wj0.}�|������Oڤ��@��B+f��C��:	���7&k�:�>g1�+�[\�%�b�X5�y�2:�N!/m��%Qk�Rk�@������� <���X	��A���$4\�\���O�:��@�W�*0X��E�:/����;E9�Zp7���,vr%�~�`9A$�n��,H(���j���
`'�=����N���78J\&��k��q@�u�x8:�L�Gt��	���Sk���J�{z�@R��d��[����xqW�����0�Z��|�gU�B��i�/����6|�9���X|���&�B�.�s���۴i:�W��e���ה�N»d��ھ�b�;���1�[���䖹��y�#�}ȼߜ��x�d��y��#Z`�O7�s/;�1�n�9���)���߱���#!qH��zl�t��5oV��i��y_�P�,�����\�8�sx�靕�3�VgF��/~���f]<���Y٭;��t+2o��3i^Ep�������s�Ϊ���Y�oㄜ-�y:Vq��2g��Ӗ�_A�K[�Җ�����PiK[�R�K[�Җ��Җ���-Ż��-miK�.miK[�R�K[�Җ��Җ���-Ż��-miK�.miK[�R�K[�Җ�]�Җ���x����-m�J�L�`i���+�-mi[L��tg�C����f}���K�*mi;�Z*�!Że�Y7�C�Җ�32w�2q��M��N�<�:�.Ż��mtK�N���E���i87�K�n�Q/��ݒr���.ž��m^ƍ�k����]�:o�|�)ޝW���&�k�z��2�iK[B>�x��:9;>����x�d��	j���KuyiKۙ��Y��Ԋ�lu��R)ޝ���n�9��Hi�O_0/c�+�q1�t[�Kp�x7���ӵ�u1����[�=Ż�!�v
��41@�-�PF2�f��L�^�9s�%�W�ŗ��������k�{&[�>ߕ�y3}>�[ΰ����b��җ�LZ�|����r�M�8?�u��\���z�:p��;�5C�PgHde��'�^;�R{�ye�:?���Il
�Τ0;�饢�)qxI�uTȥ�h	��4���iܤ�sѾJ��HڧLDR��5΁^<R��.�B��_�Ġ�!�k���X�jQ�;x�(��w*��˄�N��Qݻ5������^MپF�[�w��C�z�M/V{;��1}���Л
�d`�9�c�f�z��j�#�H�ڥz��5�@P���c��P}�����2��:	0��M�d�f��`>#�x�����aJ_����.�<�1|��[&C�ͱl��1B�O
\��
5��z,yD�O����&�D�d�4�'u`��RS���P�"c��&��JEPQ�}r�	�1�g�m�xz�G3�yx�ֿ����H#gm{\#�r/�+�v���^�v��/�^8:W4o,�\�TG^|��WS1SdSx�E��Hv�	�O�*���'�6���U�q��/TĨ�����v���׊�~*4�����J
�����
��+͝E�N6OmE�0��S?�e1KNJXFr�β0Lv��pS�������x�q�X�;b�P��_#���a/��2/���Lu����������'��8�B��cד0 	pir��~�w��ɲ,�/GRo>�x���!Ӈ|���*�t-�\C:�5���D�%�Q���1�}���Pmq5]��W��k��zQ���rQ2�r�]4a�Yr��y��2^�5����0Hi��Χ�g���}ٞG��P�{ >Sۧ��L�=��b�B?�h�}����H��t�F2YQZD��&_�$B!9���W�X)����\�uԆAZ2$H����K���z��C=�vH��|svq#��8�\!�R�k�K[��V��W<V7��/c�o����?����A�$���g���_���O����s��j�8�̑s&��~�������!�f�X�h�M݌��|�/�O;#�.ZcÓ�q���^�)Tc��4�_,9c�[&/e�6��a��6�7~۶1�.�(�h�t,�	��&x^�{禙q��*?��g�|~]�i����R
?%��k����Z��Y*:W��Gr��X�[���d�-}�g�~����,��#LB��`�I�niY<|
BN{N:A�Ķ��-��.�r$ƕ"<�`�@�Y��)�-����<��(L'.�R�O#�x߶��m�����6"m�뺟����?Ѥ��$"�Et��D����s,��4.oi;CJ#Z�6��Y�4kͥh��ebBel��r�!��T��y���+M�:�k��]���i��9 l�woU�e3C�b�*m�3oe}�!�
����#-c(��HD�D��6,�`��Q*��b��ݗ�6�� �K7C�3f����\��җϑ/~2gsl�K�s���cp+d�7GX-�y�Er��M�w1��$g����f�E���	�Ѭ4�=�W��УCLa�	�=[��0
���	q�r�c�#�3�bĢt���I٨y�wl��.��D�eDahp������wJ�ŬZL�!yN$~pK��D�ly U9���W�<N��Y����x�}���Gh���p����*�vL�t��3�#�4#�k6z6�\��22Z,����4�l_���M�[nne�U��G'Znu�ΫDov�Vw.e�΂�2�s�ZWz�I/x��q�V�dz<c���19�gg�(��Д"�ɨe���%�C;x�Ѩ����K�G����v|�;}��o~���/�V��ܲ�G���*���~^��}�π��l�ݾ���K�x����ɯ_�89v�}�:�99rŇv�/ʇG/��{ݕ�~�⦝WL��Ҷ8��f<�ZAn��o}��'����+7�|������g����7����];�&׬����<wZ��\�Q����S��r)юvT�%�r���.���>�~��dȗ�ur�0un�H�ni`��a�Θ��C(B�0�����޸��?��?����y.��ը�w�ѧ{�y�3���
���{�?��a�)؝%M���2�+�€�)ZC]��B�+2�r$]?��u����v2���a[�&��X,���M�O4j�B��9`�B�^�4���`.����$\��1�<2��Ldd��"���F�ӁS�]H����$l�:��~a��>r��
C�WO]w��/������?n~��?����7
�;���3��ųF�=p:FȌ�Ԯ��R��� �	Fخ��E���]��k�����5��a�~����$��ڶ���U*�����	�
aPpnH�$�|�CҤsâ�΁�K�n�Y��˓Iҋ3�� �|f|��{����;���n��21Y��z{�}�o�V���l����=�q)/�g�t�g�ٻ�z&�r�|Y��xw&ۨ:��b+9��p<`��~�)ٰ�������H���]�hժU��O��T*�Z-��-
��vϨ?��i�Z�yP��˾�B;�A�x��s?�g��u�2�����3wع���_}�g���-?��W��/��o��?�/}����_�s�?�Nϕ���S s�x�O��8�ϗ�liUR��U+V�_��5Z��U=]�'�H]�:�ְ�l6k�f��L���p~t�'��.޲a�@p	Q5�C��	���ˌw�ʛA-�G�/��L'����Ry����8-�\��gd+Wm��귞���3���7]y����Q>Qy�q��ඡLW��:��,v���Cy�
w��H3�FŖ=|�ʜ)I�p�%+�D/��`D��if����`�4��Lfbb�R�0�`@�er`�G��aI�h.��r�x
�ٶ�.�Y�4���j5fl,Rg���;M�l�p����V?9iH~�'n)���E��rd��mYk����k��htgF���d�����7��xMe);G���d�3����C��g�2�>\kNԣ(cPR0F��0s��5�$Hf"�k�^�/_�w~��=N��)�DV�_h�d]���?��3B��\r�mہj�+��bww�ѣG���'''/��u�ց�;��|(��K3S-��eI��E��Y��%��g�q����\7
�=A��(*�v6�^t�uS{F�?�Jqu�#��2s����0Z��Y�,k��y��UN�s�;�@��çB�2�ud1�����.Zu�0��RJ}.�P�q#~����F244��)�Q;es$͚$�z��C/�冑Ϙ*?)cK��Ie�3������
�֭��r;py�^�}`����s����O�c.mg�"ɖY��$��C�5C�835�"�S�
)Ln���1jG_����Z9س��DdnfzI��S�"��_X�s����%ڏ��7�����h-�F�y����^����Ow�n�'���)DW��E�2J�r��z͌Tg��n�
7=w�ţ���V��@�%c$Y	�?p�a��j5�Y(�́˻����;00���Lw��3�1��|"T�w"�6-ڏ4vWٌ;��2=E憵ђ������쪮P�� �o��#φ00(�rG
3�Bp���-5��Du/��m��?���n�m���5*f����}����10i0Q9�j�f�r�Y�1�J��\�Z�2���r�0����:�!������wn��B]��1���b���h�d-R�[�S��+)��K��	|��{�i%^�g����D�&
�a��X�o�`��Вv���v��3�vd��]y��;�t׳�����n)��ե��p�_��@�2Tjr�N��� TK�k0,�.�IH�y#[���lg����RLd[���R�bw��J�p�{��x�䧐�w��RyK�'�[qNѯs�Y��.v��i�ح=k���<�<�f� �V�?��C??�֘խ��Q�](d��:�i�۲n����%\�Ϭ�cxq�e3W�T��P�;e��LN�P��uT_GU5-*�r�-Υb��]��}��o{�+�����?�|כ���[s�J�{��f��*8tn�XN�U���AQ/)�-uU����`�D�ZK�e���c�J�>�ň����;���r<�5/��ߖ��#��?��#,�+3��x�}��jF��4��;��$������ݒ�}�{G�<?�e��E
#�����,_��ȋ_���uW��薻2O��9�{sO�-�u�UF)�I|H,/�Ю�;#��,do�(�v���j��&�w�a'Ż�a���;�t}mUכ��?�������'G�9���A��ӓ5�*�8��O־��8|�f��ڳo��g3\R�\��RO_D�ò
.ߗ�4�€��j��!�3L�����U�^SC� bX��eNB�$S�wKv�6����,�.�t��P��ewux��-�V�jo;[�jl���#�F�]{Q4�{�/�u>v��#�r=,��E�s��.=�H��f��8�l;14Ӈ(���p�o����"���i�Kt/�ɐ��\��`L�0��+gk�{����u����}�<��c��{��x��_6�yysl*۝�kN�����m�
���j�l�h�)N������캝���ڗ����5��Ӭ��ּb�G^+_�3��Rolں�헤�E��2V8Z�$��;]��>�b������KkH�zɭ�����P>�|'��G����GEL����a�v��C���5+��]�S/�7C�׼p����S��>#˚Ì�}��q�}�LWw���ٻ����Z1441r�
]�S��j�]wrtD�h�����N��-��A�xhI-k��G�`*��}a����=[��y��'_���ln��:��Ȍ�N�™Ʌz�����SS�|��������"��x���'�t�Ƨn��=�ף�Sl���9����UC[~����7�S�'S�Q���
���g�Am���1�J�w��OU��q���hH�nY�n��,^��O�E/��<����=�M}�Dy|ω��K��ma����13ܾ�U=�te�2v�㻏�}�܊��B���7�޵}���,���0rj���m��'������ՉOpSr�|뢂V�Ȱ\��A�� ��
3�<x]��I��(�>�H9���%(�����P�6�w��,	S%��q��ݻ
�"�"��O�x6�B~�?��|���z3��!��s�Y�~��00/���
�����r�2�V<�Y��"e�Ct��7^����O��^Ӈ�G�=s|��[Vݴ�ub�>��Z��Z�F��=��On��B�r�������T������mPHiَ�Q�C<�(9�a���T+�e*��i����p�2�BU����$K���i����I�n�dj�#!�v�
�nv�CG�s���Ο�������y퍗�o�'�̍���ӓ�/�+7���>r�����ԑ�T92~��k2��f`b��W��^��2����V����e�3"\��;l�Fgj��a[���q̐�5��pf�@5���u������8�>W���}���N6�d����{�G�_���S�{���bV��:�"N���?yYp��c��5�tr���l�+w��O���ʐA*�޺�w����s)L�Yi��v�ɧ�}�ݛa"Zs������tx�km���I����xQ
����H8�L0fL���k�H�J��,gف��jC+���V�iBK�Z��:����'��0�(g�L�4>v��_�aS��,{"��K�����I�q�B���~h���߹�tl�:<a�����oY=p��體��_�͞vO;K�Ǯ������'v;v���5����3���v��>���M��{�΍�����3v��d؂��/�d�:\p"dRށ�l���n�7��]��i�[7E�9�sI�)[�
5�e�gr��n�>˱�V+\����l��]��iK����	MK��Åf�w��������zu�FY��z��sϺ��ON�t������{n]�ck��1�)��>��P�(M
�;,9��Z��R
�����n�R+��͑{`�
�
����8��Y�`�@�*@�?{of�Q��Ɩ�7�V{uU��J�Vk�
	�=l0Ʋ�����7�xߌ�=c�
����<?����n�Y$�$$�����V��[��W�5��x'"�fݺU����n�H*ݛ72323���8K[�	j/0;�346KI��~Q^yK�I�ʪV T�9eӃ�R4�*��g��!���%��}�G_.����v�D%Y"�ŢZus�LMeQK�r&n�AR�8S�,>��SE�k�20��X�uǬ���`{�}�J���9���E���$xw~�zev�1-1�[�nħ������n��W�&U�C{ﭿ��I-������M�-���H�an�;����]��I�h�����g�cv	�⨴���%`���E���V�Y�k�sE�XTFc��h��0�l���Ld�7h�wK�	)#K�
/��!�~�t��
2M*cN���MqQ4�U�Oe0�	'�B�\;��i?�Ro@]�7@S��M���eu��8f�/`	�ޒ��F���
��vb��Y?�0�R��n8:��QN#ԱRifY1b1.�В*%�並|.�y[��
4��y�I�u{_�l��b��0���-���(�7	ޝ9fu��	%�Q��vBc.I��]!J%O��]��0�A�|Fl��&�cZ��Wmxe�f��Gu	�F}�L�@�U?T�0�/�F4?�g�<�3K�۝b*��U=��^
3A�X�K���be�e�{�e!��8Nld����2�^�Y��������OK���ʧ������D0�/��7�v�:´����bB@�,���+�1�N>ϲ��0�t�w��Ï�<��k����aX��VJep:y�Hm�:4xٯ^~��)<9�C3���#���6-�p�3��
�b¿�}��B-\�c��dS��R�ͱ۠W|��(�ȢtJ�eS��y�1����`1
:	�7�A9Zֹ�xxQT��ΐ:���3
��c"�LNӈ1�P�]�"��F)�
Z�Vm�U�F��B��UJ�+�\�ɸ�ђ�_�Ҕm��
N(�7VA�'_���rd������cze�0�1���z�g���]����R3����������A��N+r��n�Ru,�;:���eB�_�Bָ㢔K��-B�^�wg�y�①<lYT����̈́�"xs�;�	��ְ֡f��4�ӱ�MK{��!�.�0"�N�
�p
I��G�\ڰE�9�I[��"��jA����vh��Rl�s���B
hK�/�'��Ɯ�.ƆUMtOHP>)S!e&D���ykJՊ�Ԣ�����cOg.��Z����ǀK�ZVM�g!��	nc*A<&Բ	e�	i��F����b��*e�|�Hk��R7�bƵ��
���걚E���z�I>���X��Z�M[
�w����:�:��)�oČx�z�| �ـ�:�K��7)���똩,����º�?�WZ�>h��k2h�a���X���*���	���0l���a�R腕�'�.�g�[bx'���-�j��KS+���'tmx�9]��V�[��;ͅ>��T1%a����n���ȄjB#-L��K��W��u�*���3�)_#b���W�
1��%���8�`*&�HN(>0�7�Qa�EGO����+�Çǝ+��(�*�Y7ݞ\�^Te��K���D~�!$o��DM������m/�@^���K~f-�K-��3a1[*Y^��ﴸW��=Z��������S(����S;�B����Vh*$�
ն]��|U��]��^���(��C0ી�TG�r|dL/Qb9~�oYu�%{�����K�6U
��F�=��c2�e�v.ÅoIe��� �䰦�tl(�$,�j<�,v�'�>/���"f��c�A�'�k�����N'-�����,j�\�H��2�3x�����'��\��&���Ɩ�ݢ��Z2�a���^�ޛ�hǞ{�|*Px�Yy�a nՑJ�����v^�,V��n�Y@�x�oC�,
�]�󎱑q�I��o�
c�~��y�����=��z��]��d`a��b����[�w�-#��x�*�����\đ����Xs��_�d����u_qp[�d�Q)k4�9P*����IMj�o^,Q`���]��6��gn>�%.�%�	I<��g�gk��'��L+np�}V�f	Dl�|.��WN�V���a�s�*f$	-Ǥ!A��[T>�H��[w�l��e����K�n~�=���oZ�}�r�L��xYF��I���P�:X���U���'��r��a�8r�e��"����<��w���k2=�s��ҁj&��2
�ƳT��'N�-v�PE��Z�J״�З]5�)8�ܛ��I�j�Ҿ���3�����%L�d�o����~�
�6��(N�,
�l"͏W+�3&�W}db3�ʧT?/g=<�$��*9�'e��FIl��� *蕠8��Y�}�S�L�)l���c�|�U�:6��=�c|��nqo����*=Wm��֫���'Vd���Snz��-�V��%����~�eG�+����'0
~疞���
�T�l���:��]��|:x����\����OzrP�sM
:�.ﺶ�v�!�G���%y|�[�����Gf{ r�P�$}�7Ѷ�K�A�ei�땻��|��Շh�g��N���C�7Z�S�-x�RFl�1^����)nn�h���f6f���;�)�2��T�~i(�-�0č`Z#���yRy���0�Pa<W�� aQ)�rWJ{R�/�L�L�,C�)� *�Z�QUr�^ՔE���@�Z#j�q��"�&�W/���c��?�m�Z��~��c�Ȉ璿5��R���k����G־��;����k��s�^�ֵn	�}���/��ҏ�a����t[G�WkGH�۟��#[6��j��R�l���W���C>�����;ڧ�]+^�dҶ�2�jo,���ly�SH�q��Ř�������т�ʙ$E<V�K*k	&sP椧�y��]��{�mXQ��a˱�L�e\*T�`����<f��AaXC�X�˲Y��XMh��;P�|�2q�Z9�A���Z�U(�H�C�(�^�v��ld,�;�wNl+����2Qh�����n�a�/|�;�����Ѡ���[R�؝�6�Սzƃ�:{���st.���č���c�ёgR����>�[Nw�M�����d�"���&:n�M��L�P�(,)z�N;0��c%\+_k��T��0��ds�a �J�u?
�N:zn�P�x�
��;����y���
�]q��7d5�t��Jj��̈́eiglc�R���c�j�6���J!%E�9��jm׳�	�Ys@1�U2��%�� �T��1�5����߼�.2L��Z"`��{o�M����]h���7�;���}��ܪ���E�IO�h{��\G��(�爔��~����
-o��52��b�M�~���v��o��v�d��4����mӅ��4��3tMV�:��v�L�P
�O��j��<$)fyvP
�^e0��d!����Lx�H@�����+�VQ��W3��M��#O���7���k�;崽��?���)���ꟙ5V
U(����Q���2j��d���Si�ak@��a��ޣ��7��R +�p1禾��5y�wQհ�k�_��������x�᮳�P�����DP�뉄�P����ĝ}g�J<��3n]~��371�������X�m�2T5�.\�����X�����sҮ�I�r�!�2�$(�^ۖ�Ģ�����t1/��m�a�:�a;��e�c;�������.��
��/���u����2��Q^�u��V�q��)�_�b��76]�2�u�be~��d�e
\5�"*/�'=�8e����|���/} ����J';{ƨjK�ʺE-TE����<�;U�D��m�����<��WH�F�+j
M��,YSP�wKT������&0��mɦ�n��:6H�_`b0�ȝY���v.C,j�^����B��Uj�T��x����揖ʢ�O�W�y)�L�n?1�{��wݲ񗮑za%"*Q �F��x!�l���[6�^��pb���ӝ9��r�R)d;�0��m&~C���q2�\��T�D|��[�V��s:$t@�;K��H�&Rpa<�K[�u����6�s�g�d�N���w����C)�-9+m���A�hȘ��b7�O�0��2�����y�6��h񵇞(�ش��g�ȩ���m_��d_�.��jfD�
6I�d�W0�d��)�\���z�m��
o��λp�C{�{ao�=#�UJY(���H}o&��Edgf��7e��lD��x��G�N��7�0���xL~fg�w�n�3^��e4A��F�����0�ZJT�	�2���,k�fF����O��U��]y�f�a�����h�ݕ���oE��
Qs�*�bq�`�uR�q��t��?�ٲ�=���}��]�NnK�c*s���C��'�m}ߍ�0�o����/��J�,EC-չqQA	g[� �*B[�q47ܘ�L���1�cFԢ�ޤ�[���4���Wb��՛��2%Q�TWܺ%���|f��Եv�����\)�rR%�`���O�(�L���=x��5w]&�tU�ƋJ���R5�}�XY���^*����i��@�\��@��W�o2�D	�;�ډD˜�\k1��R�-JMW9A��"��0U��(����n)�e���"�i�M����U�V��-ݭ����-JC;���	�=Ӎ��RA��X�FgX�-�<պ�3�x���n��������8�b�n��ؽHBV�� ^�@�d��eH�J�z���(ԛ��cmz�L�vGQA^��b.T0��r��J9R�y!Ew�w���Z���!�"�����:޺����U͐\י��͕�L�eǷ�)V9\Ȯ�\{�eԘ��Bb�ޓ�Ƀ˷t�B�T��`gYtL��sO�jv��+%\��p�G!���="f!+0S�V��g�,[r�wgVO�H�Nj�\�1V*e���@�̶�I:�z�'�f��Vq=���@�̤t��&��
��F���KJ�=�m�3���o�!ۑ=>v���蓁OeʱB,�B�rZ��~̩�y\�f�6���}�p�d�2�������~�jMcԯ{�Ҫ+ڑ��c�,�+�i����y�%<8u�\�ǾAT��(u ^��:Q��@�\F�)�S��d��u)u�
���[Q�d
���h,�����eɋ���+�=
�t�6�t�SpT��-r"�q��2V�De�}A'����쥟}����‘!�-/�
��s�[�����k7���~8�E��iL�t�2�u]��u��9plߓ;+�r�!��ò,WlZ��!!	�W�@�H������b^�
�o��,��b������N飩�~*~n!���1�R�Լ/�E.CQ�^q>�H䰦�:�����N��T����͇�N�6C��N���ɇ��yt�/_��[�r�w�%O~�KW=xǺ��	kC�����5�e��3k��e��|��V/���ǎ
V�
B�I[nϽ���O����^�lRc�_��u�\N�+�6��d��,�tVwjf[��%��[���8��a��a�m�\�&I����n�'��l��O��\Uv��/@�i������U�7�*x�y�.;�8,c��s�������W�u9�]<��K�u��K��Z(�>�:z:�tS�z���lh��0�+�iĔ���Ոz:�W n�z�
�pt��_�hk��R��sa2*4$�M!�ׄ�e?w�/*N��7BL�K�HՉ0��V@�L�g�<�x,��0�YNe.	��8���=IJ����
�7q�g�����}���wFw������wWC�g��u}��L��O6+�N[B��r;y��K��Rz^:/���|:V7꺓qƇ���J��������^��	��(d��g"�(c��S;w��ս��|��g�~&��Y֭�n���
R�7Y�=�/���*�w�,�M�Q��R볔6`Qyܶm��\���"F\ׁ�VUl[�w��<z�غ�h�t�t ^�]�=H��Xfs���H�T-V��PV��ʪ�:-�v��@��r�J��n�4�ݻVZ~�X�N�g�<�����e��jxGO��SY�h��CK�P�7qY�R�w�#WN�̱n꭫p�S!�K:��0��ꪯ3Q,��ETsl:�N{o+�����
t�L��}
�n���ڬlO7;$
�I��1����t�m�b��ֆU���O>�7_+s�ZdYX4mۖ�:jLx��0��B�\��[n^-�C1ܶ, ~"��&�ŤM6�~��L�s^?1���/:p��B�D�T53���ɸ���<�Y��:��
	�n�a��~+b���bh'*9�m1�i�!`uEp��*r�Ŗ�V���/m�i��
3�4����3g2�n��h
Nm��rA2PX7R)�S.(��V� �ĉ�L&�N/��D�[��[N1]IjY*8����;>u
�t����*�Oʙ2�(bbBwA�TU�����/Dz�uO1���e�F�J�5ͱ~+��~Db�l�M��
W��9�UU
�xH��]*�4R.���g�	'�`���2P?5P�bu[�M7߄� ����뮻r�\2��5]H�wKQi�R�dR��m�����³�R����1^����,ݒ��Wϰ����D��Z~�{�{?�as�)0�m)<5�_�炖�U�P�Ecin�~�*��M�Ɍ��:���?~����8�ʧ�P��$K:��E,��r���Ӳ�gJC��.�QR�P�	̰��r�ic��a���f�V��txpnzg[��Pa`�W�P�ah�	[ƒ>�oL�D���J�wK�-d
Q�QՒj~2�Č�j�M���F,�m�������78~ȵ׫�V.����6G����g�97�Q���o��(��<RV�Q����{�٬��U3�I$���������x�>�kM�֥(��2S�lg_���@�HߦU(���Eh�P-;���<~re�n�<�j鰁y8��3�b���a�F�Wo����������~�'�}L6�D�]3+�wK��MgS��)%uN���MH�Ds��c�a�|a���F�:, @�R�$h�6q:{:C���Z6�D�D7]�wa�ci"�3�&���'J�%O\��j
5����pq��2B��O�lES��Δb�om#���?58~jX��D��u0�H<5>W�)�v�k�@U��D��ȁ�붦��,B]���J�BWG��[Z���T*���Zo�t��>��E�h��II���LPf'�E;=]�F�ˌ�@�(r�)+��z����&L���K`'�f�c�@e-���M�]�u���N��T�-��K��YC0�rZ2�b��
�y̵0m��:�ĠoZCO\8��ʅ�S���*���HG[���G2�M�k%΁��T'���1��*�GhdK����_���g
�Ln�3��J&�(KR��ѯ{!ռIe��(f|�9-ij{�q8h�*?�,�ݴ��>��K.x�B�r�i��V �l��,i��
@W�Œ�����p�=5���L(*$ �{>c�R�UL���W����SYS�Kp�"�"��합�	�:Q���u�6S�ݦtV�5��S��1�K"s�!L1������tV�L�[���7��ڌ2�M�M|�G�0� ;�����:��
(CZ����us�kq{
�H
�f
��n6W)T4�d7c�S\ҧń&��"G���М[p�\����Ah=E�@���X"�CAl�j�9U^ j�C��q0*�G<���Jo� z��r�$�){�����A�S�k<[�+r�w'��Y
j��畔]�M�n�Z6�Z�13]u�b9�qz)�b�&������'�%*#�C�'�&Nʵ��+�P�/Su�f��=�eg�DW��&WK��`�Tkɀ��T8����4Mgʷ�,��$���Z�yڏq�	�]�9evC�OE��3���Nk:�B?P�-R��bj�<�X�̸T�둳$kX�Ъd�P>�c�UBUd��*��D�]R����	�\�?����
���A،ثw��X
d\W���G��@^�B��9m�J^����e)���4�VT�j�ة��X	��"ɔɏJxe+5S�L�X�jdK]y��t��zP��(?:Ž��a�59�ӖwR)ᇞ��w�D8����?�
��ь[	�;W���
�k�Oy-� �y5�ښV�wK�������P������ܖ*�`lt���M��-z
'e���Z���&(�� ������	��{R4�lR
r���r��O~��4=��H\(�ްz냷� �6Ýj�Ւ�L��`ҫV�����Ȁt�P.�j}?�A&�ʵ�E�D{�
�;��$���%h�Sc T����€�ë��y�����N�����������uw
5�\�*��ń�Z-�FS�N��<S�N��G�� p�9�d�Cy��*����=iS�{eQ��t�-�39�x<���XՔ�f�Z�x�m�㳟6�ND���fg�iL��dP��Ųm9�4ƟD�ŤP+w�n]��U�b���)I��O��=�/�`�y���? 2$�����X�X8�%x����
y"�m�dU�l�%�/��$�ٴ1��~�T�pR�L��M_��(�*ϸTħ0>Ns����m����hxAT1!!��є:�
v�b�j"�/*U�ى~�t����'R��6�5��W���O�c�O��7nx���̶k��{�����f��l��g�뻴#�$�uQ�r�p�h�n–aR�MV]�6�I ^lF�	��t%0ڗNj��R���ZT��6�1�����i�	*^e�X/�a��`�e\�VF�Q!̪����ra�Q$���8a�����&�J��<����%�R�d�u	��~H�n�k��XU�X�c���+��ڽ�ʉQ���'~���3f[2~�8��ɳ�D����[d�#8��b\a�S"��r���T2��!Q�T)�Šoa�b�H�0U(g��V��aG@:�+��{���Mm��~M��
�?�7�8�PDg��[9�U}e)��Z�T���UP���2�c�B�j�<V�9R�H�n	��[3#;�?x�ԋ��@�ba���;:v�'����9g�����k����;/��?�^.�';IJc-�1n~/�D�]4��?u���N
���Q�Z��ʸ*KJ�q䶢yy�4����G�P��2�,.�	�@�aX(y���U�[�u�m��돿��Ֆ��j�� �J�$�O����Xy��'bL�W��u�r�f��xZq���r7Y
Q-��l�`�R��T
�5�+.]�{�;��֍]Co��O�ٵ���K�~���i�]���_����n��;�_�{ժ��Á,�C*k�rE��/&��a\�+������V���<��غ���@�j��90(�:+���3��u���P�z�c�<�	+/��cx2-��(�����>gm��g����U"R�
��?�s�}W����]��ۡc��RM��Hi��Ϊ�;��	#
W��^��\�#?�^)l�:[{�������`�ම���T�#���]�X(2����<c�K�,�X�����g[���-+[+����+��h��y����=���&ű�᱓;��+���G){�>���^���>���b�;S'P�;�4U]Ӑg�@�A%N\��DͲ��R
{+�Hg�)�9*NK-LW�BǨq ha��Ʊ��l�ⓢ��w–r�<y�o�'��y�oܺ���7���G��Z���
�.Q�;�GX�X�^�Y���+{a6(1���>U�?�{��֕�N�82z��;���}����/�^z��J��X��BT������V�)�~��^q���o�*���o���g�Ƀ#A����}#d�rx����s��"r�T�BlⅨ-6:KM�<�NsA��~�P�����0@�4+�����*�B��0���+R���U�#``�an[:ݚ�s��:�e	%���x����8���7}�m�7W����������_�ڴ|�ݗ��?�W��	��Y5;�Y��kT�!
J~P�ъ_�',��zn���.��s���u3�۹e��w���m��wZ���!t�O�0n�߼��غq�3��
u^�F��M���e�*pQd��s��ٌ�Z#�9��a���x��3"�#W��ʜFfDu�O:�V�Np��k�n��X_����A�W/������5��]���[�v��T�C�A=��UNj�u,�Ү.*�]����l~�KO^����3�L
��Fo'������.y��{O�S�����='7�}�ʫ�{ �<V�Xі�j	�8")N(�%+~�w��ޫV���c#/��#vg+h8VF�z�g�ʲ��H�$g�~�:�?��Jeȫ	�W-���
f�mhm^A�J�/����RY�sSq��m'���
?��֖��.E��Mj�#�8���W�d�
��yBT��7GlT7'��gc��&z�b�{o���׹uͺ�.��Mk���K�H��c!z��i_�u�ǟߵ��v�eY��_�l��{.wZ2ő�$A�/�.v����'����m���Y��UE���$���TdO�}m0C����Y!��n~.)	�-�'Xx(i$���2}��u�ea�~�ʸ�q���5m�
�0���x�V�@����i�0>���s{{�X��ߞsWt���7�{�4��&�����[�w�ڱ���{����-k��l����u��gN.�uqO��l�헓�-}Y(�U�O�L�2�B��ӹt�S��{ն��LG&�&sm���%6�ڗئ���zŹ���	kR�X��0�gW��2qb�I��<e�c@Ҭ��2�����Sb�0'Y-x��T֕r:"�ؑ�3Ф�4~vK�O��ܴRV��e�U=��������-�#PnmS̸�������Л[W�X:z�W��P�
�H�!�P/����r얭�{��bi�
�>n�W�z	��5�3KyP��O�~�
��Ϋr���`\�Q�k�Z�N�D�>[�ScۛF��d�r6{��lgђ��+7�B��oc-!�����+���l��&_�D����J8V��3��5�6O�eC�qb�H�0�Bx�W�
CS��V��0Z�4tL�^R�{*M�ҋuxŚ���t����b�u�ԉ~�e	D5�SNNgQ���#�p���W�j��z?O��<rM��l����Q��E�ʉ�*,�\'h�vJ}�i��\�!���ѦQ]d��1�u���C�'%�����GP@�U$���üA/N�3pj�����id�4�����1���G{���»Q��E�Y���1 �ʈ(�Abz��
��Z�k�:�?ft釡��u=�*g���~M`��g*9���N�a��l+G6�8�\(U4�L��b"��*'�����)j�0�����\�Iۢ���xL��M����w��Q��"�|�B%�T�
y]�H�����TYK��k9��n��S�D�kJ�b��}���D9mnT��"�,u��E��1Mi#�5כ(w�i|��9Ctn�����],����(����f�h�W���S@k�Uo�p�Ŀxr��CU�/GjX"X[����^����y��{����56�9.�=�fzv>z?�"�`�1�qj���z�J�S�;E|G�S���i1Iظ�`��>�,��p\�<�xsZ�H�nq�ΈaqR�
��O��B��5� �*7ƯA��Z�L#��r�J<ՒW׾��4C�Y��,�wú��nԝB6v��"k���g0��&#~��
�0�v�)�H��L�{�3ݟ�/wL��s��)=6QuqV{A��x_���8�kCSk<�b#I}؞Du���q$��ʈ��(Zp�r��֡����zTQ9��=�'��Z�9�]b�[�W��צ|��Z� �H�Jl�x�6ƻ�L$�D0+Ʋz*W��&���!MЮ��46l�H�ujl"�$���\Çf^�	ޝ=�0�W���	�%��i%�JS��a�gk2�b͙��6P94���L�v"��V[Bu��SnZ~�ē�UM6F�I��by�$Ҍ=�S���5��h��~��D���,�$��������0��s�w�6&�:�D�؞��[rؗH"�,�E��y�I$�E�$�g"�$��]"�$�H�w�$�H"�$��D�)'O�|�G��΍7�����|>�r�g�}����g>��7�t�Ν;/��K/���ر����s�}��^��СC?����������}�{��O?��S���e���lVec~饗^|���������o������-��◾�x/�%�9��ĉO<��	�166�������Q�q�֭k׮����p���߶�{����˦\ܟ�~�~�o�>@38Kþq7�݀�?��O�o�73�73�7m�t�wԷlmm5�v��4���'�ܳg�o��o�����-�Շz�k��ꪫ�3C��4;�v-�]����
1wn ���F`P%x��9���04�`�T�U������W����mii�������8f

���/|>~�8>�R)����w
R��_a������8��8�
�Gx��ǡ'��#G+�m���k��)�|��ի��j����e:p9�!�"s.��Ь��P�Ľm�Wþp
.�۷�8p��A��+W���w���U�+���
-�S�f�	_�P�!>;����<�X<h��A��t�٩���>�͉�����
̉�K�\��_�1L�1ޙ�St���� �V`2������������Z�
����m�T�sp�0�o}�[@�P��
7y��秶4x�h��^�;��o����z�2��5Ӂ���İ4
�)����^�8�N�O
�KܲA�]�;8��{��x����m��l:lq�SO�U�����qڋJ�.�s@�`�U�L���Y-�>�/s�0%`�C�0�A�)
�D���)��Z�G�(	�n��F�mi>ä�ίY� �k��o�@+��]�%��hmf�����
NM{�
JY���yn�T��}�s��+���k��J1(�����.`�4��
�5݆-�?Ɣ
���k����xΦF_nv�]5����~�Fl�^�Ȃ��~3�g�����f�?��0�a��_P��l�5���Ư+_�s�e��em��4����{�v�m�{]y�09�K0K�s�%��^�&�f)������f^�W|�@����=���z��0)�"@��t���YL{��K����1D@oa{�:���C=d�ég߁fwxj��˗é�7�Kd	���4��Zw���`ƒ	S
��H0�a�g�Fύ�F�f�6�	�.LN n
�M�i[Ɲ�9f�}
�q�F��Tv�%�f{��o� f)��*��O�ԝ�W�ς���5(�ǁ�6(���+�_��pc�D��k��2�?��~�r��w�O[�*>hZ-x�hv���*�s���pM��D��lذ����Ie0�&̋ZLK�%a#�C�K�|�L��ƀ�Ӷ���oZe��[o��3�z�Ԭ�ƐLJ�B߀��d�������Q�>;����_
���~fw��2�W \
�[��3\�Ν;�����yL���~��
���`�@<m���p��u���o|��
3�g�g�dKd!�1Xq]���\�Xِ�&>b�J�gh��d̒�`��tz�fU��9�袋�E	����a#��o��u��!����l�q�=�����Ơ@\6k	[�1|6�-�1�)�\���@�.��2-p-�ah	'5˾_|1|0��^��JO��d'7�l�=ExŊ�W�%��\�if�C�-|�#@c�WwP)n	lj�m����1��p4�'5��pE��p8`�p+��l:���A4��[��3�����.A��c5�oO$�D~A$��%�H"	�%�H"�$x�H"�$��]"�$�H�w�$�H"	�%�H"�$x�H"�$��]"�$�H�w�$�H"	�%�H"	�%�H"�$x�H"�$��]"�$��'���$VI$�3'��&�c���`c�lL$�E53��[�>K���,���Sy�$2?���N���Υ>+��\�Ly�$2Wԫ���^�J���T��]���	�K$�Y���m�䦝~7΄1���/A�Di�w���|%�L�Wg[���
ļ̙-������$�H���S9�%VfctK0��,H�2�NԤ���I$���Q�\����|H���]��K���_cƗh��$�L���,�;�`�.�)�	o�"�ș�wh%᳐Xp!�G��ӽz�^s�$2�bf�%�-�bhxC�-/Y�8���RQ��
�d���MO�}�`d Op��iՈar�ID�
�5�.�o�PB(�?�b~	�ZZ�+I	��U��9Zd�s�<�C$���m�K�*���"��G���;�H"X�#S�5�i���Ҳy��0u� d��,/A�����(".�BOJZ����_O=7��)�Z�B󉇔мDQӡn&h6�,�R�w��[7�Ah�j���iG�zgI���>�Be��K�7�Qh��R�/z؀����Ic���������������	��%���ɋc)=E�����p�ā��Ց�ة��G�T��m"g�"';�4Z)q B����x���;��<�B1?M�[��&"�P�gH"�Pg���^�$�8�-ф�j=Ȭ�a,�$���qp�}�g��g� �[������5��b���e�?C��[3Ir8tL�bQ�zg���ǡ�d�E!R���5La���U�fB�^Ԡ�d��B�mΨ�I!�9Wb~A��Ql�Y����T�q�pIԤQ��f�h�P��W��ܩ��{4�D�+��WH���4}1��@/��@ejpxmSz�c���,�Ο*j�^��9�v��YyS�.9��n��#4A3]�Ur����DdܑF�(��`*pD�V�&+�����[�� �S�x�C�|ÌJ���4��Q�}o��֠���.�{Q�Ӝ�‹D��T?�9���8
�aZ�@B_�LK��4Cj��qp[8��7Ž?qF9{x�N�]�z�ߴ�.��E\�"�GR�R^��0(�Ц@-��+��h��Ց���N��vT��P�^����훜��Z��WDE��@��6PڍH!	 H%���ż5
�pdzX4n4yF�ޜ�eJ3<e{!y�v
=q��YA���^8�XL���*��3�wSB,jN�x\�k�O(G�	q�@�]�C���9��;V0T��O�ZJ���е�h����}/ﯞ��6��L@�'� 4�f+�w�����.͵���VWZ�J��,wm�m���~PH-\-�Q�4�E�"����pR)��@[����Ýv�T�R�I�J</�iTC5�aL���^��+�1����y�U���\êD22����z׈�Ϊ>[�<��$��}���F��%)���\�z��_��S^y��R�]�W�~�?l_��K`5��p�3��+�<�<���*�E���@O-b�-%�,y�`��s�K/�"<�Q��\68:�Ti�����_)e��ږ�`��Q8�'��b̫z�'�C:�^��i̐��/S���Z�F�_�S2�a*D�n(���C#{��W�C=i�&���`I�vi�	�$��R����)Ѥ,x3�>�V�K����]vq�ֶ[����o��]�{���y]y@nz��?|�3����/=���?����?�\��i>�*Q���^(꬚�>E6fȓe�[ȕ�~��W���;�n}�}���ʋ�|�c�����r����;T)�X����X�@��s��k��X�`pp0��m�`Z�A
��E�6g�d2)�#
���kM<�bh*�θ���5><rӝ�	����x#L�/�����Mc�K���]}�Ua!cKLӹ�#FA�{���=��n�-��O8�؎��L�w�����_�c���v|�Wn��w>�WBbQs��y+����ՆX}˄6���W]�AH�'o
zA�{:�l�[CtEϛ�6��P)Q����R9��,��fY���P��5k����J��`=���cBA�J���X�\�����y�-X�k���3�A^�_ٷ\���U�u-A�d�$�"�L�Tn�(�KB���6�ӵ�$��G�!����tw\���|��o�p���}����|�?}g:�~�����~�aay!��K� ]NZ�R��o����M��bY��m����*��+��7鯔Y�h0�׵\P��ZZ�E�J��uݮ�.KK6�`���/U�24�7М�j�3.fK��!/�e1xyW|����zC�b9bcO2��k�kx��+�x�3C�(L���-=�;�\|����~���ow��}�ӏ\��{�?�o?}�͟��^���AX�]V5X^�b�'S�#yα]{Yn�g!�e���,S��"�Zs-��>�RzT�|Z-r�xjf*��3����N@"�h���2�k�Y@�59�"��V�S���N$O��L:3F\�:�rAX�a!��ûD�1����O
H��;ӝG�w?��Gv~���-�7�������i_{ݦg>��e�����q`��?��'��D�ws���B�c)��P�Z�r=u\�i�(H>W�9�D��B~�d��<�c�T�A�(�-k�[>��e�K��o��hM��7�yh?5����s)w�%�d�sB�ÐSJ�%㥪ۑ)�Ajb�e1��f�T�G�&���J-�-�	5ɺ���y��������_=>��;�.��;�?����d�[o`������=����h%ۚ�ɸ.�T�]P�g
Puj�>9��!q.���u_���=%�XJ�
��q,�,�
Snu
b�%9H�����[�!*qJbIN�t���@�]��w[Kk�M��)a�)��_�ԝl��3T\��<44�r��I�L>�s(�H�j�d��<�oJb�[b�.�<�8���@���P�����.��ʢ3�{0�,�}��k��[2����rk{[-�q�Ԯ�n&��$�;oA5�(�P�L��E0Ry���r̙����kf,�g𣥎�O3��aev$��y���D�g��Ȣ���v�
IE�4��c���t���w��bs�����M��W\qYK�tI���G����޾=������'O�_�u˥��3
qN�E9��b��
�rxxz��ޮ��$���w�^Í+�r�f��#��<��g��P�ݼ�_>zꀲQ�ըB��CUT���{b�Q���8��HڠC�v���T�"�|A�T�-(r�o�%� �D��<�E�I�r��*�R���ܲ��$JI��>f�M���W�A#w�B�f��R����@X)��#!��	�3��:��5T%�.���!�_��ב،2�Ώ�U�Ȑ�\ʕ�Wtttx��&�d�}�\.��;��T�u�(�Y�~���tC��P
;�(',\g�N�S��賻]�n����M�F�!��VB����^����n��+�Po�>	�T�h�Ng����"h,�m0K�Lq��� ��^	�Uh)�
���oq�vfw�/^6(V���׃�h����P%�+�N�'-)��H�ZS=
�U�p
�]���i�{�;�n�R,am*��Tnl||���{��I�R���0	��ّ�˗��Vg��˗u��3�5�<�O	�5�p!(&&)Fhlk*������.렕��AeA�6��b���NȱPu�[���m�?��{Q ��]�o��o9\���r�?����%������,�@Қ�v!}#����V�k{�ʕ���N
�>�_�m���C���^����e�vd�[��{����S����+WCy:�&R�t$��<LE�\�:����0U�Ƒӆ�y0ـ�nذ�
ط������󰾝e�s������U^o�T�T����c\(���JN^<	�5��Ei��^nP�b���G���XoT�*jG�Ɯ�*�r泐����_����1[�n���qv�,m����S@>>�(�y��,�������"��Q��r,�1*���z;~~ۦ�D�!��k�؛q�����KW}�����x�u�a(�s��"�d3��H��*�|(��e�Jc"�WCx-d2�Z��i�5��)��f���ɳ��ZzK��2��%L�aKokiK�����Z��aM�n�&c���)MN�~��r�Bu"��U	�I��HCPv%�a�5�.�C�T5���dbM�k�������M�SA�xC��G27����)q�8{������}T᫺Q!&��.[�
�2��gTK'�E����GƯ�T[Ӥ��Y�ŵWґ�̶]W��d4�W�ګ+��F�Ěe�r0N�9RA}�8����x�HT�.J�[r/!�+T-`���IA�4FU!�0IP�Z�G����)�W���R�mY���Qjg0�4O'�"��
U}W::	:v9�ǂ�Ӭ��r��x���!SPg�ㄿ�Ap��۶�)���RJ��,l���r`(Z��:7w|	�5W�E(CW�b��U9Qp%gV7)žX
�e)S�<I����+K����GZ+Ce�**}n�g��+A��UE�4B~-\\�_S~�05f��ʠ��gQ��p�ȵ�5K�d��+�T*��R�T__|Y�|�u�]b�K�X�[,�g!@.
���o����uě9םqt"�ba)�g�
=���		b*�FcL)���Ls�'2�o�݋׭Ab7�;�z�Mrϲ��5|��l�ʫ�}M��P/X-���qƺ�}�?������З6���yٌ�Ay$�N?�����,k||�^kkk[[[l�L�E�w��v4CE�H�P�tժ�6�i�_���mg�r"&L��R�qc��_]��V^�zf
��Q���jE�����v%��P�����ܐ�<��e}�^�afY>
i0����;{㞱����+�ɃH��&�+
��lt;�cN9ѫ�b��a𝿧���2^�J�ؤ��z}�#wn"�F��D\aj�I�)'$Q�"��?F�|5���+{\-U�
#����=�57��^q�w��~۱�C-]�Pn-�-&C\2���[�\��Ԙh�D.9W�)(Qո�gx�u�8U�,P~-�T��[�^PA5<pH+0��s��g��{��Ϣb
�����Sq�!�W%��C��ġP2�@�)�bg�9)Q�x�Qe�f�*�&L��5���X�h:Ǒ�yX�6?@��^S_0(���\C#������S�P�ꩥ=
�S9̥�#�"�Ui����p�d���Eͤ�d
i���9M<I�U�BQ<o��k�S��[a.C�<K�\$�G���݋��V�3�R$�!��� N��\����<D�'ᜍw��(�	�H$���Ťm��`r���*e*�n}���ݿ�Ex<P�
�?2xˏ��w�	3�I��FnDa�ܪ�\Ud�R����e��hť�?>E������5�)Xh�x)�U�V9UH�*�k*&ʹ߃�s�i����n9xrI�f���ЙDI��S��y#!Q�r����7��[��|�2��W������G���Ch�bL�(bA��nTX�{<�G��y��7܌�_�V�ߺ�}e�<ܾ��Ǫ_�������9Z�D9���j��Λ�)ā?:�7�$�����'��ޡ?���h���$��秛M:�8{}�Ω:`���H���$T��2���W+#�S���(�?���f�T��^��W��'�9�#�e�T�%�2��:+'e%�:��=��\E���?���j����J����"�=�u���G�|����V���t=����#��(#���zl� \�9���f��USt�����#B###�Z�����Ƭ0�D~7_�V��̖�����Ю�=��W�X��m�>x�*�![����_~��_�}��-�l��	/T� ������:�JS2~b0ݙYղ����Ʈ���v�R���T�	�"o}�+;�^��s��>*[5��*
A��lb����S(��Z�TI�MQ/��_�����K/]t�E}}}=F�������`�8����a�m�W]u�5%��i��P(�r�'N�Y����ÙL�RZ�V����Ёcǎ�a`_�R�6G���7mڔL�D�[�(?h��f-Cq���C����W<��[��_���Ç��Ww�r+J�o;m�q�)G $ �N��0�3I=5\~[=2�]��X���W_�~�sl��	w�:��4�.˂��젍�	��k�*\ ��,��`����P
.UF<�@�V�'��t&(�N��^�@�%-Y\�z��΀^��Moڶm��8���fa;|T���Z�~�,�Vܬ��e``�T�Q��y��P����[.�����0��N�:����c��Z{�H�w��Q@��(��6�)� f�Te�}�?��u��O�6%�-���
��pɦ)Z�a8�5��$���Ml|��҇v�T;�;1Ժ��seǁ��N�XVz�mY'U�Ol
٨�b(:k�݉v��x�hH��'�,#�
�e�c�]1WZ3b�ۈ��OT���wUq�ʕ��X*�Ԁsuvvnݺ�h�`ڨQ{A�Ll���F��=���X�b׮]�^{�}��?�9rlذ��+�^�	(!��̶�DI�n�6,�"�U�Zc��[͛���K�~D��{�����s��;���
u
��
�k���d�&m�(Ҭ�j���ب���Ǟ۾�_q[�C�O���3���h��Ⱥ���j�g��м�p[P[�Q^9!���+���{	�V���������P��h{�����e����Q���aC$��gc� Hooommms�T
>�hyӲ������_� �>(�Ė&�����YO0�x@��U���,'2N�j��'��lY��헽����������/�-k�2�*��f\2*�S�-�0�ʃ�XA�
�����W���<��-��m��S�7�
95tl(��#ٮ��JcB�A��!���˅�K
_��׮�f�����_wY��N��J���Ό�-?Hw8�eV�k)F4Z0�����ji��ᝢ�,�j˖-�u�:v�������@4zzz�D��I�n^b��H�0�߿��g�T�iM+��Ș�t��◫�|����/+�'������j:��a#p�&��dI4�(�&;����G�iM��_�[2�_>�z]7�#Yw��{6\�v�xApC�
T�tJ�CS�BP� 	oy��ً:�t����'Kپ�K�J���'^<��}��K��?�g�t6뢐����c��ap�ĉ�w��_MX;�����M�6���O[�k6x��/�O��p4�P��
^2�$���<�������:�C�t�q����و
6!�	A�A��(�)��Tr�I�J6m�V�����,�� &�&� �A�`ؼ�4���n�t���oOϝ���� ��\��{��t�>_��I�ə��'��;/��UK.Z3��X�.��ǐ��S��3�t��>���׾��
��oL�ld��)|��`(��g�vȱ�m_a�Z͉�suw���K�ps�B�tO�����~�s{�.�޳����=�"�9Q԰ �;@���.3�z��+>U�� ,֮��^W)���}W�������덂����O��{5��8����`nn�n06a�Z��o�i����>֋�Wd�jv�^�q��5�i�xw~��?�5zt��?���/|tŕ��\���"������?|����wk���w&���H3MJ�#
���5S�d�h��>����޿�,�o��߻bɡwW�߿��֮����&�k�٦9��Q�2���0gT�A3� ���1�Zؘ��|��Q����@8=ݹĽ��^NL�3�u��<�����ٝ[�PA�dj�v�	�u(��R�;'�.�������L���w?�����J�g���C�/����l
*�J|��^�e�*����5��:_.�I+��I�+Œ�),Y�5��+~�av_�����]�b�_?ҳ��o���KW���;��ӗ|���J�%�hE���ں���3��ܣnD������Lˎj<�uS���x���x��W�
���3i����
N5,\K=���՘sS��9�'ۄW�ƻ�J%?���CK�dh��H�7���+���jh)+Ռ��Z����	I��pig�.V:�艚�T%Qq(.Bi߆e��9�܁e7m��-a�zs׾����G's��K�F��\8��䄨NV�.x����">c��Gvh�����"�����Tw���f�fZI��Ƥg��}��{{{��lr��c�6o޼t�Ҵc�qҬ٫)	�h�{g�Y�������ٯ"#����1B�"6�HR!��T�D�7Z����"ä)*��4�<j��5���"h4;�-���S�_=p˿��AoU�CLӷD2�t�*/o�8&dԑ�19��j�ǘ�=�H(���ZQ�
aX+w)T�9LN�������/��	���b��㔑T�;�`�1�
�|�|��E��bV��H#���!1P�	
iLҎM�F8%L[��W�PgYOZy'�?5��N����co�#+휷�cW{蕮��.��M�4�DTE��h�؎ը�F-pB)1AR�ې��ZY1�8�W�3��X%�Th�$�rܵYR������Nq.L��U�:�`��N�ƻ������%�sS8\���f��.8�j2a��Z�gpͩ�™�آJK���mγM�+3I-�&U%���k��ik:��� ����/B>Q+5�(5�
�	t2cϠ�-$I,S>&U��Ŵ�6�A���?u�.�"�_gg'klll``�^�����巌h�R�q0�4[��}B%�ꐫ�S�h��)�E�ıiN��—���k$'I/�d
�-i��Gd�L�e�Q�P8���#��C�����g��5��������R#�`���bA�5�"#��l	.��	&YL��8�����e˖ٰ�''�e�ڵ/���W^�m۶Z�ƙË��ـ,�H�5���\�z��={�.]
��,k���������ǎ㲳͛7��eʎTi��x�����&�0]_���s�
Ԣ��&�y*T��(�E۾B��1Y�3ٴU=z��b��z#���U9e���M�{������ri��U2#n��bɟ���9n�1�Tp�nݺ��ߧ�ܶ��M��}�v���Y�8kk���|�[��^t�E��|��7���N�<���w��v�=���* ��c
�ڵk�ƍ����H__��n�� ��0��hy���Ȓab!\zn��;L�~F.��E䩨��x�#�͸Rk�R����y�s��^��Ϧ�R���;��0 `��|k�J^`�m����/�|Ŋ����ݻw�x�8���?::
���gǎ���OV$� ��{L�}��!���[�v��Ң�
eT��%���#O��Dq{�"��U'��f[q�V��`�#��t�ʖŲY�:̨`��F�Ρ�v�����=���DF���J>�Ҵm�JSԎ�z� 9�,�˓R���^��P?�h��<�l�l%�{���[X�s��@C�UR��bes���i*_�Tb���1�-Y-��x'SYˮSU�0h}�o<��w?��ԭ���&ONW�&�șf��V	�~w�=e�v%�f�������(��]���"c�b��,�>x��A-�̈́n����w�AD1��q��(;��R86��h�MZ���	�.,�=7���I>X}�
Xٚ�9շ��L-��gA*����K�Y{�A
��B7
vZ~��N(���V�!+�_�����J����|&��U���r9��3)j�N^4����u��o,�z��щ-/��|�~��zh��X��������O^Q�奍�*^N���E��H��ތ>�H��,v�lϔ!U�F����i
�Ι"��ޣ��f��Z9�bS��L����)H�%�l�ɜ����1.Y�N=d���q��-�s�.�n��k>�_[ڠ1+�v8c4Fk�;���I�cD4
	�HS�!����H�"�M�3�	\�K�
��>�1Ȕ2��uC,߼�z��U����+x��o��\zɚ�\ZڭЌv���g�ß}i���Xؑt->�ɍ0���zTR�$zNj7�8���%��S19���	ǰ�-)"uiӋp��a�QA��8�eDԶQ��ܦ�%�o�!��Ƚ���y�s=�7��j��x���1P�@F�k�^N(���Oa
�c��1GO��2`>FҒf�v��a�j�	32v&Ɩ_2�՞���$ia��M��/��8���F����,�`F;�}��Ķ	gy9_
`+6�8	�-n|-�iŎ	�
R��ȲU�J��}'q�@�AžmC7�"�3�TAc�)}��b����̴v�a6�M��ß��ƞ��|>�@�D�N��ȋY�mt��o��m�Vjs�i̩��M�JgȄ�4ޝ��ġa��R��y�M��R��v�5�&�E�p��Ir.��aYۖ]����Oyʉ�Č�z*e__����~�iD��}�!tI@����v��,$����Z����ņs"�u����*5A���'!@���!���˲-L��T
�@7-{T2�S"rh�6Y��!�]�����{�6W�'_r��>�S�7
`3��u�b#s�c#Ɣ�e�Y@�iӉ8�p����ϩ0mv����7�S"lv�����^˳ڳm)ӻ�~F���e�K��8���@�ƻs�H�c��JLB��<�}�g�v-��T=3)�б���j�ZS�Gv��:�rG�R
&�+H��SPM��yE.��C�r��QT���HDQ&�uOE�Ñu�P���D��>9�ZBj�Ql9N��[y�"���2�P�G���kA}46�XˆE �@@9֠˲�k�d)EZY݅�(T*�:&�|�&LM��Z�km�*aD��h�aa�c6��|�gI��ܷ^R3��h�B�YB�������f�o��+��F��}6�fm|�	@"�o�M<�-����f�P�gg���Ŗ6o5ޝU���yzo�q�+�r�<�%�Ʀ\S�"aY��su�/��knٶt�P�*�Bz�<%7D>��l�P�^��[�ylut�蒰/�*�V��=q ��"����
_\�r�Ua�~�!�j��h�gX��g�*�X��H�P��<��S��z�ѽ�ê5�a��C}�,X
e�G1醔�aƾy�ۑc}��cO�Y�S�V,�c7"�[��7�C�a�s��n)Nq�?`�D�"�68N�]�d�E2��j�;�����^���'N��������\s
C�Y}�\���+�:tĜ������8��-_|1�2�v�a�,�^���I�3k��u���xO�F=����O��B��X��-�0�w���%/�(�#7���RDa�\ R��F��"����C�.�|N'��/�㋢���7����B*u�rI1|\ߞ��l�v���p��S������W�.��j��ag@|��o4�nu4�퐬u�d�e\�*��������Pj�~wo'Q�U,�aZ��!�O�>r�UXUl��16@�}�l�
��0�E�d.du%I���PF&��R�{�EqhR�U�"h����X�n]ڵ��q0�d���i$�
�088���`���!Å5�X	P�ˇ
��bt�$11sv6�:(i��J��i���$M�s�t��X�5�ƻ��hn��A3
]�|��)�_��M��lX�i��ΠY{q/kRE�K?<~���Q{RX��IZ��P�%
�X��N4���aO��a�eYA�Ň)Y�T��_��e�4����ս�}t������̙���߬�,�f��n9�_n��5#O{}y�&h�I���|`n\@��ى[�+�A3b��x��4�^ ����s�}1���q8�F��*�3"��moݺ5��0-�Ν;S���.��K�E1~����0��n�"�5���Z��vb{6u�e]x5%�T���ҟLR�`��= g�w
�L�w�J��x��n͎�0�0(uwx�|�fI
9O�=%h�+�,�X�p�a�;,�m~��'<yLN�y�(VKy&X�Ql�a$��8��'�\�޵U�-*��X?F��K+2�J�Ԏ�����>@��U?�@��*�A��Ah���ϯ{a�#O�^�,��Ԓ�4f��Z�n˖-��
��0�ž��sǫ=��E)�c��\��;��U�=f�xjj�
tpL��洯缥ٸ0t��Y���^B�ci�s��8	���9�LMM�PF����A�m'm0B�+%���h���(
##���q<Z��cnN�,'q�/��b�$@�E��u���w��p�{xT,��\	N��
|���?;-W����6�Ḙ���1�K����$m�V��)�0�C֡Ey~���c~��C�mb��4�c�la�9�(/X�&8������d���B��PE�y�,)���6ɮ�)n��F�E�ؙ���-8��Z�g
Ѷ"RD[|e�#c�B2�I<�~Q�2g-�W���;�w�-$�,ww������J]vs�SX�dD1Ӻ�8�y�m9�T���7���O���ڟ$��;hD%G��ن4���F�ø��s^��!)�@$|O��c/2�S����P��iI�ta�
�Q2
�H�
�\�%-$���:����f�����s��)m�7B3�C�ߎ���۷�l�X������o||��=ۜ;kor�sll��𥃡��0Hq�r�C15��X����N ��۟��~䷾����L�;�͙��`s%�e�,�^�/��j�?�[��B���'v�'(�AWт�h�i{�
ј�J�ț+wnp��y��_��n6�SLt���l4�xr�,"wZd��"[�D6(������b��ͭ�@h�Y�
��i6��ŝ�\r���G���t��?��u�70���gjW�8�/���~�p��f]��*M NJ>,fa7�
ՔE��a�$�ʘ5�uT���a�K�7���wǒ]�zC�K$�@,�\^�1Vd�>w`Uaeo���W�`���������c�ʕ80J�[ح0B������裏����ʁ�NNN�`���N�>�nݺ�ǎ�ڽ{`pY��(�ݫ/��돽X��ҏ(�<ƃG~��f�@����2'B���|V�����B������\�f%�1Pq�P�a΢HL��J�����.��\�u��V���zxf���Knj�a-�˹�����׵�8�8Z~I�N�ʍ��%y�?<[Q�K%��{4�GœJ��<Y�"������J�W�w�����+����e�G�:��?����-��q�n�'_�?�������΃��	��jqBTr������k�^�pLL�͎�r��A�I�0�"6�D�A��g�}����[�1Ӈ5�OIG�5ÿf�U�ڸ:s�M_�q1��PK�2�V���K�,����85�S���Ff���Y��҂9g��� �����׏?{�����Ç��|�_�h�j6�E˓�>��� ����P09;r�v�ƍP?Ϛ�r��! 8&���7o���?k�h�B����_��x�pI����Vw��R�&������kU{��5��z�v4XX��o>�DQ�7����6^z��w���m��2�w�%����XL��J�qD9Y�==�������T�:�+��V�����֚����Wn+u�]�ቿ}`���+��o�\���f�c�_�s¸�2����F��P�FO�Ħj1A*�3{w��0x�P#���&�Ml��{;�vn�����Ae��!��0=�Q�6�om����bF֛I�͢� @�jIw�r�c7��0'#�.q��u�v�R[�099�qL��|��*J�-�Z��@=�`�j��[n�.�L�@�������]��TA����+����'�l2!(G(
*��^̌�x�`�#ǑS�����mYέ�vT��h[�����!�Ge�P œ�a��zurl��w�p0��5����La����cGFa7�7�V�96��t�DIԐ��nn�Vx�֨W��d=ӆ�G��q4m�W8�U"r�%i������
}=�j#�����o���7��#�7����\1@\J.���sb}�}y7�b/��,�-�P�"��1~�T��o�
�خ<�žh<r:
�h�.{LJ��~���=~����t�����YY3�	`�h��w�\$�Xԩ��ӑ�9�[S\�&���k���4���c��La�S�\�˗�?X�м��׵��\p�鉠���իW���
����Q�\$o߹LQ����?Ѭ’VѶ}#��q�[5$�^k
��%��,��\Z�H�p��n����?�M�VNh�^1'�,���
q���Ql�u߳G�9��S�\ޅ��S�ڻ䒵��ڽ�7���f���;~�s����Łt��I�}����xpϒu��=���5��߷��0j�xr��v��'����M7^��8��G�R��9����m�\2]_�J-�V�*�.��FY�1y%�C|L�3�������������8f��&���f�)��K�����2M+�/�u���y9V��'Ή,`�ue{n,��C�IK:E�@����^���R�h�͙,��r���Ez�)�&,K�ƻ��V�褪�_��:����
e��2�N�I�Ԫ��:�#��='���_���߹����C/4O����O��e�<��{��fdCu݈J,�)R�	����*���O��^�^
r����ɽ��H8�R������ҝ�O>��oê��KB߷'�;b9�~F]���$g����*f{��kE��
�l=P��v���q����pF1�;)�")�oF�X�ڊ�����#��+��d &Ma�&�1���_��#�Ҡpcb��42%�Y4\L~I:>������yQ��
���o�Ta����YVd�xѻS�p�r��"M�L��jU`aS�5Վ�T�g�
:��ܿ���S۳��~&��$�C������H{f��O��(�T�r�,����aK�s��Xu��W�����6}����mr�%�rƀ�6E4��5��%�h�*�9��Q¤ԪO��Y߳���0<W��~|�����µ���^ٳ���׻���O��t�v٭H����Q�r�<
.+*z��A�f��%m���J�lG=�P��r�7�M�^��T�jf���1S�S��Q�磇�/�A
�*xય�9�B[Jp������u���CJ��k�fBf�	�9�L�+8V�4��g�&6x�k5u�B���M��W̝�e[v���}�9I�y�e�pA�
"M�_��-e�D�Je�Rv�xu�Yqh�ȡ�F=(�����dV�L�R�Ș�=�x�#	E�8�ve}|���pm�0�_K���ᇯy�/��U�)������ʛ%=O,��(N�֘X�ɐ�y���fDl1I#�̲g\��l6
B�|��VyBy?oB�Y�5e�$q��Jr����M�&��Мu�L�2w\ؚ�J��x�%B>��$�B�H�4��w.dtt4�D��RS=�?o��Q��E�]�K����K�u��k���2ˈ�S
�6�[���V8���C,(���'W\��h��o
�����@0��e�{��-%#�s��!��HJ���b�����[Y6j�v�nX�G�M�ئ��Cϼ:��!ۖˮZ_^74yj�m^��cS�I�\1�S�u�ٰ�������\Gѵ�����B�^�NTw�b1��aL�:)m��y��_���_�d����7bG����tT3�0�$�4$�g�&`D___:��I�Ě�����yV���u=aF�B6�2�^
SU�DՏ��cӍ��vh��mZf�a8<<��{�g�����	p"�c�XP�x��b���Y*I-1v�J7%y��"6Nk���؏���LMLl����jx�q��g�"Mi���<�Xq<�N�]��bp�׹uY�Y�\,T����?���_�&�މ'������%^���}{��Nn��=�tV)R���/쬅��SO2�����|��Gl�'H�ђ��&��r��]ɞ�P��?�W߿�#���n�*�&�2Zv�=oC����|k���_߳gw���=y�$k@ВΜ9���155u��, �x�
������;w�\�d�`��0��oDӶ��=t_8�$�_N��F-�j�rWt�`��_�-[E�ҹ����:x��8˖-Kb ��J�222��rj�x�@�"irhږeZQ�*���jA.E�;�U!/
r���o�6,������~��o�fg��˝ygE�1:)��X�o��cO�J��9S�RW��|���V_������dd�7-oZ*I�2O>w�l�;.][2d�X�?IY��������aM�Bh��x�V3��J�G4BK�
}n>�R�wD[�f��˳-�(��پӸ��˯�����HU��Fgv�ײ1�T�q]tљ3�##^?�
�|�r�螘�ʕ+��j��M~a�a9]�[;2��B�R�/�"��җ���>nDM7W�NgPv��'�s�o����W���ϴg���>}���#G�`\�l�o�0.MӸk�;ҥ:I=�ܜ+Mś�*;52�A��Pt�(�8Je%b�'��ݽ�����'_y�>|����߶���q&ƴ��Tj�u�H�H�b�Q9��a
�Q^���ܺ��_{ϩ��}'�96�����x|ᄆ�p�_���|�H'o*�\j��jZUr�s��zMZgG�9���s}+�\芍]]].�A(VS�z�h16,�q,����e[��Ha�4Ȼ{���oڴ����P�#D���<���-[�@
���� {��gׯ_��̩�]˥���֬Y�^
3�b.���nUozyQ��\�X��d����*���_�nǚS2�T�e-(�_��Ѣ�n!&��Td�:n�y���b�b�Y�C�>E�F�7ʋp�NqY��������s�_28�Sl�j��/����2͌i����M���^��{����^/�,ݾ���b`�����>��A+7cB�� H�!1W���II���jï7��.9����bl;v���� �^,ڣc���|6����Ϯ��:3�x$k@	3s׮]�����r�<444<<��8p�[�>|x���������[o�����V�
�H���/���QZf��dN	H�$�g@yT�1;
�õ/�-���kt�x7���JS	)�])gq�~qN%&�����Y�D�؈.���x���ow׎�~ߗ?۽�?�`eĦp�K�j���0�Uڞ����s�G�����)[n8��."(,�5f$����
qI;� `�Q�p�cr�YE;SE�U��4�5�s�![$�i���}V�ZE�PR��JⓌC���e/����Z�7�����Mn�a��c��o�\ܞ={6l�E�Q���>���R��:Í,n����n���>�>uS%I��U�L^s����m�M��}0m�E��|
����^|�Jq�43���	��;���]w>�꒛�V���KL��Y��(����'�c9S�Kua�1+gRو�`�
��HU�3�����B���
e,ή�&�*�Z1�y���X���O�Y�m�&,6C��5*U.��mFF$��+O|�c7~��%���m�\���������R�6#^�m�)��Sϰ]�ѨǬQ���w�em�#�uW���;*.5L1��)(�'_�vC�f>*[�b�P�7E�@t�~���IK�jF7�uvwQI%�R�n��|�7S٥!�V�^j��et	�R24�Ob&v��#/�)Eb��~�2�h.�eMUj�j�s��cq�3cF�pBq>3�DU#��m:���\z�p�;��p��ʻ&.y�朡Ĵm�J)�����,;P��e�io�Q�[����i�[��l��˦>d��	f
��R�K.l{H�բ�0Հ�6TxA�h�)�J��T+ӱ�%Cui��2u�q�3o!�T8$��[���f� �f�ؚ9;Ȅ��.��<����;�H
��""Y����=ϥ'*#�l���=G��xf��0ts.�7l�CK�"�M�η��s�Rd��U\s.�9�(,5�ݡc�|?�+���N������Խ��޷�������/N"�7UoQ�H�~}�plH�����;�_U|��6�m٤�����⍊C�c8�Ʉ��l�T�<qk��^[1���eh�fh�f�UHVքP�^3�sL��fkDz��ص�P�6q���X���a5��cz�3"��U��!�5�:"I�M6�Nls���4ۚc���n�ݫ�Qp��?�gfO_e���j֗,��?�BY@!=wW�CեE9�3#N|#&�FF�oW;��u��������5���w��4
/���
�4��wjϱؖQ�X�-R� ����D*�����GU��i,qa�ݩ��0�
�l�#(Tk4K��ő]o�g|�m��$�к
�r�(P=7��:���F��֏����"L�,����4�f�i�VĆ��Ҵ��R���Nl�<fn�M^O�"K+ǘ�4�m
��5��ɗN?j�����3cg\[����S��]����4���V�G)X�P�ҌȄ����oD}��F&�����^<�M3����<k:��_`���ϊE��;4a�vw���+��{3Q�yN�^��8Oc��j�M������c����T���yM?��^�=�����\�7�%Z4}H�.1Z�"���j�f�����*lcxҢB+$s��:j��򧝃9B
�/�j�_%̙v{����Wk��̰`b72U��`���}�>�zc?2s�����m9��By7��ٌ���ע�����ET�K�����_���Kv7?�e��b���?r��)��J/
wW���wR�c+)[,I1�Ep4��AU�Q١[����Y��Z�G}�N�����XJ�d=2u
�Y�L�*�%ʪ\4�b*�J1�b1W(��Bfƪ+��) #h�q��{��=��h�4R#���G�%C�0�89���٤x��2�Iɕ�cr��v�ͅ'g���kp`�����Nq�K�MI�U6����]�*�\�4
���nV?ɊLӸ�"�NL�x��ٕ�1Y����|�Lu�2��补�K+��;7���[����o�����%a��Ct��N�"�Pٓ/E��
ei.�/iM�ZgZ��]� _~�Q�;N��y1�!�Q�*�j�bP�,��M=�����ۡf��0�B�bY�N����$T�����z�֘�{&��S;>��BK��ThF�E�1b��4���B���ֹ���F�6Tǡ�3�"(M�%�cY�]���Dgo����M���@��y~4"� dC؍�v�|��~h
T�I��f��R�;������f����W��_=r���v�Ž/��[}�>��W.]ڬ7v~������r�Иٙ���������ߝ�كH��D�4��q�Cd).��Q8�f�oVj
�#�R��4f���U�PGІQ�~��$�`�P��&�>JEG@Q�Ȗ��P�=G0�[�6�֧��jͦ�2qf�
9��-�*����i":ER����b��$�`*����H
Q�HS��”�ݿ��;�B�^�l�W���O]��=r�O�Z�3�������+e�ϒC�Q�T
�fQ����ҡS�_25$��-��P�+��[vn���^=2|�Ċ��XS.�Ǜ_�7����Ͽ��s�����Ɠ#�[u�F#J��}մ�#x7��_�X7Tf~�M�4�0Q���/T�1UzE�2���V^@�j�'+���g5#�vl�m�X�
Q%i7k�F���gQS4U� (�}/W$� �I���E�i@��6�+7'm��au���j�=ۃu��N�A�K�qi�&�z*�b봤g&�����QFX��6�z��pJ!�2J�'�Pi�	��l�s�
�6h����
㡾�W��-�i�;�E����Ie�=E�-�k�.��n�ڦ��\֦�J���R��U��G�|��ƿ�m��k�य़���S�N�=�۽�o~�G/�����z.������4یU�P�j��Z�fCX�n�?/�[��TA���m*���u�Z�Q�-Ӷ�d��T�֒֐��7*c�c���g�	����W��"��ψ�n�Q�V��jS�f{*1�uH��5�z���@32C
�RT@��cP.��Z
Ra;W�L�&k+.p��-�٨W�zݡ0��$J��Cy���`�XN���(��T=�
~��{���
���
iC%��z^D*N�1|l�8D��0op*�jΕBՙ3g8���d��+���Ç���y;�ঽ��)u{�O\�*Isy˶k�=�=��raEǭ�%wigp�r�'��u��\��i�
�����(u�c+Zv�R�$��8�!2
����2���l���G�(&�%K��Z$�
arV'��L�U骴�U��¦�u���#ͼ���fuv���N�L�[PS�>�v&j�ɉIV(5�	�:r
��;�)滊�@�U�!A�`XM�q�c�I���$�7�Ͱ��NX�E�TQ�e)b��O:Jn>�Z�a��/"|��s����(!�R�sy&B@R��0'���U�O5su0��ݻ�7o�L�T$k�ݓ�*���I����_��~gp�V*��vRŋ/��Z�d	��Apɮ�z�788��o{�ҥ�V�r������\p�}��744���;99�
�u�]DŽ38�d�i�7��p�n�{/X}f�!(,�m҉��֍G��������S�?��џ�����-�x�5Q��E���;���ӕH�<
?W���W{��XA^K,c��/)D��ɉ��"��刦�<=��cW,�x�.Ig��,�g���EN��Ѳޔ'����8x��nO1����qj
a�B3���ŷn/��!�k�D�QDVaIՋ�'�Ũ5�>�#���0^c�B
����|���gߔ��*��[z���H9}p�b���:�J�j��m�	��U�DA��}zj���/�f�#�tO)�K����֭cVN�q{��Y�~}��a���|�T*�����6m�(�W^y%��J�����j�b����.�(�JK;N�=���Ū�\��}�������ï��M�;|�}"/쓽e�#���8:�+��y��T��f ����~�v���L(ڎ?JB<�:ږ*L�6�У8錬Z+iF��K�ؾr�e���'&^����Yt
7Q�DrҨ��թK7��2�Oq��=����/�1'[�aH��2-��E=���p�P�ڰaCˆGeu�-�0�kF�q��~�7?���{W�ڴ-*�ɷ�l��!%lo۶���/;�x��ep�FաQ7����d4��@��^WZֱ�⡗�z\��u�[9��q���^�t�C�^O��#�T�l��w{��†pbCQȪG‚�����S,���-�ˊ�:UU+)o��2����A�_fBYn��f4�/C۴s�c�s��[gB���͉V-�<VD&d�l4���̡N;rm!�%j�u���U���2+-�!$����8v����
�ȳ�s���2�M.#&ei�j���x��������z%������6Ό��9�/[��D�,,{����%�g��`�/@�b�!7�5�-�_�H�;3R/=���5u���5[.�������'v}�Š���.���P�W�R�q�%#��Bq�8��(�_r�z!5��wɏ`[�,�"��9R�Ί��fbd
c�X�L~Gbq��Ȍs���\ǎ|�����us��"1#\b�̉v�}))�/���*�?	kT�̖�ń�|��)(���*q�rS���
���T��Y�tm-���*\3��6@�\�U���$�D�����#���?T;���{��#S�+�J�=f�v��?���G�C7�M��i��jW�Q@n�0p����O~v�����?��3h�~3�g��������DEJ7��W���z�*E�1o0��4���~�����2�Y��AаM+��:nۆ&2U�bU[�:^.��]�	�&�fl7���.z��-�|<��R�HE1�)�jTr���z�6c���n��f�oPV�i,\D��'��3�MC6T\KGlǪVq��9������r$'nhx0����gN�|护k��Z�B�ɺt�f�Srz��ţ��Ƿ"���r�]�d`esH9c��Tdd�Q�ĦO�6���.�`��;�3�*
� /�T��� �y�̘�ڊCZ�]1� j`�Î�zA�9���5Vۚs�,�$�>v�Pmc>�5����q����k}�>��hՊ^埘�}�1\[k���ҫ�A3G9*�8d���n6�:����Q�15���#�Y�9';��w�6m�؋[k�.�a�6���d$M�(���a�WE��Z�c/�iy1��g�@���I��_E�u&s�i��S���h�s'����\�4�Թ�"Ǟ�"Yz����R�X���e�M����4H��w�¥3i�
S�Q�.�DE��.����uP#� �=O�o�)��C��F:�P9��Is�2%��)��|�R._.Fa@�PD�CN6�\[b�R1���yo�x{��	͐P�\�r�i�\�`��W�i&v��
��^���9��&�M��=�>-�ǝt�*�'C�R8�D`J;�б)��Uw�gO�^xY���v�R-�Yx�Ы�$,٬�
�`(
�,�%oG�k���om�z��,op`P��S_&M�Ŵ'�r���d(C��>�6�Z5�j�l���g:>Y-�����
I�e�Y�������%�8}�0�?��)�ۡe_���=��MG�(J�g���,F�̳�貘H^�+K�)--�fK�.PU%�!陦J�n��J��H��@��&�	��?�%�:�[�ډJ"�����D`W�nx?�s�����$~��2`��8p�����e�.����g�wY�SB�U�R����q��P��Fm����%���S��'��#+~��wh.Z2�]9��?K��j$,	�<t��1��-I]熮-�9��ںӧ��*��Se;���'k
����hy�s�R�-�wsFf���9���*���XD������"J+�5�i�2{3SL�B�YmN����e�,���Ú]��;��>-Zf�n��h�S��;�wY�.�
���?g�j�Ӣ嬆�j9�w~Q�Id[���cd?���4�i�2'޵�ޜ����;
?'�nv"BV-���E�E��C68�
e݁����5�բ�훷�����~����ki�Ӣ�\�N��/�~7�f�-Z΋�����hѢ�ܞ�jv����+�J��Z��>}����R���呑|(
q7��e˖Y�555�|�r�}��ɓ�� 8|��U�\���N�:�ݱg9v�X>��11��a��t&8N�1�ׯO7FQ���z#�.]�o�SJ0rݺu�R������n��B>~�8�c�f*sCu���a�g�*�����+W�ϱ�1l��zzz��"�Y�d	�W�S3I:.
{�\o��&�w``�PL���1����F�����
���srr�1�L̳�����s��nc�8���7��rCCC<U�m��x���*-Z~���?���viA�����_���.����G���_�z�=��T:���_���*Ų?p�3�<�}�v����ַ����7��y�1����a�a}.1�����.�m`�s�=���?��SO=��#X�8�={���jtt�qj���_�8�<����W_}uŊ�;�{m۶�c����|�+���;�7����'O<��Ν;_z饇z�u��	����w�~�������G�~�;��17����e�#����G��p7pj�Ƨ�~��]Źpp@-�[�=��3gμ��k7nĕ�1{�|���U�e��}o��͘9����޻v�Z����I��݋3b��}�p��n�*nr[GZ-Z�~�.i��M7�����J��v�mPl�X\���ܼ�=�a]��>4)�4T��U��K.��V/�l�"�x�mgg筷ފ�^y� @�#��@_�����G�GX����g�d��[�����@
�24I�1�B��4�jǎ8NX�q����~0U$q	�:�&P	���p��o��[a�"l���>fd��������� 5�5�{��W��j����>��շ�=��E�PS�bL	�C���k���?�yV!1��K/�sq7ҷ�&>��+"���0��*����2aB�X���{xֆ�&�u�&�`v�8Ps�b���뮻�A��/���׬Y,0T�����
��c<�)
�8��8&��h��0�ؘ}��DZ�ȑ#8tI@'_�!�_��р�mX�^�Hʆ0.
X��0=l��e��.
��(��X�py�I��8BB���C��M�9���뱋`�/��k�N����n�b�\v�e0�� ��0QJ:&[K����'��$0�1X�p��bv��
�ᆣa�Y�ta�Y��$6f�/���e�Ɏķ��@�n>��Y`.c`�Y�~=L?�%\y�2��I���q�8)S��0���[eo��慑��@[��1�j�g�؄S�����*37ЁF������O~����	p�Z̖u�[M]��(��A�Ņ�^~��Y�K�S�����+ml��ֳ�lw�]KX�X���l�4a�$E���{��`�����+,](A�Z�羾>��ѣG�SC%�
:�9��3��n��0�8�����)6����5Z8#�S��׿0ڸq#�-Y�[�n��T�c�
f&�5�C6��c�1)�@�����i�o�-e�x�q�_����'ڴi��
X�㳤ѕ��wpy��C�����=�;�E�ƻ��^jX����"�
��e�π`�\����#a���x%>C�����rйw�}7��~�tp�&�����Љg�>�(0wP�<�Ct`�rD�'G6�7=����j�@��D�M��SB���cwC=�_l��Lw��do��6��3�<�����8#lI )��**�a�������s�����[�.�O=���Ç٘�9C�õc€<�cp4l�9΋��8�nL	3�}٦f�Z?�Z�=��)u��3t�
y����u��
�p��7��Wмz�! ��C¿@��n��駟>x� �p�5�`�
7�p����w�}L������|��O>�$d�q,�y~�ӟf��,�������Wм0p�}��}�����[LZ-��cb2��n��V���)�����
������g#{��<
@Њ�Z��#?�����S�%�㤷��F�C�Y~�`0�9`V��g�����pE�]w]�����-�Rr~sІ����
-�[[�+���
)�J`�r.��)kIwL���B�47`G�c��,����`�`�%�����S�P)�H��`,�hFd�Y0[phm|4���v|`�v�:�8���*|g�
g�"�:��L�8/O������v�C��C�0�1��e#�Ŭ�1�qp'�>�/�{iѢ���$K���s�.l�h<�[cf
Ev{J%?;��6r�|�A;���?sξ?m�n�6�]:�O��)�h�x�VPo�B͢�'�sX��9W���N7{川kN��8�6f�	����u��+Z�v���8{zك/puZ�h���3�Ri��Ί�o���ݢ�N��wZ�hѢ�N�-Z4�iѢE��;-Z�h�x�E��wZ�hѢ�N�-Z4�iѢE��;-Z�h�x�E�-�hѢE�-Z�h�ӢE��wZ�hѢ�N�-�hѢE�-Z�h�ӢE��wZ�hѢ�N�-Z4�iѢE��;-Z�h�x�E�-�hѢE�-Z4�iѢE��;-Z�h����_��p�uḏIEND�B`�assets/image/02-bg.png000064400000020540151327614500010452 0ustar00�PNG


IHDR���ˇtEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4C20756EBCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4C20756DBCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>q���IDATx��	rɎ���Em�d��v�;��{"�$s�y����E�ZIN�F�ʴ���������MRbU~	$�D��ATM�q CT�Z��?��]�����Z��at���+����Ct�G�Mt]G�T������ú]k	^TK��	�yt]Fי@
`('
�k7��i].�Ƈ�u�[��l]���
��<�!��5�‹�߷b}�Ҧ��?�z���.��{�����~�k�~t������q€pm�x;��wX^`�_�ԕ�*�0˖OP�I�"
N	=Ğ/��#����_�Q�S<�=��{.��$��^x͉��M?�Z��ϟ������mx&����ӝ���ȶ�N����ײ��A\f��=���$m`�`(Y\׬�:s��'��}N�b���12������BrLaj�y84L.P	� Vy����{s�;r�d2vrgi���c��B��o7�I�`U~j�0�J����S^������0��3к���=����yK��$�dCq��g��A_��f����F�95��YC��7��}Gv�Gr91Ĝ����c��+9�G��H�P�m���3��y��e��cYˮ�v��nw�ٞX���3.��2����:so/�]�p�bK�!�p;R�5�ۑ5�Xf��p�!WU��B֣���[17�-�9�h���2N��mS���3Y+��A�m&��K�&�A��KkSwucW���
��#�|��WO1�E�V�k�=G�&�ʩ�c�}���y(n� '����{q�'�qc���9�<W�p-WY��Y�w���{_@f�W)�Fx��⁜����O�+��n鱸��N�I�R;�����kyV'�V^��j=Cp��Y���L&����b�wD���B��=Y�/y���X���^�U�j�u�	�L.ev�.�`��,{c���xݶC��W��KZȽ�-�L?�O�}���9R�n%����W�r����豊�J����[�s��ĵ���k$��Pߕg�SBn2��},?��V�%5�7��c�
W��r���8+�{6S~�2���1�xKߗ�9���TW���vpO�*3ה|v�uE�ݝw$�i�ҝ��O��3\���:�6h�*�����<U���Zf݉�֖���j˄΁�/u��ux,)�l=�Sp��:�O@|+�����3��}A^k|P��qn	�)>�7W�Su���U�\����6uHm��"�g�J@����}��G��p_�N��ev?�>�!�T��L�;��{��s\#���Q>6jC�o��^B�wj"v}K��9�s%�{��.�B�T'���:�J<����1�^�5>�ژ��q�}��^�C�ø�����F�Ը�K�;�>Q���Ujy��Ox��xk�V�-.��%�K=�a��T�{zlu�C���A�י<s����2��pm����:��m�5�g��ޖ��m���i��&��U�|�nm̹ct�{��y�7X`��x�{%���Q>��M�-ls_�=��.3G��Z����.�z�e\�v�Zs��JБ�k	%��+�����;�\�U�e��c�Z>�Z6��%��Z�z-Qf�*7�_W�vI�}��D�48
J�.�T�2���6sQ��P���B�ҩą�����րա\R<��AP�0��kN�[�7BI$����^��cx�i�G�.�3�1(c��j|�%7�
��2���7�c�Ib0,b+<�;��Mk���)(g�{����`����x���iĮ��[7�]����jو�$�G��w)��R^��I�#�';PItb4&�Tܫ�f���um^!�L�&cS�
��QW*��է%��-P�`�@%��I��AU�5��a-�;Cx��#�����g��br���a�q�y�*�fd;k���z8+��dk��^�P��G�X��x-�V����#|�	�b��-S�2�g��On2v��UTG�o�סv.���*�֯Te}%}�fD��`��|@ZA�׃q=�ҕ	����
M蠺�ʰnS��áf�@����^��:&�A�c�����u^���b
�n����!��+�qҹF'�Y
���[�+����fp�2�rTUY�Ԗ��e��k��:C
r���ϝ��>p�Q�<[�A��v�03�R��P8��p��4q�e��`�f
�"8�j�x�kS�s��/�Z���f4���*�����}�������Kk���W�`�L1!� ?u�|����4�e�fi-��X_�KBֱ�%c̍KWv[��y�#�}Y���[g9m�w��ǘ�r��%w��Jn��^��xG���L�Y�J�W��F�J�P�&��'nh��\�����am`m�$�4���`[��x��d��\61��п��?-�������ܩ�=8��@�v��m(��'+L`}��Z2`�^�ϪCL�AYW2w�!���1�)W��1����ɽ9V�į9LZ�w���M�����nܐy�3��N6�$�KR罜�x�p��f�'n�v����=��:%]Li3-�CeЁ-��q���/�g5�ֽt*�$E�_yi��0�/�|RA�ַ�qfF�Kn��rf�E6v5Cc��Ü~^���̎"V��.ߞ���H�����Y.��E�:�P�sV�����tGX���]���S�SAV5!�qA����
p�t5��T���8�oQ�T�ﯚ
CIE.k�,�Z�5[����CY��|vS���N�c�&'Z��?��nV����h9J�I}�5�P�R��[B�U��*��(����1,pw��jVM��r��+^$��\�\��JjM,�0�y"�bA��lM��q��6�w��i�#����<RA��r��m#�MW�}���pHYĞ��ڪ&��ٸOe#zƵuSw�1K�h4�y��]�
�[n�
��5�K�����M�%��˳�=��A�;-R�{�G��=K�T��%[3�j��wS�5�X�Ot�'��v��Gy�������2L"3�wm�3���%��}.�V�<RA�g���Z���u]GV?��(׿���+�T�U�����5n�����q����/��s��OY�-����љ���=#�q�Q�*:�c}�-`��^ly|��27u�q;_V=�5��,�/�u9��b��|���^]q�ː
�jl�N�d�pW9��l��]F�'d��p��?�{���~G�}pe#�>��^�T�U��p@:�q��7���H�
�2�Mei}q@z���N-���Y��
���� �Vɖ���}9F���Џ���g��6��7d*(K�ۤv9�����n��z"��|�dk�����uW�.���k��E*(K�{K��03���V��������e8/�����w�±�k�>񎊙p���BC*O5��]��e���e}�����̞�u�>��=�"���L��o$��^%��]�N����b�ڰa�x+�����mo��x��.�4k:'`a8�34l�o��Ad��B��a�O�{��Z��gjun��Wr���.[��a8g�S{d
���� �ٰ��\yY�N�n�(!�dk�뛱�*�d�d�:�û���`���Bw|��?�~-�o�G��Z�s�=�{4㥥-�蒽��P~�j�9�������]
7��zV�]���)�6�Uкr�t.n�i���
�����3��vQ���u�v�'Y�"!F�?e>���6�������U5���b}����p��pS��BY�e��b��yh��?�u��Ǒr�:M�O�B��!�X�k��Y�#s���%�=lb-���<�F��.'��2�k�5�U��@z�tG��-��bk����8��2̇w�B�N�sy}S�ځb���x��%����	g�O&�a���O�εEW`�(f�������\�, �X�{†�A#{3�-�j��g���fҝ��[��
/
s�6銦۸�*��?�sqCA�m�伾���.
s3-���a�o���i!��[����������ں׬]N���'�;�v9���]�OU�A3��*�zBl��h���Ap�3����<>>k2��1�`�Z,�m�U��]N��YA|N�Ԓ���Om�;7�����6v\��b��)�}f�[�����r����sqCB�v9Ż�<S>T��Ҷ˩*İ���pk`RZ���/Ҷ�)S��C�u8G�qVt�Ұv���?��f�q_Q��/�s��(�g�89�c�\}+�w���XyO�>w$த�vٸ'���.�ƥrevH��e�`k��&^��趑�g�e�	`�Oq�M�r�,�o˺|�¥��by/��K���`mPb���7�B��7�
��7B�*Oi.�]h��ބ�G���2��S�J9v�9�9�����INx��^)_�e�_�S��/�<�´��������yOS�p����凛6�;6p�*���X#n3��ڵo�B�P���I�\��(����Lqiم�+�RM�G�
��
��H���)a7Q��=`Gv҇4u�W��,RA���h�SNi�F?�'�O��I��j��y���*t+��%�-���	�:	`��oR/�Mʮ]RA��}V�Pֵlٰo��HAV�I��#�kS3
�C��A*ZVK9��ˠ�3q����T��ؐ��
�^/��W�^p����]�3RA��%
�=��ݬQ��f�lg�.���
���L�= }np]*oG��F9�do��e*�Tֹ�^r�$=������`��E*򕶾��ҍ^�zF�הkօ��
!��6��7��V�i��Z_��C���I[�l��%�'7�N�$��H5W��&>�*�h�k(�3���i��3��
j����q�0�e�U���֡_��5��B*r�h�w�0o���̾�!U?����E*rruIZP��$�g��+�*��.�Z��T���W����ؙpM�u�����HA���Z���nK:1�'�O*xC�&�T��1�N�'Evm�.���V��(]!RAPhOO��j�4�C�(@Up��[��Td��H�9)k+�����ؚ�F*�Q�C,[�C���J��� �J[� C0�m���No0���\ĘSA���?����UZ&Lm����9��I@��_��4�a?���hr$���
��iL��zӡV��d��@�C��E�*_.0�@j��G����u�����
��}YG���#���<�t����Ǿ6�|N����?���q��Ђ������
0Gɴ��
�w�<�AC��<+��4`㈴��h�j�^+_7�i��`����L���w
��=�e�����O�:�_V��{Z)�y�x�P]1�,�*_�)��4��a�`^|S��ep+ �ʮ�vg�7a��b޳���Z�f�M<c��֗�����.�*`��֮�T7�Y�2�<���f��X�J�G_������c��:
3�X �ֵ��B�T�>�|-�P�qoh�|+��Fx�Pŭ/w2��u�zP������J��D7��aU^�oo9F�	�@�%��n\'��a���޷�����vFߏ�mu	�����7�u/��5�_"�%�f��%�AU��ܸ��G� T�9/�s7K�mWTfx9�jɠ�T)�E�����0�Be�w(�^�n)P�F!K��g�z����J/��w�/��1�9m�s�ح��X�"�Txy,�F��P_��y���HѶ�aW_ nc�@���k�
�BlT(
�1w�k
��CE���k��Ld�S�qj���@�;#������+�������OI@�T�����z�S�A��-0C<#[d�5�%�J�L����B�DR�͇�Yf+���#�e/G�7�ݫ�I���7�z�7�����s¬+�������fj�b|��h���'�w`|��,�$K�@�7���;��������{��yY�Q��S,K���a��;�
�/��d��r��;�& $7�j��o���+G�/��7��m.��n�n*[���.<n��}Y��1<��m����B6����A�M�9�eM��Apz	^����◲�[J�blq��jM��:�+��z�'X��2~��EH����M��"E�
�> <<׻\Y�!�We�~��э�ӏ�V��5`7�q�}<2���[
�J��_�U���2Y�x;�@���$�Bs���–��f'��6�> Z	Sn$��}�-y���̀w(k]_x9P��*ٌJX�'��3Xa��cu�[�o{b�e����/Yc���	nŭ�8��V��3�<�>T
�JZ��C��}�u�ӥ̺����c�ӆ|2`�����"��6��Ct�
���:��[�*�j<�<��ϝ�U�^T�X�q�~�<ӏN��
����.���5�%��wL�'�=��u�/�86+�_�o��2ȓ*�}>��b��2��]���~��η�x[�8����nS@�n��A��%%�c7�i3wR��ޥ��먣?
`����;�睔ܵSrF���QE���A?��!��D��m��`��ݣ��@`w�u�ٻ+�oYd7�,��"SH��Wp���Iq>���j�.�X�!"�l��E,;<َ>�R@��䫶��(p9
����y�,�=�Pk�bv{��zr�0D����3�%(r�\���ݐ+�8���|ׄ��mʀ�>�l��t;5n�+q���ֺ��Z+�Y���!!{Xgw���@��B�%�V�ړϿ�Xڑx-Y���=�%M��ۻMT��%��0`y�9��u�3�����U���v6�`������R�% ��xK`}��P.v��3W1̷U����K�*f�I��!�NQ��p�c �@8�㩸��ݛvl
�ZD?�쀾/9�}��r
)�]m3���@>�<��e�Vl��a�|+f��z�k=-�jo��城�p/����T�R�3õ!k��s�s�y�t�(�P�k�-ߣ-WG���٣r䌧�&_a����<���ِurQ����#X�����),�#��C���'�K�UF��tb��J�������=-$�5�yD%.W,!����p! /dN$��
V)|:�.Т��湃��[��;����N���qD�p����������=�L��u�y�\������}���A�7	�+�H�v)�>�ZD�*TWL�
Ln+�~]C��v����b�.�\x�����'�_���3���~-
����_X��X�����*!@� C�!CTz���IU!\J�IEND�B`�assets/image/qv-loader.gif000064400000010122151327614500011511 0ustar00GIF89a  �������������������~~~������������������⸸������쮮����>>>VVV```|||������JJJlll���������,,,^^^LLL���!�Created with ajaxload.info!�
!�NETSCAPE2.0,  �@�pH$8Gq�$N�A�3(
�L	��V�K|P(���:(r�Bь�_@X!/�BxBnb}Eg�orEg�^	oWD	cJCgoqmo���	�E�{p~
��r��D�}ŠM�d������K���r����񋇅o�
��|�����̩ò�]�q�āӤ` 9C�f)�$'�=�Ê}�C�^u�-�H.!��ܻ�ݧ��
	�O�K"1����5.&{j�T� �BBo�e���6��<�@�B?��1
�)�G�bK�� !�
,  �@�pH$&4Bq�$D�b(����V���[4_��:t:"r�qh@��a��)ȉgBk_oEg~�#rJDgxloWF	C	~mg		oD

B�wK!��
�C��ɶwE� �ʢd�X��������r������
��s'��xM
&T$$��|M��C�ڟ� A���Bl�d��ڵ�Kd�V��?oFl-X� �L[�J*�Ξ6�!�"��	5\@���p�oIm
��N!Q�Xm�@ק%2u:uH2�\�R�#�a!�
,  �@�pH$
�Bq�$&D���(�L��V�
[$���:4P(
r�s��_���IȉgBxBoE gw^	r�FgW�oWDcB

��g	oD%#��
v JEin�E�
~"�#�L	��d$��L
�X"yrv�E�����ͻ�d�����)xWO�<2���I�&��1a���"��UJ�(q�z�	�+��kQ�\" ����*�tRj��O�}C���7":�s�dE& �R*�"#��-����=�L���֯Q�2s:d+q�V����� !�
,  �@�pH$.Aq�4�B��d&"t ��jQ�P(��.�q8���Hy�"�3\HV$�QBm{Oeu
pzBeRumTDC�
�W
�mDCe
�t�B]�c�~�	
�aV�jU�U�f{
����L���{[H��øU����{���������i�98�\q���*��3��n�%��L\�@��0������2�T��*	9��}�t��I�*D9�x�6�ϴ�F]l"���!M�!0ըT,D�*�FT׮pq!�
,  �@�pH,*��rILGA��\&�g�L�E�B*���.F�C�Уv���~,$�wSGIrjmgBGTrjTD��G�WH��j\CG
v�B	d�a�
zw%��V��`�
�E|m%�mv�L�ي�`	�����L��䩻w�����ہ��K�U�b�Ȁ�-�FA�;!:t�p�_3G�8� �C�E69<�A��N�踁�;"�,H�@�#"8H�Y��M498���EB[ɒo�.96d�0NRU�A�tU�DX�8�l*��M��!�
,  �@�pH,*��rILGAQ�T&�g�XP$�ӭ���p1r�͙�Z����9��|�jfBGi~WeF
C�
��}R�iCyq�N��N	�aGus �L�
�`���K]�K	 �L�`�E�΃�U��]���K��
���`���
���z��չ���W�D�Jl��X�@A�d�pESB`A
X�	��!1P�!"��MZ� �:� A��&�:�ED�!HP��ϖ5:�p��H?��@������A�4���(Y��СD�V����.!�
,  �@�pH,*��rILGAQ�T&�g�XP$�ӭ���p1r�͙�Z����9��|�jfBGi~WeE	y�
��}R�inlHCq�N��N]�aGuz���C�
�`��L��j���z���ƒ�`���d���L������K������U����ϿW�D�c��j
���s�0R%��+q���"�lQbw�
Р�F�.С�
0�s3�SIH�D����svV�<	�+��4
�9�
���BT��~A�2�$O!(\���*ח8�!�
,  �@�pH,*��rILGAQ�T&�g�XP$�ӭ���p1r�͙�Z����9��|�jfBGi~WeE	y�
��}R�inlHCq�N��N]�aGuz���C�
�`��L��j���z���ƒ���Īɹsd�Ϊ�L���Ŀ���C�ҿW�E�O��j�������B��B!J`*��"�lm��8p���4��!(P0�EM(PC�!ʐ#�48���I�2�=���!4�CC�
q@�ïB�*�6�p
�$�
��!�
,  �@�pH,*��rILGAQ�T&�g�XP$�ӭ���p1r�͙�Z����9��|�jfBGi~WeE	y�
��}R�inlHCq�N��N]�aGuz���C�
�`��L��j���z���ƒ���Īɹsd�Ϊ�L���Ŀ���Cؿ̫`##s��E�s�G��#%B	�)�M���p`
&0 EDba���7pp�@7g���dD#Kv[@�ï!�(@B�$O1�0oV��!OO�>P�����d�8@��,9J��,7�p
+�A�`�!�
	,  �@�pH,*��rILGAQ�T&�g�XP$�ӭ���p1r�͙�Z����9��|�jfBGi~WeE	y�
��}R�inlHCq�N��N]�aGuz���C�
�`��L��j���z�L���g��R���d������z��
����z�ʽD��U	sP�Ls��J�6L���HQV0��'��hZ%��8@@�.�ED�tC
l�V`X�S������?X�	q��!�+����@*-�҄�FxB�����\�F�3�֮��
]!�

,  �@�pH,*��rILGAQ�T&�g�XP$�ӭ���p1r�͙�Z����9��|�jEGi~WeE	y#D�}R�
inlHB!�$CfCN]�E��j�
���$s��L�j�Nsz�E���g�����dG�
����z��
����z��\�U
�j�cb��������� �Ӫ\] 2!d��ZnV��Tg��L0 ��F2�T��ȇ �
`�Ǖ�2Fj�����k
�XT�.5X:)
��5,'R��,�tPuyz�*R0|�!�
,  �@�pH,*��rI4����8e*�TJ,(�"�Ӂ��*�GN����y#���`xDdk\GnEd�i	�C	�Dd�SGm}GI��B$J�^�E��a�
jD	�x��K�n��x��E���x��
����G������nh����a�C�
J��V8pI�h�>���KE�8�D\�2$���C�!"�Хj1��YB� ӂS
��T@D��5d8���52��^I�$����?�*aij�'T5U�*���G�
N:�J�lӱ#�2a�-;assets/image/01-bg.png000064400000012332151327614500010451 0ustar00�PNG


IHDR���=q�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4B487846BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4B487845BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>Z=g

IDATx���v9F�\�wc������1�<�3/�,���*۵M��R�"S���9�l���
�B��睠����a�˵�/mƚ�>U�ܧ��}v�ם\�?�����y����M�[��\�7P'�z����лa���k}���Z��a[��P��^x�gPh��Zf���Z
�j�*���6�j]���0m��N`����Ek۶���v��*��
�F�n��4��šBzn��i�f�m$4~�"����v5l���@�ԕݪ�:�S
{Aik�WLo -Sk�>�gS��-�s��g��>:��V -d͹k�h2XuY���a�A��fA��/�7fQ��~+�T�h펌�^��[2��|Jw�$�m�=\[W��<�#!)"���I�A�@u��Z�#,��,�}a��5lY�.�g֪X҇�		h�Z�q H�%�I�.�b�zi��`�'i�&�2C���C!q?IHus���C��|ٓ�JV%�6���a��J��K�4+�jP�ܧ�D U�J���	�Y9�����>{�T˒ě�8g��Em�K�!Հľ�w��c����v��4J\�u�ZL^ƌy>��z2��Ta�Ef-��1�r}�Q%[dU%b8�ް�{6��T�/#A-��ğa�3;1H7ڲ׳��7Щ�1����▂�P��	�5��2��}j
 �,жM�뚌�^4�4�-�%��g��[aH��5*C7�&^�x�Z�ʄu�^�`T=HW,�P����T� �uͬ[�Q�=�kP���V:(�
�f-�46}1iᱬ�g��\��^�R覙����bt���������bK�4�zdIBڰ7�l����ब��;뗯���6�
�?^H�������N���z�e5P���V�z�k/�x��M��_E�tp�02H��Y�^��o���;�U��KA�oG(
���8(`��C��ݴ�ă����y��dHu3��U��5�5	#��ԠR���K��IC�	�?[����:UA�.8�a�����(^��r�_��no9�j`�s?�[�K����:��[<��e�ZP?8�����k-Rϓ-u���[����ݥ���t]|��t/� Q9�~�m.�4¬�r�tF~���&*pܩ\�l��
yΐn�_�H+
����į"�&�2����[�4���a�J�W!nIu��W
�Nn�֡�7�<�ekҦ�m�|E�J=��|�i`H7��h[�4������
��kO
҆�k2`Z����ۻ)Tq麓[r"�<��4�����6�}� �n:
:�-�ҙ�KH��T3�<�2(�8
�<�HrȮ}DB���`�����ZH�i$�ΈOa�����kB��D��i�Б��:T]�H��j�g�t�zXQj��C�F����~9�Ŋ�Fm	��72�ƀt��e˥^
=���cB����伤�k�+א��`����D�E�����./i�#@�$���tq-u�0Il��#M%�(Z=�1��t�h�4�X��[��K���]	��z+�.�.}҅���.�n.o��
�9�QHC[Q�s������%
)2��P�qƒi��MB��y�.}Ґ��.\JE=	[�K��s6htC�&���ݰ���4��ꦥ��
�@:�h
�i�,)�:��@9��Ғ��H}!
y*�#MKԐs9B�MS!�)���!�\=�4I���:�H�TH}!m)�h�9����4JS �����]�)��0�w�
b��(�y��tnHJ�
�Z"M���$��Td�  R�G��@:K�&���N����|sq0M�wNR=i�Ni`M�\���/���_�کi)�xi�R;5-��]�%E@ZIHC�a-ҭ@:��6��	U�Gi(��{R��Wإ����%O@z�(�q�' 
�[�k��
�VR]���Po5%|��{m����5Ecj���\��o�5���
=�X� ]�孵���k����!�N
�G�5������i��n�ŵT�q�a=:���_�-B�jI��g_ѭ�C��Y�ts��1�@:�	��*�����C�8íp�e,HU��g����<��n��u��Qե�i���v|H�|E��iڦ�+�m	CAK(�2��s'kJi�jj�Ɋ�ӵ�Cz��{I�WR������r�g�J�WJ+�sX�\��0��3�N�ʫTi~�:|]/#��Z��#�Q����`�GT�B�Tu��}5k�+qK��k���
�(��l>na�y^�;}�K�lgPHU'N�{�i���מ�%��н�!����5!e06m��9�����c���>�j굗=���B�u\�k��+!��l�Y����u�p��R�7��k�H*s���T=�?�Ҿ��^�7��`X
U��<�U(�R���߳`ԒM@-�W�1��p�PHUG�s��E-P]�z1�y�.Ҏ��+6q�߂zv�y–K	��4R�.�?�d|�1-�׀���R!U}. �k���L(i��Y��@%Cڱ����
�E�k*-Z?Q�H��R�&K�k��"�dڰ�+�n�s�`T�fo�"�Q�`�&~�N��� \Ґj����g�!-h�'��H��%x�R@A��O?Iq5k�l}�Qf��s��۲n�!U���@R^�f-8Es�%�^^
�C2�B.��Y{ެ�+4G���8�����~�O�����	�4���'.RH�VOHͿ����!s{gJx�7l�n��5�5�sK���!��!�Þ1�{�\�8��ІTo
P#�4�)�j��Mjmzuƹ}V�r���V̕�Ϸ5{�OB��h Ձ84P�jd�%�~v�c��[g��h���y�@���}�#������5��Z%�_��/�^&�5�w+���#�b;���Ƚ<nͺ��מg!u�h�,梤�A�B�:���/qn,X�̹�
k'׺�2��s�k�\k�ulZ?��ڂ�)��B*�����^����+T=��P_�!u'��bNϠ��,��R1k�^��AE��P�4���ܡw�
=����;)��5�F�&}HW����;�w��g�q8!���DP�Z�*�+�Ϧ����=SHû��>��#T_(B:������lP�0P�90�ϳ�����S'�<�N�3���R^:a
����SG��u�@=�y�y�s��=�P*z�"֬�nnp^
%=C�cp^����mr��;�����CA�=���&Svfx:�VB�2�~dHک��+�o����&�9Ӕ�u!�7n����l��YPr��>.�M6`M��J�*���7s��q�sk=�*���,��BO�lJ��w���:3��=��P�teW�k�W0H�VPZ�u��;@�*�����>ך�:�`����2'W�w]uP��oH�u��j���lU-����SQ�:���n~#�)����K�,Iy�0��;3��.)�:+��Z�9k�j�u�J�̗�'=sao�-�;�@�G�����s��9����@~�]�J��ٯ�>Wc�ًpP��ܧ�8e������d?���AJE٥Ҁ
��)��]�����5PK
ԑ��<A�\�g�5�:��Π*���U��KH��tKk�&�R�@�<�Y��)T E^ҭ��>���Q� EU��_6k�l�\*�"/-��
H�F*�"/-$��)�P#���
*�"������"��*���sϘE]R�	�
��C�q>@R�Z�?0P�y�.*�"OKڦ�3�Q�e E1J+3���Ư'H���6�@�T E޺��@R���
�P#H����~HQ�����<*�"@�T Ee�PGH�F*�"@�T E����)�	Ԩn�.YjQ�Ŧ;@�ɢ�)�Q@�����tH�ƭ5 E��5RTP;	���"@�[M EUP7aP�@�H�i�} E��n�U����
��ʠ~H���*�WsP[���MH�ƫs��"@�ם�R���t����T���T�9t{�,�
����o�ʠgVH��'��^�H��3���@�5
�hHQ���#�9�~us��j+�u�}}�)JE-�!���{���)�x@�:���>y_+�"@-ς*��^��P���F.W
�(uP���r�����aA��2l�������?�I.iH�Tui����e|�	ԃa[
𵴪‰�H�ԝa{1�������h
H�]�æy�[ö&��>����Z�%c���ɥkH���ѱ�a����38豈��'�A��:�^IEND�B`�assets/image/05.png000064400000130301151327614500010064 0ustar00�PNG


IHDR��tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4DDD4315BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4DDD4314BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�@���IDATx����gWU/�N�L�d�;$!R�- "ʣR"� ""ͧXA}�P�C,�
V@�
B� 	��&e2i��d�}��]��9�r��6s����������ku����u��T�>*Zn�.���&���&���ك�:���Ҍ������5�\�6LK�FO���x,' ���6�P�-&-t];�86�2s��bo�-��W��2dJ���%P]*m���I�-���� �\�|3�T���l[�m���U�]ʌr>U�-�.�[Nc�ږZji�@v�3ƥ��9\{;��ض@�RK--M,Qp�[�`c�۷o�,T�&+Z�:�0��]�&G��Ν;'G]��oQ,?��Own���긥���bŊ%3F�K\+�[���S�b�o�=�����F����mZ�reg����n����f)��'(�d�"�v��f�;v�U�* X��ˆ$�ITiU�29cdQ�n͚5��{�m�����&��&P��d�����aWE��t�@���گ�A��$G��
i{�`K��n��}�:��N��'�޹��+�7�kgXuC���A�Y�Ng��Q��FG�B��TSG/�.�ʺ���(�N�������܉9Tl1�q^�o�lX���~��Vu��6�sr��7�4F	���V�7Q�Me�RKH�}�`r�$�`�7|�	��{#�v��Vf
���:�6h�L�H�	��ZxAwiͥ�*�v�u�ި
�����UY��k �vz��`=�a�v�]
�8���av���^a�i��灒�B��b�댹��b��R����Eɷ��l��M��b��o�f;s�j��b���ݖ�k	�M�j~��~<�X���J�J�K	*������w��6-��A-������s_��l�;��OK \���&�5>�Np�
Dݏ���l{������P�<�u5�.��b��RK���3��P�&����A����}��W�U�f��=���5`�4m�!��e�>/�8G�s]��Q��Z��mK{1��X{���0`�$�
�{��:
����X�?8
�3�	�3@���Ϣ��Ra����sͻږZZ�X�9H�<h��d�Ծ-��iϵ���P���Cr�K��9¯Y!w��4;f=�t�nT�H�{Z�mi9�l��׽a���E�,�.�mWU�h�4`k��X\��n$5V�^�R�1�QIcsIg.E�c��N�]	����Qz����ky��!�ڏ��{/���"�bE�d���M���k�-��s	��@��hS�PoC��2�9I��-�\ߝm�R�m������'�$��X
Dx'�
ɿfcD5��e���i��R�-6�v��g}.�6���6ņ�F�q�ya��`�Mc���ږZZP��$��qW��v�ȿ�h�|��r؁1]�\#�Sj���Rl���x,��n:�$;���(�4x?vd�;Lw�i�V2]���ٖ�����TҺ�ӮX�j�jw��b��8
�M*�
�l��M~�K���i����⽱�vj`ܴw��W��pR1�1W�û�3-�b�
/��lK�h�5j*�u�����୥4�����v`�$��@���Z�(.s70��c=�u��n
xSiv^%��YK�s�Ʌ�k.��-ж��P�� )�iϵT�5m�!���4�=�� ��\ ��Uץ�=6��Twv�ٺ�[J��&�2���}�E���(
�@�Z�qK�p��U�\��d�$ۄ��Th�?�	�� `���Cr
åݬ�Uq��%���x
`w�l�����bO�	h��f���|W�W�<J��,�-��bP+Ͷ��v)�	`�ϻ1�$;Y�~�ġ����A9oNO�U-�\
|{�I,����m�Jz",�K�-�������:�ZP��l�;���E����B�i9k'Zji���0��M ����O�*�T-�(@@�i�:�(��N���t�P���l�D����Rm�F����4`յ�wD���"�9ߒ�b��[�mio�A��������S��pKh��$٥
�#5�j:�S�nH��}�x��UT�Ŏ�Z�^J�M��è��e�۽h[���}l�
�c�vj�$-�w�����&�	XΛ�q�Uq�k��֭������gu�O�_���v.-��n]���r^$��;����;v�x{�
��.��y��
�����AT�g��bj��ȩSS�&��SN9e������յXN�a�q/���|�M��I��+W�u��-J�\pA�ַ����'�
6,X�������mۖ���'�~�/�����t뭷���:+��4�4v���/�N8!q�-d�{�'����{��{D
K�����??�A��;�ۿ�[:ꨣ�c�}r�����ϭ>���;��5�M���\��,E@��dH�A٧���(6��-U����Q	��+~_� u�M?�%��~��@:蠃ғ����7f�g�g��a^�����2�`z�}�'.;P,���
���.=�Y�J�s̲g�7�|s����;�3��կN��zj������/�2����?�Ӟ��Y����~0����ק����H��w�g�1T:+V�H_|q���X� ��b�.ߞL��:�rr1h���^�sگ�#5
�u�M�É�b�v�AR;g�8h�3��v�̷��SNI?�#?��u�4O?��t�}���{����������G�G�M?n߾=�����H6��'&һ�����>v��v��纍�<�ػ�+ұ���Y<�a�Ԕ�t�M��Eܟ���֮]����g�C9d��(Ө��K/M_�җf�.M��|/���]����ݍS�����_����/s��1�������==uAtZz%��Rlݰ��p���c�..���Z���{�r^�P�U�V
%����O��U�V��O����s�I���t�a�MK�&3��t��i`HGyd:������+���׿����%�\�Փ����G?���G<"�q��~���իs����?��O�M�6�t�o�7�7��{�M7�pCzԣ��������W��,���3�L������\�}��ߟ>�O�6x���U&�����xG8L�mo{[�>���<1_�reT~�r�{��:3�ԧ>��/-e
���t�*�߂H�ʲu��|�_��_�s�x����Y�:�һ���W������������q�L�����3���~.��ӆ(%}����Uo}[ԧ�w�ƍ�s��\NO�ɟ�I�������G����r�UiW��y}�O��C����u��<�n�E�vжƅ:]{��q�>�Ϥ���o��k�i����1�M����ί��汢���}(����6���r����l��#�������v�e���,�C�L�E���ŀ�Վ�_~y�K���oL������d]E�Ye5��һ{�����l~F����ÙOW_}uZ�fM~W[��7s�}�{_m�f���ϐqHS�>p�rH[��k�c,y����8�뮻*��/jlj�h��X�~T�R������sU
�6�+n(����NL�f]�-��M��%�:�^xa��{��2�"�a�$	!L�x@�"?�����u7�0�����1�=�=����erS�줆X�{�>�O��O�o|�Y͆0:ϐB1�+��23=��bZ�}ߗ��}ײ�ʭNg�yfYL���9�yN�lQ�0�?��?��yғ��L�~��83 ��uSO��(��C�BM]=D��Ҷ�'��G?�љ�������3�g��E��(��X`��xY�`vڀ��w�3��t�n1�}�So곺��������33��?��\�2�,L�,����w��>��Gr����"�)OyJ��ma�\Y��	�����O������=�a���~�����/|anwi�Q��7�VOi��?��]��c�#E�S���(������z�آ_
�.�!�ݲeK��:[��C����3�˯���8�S����B�$flhCl�}K5m� /��ȵ�Rn�V/mmL�t�I�@^_Z��V@:@�s�Z�K,���_����g����
Mn��:����VǡF>1����ɻ�f=�]�k�<l��g\�*��d;�.��
	�o�}6����R ��}dEh��”�"�2i?���gF	7o�<-i�tG��Y+w���&�}ы^���jX~�����i�/&��@�����=.�r�-�;P�,H�; fbK��"I��,!媟��r �
Hb4��Ww0��V,P,60I�a%�_��W��F�9��~ʩ��;�����Nʎ*;R>�凱���T�X �8���S�_y�Y�I¹��23������|I@E]�]����1������B
s%uJC�Xm����|��_��fڕT��c���%��$)��/�r�~��,΀��F��KcJY��؏�X~�t��W�"�]} k2�mla����j}�oL*G�a���-0����}�J(��:�����>�M̅d�n>��	�B�j�c�����P*p�3��j�C$-�������^�[���:���P.P�Ɓ��z�����x���Gۤ�f��{�Վ�C�WR.��p�_�iO���e{֥�P�Z�-y����v�k�I��-�Pø�H5�E�����A	���*-��0,�f�<�y��R������%O����eY���R%����1`<@+
�'.R+us0-�!u��zb�!�¤-�(Z�'-3$Q�Fw�u�4Ƥ��I/�a�����jԒ0c��G" S���IٵRu�7H������*�P3�W����S�PI���l^��d\���4C�)�(iǢ�\�V�S��k��k�ɓ�~�1KĿ������;�����1��2)���_�����=\ye�I1�O��Ei[�Q������3�'���Y��c:��I=���E,8p�M�zG�i��M[�X�����ߴ-��1�F9�<���rnG�b,�o��x^ڡ�2O�HQ.yksu��F=S�n��}o�$;��`B���{����Pw�������J{��4ڴ�Zo�n�l�t��o����*C<cuk"b�?�S?�%'�9�T�0V�U-���t~��?�#Z!��w��(&�ջ��ey�#�P_��i�HHg�(���=�]]b�n�G*b�xO}�QaP�$ʅ�Ϗ���E�H�6�|�+��^��\�:�b�@cj'I�4>��+Ix6ʡ|�2��0�`���K5%�0��uBԝ����׳�<ԭAꫬ�_Ҹ>��Ƃv!���1Xm�ڗ�]���<OMnad��l��~83	�B�b����K_��\��̼$c�b�B*l�Uf���J�����s�������?�!=��S{xO;�X2�c����H���s��[�(-)��P�X�([����F	�$�RR��	mL/�=�@l��D��~-$ٙ<
�Ce�r�Oc���-�66Fݓ��bu#�i�5�bߵ���3���ng�U�?�ZU�Տ����M����0��a�ɣP;���0�����y2Z�K��6���� ����0F�}�1Fj5{��11�^��Mr{�;F����=� �}�){p!I���>���)�r1*�3+m�-����9`H�|��^���n<�)T�Tr�,IӤ���E
͂�w�9�Dm���VR�@I �����1j 逪M�1�4��� Me#9j�ŰFi?��\�@��R�Z屷ǚ�9nEM�ﴡt�7�/�hKiMy�~d����Q�zG�+ S>fߖA��c��H~T��R7���%]*e�s��K�ɗ�*^}�t>[�H��3(���Ri�c�i���T�jKikku1����=�=�ո����j��8`ƥ���u��sƾ��`���-�m�lƨ�Ǝš�R."�8�W���Oe7��=h�o�x�8	��9̆A�?����x�3r����ݺA�y����G���-�ԁFᤓNb����r���xO_�'�5�ժ�'�0���yEH��d�	Euo�qg�hN@�j���p�bv���3�[~MTL�cU�N�uqә���	�F��~�˻�(�N!�͔0{_����?��1��������}+Z�����c��)�R�	(�zI@S�Hv-դ�LV}l��dƀ��<�iϕ�g�AH=��r`�E����y���ʈA�
R{���(�w�=�5�d[��N�+p�=b�2��:��{a	{�x+���$
�0\��,`�2ȳ�k~�S \���H]�W~mD17��g��5�yM^(�7�}@��:5�Ɔ�>ʢ^@�8	iJ��_:�j�$mQ��b^�s]��,�����#m_���~Te�oʫ^��F]|������i.+�#�~b��ߴ=0��:yN=�3`�m����)8H{.$ws�<�v���Qi�
��9s՜D�H�qb�SM[~�MRM�����Z��樳~ۋkG�g�p�X�Cޕ�c٦g?�ٓ�@v��~ �U��u�u���5I6K�@�j�v�wE��
`[1��T�a�<�����ai�S�B�$;���s�Q���f���oOb��	2%�T��I9�&K*z��0�����!���o~s�M�3<���8�}R
dK�
p-��ٽ`���V���b���������7�cc���|T��n3[��\u���i�x1a�{����W)��%)�tg�GA�&j������$Mä`�M�Mr�Ͷ��
Z��<�A����=@��
�찳}��͛��$ɒV��w�1V�Ŗ ;^u�D�t"�����깕�4�%�����<���#�R�m�\Z�R�;H=H����;��"��@V��˻����b�H���x
c>�CUߕdwV���]�������~5I��k(Iv9�8RĒ�&by<g7���X<Ꙫ3�ƺ���ީE�K}u����Y��w�9��th	��^���o�c1�h�KR��H$̦=�QR�����=�'�FQ5��<�K��Ͻ&<�go���͛�ݺu�n���������p�Ⱥx"}W���w��^�i+�f�j��H�M��&��가U��:y��oo�v�RK�éYe�R��~^�z/,�����m����=��S�
d7ݐq։A�,0�J�J�ُ��bO6Tui�	��H&����~`X����L
���ۅ<�mK-�4G���;�w_vb/؞�e˖�CnH@ �l�OLL�G�;�#`{	���=qo���I-\A�繀l?p,A��o3�{��7X���RK-�Q�X;C`R#�N̠0�	`{��]w��)���Y��R�=X�=����L�X*~p�(q��n���ai�
�����E᩻f@/�^j�^�K�������m�h��CK--q�MC|�&F\�%�����y���b�Rk�;�S^Ǟ��]Uq�`�.Ўu-�ƺ ;S�XV�a��;��)3�;��Š�!wW�c�������\E6I�s
�*�9G๵T�a�w>�?oQ�$�����~��-/A<`���0ą ����rx����/M�Z��0��5��	o��+��y���bAv���d?ivb�D4G
����S�
L;]�R*�����i*��Xwo6$�lEz���ӪU��֭[7ƚ-���3h�/i%��p��Aր��TO��a��&��U��H�\��>#��/�\@�g�a,[����c"e�y���|��#�Ļ�
���~o{����Y@&חc���q�}��T���s^xP�QOQ��l�5V-|�;�2����8bA��4�}��kg�>��u�U,C������DSW�3pR��>�����qS�\
��#�8b�Z}�?V���Z}��W�,�J0��&7�f���Do2��}йYϗ�g�a�>�I���\؈�[�ؽ��=���cq!�W�ύ��he��`��)��3��չg#@3?�bY�eU�2�AYWL�_ěpX�9����� �H��8&�s�P.����'�ҕ�=��
�o��by�� ��G�:˷^7�¿�4�Yw��0^s"@R熯鬫4��-w{Q~�Z���c�.��s�,�H�O~+�
E?��^,�"H�<]M���O~Pzƙ��
�w�s»eD���e��&mZF�) �CW.�͒��ҁَ�O��s]��zD��*�~c۳~��RT#���C�%⬽v.#C���_��d��z��e�]6Y��?�=Ϻ6���,>����F�Ỹ�.�m���ժ����7151�
p�]�`�*�e���;l�	'�0^M��
6���~U_���ӊ�VLo��F�׾�lDTyb�+�fm�C0��zշ�	�	yD�თ]�8�Wn~S��2O��N㟕�W�e���X��V�7~�7r�x��d洜�q��L�=����(ӛ��섞]LAy�;��;��HCh4N���s�����'�):�P����W��q\'~t�W~%��1H�N�E�Q'e��Uy�{�H@��ra@�(�z���1Z��������̩���R�ּ3y��_�o�w�7΃����]��:KCy�^~�m�bq��1Ф.��0���C	y�5�vUv���^�������ᤞ�xi
���R�<�S�x�#��g�~�I����_��������+����|��""�s��_�#�����Gs~楅���i��.>�P�W0<�o|��3�=פ��p2/�y�=�k����m�]��#�qn�����3��(��k1f�g�ꯞ��x�[�c�V�v������k���on"����G�)R�ߌ���d9���lb� ��S�&p������@���ݿ���J�#9��!�V�Xչ�3?��é�Ǻ�x��*���d���D��t��B‰����|����^�l�V칖�>
P4�Q��l���Qx��m�;���	0�5��&����"�(�����8���&	�+TG2)S�`������I����"�R�"-b��������*P�"�X=�f�n������qs���]*
CxuR'���q���c@���^��Qh�AݕS�T���"�Է�-

��C���Ĵ���
�R<W���+ ��#ީ�@U�z�s�����_��_�u��Ԃ�'��o}�[s����6��^�ƭ}�ycV�9��.|�S��~��:���_"�Xyp����1e/Z���3~�?�
8Y��ӈ#
�z�GI��#¸'����M;����~2΍���>{7��!�?�Y��N���I�-����e(�o��o�t��S�
��^�qa��?��f<���`�$}�3�ژ5~��W��U�߀��v8}��5�4�Q��H{Y{���H�ks�L��i�(�8��{��7ךʪ��'���~�����)v2��O<����i����ZW
���Uq�g_�p�=V�Y
��'�t*F>V1�N5�:�*�M�'���
 
uRyPP�~~�{9�(U���q�x���``&���J5dә�z��~gu{�Ֆ�Y
f��M�8O�ijy0���Y��XH �G@����$˅J�?+"y���%@��*��6�H�Ҟ��}��T�i`0�E?�Z���-�]R�����b��a�D���=�`$a���� ���AY�&�ɒ�����t��ER�w�#b��Z��t�Y� �pv�	�=���� �r�V�[$�1gm�/��	U�7�t����p��p`��R, �>�����>�'�^cM��
���Z&�C����IO����z-p�g�+�Am�=�TI�%��4��c�!����[�̄�+_m���z�Dc^���2��h��wuLJ�q`�y�i�35{v�o;k�m��%	���`���%�#9��`Yw�������n�b�����dC��NÄ_W1��0~�@�Z�O;�ڴZZӤ����l��qx�u��j@���G�z��m2R*��Q'�V�$N�DH���ep��`��B�:!��D�6��(����P�#��ʽ���}!+jR1����3@��Ozf������]�_�P�K�.��n��4Y��-��I����?����4B��t�H�a���y�{^�W�W�=���b��^7$��7@y��Zݑ{�3��5QVy���x�t�s�w�I�g�]X��i�؜#1AqyՇd_%�+�"���؉��%�-S9.J�x���3�$�An}jQa�D��J �v�nY����<%����~�&�Z9���X�u�ʺ֮��hs��q{�_9znv�G��e��J�����T9E���Jx���cOx��N?��Ny���:��wDŴ��܇W�H�C�	\g�N��$[�\^��~�0�`k0�lKp���.�6F�:[��#էU��*���iM-�Yc�V��X"q�1��;���G8��I�>I�}�A�?��dJTӘ�����Ѷ�4���-o߭�IzʏPwS	�O�7+����%�XP/��I�4��Ǫ�Ř�	C9"n�D(�r+��ܤ���@�������ܣ.�p�ĩR� ��n�Ty�Mڤ�0��
�D{F{Y�]��k��={�Ԫ�4�6��L�=�S�A���.�	���#�Qq[�i7��v0�)��
�*��Y�j_HjWFy�cYK�[��X	u0Ҧާj���l�WY��N]��^�4��p��i��ժq�,$s}il��P_jh}B]��V�qi�{������%��ӳ�H���J��^�V�>�*ƫ�EՁ�D[���E;���H�޽CJ�1�i՘��P7c������3�ԧuf	�=�>�{���EX�ʒ���•+��}׊��W��N���T���zwꄇ�2BO�L�a�`}j%!���vV�W��)��ր��m��t�T��Ai���X}z�0����o���A<U/&n"���X1eF+&.�
TI�4�aȁ	`0&�K1G�Ye1�L\��&������"��0/+�r�J���n0&�&&d�Ԅ&A�LlY�E��g�y`*�&���ؿ*�c0�4�2E�wycVꄡ�C텺���)�����B�dh�9k3Zjt�P:��6��R���G�W��f'_i�!�*>dm�>�}Zy�hi���g�B�F���a|e���Ѧ&�?iQB��昲:�G�X���vUocJ���~*&o\H���w�X�-���~�`��|��4��1���RI�~H�Ƹ�&�'�-���د$!ks�c\Q��O�(�,:�1��H��b�j���� mlQ�9}���:��s��U;��V@�]�f\�C�F���e}�ai�JQ/��n拽���R/c�bZ=hl
XD�]�Q�b�i�C_�?6�
���;�P�k��]g�T�{�Bݭ1x�`�Q�^���]�a"�x�ac�ʧN'�{�ي����յ�z�+&���zd׏�n��$��d�r�g�q����C�����H�i��ƾa���a��g�.&���Yd2�`3�ЋA�IS�G�\=AQ�#{������iϢI��glX[��X4��h,t�jy�k_�"��s�T���j
�>LȻ��=B��[�6,p�L����/�b�eI��5#��J�y~���:���{f�D{I��@wX�u�5sM
R#f+�P��S�R�O;�G%m�������ʟ�\��D��Y�.�%��qB� q
C$R�|z��f�)1~H�v�
d����X����a,:�����֭[�����N����ƲT��WXbϮ�{�lK7�M��KztV�_��A �$�6n�k/_Ȁ3,(1�^eUw��د-�����M��3R���¼k?�q��R�^{+1\�����a(���'�O4V�l/�{�dK�O��+G���è���g�}v��vL�;|��S���A�;?S��km�}�~�:��Ž@�.]��j�@��A`�m�,}�R�>j`\���-�4;Z,u�(tI�gI�6l��o�ۻ�q���7o~q&��@��~GK`G
�q\#�7E����A+``u
i��^h��=����RK--'��J��zصbŊN	���c�z���N�����l�֋n������W*~|i��ˢ7}G���a���U*鵇����^tl	��秸,P�ğf��Cm��Q���1>Z�]��.:Zji���خ������^��JU�]��֊Q�`�#53���:��S?#�a��~h|�K�%�h2\��=��3<2y�<�ִW�K�m����Z��%�9��|l?��QG�y�+^1v�)�4Z
�{���kϮ�+P]��qf��ê�{I��2�^�OÀs�ʵ~o����רc	���n��D}̘��0!�Z�m	-��/���Î`�p#��|����q���#�N"�$ؙ��Tg��u��˂��M[�j�qg���p�N-��i�AV�,�P�Ss�Y��UZ���U(��`s�����Z�Mp�5̍҉ʠw�
����yWw
��hl�;�@�؊!O���_��_�z�UW=�z�S�I��Һ���ok//M��xX@�K�s��M���߫
��+�p���lj�u�Ǟ�[.��h<���;OOB�!��x��`�� r�Vx-���&Ͷ�w*�|9�o��w�䊶�xT3�ya�E�G�߼ܩ)��(���xv6��/|��^��7�Q��V]}��o����+�����k�A{�u��]?�%
�Mϖ�������곗T����X>�LdRg�
�4ܹq��7nq�~�m�/-�q��a�q��^D�Y��w5y<�%�T�-�D��iO{Z��k�-uh�C�G2���n�h�eI��Ҽ��@T$�	G=,L/��s�X�Q���8�3ط����^�cn��c���_W����\���48�.�p�z�A� ��<GQ�6M��p�^ϟOT`��*����&+����&i��]�<i��p���"5t86�J��Ƒ��<�B�-����&�%�B���iB�K�P.c�ʝW��/�<J
�:�9��.��<?��o�9G
|�ʋ
����ڝ?ވ��pء<�0�t�N��V?z���D����x���ň2Q��o|��m�'n,R� �-�ƆPe��|�Jz�16�������A��U=����(A�/�*��J�Ž�`���7�j3�~�U��@�]A!�╞�X(HWzO�/�"�HS����U9&��
�'Q3e�_��_+��~����X��l1��)M������G�=���,m'd�ϴ�Ғ�1e��Cc�8ն�q�ݕK���63f��̓�u�[��O��R�,_sA�a���]��ّH���a�l�Rx(���u�&��U��UG?`g�7;�,�U?��M�M\+��6��{��̀�8��@�s�p�LЄ4�M>�Ϥ3�H�&�o��oLG�ఞ3t�1+�̤��#��2�����3u�GiR��+�:p值d���~0���6��S��.��K�*q��f-�/p�z��{�ٺ{�E��D���`�u+��� ɟ�`�
���F�Ay�gAթ��x�|)Gy"P��g�@A���6V�pt�>����w.i͢D(�y	CWWe�=��
�^�L�_��\�;���Ϝ��[u�t��6�[���v򼱠�ґ��,@�>SOA�O������}�����v�|�ٳ�<XyG�!?�OdG��n<i#�6������x�w�p[�p�/
�a�Y�w@�=�yOV��ςI��C C[�#�-%��<�)�|D^�&ƻE�<�Q�jgeR���k`o>��浾��Q�{sVT%�5��񣯍q�K�(=ư��~�,^Ѝ��` ;��6M�`��~5`?X5�^;(j�l�u9�0`;h߶I�/�7.���� �n��]he�	i���"b�b�|c�4���3��'?�'�Ɋ��O�
S��|g$�1�R���`�Ozғқ��\N�1��
D�y��_��k@��_��<&?��9��#�ѐX05�H
�M�Ϫ��O~rz�s���RI��G��
�'E`~«�:�V�8kWa��}�Q���:I�k�{�㲴/6��1e%&��JDmL�����g�-
�:�f\Iɤ�g?��9�v¸�C(@�q�r<����6A���"ɂ���3��8�5�0y��<� op�����Fo{��r?Y�7���(7E�p�Њ���~w�����Oi�I�e"���#����i|���R��7��P�;f/ʑ1'Ȃ��o�d�a������fa��)��M]KU��զ�P��16-l��^ƫ>5��#��"�����W�b:&qH���bP���oʡ�=�����{����KZ��G�g�N����(@������)�r�X
�_��/62Տ�2Xj�������^�eJk���<����:������h#t[	��c�=%���$ �>������!ݐ�b_3|�R1QQ���`�@3ƀyĮ��<�K]=�4b_M���
D��:���� �aq�4�0C�˻�"]����t�����r�΀
�}3i�r��,hb���ү�zyOy�5����Ȑ/郦���l@ݜ�	�5��S�f�)7�]�,\>c�T����d�C�ן�0@�&Ԭ���L�1N�W �e��삀L�qՖ�A�D�{HW�nX0�T�޵�P6@d�
H�ƅ�0���ihdHq�Yy�q�Y����������i�i���M|%B�1�,�b?�8��2���x�B�Ƽ���q�mѫ�槅�C����HO��߳!�����ɽ���a��R8�xaS\�a�$�S�&Âmt��/���;V��5���@�g�ǘ��a $�.�]��s]5>��Lt+�\u���'����:�z�O׆`���w��]�կ~u^m���W�M�q4S���'\]*�h�K��BS�0�ȧ�q����+����h��CE�\��R}R1i��]G0<f�"<�ڧ$}J�$m-�`�-�
5b�*���tLI�o|����e/����j�Ѿ�\�v�vS�h���w�(�a�)ϒ�Ha��W��2I?�R�*�,����Z�R�&��_�җ�a�~�_���>��W�r�Y���w[������ܭ��8�qkQ��J/p�G�U�˹�=�
�6�p
��ҵ�+��;�5��A�M3T�}��B*�dOvA\+�2t�C?��j��d}���V�V���~�{�;�jѽA-<_j�a��{����4�5�=Z�@��1�F�GD\�dMP���HC�XU�!
���#eX�{��;�����)?�h��&)� ��wfi��EZ
㝐=�9�A-�a�����P�a���c��``HT��f�������ҳ2�c��Ս$����W�<��0�P+��W�j;���g�O�K-I
ma��aj�q
&)@�����b�����t�N��g{u���GZ�K�Ξ�>S_�@�U{��Ey��a�H�ەK����^,*�S�Í��ւ�1h�;�e��E��L�iXP�jk5u��Ɗ������1��p�ϟ���~��u�h�`DjӿGʡ��i�^�����<&��2��4���C�b������;[�f���ԥ1�}{�0����҇T��m?^�˓ڙ��gsɘ��{�5��n�7n�W}I:�
d�C�ߌqm�l��ܥ̀4I�ƒ�sSߛ��8\Pç���a{Y��9X�t���l�(�SM����7
�i_י�m��3�j:��g�b$г��g>c�FTYC��ԓ�q�D�l1	i���I�;�a2c��ؼ[&�LRR�G�����=��{H�� 0̛t���]Y0i�B�%��
x�`}���"L���a`��v����E�Pm�V>��w�%��j1d�1�N���6���Z�i�PGz>�g���I\-�*�I �<D����}��>��,�����>RG������Z�=���XRf��g�h��6e�j��7u՞�Fھk�P�6�k�5��zƑ�R���;�P��T.�꫐�,,��䨌�[�U��6�e�G6���|�]z`ҏŁ6t�`ax���6ޡnVN���O��?��m|wc������<�q
�I[��o��.��ոP�F{^>� �7p6���շ����N�S,H��|U��'�l���Bݭ�g)�3���n���mոcPz��I��nr�0(��l<6�k��r���.�,�է�ӑ�P�E�AN>��� �0)�p��dAja������;������IK1��\��9,W�}�-3�~N-���^���R�L�R�4��`* `\+�W�A��v�(�n������x4D�@-g�O�z�-w"}QْDI^úliߦ�Dᙓ�j⠦h:��;f�DW]u�/U��&�
#�&K�Z��?�@�R'�	���ad~o
۷�qf�X+#5�[��F��$j2 O��B��܉��W����\Av���z��
Kb�t���W���{M��[W3jv�����8���z�Gco���
��^�E�W�T�ڃs-�:�'�oZ�D��gK-�dGa��i�\:�C'�`���]s�5�[1�WL��dA�`���z�R�
�o(�g���w��"�Q	ÔH�̿�\�������r-oK-��4_�6�N'`�s`��,C����7�t�1�s��&��MGs9�ovv@[��/�O�g�2@��+�ބ��\�����O�m���ZZj ;R)�����>�
:�s�e˖�w�y�W��~�`���+������m�6m�:��br��q���y*���@��Zji�H�}�����/�b���nxKŠO6�k�c:��pRm`�ŭ%ɒh���٦ �M��R�(h���
�s�b{;
�&�&>��=:]u�UϨ�s{�:����m�>j�j:�T�؟�u)w��Y�<꾐gJ<3����R������!N1��)<�]s	PΣ�z� %�
�c�-���I��� k�P�[��#F��IrL��[�9����&����i6|��A�ܧ�"�7��r�W�9l_�<;����sFt.��K(:^���$��D���]ސ�������F@=kV��y���%'�G���R�y�bQ�x`C�
51��uG�;w���;�Y1��HlL,M�mۦ���s��kJ?�ոHC���`��㨁o�f���㋗z&N��0Zb�΅���g���;�@Y'��#� rL�;��ex�8���P\�	���7�y���l��=Q��߹"t���--6�����E���ԃ���T�/1�V�cg�q�؋^�&Uԋ�I�^�`�R�.�ZZ��{/�.F�O)��$�r�����I1��#�I��Y������D@֘���@�;�Ԛ��}��N�X;/�n�G�M5���T�������s��3�.�/W�\!���rE�W+߮��S�r�ΩC�)&	�7�ѻ���wA��B}�n��j3>���{��|�]���;���{�-�_�R�±�#^�"����j��>�Qe�	J:ڀo`>|�3i7|/+#�����7��pt��;���m�q�(��!K��g�#�oW������/���M�L��[���*�3v7V�5��U#���xN?�`��R��<�/�0UjH�S��Tf�\�Q/J���I2M{���q\�Y���{��ĆQ����C\ʛ
��v���}wlg	MZ���%Zz���?(@���0�	������'4:�~��HC}�Y�rL�BZ��Pg �H���E��i.�I����"�X��|�,^�5G�uD�B#>k셆j6�@Sm!�E`���Yl @f1�-
��t����>�Ȟ����?���
-DD|k�i{�lC{�ʮ\�`�� �e\IGYZji�4o�ʽؠ^�Ne謠j��{��];�/�a�﫫�ґ�Bm��`ʥ��������>��(Y��D�pE%��$e�µ��+��
�K���pX$#=��tSI�$�G�0y�+"�+��6�R��׼�5���ؤ�������,g�E!�FĐH>���,�E�!`����������"�h[�jdaCB�u��$CsQ��Ǟ�H,�E\Ry	��y�E{4�O-.��Y٤�?�5�����:��I�)/x����2~�n��P����t�H%O���|�C������dG&��O��݀nP��z|}�n&�_[�"�N�F!���y�rwXJ�����!�0|R�&�=�,�W�f`�%�7,�rԙ�$� ��2�V1o�+�c�i��e��x�ouu*@��w�9�Wd��w=Pw-x�h3�QV�bf*�2��d؂�F�yA��^���V�m��L�4�M(�2]ih�pgY��}
i[��8"&u���B�/y�Kr"���n��'�kg�l�ڑ����ga�{<�"��3�0ʥ_�<X����#��+�wK{/Ȏ���b_����\���j"���}غz(>�0TPx�P�
ƴH"{��o��S4^Hp����
�%��Q�&�!�?���6
��*�ILMׯ�گe�dz�u�A��,%0@��1e�R��ӻ~p�;��� �=V�,��>�<�[:y���<��O��#��^`��0B�!��xb0�r�b�C�Ҏ�0i�~'�[���
˅� $�R���՜R��/iyie�S�+��d�A���ߣ
����T��t�o�z�ܦͰ 
�9��$��{�� �1k姾T�N��c[P� ��fK����WO!ņQS)��{e��>)��c�{��H�b�?[M���թ��S]M�Y` U<Cz1�쭙Lu�� �1]���
%6S��L��1���|���c�36��>��d�F(���H���0a��Z�v0�Ȁ�}=̒ʘdl��������*��@�����X�H3&AZjJ��2�3)	N���5�'���3Ɠ�A�$��}h{����؟�.5'U,9�y׻ޕ�X���]�ĀK�l��	���m�L{�4�����X!�~�͋���я�n��,\-6��v��&ϰ ��9�'������Z�(�v�e�P�[ۃ�6�m���	�K�w�1�=ښ0������R߫��`�\?��66lEC��~wK{��B>	ھzԪ�p> [����qb_��1�(�z��j�|�br`aM�m���k,�����nO�~ꧦ����e��foo3}�s�ێ�!�)�4�f��)J{�F��Ih$,L;<AEx@�BB��/��̨=�/I#1.��*C����w���D~�.r��we(�ڴiSN�3@Z���B��Tc����(���CiQ)#�+���Q:�2�eE8;`��H�0�n��N�=ԮH���4�	�,f�!�ԍ���������fX���s�K_j7�Q?��I�ұ R>}	���i�B���Џ��<�ŗ�B����V�����q��D��ڋ��8S<,ohiy��>r�-�;U��â�F��jŒ3ϯS5��PM�_�ɑ�2�]�ߤc�o�9TWa8�����c8"]Ҕ���`6&>�[��`
$�	�f�t��x{���T���@]2����ǠBM'�H+T_�p!�`D��0�n5���6��r_T}��z_�%S��c�Qy=�(���#T]�^85&	x�x%��z׻�B�J�qVT�(GhS�-�zZ��
qX�Z���>[r̅d��׾vA4
-���ƒ�Ȃ��O�
�i/�TY�
����O�@��ة���L%L�G��[IZɞ}���y�L�$�&=�E-e��g+{L�j j�=�!={<�(PIY�KH<��O�V9X��*'y(�N�_I��<P!mKp��Am�R�?��C
��T>�F7��(�U�}?
 -=�C�'=��"�����!)Iz@P~�Y�`��[֬ځ$RDIړ�8@�^�z�f�8�(���`D�G��XP��+�Q�)�T��ㅄ��=��RK{'���3�4x���i���(�7[Ww�zY�P�5�2v���T�y�%� i��M��Y�%�:n@�b(e�	�R�Q%��HoT���:������rPa�����ɟ�������p.�X�9�P��U�=�`��h���x@+����� �1iP:�g�EZ�/ �쭑z-�@�3��P{P*?{�Tw"��=e�n����z�rP_R�1<8�[�8�}}nA�0�w���� (�M�ƥ�U/�]�X��Mx��{:��}�V�m����}��v�bw��\l��T���b/�狸�6I��0�$I��^��(�\H[�N�c�����{�u�0�1�T��:�e@	Hf ���=�y�}DBhO|�3x���g);��#"���B�!y. �}	Or�@Wy���6��P6��,��訉ߴ�r���+	Y?ƢE^ʥ���<b/j��z�{�GV�j;V�����4۔G��RmH��RK-� ;'D�%�}�b�Tgϩ��Â�0q`g+�&}����$ђ��jK5$��Z&)����9��ϲ3�t��w|�\KG���DK�#�uR0#�0dA@��(YeQ��YAegdS��tZ.@����2�@�ڰ�����ma@U� �lSetͥ��Ά$�>a=����(�c��G_�r��RK-��l��M��R�-�O�{ꩧv�&�ճ�����3^V�E�*�#`�sz��jٱ��zCE`��0�������>�I��H��=�ְ�V�m,է�tK����{�:I����3�ձ��ڀT��U�z�zI�~���Ń+�D��f��4
�����u����2"O=�aT�-��RK�
�}
�
f���b�0�:]w�u������$�T�%):�A�1�&��`��g8+�M[1Ja��4I_%��2Iz�HUM̛dHR�1I��2���k�p-XRH��AWJ,��ffD�b/��j��f��}~Y�P3�A���I��o���B��f�>��I,�H��b����u�q�T;Jpm����Z�Ec�@tƨ=1ѩ�PDT��>֩b��䓸	\��PĔ�ٞgS�Pf�)S�RK�~K�y��y��4�"����:CG�c�����FQ����-����Y)�*`�O+*ۨ����B��RK�Me���n���_����rZ �n�em�u�N��M�K����LDK#7�i�:8�7v��7��ۗ�m��ZZ ;�������JZ�
+��l�zY�F�
�@��n��
���/D�D�glC�-`�<
�'"����TI���w��l�d@�:�
oxCzի^�~�'~b7��$] Ț���ܩtco�T��r�� &�m7��.��Xt(+�d�Z�^��K��<�,��@e{�dA�Q���u���<�Q�6.3LT���2Ю�׍>j�-�����Zji�i���U��?�›MIh�x����D�-�R#�L�wwڹ�1P�_�3u,z9b,V�3�j�V�?}�����,�Q/{�yY�‘���JMZqt�=@�ਔ�Y�:`bq����]��wǟ�R�Ri+��7�g�D�z3\r�RiYR�s���@��9��'+=��,B�a���F�M{���X%;
d#�XX_�j��H��¸�K<�r�oa���Rޒ�W�Edժ�[j��������*.��.��M<~���}��_�i���b�G��4ȻS/"�9
�H�@@!g-1w��8�GA�C�'%�z���z�灍g��HϡR�&#"R�߀�+��xO�!�R�W�_Y���V�htm�����l@/���S���K�WF�&�Q���ە���{D�a���@R�#�g/��~7�!MkWu�fҕP�.�W}��7���z�3���~FW�q/��q9�l�hi_��]<Ȇ����p�X1���t5��7�i��6n�x|��0�0n�m/�OˑY8sKJd!���9�I�G싃�T��)��+>�H���	��"»5Eo�n�-����B�U�ɞ�n[��nK�qX�u�Y{��e˖��ڃm2xZ��`p�H�Y�>����Uj�~��V��L�_��}�v�����f}N��[w@Q��
���;
R�-70R^�Nj``�P��ΫR�r�7k���^�Z�jx�:�F��\�}ٖZji1Av�ܡ�őG٩��ܼy��*�3ȸi�K�%�qc%!��X��"�+�U��b�D�{L�S�X��1�Қ���RK--+Iս<��ϐ���齃� ��M��re���
�h�h��ä�Ͼ,��%ۦ1Q��WӬL��K)s�c��Zj���پ����b��u�~{lx��w���J�rY�4l����@�d[I���ZZL���$ي9�y�̰����k��_d[j����ȖGw�5�Ǯ[�n��؍7n�����냾����0��l�e,�ܣm�UR�~���Z�o��z5�*F<"�i����L�PޜZ�vߕ^��C/�t�YJ�%p.�.�n-��D%ْJ���~	�ᝨ�J�xȰ��\[������wr/T�t�NK-�4�4��Ռ��P=�cǢ]�v�:�-��;���zY�lQ�j�|�~�����Q[����aӺ��Ӯ�;Rg�3����������xk���щ'��t��ê[ji�-��ui���2<^�(O�=Q`��_��];w��>����5���fό'G�X��`�-��wW:��N���qiź�m�� ;3jړ�d����n���,��缽�^[�%�7����@�M��w&cn&cS�`^���ޛ�L�}���r�bՊY���m�8;ˁ\���;����t�c�{���6iAv���'�p�\hӦM'sTgop>�������# �nG`��f�������S��G;��Qt2M�`[Z��lJc+�
��}�}m{�c4c�T��NH�u�٨N��{|���'Z
�;V�b�S��.N.H=z�>V�kb�U���@;^-��=�}d�B�^�w
�ي	3ɡ�}X��p��)b��A�xZ)���ZZTI9����NI���.;��?ږZ�{��&Iv�q�kK-���@E���4�w8�&fv� �ׂmK3��Ž��%wN��-�ԂlI����kي�c��~lK�@t��B�qQ;�Zj��Ťy;'�C�]�iK��Â�^��[���7�غ=�M��U�G��GH�m˴aU)�{v�����i׎�i��T���2����N+V���h�m�Ӷ���[�kV�U�ɟ�mٚ�o�6]A����ZWW��W���{c�=���ֻ�v�r_66Zs����T;h��=�9�r"�>hꘕ��=���ͤ�۽�mhi ;kN�C�=pX���f*�6�li��r��|���3ۏ�sx0�sW:䴣Ӻ#J��7m�����b��U�צ���i����i|�iǽ;ҽ�ܙn���t��[��C�O�<�a��;+�R+�_�vݷ��-�拮K�6�]���wV`���ұ�y@xk�w*�s[F���J�c�oM[6ޞ6_}K���t��
��V��*OJ��rG����}woM+׭�huAU�mU{p:�G�T�m�Yݻ'�z�ڳ�+ �p�ճ��/�N�L��Ǥ<nC:�iM�6�[�+MT�<�j<�k[.�M\�V�]����SҚ
p'֭��쾪�;�x�fkWf�w�t뷮����E�]�bE��[@mi�@:l��&	ȳ�"p�ꪫ��N��vZ��;���r"����3��ҚC���{�ߦ;����
L+�\]I|�=�S�x������ӏ��7U@�G+�xҏ=,�<p
H7}�ڴ�q����Iw_w[��?�6V`�j��n��cN92����g���O������i{�=��t�.O7��'��=5=�?�VW��W�\���\�͗mL��9��7��8��8�s�ZlK�U���M����ܐ�U :Q='����?���L����T=��ԩ2|�7?�n�tc�pwU@�����gN�ö
,���٣�{����s/IgTuYQ�_�N�p�1Y�Y���Z�rƱi{�~��YC�Y1�NԖzk=�+�&��$�AN)Z�w%չ�	����\��=���@�_��HT��xX%᭙Vsz��Ut*Im"����	�ZIl��G�9���
��H*�=�?���_}>��K�绯ݔ������x���-�]��sp:�eOHV�wm���Z?�m�H���j�K?��t��6�x;��'��z�3�^�ѯ�O�����}0�r��i��G��~���5�*����CO;6����{������5H�ѿNi��_�{ݚ���L��*�uG���ϩE��9>��*	��k6���=7ݑ��܋��} ]�ً3����IxT%ͮL7|���ܷ�c�����go���7�M��*��5+��D{浥��kZ�li�$^�bǟ��g��L'�tRZ�n]O�w�����1��t�m[�����$���ir��ԙO�Z7�H�����[/ޘn��%S�?�H��_�ƻҙ�RjX{�W~�9�Շ쟎|��Ӷ-S������ӥ��tw^�I��|&֬�~{/���
���gf�o��[�_��*�xں��t��ʰ�	��#�<��8wN	��)oX���r��u�@�o��t�_!}���6_us.���3�M;*	���i��c�2�W���4^��u�S��㫦�����V��DŻ���ϥ�?sQV���*���n7|��oV��%ZZ,��Am��4�`S��:��3�c�ؼ'�o�׻1��6U�Ư]��;��t�q�~��X��o]���
`�V�t¡(NN�d~���V�^��δ�����^�߭����.�$��n�4�nL��9?][���O���Z��ֻ�+å�wޓv�3%�|�Q�M�}؝����i�qS�QE[(�r����zW�����<9m��u��]<U֓�H�O:<�w׽�^$��n��o�:��|����*����������j�P
+Z�6_qs�V��`�o������h�����f� �ޑG���<B�}Vŝl�s�Y'T@���3�JW�����g_��]����b�޽5u��z�/f`���~��NT�(}R�v�y�ad��M�����u�VM�jxfg%mN�~�]5�x�il�l�����B�ۢ*���Y���a��w����T懧�G����E�/_���vw~���EE��G�>���o|Z�'�-7ܖ.z�gӖ�wg+{�{h<��NT��*i��,niQ%KC���j���6{K�!��cq� �$�oÃ������O;��$ȩ�������f�d�6���َm���]P�o
�mڒ���_g�Ii��J�9fn��컖ଡ��t;w�{_ڵu�48�ڹ�� �޿�׏�F�9�Y�H'�=������+>��t�
tY/w�
)��>-����t�f�h�]ig;�ZZ��l��d?&9̽��-�l�D��m��Ά�6]p]��/O�|������p�布�d[7;��[+�Z{�S{���~�-��lI�k;p���n�:�;d���{n��,W�6�ݰ.�j-
H��f��[���w|獛��r~o��|�D�u&��;�Y�.��Ӧ�����t�y��=��t�q�Tu��>]����G���~���Ki����$�8�xװ̴��f
��O���]~�'�*�*t��+��k��9]�/�K?~��O�V���u�4@����)��Q?�|oӅץ�/�6K���OI���v��ie�'>����
_�j����t��{���&A�wﶩ#0�o�}~j�t�a�Ctl���g��A�C�λb**Q���oc׈i�1ұ�j^\l��l�W�H��=���Қ
��+���<7}��_I������@�-������ :V�%;/�u��9�S�Y��:0�
əQ�z��p�4$M�ųtH!PuC�v�G������-
��I�b]LU���{8�X�Q�w{:�1'糣���Φ
���#z´���g>2ݽ�μ�z���:���=/��tt���㊛�����ǝZI�'L��?��t�iǤ�G�O[7oI��g��(�:`�ݔS;�O9{8����w�c��nS���i|�D�XIٗ���{x:�%�K?��J�]������?�tv�0�b�|�/M�:(������~�̼���鮪����T;VI��_�1/$?�,5�<�l�Lb��ȃ��ׇ���ҕ��z:�j���whz�랒��ǟJ�l�+���eDW�W}���~�XkY��@v�d���a���f�����W\q��Q�����_�B:��c�	'���ǡs��:8m������O��r�����u�|+�Q�VL��'�=/]��ogɑd�B���+�����-�TIu|��I�]|C%�^��Б��W�6wT�WeC��ێ�w�q��kV�k?}��§ʛ�y��������<oNG>�ļ�K����¿�*�n�G�J�"ʬ�/����m�ܘ�x�3�[��t�'�QI���s��TqP�����ȋ�>w��1�*g�U]w�ES�Sս�}R�����
�YZ�~m���x��
��Ź̀��ۯܘ��\�d[�o�ݱcG�tW�\9Y��m��+樤��n�-�s�=C�͆0����?��~��oݺU��y���
/Fx`c]1�[o�U0�yi�KWaGe�-�\��!�T^�P��X
���٥;�=�X�zu��Yg���?mٲe::�r֘8+z�'��=.Ţ8����S��b�ʴ�s�)泷�5�f�7��)���V���'��5i���c��M����`��y�Ɏ�,��4Ƨ|
o�����_2�/���iO�O�G�֤�ϻ2]��oO���}�^�.��:�![2W��Og����Şk�,��K����t�y��2؞��������K�3�����|��u�&��d����Й�i�A��e�;j�w�%��k��&3������?8w�q�����;/�|\��G����5����od����`�{��,i��_��@k�r��
p��F�K�}��N>��=�u��Gg�U��t�?�\|�|0���
(V�&_�m���k�ƙ����+������]�zES���kW�v���c{W���q��n�+���~��~Ѳ����0�۰��l��y�Jb������o|�������<��Cš���T�&��PS6�2-ˀ���-S/�mr� �k�a��˟�r[7�?f�Q�l�
���&�;�+�5��۽��Zji>Av(㦃>x��n�\]eL5��js|��R�W�^1�6��L�-z=�`��5�og`<�z�mS�K�uP���+���Q�~eW�a�8���wp����z==e�*�h�ܖZjiQ%ك:h��o��D�W��ܺu���	d+ �����M��X{ea}�~��̴}��IJ7�xcV�.43Љ6	@+f�����D$��k�NK��!�e_�5��V��Ƶ�=fe�ݸ��T��d�FS�RK-��h ;�0FQ �!!oذ�믿~7`�u2��B�mi<t����=<�c�C��7oޜ�Tݷ�8�Pi��)���:T�c'���v�L�V�zhޫ
"��n�>*c!y�^����
�?���C̈MYn��ip9N�b���Zj��e	��Y��Re|�w�}��l���@�;C<��4���M!)�N����$@�H�4��h���l�
`5�ͺ7@�u�Q���U5�6��g#��s�1�>�.����g��'�2w��f�ج�ڐ���p	��gAs��g�#7�A����[�E��Wu��sY��M�RKKB�-����:��%ʅ���`�a@�	�EU��!�a��1d �`�*1N�j�Xy|�5	;�D�T.�������A3���bn�ƍ��/��^�����<�I��jTm�=��駟��X�*Kh�o!O�+��t�)���_��ng��e�a�&������[Z��_s0��?�d�װ=9w�Yي)N:�S�G��x�n�W d��d���B��a������_�j�b���S]��4��I�@*��s�E~�6�&`�����
]�a�<,yV]H�@��.�*]i��9�t饗��T��R�\!ڂD@I�_|q�ԧ>��/��-l5h�3�8#/<n����&�6�l�c����F5�Juv߉�zE5���W�3gӮ3{e��Zf9�1�}��9��iAv8r�'>��x�m��%թb�_or4P�X�W��=?�S��a�&I�~�&&]Ʊ���W 1�6�x�y�t�Њ����Y�3��<$�P%˜�xH}"/`�Ι)T�!�h��0��Ǚ�0L���F:��J`~���{�ڄz�g}`�/�袼�8�Q�P���!���~cj>%�0�$��w����=&]�w_J۶lMc}��G��-�.��bW���Lz��҆�6�>
���Q��¸~������V`��
D*�3�i2~�3Ù�Ag�����j�W���X�����3pvo6���س�'�!�J�Z:T���Mz��%G:'[R�W��\�@:T/�b�RN�<�,���
(���Fu��.����W�u�O�tX6+��_a�䞶�LIQ��W$�4���}ۨ���|C��?�!�Ї�/���cp���%
�������ZI�'�Y�1��0~��s����n���iU�sS���މ���6I�!��(�	�Q�FT����i���Ք�0���h�h�Lo0�g���R������,�?�v�c:����G�t�jCZ�1�
�0�~T��Χ=�R���Z��W��[�A�!���W�^Rl	���\5#���'�.�����ZZ� ;�ַ��J����A��Zf@�����7Y���i���"�t���3Y�J�7y)&�x�GYf�VQ~jX j�YTN����|%���,��l�3ޣ�U�Q�k U7�r���l��`�V���~��|�lK-���Ұ���*�N���a�Dj�^>[z��/�$厬�N�����>I1��{�sS)
˄c�Szҟ�1 �Xa�5���uXԯ���9眬b
?�$U�����f�[���}je��9�KB��6��&�k�p�O��!�Z���[ެ��Oe{��RK--;I�4~�@�q_�$[��1~ӦM;+�<��ʸܗ�/�@�'�@�ܨϤ4V���S��0.��M��H����JߤL`T��M�0JC��2$^�C��o~3��}�C�
�b?8�x���L$>�jK�j_��O�dK���q�=m�}V�r�T��$���RK--���	5���Tߗ]�~���<�bȏh�^K��o�qxQ�l3gl��@xĞ����S)9��}�R0x����'"�)��ő������ޙ[RT}���F�`l�ѡ
d�A�qCƍP�q�"qc��10�Aw�EV��E\@�e��A1�~�&I��yٙ��[�޺�Q�nu�����_�O�<Y�2�@"�e9OT=�`�E��W��cѼ���.���o��E�r
(_:=�����D��Z�3ni�Ȣr%3�6=�mJ���l*�l��Z[��SA3\y�Y���^�LѶ	^9�FM��b�\浦�A]��PJTp�r�t����}��Ԥ�Nh�Z�V�1v�u�lŊ�~�\>C����\+Q�R�A:9@���er~Dt��"Ƈe�2��t�p/���,�V�b��&x
�fff�@�C4�O�읬-���ڵk�#�<r��m������X�Ƹ��+�, ���4Pt]�q=���]�+4U�ת*��M�/0f��׬�
X��9��g�}|�������<˃^��\QԌ��X-�VL���Q�L]�#�1	�JA6v_��;�03�
�b5�,��s����� _�f�Fu[o�����g�f��l*��@(]�2�1Xy�d��|G��$ecY�@4zq�&��̧���2�J����T�5�>�sfL��_���V��z�I`*�
��p��z�>�"c���馛|�)�
(��#����`fff6��j\�ql�������W�C�����K��㲓Z�.\�6�k�T!p�A��O��D��X6"�#J��(Q��M�$���E��bxʹ
�qO���0�D2_X�R7����C!�/
^�+9�p���ǚ��u	��|��%�%+��qd\��n腐uP��S)���}�v��fc�〮(��8�P��\��d\\�"y�L87�i]�� K��%��(^�p�
��E�	�J�0Șp荐�-�u��S��I>���� [�d�fff]���p\�l*��/[���D[m�Ճ�W��Ȳ��E<�-Ԕ� nR	z"��Z�"y�XVR,�p��4�(E`$��E���{{����هO�z�^l,��)1Q��Ne�p̞�Alړ�$��7���٤ ;�1j�����v�a�+�t��ggg��QƢ�bP�T���
S�ie8������U\��,�{N�8����S�R&0c�+���i�&St;�e��K��u9R��.��d�P���0/�|��/~�Fߧc��A�:ffӤdk���Q����g!d���g_s��w���vx�R��Z0@RR6
Jܓ�Ioj,vк���G�"0`J����Ud�>M;r}9G�����r�,�GvU*q�@%��%��Dt�%�؇�@,�@�N�Ds���u�ު\�<��)~��_�5f�{�@�wۿ;��������A�l�Z�{\��(�̑�.a+��j-��>�\.u��;Y�.���KU��I.ߪ�w,�������:�:9�z了ןc3�,K�q>����/}i4W��N�\��*633�͔�Ձ�,�1SEB�r�-���G��X��5]�=֠Wm)`#I"h�eΥ����a��e
�&��
�V��uЀ��F�.���N
Q΀��g����{}̰�kSU}�9�d�=YrPƮ����!�ch���P33�iU�I��̙M@}�+_!1EO�4�lٲ�?��_q���q�a�,c�$y��橔%IB�SJ�KY�aΝ�"Q�)%-y�Q�����g��0u^@T�~cDM�yǂ�RD�
O�u�:��YƗ��
��5p�e,!�FD�tDt�e��:�l����Y�!�-�2~��z�f�(Q�W_}u﨣�
���]C���Hc��6�1��*��7�I4Hv_����瞥��NC�$��:A�6���L�4ч�?,+�\äFմV��U�+���84=�k�z-���caf�=�VE�@I�E�2f�{���������[��K�!�oڕ��]�U��3NӉ,&iu�(L����5v�Cc�S�~j[�Z
6fffcm��.P�Yt
b?L���ŕ���F��b�-��5���g,�b�Z�n[,mf*�+�@��l�����l� �˸j+[����
�sjx�S9�GW���	�2�v��{p��,6s�K�E
Ӻs��5���ٰ�͛|��X��fq�j�  �������K/ݨ�m�����S
�R�a�n�
���)՚�$�s�����rX(2.��/�/�צ��<iI	�v���3Θ[c���2�g>���:���W��|�y_e�����s����=���8o��S�+噙-[���X{h:J�Y���u��kT�p������}/!X�l|�lr�
�k�j�Z����$c�D�(�T,ω\����e��m��X���k��e�s�1>�%�AXR0��CG��n��I�I,_���H��Q[F����L�c�A�[��~�k^�R�O�l@��7�a��
�}���s�E"�̦]��R��e\G�z�c�?��6*p���=�X�����ج[��r�,��K��x��ʔeilQ����G�b1�N9�l��vk庰����#�H���;g�_~���E��*�pMȢ�1ϙzŦ��އ>���~k����'f�~��=���d'�|r����Id����������3}�[�2�k6UJv$VW�2ov�=��1�C۲e��C]���b+��G���I/�g`��Ö��X�����J^�s�9ǯ�==��|�1�Eܤ��(��X�)\�n��1�D�L�v}���W\���-}��{XᲥx�d?��}��*R����f/x��rs�_��j�}��^��W�&��e��;����=��~�>%�u�~(;���\"�1�݅^�þo|���c�v}��_�p1��9����}��,3�?�����Yg��s�]��o{��.��c���Jb�s�9^�u"i��GΛ�Yt�QO<�Ǧ�����s��K.�֬Y���f��\�;U��z���]vYv��N���>���w�Q>��sej`"���B%�h�u5���d���?���
t���?�ߘ{�*�ؔmwm�beH@�5fi�i���I'���Kc��c! hx}��z�~��~�`�w���of�}�k�b�})��)��c���(�*Y����.\�>�qKy_�җ<X?��2XP(������;�W�$y��q���e:
b@�kBǂT��z׻<@=nV�^�C9��Ϲ�N8�C�k_����@���񸦔�y�W���7��
w�T���o{��ʕ+���s�u+өd\U����+��Ч��9c�M����;@)3q{s.���Oś��&q���8ǭ������=�u����u�]<����V+Z	�"Ҙ���\sM/�:����YU�6.��5�f��~]�r��ye���~����:4�l4�4��K�EͲ.-��f�A�)������>(!`��xxWP���{��׽��-�J�n=)���^����'�
FAS.�R���:>�Sq�B�CA���1�OH,�+�9@�E'P��W\�tL�؀@�ޠx�暇�%��:-�u���s����tZP���b����s�7��=��#{�+_���ԝ�ý�x�&=��N̋73KAv�j����آf�{���;�.U���a��̝
�:�Ʃ�f�l,Щl�~N#sC���D���)=�B	<;.ZTE�^vPLX8Ԡ�D�`��e�{>�GqD���~�7�@��3��u�=��M��`%ܜ���lf�Z
Ђ���s�I���&�\ُ�<��_�T��Xd7\��sD���N;͟��<��C��$3��� \0�5��b&��ߎ�٢Q�15����\m�=����):�^��=����T}qS^t�E>���-�(T�D��\+��6Q���T)��i���e��=T1�AMw�-er^��؇��f�l��~�O�0u!@J �>�xQ�ڀ2���ǧ�B�976Y��1g����炂x�1eaq�(�Ϥ<>�9�Ѳ�#�'��\#�����"�
U���9��u�`����P�\'����86^����*X(y}�/c����t��8|���]\�?��O�Ҭ��=�yO�_��*�h����{X$@ �
z�z�=������v�u�^8U�5*�r���rO_X'�O*�Ԓ�w��M�7ܟ�<i�	b���!p$�w0��Qq;E�Cy�1;T*5ј�j��իW�Fw+�^�廼�e\�,.c�-�nM\�ԅ`�+�'�1M~��8P�7�p�?�A�!J��db@W��_��Z�ʫ^@��pr
P��l9o�%��H��p㮦������*_7�$
����גk��5ה����X�>��?�o�sl�r�|��^�+�(q}pŇ�Zه��z�q<���Q����������'�A��:ep�8:ԁN:4tN�off��ꮻ��]��l��-OlY�Ḣg��GڴM�b�tN!K>c�4v��v��v�g���z�Fvɧ>��X�⦮�pɒ%����e�����y����v2�Meq�-�=E��}��UfdAy[�G�d�,0)�MV�4�/��w��/��`ɱ��H�Py�,���{rLeE�@^�R���:�	��\�q�L�9��LY9I��-�@��<q����� ���0�3
h�T�ճd�*�̣�&�º˾�M�IJB��'���0�7�q\�Tf�еof3~���;�~�Ǣ����`�l)(�#޲<�.vl6������E:�m�ݏE�F�	��~��g|$T?�l����>�M���a�&�N7Ҁ��U����v����H�������-����"�ҁ��x.e���E)��<�����>7�+S�Z�}ʺ.�<Q��2�ԁN	׆MB�U���8��>R��9�&�Ƥ��˾z�
�����d�y8-��B��3��M���5+.c�6.���s�&֫����m�?�S�p�:�ޣ�!��ۇ�2KRn��\ڰq0U۾zՐ��5�de	;�n�+R���(�މTJ��~�:d�W$Ѯ@�j]���� ��1d\�L_B�x��j�f�.�]��D��^�.�f�Z��fqK��1AP��*�΢>W:���v�af��v�'5����=���A�@�W�燰�Q�:5c�[
���,�L�	
KR�@}`S�A�kx��6�b(�׿���#73k�F]��uǒT0�笳���ڊ+����k��A�ͫ����6��.Į7�E���e6�Z-����l�!;��l�>�f�4de|����f�œ�=�5�_�cl��κ��s���T����.b�$�i�ɔ�2���j33�I*١��R)�}@�w���?-{�ʕ��5�ߊ�v�e�L��^�́���{7q���h�X�x�Ml*�:ff��6H]s���X�.�z���>{�����+V���k�/*S�e��ЍAe��6�9�n��2K$�$���4�7��؀eff�P�l]5�O�V��)в������e��wf��~�����zΥn*cY���
۲s/K�J��,��1��ĜϺ�*z���̬���k
���l*
в,	�c�]�r�w
�WR61�������*���U���6�`S�Ց�u��(��4��:ffӫd[!K��Y�������o>q|ꩧFA��؁�c�陡���ڦc��M�k�=S���%sPj�����2u���(�a
VfffmC����:��@��ٺ��a���{��k�7��M���@w���.\�@55�*�&��ɬغ�N���Z��u_�N�m\7�.h1�h���&���uᘠ<��;C��B�m���<��W6��{8\v�5kff�uȶ�V+�
�ذ�%3Բeˎt
��S�ME
ۮ7���pM���u�d������l@�u�̦��]�$�������_����ṃ^��Ū"=
�'�-
3�y���X�+4r��|��G}����]<)`��:
�$�X��oUqU41��J�И��*5u[���5Ț�-|w��A ;��"MAKs�m��м�z����f��b�+֯_�;���a�Tt�R-�V��f�X��Su�)�T��~?5�-�Q��IWlC��}3�Z���#d�
��j=M@+�R��w��c�l�0������r ��oW�vUJ�I��*�;���9��֔b
�Ǧ�Z{���BȲ�drtEs`��
d���w����X�F&���[o����"ZCs*�g<���׻�^���$���*�t�6�����eiJ��T4q�����N�^�<��8���8��Y33�l6���jյhK�@�Gyd.�@������l	�r�t����x��z��)�������u�Q��W��?��������B"sk����B(���� ����8n�h�z\�@[���&j71�.����p��:���
��<��������)A^MGY�-����&�IY�{X�,�ش~�-5�nff�ܖ	Ѷ�iZ��-[֓���Q�3y|��֬Y3s��'G�h._���'>��/s
��\��_h��z��5y��s!\�6�Ak�1�Ʋ8a�r���������Ru��D�s�s�5��DbF���v�-s���P��_}t��k��g�l����{���o��ƹ�鲎�6�I�k��XAj���~{��_��@��:[�u��8���o��?\zb��n� B33��!�IІ�jU��=�a��Ac��}�c�|��Tñ�[^��k׭[w�k�Ɂ�,����"��ͯ>t�Ϡ�5�f� �T�\ñ1om���z��!���SJM�	�r�+�
���|�����9Jy<�ay�䤣%ʑ�Qg���5������3� �7�^ʒ���]�7�yʃBݚ|���lxȶ�n����I�c�r����+qc�j}��ީ��:󶷽�w�GFm׸=��ُ?��w�w�����m3�^S�M�)h��T�c倣��@8�t�����m)P��(��;�LR�r{��r01���S�խ�?�ä9画Zܾ�$�6�l���*�������uU����Lq�Z?���eR�{�7#怕�d���^�ǹ�\�e^� ����l��m
��m��8����?��ޅ^�s��������k�u
��\��5���=�k�6Um��R�MA�*-`������,QFl�NL�bu�|O�0뎿Vu:����"]�b�����r�[6�*c��o�y�~�z_.�b�j	T�\���r�e�����.ٟ����ˎ?�x�劥)��u@�]��1>���9/:GqD���w(y�"�<_��:H�Z�؏��]�6�A133�cu	Z��mE�(=N+�c`��O��:�޵�^�;�|�hxֹ��9p���׺��x�=+l�E�� �4qE�q�h���G�@�j�2=���Q�u����˗�G�1�QT�C=��\����}���/�K5@s�f��~{��ꫯ��4e�an��~����.��}�{��N:��9�y���M�Y;W:-e�Zʣ�z���������ov�1�x��w�+�!���eJ����{�7 ��633ܚ,��>���-��ụ�a��b��%���駟�;ؖ*�H��5r���n����*�_����9���9��ʤ�ˋ�8���p�f2uP|)�y[�ep�(-��M�6���5��~��~s�ի
54�@��)e�e��v��n�:-�`)C�ݗu�f����]z��q��{��o���Ș�5�N)�.�o.�?�������]w���'8�u`}�fff�sOD��s'��湏�V��a�=�q��/a�Ϟ{�Y*��wnp�]�o��9|�M69�5�ϫr���x�Ne
V����P>u]�X#���(ӟ�X��am��GV/��Ņz�g?�я<,��jeFY�;T(�@Qj��UJ�q���?g��w_v��{4� ��\���=�C��o���*�b�����W\��{̍ò�g=��՞���~�+W��u�=�����B'�kAYu#�����lk�^�m�}���c��\c3�4X��]��/Ta.�!�a��3F����_\c��]�����q��5�;��l&�`
~�������5�kY"�&n�
g�K�����眂����e
.�-���2�L��G��vO;�l��v�J���~< ���# eL5K=�=ם{$���$�^��X��w��Ú�<��-�q�~6&kf6Z%;v�:,hy�ic�V�j�,�1\�s����+{�]w]o��s����\���^�����"����1���f5�T�օ+��D������_J��-<��96�F��/��젃�
���7�t���Ŋ����uX�K.=�#����}ˮ�D��F����˘*^���x%�9�v���_0���e��C�uf�k�;U�q��_������cff6Zw�T�6�>���½7\]`q!�]Cs��\^�^�zfժU9.�m�نr+��濻�t��?�_w�a�%�ȀM���6�la�����*��m��S��*���&�ә�SG�#.np1N�kU��,9��= �k7���-��⃁P�1(j�30D)�2v�_.`�3.
V��d牺p>�3���$��CA`e]�X�K�q�ԍ�@�;nu���F-sMy-*� kf6z�N�%����`۫r�����s�;�$'r���0���v[�g?�Y�X ��]]�����0�)+�)
�p��)mcL
��q攒��Ժs��6�r-�\S�(c�ґ�q��اN����@kBk֬�K��$���K.�ė�	��y睽�E,�Z�c)�iA-Q�]w��O�As_�,��lj�ǵ���qYQ��K��4&q�,�`�53d'�&�¹�m^�>��Zא̒��5�����`��^�jI ��N
��~{�TI�+�M��kt��f'i�Ɣ��)\�\�6�kLa��ᔡ�r%m&ŨX�(FT0�Z���R
�2��猡k�:��,��&U�g�#�@�z�j�u��*�.�b�/�a[�{c�nx��J033\�Nh����b���%�%l�Z���,27/��AM@��y���!�b�<��4}I�'�St�O�1��x�4���(Ģ�c&J��{��E|��P�	E��9�eAO����)J�9�Dsm��o~�qӔ"�������ŋB9:#T�k��QT0��΂η-ߗ��mgff6do������6t!;%�
M^���y�u��{ +nc��͸GZ���r( ec�)dg��6�,�	�C�zl8��SnI�4�:�a0HБ��,s˵`_�*��$ADlܻ��+OK3�@��R�hQ��"�����؇�.�g��iC�IP���#�K�b��8��ߛ��
ٺ�k��m�,k�>�"c�Z�҈��5[(��p�Q�V�)�u�N�P�OQ����x̟j���/nei�u>Z/G&˺ɸ/��%�R`-S�u�Zί�,DpO��\�(=��cI�/c�(��dv��ܸ�9��{a�Lދ-�;V�)p�(dޣN�&�P�K~"))ez�,��k9�����9G\٨t�_~��0ī^;33��C�m�:�}�YL��~�z����ө�S{��wq��ƒ�n^$]�J���b�m�[�:D9��S����]�J91ȅI��>6U�e���en)�~�}�u&�<e?����8&Q��(h`$��:\O=�#��iDm��,�����8NX7���p�@Y�O���u�TY��|&c��	�WM)�څ�jff6Ȏ$piĠ�c.d�Em��e_�����|����ߧ��^�h�.�Q`�>�q<�����ϚZ��@t�֩_��3�5����Kmsr��71	����5��733=d'!<BЖ��8z���CE�&p-��b�DT����4�Բt��l��U�s��LMGo����̺�d�	�ـ��O~��y��<�B�x��S�s�d�1�BF�nd�~�N�0���A,I|��m�A���.d�Z��laBv�@;����������>dl�}P�V`�㬼_Iɣw%h	����p�+6N�
l�³I�Ҹ�`�533�F�N#h�Z������-��,�JJ=�4�jy,��̹�y^�d��&��Ic\�a��L
"33�i�lSe�T�A�9�\^,�E����8u:�f%iC0�d���j�*������P���W�<��-�v!pi,�V��@�1naqϻPN�AN�$y/U̽_<��,K��f�<��k0����-4%;��F�*���T,�
'�\�L�)��:];8���`���"d�ڦ
u`U�m�b�);yl�2I>k8��K��M<hCޥ��cff��!�%�:p4��5�:�b��)�ցk� ����l��:ff�.�ԁ��۠�<P��[�UlS^:X33�lWU�P��-�vN��%QKU��0O��6����-f�v��3o�"������u0333k�Bs�p�Q�?0��&3������( ;j��c�픁�kff���촃vh�2EG������j�533k�I�[�nM�\
�fffmA���t��UL�)-GQ�1\
�ff�oy�yk�6w�.����mM��-v.ffff��H���c��][�n\r��nͬ�af6�
6o���'h�q�ypl8֚�F��&�p���ff�ټ�C3g�F%���8�7)��]xS�fX3���V����24[�&����
�`��̺�d�<k���4��8����xsVD�e}�H�%O�v�fX3��V�e�z>(�f�P�Um��K��2�N�I]lS�X�ffӭd�V�f��8U�ؕmdL6�$�n��(3���Y�![Wٶ>&�h'��&��A2��B��e�oJ�kff�� [G��R�3CVp���[��Y\��r�6k�[����TX�F�^�;y��V%�����j�N�S�1���)Y����T)�~V�*N��q�S��qB�-�f�
�������W7ʒQ`��̦K���_��,f�.���`+�V�����TE��5�#23����u[ņ�v�P|��&ˡ�8e+��/��£�O��M�.`�`����M��U�f���QX��C
�A]$�8t
kWC_)[3S�fff݇��R�E�aTm�t�C��8�h��F�`��̦�y���k�X �mU�&l�2�jw�|��'��M�x�S�V�1����M���k����]���m��&�K�%��h��a��<Y����tX�Y6w�6�g�&�mr])�.L�?/�Xgv
�dc��G�쬍�.�`��������hkȦ���j[���4����ӏ����XԫL�	լ)YS�fffӯdC�f�6�:��R�C�#+�h+���,�'n�����l:�l����ұ�a�"l�.+H�Xp�?�W�����d��X3�E�dg��P�@�����F�V9���'jvv��՞L�٨'�#�U���5�\j���W33�n�k�}�%��Z<��H\�B��m�M���e^<��x��O}�~Q6���6l���ڀ#��,Y��k`�533�m�c
�)���.�B�m@�
��2E�:@�4h�Yd��.��]��֪U���.�y����0333��֗}>�ڔ*�&��8 ۶�l��,��%�	q[m��l14�룣�{�n;�m������3�G6�;�_g�'�[<_p��O8�끘-dh&�d��y�*#��-�^뺍K����˰�
�ҥK�'�|2
����
�q��<+9�B�m��vg����x���'no�v�j�53��-�+�kWq�\��l��sT�vd�-��\��L1*��l�bg�;�]\<���*V`�AZM�[O7�^1;����ב�y�㺹���>`�
��%Jm�Y|,v6k�b�Q��(A�6�.s�M7͟x��ggg}�d��3Z�*�jg��MAWU���lJ��՚��	�16�y��Z�2��-"��5`�r�V�6|�g�Y�`��N��!;R�8"��V_��6l�c�>�[@[���qf��(�JD�~�o�L�L�"N6��)`'�xO�w�a���T�e��U�6��l`��
!;J ����U��b\V�\ce�2�n�b}C��c�E{(�� ���?pC�p/�Zc��tݲ���$ 1b�`��&��f�VH��җ�ԯP�C>�
��P��]�f��R6S�tV)֞V���9/���@:�A��&!��u����j�53�,h� ��(�~�v#�5;��-��a8.�6.?T���J�*���H��U�q�5T����W�D��h�q�aT
�+`3�����7�	ܲi9M;P�{i͓����t�掣����XL�,�	Z����J��S*V@�G �
p������(�ϣ��̬s�-�!\7��j�*�Si' z��q��7��ѱ�e,jV���F�a�~��=�"�Q��vg�1�X��=)hu
���8�c�53묢�3�6��3˚Oͩ����8A8.�c�:��fS�-����h�ˈ�����jW�׍@��IϏ�8\
�ff��ٔ���k(��ulc�.��ǥ8Gz��?��?��^��B\�s���v�kы�Z�y�U-�~��
��D��_vh�����7`�53�,l˞�
���\���\ŃBv��s����(���g�U�vN��c/�m�R�=�N��I�g\�ħ�ffS�j�|�r-��dǩjÓ�����?��r�s��c�s,��C�fO��7
j*k$�i���ڸ�3n�tM1`�̆�l�c]�f��Rw�V��O\�e��=y^��#Q�:(j&���(�d
_����]j.�Caf�53��(�:�Ձ���\�mAv�a[Z^X�\��S�d_CW'�WŹ�L�7	�D�A~���$��P@[���mZ�� ���y%`ۆ��DoB���Zc����\͉-�n��/�@��+���C��l�\K�k][:�0ɥ�;�fS�6T��t�(��;���2ޛ-��c�R7�d]�
�ff�.x����U*v���4l.��1[�jC5�_��
�i�:S�ybНچx�*mܮ�&��O`����:�l��l`��U�V���6�p��Y�7�Bo!�՝�Db�Z�f�ff�m��e5�8!�O�סҫR�)e7�xC]�����n�I���t�O<���l|`�C�u��킪	pc���7s�:p5X'�X���U�ew��o�kf6~���a�:i�v��ѫn���~X�Y8��Υ7L\�K�.�l���#�`��:nm�k��*l��V�ʦ���i�V2
�W3��	�i�lj]�Pm�YS(��|�)�����v���1[�v�F��{�va�d�A�6m�{����kff6B��PQ@��N=IEND�B`�assets/image/02.png000064400000162155151327614500010075 0ustar00�PNG


IHDR�S6��tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4BD29030BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4BD2902FBCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>8ߘQ�IDATx��}�$U��w��g6ﲁ�K�]P�$(x�&Խ� zQD�F�5p1���@A%+DaY%�%�.l^X6���:�y������5�}�駧+�:����_RJ�w{�ǨYm�̙
���c���Z�:::�~l��ҧ�yu�P��ױ����F��
�?ú�A�Ϲ��G���^��y�w���MSn(� �Ȑ�v���-�����(�ϋb�X��$�������w�[��u#��W?��
����:;;��㒁�1T��C4b��Ç����aª^B���e��l
�#��%K̢�`2��j���M������7�j �7o^-B@4x}i�Z�J��E��D�!��"����ud��ԣ�z�I���&j�R�1�m��-[���z�z�ʠ�:����>D�ڷ��1+¿��E�H3�F��� |��WV@��i��
p��$�?�(0t@R��.��lub5m_/�Q��@�E���ҨsHk��<ˀR�s���L��õ���|www�Rw@4@2@I�Lt�Z	|]A�� �j���o�0L��fL��1Pa�@�'˩��i�Gd2��L��VJ�U�]�j��藊����cD��
�%б���-��-7]�����������3Q�u"�Tcֵ�1`�e���,
!_o�#b���2#���	�j`�z?�
D�0���b?���<,f���,Kr��E��v�;�G�`�%�?rG�	 ��Nje%�HjQO�@R�L��~��f��/,d 7+v�vk|k��i�Y/@q�C��,xpp����b&TX&�UmU�ZXH- ���n_+0U;�&���A| �Xy�f�U����5���
UUa�z�5��Z@��~�ZK��#�~"��	r���}�C%��&Q���������؞ڮ� �D����Dޭ�ej���.��V�W��z�f���T �7���^�1��"��%P����r�k��".0�eM�5&�_�!����"e}3����$�wR3�Ȝ:j Pi��#,�)@S��l@��1�b�a�����*�V�>�v%�~+0	] �B�Z�5�I`Ibi�b�4ҀWU��/�u�
$�f�O��5Ë+뭁.�r��TUVدUj.i�S
@\�,i�
�0b#-�L�*j���2$5����*+$l��b���W#�q�N.��}�E3�_?U
���5Pȋz̆��-Y����� �:�I�@�XG�����ꮐ�N�RgQ=@$s������V���x1ˌ���eUL+1�B��z�k�`�0o��gYa+���8fAH�Pq�,$����6�w��Y�|]!��Z�T\i�[�E�5I&^5�Q�w�K�cUg"����j@+@�lAZ�䤕n�d`�6p����l�8k�M:XI���!ܹ�e��'��a �Y���}/ט��V?쵀1�����$�2?f�T�0�8�W��H�׋�$��l[Ȁ���MԦ�@�(
��$1r��X��m&�"b'�1�$�=�W�I��$a�<P<���E7«�hj����-���L��(�u�
1�7�9��Хzxi5���`45����pV�;t��k�&��SqU�j��Dv�k�$�4��e�c=_N	}ũ��pH�R��ZB�)��Y��V�b�صh5�ȁ��c�i{JJ�.���:=�В7LD¤�߬$3�v�z��HReyU�W^@)��F�m]�JZf3�$B�00، EQ/�(hW@l�ګF�����c�*b�m I��'d��Lx�Y�XI3��X�j�,�H$%{=�	�j6/8|{Yd`��׏a9��**�$ �s�M����KP+���l�
 nubM�g4����{o��D*���'���05�(e�*.Q�m��#!c�Yy5�8��H��s���0�f�7L�b��
w��֬ǃ	D<�zȚ��dv��d
�%�`"��K�4 �10�T��&���D
5VjWS�d�…/d>�'�nt�3�{a�c����\����g����a��h}���`�wD�2ۈh_����=ܜ2��|̂��<d��A}��:�T��Y�<�ȫ�����mkQ�enH�e=j��W��ĵ!��;�p�=c�W���j�N3��[�BLIɆu�;˷���}�ؒ�-��3�훷�0��P|4Xt:��P�I>~�f�Y�Ѩ�5�vzB���4c\��\.�������\`#{�Ye�1RqL�WZM'� )�q�Zk᪸D��H� �������*	�m�i��1��?�8���"�YT����:�j ���'9Άp�1��<��E�݌����H��d�ķ�g��M�kf 2"#�j��?� ��\>���cy�B�4(�9�ky�1��@��v�����|���}*ϫ#�0����e
D��	�Ad^�Z������dE1��b��eۭ��{-T\��c�IcX����qA��O�����}���K`Siq�/�:˳n4E�
kUF��7�<���7�eˢ�hH�%K�*`Ž"8\�i�Z��F��I��d�)�lY�g�**�9�,fS�XYj5D��L��o��1�ʘ���jL�! �U����~d
L���XHRF}��I��: ��ꫫ͈SW	���#.�=lW;n\��S�ca��r��G�@�����\���(q�������B��}@�Z���ϡ_L<~@�����f0i
��q����2�:�J���C	4C�>$w���"K%�w���u�R��L�U�ȕ���.�5ڳ"�Rm<���{�����&�y	,"V2�l$.UF��ҲوmK�*$�84���Y�Pd,�g@��xS��2�X����p��~ڳ"C@��3��P�6�4���)wۮ��z1��ִ"�Tsa��F�Q�\;U�m�,��u4갂���n�خ�*������UG �y\LDfD�#�� ���2Y��[��$	<l��S�����J������k�{��4�f�qܦa3ۃ�D��#��C>~���1�[��2�ċr~�T�H�<�/�)�dT]�(ԛu�i��ڦ�ר?��RS�^��}hT�I���$Il�����5HR�G�t�i��
@%��=7�
.��@|�{�,5R����2Q�:��;r0�"a`�x��Y��:�A�U�1�h���76{y��K���ƃI�-[�P�^���P(JFR�*����ZP"�?�@�,k�f2j�<9E*O���(sӧI����,��gN�Q�!Uz���Z�����W�
�4A���|Y3�e�³?�F��q$�_
�J9p��-���Stww�Z�Ж�7����J2.��p�l�'b�����T�\ю�9��p��"�{t�����:��Ҳ�,�H3m!��f,|<��Y$�5�Zγ�<�3m���^Wc))�.m03"wf�$��Rw�<
����epc|E�"��{�@�~
3�,�"�J�U��.,C,^Ķ��Y~e���"YcY��r��l�k%S�;i3L*.ȯHfx�(���:K8���!,@R�������!j���<J��ȍ��1pO,�0r�o��
�wZ`�%{.r�
�{d�i��]���VH5�[�jƵL��$�J3�rk�;����d�Z�H���f>\lٲ%;�H�<���t���[���R�Ti�2�r@�SyQ�?ˋP?�Q����6��#vc��]�ľ�n�mix���$����t��`)�ҡ
&ul�@$�^;9d�a$U_�ۑ���UU�}Ճ���`���*S��~s1�% pw`��0�؈q�S��ķ�����s��A���f�k����6����\�7�0�m>A����@��GKh$K����$-I�ȫs#G��6m�:�,��j-dc�C"a�ӎ���� � ����Z&�0 Q`c�)��D&`}����ފ+~���
��-�42P�@?H�
�@�O�^�}�5*p��7jS�Y��i&��L����J��z�q������T�#IBɸZI�-�`�%lEd�k%su�mװ/�m�پ��.�Y�Hv�N|�������7��
UW��H��
 q�q=
 -�eD,'*]�����,�Pi6����!��G�a�Z�d���b��ղ�@�߳�:k O���	[xV��m�ׂ[=H��]�V�ӛ�c�l����3`���e`7 ��19��t(�Z�(Z%�[�X�~�6��7뎎��e�P���Y@�������+_nTj�:���50���e �b%f��4�G\iH�`%FP���9g������q��b3)�6��}K%�1&��Y@CL�w�ܜ�CU�
��@��Gggg�`l
�<�4Jwww�T3��N��I��$�*��*�Z�V�4QϚ�=D\�W..�ꛃH\���>[�ą��;��Ӛ�'X�H�c������ϗ�ḷ�����`�ff�Æ
+	�6�Z�Z�j&��ͬ�ܰ�e\X���Z�W���fP4�@����c��o�q��z�,�IU\ѸE�<j��,Պ�$UF�/����a�c�:�z�Jېm���A�&m���/-9,����{q�vMI�Y�9ȕ�mEN���H-2bĈ����Al��Q!�3�jB߬���'�1���Z�o��1�o޼98@����L�2����lC���o�=���9s�l	����T˥U-�c�j��a��JQ���P�)M������'k���9�N6�2*5������;�JK�"��ZYH\v��ÇkaZ�!@�l٢?<l@p�@��o�i*8/|Ұ�xp�8/~����v���L�L��=��o�_Ԇ�/��4�8�H5=����=�w��<����\c�L���U^�{$;X?yKEU�b?�T^�1��t�ƚfCD��V��Ԣ��jj�ƍZh<�@��!~|3�������Q��:��1�=>�k�@��Hv�e0i��j `�Tu�`K�b{j�C��B]�RŻ��l�w����ܛ���E�Hz��
`9���D��~v�-�U5a�P��Uc!�f�6l�M�6i�j�vZ�hV��K�d���[�z�>�#G��ѣ���������I�2�$��QÄ�.꭬I5c|�ʇ�w8|��4(e���k�`�N�4"6�[ `�M.M�/���0�!_�{b߲���!��)A��4���B\�@0�N� 81�7��G7�F^�$�Q�:3v�A(��z�3F��j�q�l'�Rue�f�0L��Y���f��t�m.�,[%�A�w�b��<WW���p���vtjy�������R��T=�p�`lG��kTOCh�Y�k����«����j��5�zf6�5�V5�`3�%��|��ƾ��w̤{3�d����ښU;I
�џuq`c'*�,�ڼ�g��.O��or�b6%R�`��G�
���"fb���C���:ҡ"�*�U�v�$�P�}ѢE�j�*���;'V�o�T�T�&���ZW�7�����:خ���:�z�r�pFh�K�7�9M�O�T���z��$�О��Uo��4���
ylHh�c�y�^;���>o��D�R�j���U��bT-���'w�O��ʒ��:+�*��A���*bݺu���p���Dy��b@�~���k�j��;vl�p4����U�PUsm������F�{eb��2�T3(�m�ߜc���>ܻ�ĉx��Y�X�m3�l��
�s�ۆ�����G1�bZ%�	"|�P�$�� �/�5k֔i���5��[�_fQ�'���ŝ�\\\�$�3���4��L�bVҐf��,�#�1@�r�%r���%\mc�I�,�h��D�Pq�.;��v'6�9�8���u�����tn�.�Jk� ⲅ@��2c�5��ı��0�f	���ٕ�$���
�ۄ	����p�&�l�uMbD�b&ʹ�d��ޔ2+�-���rmg3���	u^��������7��@C�D�AM��t�O�uQBƈx�;��D�ە�\����Q�f0�H�=�Ve%yd!���^�@R+�4��?��}����J�h
�~+V���x���N��2�C�@�S��M��[T[
BO�#��K�9��_����$���VI�� V��L�t&%m���E�*/��Qy*���O�B6S1-����o%��mc��I �̒%KJ q�4��������:�o׵�u�[�lY���`���
iU]���z����ntϰ���H��*5'd����Ir�1:�<U
g"<ϖ�e����C�6���ܓ�v+�	�pj�Z=A*̂㢵�B ���1/w5��4Qi��g�cKZ�tM�p���W^��7NՅ�bj�4L�hl3�������zu=j�ߗL]�T/�@��8H���2AF���b�Ba������r��xQ��R�v+���f�k�*a��0F��e���DL�C��ꕥK��X	��$	�j3�VG=�%͹�]#ȸ�Pw5V���d�sn�l��D4�m��$������94 �>��A��I�y��SR5�J���PD�4¤T�NW�Z�r��˾*��.	k]�`��3	y�,�n�����eǬ�`-%n�Nj��t.��������K�-�U6�V2�46�>��.c<�N�N\��&�����4�^Ҷ��Li8�c����[��W����[4��3�7C�&�Q�#F���z�֬\E�vܑ:���	zM�7Q�+lAQ,t� �ћG��ajX!(4����a�S��)S��݂K�^��3Ub"��ť��h���(�!veΜι Չ�/�ZV�\��#ٚ$��d	H��ȅ?�3D"�פI��jF�>��$�Y���|�]�w�0�H.��;����SS�I��N
�;�&��
W��a�n�j�R@�͘m���H��	Z�z3;r4<��� Џ�����s�r~Nvtvh��<]'�RCiА�OO���Il=w��Y~M3��>�d�l�Q����?�F}��%be1��T.d���n�J+���/3����� �j��~�g�@��Bjq��z�j��Ji����C�5q�D��qn&�4lZX�=��-�48���_1n�*v��ѣGQ�"�9���1�T/���αu��m'��
f��O2�L=�:F=�ב?l$��f�#FQ7u)b0bt�6oج�g����>*��K��,�ѐ����3dHT�B�;���p&�%c+���Ĥ�SZy��2{1�A�$V�1l$D\.��on���…��'�,	�z����p(��6x��ި����f��j5�d�%x����$R��V�a
�o�
��b��e]T,���BKꑡb&��k�:Z�j�7�dX��H�Q2����dW�G�Q�:�k��9�W�:O�#:庍kEϦ-b�?,���I�=4E���ʲ�D��A�2��9��2��6b��R���WSka[�^�+���H6�d��&C�Y�A�ͮ8���/�O5UV@(�؉�6*�Ǎ�/0q=��,0���J��S�P1�N�����è������܄L&A�ڰay#(���P�����jB��Egg��6o���{�C٩�R�tњ�D!D��
��y�e3���<
�ˮb׉���'�b:���=w=�Î�����W]p"q�,���"Y�j%��Q�U�θ�݁�ѩ��$��hT:�f>�.V2�[��v���4b4�W�2L/P$�J�k`1|8��TT�nj	��5R�C�����dǰ��BU�F
�!��_a�9LS�k�5[g��T��
�vn,�bvjw�ܧ��@���a#6P�!`\E�i�Pq�����A��V�k�K�G�nT�u�v�M�y�S
L��@��L��&���-Maõ���~�DڞP�.�Cn����Vk�˩}K��Z�XJ�=�S�i�z�~�z��U�I�SR�[/�hY,J 	(�ܙ�M�v�0R�ͷ@�^VF�UR5E��A�f����P�6�B�iRJ6�܎�'��\apo��f6i�	\|yt���/�����!Y��;�%)�'ɳ˼����;�.��>�r����4��d�V��VÁ���D��U$y�$]�2A��,W��N�R�<G�&�v	��b(B�� ;���"���r-F#�~x�v�}@�iT|�AU���*�W����E�Q�e��_��m���߮o�Zj.Ě�
�)l_&�c+=�
6[s\IÁ�o}k]�q�ɯt�D!��������Ǎ�k�obL��*O���+�p�O�b;����FW���̡�>\�W�O�#z����r���o|�����6��W���LL~.��~c}��d(
��<�
����vF �3FF�v]��6��,j<*Př�����;7�����?�3���=Ƹ%��6���H-��'.U��_NW_}uD2��&�(�`��pߡ7��V��F�����<mW��;�EW�4�	=�:��
�lݣJ�';>��>!��}��XYL"`*.^��,ƅ*
�>U�:IݖN���H#1��]�-��v��G?r�Oo�H�g�i�?q�P�ѕ��\��8�N��6|�\�Wq�x.c�]�����@T�̑���z$��n��z#��"c)��<)���b�(�}�*k���J�UZ.0���2i4�6g����>W&�� 2���{s�^��[�u�
#md��V'��+p��,����Wi@��s���\~��ZIFꩀ���a�c!k[��_>U��M�Yo;�* )�E��$f�(Pw��j,_���?��R��$_l�H�$ɩ��A�GWz�3)e0���E�W��
h3z�6І�ԩSE?�K����I �."K����)NB<����6�9��6�b��G�yn˱m/�>⓻(W�T[�6�sq�	�e�]3֏��8��Z�I �n���
��o�L�s��zx.�]&�h�n�0���9���՟_O�c��0\+iuk����_�5��-���W��FT\�s��=t<G���Ҳk�����S�s�7��Tn��1��U���2���J�|�j����A��q�
"��4i蹊��)������!3e�����(�B��~�f�-���D�\<��zuZ��7���\���B
�Q��(��"��#F��tvS1�K:�����O�y*��$�.jE��zi[�\�zM�z�e��t,1L&�,����b5���<��|b��]Wij�ҳ�۹�9�m$I�g��L����Zm�`b�	X7��>x�:e��X�:��X�����VO~�r�M��Yo��(OTY�gz���}��%�@�5�A��s=�$�V�J���	z�C�{�$D1u�-Օ�i"f���\v�{��s`�V��~�G3XHF�}��`���=�� 2����\�|W�;��H�.�=�����m��]j�����Kk��[r��RV�I�6�j����~5��Œ��3�������1���ç�D��q�ؼɳ�l���ˮW�=-�6���������+?^��~��:�_�ʆ�6�@��N���yw�����l)z7ݻ@�p��?�h��D�w�{��zU_��$BR۫odn-��7�����k#Y�d�������c��1q%-`4-{9�d#I���V�@�6b�Na�W^y�1b�?v�XoٲeH{����B��O�8Q�Z�
L%?~�����磊��m����
��v�a���o���u�c�ey��X,��۠����5p�Y�F�y�m�	ĩ�Ϗ5J���!�A��o����M��ڵkrEu�5�m޼Y�m��ѣRS��j,:8Ԩ���oW���������"`[$�C�"�y؉�з�I�/-�:롇j�E���˶�ңgW�t�{��U�j_�������kz������}Q��7>Ft��hѺᴩ'G]�ж��\Hk�z��a���PQ���ez���a�y�+��8#�U�eg��W���gq��LJӦM��������N;ML�>]��]��`�	��OJ%h�'>�	�A�)!-������g����M���-oy���׿a* )|�[�����O���O.~�_����~:<����^{�����<�f �^z)��N�K_��Pە�d
I�+v�qG��K�^N�����GA��_�瞣�����ޛT�(B��e0�Ǿ0j��8����c����K�#9�Sh�}��T,(�,@�{�UUY����c_r�%N�VD�������W6�%s�/{{�L"�����o�㦾F��,�\P޹��ߴ�����6|mH��ÀZ���d|�nS!W"��+��o��<����+_��� �0�U�|�������#��:�ҏ(��	��/�i���a�]t�A�9s���߽���g��ɓ'{j��]s�59%��3�<�"���ꫯ�w�y����)֠����gΜI_��}%��믿LG�{�R	�ܩ���u�Q��9��7��)A�}�c˽��Kⓟ�$MzW]u�}�����n���կ~���T��E
���}�{b���B�T�C�	xBA��/M�2E�u~4k�,�Ї>�Y��;�L?��5z衴���<Hx���tI� ��n�Y�P���x�3`�e`�TY��g>�` �-P�n��8@�js�ڼ‘Q�m֐��}cw�Ht��U4q�z�a;։z�G�$:j����&I/��Ab�=U��wS]����7���
�~�^{��K룯e>���:�%�dz�8ݿ�䠻��Sen�<���Qk�Ю��Z&Ť�2��"�E��I`6�u�[�l)�x�e��P'Aث�@	�������m�r������3Q=P���s��gk@�ӟ�$����_����G>"�v��P�9�C�r�|�ާӫ�+��
�tQLn#����/p��jC��i��/mg���D��|
(��o~3}�_����]��������J����&�r�����yr;�����/g@��]�]�Ѵb�e�P�t�b�'<A;�'�6�v<��8/$Ye��}��v�衑������n��5lT,Sk��
x�
 B�	�&�=�̻���Bn�z�u�����ݡ��j��ƍŢE���{�-�`��o�ہbt`D�&Ř<�|�Evi�+�#�
x�9����)(L�Z�]M�"x��WG��=�)���[;�*j� u�>�z�{߫A��[o��F\3��|�_*�v�����&��t����}�o���$��z���;�Ն����舽�n9s.]~�4etWS@q���2
$0�����m "�vv���}
�̝;�~�a�>9Tޣ>�1���9�JH�>�s�1�GyDF�8�M�0!�7o^��?��8�3`�?����-dܸqr�ҥt�e�I%���ӧ��ӟ�����+�C�ۋ.�H�p�	`Md((;7��TX`
x�'��+��Fy���~x�`��Rc�� �v�mח�"�e�qp�ӁVU��$yi�c����%�K-v�6�]&<��x����3���m��7l���Izb�X:����N���P+������D?>�:rʪ����|"�%9`�HҤ=��j��N��PTE�`3KWB[��ΰ��[n�E�x�2J��])��?��s$�c�=�EB�W��%P��n*'��\�t�I>��k @D���?�H*d���7'�|2����'�4��q�����O��~��Q�駟���ۀz�;��������gPE���ؓ���ۏfϞ��%�����F`g`�UZCL\v���w<P?�����ч�����V�nO��}�.�cO��I��ԫ�那W�2��#���2]��j��{�%-��\�����F�U�qŔ$!1��,�m�c4����R[�}�^͠K1 ���o�i���c���}O����u�W�t)�X�f͚,D���@D���8VFv��*a+?�τ
D��G$}T�7T�D���v���xR�l�"X��?�N��k�✥`����L}�J��)��tm���C<Ti
TK/��>����׿�1#�U����Wk%Mrt�n՞Z�
}�#鎧��WE���ϓ�>g�<=�.�m*=6����F�����#���n��'3q�CQ�ժ��*
����9T#�˘�ڵk�;/��b9���MW<��z�b ��.�.��R��.�hV.�����sO����O~�q�?�|�O��˗��p(�m%X=����@�/�~,͒"
��A/T�Z'�|��g�ʕ+�H({�w�����j`&����N�(4��B�7���}4ڸq�����޼y��5�7��ֿ��o�u�]�2���q��/��3E��p\I�l�݆&���Po�	����Ci�>)p�nD{���{ݷh}��{�'�x�tx�Dם>��9�W�������	�j���
Cq��أ���Z=A�f�>s�5�l����^�+a�O�6-�d��׿ޟ?��M7�JP�F`"���|��n�� ��˫��Y��sO�bp!����k���:�<�������~С��>p{�E*(?z��9s��~���S�LA�$���9s&�G0���/��<���ƮU_p��	.�'�p=��# S�1���`Ƈmg̘�/ ��Nr��G�e>��vF,
�pF�"�a{���:���?�p
0��`{��y�J�%P�ld�`%q��6A�hE)��W����,��#� �o�*��t�Г���iՖ<ݻp{�{6�A�{z�R(b?c���r��(�b��P��_���]��4��/>JNI��S���h��3r�b<�D��b���_��obDJ��� ��z�\�錾�FҏV�PPr�#�Ҹ� �۩�v��Q'���W/�u�ȫס�ͩ}�L_]xg��!�
�˫�<n2��୥�;�n�kG���W͏��"ō-����`���=ۉn�P� ���ˮ-�Ts��d�I�0zGct�K.*�^Z��	 0N���� �*	�D�	����g;fd�j�d��7���#������a/�Et�}�JQa�8d�ut�Q�y���t�#���\�zef����w�^XP��,���У���a�-�߅�h;�%)F�tJ5
B�G��=0d�Țjk j�8�U5X�#�%���uG��>&m��~f�@,T�q��QP�ys �;��ԶA$��7���X��*>�Z�!�d�{#�n�`�B6K��2��]���3�(�۵�J�Q��߀x�
�,7/>��e��1���amz�$
[�Ą�L�g���?�F��w�S�}'lr����輿�COͧ����S��S�Z���lڳ6��$����e^LT�ȳ�J�̷e�/U��g��k���Vx�u���֛rov�\bj�[W6�` �Sy�y�Zn����5M�5��*�}���_�s��%��r����?�y�K�fm`q�6��Jɕ�'VN�o=�-���:������u���[�O�0�^��#��q��mӗ�o� Q��u�!\C*��a�˸Tc!�\���U�=ڞW? *��ƨ��L	o�#)�;*?d�T��?��#��n�s�=����+m�x�E�,YR��j�^�ݲ�Jⶋ}+��ṝ��w��f�5qcb.G�}��\����7.�=��Ԑ񷁤uMVY'R��:�8F�Y����X��WB4P
L�T�&�H�yEE���N!c@d�,Y�����U^7H����9�a'��
0�g0�������黳���G�H���B�N��������MM��x�>��˴è�!�9��&f��UR�?�vl/]KH:�y�)�K��rl� RyV?|��F�*�r��s
�����^�ڡ
&��*£�g`��/�Kp�gC����]�R����U��L†�x�XoF��x�u�R��!�h�D��[E'.\E�}��vxC�{b��AZ�*k@⪹�+ʔƎb����EE�c�w+�)(���|`���Y�s�T^H˧�:�>����*��Ǫ��镗�ֲ�+�/�q᥏�V�^�H�v���$�k��jn� +1��ji��x��S���W�~A�t���8����R�i~;ʽ�@Rcq�4���6����HI���"Z.�GR�o�TT�Q�@�5�U��r]H�1�D�d��-a�6���&�c�)��Pe
�".I����]��	��r	2c;�B܉I�b؋��j'}���lܸ���V|�d���g!Մ�S����=4�>r�:�&�ؕ�{.����I�	����@ҏ�Vi�n	�l��G��[3[�D�C�!�q���V�{�<D(5m!�
,A�E]�-,��u_��סUcjc�J��0�;E��~�M�.W5G�b��K��	�Z��n N�
�v[�x1=���%!�Y$��a��;qD�N0��Gvv�q��Qo%�F�����i���������'����XIݻ�[3�}�R�,d�����C��;b�s��o���{��W��[?W�q�#�5aгLm��z2�Q,l����1|�^���-�׽�(Q�(�HԳ ��c����xNၗ�q�M�j�,��bGP���urc�q6��YQ��[��8N�隤ı�Zf�ߞ=��s�^��ס���
#�\�QR�vP��-QB��~G[��add�f	Z�)aNj�yj>H�!�Ex/��垜�@����)��X�Q:^�,�xxW�|=��y��+W
�_S�2�Q�����?�;y]���F�Z��ca������@�0��P�e{
�0���ۨ���hU�V���
0�r<���$1�Mk��֌�/޳'���F�&�����=uDcҬ�Ĭ���đ��f��"	,K�Pf��ˤ��~�S3�JHw����xb��˰@�:iŵD]�A]�?A��q�"�Bt���>mPo��4��&xţ��{�� ���4�,)C�G��EZ����ǣ�S��/Թ�F�O^Tg���lu�����<���&8#�_vD�#��Ǩ(��LĤ_�ių�~i�ך*I�۬w	�a�����V���<�}��@�w$���Ҝe�5��՜:��@R���XHRbG#��J����(. BE	�{�V�uc	�O|�h��*j1ʧ�}����3�R�&��h�1�^�AH�j*�λZ��k%�����?"�c(-������.��0��D+�
h婂f\�7V�\4Zn���)��>D�9�f	�8�ߤ��C=�
���3N�@�m��p��]0�r��[�@���q�(	2�h]��3)��������ؽ{���s]�����i��;߾!a$��J+4�T`��x�L_o�8
�,�3_�ܿw�I�պ	",N�F[��f{��i�9
6���+��	�+<O��v�M��\��3��G�+�G(����D8�p�!����z9�2/��d�������` Ĝ�q�S����)R���Aa;6��D��m����hT�b%f��m:��x&⊣� Ÿ{$�>G�P�E�Π.\I�T�59�
�i���{��
�}�2�H�	���،p�Uѫނ~u�C�.�v��^�k
��i�����Fʉ�
):&�򔯮ZH�(��J�/,S�p�m~
&�&�ZQPp�U�r^�k��2��Փ�� i˲^��Tpo`�m�����1��D?�[�(��~�y�͌�d"F�`@��B�x�ߟ(�z�H�v�ӂ��C�j��3�
���
�u>�2o{��C�y�J�f��@��^[N�;�}S�	$�yf��67���<U\��mR
�=v�����]/"_z�[��0,�}L�v�"���':����[En��i����i'�r�a9ɷ|?��
2�ބ�H���s��-��:�0ߓjj3r��-�g���+�P"U������&=���K0�8'g��F0�jl$�>�f��?~��0�M�""�Q���з���{񱙙lZ�B\���m`�$n�"���#���2y�k���3���J�2�WZ~x�4{�DZ����j�V��[1���\���+��?��q���틻|��CA �)��1$E�m�"�!��\aʗ=E��S��xVC�3����u��v:_�(�"��0Dk���m�֦����7,"c��|����m"v��30��*�8�q�
Q���+I�I�Ҳ�m���Td`6�>ó���q�]/Z\��R��k<���޿;]��y4|<�6�}縹�ӳ�F�[��L�m3��,��ũh���l��&�z���+~$l'�� �$�<ZjYN휇?��烜����sNH
s:PD�<�Q �+C���\ohl��YY�w�~��^�ܑ�H\�kISw����X.����~:��A��3���ў
4�h^}�U�)�X�S��`�n��j<�g\�3�3�z�➛Z�㯌�s��;mx����>��c2�\��8�8WV���"kFo'5�y�xJa*\鍵W0,%��>۶��h
yȇ�-t����=��rl�T*�l�>�$����y=`����ɝk��W�$׋���q�Z�E��M��nK�>�,��t衇�g>��U1[E�a�P�A�ݲ�Z�w#�I\��W�Џ��=EN3�iDg�x�}c2$���I��6�x	Ǔ�k�[�y�w�b�Lx$:Qy&bӧ��h-�6c��)�c�b�Js���
d�y�]�`�2�����<��t�'jòK/�TכGy_T�CL�]>mf����vi�@�$���=��Qʼ�����
�״oZ�I���Dn�|@�e�-�{$<����榪!���3�T�N�l�]���"U��ه�c�(��k�t��$:��-�����8.��f�҅�j�o�Nr����_��E�?�	��L�"��1R�����p�~\̷�׺zt��GJ��D?x�K4<�k���	Hd
۸f��!dC�D$�6��<�U��q�5}󲹆?wXl���
�q����:^��fT\���Z6T�\2.\�J���@��!a��n�g�y���1���s�=�z�j��;�1߮��9������H��p��U3X�q�k�m=vC�t�~�z�?�A?���m6N�6:Af-�w��3]`�H��	<�����{mt<�x�=cm�J�V���#ꝫ�$UV$�N\8�<q��]���>����	*�`��[��<�VE�Uzuq�lXJ�$�zAC��jBa FE�}e�L	_�l���ӧka S��Bzu�I+�x�5�ȑ#i�����_z�%
lg�y&m���4{�l]�8���_�:�=���/�ʕ+���'��v�u�]�:Π��p~`a���߀	F���?����Q—����g܃ξ��|�\�mpq+ֻ-^?�n|.G�9���<x3=��j]��
$��8�q�r{�.�m'q�]��/��2�n@})߹;��v9�QV�Y��({�&��U�8���
 �ֻaٲe����������烈��'�jժR�����*-4.�mT��ǝ4i�s�9%U�\r�%�����+V���h„	zs���l	 e�bxl�y��>Ze�CM���G?������
�a��r�j�����ra�f���ڕK-�9py�%�i��S(���ntĔhgė�K��c�E��s+����;�,TUբ�� �}Ĺ;�YI��0`өX�s/s�EVy�J�6p`�d=
\靱�L%E[U��
Qy���@�T�OR�$��Fx6� @!8��c:��c���Ā��.Z��e�3q�R��s�K�b�����̙3��.��y�gh`��F�:u��Xv�7����=��S3����a�r�-p���k��`'�L������{��������_��/�@O=�s�1��
������^��׿^�����n�M��Lqa��-�F�?X@�3��i���R�<;����c?�j]|���7ͣ);�f
�ґ�?�u᷶�0�^�hQ-Oc-wU���s���\��(�O��u��om+��JD��~B���"���@�á�"��#�:.���5
��$�4\/0�^�u�F��P[A(u���C@þ���qE��P{����ҥK����;������~�;�Rl@�գY?@�裏F� -�`#��"h'�|�^����;�C���������?�;�N�zp.��y�ާݞ�Gq��N0?�p
`p~8���~;��'�y#�[&p�,�C���s�L8��W3�/�Z9�.�ה��B�m���3���<�@�?F""�E�T����r�]-Q�u�]�W�����(T�O���_����#�<"L������ߔ��M�(c��P/u᳟�l�Ļ�Lb��X�]��έR�+1UW>����륀�h�ř.�5��,j#��@��X~|�J�5�R��)8�q�����?�y=���V��N:餒��ܹs5A�<y�����ӆx8,X�@�{���

B��.�v�`P�(P��oƌz�;�S�4�T^{�7z���@��
�pM�3O���u_`�~����l�P�(��`v��I��[p�*=�x<=���m�������f$M`$��s���J�.ۈ����3�t�M��>�9:ꨣ�_�������w$Z��kt�W�\p�|���^y啤��
�UW]%�J���|�#��
��`8�,�^V��&%l����?t\�.��rC|k$�L0-��@ AAm�|��7�f��~��6'�����2�ĥ�������'�#�<R���j��HxrJL�ظW�1������p~8&�R���������K��9��05�X_�ɇ���ǹ�����
_|�3��q*���H��w.����ȹm i#I�R���	ƶ%p�(/�ᇣG��{�7{�l�N��v�M\x����Y̖-[���Sr�!R	
c��.Ŀ�կ<���w�n�m��O�S0}�t�ꓮ���l��9����/�;Q����:4��F�Q+A��A��}�v9���� ��8j�@��?��g�dF`q��~	PL`�=
��}�ݷ����@fڴizP-�U�駟���0�q���a�Ts@-�裏�O9�z��߯�����5;Bø��B�=�u�{��6_�-�`e��4����'�'���o�u��'?��*H�Ÿ�lYT=�t<��X��#�$�6n�V$
3����H�8!(b�;d��Ț���w3ȩ�S��9�J�|���vO=�%���O}�{�C%��Y�fy��/|��
��T/�X�ti�f�e�*6���j�#�L���%��ʎ����(Y]/0WW�K��?P]}��ߦ�.�He�6�ԏf��[�VmS����u�YB.Ix�c� �o��v
�PGA0�;�р����,8`�P�뮻J.ʦ�8~�`_���x�a��f����N/�v�*.���?�)�}��z�_���X86�}Pma�F�ñ9�1ס^ٮ+c�͹���e��~��`��Z�1��U�6�!������{Χ��޷����ӗ�>�
$͒?�TMV�p!l��a���}�����P��H�+J�P/��^F-���.w�e��.��P1�����x���D}�^z��Z^�(X̋�SlW_��	�A��ǰ5��A��Բ6�T�>������!�ٺb�z�
!	{&�� �a���B..��a��mP��zfֆ�@�A��T��x�x'�
��ԀԪ���5�����V��:@=�>&ȿ���z9�ƾh`��)���xa�GC���Ġ�D\�A~�M����k�ַ��A�8+�6���9�S�}+O�Nt��tߢ����|��d�ZZ�����^{e�a�?�<�� ��%K�]w��SB@�u�1c�T�{�t�R�x�3�<�W������X|�ӟ���;w.���/�?�02��h��g�}����A8�HLx�/����LGR�Kn=��FpCC("���mCp�z�7���$�-��0D��)P����\����Z�p{5��١A��}�z��@�
��@pb�`%D�-c蘀;c�1�R�������f�e��S�ד�p�b�m���u��o��ԃ\p�Mx�eI���6���g�Ӿ�^��w#[r����[:h�k�3g#i#�K�n�E��^U����g?�pQ�&8���qF\w�u��-�rC���XTU���/�,XH�,4�������=5��P��w�y���o�T`�o��ut�A�>�)�D�l��s�LT�Z޶	��V�D�Wm.4�@�2����3nČ@8����^2>cL�(�׳{��I50��IK�ݠ���K<i����<�0�J��lc�/p�S��{\`� h�ƛ��Өp�
���?�A�(�8p�V�=k�����(�|~љ3^l����IH%{)�y�8[)���9��3�"y�?�x8s�̼z�éS���>��T�]�<��Cs��	f͚�W�?	��ʕ+5�� ���?��u��GC�ա��]y�p��j�.� �R��1L+��o�N�@��\𵤫p�Rr%O4B����c��𶃺�?�p�5��V��BP�r!�$��
�\��2��OF���,����u%�t1"[8�*�	W_v<M#@�t�@h7��$T����UX�T�Lnz���xC�~#�۝h������6#�OK�UKmvYE=�rv�
�J��k�Xڣ��y���fF���j!��7�I(�Й~�L ��@�7�0����Y�J#zQm[IH�F<�z+�a!���0���Z�M$�J� o%���V�XƓO>�
�ƕ3~�M$��5.�=nLv�a:�NbTPP�)֪�j�]̹ผyf����Zf鍮�i�c6�	�����8�����Idj�-�*���Ժ�n~a*�âzN�����jp�C�U�bG�����H� hG���X�'�t��x��L<K�W�=�č4���F�B�`�z��0��������K*�B�lc�˃��L,I�쳶�¤��1`H�@�<�N=�T�-�m����C���hs��ƅk��p��j�@�?����&/�`�׍���Q�<p5��U���О�V���	��bE˜�|K(���V�a]UF��0u*D�xB��c��ǀZ�*��K�1������rN3��j-��r���`�ǁ��J�L��^{��\&���MvS��Ic�U3�@��[��̟?_{!�	�`�C�8�p6�LJ�
t�^Y�q��*5Kl	@��,d�Cr����F%��!kL%TC���]���v��㉎�e�Ҥ!�HrYz�(>0�fTeF��X���I���!�3��"X&�0dײ�#��h�����Ƚ�L�-5Wҵk9����Z�ZT#��*�4/���?lTH�nt�@X!��� ��';M{�#᡾��p=�0�Gu�v7�5�qL-Ă@��c"�q �ׂ�
������Uqr�6�9��r%��q߮��
��k<��֔�Yߕ[rt�z<��־y��xKѧ��ӓOa�����Lm��;o���	�\M%�1 ����RE��N��
�tB�\*�Lp	��)�-�4RG�4�( l�?��xoA C aL&ǖ��@X� W"�Ӥ�wyD�T-��cA��^��/,S�,���"� �@��A�ރ>Xg�'�j��+1���¹D�����M"Ɓ��j�u���
�G�7���{��.o�B4}�&z��1CH���Z�i�\�RƇ�\��4{�/r�Z�bv*^7ݰ^���o�~^0�����6	�Ҩ����@�V��H�T�if�&@Ϥ�7ψ1����M�7;>h�� 7�aHv��i0��M7ݤ��+���{�Jn�hP�T�o3�	�2Tl%v�.�#��� �
��iU��h-G/.�}K�)�8}��4qD
�6X��t�u\����e)�5IC)20��y��t���p�7��TY-�V��;����k��q�ar��������F8#�WX�I�h��=���7�n�:�j*����бϝG�f�3��\E5)J"�;�o��3e��R3��ԁ�"+2L�\�4�>�Af�@� �+�B���:���'�=���/O̔.ӌ��ɕSˎ+���ؖ��F����m���I��Ō/g1i�۽WR|"Fi}B����P��{&�ƛ�#�z�/�+3/��
��,P���q{�(gk�Z�`&u�1����7��}�$k�7ƃ��7�Q�N�`t��0,@�a<�K��2~ö�sL^;i�QoA݈s5׾^.�id5��c�xzhI��#:z�b�h��,��d�Z����g�umg���&F�:�����l��o�!�]E�8(��ۋ�!�9φ��j/[���7���.����Az�%L]'����+@?�����!����3��m�;l.�?`'�ӟ��DŽc"�;�������16d��~�^{�����6�ܕ]{�� b�j�ܮ���ʬ2=��?^V���޷��j�1���
T���u�����C���<�B�p�LM�3�R�ņJ�v�s0�r�^��!�i)�������mp�(��n�TZq���@5��.�>6�+����F��#��)�e`�F�{>�^�&L*�Z�0�=�~�@��Y8>R�5�1 6�:5&�@�e(wk�GC�ؾQ�ݛ�ҲU��c��m��u]���-�HO/[A�M#�f��>Oߟsm.x4TZ��P?TX"���k;�5�f3�`@G�	#��H�Sě~L�]*�{���H�B�5�]@�1���`�g��,��u����^�8d��Z����
��5���B��0
��Pu��Z���2���j�@��n>Ղ�\9�� ��X��&��c2�P�=��v�A�vs���E�$1�,]�U]y�٣�Џ�.�o��Ӊ���E/�AC�5�i'U�7�"6+	�<���KKd���z�k`�#hwwwq�ʕ�P(�t&.��HT.  �����t��5G�*���_}�U����e�֤,�6�N�W*��`���٤IA��0EŁ0Y>���9��Z	""nc��
c��/J�"�Lvl���b 7��էw���i��v?q�mӸ#6VRO�E܄�5���u��tm��Kt���2}�Ի\��n#IRO���si	KEe�p�}ϕ~��-��"P%q��wϡ�ܨQ��~��]w]p��v�5�9��6J�G`���0��<�`��c�!����|�썃�w�5���N;-Du>�FD5��<!`�ԏ��#����.ͨ���H���u՞��e�P��p�UWiWۃ:H���"v��
`�6�#6����ZE׮B���3�����N>�\V[z�z
N��+��i5��ɝ۪�jM	A%<�cI������*��f�~ʼ��*'��g���FN5[�լVv�aB	o���b�ԩH�(�`��>��b+9����}ĝw�>�����?�W}J�����_��GeDuO��MX	/�<2�r9��BY_��C��j��{�at������e���Tc!�o��VҦ�R�S@��'���P�eV1;�~�Ү�ɣ��?�AmG�⚘ht��J���@�����`|H�0)?Р�DZݍ ��i\<mU�Y�@�ȫf��w�K��Ej�/�@v�	���By�g��7�څ�`;
>oIe��j{��)t⁋{��8���m�lIR�<yr��ڂ�<.-nKન�k��)S��J����#���n��FO�h��>�a�j�[T,!�U:�y��i&�t�����K5+����WBW	�}�`3%ܽ��+8�#��zHΘ1#E#�;�Ç� c�Z�+���`J����N|�c�^5P|�R�v}=\^���s����*
p�{コ^'�	
�;*jgc<`�<����@���֋k���٤�K���L�=�
��r�5�s��¤�������l�	�-�7v	�����˙`(����*�e��K�����r���e�Вe�i2��H���_C��m{
�@RE��t��%���p��8+�^Q"����ַ�j��w��������*�a+f͚*�ն�7��
B��L8i�$	֡��.�����_��	0��={v^���,�|�͚�>5�#{�� |�駇~/�]`����!���Y�v�D)`��`�`-�O_�ٷ@A��s
��#4���-o�lBL�D�C݃�(6�YT>�ƾ���v�%�y�o#l&�B�TIH�&Z��״�T�mv�\.6�1Yfq��V	@��-�7Y�S,3F�vk�:+
�7*��^��>�ca�f��˜���n����lI���v��x�.�y�Hq�R�E�L|ڴi�رc=%(|%l%���*��S�

|%��J%\�7��;�}
|5��P�$���7�	�r
<P�A�wuu�
#���O
�
��\y�^��B�,>����q���+`>�6o�,�:�ʴ�]G��0?��#��t\�9��� 41C��,C@�W�[�p��z dq(����^A�شZ�-��p|l�@u;���ƈ�n��J���f�m��\�Ȥ��X�t�j���A%ƕT�ݚ(.���o�z^2s~����;Ѭ�/�:%�LTϼRO0�݀E#h;�$���G��U�!.ݸ���j�&��Ϋ-7f̘��IBi�g��h��ڿS	뼚�W3hxn
S�/���v��W��;�ڡ�B��ϟ;wn��W�SB&?a�o������0�~��࡮A*-%Ps���s�=W�[���U��%��B���� HU�BTmB	gpQ,I���W�^-��j�&�ٷ��0�M�B�"�]Ɏ�}p,�g&;.�L������u�`���<���Z�6��1����@z�뮻���þ�S�7\���7�5KK���aJ��x����2��7&(v^<3&w�H�	W�]c;��<E3vW?��ξq7zd�����l^x��N�R?qaz�y�D�Ó��~���VT���w��I
Vhm�;)1��q��o	#�B�jM8��H����Hr\F���uK	~����I�̕{キv�U,�.8���>ƫ*yxi�"��jy�@DC��ez���b?RIN=��>�i��>���Z��u�A�J��`m&����'76S���O�&��1�����y�q����$�ü�8>�7��g
�{�m;����ߌ!S��6�4度��FC�i�zrt�SSh���F��j'��� Q�ca\+S��D��D���/3�vnt7@�=_��$���� ���\q���1ޗ#5J�q�
�>K�������5a�L߹(&DF׫*�=�$�LE�۠�y���8�w��)�u{��<<Z��ڭ���$i�#Y��<��zi-Ѯ
Hf�yb�ߣ�(���T����殺�ĥS�[Γ'��&9dz2
P�(f��2�n�bNLĺ�Sd��Q�#1՜��F�a�S
P�0 , ьQ��ϲ2WYW�����#�4������΀:if�m�i3���.�ٗ�mi�����ג�wg�	ٻ��dH�f��v�b�t[��=��T<�g+�H��Ң��UFzC���7��@�c���4�PB�7����^�CKF�96��;W�Us4�ۋd��RɧQ3���Z�#�].�mP�:�Z|���dI��߾����h
�
D'!8qm�uh3��9�]�	,�Usģ�:�DV
G_!������o�[�pI��2��Y����aA���9Ѕ�	`L�zC":����OT�P�5�����p�5	��׋� I;�k��T@�n@q�F�. �
=�|,�B��9}ߗ3v�b$u��*�,{fRe]vێ��W �8Q.֭['"�So��͈H�� ��p_�z��a�m	޴iS^Qj[ČxJ���W?�
���KΟ?�W�K�_�֗j� _�o~�/���Py��a|pׅ�wժUbKpl0F��5p!�`�M��������<��n�fk���킗�k�_�����*D�Û�eT]mo����(yӐ
��k�Ua�ॅ��2���?C������\43q��_.K
.�,���GO%�:�kPO�G��.�A�U��w��6���׿F���|Jv n�w�qGx��"�ă����=��b�I�&�k֬	<�<��q���|��SN9�W�wO	d邏N�O<񄀧l)����;�iX�C=�G�
\g_�������[o���8��#�UW]�}d�
]�92<���_�f�̙3���(D "���Gծ�X� 衇t@"ҥ`��7߬=��ҁ�p�F,�L��K
�/�
�y��u�
bO��*ċ��_��]�/h!x���C�<�a!n�e�&&Ieu�)K�&���[p��y6R�z�g�O�6���J�Î��O[BW<�{H��9�!
�r��5�E�4�֑J	�`�FZ��P�7y�d�K	X�"����N���n��V�B.�jO	V��4�@z ��y�;<��3%�}%�}��!t�@�$�fB���J�K%�$B�8��H%�ŋ/�(���_�Ջ%��L
@�Hu|���s�)]������#V���s�Ϋu��W����_t~-�98T���h
p��pFP#�8���`x�ѷe
Nf�$�z@Y�5Hl[	g!�(��0�V���^ۜ�����v�=�o��n���F���u�$D̷]�����\�!�������aV�X�N��f���!]	>�)��	�B�S@��@E�$n�H���+WJxv )��x<�@P��{饗�hTO�A=���!ұlذ�S`#�zL	p�ܠ6��7�ia悗
�QLI���P���䒂�۵p7�``�(Ȅ�<L:s��X�ZC
�/ܺa/��
/6�L�

f��^z��i��F�_�t;1i�RH�b�_u�N�`�u�E�7O�o�x>]A��M��ϻ;��yS�}3���m�޴�2zz�Ay?��|�+u��1c�3�LPC��vD;�恆Uz1����X�O-���Z:2~��͹)S��@�P�+!�S�sO	d0��~��᫇�?��u`�2�n����C@��l#
8�=��CG��`G�2Ƃ�H��8��B./$N� �Q}�j{�Z!2t�9xH/ۄ��c�JH��t-PAi�ScHg�Y?;"�!���~�o��p_���f.8jV�ol����p�E&=�(a��X���}�Z�3El�����@���u�A$�M��~��Ԛ���4�28q�+�)kj�>0���]^����X�;�O�S�W��QG{�
��D��t���Xw��&�m��mr�I�`݈v�M7	$t�H�H��(��F��6�@�#+��,��-΁mLj����'y%�:��NQˆ��ַ��GP��n���5c�Χ���d V:�(�"�mC*�e�ʄ̋d	��'UE��e�4��~��t��j�p�!�l����Mi[�A��P�!G�
q��J�6Ÿ'���7��1�Sk�Df�zJ��'��H'4��-������g\�u,�"�zc�R�HQ�g`��jI���la2���C]�TaY��+nh-��hD/�h/�G�Ιb	X�h9E+��a�W1L(�a�ì �d7q%2�?UU4��|=���d���R��fb[Jc�=[l�oֻt��w/�Y�������몲�����=ȼ輞
bU�i�oݠ�'`�v��V�M-��Pzt��h�kD�#Z�%?(�c�l$��ޔ\_D8��4����<�t!63~������/?a@�D���y���7���FOVU��fͪe���ъHHBBB��2k lc�6�����`;0�'��3��v����$$$��-�F�m��h4��ݺ��嗷��ӧ������V��TWe-�y���JSY�C��w'�ڳ�QO+*rO�8e'�M���"�9q�F�UXV�۬��@�1=�w������r�Ǡ<�g>�I7�"	�#v��8|��gW�,�62j��Z�d��\[W��=]�`�R�Hh�h�H��9<�P�V���r�I1V0f��F.��G�d3�?�cL4��e��/�~�f��ǞV,e
OF�K�&�/�H�z�4+0��	{�/��/{#�KVR��~"r�;�3�*�$3Ts�{�������Tq)���'?�	R�[�H�/VqFc�駟���N(f����u
�3
R��ɺ��/��]aBE��Y���D����`�>�}��3��˿>M���*�,@����.p��1,mlhEcG�dze�i�(��u� ��l	/��r��,D����PH,w��w�
M���zzL=��Ok�:z�B�)~_f`'f������R���cu����}��7N�	8&���[n��b�yһ�7�1הQ�3����zi��{���s��|��1%h,.p���F\Z�9Wr�E���g�����s�6<����|����F���ک�^T�%m%R��횩�q.ׄ
��1r�)����
�"Ɇ
���~��^��~�j����A*��^?���nw[�n�馛�?��?��
���_�*
T��¦G�����>�)u�UW%g�y��67������o��$)�!>$0���ٳ�Vc��+�j�s�p��7oF�"�rQ�
iHl���|�;��
!�+4�[G���x~Ă@
7_'��=�&D\�#�<b�vQ�A���[�5	X�[����2�n�,8�������~��`U�t�z��dA�<aS�U�z��d�q��xâ�Q.�F:e?)��xZB<�|\���#AlBA���.$�����a��S����TG�7 ���7�|sh�I�z��g'fe_?��c��!u�]w!J�<YFW_y����Q!1070RG*#4�`-����Q+1�T�q��^l@�@�6B7����m�A��w���w�-bK�٬�P�]�
�&�#A�t���8�6�`$�8G�]ā�wA��&)�_��=�(w�2�`���[Ľ`��0�0���O�T�q8�	�5�m���׾�5���-@�T)y�|����@���A3~����-U�6�_	$s�a6�~g����&�1Ֆ3���rXF�d���y��{|T!D�,#�c#��m�i��V���@B���3E�\sMb�x�$�����BN*0�
&���=�	{�+�SO=5A`�0��f�"�%�Phwr�uש�/��&�DLP��An�y� h��"��S�����PG�T+��q������G~.�pIm=���/��
u�Hu��1`�^{��ߎ	�~�*��3
V�d?�����ɀq ��!H��z8aRD�H/��V����0@���
��W�H�����yP��^�m��Y��̩�d��E���(��
Z� �Q�@Uo~�C�c���Qb�G���}OA`�3^��EW�<������1�驱es1��H��u�_mݺU��(HΈ�|�׽�mn-�:�P��@�mۆ�Z	�2p
0��F�a	�<�}W;���E��`Pϡ�-���Ɓ��.����~����'�62�i&7,�08�p�"�iޣM���$���N�����߅�a���n���cil_\�-�F�p��P�0�0���(��c��r�q�\OW���D;��ֹE��t���v4Ou��v��$d�#6�=����f^l���{��"�+�9��T͠��p�3����M����ob��oD��A�]d�eŬ�.�6����w�T*ȯ��F�G�
�ZYz� d�)���L>��(f��{�_�8��i��_�C������Ɠ@��&�I���t(�\���>�f���>�0����]��8���6@g�quٝ���B���\\;��l�I\mv\����ld��\F�/<6�g`����K'=�$�̆Jk:��[�ZN������G���]4{��v�N�it{2��9�fO8���䁉̯J@��'�&%�"��IqiT`����@
*�T�W�4).�I5H��~�"�\x�P٤}��*����\�MxqU��lR</X��{]
yJ++�	2)y�@�i�
�y`���w����'� �ܜg��t�Mv�	�<oP����K0�-���2"�[��	�,2,X���ry�d�]�������
\��$D�H:il��´��.���+	җ�r`����P��&�U�S%zTf1gP����ح��XazN�އ�4�ł
�yle��BҴ����ozӛ
�#��O>��ַz�}���������gyk�{/��"Y*-,^�������ExBG�cPIC��q�s���5|�{Df�M�F���H�i����y֐te/#�y������X�vql�2�D�T�X�)d^�6� �u�cv�1F����Ұ�
B��x�u�ݺPlIi|�]�`;��P �ak��N�7�6��_��_��=��|60�H��e� Ɋ#�-�'K�j����%D��ٿy�])�]��@�� � �F�1�l<:^���z�y����\��oL�L�fr_����'��ֻ�M�`�q��f{����п��җ��%���m���0��s�7�]�0���6B�ң�]���ٺsNX�/��L�����6�[e�,uN��D�<~���<j�'۶mC�!����;V9�u���e��)є}F�� �#�<Rپ}{��������~9k���j��I�T�}�19�}�^`���'�^\�Kpﲑ���3<}�.O�oA��'!��>����p�@�7x,�X��4�*`��`3�c
�����駟���w��]�-9�h�)P�A��#��A\6�-�s��vr�2���ԮjS���hI�P��	$��J��ߓO>q (��Z*.~$~����O?�5��b����߯#���.��;���1�x��n�I�U�~ӛ�d3��h}g�}6�E�!Rw�܉bW���_��=~�_P��~�I'��'�|20+Ŀ���̠��c@#0�������g=]]Ē`2¸�	��9��0Aᚋ	�@B�u����z�]c�����
��}�k>��6ׄ�0����_X�aV��9A�yD磲#T,�%��Ғ`�Ҡ`���w�Jrs�1�7����
ox�e*���9�:����]} �	Y#0wP�
����W�ہ32;�3l��1f1OЯS�(1���CQ:��t�k�}�|���僚H�0�M%�[ˮKLŔ�겇���C=�(wĆh�#w�u�ڵkWhX
㷾�����X��oD��qf���.�Lmܸ1�������{��
�ĕTL�._VhV4�
7���Xe>��v��5�̝:�1�o}�[�k���;0�y� W�lt;j��
%7t�`�7AD�;�����Op�8`�`���L���;��v��Q�++��m��f�?�C	��$ apop��`@
@�sq����ߖ�~`��dC
������D�� M�:��S�s`�*��޴�@�<��>V�Sv��`�8��	�����`L�~n��N�������o����G���/��/�B��_��_�s
�1Qnlca�y�#����o<_^��Y�y�9�_��_v��
c��6]P}�"M��,e�����Ё�d�̝��7�7k�}�k����iQ�@F�G�T%f�FHo�۱?1  �@�:�Y���?�fαυ�����̉���΋�g�$0�A��p���p�aD�90�����}�{_�
���d�e��zc��K
��Z��S'!���.�=\~!�ᆉDLL�>RVP���&��àF�=�Ap"rk!�>}'�OL>�&����/�+?LP������R���=q+k�G�����`�`��O(+����ЎID��T>Y��*z�{v9@� A�\��ߘ���X�`a��1�/��b��J���3X���ٟ��}�" �uߘgp.����t�X�F��
�_�G��Jk�
��F0�q�M@�c��җ��U?�V�PAF��
�q��!R� ��*�i�
�9�Ƅ`��;��o��V[��.
�L��꿾u�V����~̦
H��$�F+T1V�h�F����@��
����;�������^�
���hPd���J	����d�$�$�*+?\Y�y.-�ui�A�q���Bb&=���^JXe��o~�/���p���<�o��K@�;)
"��"�d���=)����~���~��V�b�bQ��$w��%�v|*-�B(`�C-�9���1	�>�(·�]V. s��~����
�����}��`C�}b����H�J����$��F�SȜN����u�[A���H��k��#�y���k�,"�Cv|�����=4������Ьj��U�7���K�̏!"��|��p��-2���
eV�BW��62�Ef����@�d7z���EA�
k��6d6�:��EZ���\ׂ	���$�>� ���)���#"�&��K��lLh���$Ls}Yp�@�	0L$L
���{��8���@��&&�``Cx.�5��8	�I���c1�1q��U�
�/��[1�T>cj^,K�f���:.z�g��*&���X����1�c�V���pǘw�[N�g'qY��B�c���$0z�T�ذ����y�՗��e��W�2��ŸEF�c1�0�g��?�X�b������sψ�3��D�@ӾJ�<ns��I����+W�6�O�xy,�[R��IVd{���E���R�DFpVYd�djw�yA.�����}i}�3�H#�]D��&�X�zj�A���d�v�<2F����lr���A߱�����Ya�X��=L���m�įO���ݱ���\7t>#�˿����6�P)���A��E �{7oXЀ�B=�@B�#�����;��a��G?�Q+��l��"���`A�(���e��؁0����;��p�w`��l,�\4�[�7�����_�8v����}��"�2[�Rͺs��w�a�������_����������loS}����]"@G3�V౻�sx���E�;�z*�v���w���"��x�r%��|`}Ps
���C���4+�� î�M�qi���Vf�$kr�Ջ�����=V��r�k�������ߚ&���&����΁~W����ȋ��4(����2]å�:)0�P�����΃�	�� s����a~���rT<̍9/��L�!΅*s��O}�SV���O��\薀�̱�sL@�uK��ٴ-���o��nH�Ҹ��,���:5%F����/���
i�a����|6�	�����s]v��y�������/#��t��d��!�T�Y�� �e0C�\k���`w��TGP�B���`Q�*Ac��>��Z{�E��'?�I�С�����ຸ߹,&�7>��Nm��B``H���6�����o����%c��)�/<��-�ƚ�I

�@	=����e�;r��jL{/�j���(��״A`���d��NN=5�ԣ�;+b��x㍅�I�N斅��E
�=7�����p�ذ"w5z`/�p� �]�g��\��w���::���p3�x`A��{
���H�<8��w�w��������d�OF2Ů45F�7����nU�d��XhH�{�;�ױAWf[�B
�:��-�E����`�C"gn�����B�Y�Hv>�=6o�U���&��l� ����VB�O�Y�c&t�>0�Z���
_�wPy�L䖷b��UY�}ˬ�y ��׹����̳����n���].{p�z掹�8'����}��p|A��?`�kG�"�C�wd�o�l#`"��j7-����߭��eG��Ji���F&�]���^hp+6+���?���{��zC|�ӟ�|���MR���/Uo9�l&��a�f.��rv�i��
,b��*��JZ{�Y��`�����z�&ݩ����&�[�Rc����Vx�/����9��6�7�`�ï�ʯ4D.K�V���G��{��&�"�ua�Y�M�=n<a�^�\�apwY���.��y4…���?6������/���1��^������	U�x�2v;ml�9�,/�B��g&��14�ڶm�6j���D�u
��
7ܠ�����h%-��2��y�">����0�ફ�B����a�ـT
���\P{�G�ʛ��Y��{l
�ûw��0ܙ���l���r�-
U�N�.��~P�� 0���{`>�Rbp�%���;�ޭ+1<��~�	�2�Xe�g���1,pi��	�a���{��.�P`5V�^��Z�	���p��po����8j�K��oƹ��p��Hz�8��vW
��}�c�:��o��RqUue��3iW��@����@�園�!A���E@`�b���N���Xx��m��c�֓���>��/�{B�X��1�����%T_XX�87���0��b��H��G@h�N�x��d��2rO�����n�Yq$LP���D0���U %�W\�a�3 ���1A���wܑ�Z��0*�+B���k�j>!@�F�j�&��Q��9�`�a�.rz!�F}xvj�Ν�L�y����G�ve��b58��0�!�,��p�2p����8��8�`P}Ƅ��=���H��{Ŋ
��я���	
`��.���'�nRL���C<w����ɺ�b�v$DаH�)��@��g����r��B�+�Z�0�+b�0��Ƴo1���r�րy��Դ8c�wb��X�q.��|��Y���u ����[r��\��
5+6��Qf �FXV��G]�̵Y�+3xb���6����n���V$t��A����;@�;O?�t�\]�7o��@+}�F@0�x{��`��*��V��,H���J��m=y�c2!�6?�r�`��F��)`�cu���ǿ!� �,8���pr+L`����ܹ���kA��|���\)_4������4�(�m���e�/&h0��/��yen.���p,@)
 ����C\��OD|*(�1c��X�!P)u0�0�������6w�}c���1^p�k>�s����@��\�;�H�J�:�r���j/d�U�]w�M�b��`�*>6�=zꩧ�*�
�ba�����G�NŬ�,��M@hB0�Y�P7猚�՟���f jPgd��kl_�"�A����P��^�"����7	����+1����u�LWS��EZx{@��L2x�ྱzs*	�#��E�d���/LJ����]����A�`�U��Ѓ�;��DHɂ��@�ଢ`���T1`(�J�*�V�$KݵP���EX���e�=A��6��w��_�M��s��+���j(D�
�4��Xq��G�B�
,��و�=�1�=��A�:E�L���B���N���F�!�}2�<�~2b��r���i*�*=6Lk��{@_:
D$jD�0M��S��7<ۗ���Ȁ�F/�ǵ��e|�9P�#gs|�J���U��*k�0�!i,�~ݷ�	����ˀ2["A�ňd����o�\Y��q^W�(�|U2y���9���%�9��v�/�z�Y@�j��F�#h���v���>���f$��NH�=�{sI&�A���Ѫ�ҀAhR����Jg�j����=B_F���]�-[�XF���5صxƬ̖�m�p6cK�R��E�������D�o�_���?>��>���@���P���t��e!N���"y�B�d��Fv]�����w�M�H|3׽�F�R�%m�-@�x���&:#��`A��~8���t׫�}����lW�e7d��P��K.qI�b��m?!M���l�\��U�WƘ�F����Ae*<��\����dHY@��
��꞊<k�;r F�B���>D�
[Eq��-�59�7mu�b�z�o���Y��K�KQ��f^�U|	 �5b�>|�j�8�2�l����s����S/Z��i����2��'u,��GUx95�+�a������\�`��Oz�M4K���/a"Y�N1�v�G5���e�;���4���a�n��R���:�@U��{7���TZ�e ):���y�/.P���[��ĈI���K�x�L�8v��e�y�	{�6��Sg��)Bs�Y̠p��>�_@��̕�k�`�B+�n�c�g��l'p=�1'�Z���"�k��ϖZ�Ui\��+�獬U��8-q���w�����l����g�j���v�W�P��sRi�1Ҿ0)�S!#�y�_�xdF^��Z.����r[�cif�D�T�{^ή�*oΗ%�nK��\A$��

.���l�֮��z����N���L��̧P*��WlQ�Q�gb��TY��Y��<�A "
[�
��;���
.�a rŝ�>��I2�a)
�`��H�0bl$���my]��"V,��8J��)KR4i/4��^(�W�뼩��L�0*�T]h`&�(�������<�P�����J�H�b�O�C y�骲|��xm�"�HLG7���+�X��拍t#��R�(p��7�U|4�=�Ď�L`��Ď�S·�Ȓ��(�35�V�2TX��\k&�j��@ũ�\��lй��*����(��+/mGQP����L�#L\�,�B�Y��]��V�!EA����]�{����*P1��s�Ҿ�Z��De�A�����癥<�K���	15���AB��,ܹ8�&w$�r��%�	 $N��΋�h�ɕ��l#�>6&��BuFcr��ĄE�_�4����e	\<�{�x�;ru�x��h0� 2����Z/�����guݮ�����,��<
�����.ҟ�M����g;��q�\������$ƣsT~cs�L8�J�(�&r��êic�#"�Q��7~�7l�K0�Ts,�{�	�6���D� ��>��gϫ���(�I�W_f��H'��e뜳�nRm���{)R퓐�X���FԘ6>���5j�)��~� p�	�:�a�����i�I���@��|���Ey��K�L�SB�d�I��l'y�h�����hJ�6��~����A%KH��̆��i��� �ҋx�Px��W��ဤ��Ad1��n%�W�B�%?s�9y���.:Wcq����;�`bm,���c<��zTx*u�@�$��0x)���^[��&|�^��	}�*t?�
�.l��.����@�b��+���o�4�v�	�[d�=�^<Y�
E����R�ȷV�9;�"r5c;�a�ԡݪΚ6�K*����G`'��?J;�����Bە�uB?a��A	��qPQ
Qs�]�]{>WQ�c#Ʀs{q�� N�p��Q����C���C�٠��L�2����5�_
�T� �$;�2�V��Z
�-�>ؐ��faC@�&�T��ޚ+����[
�p�.��D�
��
@��JkΚO�Ս@Ү�/+%,'K���
1֐0PO����)�ʱ%]�5���H\�M8)�TH�^9<�����=�����<,*	Pj�ى.ܳ����UB��q�V�E��VZ�ne!W^̂�</� �?��
*d�F0C1'P��D3�yB�_�Q���.���z4E��q!.uz�4�s���fY�*�N�j�&���-��W�J7	*Xٛe���80�����!��BZQZ���I�E�4e��S��ޣ^xhg�r�j]R�I�XԤ�g��9�b�M<~�"��N:��%$Yn�Y�"Y���T^.~�Ha+��"�

��/��G�Il2x��^f�BA�b=�!�?TW��j;b8\��V�s�Ԛ����� R�%��LG%S�험p�ʉ�'S[��l�1�I�Nͱ%<ӯ�b�p�&Ug�BT]t*�I�K�R�*���U�>�V�$�b	0�(p�}Q����!�~�M  U]-�L�
��|0�Vj/� �Q��k�g��j�]�襗^������"Op@3�5����p�oC~+�C���dU"lG}���t%>��"��n`#�-1�V����J��Mes�����w�x��N���1'��������!��@n~�
�*����	������JƎL�O<���~C�C��p��@gSp	��>o�Lq���/0A��V�b'y�Od�x%��^�1�����4yT���M
1 �`���2+C��}�G�@�W�"�T�uHZ�j����ʿ�K�BԘ�
��yYMȧ�ؒ@�I\�}u�
��\F�(O]g����$p��V�O?_a��̇�ix/q���^��W�)��+�P0�o���D�u����%�;�� �k�yPM}�)��3hgn�V��G�瀂���ӿj�ܣ����CQ�n@���I���6HY7}4�b�T%�z-��+G)\R1���v�Fc�҇��*
��vݬ��dB��%+���~�VIדL�ɋ���|��ŧ���Pq��
W�Y9;���r��@t[
�^��p��f���V �1��c��L�K�����S|�s\�t屙����o�P]r�%&bZ�*��[<cp��d����9H��.����
�?I��4���ܧ��-Qk��L�5M�+�Y������.��<�H�E��)�z�'i���2�):��3��w�Su�#t^��Y����	���TY�G��=�2
�Zn@$�d,6@0L�]|2��]JGw��O�!=�
xs��f�:��^ܼ��^���h�•�4��^z��]����4���2�?"�%�}r7��&U�
	��8�"ꮬ㳢�� ���9`�VĮ2_
�w��x��g��H͐�"ݨ��t��-U�;��D�֒��c?� ���k�C=�����Z�r�e�i31�*���Hd..�4b��3�Xz
�j{�U��D���_����Է���j{�i�t	m��T��i��6��לBw\�uZ{��t��g�s7�O+/�L'\q�����K�锫O����y�)�p��њ3כ���N�����o���]��HO�Q0l%>2J��U��i�[�5�t-=��鞿�6������[�凞��?��T�}�6����u����_�����^Z{ީ����O�=O�@Ki�){�����c�
���WEst�@��R$��/��<ۭWOc>XO��$�=eF�d��N�B�nn��Q�$�S��ʸwYrחW�p�����&PlܸQ_|��jpp0��zn0wق�"�F��1�^$���n��KO�$3�=n��=kՎ����V�����?d����_y���7��6ѦמN�����W�>�5Z�y=m���(���}ctϧ�F�ܺ���t��}�Vo�Hk_}"=���;��f:��~:�ׯ6 �GG_:D��=����lz��}����t�ɗ�2X1Lc=���gl��gl�W��@�?{�t�=��}JE'��\���o�G��fbj~f?��:�-Y�̪��Y�Zy�oiT�����B��a�T"���s�rnyz)�xFc��p>�A��Ɓ��()����B��nߘ�t	xde��r���y�y(@�<�dY\v�sdd$,C�9��&���x�xznݣ��7e
��.����qZv�1��M�����}t�����
Nx����F�N�p�>mU&<��6.�#F��e'���%Uڿc7=s�Էr"VB|Ǐw��L�ޡ����q)��K���F�Ъ��G�5�.�Go�����I�x�q������]w�	T�'�x�~��:J[�׭���m�bD��4�z9�z/�~�i�_2@�n��9+X����%`|�9\�9����� @�mn����������!nu_y`�3�wS�ǹ��J+�٧�H�����*�K�=(��D|�xy�$=00�S����f8�y�#܃��O�0��{�Me/.ső}i����Кe4~�(ՇGi��gP�{�����e�y���������~>��H5��!���t%;�i��>rʚJ�ޣT]:A�����h�}��飑R����>�9�8
W�:4f�g��]r���®R��[N���/<��\��Tu�$f�]��ҡ��
j�s�@i�e�H���2�nӹV�{ϻ��ζ�n���BiA�Bg�[��d���ϖ�<6y~�
�"4R�ȑ#��?��꥗^R�}�����G��uv�15f��g�jR��#��q����s���Nu�?�F{��TK�_�O��,���5�D�54^���	-�<QObŹ��s'��w6+����U濡u���7���!�u�O�Ml�����^@.=�^�o;x��e6/�
�;B��]��s~�J��M������]�r+���NZs�:�өo�2���Ŀ|�*�����k9W�o➗l\I��*%�@��⩳(�L��y�@3�Ȼ�������\��� ��ldll���͗�]f��_�a�Hx^�#���O�D�6���IFQ��ԩ����|���UÕ�B�5B���T�i�����i*�c���e��$��b��մ��z�3{�ƳN��O�ҵz�֜��b�0^��	Z�y���W�="����h��i|�Nw}�F�ip�r�&�l�2�K��'��6�W��E?���tڕ�Ц�΢gn|����L�(4,&>p���
t��^C�^&��&��i�/ґ��q�O�|���޺O����Q��a@�÷i��ϢU�:�C��ҏ�����V���Ô��K!nDe/9�a?i���`F�9˸��l���Ҷ�\�;��I�Y�H��n����:^":ϩ$�FB†���"F�;��yO-1�(Dt�-[��o0::
�Z$}�� CMf��Z�9X���j��I�K��W�)���Ѭ�b	m��T;z��4�"�4~d�B������7X���~�N���(�9��}�4p�2#���RAD۾}?��X6�o�Y����s�{�&�����dp�rJ�Nu� 
�=Lw}��,h�����Ru�������?d�k���Q}�Fut��Qb���m���ڕ4��0����F}Կz�BI^O.g����7/�{���ө��.p�v�c�m"��2�Tg-> �IJ�<�!��J����[M���/͵E�.H
�KQcT=ϫ��USS�Hbs���|B�fx��P�{tbNb(��К5�P��Կ܀²>���q
K�l a`����6=
Q�,����d�A͘�jq�<N�t���b1�}+�LA���)	p���U��
��;�'��M\<�Se� �%���?xs��3`�N�nX�!(`N��I�SUC 7��r�V�E���#X���-�]Z�\�G7��nb��F���ۺ�N3�V�CS�v�rbB>&�[p___2Y�}j"�u�0".\
��b "j�A=l+0�K�?/�����I������3%��g(�� ˣNt��p��Ʉ�W�#|g�� ������*S)T�BҪ��,�{+V��)��A0q�ajOi|��,p|�(��^@�+x�rƐ�(�Oc^,��i�D��d�Z�*�Y�|s	*E�3S�.H�b9󝵷�@d1������4�M�����|lE(:p�ժN�'�$	5g��0`�U�4�%�]�!��X]��t������I�i��f��2Aъ�XS��6�e�JM�� ��)���k�j�%�k�뷳b"E�N�Up(L��:�)p����C5�*��+Y��%s�r.
*�,�	$�qn	"�D�]�5���$��$�!p�@B�K��/�,�+�$j��6F�\�??�Wp��D'jxߡ8t0V��AS���qΪ��9�<7cb^B5�4|`�ZO�[`UK����Z�)`���u�&�V�ק�Ct�jKy�X2
\g�	���(��́�WQ�k�!�J��H��mŁ�F��S�<�X}�{.R#/���5=�(~�n�׹�O�׭GGi���1g7������̶�N_s͠��D*�%��-���hpV�2�ʹ���ŭx�D|?FuL\jy_1�:2����G&Aj`� ���z�dGMv�ܮ�[��%Դ�&_�GW�x��׍R�H�-��M�IQ��n�0���y��,��s��BjLu�݉�����+���q_��A���I@���P�%�����^��U��n��$�
s�L%�����%�`!RhK��Y�3v��V�Z+�F��@��B<�c�}F�wE�1�o$���(�Ӿ�0���^���"�gK0v+�6镖 {�Z�sm��,��O�c15����wL��9�&�̩���h���FƄ$�}H ��}d����$��0�U����m ��H7I�\:��h��\x>E����J�-��e���k:��3�r5U�I�/vF=N��]��u.�>��{�\	�Df���#����5A�w:�x�.���Fq^_���j3|_¾N�n�q�}�e�= �����
vWJ��M���� R2P��}y�ɤ�Y*"_����`5����{U�񜙸L�u��
���%iqO��,J�Z��d %�t� �1]t|�<�Ko"����+���T_�83�О{q�W�g��ԜS+��4+	��m-�b�%�,>)A�;@��D�T�c�����Ī�{k��X�,�տ+��j��>��h�w׭�{�^`����]>���<�RT����d�,��Κ��
����D�Aw�s\�4*2 P�r�<ҝ��DS�*E���"jt�u��,j�yd�/�s��G���t�B�喀��d� ҭ����nVov>�D�^�����$h!�����XM'C��J@���]?`bj��r�&N�tQ�Q`��0�>�6�$7�$�E�'���8H�3��O'�Xb�e~�)�QJw�H��V	"�"�$��㲼��WE�s��̳�M�nQ��m���F{�XH����
E�-���� �2lA/���LÂ��b[Az��T��<��H�	�p��Y�z���z޲u���εKY����s��T������/ I���#��m�ݖ>|8uIxjx"
��mL�����?��ٳ��/ұ��޽{�[o���9�����>[g�
Z��k_��:t�ۯ|�A�{�nUL�}�Y��H��{/������p&�7��
z�W&�?���l�ʯ�,�T_�ֵK�_6�I ўϭ%��*�*��p���`!��w�矧]�v��t���3��~��o���3��w��iǨ�ʜ�c�3BY�����/�\{�������5k֠�~ꩧ&�//��BR����(�kG��O?M��~����[�js
m���͎;���P7�x#�kh���Gd�K��ڦ?�<�t����b5�/������Ѿ}��N�����0��Nڿ�����>\���{���FFFJ��Z7���H	"�iݐk���<�ߟ��J��N������{�?��?D�Dk�x������k��VC��\z���K�@V�}�kc�2�)�-[�$`BT?����;� <��#�+�ׯWF`���$]t��W#���F��C�SN9%8��a��c�
���j����;п6 1��	�9�v^x��� |ӛޤr+V��o���!����J�<~�ӟ�ѣG��U*;�q��֭�,Üo��0"����9�ߓO>I����ܯ��7�}`q�>=���W���n2�.��26Ax.&!�M@:�>�^Y�8>���|3�"5��؈�N�?�$��4�ʽ�ԠmA�p��i��0>���F��Fh��\r�29�j��O��<�Lm�j��w�S�������-oy�~��b���F�7�A���K��Q�����>"�us�^P���{��;������z׻�������0���צom��@��9���<�lx	��M>��ʕ+�P�3���w�Y-mڴ	�k����s�9���}���p]�l�۞o&j�D:"��,���I��.+.��5�`XW]#��n�fկ{�1UTGF b#�� ��
�{�5�\������8�Ȇ
j�ַ��J�?�xm�GF�k�v�m`��_ԫ^�*m?�2T�mb׮]��^��(�È`۶m�M���>
A�裏j�7��`��,�;6�\�P;�/_N�Ȱ!�LNp�$rV���:$P��plP�A&���=��e'hP��V�^m���ؔݿP�n�K7?C���R��YՖj�;��l2.g+Yi�'cH�`�� 4+n}�]wEX�CEcV�
��0������W�k�jd�Z�dI�#�HŀIx��F��w_��SN��~����q�W�`;����&�
�=>>NW\q�6��[1,��Yg����C��{.�6}'�|2��.���-[��6lA@�j+0��hY0�}�C����Rd'�����NF���{4�&\��j�*2,˲
��������������l:U׼���n2��g�J�6b��\\��_�����˭@��w7��t�5�q�GB���~�D��AV5�622J��>��S1�WM�U�k�>ĆJ��Y�W��ЀFլ��+���j� `��d�b�B�v��"Hߓ�����/x%k�4�&�+�Z륗^��`p*�Ko;B�U�qL�Ґ=��h��'�e���'Ȱ��}Pm�1�t&��^�n,?���L�E��q3F����o����.�Xl	5���/�N2�VL�W�Wy��M�eѧw`��fE��t�b�5HcK�O:�$
V�+��C��UD���|���M���ξWD4������0]Y��_Ş��3��
F𫯾�Q�i��	z)��L�c�{-A�w�B7
�D����'���/A%�4�<&k��!��	�O���v���.~$N?O�
���e���A��nĘ����akq�y�-_m�$�4VD�{v�%PM��3�8�+̸�i�®H0c�7��e�e���ic�_�-���g��2�kFو]�Cq.��}�j�_�%gTB���m�d��n�@%� �=dً��B.�~��R�T��I�� ���!ז�줌Y����(��a"���H8eΘZ(�u:E^R�1���LY�%k�pP�@�S���wڀR��ͦ.Y�����v� �	Fi�o�X�P��+�l��
ó���jL8���H�q�D�Ūx���xV�,�Vi�K0)[ׯ�;��}��:��b$��Ȳu4U	lDxx�����p#��j�^ ���ⅨBяt?�߹�j�5z��⺾��a}%���k�G7�����f$j(�3��< #��,�%k��^��xg	�{��w�?��z#��oE���<�М)��l�f� D:��blW9`#��tƊ�g_��c1xx\G"@&�F��!�X�Y�UK�=@�
��V耚U]*=Nڌfm��F����3ۂ���d"�$��*&+E��B�YǽN�6J�;bj�Yp��i,�epFMU>t�=
@�
z�Ņ�d�,ĉ�ٹ�⹽L�� d'ek���mA�Meo
�t�sD�n<,Cz>I7`�a'NU�=�$
��y�e�)@ �H2>>�����jUw�q6�ri��B����hK1煫V�
֬Yc���=>22�T(H�Pa��!	�>���mࣹ���SiZx�}z�e1f�%�>��࠽}D��ݻ�f���6�BP��f��0)��d"���ň�D����3�s� �{AI�_�z�d�S���?	'�w��*k׮��A�Y�n��ǹ/��F,#�#s|�ʀe6.*$H5��ت�>�`�c��^H�><<��o�"�.�������n��V�B�9���߯w���@����Ƶ-8�{SH?��i�2�$���uiQf�,X�)a� W[����\������ý
$2��HG�9Y�V�����h,��!C�ҥK-K#+���+�N8A!���>�H��E���b��
��<X1�k��)��"�!�
�J�Y�-["�;^v�e�<�&���ˑ2I#ݑ*%1��^x!���/�,��UЎ��P�	mzLZL���c2q��:ʶx�D�T+"� D��y:e#ɋpou�/�J������1���+B1)"�]w��x�)�8��c��5K(�PM!���F��m�l�4� +�:R�����n�����0�,
b��LH���x�ǒ�o��Fd>t���e��j���
�ѩ��j4�3j����^fu��v���H	"��y:Y�]�y�h$(�P���^�Q�~���j	��
P$����+�LF�C�f:�(�w\�&�c��I�	�J���
N�����~��P�]{�!���j5N�m�F]����J6�l۶
�l)[��j���!��ܹS;pA���\��-���&������$Ӊ��jB�n{��г/J
܉�Ȫk3�޽j-�w�$0#�s�=g�I泊�����؀Ib��S�b�&`�͛7�^?�Y��^��+�6����/A�Pq D����<���+<l&P�!�7J�b�J�_���KQ���m���uﱏ��B����no����N�/ab��p���|�n��H��Ӕ�0V�����J��G֭��j?�)�k �컰s|�3�	��5��o�Z�y�T"�
]�/
Y�r�5k��UÎb��,xA��Һ��̇�/���{�y�Ɔt�3u��o��������[$�@���金�0L�Y��fu� P�*��}�޽����{��hxQ�Z��������0�oڴ	6]���'6��;@-;@`�{�8>0}(xp�)���"C˖-��.œ�px�<x��(�|�������J��v>W'�$+W�
��n��d�2~��%Q��N��թwSl�Ex��w'�?������l���z%f��Ϳ�����O���ׇ��k��y��uA�!�v��`X�n]���W�;�n�J�l��܎�>l!�| �2�4�pm���!۷oG|��V�e@Dz���Q�R:�)����X���f�7XȂ�x��5���2�\�y�W�%�y-3��㬳�B��P�W�NN<�Do2av���9>4�v��M��-�"���"�Bb�,(ao�6R��{�]we�����;Tb�t�M�6���a��e�Nt�b;���+�J��l��1T�����2O)h���'�h�/>�eD� �K��S�9v��p@��ZK�.�\~��<�.g3�����H�!&�&�{eĽ+���'�><��|3�3� ��XZ���_�zgw	�3i6���~���v�p��%;��f�o.� v'�,��K��Ic�/9�/�		p����<��z�Ξ�*&Ԙ�׾�Ԡ�Tޮ����m=sl--����]N����	[����L�q�6R�w�^�{���ǡ�E�,Q��~�!�b�=�|�j��#0e�@|N<,F���x��)�GmF$>�T�xRaZ�}\�Ϋ2fD6��hD���[��*�յ���j�S����a_H	"���YR&s�80�2�	5���^3�F�5�yYޘ�|_���X��{��T�,���U��{+�V��K�Jٺ�
Њ�(�qW�S���W�����(���f���7������_!��EH�n�!��U��J�����PcT~S���%;��
Ib]�Qa�����svHt��
HV��8�`�M�5�2"���񼊢c�7F��,L'���_$�L�߳���6��[�/��S�����������qH5W"Xgu.�>:1���>FRs�z^Ý�]Y]�b�u�ʯ��S��(,�'��@_���vH�VJl�B�U0�
5�g�6��
uj�異-��A����	�.�!��&�=�%�XJ�	8.��R�-֒��;ᵥ2�G+��B9/Q�
�\={�M1a��Bjt�%PN��
�<E�������y ��T]PJP��o�\�����&�x,�X���ܝ���rw��dR���\���㤚ʁQsp��FŝQ��~Y?<8R������%�Y���T��@R��D:
$Y��3X�/������p�,m,>g�K�V6@RO��Ps�G-�c15qlĮ�A�_Lٱ+����([	(�/��VH	"���쿚놨 �c4��k��c�WU�B��b���G�cD$S!v��]�2i�<���%��,�	Y
��]tk{衇:�H�5�g���ڸ0�&�A�
��PW0
<,$f���{��Ğ>�
�|����E�~)�Jw3��-@�kFRd��U�����e�_�;��
�'f��D�$�9v�&td���>����</��Z��,�V2�RP��s�ӌ$h|��������m%��x�K	=�Y^�F��)�H��XL�}��Jz��e+�J�<JYԌ$�����믢�4"5ƍ�ώe�Ԩ���cxP��_^,.]
*�9��ŗdz����9�l%S�����7�w�\~Q0
�[H�X��@�H��G��J�3�C���"�&�+�SiE��p�C���D%�g�_M����2�v��Qڱc���{W�p�����5�c�j��T�Y�r� cE\�D0~^��R���8:՘c�@��q�@�}ȯ6s�$��RY��K�&����n���i�Ν�V�܏ʛ�OR�H	$��+�g'񩬲"��0�u�cj�!���e�u���'|��
�����Q�T^t"ϽI/0��X>�dZ���Lf	X�PȲ#A�500�>�mll��?��]��#i7ۯ�"�'oE�K�H�>��{n��T�	~nψ��mص��\MƳ��8$����)�M�fQ��m�=O��J�VF�����$/nBF�s	@I<B]&P�M����Ef#N�T2gDҾ�����k�W��"PJ�P��B���n|lEyT=�`�����#^��	�>jjT���(z_�ź�0��/ҩ`��&Y� Ӄ"�Jg�@��Nđ肣8Kţ[�zd�-nt��ݹjJ�s5zr%�)��{���ŀ$⼄JBS�)}%�R�U����:�[	f�%%�tH��K;E�5Q�7>���<��KSϓ1�eg5Ύ�6	j�`"2�]�┇1�K{��FX�}�r�2Z:P�����R���͙jkŊYn�E�_+����'�+���å}�5�9k�ez����Fc��|�v�Ӣp5V��%�H���(%��m���c����hY���0Z�C����ߟ'�BZ�d��2H�6�)I��?��#G���~��#G(��Q��q400H�ֆb�4�V


�$�G��P�:��,ԡ"u�����%˗��I%�`\׃%˖� Q����pɊez|t�L�A�x����V�=��Zb.�9����iJ����@�=CQ�|ZY�Z%�tH�5֌A�.�b��4�j��K�c��7���1�޷��
.�(����(�0cxx�~��
Ҋ���Ҳ�Khl�>:Q�``h
.YB}�F�0c�F��2��k�>�T��ӈ���$��;]�q�h�`7e�f�̽��Thi5��zBC�}��O�R5�僇���Tr%��m������@�$;D�3Fb�ŵ���p���ذ�[�(����$���f>@']�V��M��{���\�P�*}}I`������u��0���x�>8�W5}�q��I��
8!����ׯ7o��O=1��1�i�ώ��L�>ێj-��EԘ��W��3�Y���g�
�{۷o�_|��_Ȇ���k��΢]�����ymYU���y�N�r-�_�'�$t�Y�������:�.ش��>��y�����ю{)2f��ә�ӑz@�6LOl�JuU%m�C}�Fk7G��v2�{�i����^u.���c}t�i�ɭ�Q=��h�o5��M�o�^����rF;w�2�pѭQJ� ټ�D7Ԁ��9��*�1!̂�L � ��r���6�Z�I�J�e<�{��µ��c�]*�N���DB�d�����ի��| @�\~�,��&5��`��1����pUV,�̋d��a)[��lCqٲe)D��C:���i��#��_��=�h�I�Қ5+i���f���%U��E4�d5�z��80Q�-�_Bg�6J��ph)�[�Ηѱ�N"���gw�4K����`�V��"}ذ��N_��N8�DJ�/��]��5��_}1��:�o�Ihن�i����L���g��ffN��\�"Zl� �E@��4��~r�?+�]����F�O~'�G11�4 ��&���H�e�,�V%�Iu?�Xן�@�Dv���Uj�op��C�����B�͗	ؗT���`���u�
�������ZzՖSi�;hǁa�`*���4rЀ��]/&�_�x�n��>��1C���/��%��$4R�pd��5��>J�4���oUP�r���$u�D��s�T5�_%5zn�Sd�S��G�O��C`�v��o^�n�\?Ƭ�m�o3}�T�"��+�lݔ�U~#MQ��N�ݬl���HU���1
���6���=Uj����@4S?Ō�(j����$RO�?SQ�q=��x��uXZ	"����jD#����m!���V�XB��P������T�k(o}Į����Yl��mt��������wb�,Bel�Lv�V�lv�0�4^��`�7���>d������Tb��9������@��!F2�)%�"�d�wV*x�\�Oob5_Q%�j�����ك���P���+o��%�Z�Zק'��uP�s�ڂ��Sm���Mǚ��GҳÉe����l�Sw�s�VZ	k��/�[H	<���#Z��8���T+%����0w`6�`U�m�޽��*5���45�$�R7q�| ���#O�e'�,gC�ČڳgOC��,M�G���6���K�! ��j
����Q�M�d��y�,6N����N��p�5%�獹�(�����Ԝ���]�ש�dD��$<�|L�%vcj�M�c!3��^~����{̺�.d��z�jڼy3
�R���y�\�bWRe�?��̲+W�ξ���$�ux�Ss�b-�P� 1��rl�T�S��l��{h�.٧$��ۆ
��[��
چD�6_@2��⫌(��}��y4:W%�l$�|')�Ԙk�E�s�]�aL�`>�.�S��є:+�SE�5�[��J�2O
��u�ʕv�Q�t�Z���ў��K�Xx@��8���m�&E�W9U�1�;���鼎z���)V"�1��
VRcJ�A���yO]���M��
(��&�Ʉ�����H摭�Qx@F����.@�k�pPQl��ED����*�є��B�u���pN��35F��X_�,0��-�Tb��&�Ҁ�@z`��Y��f���3��=�jC �ĆY5B|�<�n ��O`k�V���d��@J2
��y��u��e+[9�:"�B��j�<L�r�<�W�J��Įd?ܣKVK���X_�胳	u�~e�F%XR��Y��Y�D���l%��L$G��	;�K Qm����CgP���c�2%S���k//|��b	5Ʈ�)#�S�z����uL�;�l�(�V{�O�r—�O�$y��9�?�$#񭰳f�g��8_��tcS�P�=%�ݝ#ӠD�s��^\K�
��n���4,�v��/�@�J�([+i,3~�����T7r��^^@~ct zH� ��O����}�h*>DQc�����]��3$�ϙ%K�5;5��ս(�V�r��:��2��:3��-�
yiR��\���[O��X�L�΃Cj����Ɠ9J=��c`$ːϨ�_�hw������]���%p�Ht�蜅�^|ԅ/#� 
۔�gT��gVȄ�,��S�GԘ+��?�?���Se�\����i!R�J	e��L(�u^7��J/��\uj�병p��l��ooQ����>uW�IO�:5�����y*�	��$\J�����s )�Pz�FB�v�#ܕ����u~YFw%��<��y-{⼸�i�5x��L<#��9�����(LeZ�E#tJ�S��e��u
���JՖd�b�x�G��"�i#j�<�0p5����S��>j6�s�!�?�����r;�/g���*UJ'U!������KK
�I���	 ��}��c}�y�%H�8W��e�"�n޿�+qFyY,K���q�Q�愌����Z�B��81i&��8_P�v�B@��.�=I�PUaPc�D�$"�ʕ���2	n2�<�"�U>��9��S.j�(�����2$��V.�m���	$y��|�q�J�R��z�rU�m\�K<ex���YD�	����\V7�]$މTk�� ��6
�WL����8�w׵�$�`'�l2�NI�B/��/ք���<�/>�NS�Y4�]�N�q!�� (�ǻ�Đ��D�ȟ����%��cq3�%ld�<��H�;+���ʋ;Iː�o�?��3"j4|sF!�_N臬���T|�E�U����2n3�%v,Ad�j/M�3%ILA�<ӣ���`�@�7��$P���a"yv��o�Qk�J�>�_�d&<�����dzzw5DZ��M�èxݒ,�Q��@@́�e��t�h.�xL��2���kN�g�'��V%���d1�"��U���.4���{)�Pq�qq�Ӟ5�|��a=�`���Lz��N�^\>�����s��9�j$GE(#
�*�q���(%umv���w��@Kb��lZ�k��z+Tf�P:��J��e�
r�K��0���d"G^���_$ U q��s�u? �o	�_ES��&/�߷�P%����Z/��Q-���w��#4R��X�|����� �\N����EA�!օ-n����$�m��ͺ�@��[+�QoQbJ�[�Q�0 ��t^��Ę�"ګԘ���8�!q�X�	�q���ʗޅ�1�>�����u����]`ϧ0<�B�6������a���
� &�[����1:2r�9L떭���KH��J��e$�@��ɌT]s$�
�Ύ'6�A��L�(9p��"I�j�l�L�@O(�}��_'2�&�X��8|.�2f�rT]Ԃvf�	���]�ؙ<���{�����}�^��vS&��U���X1C?�S��Z�ꆊ��mX��V�z2^���b$�ؒ<fҖ�k�l$qS�^/�T�XCV���l�AH�.�R��I��a��^eϥ��D�f�J@~��D0�Q��g�LeNR���(�Zg^�w^��xN3.��ֳؼ��Ƴ�i�����ˆ��G/�e��
9�G�� ���1�ku�{����IϭV^[m�J�L�%'UA���P�H���!Sq�z��g01�t\�\�V�8��Մ��v^M��>Ƭ��h��,D��R�H�����Hhb+"4��8��ba�0�Vl�}pu�ϓ�3�M��p}�L2�&y������`��C#�h��ݤ
�T॥���zPnB�����˚�V�et�h�;��Y�|B�gh� d�3h�R�b2(Ѻ�	7I<`?5��r�ׂw5�%u= ���W��:�7uI��8x���<�
7 �!Fi@F���d0TR�k���+
�~
��gzk\������u-]�U��kto��>�@���O�Z�ϯ�g'>
���<̃�_w)O\�IEU3�U:�9��n�V���K�G��*X8��ey#vN@��e��ģ
r�ˌ��SmA��
@�
|�����(,�|�ν�,f��{���B�8�d��Pڪ���G��-���a��Ր�9`b����&VTzj
��yx>�Չ�WK��G�dI҆z��@���>�������(�"�|Q	�u� �T�E��3uUL�|I��.q���Wh*V���0-y
_F���l\���7nD�W�̤���#���݌a%��P�P�4l�>�x�����s2�ͻy����Yj�V�a��le+[����Xk�bV����7k󱐢*��J���j�e-_^)�+��e�"Q�o_���;f�Q��.g��yQ>PP���=�A�e+[o0�< iL���Z�`tO��J��=���>?��:�yTV�U�I(�$�'/���V�P3�D�V��PG���"��������yn�[=��I��˪KR40	�Ssꓬ�]<�0�Pe-�n���������2�o�ʶ0I+W3i�T����V�Q:
$�����*A��,�^���<"^���pd�kyv�VQ�G�ʶ0��t�D�q��q賓�Y���R-T�J$�@��oY�=�	�r>�"E�������(+�.��EIZ0��6�g�I�0���UK<@ �Bf��䯿N9�}�Ug��ҧ�V��le�}6�$D���<0є�eN�������\�KV^��,����PaI�)�>�q�-A�le[�$L����[�ɴdށ$��d�J4�'-T/Cz?��8��W�q�����V@R��V���L��������d��&�1��;#�'0�}&��$����U�t��<�V���L�����P���f-qc��/�(��:_�[�`E�U�t�ŔR��-|6RPZ��\� �0���%��I�X���ݘ�v�XE;�)�V��-0���*"^�TT�� i�UL|B�Z���@����2�@�V��&�
(Y��Ȍ��u���������+��RH��jsiL/[�Jf��y:��"�u{a�Yzɾ���Ė䩽�@i��c�Ǖ�le[،d:��wE�j�����(����o�@�V��6��<�h<��D�V�Pf����״A�+I������, *
�	%���le�MP) �,d&-걗\$�L��Z�����Ŷ�?�le+������.x���t�H��Ss�`'�x�揩
�p�5�s�V����2]p�s�ZFR0�c;�_M��d�eFe+[�6@L�v�3���LA�+��3�6e:����t�V3He+[�J��-0���z �����z��-��,�S������<g��g�$Tx۴iS�>�o��
��le+[���%h�4���le+[	�ٔ�墺le+[��6����le+[��6���0���Q����IEND�B`�assets/image/07-icon.png000064400000002550151327614500011020 0ustar00�PNG


IHDR%&C
R�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:79465FFBBDBB11E4836F80A8CCD3E4E0" xmpMM:InstanceID="xmp.iid:79465FFABDBB11E4836F80A8CCD3E4E0" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:70C56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>���IDATx�b���?�`, b��N@j��[q����>��AL@���A�@u��Q�j�~�l-�jNc�l�I�:�=5�Ё�������)E ��5��!ykB���|��0�DCGm%``H0�0Ծ�42�+���i@�A�aL䠬u6��@:�d��Qd9���"�A����^��"B(�/��QZ@<	�pEP|ަ
�+%��Vx�:j�9��v8��(`� �|ʡ]@�Eϐe��
�e@��&����pP-��L$�!�;�G��A�:��"�Qtw1u�
���A�8
�r@�M�#��'z:j��^f����S��(K�2���=�@V��j#2�a�S�������zu�`��	 ��|���	bIEND�B`�assets/image/03-bg.png000064400000011237151327614500010456 0ustar00�PNG


IHDR��΋btEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4CDF3D9CBCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4CDF3D9BBCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>24by�IDATx�읋R7���b����?Uy�<��"y�Tc����ճ=������-({Y�����s4����D���	��@.������
� b�_����~���0�_�8�կ���W����Å[��(�gE�V'�Wz���	6�s��
�p!�G�M�L�`{I���8�_�4d���Xs!|��[��������{��_7��b�{�)���S�.�����%��H�55L\t4Mܶ�B��V�?R��o�{�C��X/�0+(	�ˢ`����"���#�=���,J2l	�E�I������sGUg;�B�K���b�;zU�j�T�W��_>�ץ�)"�B����o�`�khΤ�ͥO�p!\�E����U����w�G��]����a��o��!�T�w1`���-.D�`Po�,�FS�㦿�`o�p!l��)y��M��*�u�B�k��s���>�a�U�.\`Q�}A�;�:�J�h0���:h�XR�N��}
�}�c0���rԢ�&I9�=�XVTö\����JG�[��g0���,�t䑓7.��k��m��ґ��Bw�+���%`��&X&ґcݱ/}��\���2��|���O��`��X�ґ�>��b��6\��`u&qX��l0��hV�ґ�[\����&	�ݧ#�B�k���&	����/�B��UHG$�ЭJG��f����,�ґ��y	��`y!	�5j/����W�����s����Z^JGVU���`�+��#;�j:���IG�ou*qX�ז�bp!Ɓ�t�QL�kj���#�iG{^
�L�҂��}��Fؿ7AJG���7�~'�I��OU��@�
��Һ���t�b;���������g^ K���?������B:b)�ln2�7����7j�}�?c�G>D��'*鈅�P��2�t1�<
l�F�㎀h�D)�pY�]�6J��2K`�y:�6,Z�,�JGZn�i�g�t�V�~�5�,�KGZn��Y�Zt�lw���UD�ݟ��#-��{J��3��:��,J�R����'?�X��%I�HͶ��;�)&=�謼~q	։�i�<�7�������
���,+Y�HM�$�О�Q�!�yֿ������z�0d�#y鈰/�������i���`�
Vr�5��G����&z����!��X�T�`�l�=2��� �N�<bM�u=�i�-X%��9����#S��u����q#V+p<
k��wHGd�h�~�~-k֚��M�`���#�v������$l��Z�'3�0R��I�����i�Zp���L�#�$
�oۉ��G�jX��A:"k���=�,D���{鈬�V��ת�fz*X�{鈬�HA�ZڽT��,d��{鈬��o��W
�*��J0HG��5�·��� ��T�t��|A��P6�b^�����
,HG��iӠ/�Z���=3/}"XO�7�m��A:"KZ�G�ӣ66"��2X%��̈́�#�6�6���iV��E�L�i��1�H�tY�v���%��]��vҮ~L�A:"^�.���6ҋ�kU�H�bNCk��tD��:��}uڗ3���X��0HG*�'c��?����+�!t:f�B�X�`Q�۸�LpQ�1�"`��T�OQ�%��<��FW�&dt��!�H'`]ؼƬ"�qk*�g���@:2�}�de_E���uf70�=+uHG�?x�}���sq�Y�`�Lu �֬�C��S�gR�Y�>f(�V�IGj�KS�W��5gS�i�X�рʹ�qL�#	��k��Mt���"VS��%���"SHGF�5���—�����b�72؏1ˀ�5�<����O�X��Ɨ��x���
m�b;��j�l�q�􌦂&ґ���Z�5Vk��.F.��]�s^���E�HF1�8?)Y�irґ��mG�^���R�I�u���'������}%�RQ�x����T��/���6�6|)\_Q�4�	����.�X^�A�޽{W�Qt�%��}���	�mJ7v�g��ڙ�ȝ�ຘ�S�F/I�2?j��eR�"Ҕ�@8El+>%��o��ɝ���ɛ��ۂ�)%9nx
fc�s��T��b/�.��Jp�T��%9>�z�����QJ���ҮG.�%#Қ�g*L[�&�=��Q�7�F�)�m�K;��;��`��E��@!�6�S
�1�$w�gO�����i�^������oaǙ�$�|b����	Cvf����AB�IJ���x�5{i��=?�!�-%�)/6<�<��ۋ0��&�-��
��(1r��޴�Z��[�.�^�U�0�c.���
��o?2��Z*ګ�
�>On���D�vJ`��b��}�;!`ۦŬ�(��b���K{V�J�Z[�A�H,^�K�:��lǸ���w�����+"=�����.�8�J��z�{].����.,�*PÝsI�r�?X^�K��W��F�$^��6%�eb`ym/\`t���V�hJ���\��W	2*d�>�rwJ���
�^:X�0���.L��4�g`yo/4\�S�)�y4XT;����.�F���i*����2�
_�`쥣�����Tt9ˀ͢�V��T�&x�j�	�KMt X��KGF��C!`t�ަ&��,�쥣�������yNd�"��W`o/%\�5&��ʋ>�}��(쥣��+4aR�%4a����.��`�\t��V��`Q����G_}ۓ��0`�9�&{�!���tp1`��SjhO,�u��BtV�����0��[s!�+J{��b�r�CU}|l+�l��u֚X}��9\X^-��,�MX�`Eo/�$\`�*=:'O�V�J�^:Y�J��g��S�67w!�lM��X��X��ŀ�w�T���	�I}%/B�m\��DF�o�	3��^��	\��&,���jB���4�0MXq�3���`����h�z�Lt	M�h����\�����lZ�z�C-��^p��b���.k�R�ҀKX!�49�o)Q�`/
���Uf��&���4�jXq�T��A|��\m6Pf��ױ�.a/
���ЄIM'�c=��Ҁ������%���`/
���T�A|��\V���d⃽4�
Y�^p���*_�o/���Ҁ�)`����ЄM��s��NN�G� >.�X�����RM���^p�
��=��Ҁ�w�r�=%ׄy!���4�
��)V�i��{i�`��@�FN⃽4�
0�⃽4�
0JQ�9a�B���{i�`e&����V;�Ҁ+*��0iA�F�^p�
��� >�K���չ���D�`/
����1J�	[f8j��`/
���D��t+�]�^:��;�;��ZL��[f����#�(�H�v��3\pW���2`�� �B���'���2dl CU+��~\�3`g�$;H�Y�Q��6����0ႋ5W���W���j���Wj�]�L��`�T�j��0���4�J0�
��.�AJ��\l�j�K�˥��\�����f��F�,���0KR
S����v����zlhC��Y��,�#��n�K>�q�_�����NZIEND�B`�assets/image/08-icon.png000064400000003404151327614500011020 0ustar00�PNG


IHDR'"�n��tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:79BCD959BDBB11E4836F80A8CCD3E4E0" xmpMM:InstanceID="xmp.iid:79BCD958BDBB11E4836F80A8CCD3E4E0" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:70C56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�|
4IDATx�̘MHTa��A�1H�Ea��`�+�T��#� �fmҌ��W.rS��FpaA�g"�"hY
�P�J-*rcAP�x��s���ہ�w�w����r666�x;^���l�pʡ�a?��_X�y�������u'`���;;���$܃k2h���
~�8��<��:����sA�21���rԍ��)�0��Ф��1!wbr%�`nW�D���3Pc�>�`�B�b�3���7G�[*��B��QƁ��Q�S��ͱ�6�>A9[R=��'���Xp���,�=Qe?�˪k�{��o�K�6l���M���A:��?�Q�v�:�gB��lc�~��zӚ�9��x��1'!�Aӕ�g�:�t9ٍ.�v�4��C�c<�B6�Io����չ:]p‰�ץ2W�ړ!���~y*s�a��Ùt��e�Ɯ0c^>\S��@k�inKy	���̃Q�M���r��8�;�����q7@������WI�)��<�punI�v�Q,.s6!�?���J����27�k�!u�R�S�̍�G�)$sM�u�c�~�K--.��Wjz��/)Jz`tg�k�����p��4�<MU��f:��+���p�~��Yxd��Y�~�u���Bjы��j�����k�[n����7��IN�k(��ގ9�������^�V<&����4l�W٠zV�M:����	�6�o�T��N�L�¸�X�*��Y	^�JੌNkjm
�j��bjR�T�Du���^|o�Ä#�����#|O8;�ャ&��v��cN�Dw��<'6sxh�O�M��g��IEND�B`�assets/image/01-icon.png000064400000003510151327614500011007 0ustar00�PNG


IHDR-(j�s)tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4B87FCD1BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4B87FCD0BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�c]�xIDATx�̘[HQ�gLNYDv��,��v5�,,"�
��P��z��S=u���ބ��]���A�d*Q�����VP��+���L��3{8g�Ͼ̞�o֬�{���-i�h�r��iYP�e�CiP�
������m������V���3��Q��A!�!���o��@��P�eȒ4���/�]�v�!�v�:e
:��H�h�������H�pY�R�B���<�3h�r�^yT3��^�}�P�	�w���[]��ꠝ�F�O�����I+Dyh�h���=}Y�͝eF�L�8(�>@9��}z������MzZ������
�W�J�@��cP��J?64[5C墝o���t��>b���J{�	h�
���F��m���dQ�ocr�0=VԻ����h�u�/tXԿ-����ws���A��l���ʒ���~˛;����* 蕢��ćxK�g`��c�f���]cZ�o3}XiW���bB1])�
���)A�-��s����H
�����W��w�X�o�+�xZ�>"F࡜�O}G��z�������.��5<[����ʌa)��ۭ5�i0�T�/*3��̓.��t8^Y�ԑ�����k�)U��=��;�0�)�@�<2�C�T��(��̣)ͽ�p�~�Ї���CT�fp�^1�I���i��g��.��������eQ><�C��s��������y��	��e3ęA��6CW\�D~N��� S�l���뜏��aX	f[�x�?�=�D�.�{�C�Gr7�G��i�c5�	�'��N��>�SJ����5��Z�{	�K	�1T�sqBA�x�R��+����A2X�IEND�B`�assets/image/video-yith-woocommerce-quick-view.jpg000064400000162546151327614500016334 0ustar00���JFIF��Adobed��C��C��:���	
��	!1"2AQBR#	�aq��b�3ӕ�V����rCS��T�U��6�W
Ⴂ��c�$4t�%uv�Gs�D�&��'����d5�Ff�7gw�X��Ee����(hx��	��_
"R!12B��AQa�br����#3S�qC�4Tt5����c�$Dѓ��s��%�U��d�Eeu�6f'7��?���<P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
@(��P
$���1��]���uR.{i��"yx�n�bܔ>hf��r1]㦻5�t�!6ɦ�s�����R�����r�7)uV�{˗��(�լ��j�����મ���V&�9p�ޟ�CgmUY���4��E�w
�t�AtU�!�Q��1MY����7��QgK��[���x���{��?�_h{WtD�~S��-/���W�.F�9ԍPRT���h��7EW��ӫ-�Q�ע�"��)N���L��NQ�X+�z]mJܦ"�5��X_�ޤ_��귔[�Z�6�ӖN�
&n훅��AM-�Jt\7P�.���}0�-e[dn3�ܒLޢ�����W�<=��=�i�/�=���"i?)˽�K�7������m#�e����艤��������b��	�!P��L-R�����M�''�MN��U9NW�t��{�}_8�y�[�ք^��Q(�fRuKV�٬��L�L��q��]$�B2a�+�@�?FY�1r�(�S�ѝ��)m�K�{�¯]����if������ɝ1i+`��P
@(��P�^�yu�1�bb$���T]^RmۢS���)y�' ���5��d��՜���
Xe�^V�I�2�3D�Fmȓ�O%��]H<nc�Ȕr��"}�y%PO�]3ffWs�x�j��d�OEU[Ƙ�{�iϹϳ��V?x^�s���h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���G������1=�=�{��A��h>�M/4{�iϹϳ��S��\��v��1���Ky{�|ycא�:J�e���t���.c$�Us�G�c���kn�y��	��ں�b�='�^��S�h�@(��P
@(��P
@(���+=`��P����lgQ��\80�X�	x�Z���ka�4��%J��~s�1Ox�a�֫�i�
�Y��@B�q��4�P��ǥ�1~N�lkE�X�vj�H���A%䴥���d��t����|X�����)~��.����7DGE�|����͛gɭ:x�Լ�o��-v����-�I��y�i���CCv:_�L��!$���/��DV��la7�p`��^��k^�"�Uٔ���]�\?��֟��7�$Z'�VU���k6�"���S\]*m�%�\�UA��X����X��N�vM$�6k��խ_�[o8�-}�b���Ji���3/�R����/��,��,x�lf㐒R1�m���'���,�M0*�DI�9��B�@qҫqc_SU��e�l�0��G{g�e�e���ޖ�v
�_[�[P�w��{��X�!�Y��?"��d\��訒eT2d��Sw3k���Ѩ��Y�]%��c:�h,��T��h������ߊ`��s�eR�B"b%u�X�r�"$���D�RP�ؘ�&��X�Vs�j���]R�r�|�g�[J��c�C���G�z�nG� r�W,�k����&��4�J�>R�
�[�]=[Y;��,�l��P
@(��P
������_A%hbE����m�!���̜4�`E��SlWfD��LS�k��:a�&^Q{:��ˋ=u��w�m�fp���&��>�J٪-)��4ʲ��K�6nw蘒i��9>�P���h�(���E$zF�#����D2ي^a�Xp���v�9�q���}���g��:�B;5)٥�\��Z�ssIļ��W�]���SP�-�H�1s��S���K��5��-���ֻq_
L�*7�Am�_H�Үt�ɪp������-�_	��-�OX�f����ʤ.�OK@[�q�Z�p���`��3LɸWjT���tJ^Q�9�,�����I�>O���<bv:�%��%�k�T���SWNZ�3f�ff���ee���%e����.&�h\f�*F8h
dz:M�Jo�h�QE:/G)�����*���!���E��e��[_G�-iV���i�����j�^�;�dE���,��
v��S*�83zf�:�{�Y�(��f�2X|�@t�H3���c@q�b�����/�P�������%���?���%�b���y-��(@������t��B��qC���n���;w�/�{?��M�Lg�S���ޘϭ�K�4P=���rJ_�c@J����alH�
cf�$�O�'&*���FO&�
������"bg!����;�f�0K�̠����(Fo��|�ћ��/@_2�tf�0K�̠����(Fo��|�ћ��/@_2�tf�0K�̠����(Fo��|�f�Q9�K)@Lqٓ�'�rs$V�S3Θ���@I�$(.�B<ÜSsh:@(��P�PM��s6D�"-�	�R!x
TёrR��d���f�^��av�������! (��P
@(��P
@(����[���ΦD�i�B��r��;a3�D���vSTmT�Y����8��'g�к�ܚ��I�Wf��׼%�{�j��-�����7�D���Z@�T�Es�J�)��Q�j<y�F��{5V����*�4�s��Qs�]�ƣHjf��m���oO� ��9��(<+pY,E��ڪL+]�ՠ��G�������)Zb��W=|���հ�b��N�}!6VU��V��U�#�|�T��7E(o�5nY���]�1?����ս��Z����M�Sr��Z���ʔ�o:>;>��D���_�>����J������˱��k���ܩ�c��l\���=�<C�o {��j��2f4Z��Wd|*H�4�K�:b^pR��Z�Q:��6���;KF��:�IOŸɘ�p��-̚&.�U�F��U����9�����|�j�}럦�m���mҽ�����Jwr�q�|5�w�!�EK)���%���/c�"��Q���3�B�&����2�66��J�,�3UH�7�,�5��N�֤Ͷ��3��ҭ��P^'���K��$��uV�^�'in��p�^KP,m��P
@(���C��n)�!$"\�*'R�qO��g'��q7~�g��VL��VE@�t�o�MB��)ɳ=s�Qdu���v�Vu��ΣѹN+J�޲�H3#D��Ven�9��n�O�I"<)J�:)%D�ܗ�^�_�����\���F�6q��N
q�\p8">�/i>�Կ\U�N
]R��$��X�wKC�%G��34��
�r:EF�uK�T@EB�
�K鞤H��+<Fլq*)qeW5�UU�M��l�!4I�ekF��0��
�{U��DHD���p�/
��oF��~N�%�O;��MUK�P�b�sa��U\@~X�,�aǐ947�s=�c�8����f$h�3�a�@rp���W�=�8u1�|tA�������Dv�ìx��9�����PD\���?��U1�?�@z��
�B��1��b�
�T��"M]���f�b�˛��>~]��S(B8L�&K�pvϷ�s(
g!��<���o�m�n��6�d7[ᇛ@2���͠
�a����|0�hCu�y�!��<���o�m�n��6��`����N��y\h�Wi�2�R�2�r�
�Q����c�`�9{�}��3?��@6+��;=د�3���b�����
��3?��@6+��;=د�3���b������@B�@C�x����|l+�����=����촼T)��I
@(��P
@(��P
@^MOt�6{M����_���y;h�y�}�0���7X�kU�*'���kZ���\+xN�K*�����T5��y�V�Z쌡�ɉ6{V�L@�9c�c�hDN��(ڽK�Lx�#ʰ���7�t�:��V>W��j��:Ԕ.yW�M���ÝU�g"�k�!�6�.���nrf/�*~�ۤ�Ȝ^	�X���֔}jgR�x���1�ɒf�I�g,^6t�N�x�f�&�oY
�q*��C���f�\C�Z�•���!��5'���GX�U���B��.��9����o]w����۱B]��s<�d���"�x�"��U��<��nvk�6�U�[�X��^T�k�!�'y��Y[�+^��*�Qb̳����Y��H4K�S�F�Qf���b��9��r��Jm�k+
C��f�Y���d{�*���|Eh.�v%����|���A�(=Q�W�2���]dv�6�(b�9�f.��˖�����<2͢�J��׼p�D��npx��EA�{��Z�l�1`��y&��}.�1���P����9�MGh�S2�*[f�\�-��k�]u���Ž��b��U3�xY�L�8�!��
�H�V��7q*f6u�g9C�{�OC7�bԄ~��甧R�R�s���X�����P
@(��P���jp�6�~�Qد�~p���_�_,�<���NI:E�&�\8\�4�/7�۩�);:� <�bk&���IBD�Q䘊1N�:�4��1����c@J�����N& �
�Q/	�נ)���*
�J�M�j(T�YU�716͐*�\����O@I�o8)ӝ(���D���M�b��"�(��L���)�
�9�O[�P��`��/(�Ϗ
h��W<�O��8(��g�ˏ���(zY�2���ر-�ː���>*$�-8?l8����(��qt�n4���u(	�0��)�J\ ��&�B37.<����(c�\������J`�����.q����E����>Or��:�ڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����tڳ?����t��M CS�����w�ea��N~H��[z�]���}�i�j^*-d$���P
@(��P
@(�.�-���ai�
��勇;�k�����x��s���ȱ��;�B7r�q1�d��ֻ�y��O���WK���jjj�
Yf���	Y[�Rd���*�-Ն����PR�L�}���l=��Cn~Q��.����^C��5���O���_�O��~�k�����o4���y|�C�,�ʩ���ֈ��v����Y�:eo+aD��ίF@ֶDv��/:�%ΝKyŐ��
���z�_�NIa�w�޺}�Y���/�1�edL^�۸���U�J�V�s��*���a�J�=4)B��?�zh��֜��y̽�r�����ܰ���R�|���tG1���$,�d�#S0��\:#iHu���?-*�u�K�(�j�~�:v)u����K^�"Ԧ̌�/�����)L���?�_�]���Ye��NCy�ܛC�,�ʩ����
NQm�UTK�	)vک���1���3��d��^Cy�5{E�,�ʫ��N^�Ƕtba�a�Z���Gn�p�͒�NS����\�^V]�ȻU�RrR�R���CW3�OU͛��Z�Mm�nw�U��e$E��P
@(�:��U
v d�je���\��,è�S�8q�m�ܹ?��Y���lJ]��v���w�B$�n��(����C���Sl�N�,ًʮx�c�j����;��4񛢳P���#6n�t>S6J�±@�t�q(�� b���e6b8�
Y�ݲ��.��V9���B�6ꜽ�hq�h
N�<�Sw�$JrmW�MTStBH�ܽ5�H2H�tA�S�.r�@Aّ/Lɾmm�g+p:E�&	�1<���I&�A
�˩�(��D(
��&��jlkE--�d���3����X�I(!�v������ۛ�TI���nx7��M3�Z:yg�fF�ԘJ#���Ԉ���sP)���2���-M�M�^��c�&-���y���e��	4���}���vs<`��ˑ%
��� 
a//���Mg+�;���8�۳/+�Q\1�ò�=�)���.>

�Iu�I�]S��Dӧ>�2^�m�l�s	E���rS�	L��S�oҐ��\X�Ddx�]^�[�����\����h	�w�8p����`8p�d��?�@G�N���(p�(h��P
@(��P
@(��P=՟��Կ������u�ޢ�x��`�tZ}����Y	1@(��P
@(��P
@(������R�Y.�"N��U%��6��PL��#���Tg-�]f�	̞�m�qT�L��n�Ij�2��-�;�ĭ��p���)��_
b��0(��P
@(�S
�M����!Hǩakkͩ��t}�vF�2m$���F�o�t�!��c�I)8��Լ���j���4�nni&N���Uy��������F�����i�l*X��撥�#Z>|r�z���Z�W�U�ET�-��3�Z���e���֤�3M�n�f�>��J�&���]gZ���H\�p<�w-z����t-�P0��2
V
�@f�Rۻ~O���JL�7���mk�
	*�ٷ�s��|���4T񮖽fA#R�$�`(\s7(�T��
6�M�7n�r��iv��<s+9
o����t�Y��t��roȚD�E�:P�C�l��-o��*�x]�-KߗB���hGк{p��i�K�"f�G#��6/�!���I����XuA�+��|V�ʥo-���10͇�Lc�\�)S�}8p~�t�=|*��-��;���]ݷ�Y,G���9��b8����(\����g�d�3��"Z7�����s�Z5&�03
��׷��[�*�ò�ү�e�9��ع�fWL%d�j��j}��	�.8�^೙l�CZI2�< �gPm�G���Wz�7&��w��}�t�Ɠc���d�Sf���;

)&�Q8T]���a�r��U�a�c~�x)w!פ�8��6zoq�*�.�pw$���*9<,Z
Y2N�PsW�NTp��6 h{�n�=-y��6�y�& ��{�׀��q&�*)ƅ�qEX�a�"A�$c]�q)d��-
�/Z��Zz-{Ni���&�e�6��cp�W��Ժ!��f�a&�6R
��1ɁT ��"QN���S�It�����Y[^GV�
���+�M��iYx�5[�����L@):�F�5C�s��㷵g�2�>��:�F�0Oƒ���wW<�6�߭5���Y<(�E�>�uw�W��nԝ;#4���]�7��PZ�~��'df��j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3G�����_������;#4j.�����-_�zk�3Lv���3R��rO��$�.�H�"�E��������,�<Me*�T93�Lnuu��E��!�7��f��.�����P
@(��P
@(��P
@(��P
@(��PLl*�;!�n:Gp�cԁ��c��Zc�L_�L�ip����L*�?�<�o#������f1����P���@����j��nѥ�&��4�B�7!BEdPwqݓ��ҵ㎹Č���R1�A>s��d�?A����˺�[wV7�{z�zC��!a*��ۻi���6�
]j܋c���A8���	U+�ݓ�
���	ܟ��`0��SXl�+fH��di�RA)�3�ś6&��h��y��+PtF��20�8@��o�#~�	����ͣ�>�B�ݲa]�_���֨9Dsle!����qg� �ܤ��9xD#�i���M���|9e�7��GW5�Usґ��o	5,ص����X��@�����&�ˍS�*:��)�T퐾M2���o�T�R��-2�����PL�&�-�f��̭�;����]��F�O��,n���3���nx���Qυ;te���%w�Ӹ�E%t�yf�$NЙSٰ�S��Ո�jF�	�X� Q3U
P �v��*�q
ꗃ�7�A��:�$f슭�.���MH�%L�������l�)�?�H��M�%L��q�0���~�Y�%�6��[h�K�����B�v���M��gN�6�i�V#�nU�DH`Ar��|�FA��Z?&�y��7&�hj���g2/�x�������θ�U,�����k`V� ��u���!�!�v��rSc�O�T�)������G�^�=��P
@(��P
@(��P
@(�'�2�l�jY�ak�j}��`�sZ�����QY�!@(��P
@(��P
@(��P
@(��P
@(�(s��U7�[������q�,Yn>|_�����-S1�N!���j��^I�[s��?�fG���!�o�_W�i�a�4f�~�ߗ^�cWsi،�_��́F�w��L�c�d�@AWK5k����p�5�.ᛣx/t	Ν�]�
bZ�Q�qj��^o�x_.��.���W۴��3x��K��DJP�Pn����|��[�+�ss�'��5�.�^Bܻ����[1��$�i�7;+�f�Ĥ�f<a�CF/:/B�Ǭ�-LխG�;����[��Tu�z���{^��WM�.�1��J9x�H�D����	��J�e)

|eJ 
�> t3�Sbu�����%��p��9e��I@@3��.�:�=:KL�&��6R�У���	�g=P��5@ž(d�%����U\�c	S!�~cjR�n,��N��JC����N�6&��(�6�v�G�.ڔ��'?>�n�]6���Pr�<������8����;���n��ϔ�Sg�nJ\���r�����(nC�����K��5`]�խ���U��p�yg��n��Ԑu`�b�[Kn����33�z��R�.ː�7�c�úO�MV��.��C��l��h5�&z���8��W#�T�9ˣ�k7+2XT��ζ�S�������:������hGZZ��H\z��"m��
L��B{GX���o��e/�-��߲u���I�w)':��4�#��S0򭖏����YF�1���E�	.Q:K"��J�Jb���[¤1_�ʡ�rbS�CmP���9��1y�@D�Q(�\��G9x
�6S���#�ي]�b'L�3v�)�W���Mb�P��9&.b�D���R�0�R�0󲔥����=�IKfR	�l���џ��;�
Ɇ<��l8~
M�(d�T��ژ�>l�͓?��=�s;l��X��Nb+��c'�˛��~ƀ�4��T��йLc�)ss=0�l��A(�W!�0*L9&�)Uɴ���H���&r��@�6b��LZ��
a�/R��:Z@� �0Ý�g��J�:Ɲ]ֲ+8E�c��Se�'!9F!6|�P:kL�'HDL|�@�!�e��(�0(�D\(�1O�!��b���"Jb��9G1LR	L^i�l9\T4�P
bO�e��ٷ�Գ�������|���-/
��B�P
@(��P
@(��P
@(��P
@(��P
��vJvHEO�?�bJ�W|^UZbh�u���p�e[�����W�}��4���ћ�u�YE�I���WK�X��\����
f��")��`�W0C⻺�w߸�ݶhF6�y����ӝ9�'���JVմ�����h9����r�V�Z5M3L��tɓ�򹟈Ã��߬D�!�:IT^�����^k�wCtI���CJ�v�VV2��U#�fgu�ص_�[�Y����s�jl��.�D�l�r�����C��q1��$��
S	
Ə ��
�I�H�L�&@L�1r�nq���5PE/X<�͠93d��Q$��6&.<��/�:��hq�H�{<
��l���M
d`�ڑ�e9x������m���h*vT*{��T�*e1Ą&R�0r���a&  b��y8rM�P ٸ����ٗ0f�Nʀ��9N���`*|�Ir���?c@pFh R�$HP/e�eL96Y̡�:����U�Bk�@ PK0&B�L���ų�O�J�$��"Blsl�!�e���f�.��뮰nϪ����F�\za�6,�r���k�r�/!�GI�����lc7}�%�>j��p���f�=���3�Y�i�K�ӳ��䱚�fvή�F Q�RG����
*�@�E����v��F�G/�P�?�!�A�yn�[��d2g�m����魿�)o#nF�S����lT�WZ��7���U�[&
��	��~4q��셳��YM�"r.���b�h�+TH�.Q)�0���J��A���dz��̼�Vn!��=�
��GH?;�6?V��HB�d)(sHB�(p�c�P�  !���<�ǣ6���l�ɔ�<�^O3�5��j!�["%�K�\��I?KL�� 	���y�!@w�<��aSl-��fډs)���h�fЃ�Z���r�ʷl^@��U�E���r�J)�w3Smr��Y��7o@{��L�"d"d/HB�)K�K��@0	M��<eyUk.R���]��������d-[�J�_�1޲��j	N�d1��f'.l���1�:f�A� �`��������c�Eo�9����N?L�=JR��!
!C)Jҗ�/T(h��,���G��o��g]��ѩ�����}�k�Z^*Ef$���P
@(��P
@(��P
@(��P
@(�80�H��X�9��p�=b֏P�,~?�ձ14I2���6��L
�nٻ��oi��u������C��RF�0!�n�r�K��lC7]�倇1 |�9Ĥ6��E߃>�򕕻�׎Ji�z��f1܁���e�>�x9�]����d=�dC=�u?R���k��N4�/]J��,
� dX��\�EŶE�O�nQ�v�V��� x�![�k���އQaԄ>��?9����]>-U�3%�^�\+��Eǫ���S��6�]싱p)r�l�8.f�.��܊-5�����F�u!�NF㑍f��d2dv��P��xcI�5D�U�R��1�ܝR���6ܷW�4=�D݁���0a�q)�3H�ěX�#�-:��{�O5n��>{-ǜ)��3�?�i�ɻ��1�D�֩D�;"�n��5|�2���V�rDw}xc`!��Ŀ�����d�+�S)����2�;kp�R�n�9	�d�B07%��Z�����’�]ηôx��>�L��UO)M���L�r��/,�I`[��]����xu�7[���9��7H�t�c4��k"�{�.���f���E���r@�i��ZҚf14UNI��\��l�Ԥ���w"���w��=�M�ke/'��@
��}%�i��k@�����'4��b�L�Ҕ�*��2C|�^����Lq����x�>5��4�w:��+[s
[&9�QR��on��<8�$�[��*m7Н�[P,�V��"��G����ͼm��2rޞ�\�H0x��C�r�1MT�d�)�ck�R7:��o�#<#{��cjݮ�N7��v�buv�I�q�n ّ:�e$���%�s�Q
�X�;s�@�9��P����X�����{)(mC��ją+(��]r���E�Y�I���
��&S�4�o0S�92�a�V�47>�Sᆋ��o�{���p�[,
�u��p��:�p�"���8�~=��F�[��&�nK���е,&m����)*�ηôF�q�c0�ê?�k���|;G��3���U}{�~��*�ηô?�e���ݳ��ITnu�����/�_^퟾jJ�s����gY���l��RU�o�h~#:�W׻g���|;C��_�*���?|ԕF�[���β�U���椪7:��Fu��
��v��5%Q��v��3���U}{�~��*�ηô?�e���ݳ��ITnu�����/�_^퟾jJ�s����gY���l��RU�o�h~#:�W׻g���|;C��_�*���?|ԕF�[���β�U���椪7:����3���C+��礰�#�-��Ԯ���g�zl���q7k�$��7�9l��h�W�'E;�3f19�H�0�@Yr�`R�pB�jR�9H_�'W�(
�Y?q���f�Rλ_�S��=����촼T*��I
@(��P
@(��P
@(��P
@(��P
@y(?
��)� V>���ձ1�$�u8����"`h�G
q����&������:���}�6֭�!�e%"�
��ЅVBB�r�l�S�7Fiɀ��N0�&r�SA���T�/o�/ڬS�]t*Q���w{/���C���_�]�V%�u��cB.32��X�7�M��ɼem(�kcERr���
�����.A<p�h&:.ޣZMI�j��\��'���KZ����<2S���e�,~,���D���=^.�5�CX�o��}N��6{�����fۀ�@�z������#��@PÃ��=n�@y�@&8pa�>?S�4�g� _���
Zy@�9\CǛ+ɠ;�X@suz���x��0��!�@Nz�+�4�%��p��p��8����e� 8�u��J� <z�|ˌp����P[�xc��Ǫ���_���u��֍:t)�ZK,�q�M��J���4D�mb昀�G)������Y�P>����}�w}��b�4��Yl���e
����l�货�H�*RQ/�e!�"�Ha�>���vss���
#|/�U;�M����8��:UB�4Ր�Q��	JR��j�
b;Ǹ��]@�+V+㗇����PCuC�G��

ۺ�{�����s�n�f[��,�z��Wf���.�M��cg �3�pI8�2ﱘ�L�]%��i+S?+���ʞ�.L��€P
@(��P
@(G)�K)��P))�9<��Š5S�.7f������z���{N�Q�o��SFJ#ݜr�v?�� P��߱�$�l�6���_�m�o����=����?�-/
���b�P
@(��v�]��j�w*��H"e��^y�$C�W3HQ�W�L;�5��W�羥V�
#���r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xf��J��ԩ44����r�xݲ�\Ƴ�d��gAU���P̓�R9��W�D��ME�Sb�>e�E�B��y.���;���z��i©�f�V��.��ڈ���z�vozD�:3�����3�AR���.S"�e)��(�+[
���'��v?��ֽg�K��^i�Y��*I��k)6��PMr���s�7�)�����=����Xӿ��uRo�zL��pP�G��U#���=bX���o�V���$����
�&���G��rշ�߃I�VI��m�]H�wM��+]-��h�m��Q��7�PX���S5�s[SF/�>2�!�X=xz��}���A�<oɽE��f躩��8��i��H�?�R1gp�%JN�MZl��{��ۑ�G(�8ԗ\�aF�kU�u��+���b7�l�r�gG�
��k����Q/=^�'ڧ�s��k�Q.����̵�p�1��xr�4H��&ș��L@)
��R��� �I��}$�Jҍ(d���C�
^C��u9>��� �߃�>�_��c�w8���P�n�S+�ٔ~I�|���([����y�6��
���P&��l5g\�kJedE�jn�iޟH���������ng��D�B��r�`�(���_�*�ZF�=뤮ރh
]���Eu���Bg,��@';eψ6p�!Ġk�?�~m9i>!�|tX�h������P�9�������P.@�p�@LH�!��T<��@����@B*� <|o̠$��u�à(������pp�K��f���@o�[������x�	,�XQ�ŧB�Q!�.1�F%(%"^���p��n�e��� l��W��z߻��nF��C��Wbgl�gRzp�F���	҆j����;$��)͈���S��p���e�i!m���:Y��4�K��N@b]��6L:�<���@"-���d��)L\�"�RSR;��ܚ�t��^�nfwR:EuC_�Fdy^���ZI��X�l�?�n.�Ǭ�F�td]���N
�*ĭ{�w��
�á��v�3�B�a��V}��սbݗu�t�Z���v��Z�:�:L@�YR���e�'��+�Lu�R�֫wLfn�Wr��Q�{�ŵ���
�Oov���.9)C(�и�ƓJ9f�39��(^Q�����y��d���wzeg]�E9~���er�Q�[>������n9��U��r�n7�
,�;fd2fٔ	f�[����W��\�}���c4��Ԉ��Ͱn�4j������4�14��{SC�圳e�ɬb�1��X-�,[^c{��w�ʒ���p:�������U�HH��ӧ���Պ�œ��9����e)��Z/�[@�{F+y-$3��k,���z�:��w��vڒM�ԉec�<�����t��m�6�5���Jf�e��*��z��큺��.-1І��aH^WF��\|���hK�ۖ��;!\�W.��\��Ғ��0�pT�p�.P2u[�P�OFm�Eԥ ��v��O#�[��ݱ��=#o�E��_��ut��'2�w{%��E2��R��du��P
@(
Q�F~봇��el�4Sӗ�����PP�>�-_��'ڶ��[}�x���s�}����MY	!@(��P
2�DI!V�\S ��v�)�%����
�5�s��j/�_��>ٳ�l���f�E(��P
@(��P
@(���K�:����
�V
睖�!�].ɤ�Y�U��9~�.�b�$����2��;D�,ճ�(,��Qj7�?�l��M^�s0gp�FM�25gk�dT�ւ�MR��vm[V�9�՞R��L��)�E�eIx��Y��j�_4�K.bm�n]9�.Ձ�_lc>T\�:�N��r���뙸}#�VU���²�DL�噝����Y.�g�,��F�T&dVL��Β�"��u���GZ�2���5iy��ڶ&6�(\�|>!�L
H�~.�"k�O�_�o�=-8�cQ��������
�6{��::Y��_�vJ���pj��tB�$CS�9C\F��aJ��̶��[x�k�K�=�n���ۉ��ʞ�	{�Xt�r{^PMn�4Cm]����7:�y�r�ȉ�KH�հWU�|S�r�8�.l:�E�X��r7��Kc�d���猫���۞	�s���ڿ���D�LO�O��L[m
�o��Ybr�G�9�Upf�<I�W���0c��P�`+�XJ"?�����$�
ex���P�Y�@7\x�<�񂀹{��㾎����@���U�2�Š?B9�K�Nݹa��~m��٘9�
eb%���d]0��|���3r���$�C�p�>b< ��8Nj��$�w|���A��8WK.	%�7dXi�󁫠�,���U�B~Vֻ!�훖����z~=�D�<�E���H�[�b��%HS�C���Jq.
`#�W>�W�@\ة����캜X�_1��y\xya@T힔��q�������>U"��h
NA�9�8�]^��@P�
��_�@@[w4��v�Wũ �E�g�=�(߁h��oR�ힵ!���p
� �mT�����OuI�&O-�Y�Z���P�&���xZ΀�r�$L�O#�
&��>���'��o#��(�[�~�w";wք�R��dW0󗐵d��� 
���@bK
�>�'�*]7җv�rV�L�d�n:�:�F�[tAԻ$P�6�t��˲�%����uv�6�j��:�2�����dn�Ĕ��+r+t-��K��͌�H\�3D��6c�3��MЮ����d,�����fU�������։u1t�kqDf��@<u��$C�x�r�S8R�h�3���rw�a[�����K�q�n��@�JC���9�NFD��\�q�G����g@P����|M�r�/nW���zҕ�ct��Ի�n̲�9d�@�6�Z�v��A�IǮ�g�cH�J�DKɠ*=>ݪ�ӫᖣ4��r�S�T�&�/����{������j��Y�[q��@M�	�2�QEP�J�u�P55֫��띓u��Zٸ��ۍkk7rG��2m���FFT�-uJ�H���B���[sm@��$�,"XV���@�/I�q��cL̞䙵/96�b^>b�UY'K���,��q�52@V�t��zk�~��zc�QתQ�i����nJL7amE�J�m�9�6�ݱM��l�51VS[lQ���P�t�=i��}8{��^�opJA\�5�uQ%�~ܖ�FV��x7,��L(l�I=��&���t�P
@(�5G������핳@h�ON_�ۿ��@q@l����p�j�W]m�z]�����i�j^"�5d$���P
@(�����-�5Fb'�'���|�f�D�8��P
@(��P
@(����+
��(����Ȼ�3>�&�-ʡ���.݃�dt��NN�=W��g!��U�J�9��x�,ҷ�����
Y��t��KK,e�D���r2J!��ҌN}K�Tj�Nv���ڽ�QN����)x\�[磑(�:)�HRl��R\7Ie��ؙ&ݪ���?e����4�;��g�"�v*�u�"�tzR~��tP:k����*?3�)��N�l]���R�p"a�< =�[ĝ�����*Ț�@7d�U�(���=��vكm�*.��ňݫd/	�p��)J"a
�1�
j�B-���;o���Wa�Z?j[3��t�d��j�nk��t�!"w�i7��.u�n�b�F�H�V1<B�^^T���1���;Y ~W��k���k��8Tu[Tn˦%'9��֪�J���9|�N�jŊ`< �pᮎ�j�!ԆO�=�����;hq�=^�r���T<y�|����ֆ'���y'%��ֿ9�����=l�5D	��9?֞���o����o���y�c�E��%(q�������K<�K��x|]J���;��t����V�D<ڹh�����5����wM���yw�
���Xt[c[-&
B�i�K+(۱��٭�m"p(tGg#��
�����~��5�:�w��A����Dm=f�鏴�� g;fl��\�]
�A�<MJc$E�ȱ���7�e��;-�X	�Z���R�>�@�³hH��w��b�m�;Y5zQ��!���q�$ҙW��_�e����E��ʷe�E�Iv�v�teK�e�Y��en��P������?qC<.f�1Ov�X�h�͑BvE6�FK��WXx�]Z�'ȸ��ƀ�0�p|��"|� =_��Z�����oG���_����F����kJ�6�j��I<ڼһ՝�o ���+WQ93�L��6at[�*!�RH3s�@b?��H	okf�kk��mH�%,�âL{�O$Qv��Àcҟ�ݨ7O�%�$q�:sx����f�!�W\�n�bBt��%�Ӄl�6��Ʊ:���aY��(E��F�R��$��P-ZY�rsV�QT}UKO��Hҽs�J�U�j�&@��C,aE����ʉW3}����;cz�	���q��=�v}�7���CW�4�ws��p�t�DJ5�
�;B�}�J�̅rD̆.��!1�@1
��H��P�B�!�`'��(PF��P
@(��P
@j��3�]�?�7��+f�Ѣ����GZ���
��!j�6�>ն������=�����ԼE*j�I
@(��P�����Z?�j��O��Nm?��� �:�8q@(7�jff>N-��3Qv�u���Aet��@��4n���N9�f)��9�O�cW?�=UeI�W'8����o0닺6���ޢ�j�'jԚ]NczF�����xU3UKhk����0NPf�j�-8ed�r$ʓ�n1����ڏ��n�,�O���ߔ{��4��[tk�ug�KO\�jua����*��˅]�<r����E��{�Y)2���]횲2o�ԍܝ�l��&ĥO)sV����[�u�xet�-i�,(�6�ZT�5&�V|ɦY[&F��4Zh�6���d�[VF�14�!��j�6�p]�W
�<$p��eJ^F�6R��G�R�^�����ۛ<�F���hܲ/s/�U��ԙW���+`��J_1ssvU�l��㘵���%�c�����D�k#Әw�zՓSj�N�93���eVY�U��I�=d��������z���R&���P�����-�⿾���?�oV~���l��5@Ž�yl?�����z���N�g�:-��bm�w�D�Soqx5kU���t�?g�A�1oo�c�ݫ}�a��z��-:E���(�v-��v.���1&�+:�z�o��*�"���T���om�c��ɾ���X�o`��l��5��om�a��o��q��5[�:t�?g�A��[�s�~,��~���V��&���P{����8�Y7�������Ӥ�{>j�wb�۞��2=��|��tY
x����Y��w�e��gt����tyFV��mvJ�?eSW��ؿUs�f��Q:��Զo`�֖6��l��V�<h�Ld4o6��)�C%��C�ɗ�j֭}cn�կA*wN�kԽ��i+T��;�E=TӽvmMI�����/za~�m�jy��xg���S�Y��5M婨�Y��юz�����jRte[��s�P���O
��R��}�gIZ�T~4�J���*��	Aje��Tc��T1�*n�d߁6*r��+~��͘�-��0�R�1|�bvPi5�{��3�%���xQ�0�i��v�{���L���E����H�#�\�3��n�[�JQ7q�5W�=T�2���G�ZXE��8�8�f��)�.:���x5����������$Y�ά�a�1.ژ3��U!�B�`P�=u^���<���1Z��<#�s�����y?�k�=�`Y-r=���>Dy��pi�^I�����,�}���O��P矛��r�:��#��x?��6��&O�����
���� ,�Ơ�i��|]Z����=;��v�[���6�Y�@~�T�P�T��Mu�¸�W�[_R4��bh�μa��@ʵ�UR�_$�er��dY��ʻg	�T�ESo[�~M�}߉qj��6���빛��F\U��V�.']Ul{�d�%��x�(�
�u�L�*�A\��T��a\D}o_:}m�Q�a#=m�+�N�(d�T��{�ːHr��B��c	�GV���[S��)�9��#��s"�����M�����^��ߤ�\��1QR㖲$2�/�\�\��"�3�p7�X�
����^���€�R>b��x�]a�!��0�//��GH'�c�Ԡ(����?P(
�x
�K3~�y���V����1͂j�@��PY8(p�A���2h�Ìh
�xu4��^�oہ�iv�ٗ	ݔ�*!p�)c�n&�Pu'q�1��H�Ƒd&��Fm�2 �"l; 祘�1Ӆ�Gc�	
��׭fz�2�s/�5��k���'���ڜ�‚��VG���V2��"kQ[1z<YTʩ�D����X��ĜI�`�k�/�g~���k�t��L�t�9���n�
T���k�&QD���j�]�<ۢ�2�]�����ଆS���P
@(��P
T~���!�A���[4���}��:��lϹW��	���u��G��!�?��f��)SVBHP
@(������/"��Tf'�~�p�i���i�IÊ@cv���Ӕ�@��ޙb�i�����ٝw(��Қ�}=��qf��V�f�W���9O�/5jr�~��]�Y&�$��ʶE���d�ӂ����8@��/�jR���93&nI���d>έgJ�����wfY]�r��?H���Y[��iZW�r��>�gr�G�+ t$$'�"�����md\�	7�4��6�Z$!������md�K\�N�>�c7[J3YP��U�N������W��Fn�^��zI&�I��
�I���|���d�B�����,��Z�kUj՚z��7|{P�P���f�6-6Y�r�M�v�W
�H�:�CrJZ�e���ޟ{��5�mRe5�U
!﷧��>�M{I�t�C�oO��}���6�(�T4�s�S��P�$�`{�0^Vc�ѼT�GI��u
Q�p�ϱs?�*�b�L�.���U��1O?���a�ɼ9��#j��:]
"#�kO=Џ�3~�UfRΕGH{�i���o��L��Q��Zy�}i��:�(�Tt�V�G��L߱ԙGJ��\a�G1���a&���w��Gl@T�n3�16S����)��<����8.w[���|�jX�L��_����y��h���k>�n�O2ڟ���O�/��&�l�Գy'�r�d�ފkl�2�S.�r'��.l�j�A�J�V�b�u^�RڕKtVmc2�4��*��sqKy�ֽ�q�ڦc7�U�Œ�&���N~����Q2r�=�ľ�;�A�K��5�m��Kd�:�EZgUf�s�-��n	T<��~- ytL���;-+��by���v���u_�s�B�DxJ&B�:x�P�ukԕ�`�!ףJՏ�:�y��z+�����q��N��ַ�,�i�$&�o�[���l�W��1�{����Ԭ|2�e�,����Ӄ��G�M�����p��>(����k�`��9�!�3��𼓅۝�_��Y`�98u��y��//�j�[A��s_�$O����&8��M����0�
�����nj���������=^��ټ}z��P
R>��﷒�a�m��Ãs��[���������}���Q��9
	E3%,ؠN�)S����E�ދp��2��?M%�������3My7��1Ш=����N>T�@#�Jl$�	�Wm�1���sʷ٦�wt�ɣZo%.��W���%��1�y�]uL#�l��v�c�s
c��4T�\�^E:����p��E3�ņ4R�!䀔<�2��������u�
&@�� ~4M�>.em
�7Y�H�C;�kF���W�Ѳ�'��S�\:�8P`�[l�V�{�F(�(V�t����l�Eޒ�U%`��=Ah��� 2���"^�x���X����(
����(����P
@(��P���i�
��٠4h��/����֠8�6f}�Z�͸O�m����=.�}���5/J��B�P
@(�gn��ay��1?���O�w�3N�NP
�듖����x�pl�H��
���ٺo$�VyHR�N�D��ľ�P�ʷ�o�珪���Z�U�͘�Sw���-s9�dVed�eܖ973��=�wdI�p롬��R�Q!;��.Z�%�S=ϸ#�l�J�m>�(�:T��KF���Y�t��1t�u�5�ʶ��x��W3��͞�;��rC�����6A�C��@�-�G1T6�-m�/���ׁ�g�N5
����͵�\R�JMBZON[z�C5�Z��eMffkK.i���O���!*�n�hצ�E��5e�#qx������!�S)s��A�˨?�?���=Y3h�5���8{e����g��6��V�\��P�/�zL�#Y[�s�k���2����r�o�7'9��%U��F�����?|��t��
�U�7�!����se+m���T��K��˞D4�o퐊zk�(������;t���h��+�.q�P?�'�jL�#[q��Q��?� x��HO��F����뿳��M�x�ۜ'���I�D����s��sj?�g�����5&m��\��(PP�L1�9D����0C{�r���W��j��^&�d�5��L�����d�2f�f˚[��l_��+��Y��EK(C��] S��#��&ULBg�r��P�M�i/��Z߼��^[��|�x��mO���'�(��H��
�	�YʱQ�ĦQc:9lB��"��*c���<#�?"..m��J>���Unf�I����1�Z~ӣ\�H�{�
��s����ܤsJ"�3s�
Sf)�w^UW�UR�~v�]#d�W���x��jk��Ԗ�+p���/��r�vn���Ц�����
����w���K[4��]w�Y@��k��j��#A�a�:�u�����?�gA�qɳv����
��UõI���C>��P���-#�tQ���~|�65\7�G���"�:�
������~ ����LN�c�׊��g>$=F�~�S�۝�_��Y`��?�~���?7g���=B��h��6��H�C-C�sT�/�4����~(y��sS��Xu?��>�Y��u@(�����n١[��]â��i���gs%�Fں����U6�0rM��^ڸ�Ac��s���DȪA��1X��2�$w��
�|:����˺�˛Z�">Bbhm�ȒCVt�)�dj�������Se~�ޤ���D�vz�E�;��<*��q�8:�q���%��
<?��Zl��K��(|q�)w����\���H�@�.>�.�z]�%�m��8LI��#�6ʄy����������ئ�	K�v��ym4��t�T8�D(��wSi%�F[��H��M7K(F�A��)(U
��S,�$ʨ)�.B����M9��_G&�ύcy�e�p�h8��fTې���=�)���y�A	wj�psa,�f��:ȮT/АKd��N��v��'ML��P���I;�c�e���Όi�m y.���gA�O��jG��N�|y�).}Qư��ˆJ�)��N���S�̝�ٲ�X�w>R���7׶C7��ܶ�U����P�8�!#6����'AE�K�Wn�Ȅ˔�U#muj����_N&w���"}��W�nt�:��Uh� &Sd�v�x�jb-�Xv��"�i7�NMJ�v!$�;4�������U�`��2Eʢ����>��d�M>f���S�M6i��t�&@�QV�Aʉ��{����V��>ʈP���t�tH�![�.��e�p*
�MT��")�sPg7=�X�G�4��FJ%�4J��<�j��˿x�S�sv����9��%�jHF��M=�"���I6J�fM�It5�;�%M�i�c��91�)r�B\��rߴ��*
U]x圐�TJ��E���pE�Ȑ�"�<��٭�(	C[�S��a�FYM�VF)���ܬ�7�q&峈~�K5�	�hD�U™3��d�5?y3�H���L�h��K�'H�*�K�^���d_!T�2f�@GCN�o%��b�N&)u��g�xW�k��O�H�.VP3���霪����#?u�C��y���h
)���w�u�(
�ٟr��n�[j뭾�K�C�p��>�K�R������P
@(�ۡ�X^E��&��O�?$�v�o��Ө����]���f���MC5��[��	��5v��*�.�M�ɶ7fL����\�m��c��اu��+���P��[�+,�>�z��L@Ji�l���eW��g�T��䟤V�v�Q�#9*�t�J|�:�9�.uA�+ffJ�����m�ӣ{R�5Y�ҥ���<�ʳNJ��C�}DZK�*2��WR��;��b��G7䘊�mM�&|��ZS��<�ŭ��!h�դ�R��Mu5=F��s4�n
�H�;힡�q��dI��̳'��r��$^p_9TK��������n�O�c��o�>�b6��W>˅A���K�n�tK�[G(W�3���G��n����l��+a�l����shR=�@����8�I��k�W�s���Ï����?�������\��Sh]���l��e�.\��W���Nq�w:��+��fM0'�S(�e6r �"{3�7&��2W�>yﯱ>��&����͕>׆�	����y�o0��\bp���f��S<����C,�����{����ػ�|p=2���_�_��.:��?�<X���S8W�>y��iB���[�e�L�K��\~1���彷�WFo���"��-�l��3��QR�$]�!��s���R��nb�[���_�����0�I'1�I&b5(=2I��+�̡�P����d)�R�;.q�`��l{w�+���%w*�e��L�P���U$�|�Z���<�j~�n�K5��g��[l� ��:*FP̔�}�����di�_��������Nɥ��6�]Ӟ�|ٸ���o��VoǨ��`�~��2J���)��D���U4@�MȪl��Y���)�b�5�NC�v���L�~�k�Y~M���If�S�y�fS#zJ���:E5�?l���Z��W����p���m��yAڛw���6M�/Wq�_�U\��w{ט@��Y��iu�b!��!m�8�ya���Z�?��,[g-ۭq�4?y��ʦ�֓�~�$�tΡ���s��0���k3�8q?��.�trW�{��B�dĝz�c�)�6�9c��$L88�G��ɩ�T��Pu�,n�
Jض~	����p��u�4ڼ�גp�n�ak��1�x�����(���x9�S�!��h/�@znK����2�<�5O���@X˟�O ~(P�@���wp�Z�fĠ?K�@(����ۛ�o[�Ѵ���S�rʱ����b��y'//$�f��Q2���@Dh�m�(�/Q\�zI�� ��qo)pD���J��p:9kM�#��l͐����T�Z3(���յ��Hp���XB9w�;�A�a��t�q]��ArG&Xdߏ[wz���ˉ�ג��n�oH��K9YYiϗ;���H)�U��U2�(�Lua1�DDF6�+wN9j��$�}����R��^�|����t<��[�2z�Qnѳ�>\�*��11�t�mP:�!yyca��R�؝��j�6����	{b�֕�i/��%.�����|j�"
]��&�A@Q/Ǟ/x�<�<��;���#x���"b�k����m�s���@}�o�*�6���;P�B���=U'm�4��Y�h�h	�I\���y�i�ܲT��,�vh�f�nd��+8*ʝE�s�(���#բ��Fmhc09�r`|IC%��
��荋���:��xr��cV�f-��/�c�BM��[��U�ǽ�b����^�c��6�1��
�c�_=Q�v��š4n�ŠzX�?ńp��tv��t��.d��D�ʠ ��W�x����;jEp3GN�5;�ΊЧUuP2��s���$�t�m�2�[���
_;yc����äإE���UӇ@�artUC)6yr%���s�p�}dx��΂��y�2��xT�==4-��X�*DL�O�2��b�c��ol���هD�c��N$�2.���M#5:�r.�2�$&n훒��D���Ɛ+ �4s�YH���٠k�gs�pT#����(S9��h$��"�Xі�d���*e�𤡛�o$B?4[C�seȚ�'�)�ܣ0"�U�,�&x�f�S���7�v��U;h�-ؾ:JdA3��&R�ٍ�	J�V�U\�/�=������פÞ�9ې����G:HtLC���	�N5Y8�+/j��3�j�d��5M��8+�j�2ʜ�QH��gǛ�9hf���\�l��Z��B6L�D�c;r���U�Ȩ�6[4Ȓ��?(�R��;�hQ���1J�rӷ�$�0"=�2
�GC���:[Bd"�m6��y��<���,��l~��dVZX�;�d��j�Y��p.̆6�N9Ll�РTvr���E;ɼjdC��E:f��@z;��Dk��&�43(�0��?��v�� �l��F�zr���j�`6g܅��ۄ�Vں�o������{O�R���!$(��P
@fv���h�I�3�?�8]����|�4�$��(��eoCJNH��c���&�mR:�R��>L�/fz��U�I�?��0��o���k���I|/%xMܚ���yxH\�|��_��n�cWU�NrW�X�%R�2
4�A�6�Bd&�.j⪻Vf�����,m�j��g,hVkTaQ`�����3���32ʭ3O4��1���^J;��ʛ���Jp�hs�Y6�t���tU�E2�y2���U[<���uql�l��.r�|�S��l��Y���m�u��/��ޞ�7�k'��][׃H��ś�,�S�Y�9g����B9sl���DV1�)jW���v�lx���8�j�6�+�3�T�ԦYZ���Z{���EΧ�ʰ6C]Y�!$�vn�h�;Y�ɵ{�#�f����l�/�S)��A��?���2�EY+i5u��4{Z��g��"��������kP	��d/�J�CW[��Ik�r�*��6�r{P�/'9��+U�������!i��� nk���M21t�טN���JQB�1D�� ���	��g�J��in�k�^i{S�.l8���eWV�BJ�ךA������y���b�T�ĕ=�4������b�I�J�ך{'ejbd���bSp���
�{>q\���I+�^i^8�r*F(��1�\�Ŝ�UL��a�w�?V$�Sb��g+�i���K1�r�=6��-�q��c=U�ľQ����G!���)�l�}S������?Y7��\�;�b�>��v���&d�}��E(��D�f����9�:�;SW��g�
�)��xu|gjhaV�I�zT��S
��U�}'1 b�+�rj��btt�ʝ⃴Q�]4L�b�!2��\���d�|��6�NG��T���Y[:TU��J����6i�9�)u�QTu�������c��FI���(,^bS.b�����rA��Z�ںY��tW��7s�3nG.^f�i��|"��3�\��ȬEV�UD'�1}5\�A�)M��L���j6�rU�<s���[f�9oM��Z^�-���y��p�FWx512���*h��ֽ3�0�.�{���q�p��y'\z�8W�QY��zQ��X�(��xB�M�Y#Ք�w��m8[P�Z��&GN���R$�A=C�cgW��KZq��=�81�4�Z����8��������G'��͹����S�S�Wx���ٿ�C� ��TV#�O��N/m?�����#��~��ݗ��֖��A�y�����e�(��%<�|z���+��M�.d�-��vp)-�6疻d���n}�4�A(�f�Ux~gM��V��쟧%

@(��xH7e��	�d��F��b��#G�E��-�D�$����P�8L�ZZ@�ٓ!ș�p@��4��j���C�m�YW�yiC7��C��><)��|!������M!�v�r��9�����+	&��[�Y.�#|\'ll��tT�D�~�ݙT9

ׯwI�9)����#��=���.J�ʪ�f��4w�0΄aև��i�����	I��Eq��ʯ+и]"al+�U�l�)����>;kF��e_G�Y���uoY:��l>-�Yʺ�ʂL^�@/n�@�t��e\��X�D���n[��m�>�L5�Q(�wf�SX�������oy�Q������j��E�mTi��fH�o ţ���^�A�u�F�"�����^�x�#��d��<T*Q2����z��yx&��/������֐�o�#��
ӵ���y�����z�PL�K�+;���)m�'׋�ˍ6��_6��4��D��c����c@|+9���L=Z*v=�J�JգUS`�ߴ�p9Lsm;��&�!��Wv�e�:Jjj5ɖ�Q�S�@�l��s�be���6EM<����c(jf�X[���n�)!��� �N�$_(٫2&�t�EUe�K��6c
�3WC�<��E�`�kC0k���:1�H$�Fw����!�\��<��^����Dp�W�r�Nz��oH��#�fŶb�1q�l��wJ�ȽUf�r���%�f"�f)^<V�T�h����,�Z�g��D�1�fP�{!�����A��ߩG,ʳ�%,�C����PMe�L�^Ad�ô�%ʲ��歧oL��AI��鑣s?�E�*����m�{E2<ܐ�ա~����j�E5f�jm]�Z�1�xr6YӇt��ĆE2b��L�:9(�U*˩qۊ�s,H��:l#��L��YW�l.�I�����|��{V�^�2v��zM�X�J�gE4�z6l����B=w$ʒI��[Ly {���A��]�JH-�C��&�c4Q����5HwN>�>�#,�"''(�ʹ�"�Cjjoa���h�-c�E b�L?LҤ�p��X23[n�D�A4NHɊ��������(�D�+i �]7,b��੢��ڮ�f�.��1�)v*����75�;�w��lE���{>����3^f8�7"H7���ST�!�kʠ!���	�MZ�"�y�).b��zJQbfy�@s��›!�4L^R��B�$�Dj3.�{,�œv�$n����zR���)�C��/Ҁ��g�H�o?�V��E=9�n�����3�B�m�}�m]u���w�{��=�٩x�TՐ��P
@(�3;t?�ȴ�������.�m�A�up��}�[��\x�����WrݹLu�a�N�
�{���ɗ��1j�����>���͞�q�]�]�%���ʬ�eL�7�њo���"p
sG�;��`�b�_=f�5h/7j��V�Z������(4C>eOؒ��&cV����n���M�TY�4�4��fn,:�y,��u��$��c��n|�fl�DT��~��o�2QxV��eu�8ۍ���1�Q(�Û��`S�dhȹa�m'G��M��E�o6��r���Q�:M91��Vɤ��HIV"���2m��k����p�t�?=�4vn��m3V��igz�&�&���=e��S�u&\�l�K�[����E�+9ppI�(�ꛚDQ!�T��2�&j�gn��-Z�D��^Թ�n�tHu�]uU�"h&�d�c��T�L&������s��O�ԙz���<�Ac�M7
�4X�ݦ��s��WADn�K�Q����n��74ԙGI��Kd%�g+9:�0dW�M0��7Ei�d�1Rʶf��FS��9�ri:�<M�E�]m���\����333f��𙛊�����@Mk��.b�ƹ�9�?$?v|ε�]��NZ�g�]����o�Z��<v�i����v:gۨn]�o�l�C)M���л����R��M��~�Ų}���Dr���F�j]���˅�o��J�ܯ�"s䖮�v��9JR	��6-�'_�"���i6�H�V��ql�)�O��*,�^�鳃����fL�M�&\��j̎�ti����t�8�
���jUQ��Y�e�[9fV����J���rLS���R���I�5�*��_p�ȾU���H@�L����.^w�J�%Wp�E�0��p�~S7��i�Xm61�D���\	>H�6U���H)�3g��x�R�g��c��-l�k��Mw��2�"��uH�%NL�$ۥ�|O��J��;V�M�Y'�ᓴ]���\4:
��\���L������r��"��:�$�T͟"Ư/�hM��;�:O�,1�*��l�k+9��jTVU����6vlʦ!�L������*�!RY#dY�6�\�1�G�nI���nnZ��n�R<b֍��i�V�پd���/(C�E$�U����X���D�*Y@�L�2���e]��Ŗ��-,��'_;���;Q��f'@J�9P
�r)�3Mr��D�)S/M�S��K5����)q=��YZz��oi�������[��w�
��kcT]i.�^��4y�S��6:}�!. 
&���r$�8�xk�p���H�S�1O�V�.pxP���{i��u��M ��ݧW�'l_Ak��^�td�d(_�|�t,�u�Sr[+"��U(��)��P�ѧR
Մa�Z��+q��#ڎ��RF*Nߗ���f�l�$��h�D�儜c�Y�d�EںD�8uQ��,#�
�ة�e݄a��cf��,��Ă��Gz���v�Gr���cn<�W�?��ӆ7c��5OP|m7��~`�6�����e�(����#�q
��i�
p���p�8pPɧ�0��/�UX,Co!)��6�v�f&��BkՊArq�dn�Æ<B�<aI���=]��riSgX�ԇ�c�~�T1
@B�|�-��)'�c��ڸ|�A�Z2bɢG]�ǎ�45l�f:��!Q��#����'��K?O�?���:��+�>�9�#���iը๛�]7�\�o�SM��)ɸ(��b�M5gs��eJ;���~���',�z�2T��`�=X�}o�� �}�}��;���x\W��u><��u�R��g%^(((���UTSA"4R(�$!SL�!JP��V5f�V:�j�����ɼz��ҙ�f��C�q�12�%�ث/J���n~\{��j}.�M�7�E��7�+/4�h��EX�$��N�^n<R�E�0�dlgFY������x�����(r칵?�_S��NI8~I���J5�F��I�"�ޗ�C�(� ���b������\\�P�;^;��e5q�tz%5���X󓜢�;�|D/�s���V��;�n�WO����iR�?Z���3�u�6�ݦQ3�w��1�"��\���`�����E@_�1�g)�@�^����Ϲ2rA^w����@Q����}A�7�>�P���뮶�k�;>ɆӨw1T���=(v�1Ѷr)�<*o�8�4D�PN�'��	�Mܗ�]���J7L��M��	�~/�8�y{�d�xvb<d
�{V�{,��}�&1�F(G��n�Y2h��WrUE�3S��L�!���ؚ�������~�F��lћ�$�ҋ��v��E��ɔ��������B�˫6�~��Wl�Ǵl,[$G	�^I&褻�Wh,N��΁������h	��&�`a~�l;t�4v�>��̖�3�]c�QG��E��e�
��4�e-�տ\1�l�P�b�S�$��U��&S*�#UQ@�M?M!L\�Ĵ�{"�l�Q��w/�:b�3ԣ:-N�2+8D��;2NW.n�r�����˸ݳ~�^��r����$ٰ�̬T��I�Δ�U�ȹ�d:N3�6�/4�	,K�7n�Q_,�4tՕg��t�l��M�D]�n�-J}��>b���Լ^C����j
�B��9Xƪ�y����U6bW$!�̳`ʑ�g ��(b�pZ����J�*NS�,dQ�磳P�KJ*�$6�(��b�L�!H���&����9*��ǯV�Y�B�ټ�Gk.�v�٬��ٻEm�G�r!y�?�-EB���rf�Y!�"k*����+R�4M<�Ir'����2j��͡yȌ�,��
Y�9�	�U�[&A��)�U��"n��"�cc�1�lƠ=�[��(�f{Ÿ�W�^F?,n��kt:g�&l��&����,�UQ]���&\����{79ܸ�g�.��tWjDZ�F��n�F� E����MUR.~QM�)M@LZ��r1����U�rN�E(��b
�E��3�2
\��<�!��hY:�Up��.��۴$��E�1]��1�0�Q�{�d9J�=�e/��.<I�x�2�G��jɺ�M$T|�4��::H�$�*;�����v�� �l��F�zr���j�`6g܅��ۄ�Vں�o������{O�R���!$(��P
@fv���h�I�3�?�8]����|�4�$���
c�^�j���S�
K�v�֎Vn�A�r���1TH�JmH�7'=r�
Z�w����;+k���}N�ջ���GUehׇ��3���[~R�G���T�d��˒��Aj��ڑCwWFl�ʻ������j�\��=�ŭ�J�5�H���ZsG��pV��.9�S�7
�٧珔���
ܲ�6���2|��j��n�Y�!�bE�+�JtT]��L���&bU��V5��M�[hT�KZ��ӌ�e�dl�]w�r9�T�ʫ�MT�(	 "L�ͳL�1�&NiyUi��=U%H�^+�nîd��ӏ������u�������9Vu�*�l_b�%2-�b�-Kau��̏���݃Z�>���lr��r�f2��eY�fU��I�e�y����>,$7'���+�ȸ�6�e_R��s��
��h\�i�ֹ
U�!m�:���e�`���k��MB�ʕ~�|U���S��.?������u5�k{�w���o}�l�����_�gxv:�}���8w�e��|�6^NZ��I=6�Y��}ݏ�c��~�.n���Α�]f�S�d��Ŗl�C��c��������sH�����%��%=t��w����}�l��{���gxv5�;��8w�k���.nNj��D��뵝Ԥ��ݏ{R�O�sܹ�ލ�:G�z�w����7is����|��6��m�'sje.ol�^|���_@��x�|����v'���#9r|t��G���/�U/R�Տ)e$�_�G���lK�x��d�dE�v��r��)D��A���X�&<�#`�^1Q�p�fLf�t*jt��&�$�N���)U.��'8����8�;}�v��"�t��_J�JB<;	v+�v@�d�ys'��*���n��l�)�J�;�;��ۈ�t��g/�A2Ǿ*]1�
��I�U�K��٩����ו�e�1ftW�"�N+ı�/��={�y�f�5Zsp�Z�	�
sF-�&�9v�Z�e�\n畕Nt�*�X��|�/���yo��<�_�w)�׷�\��b�T�;�•�G�3����-�����F�>HREWg,�DM�<��
_�!z�~���ߒ�X�v�#���U��U��M�{��}r!��Bt�6��+��IW�crx]��nAy%�j�+{Su�,p�C��_�u*6#qYm꤭F�T�B_�sJ��L��[W1��u�����f��.n��z~*�V�.G��_�R���#�׃w��R��ҨS�-�S+�p�gJ�k��DEE^�i�*���(�qP�]���hu#��i���E��,!�3��ݏj9a��_���n���3G�+]�K_�H����P=R�f��::&�Ԗ3"Rhv�%(�R�u5�!������w?wҰ��IO2?�{����=�����u=��?�Zx��?�!��_��Y�X�x�r~�ͨӈ7W��>]R�����~6��񍈬�D�/Iʗ7_��(G>�M�p�\~7^����$�uxn�`�S��P�b���r�t�Z��&D��*�;�|���uj7�kzK���/ĭ	��ou]��۾O��>I��ԑ(=�/~���s�>�Z���#��Ѳb�2ډ�2MHS.ʴ��rG"�&Eݬf�ER۔`0ู�j��hBN�~#j�����c�cԇ��z���O�K�_�읉g:1�q���%�.��]�RT��\���K���B�X���)0Ae�G�n�X��L�q�G��������b������"aH&)�LD�@���*&�L��y-�K�)�9
`8u~c��Ÿ́�	�*�� �J�r���G@�́�5H1�l=0��֕K����ĕ+l�r��m-i�VI;�P.�#G-[F]s0�`��t���c?l5�Y���W$�m\B���R�����Y
2I`t�u��^*&8���v��K���I|����nܒ����"��9�S��DϜ0�j�MYsiS:F/v����a��E��"��j�Դ��d�"d�`�*[�(�01y%�M�.!u�Q��U9��<K��X�ſY����n�/����� �ެ#�0�4�߂;@��}���%Y+�VUw�W*j'�t��nȖ�e�U�2<ta�H�'**���_�[R�m�o��ǀ��Ѩ��!�2jf@�p
<���)��dt��|���1�Ș����/ͼ�^�d� Ub6�J��I?X�83w
�a˔��K���|�K]��jo۵���.]���"/*���^�j�r.�OG٠L�8yY��Lx��荤�=�r���^�\&��H$a�I�}���O��C�>l��>ɘ��w��4ச7I9��n�[��R�]��]�q[��۔���![Ip���/��j��$���>p�GJ<&ݩ̢h�1w�)N���M��1��'��X�
-��Plؑi�4�B!�t��]2"ꬰ��^F�EO�S���(l(��}�����Zb��] [��x��I�Ia3v��;5vE&7'/'%t���a���ڳi�$3l_tgtw;��)��9����CEL�L˧f^&�u��G���*�7q�Q����*`�l^iJL>O$ 
��M��֤܄�yY�u۴J94�D�$�I(�+�0���9ʎ��*�[�m��e�D��H���U1o��b"���#$E2�,���jC)�0
�O%��M�=H�*�1dw�(�ο����er<!U+s��Y�7'�@tOM����P.��u��ǾR>,�@�W
�2�I(d��™Vr��L�LZg!`I�=Q���sr�7Gd��7`���h�ʪ� ������82F>N�b�)r�VXზ/�o��ʴb�tr�Eم���zU\,���S1
õ"yL�I�0m���h2b{��U�k�*����QНcㆪ���"��@�M@\�� źRN�z�4����Z&�BゥCj�#��a�xh�T~���!�A���[4���}��:��lϹW��	���u��G��!�?��f��)SVBHP
@(������/"��Tf'�~�p�i���i�IÔ��AfX��ٻn�ͣG��G��LR�`��C���okt{fs������;ae�:�l����柤��U��cSrnQ��]���6x�c٪��i*�|$�*f�'ҝ�W/>�֋���ѵ����{zh��n��^E���m)W7�bg'�S�Y8]��R+q2ѯZȴ1\�A�voY,�S�[)�|�7(����͕�;�u���V�M	j#Sl�e�u[�����Q�<2��NH��t!ک�L�9�c�X���ח�+�b�1#{֒�]���Ȼaj߽Ō+v�n�zgJ<��m
t�2e6�1��&l��/�_��Z>�Ԭ�3k5�4�rK��YZy��e�	����5�K�`+����UT��"C��2�Œ���a7';���q"�s�x�A7,]4�d�v+�T�[����
j�]�өeݭ�#gV��f�������Y[�m�a��8Ӂ��kK�&W�}��\&|���Mu5��s�?�����q�-+5?��Y�.1p�.�Y���8IDH�Ӣ���?ɐ�yИ�^)	,�ą���(��u\�"�+"�(���C�t��b��*�:5
۽���;�fi*��F��x��G]D�.4��B����r�u��-Ȫ�,�-M�t��n��/cITtj$�B-���NJ��o���̽y5ҚJ(�T��]��l�ܹ��ryT�e�ٴj�5��͞��:���++.r��	Yx�SD��?1q��g���5۟�!X:-��NJ�O㝸��1o���}��Zn�e̶�Y�����\��
^����9*X�w�ЎHc����I��M8˧VP=����6V��9*o6�/�����I�LlT3^�CG0��h��#c�bſH��ɫR"�
��Se/<��%4Zk",��+��F寱*ծ/[�R��J�*ʳ3L͑V^�UMR���d7�S:s��a1N^<�$�b�D��&!�*�p�8�z��u�Ck�\Z� ���n�.E�Ejf= f��=�}1Bq���;M��R���<�W�ǯ�o�	[�gc
�G'q$T$��$D�I7:��o��l}�l�yRr��,��]�t�-X7)fٸ@�.r������"]�/k{��OPk0�Gb��WV=�U
�C���/4T�a#��U������s_,z��\:�O���rvI�U�I�L�g'�,�M�n�EQFm�Iw莈;1��(�r���[�ֻ�S]�B��c��7x��� G<J܎S9�]�Mۼ�ɗ�b�̚�!�bՑ�CԞ�g��Mt�Sz"��j���>V0��D}z�Lv�(�V���d�F����N~�+���g�zz���1@�1Pl{��;Ҩq�9�d�@Lp�k�SS�Ho��m]���o�=��lM�Q����!��:�fDt�N�Eܥ�Z�*?�������E_kĎe>P���vT˝q�RƮ��������W����}m���݇����������̕�ާ�y$����;��q�0|����N$���\��p��A�����Ǡ7E3
�<b@!٧�������<c���(u.�O�������0�r�
�,���WQ���/M�7Y�Y:QtN�]l���H��/�dI�fɔØ��:���o�)q��h~	I����ռ;K�X��DDx*x���	����>شst�-�rז��*V����锉s"��/|;���	�Ŏl� �ٕEVF���h��N�0z���a�?�s�.��Y+]B)C�4��ZS��\�cY��Թ�^�mC�5?P�@��n�-�u�&�B.?jb��`�fMH"T�!x+��^�g�J��Z?�w֔m�•�Ӈ[�z��ĥb!�jb�����u�V5%�$���.tc�@��B�K�	���xՆ5����J���
�*�^��b����]� ��©M�G���k��az��:}RZ���S$SrMÁ{,95d#�%�N��O˥
T9&?
��4�3VHnn@�B=R��f٢�P6R��1�l�L�㞲S���,2�N��ڷ�[�=�8>�KSI}�ދ7I5٩>�F��H��dw-�t��r�9۪�'i]��T�Ckw�G���
����)ݯ�җ�Cg/������tGe6�����zM<�,���oNt�Щ���i�g3h��C����!�@��f��{z�w��TݻR���l�%�k�������$E+"�d�����ɪ	v
��eLp�q#'pK�OL�q%17"�^ZE��GO�䜨���*�G��en��#@I\�r�v�jQ��p��$�h��da;n��!Z��p�p噾>��)����[]4#�Z�~�d+<���3sʠC��تG��Q)�%�"�2��Ҁ����de#��.-
�-b�I��p$��U�:Ҏ�C�Is����<�L�@�ecZ	m�
�$�{zC�k8ѳ_"eZ�I�T�rF��˲*	���+�E1��8�	�rU�$�=s�k�D^(�M�d�'EP_:y>�nހ�����@Ь.�bW�H�O�8tI��M���⳧H �3!і�
�e.]�r�+=�a ���d��Htld���z��G#P#n��6�dP2�:�'�cP#���O���H�޳�i�6�鳖
Rt��r�F�&/�t�d2i�3l��
,��X���%LX�O��M
k:VW����!o�Q�^E���)�
,K",����TxK�t	&���5��p��.#��Tȑp"$Er������)�T���/���,�$��t����&S�	&T�;7±�M�NE��O�l����Zs/ё^I⏰IE��tەf�$�3f	'�S]��.B���\�L�@�����ՃTdn&�l���'�r����<E���4��.�sًɠ"ͥP�!"�	��K��g$�� g
�߷|*l��@��9�^#�ht~�l�a��\ȵ�A�hƥ6�lܸ�):T����é�"���zq
��r���z�f��_O�**�.e��l\�Z!�7«�;�]I�&��ϲ�e1S��j�P���i�
��٠4h��/����֠8�6f}�Z�͸O�m����=.�}���5/J��B�P
@(�gn��ay��1?���O�w�3N�N��n�mY�)�m��$@7J��/����#\�5[�m�S�ۆ���SUtm�sjV�W8����.c=.1��;^��&o+"�9PS�H>������7��E��-�;n�ӆ�颼��[��v)8pV�(�b��j��k�2�㜥�U��lԺ��V��j����IY�
R*�4�ƕVf��.q@ av��lD��ݹ�!���Ԧ������\��7b��'M��$���.��y[�U��.b��A�L�'4��Y#RB��z�m��G��uZ���jl�2��2�����8슑�a"��+�~�Zw��^�Qb�FW��v^�Hb����N�53$��N����
��I>���5I�\�&��]�M����Z�1rv�Ғ'�h�ˆ.���L܈���FH늅�sM��Vl�U��[���B�jӟW4���G�l�v{��j�<���ܓ} &̧E\Ĕjo1��L��k��*Om'U��>�_vm�_��+�	W�_B��ռ"�O,�h)�().�&IdU'$ɬ�5����N��x�
�-&.'�k���;n�f��Ekj�7l{@��I���n�����n��mv���m���'q���ݳ����8�tfN @Mu�f��p�U&b�ںM�8
;�@0%�:�t�>��fںm�=��-�J�ϢQD�.�G�,�Ugq��3v�]��XI;� �p���c�/&�-�[�O�L�z��?o9Pܣ&~O'�Y�i�m;S�=�?��9H��X�C
�@�/`R*ޖJ�잞�|����jR�U����dX
	��͘�?js��B�^gh��)�Η�uRܦ�w�r�Re�@���Ŀ7���La\�N�c3�\�>Y�~��j��/��`팑�5�Էm��w�����Q5Th�8��c.���YtT�E�qA�%v��Ў��Ybp�e:�'�t\�Lk�O�M�S�Ss�#��*H������ClA=���T�l��)Rؔ���)r��I�4��JI^on�:Hgx?x���"���9��H�Rsy�|��U���XSOᘨw��j%[d��^)�@���]4]�dȩR:�"�!�YLz7�V��sa�wn���f�X3m��O��+�Ҝf "�nM��C�@J�G|Ђ$0	(	LQ�FX4"���$�M�T�ThF�^܉��nM�>�o�v�k�H���l���[�JA��z�@a�ŕh�j+�k$*�p@鱋��.�r��զ�jE#��Ǒ�ZT��ݲ�X�X���7��~h��쿃�{dl��灡�����4⠲��h={
2R��
�iԓ���S�˪�Y�P
���+S�<&����/��#gj�Md�G��6�ǖCDٸ1��z:� M�x=���u�"<z{gM���@n��1���9Cz�'�訁��x��:��(ġ��:m��H���Ung���U�%}�
̚.��K^�՘{�a�Z�_:m
���`'T�(�W�\�Pj���,c�B�#�w�9iV�u
PݫX|q�C����&���K\M�	��>���Ql$
��jtY�$cj�����9�cV�*�Mۇ�ɓJ��yҡ�-�\~8��~�ē¶f��%k�­�5{�uc�G�B�B�IɊ~Ys<Xa��j.
�?ɺO�m�*��\�����юBܑ#LV1�>S�NR��)������r��<3�T�SP"_O��z݊7�i=�E��̤ruSD�q��EpR�ss��lA6W	��oֶ��[5��W����*�8[[ttv\�U'�ޱf�V-��Ӎa#"�[�fX�k?tTΫL�p"l���ɭX��Ԫ�R�}c��q+q��b�۵�Z�ڤI�Y|�"7u�g�H�ˢ�|W�O�N�r���Γe&�,̫t;�M�R�%i�ֶ�X�Kke��K�[9}_��^\��-6w�^�LDdn"�0��xu	������Of��S��7�Y�%�)�֮[,)�)�	���\9^]eI��Hgu�I
@ML�[ܑ�P��)�x�xk�٨�j��|��6���<�'ݮ&�#�ர��&��n��|�1�Y5�(ے�n�NBԳ�IE��5R*PU�ҷvw�)�&r�t
��T��R�mM��Y��:E��OП�eZ,k)��ۂ,a�b�,["��|��A�*�0F��Ǔ����B��}=��^�������Dɋ�ʉ���v���!��F��.9DR/8	�=&�JT@�H�d�(�Qd����ѩ�b�	��ٗ�'��4َ���� �W�9m 2h,I'@�oT�eU(��]҂���?$�'����gg�H�(�{�ݻ�$��o ��/���ج�k��:�n�s��e-���ɸ~��Gt�E�{��x�T�E�%bv�]s� D��^瓛@z:��=��Ⱥd�Wj?%M�����p��U�"
&�w� 1G�
4��bዖ��"h�i=� :pdc�&�\��Q9�@9����O�{0�=K�`6�dx���VE)Gm�z�R��L��Y%���>Tܓr~N\���-���f��54gzU`���۬���\UJn�=92%�h�B�A�����kI�������mc+�;2�D
).�}���C�s(Ơ<�u������r���5�x�ӕ�#4��2���	�jC�2��Ss���o�v{G��[4x��N�����R��E�@�����(�2F/ˉ陹F0&�P
@(�?��v�� �l��F�zr���j�`6g܅��ۄ�Vں�o������{O�R���!$(��P
@fv���h�I�3�?�8]����|�4�$��Sk-��]��S36oV�hlوX�R�2*��_�o��[[r�~�~[`��{��>e]F����ޑ��f��,͈ͼ�Ҏ�$���Mp� ��FY�7�!6p��E��܇ː�>eR�Ղΐ���wN�K��Z�+"��T�-5ff^K*�
k.�k$�ʑ%�R8!N`#��B*R�R�C��
S7eVD�Z�'dwT�$r�s���z�B�b|b����H�����ձ]��R��+u:b�>�_�ET�uN%H	�Lc�c�)K�r͚�N-4GgE�V��7��1��U�k'O�I�Ǫ Ѻ�#F
�x�Ɋ�Lr6j�(sv-^���5��l�)-[ʩJ������Th-5U��#��#���.���Z��B����VuBz;�N�T��\���fN�O�nw�M]4a|A�RW��2A:x�ف�A"���d9�٣���vzu�~:x�Ͽ����:���D{�&�U^VΦ�����jYU��f��3�EIǦpL��3"��&gH�Ll�+O=t��><xE���=�\~�aΗ�z5�F#�^�����3�t��Ѥ�:^�ño+�À[P_�[�
j�t:������ws�lC���S�����F�rx������:}�SV�U�{c�w��G����R��
�s�)t�F^Q�4ZU��3wJ�M�[�F��)Fl_?@�zY9�|�eHJnP��VWS8�ZDn(�e1U/�����<�Y��~���W��ژ�85<�دSs�'�k¦�P
=�r�&��p��J�i@j��H�M�� ^I<"��bv9�\٪�݇��槬�!�� 7R9�i|�Ĝ����.]�b:\�c�2!���g9��䚐\��=^t��9��9?��yX��m�&6��h(e�d�¢e�
�1<�,��됏�N\�}��	j;�o��j�@ݳxIX��������R�N6��S�ctv�)��s��J�[�T�H�!�o-��2��p���aQ���ч�4�����~>���uO�
��gM�(���s+���V��mO]��[O�-�%S�]ʭȣ�u���6�0>ْ�d�қ5Q8C͏��]�?T�j��BЭj�d�]Q��ݭw�2��Y��5ɹhื���d�O#� e�b�N9�T�6K���������'�
�1{����<���8||h	������x�4&�!�:�7�͠5��M��wj��
��b\�#TL��
�Nl�$R�̚j"l�{j���4�f����l�J���G�Y�昬�bM���h��p\�`�n��R��)ѫ֏	K�
u�l
��W$&^Z��0���ť�F2���Hť��
�-��6\|�]�v1ƽ*y�Ct5U�~R�P��qv�9s����aG ��#�wl�;i�� ��F$�兄S%[44��%�lX��E$�cf�+���X]�{�$z���[l�#c2��5��}ҧԥR]7��'(.��b�zCW��ƪ�X�v�Xɘ��X�����[k�'��F�-x�ߋ��Ŧz~���1�b2�,�c�7E|�d�N�<;�I&�r43�����V#V8��^:�<��s	��
v��Y��<"�YEPP��q0�<5�]Qo`�2	āWH�(�T�@0M��
yL�l���O�B��"\x��CΓ1�,�8�����&5E�8r�(ɸ^<�v�	x{���c��W[�Tb��W�6o$󭴸�V�m�3xQ��O�O���ƹ�7�ո3�i��-cCJ5��W�J�d��.W����0Q��^H����x�t�o��)��&�)s5p�֬^���t��_d��\Fl^�s�fa)oY�8#�8�E�3v�b���]������	����&&e�U�9YG�{! �ʢe\<x�c���"c��#�4R��4p�x��J�"F���iy����T�n�Q,�'R	3)�9HE�j�s�6B�Nvn
�t��s^�u��7H�t�L�*ʑ,�?I�3Ъ�,K7���ʰ���D�z�~�"��o"�E97�-UU�2�>,3��9���h-�m[�K��YҜ��{�Ɇ��$L�҆���\l�GE9�Ze�0��H�m���|m������w��S�m���y��.���&sry$3��B,�i-4�d�*���;����[�EȤ�Ĉ�D�c(C6W2���.j�0�v��2�����F�j��<e�y��,���9i�c���=T�"m�avm�dɵP�)����2s�d�6j��Q�G��ǿ�����w�e���jұqCo?�j۽k�X���f��r� 3�t��\kV��mYel�@���T��j;ª3gw���#��P
@(����g�H�o?�V��E=9�n�����3�B�m�}�m]u���w�{��=�٩x�TՐ��P
@(�3;t?�ȴ�������.�m�A�up�/�R������g@`2�IG-�cf6n�����������s�)���=Z{����ڲ�L[��
�e�����p@�W�f��۪B(s�H�`�9�b���T=|:�FDWzg��������ֿ����d��U���7��bP��ބ�"Ų�L�@᧵7�#j��WM�NgG�;��N��!HB���6R�kK�}S�{�}?0vS���a�Ԭ��)�5���'W,���h�Ж�Ѳ��k�ڃ�ҷ��vU)�>S)�~���zaK-k���e16�
Խ���4���%�͢�	�WA[yl�&BI7�6��M��]":!V�ts�}��6�g'�e��`�	})7V����ֽ�
��,Ե-3+B���6L�ʒJ����i���3�ɼ�(-����b�蝙
��t{�f��4l�1�$ql3�f�S���GMwp��_F�o?h�Ő�ʲ#7�N]�'��B��fڙ.~\��U�i�U��]:S<����Ώ
��k�b���՚�:r�e�isf�Sa��bO��I�JHǢ��pף4����*
Y��΢.U/(�9f6\�3o�R����ޡ�a�͏�
S�mkogUժ�晵l���J�Y�xE���E�#��$�>l�)r'6o̠!;��}�:�������"�����{�?7����z����]�h�s&*�D��D&^N!�n�>h��I�����N0��˦<~��;�g��Pu����|�YF�?GS8_��w�>����?*6d������/�ٛb�H�Y�o��g�5|��m
�N��j�{O������Ҕ��G��Y��ɶ��f�M�n�#��u�9P�d��|�U'����dL��_L�\�&�L���:M�]�r�m��n���"y�`V� ������=o7��B ���bǿj�y>�V���M��j�&ڧ�C8[��	�լ�1�X�	�c�H�@�	���3
:��J��~/.��R9�}�x�2���+����
uY�s�����J��[v�v�
&��tpov�z�XC�G�Ѩ�\A�d�t%�%��u�e��~ܧ�mFF��+�܅i�u!�,a�ͽ���3ù�B�<'�d]T�D!l��V�5���FCj���>.���(�xeDB1��Ia�2:G0|'��o�:g�֜퉨6=��ܻ���ѓ�3Q��I��)NC�@S)���r�1L l����f^�SdJ�n��8:�C��������q���x@x�
�km���[+�
��WM�c��8�WSQI)(����
W	
�:9KϨwk�m}��ʁ���/�뾏p��U�w:,a4����7e�r	��g6
TEn�T�rr�AB慮+T��(�ޕB+27'�(�ƒ�:�f|�&��s$�9
�Zk�=�TY�BHŗ��E����w�c��H�T�����V!֗`&����T�U�q�!�.'��1�8?�/�[������.��9�(TD٦Y0�U�|6D?
USpE�$1�x���!I	>��j�Wt���:��k����9���o[�[3����VH+vb��1�唼`(QĠY6�����iF�1U��Tʍ��!$�Ʒ`����V�	4�t�vm�b��!3��/e��{����T
gK��ii�G����uoV�ߘ��I�{��+���tN�F��@�u)h�ΎO�/^<T��((� gM:��-��ڝ�U<���o*]6����~��sR�D�4�w7M�޻Jt��e���7v��j����2gL��K0f0�UNTʪ��5�
�w��
�{V�s���X�zNN�6ȳ���� ��J�\;8�e�:�Av�U�B	 	�NJ|��#�wRyA@W,[a���LJ^������։V]�I���\83��:y�J����ȹڑ¹J�NN_6���G�~�ͅ�4yH�E:*�`t�"��#�B�ɗˡt"��,n�h�ũ:~�Њ�"��^rL��X<Qk�ڮPW�9+�.���FJ۳�[k�{.X�1Gĺs�v��u��D�Bw�b�v�5��n�EH�DIo�ٵ2h"Ԅ@2�$j�S����F���X6�q:�C��wßX��)
�7�ǰ��kX��_;x�8YTʲ�R��xpT��Oo.c/���C��y<�����>��g�U��ո��N~�ʼ��h}ވ�����"	K)8TP�~܇�Y��Wz����j:t��T��!�&��Üa]��u�������.���'rh�;��zp�$�c�]�f��L�ǰ3S���Yc�uPL\����_]%�,�,��Lv�9V�ЧQ5H˜�q��7ZG4(��P
@(�?��v�� �l��F�zr���j�`6g܅��ۄ�Vں�o������{O�R���!$(��P
@fv���h�I�3�?�8]����|�4�$����P
@(��P
�
 8�@s@(	Q��1�~�=϶��@u�P|�~v��\�0+}<��OOߎ�����{�NӤ+����&ƥ�ǖc��ڒ-σ���Q�$t�Ř�M�\��`��A#��]����h!�9��*Nn9�N����;# h�9BM�u�b�L��:JM�
&NV�6|�ܹs,�1�I��Y"&1��"l�&��q�U��S!T���!N\B������D�B�a��7'��[P׭�D�G������FVߕ���9��P��%b%�9�����qo�����h�.ؿb�"*���$���|Gz���&���;���g�)�Cv�v��;�]1V��Q��[�o�r�7��7�I��7ذ�փ��)ۈ���Ps��8�4iÛ���k���ƣ�a�{�F�an�j�tqv�35A�u��
Z�jܶ�wh�D_�
�3s#,�p>=5�wg�b�}�z�f���HuV��v����"�ړ��Ũ"\L����%�I`:e�6}����|jx����>���m�780�QaE4���H��G�-YRisK�Y���s-`#r(+\�˃�fp�2!ʦ<����F�G��G=T�K�R���-��]�d��=o��g���Q�he��om_�N�0��6 a�L[C�?�����yW��V�zNb�Y�I����G��zh���{jܦ<���rVh�Y"�Fx�}�GE9%}�_�U�����m[D�qaȾ_!�[��>�9#޷>ڷ-�[�
��#iڂ>u�t��Kz����4����V�g#!(�ڥ�P��2��ǍW�Խ����V�\��];�)����8%#��`0�Y�@�W��8|��#Y�Z�����/�.����}����)[H�i�v��u-����+��vol�1�p̺�Y'���b"EzT�G&l��Z�*C,b�~�5�ڕ�ۚh�\K�{K�oͻB(dQS�v���RNe���&�La���B��s����7�ԍ�� ���qki]���Zo��:[D�XE3�ϝ1%.�Tu�6m�:�a�\\�S2��i�S�j��T�<\�8(	�D�1��ytX����P
@(��P
@(
Q�F~봇��el�4Sӗ�����PP�>�-_��'ڶ��[}�x���s�}����MY	!@(��P
2�D]��2������I16�"��\*Rza�@�R)�L��﯇�Nl��[?��y&k�I�
@(��P
@(�b&�8hj@(�1yñVV�n�ТD�N��L�5����#����9����Ԗ4���Re�]�x��D���dDH�Rn��LSE$�9�W1̺�&�u2�&cr	ͩuYN�)�C ���9j�����H����
���ìu7�@Ԭz,��ͪF�`bv�)e7��1T6%�O����C$m~w�f-�E�,���*��uQ]�P�,��*
$�*�%:J��@Jb�	DB����"�P}��I�6�r2Wŷj[�g�7�PJ_0�ʹ��]�DY��ЄLS�D0@)���t@�����w��4��U�e�.��l�',��ifB&t�����w�&I"��Gl��9D`&(��a�π�U4�y;�uI�5f�(��t��t�/R�P2��T���z7A2���q*i�r|N h����~BԾ-��Ϲ����!7�a���ɷj��nj�.!�O����4h	�r?�Qd1�6>?������2��_���T��8�xz��8�(_��~���g�!Ǐ�:/wg�'z]�^4WK��[5u�'Z�x�gOY&S�k*���-p*���x��& &H�}B�[���V��o���k#-���%��v}� L��K6�\�+�l䟝˲���ph"bP�}���a��&������!�_�5��VLL���+�,�}A��]bf�܉P�z}�5�|}@=�S�Q��Jϱ�Ev�u��B�̠���ݸ*d�O�2�]��PHD�@1��o���Ġ*�l��ɠ*"6*|.C褠*�Ç�>mBL�4m��Q��N,]�b�y�H�r��F`AF/f�]L�X.P٘������Wb�\h8|���GQ�7*i�U�uU1�xM�t�fS���ry�{�Xm��H��AfiȑҰ����]7d���\�t%�|�#�R���Zf��E4���r�T�����DȼL��"��hV[T�9J��'?jE]'��N�Qu|�t��-yu�P��R�J�I��:U����o�z��p	*�k7�D�9t�nx�E���;U��evݺ�3�S��]�l����7���c�WEt{f�SV�[	��e�h�{�t��Ǐ�d9�jT��5��Z좎s(�R�HqC�&�	��<	�8p��t_�d��_�<��V)��]/�2����u��"��qO"��/"�d�A��L��r�t�QPL��6f�5`�ũZ�Y�N�Lb��[���Aj�[�7+CW����M�*���i�L�t�T\�tS;D��]f�-�R⩕M�`�w%
Cq��x���]U	���x_5q=���m�M�Q�Ϋ��SKܲ������P��P
@(���#?u�C��y���h
)���w�u�(
�X�(��i�D���.o�c~uu��E��!�Dr`��f��]#q�WP�����Md
���#ӎhO����s~���ٜ�o�{�t�D?��ͪM��y�ɲ���B��.�ߠ���A���6�s�#�&����|fdy��d�QgIC�p��1�7�-T�,X���u�}R��$]����_?W�)�����6���2 �tb:{���|�_T�D.�GO�ۯ���ȂEш��u�}R�H�1=��n�~��S"	F#���m���JdA"��t��M�����L�$]����_?W�)�����6���2 �tb:{���|�_T�D.�GO�ۯ���ȂEш��u�}R�H�1=��n�~��S"	F$�%��IEL�И��W�_ �~�����U'�tןM;��o�ՙ�"h����T���dQ"h����T���dQ"h����T���dQ"h����T���dQ"h�nWPSYU:�*f�1�nIy��Uc��2*�
6����P
@z7D�"E쇄{R�G��|�G"d*pH��� r��-`��6���*'�?̪�f(�Ľ����X��c���ķ��^A�q���b���C�y_.���>⭶��}�=~9����k}��7;�U��j�Xt�7s�ori��0$�UQ�!�D���J/��f�JR�V� ��ۺφ�vMnJ:��Ňw�C_d�D�Ǡ�Nd�#/�7l�#�	�I�c�K!W\yB�OA�{�z�f�T���՛u�0Ve�Fr.��tr���R��+��D�x��yX
��i�huΣ�-�k�J^+�Tm륛}E�R>")�d��[�C�Q��%ǁ���5�o������=Zd\�m�R�BID��+�:���f��sv�:��_��6��J[u�bvd��X�^�^Ƚ�i�T�S=Jׯ����]nկ͕d�h�"��E-›6!ņ4�#s�����gxW a�G���G�3�P(4&>9Â��k+�1���Kc���vG˞F����]6�n!V5�ϟ�&�A8@(�ҏ��iU[;��u�l�c�g�s
1{J�Cp���g�gFƹE�e��
�=�HnQ����&���c!MD�}av��pL
�kj��}��ɬt�ùH@0W�@�
v޷v�ՠw��j��A�{�i �?��["�Ͳ0T"N�\�.R�
��Z#�v�&^�7{�f��:Rv^�0��\Uj��O���*�وcðH^��]#�g!���N04Y �f㖐��%$�g%�/!-32�Ԝ���J��_HH=Ugo8T�eP�9��"#@LZ0��g��@T�a�[��h
��\8(	���I�����JjB�8y���K�M�f�#���|l��c�z����I�n��ڠg��q�n�N�=�i-�.b��(c@F	H"%�DJ��x<j���8qPE(c��y���B�b��D�%0889��,I�DQ&a"i�Lua!
���C�('?d=Z�r��3h*��f���QY��A4E���UaL��(8s���5�N��*���n.+�
��fh������#�!�P
@(��P���i�
��٠4h��/����֠8�6]`��cٙJ�Է�r�F4KLƮ�����=�	����ԼE*��7E���*��3sN�hdX�<���2��;�Y�d�P
@(��P
@(���[��n�x`%!D�$nY�GX�x�h��E\b�P
@�Y�Q�@�UE�y��I�f�"�P
�>㪕*V
:2y���:^ֱ3��I��5S	�baT�D�b&&�8\=����
��S���:'�(��J�G麵p�7m�Ի�c��B��8�@l��*j��\�8zS����H��.8P������}������S�u�z�}�ͅ��^�ʲ�{��be䬹���r��6�3:� F���x~���#VۣVF��L�D�d���\(`x���.���f�ԍ�x�
��Sr۬�Ӽ궖�0��qY��1((<�n�ǔ�$� ^��Q8��X۾m��&�n�zvت`%���6�]��$<<9�0�.R�nf�D���ĥ�&�}jӖ��C
���3pqa��@I�w�ܖ�Q�:�J�Ej=�<|0��ES�#�`�?���I]����%��]�|�*��T��~6�D0^�_�����P���/�M�}�;��q��o)��Ж;����]�����nL˳9��b��q�o��i;�����b�tL�Z;��&tG�c^r/foV�JA���i�Î@�Y)��of����$�(�FZ^fNJI��9J9z�㥝:]A�C���!�x�-�Վ���|zz�	.Tw�=u�4@� ú<�����������~?��=5J- �U���8f���0H�!�0�q(�„�̇P��ʠ&�P
@(��P
@(��P���i�
��٠4h��/����֠8�6aa���_�;s�3J�(z�]��}�o�j^*eg7����]����~��w���R�@(��P
@(��P
@{4Oh�u3�7�^Y���Xъ�Wզ���P
Q.lL������THn�p����P��Xer�9"��?��Y��C
G�!:�€P���a�#���\Oz�����|��LT����Uy��_����`����W�;���c�<�|^/*�����n$h	J��|���q�%�G��>� ����ì_�����u�y������0�=K�<o̠"�y|�*9(�.O�>e3F?�n.���a��<B�xa���@MQm�/2�� 1��נ"JP>��z@(��P
@(��P
@(�?��v�� �l��F�zr���j�ev2�%cYb��Lm;sM���c��맷����)�:�a6�~�K�R�I�+�)�S�T;/Bj�,	��x���b�P
�rl�7PVSGY�|݇����P
@(��P
@(5�O2�)�2`$������b�٥AT5E��Pyp�(��
����g�H��`P
r�<y+8/	7�9�SV�u��/S���k
@(P�w����/�~�q=�~�pw���(��D��>2j�ֳYn���ґxɻ�`x�Ӷ�����H�ѹf9I��p�_�Ǯ��?�	���}�y��W���4����1���<|��*���j�]ڜ#�����������g��J��;����f?��}J���_�ǭz��t��P�47��S>���*�oA�<a�z��t��J���j��jhy�����]ڝ�t��D(b�U��Ů:���C�F��.���_��TCȐ���P����pk����G�F��
�u$?�}T��K�l�����Xqkƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4�Կ�ƪ��#�4)q뻛����v]��d�W�H�Ih�\�<I��Bltv���B��q*���u��=��������+4Dl�O0�l�f�Kӌk�����=�����ԼT+:D{a�?"j���pJ��4�X�a�)n+s�Z��=$����v�R�K�I2"t��1�׊]~}�
��?�Dk������*J���=�J��d�٭��R�6ij2�R^a��������z�&j�5mo5[�!�싶揖���v�2���r]����jg��_�Y�N��Ͳ)���k��*o#�;q��ZTZW5*;ʫ�䖄xxG�kl���o�

@(��P
@(��P
��&V�?UE
�KɬuZ3e�4���P
@(g(��<��{S�ի�2�eb�;g	�JdT�:�1����f���OD��TC���)��*ɠ"ʄ���q8y���6c�f�ɍT�(�(o;�A����?P���?�8
���翔b�E|(�:�
>7�@uu���r�����.>V4Q.�_�e����P���o�P�7�������� 7�(ك��u�3y�|
��A@8|��(���l:��@s��f�z�P=�
��A@8|��(���l8D�|7�@rc`O��ߠ�>{�����P���Pp����P���P
@(�3�B�m�}�m]u���w�{��=�٩x�]�?�'�ۡ��n��OV�.��6͛h�{���9˘���R�1�Z\VJ4�r�F��
�k�����ܩ����/�{"!+�9��NY�z�E3�U�	:x�UU�vdAS�Ü�˗2���7�QY����4��\֍MT8)��10��Y1P�-�7C�Y��#��3]goPr�w�rM�v�)�~a6l�5[B�+;N��Äme+��)�Ӆ*j�M>��Q4n���"Bb�M� �=�f$k"��Cc'�d�������}/���
��]_llp�d�j�;\��&l�e^
:�&meJj�*L�3LƦy�_c�.m��/dv������2)fڴ�vum��a; �o�����z�v�c�Ecm�����8f���^���zE�#]��m:��gj��}�ލt������ҳjt���l��E�3�� Ȭ��EgNv�-<�T���r�5)J�����3��{g��\c>긶�T�n�Y�y�æ�P
@(��P
@(�RĹZ r�#�m�5�FULb�P
@(��P
@(�;ј���᏶���.+�?�8
�����bn����,�y�ڟ�BZL�mOۏ�-&p6���Ж�8S���KI�
��q�%������gj~�}	i3��8�c��Rg(6��1������g*6����8S���KI�
��q�%��3�s^��p��St�j~�}	i3�S���KI�
��q�%������ghq�Ǐ�|��P�8�a��Rg�;S���KI��ڟ�BZL�mOۏ�-&p6���Ж�8:��!����9C�P��=�4�������g*y������\.��N�9B�s!���L�)�P˜�Ìʘ�)��UΡ�3��9�0|ZL��?n>���ʍ��q�%������gj~�}	i3��?n>����ڟ�BZL�mOۏ�-&p6���Ж�8S���KI�
��q�%��
�YC��i����v6�E��/�{��E��ix�_���R�8�$j�e�oJU�يnH����3��}]x���[�Q��iC�M����1��m��לYU�G��k01�lS��"̤N`���4��ۣnzF<��i�6������~��=���ַ�-��	iǯ�9��5;��0	���$󬩉�)��l�)�T~��e��mn�\��z�J����gp|����2�nƱ�R�����HȽn��tl4#��$���tC����󴵸JuZ��Z������YUU\陚iIv�i��p轝c�@��{l�\����pOٕ����ʨ(b�s�:�g^�;��[2�=������'�N�������u�bi�i��
�'5���%�,(�w7'-$؅��@�QF��_��3`w�*y��&���Z�{l�-3q��qn���SI-xL�UE�u.orb��6kB��Z޷�g��"6<Ns��5m��2=�Iڦt�?w:y�Ec��1v����kk).���u�3�5�O����g3w�ʳy:F>��"<[�LsT((��P
@(��P
�o�����HZ�ې4߄{�傀P
@(��P
�����:�窅�|Gz�`�1'zO������84�7�No7�>w�F$TI��P
@(��P
@(��P
@(��P
@(��P
@(��؅��h�6m��,밵�5>�|C�0o��~�K�B��Mg\�D#l��.R��Q��	�ړ�*����c�9��'eK�YZT]�5�-��~�&zm"ذ�O)��������U~�rE�1҉��=�d3B5�U2�]�y&Se*��\�J��+$9Ǒ]�V�A�
T�����2�o�^�L'�Q����#d��n[�'���+:e��%�H�uޝB�r�Ή�[*�Y_ֹ�l��~�Y����]�ÌR�jU�XY��A�`���$�1M�S���3RG��wc���VT��M�E7�p\&Ʈ�ڊ-^W&n�K��ή�����mݢ,�+dc��"	��"e�A�&�!9?�j峵�Y)}=���Kkd�xR�x<�ޥ|�ȴ�b��F�唝��s�N�J��^*񚪐�"�tM���&~V\�5ljigfp�(��L�_WOYY%~�O;�ﺯ�2��R��PD�ωQG��j�D#V��9YS)	��U�N�%�B�v6v�6t��3ɋ�QQ)��v����k1��e���d3�@(��P
@(���Z�v��)��/�X[{��"*���P
@(��뤁��dcyʵV?�������^%������K��g7_,�g�$R����ĝ�?�/�s�G�����8
�޴����Q'��@(��P
@(��P
@(��P
@(��P
@(��P
bO�e��ٷ�Գ�������|���-/�a�olɨ�94Uw�E�Ld��PS.S�]���V�E���[�Z-��K:ޭ�S%/��.K��6�ODͤd��RU�P*�1?@�#�1)��c��b��Z�Ԧ�;Lr�v����[����x+,��g4�*ԡ׊I"�e�&p�R��S��UV�Cf�$�L�l3&^����*�@�5w��f�5Hf8�w�
�1����D����cBŒ���@(��P
@(��PK�h|��Nz��?�X�~U,�P
@(�����t�s>Y����\�ߤ�N�+�A���oӓ���+oXj�w����M��,c�O�$�6�z���bED�~(��P
@(��P
@(��P
@(��P
@(��P
@(
�Y?q���f�Rλ_�S��=����촼T.�o�Ϳ�#�B�[{��=����P

C�"��.��/�j���ԸG��assets/image/05-bg.png000064400000010252151327614500010454 0ustar00�PNG


IHDR����e�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4E38E102BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4E38E101BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�Z��IDATx���r�8���Lɖ�%�;����e߸�!�us;O��y��t{۲$k�N� �W-$��*T��d��p��L�D��/_��}��y��\\\8q�_�~�}��($x�)�<�AJx($;���@��v�CA��<A����%���q A��PH��MEE}q���x��?��w[v"��:p�T�E.kuj�>D@ڐ�=U\j~n�ʌ�t�FP���к�]�Kc��q���#.+[-�Ҫ��fH����7DW��Fr?T.<dC�Aדּ9�=�3Yk_Վ��j<h-'I�vF��@���#G^��&R����x6L�B����BV�U��x�H�-�%/�$*�w�F�Xx(��~�JӵS�7'��٠zP١x�U0N��C�&�o�W�EDz���=
���ʢC�1-��{��xh��a��TRз�jGq����I=v�r���x�N,�X4�]-�WU'��MD	���WBY��^ԉ<�N&�Ƙ�\ʨ�ſ�0�{˗ʨ(������jy�Fs��[zKz�Dڬ�����}���5�,����=_+v_�ŻtX��j�[5��������>�CA=[tZ!����A%Q*�.��&<�o���p��b�u�j������/��T�%eh�v��
V�d���$��K4��V5=�g�&�]?�˯��PY�'
���%|y3荰���e�4�/��z=��/[��TdX���!ɝж�{��:;3�W���
�>���Zƫ�0�xg��8�R�����q�w�6�����M���o��.�"�xT���x�U5Y\�y�!��w�&��d����ᢿ��V]�K�'ei\����a s��%�����X���O�׃"^�P�ҧo���K�p�@<.�r8v�[{�(	'�Y�%�=���hO��pgD(Q��Z٘Q��&(�d���肣��X������r"��əG���hѻ/z��G���s���%_w�F�V�^��j��#��</�Y�{}��{�ah�m��[IV=Ս-G��@���2�y�Q���TX~@ݬ��_�}���6Ƴ'�ߡ��qǛ�^��V�wTK���b`mGW��7��̓lgEG�MF�w~��
.t/�f���p+~�K�S̹a�N���<D�@߰��3;��qæ���#��]~ӌA�k�JKl6-�T��!���3&vղ���"o7T������ZA/�CR9d�͆\ˊz�ﵓ�t~%�^�^g ��E���osz��Ί�c�rx�d�_�A�s�;:��(��l_N��jl]�džѾ�YQ�&�
v��ȑ8Y�_��;�0�6��3�ф�����V�%��ΙxH��=��YѾ�}H�	����rU���)�}͊�(s[�)�ێîu�i[YѢ�M!S^�3De�I����{o�0�W��Ϟ�
:��>�`׾�=�۬�Ͼ�OÏ{�gYQ�#<gQ��UȊ�biB��Y�P�g���� +`����Ȋ����*k��~@7�"9mW�?�^�hN��^�0N�CV4���{�7��[8#+
�*�*˂��z/s��5<z����Ñ8ϟ�Xn��@:�x��gI���C�t����B+x?������9Վi��
�{��w"�,��H�{si|�"K�&h�2,����o4�^�_z�I4A��(��9diH��㤹5���'ao[>��C[�O�o��_�0W���2�R��a�d̽)���<�x@�2���,s����M��%p���d��-t���h�a�(���O���BO�'/��D4�IÙ4���(��ߦ3Fə���aj��!����>~[/�YJ<ؗ��f�џ��Ҥ�C��̢	�0�ΐ�9��:ikv���w��	7L]��ʕ0?C2���Hb�6�k�/}m�A�[:%���v"�x,��u��gON,W�kM��ܭ�x��kw�Et��#O�ʫ�X�y�Ec�S�b�2����-S.
��M�oU$p���m��e�~m���
34��;�;�:{{ ��������-�?�βԠ�!�0��7a���೷�����E)��s�l��2�S��゠\p?�/�Y��ט��^@NZ����K���m�Bl;��6�u��F��79E�������.5�"y�"b�d��h�]��:���0;E���mĶ����`�ͅ�"^��D/��7�^=����w:{k�Mj�1���t+n��j˷|��J�h��v�k�F^�c�������Eu�cn�q�~L%�`�؞
���"�Dy��F\���St���z�$9��-�>ڦ-��ޙ|hX��]��v���s�-5�3�Nu����lF� ��t��#���5{���ۘ�C�뜯��h[�����Fs���w|�v�m�#���?�����u��#T���[��l���8��t�t}.kg7�a�*�fD��k �ol�^{[����Y9W��N���������7��xʰ��ǎTП�o^�o=a~jp,��PJ�[�B��v��
��Igo���X{[U���0�����^{��"�w���acTmv������S�=`'/?�ݔ���x>��r��0�)��a��p�߻��>��-E�Q��Av|X"_o+{낗o(/_��Igo��;�|�<��>l�i�V��F�oxHgo�	/�x�Yl
���>��m�Vٚ=���go�D�:�����������͟�k"��l%n
ȳ}�+��A>h�P7�|�n��y�����"�PZs�
���{��K��j����,���a.���?Z�m�<��[#�	�����M��ۚ�G����"<�!�e�(��g�È�TE��{��0tB6��>/_fk��Ի�������؁���X|8��G��)E�CE���K�Ey� ڣ�s���+�wj�oA���=C��|��a�}�S�/�7tM�
���ע<�;�_
��~M>l-���2�k�u���(�!�g1���+�_��>��R��N���;ؠHN��Fgt"�C�E���4f_��)�7���(���1:	�����;��=&�}�F�z�:�B�q���T#X�_p��vO�I��B���!�C�� A�<x��!��_���V�(~9oIEND�B`�assets/image/08-bg.png000064400000013511151327614500010460 0ustar00�PNG


IHDR���"��tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:7A054F56BDBB11E4836F80A8CCD3E4E0" xmpMM:InstanceID="xmp.iid:7A054F55BDBB11E4836F80A8CCD3E4E0" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:70C56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�+�yIDATx���r9���M$�Y�ݲ�{f"|�������їn�7Y+�����JXe���(������g1e��K������Ͳ��1/M)��멒��L��פ��Ia�R&�?M�˭�1�H���K���
X2x�V+"�Ԛ�v�O#`�ï��4���,%�ͼ�RN��*Y�5)��|�QKE���g$��P�OBE��#`��_ˈ����F�k)BF#a[쉄���t�&2��W"�
Z��n�R�^��^�X�B�MB��pS�n�����3),���!'��U?��nF��o[
�؞K��2�TѓFԭ��0/���?/{2�<�q'��KI�K�]�&�#蘳'��TN�K��N���D�-�_HɌ~̠�,)�L���Ÿ��KJ:#���.Q�\��-�����W˶�s+¹��ٺ��b�P�m#��� ���U�s�#؀~�v���f��p�$�,�NN=�M)��Q�ﺗ��S��b�2Z�y-@q�;8zvS%�I�#���l�4ݡ���%�v^I�,c:�H��g�	�v@1y���&����lI��PB^���8�X���I�dq��Y��%��sY,��"�[{,�(n���W%f$��8}K�[�s{��ʳ�_���?e2�q�v�h`R����4�5��;kR}
�E��t���ԍ-�����{�Ny�g�m9�ʘqu�����~��<�CyaB�����dž<�pA��������yV�<
)�
��guX�gх�ɘ��J�A�43���ʘ?+,yGƖW2���L@��wg}����M�}-�ز�B����c;ԍL
@�x���Еݒh���f!d 6e��5CdL%_�*��>֏�����+��/51kuF�(8f#s�+~q�"��
0A�(�K㥇�ŵ<��{!�J/�B^�݌]ضta�ΉM"(f8��<
�y^��H��gʶ��&m��9B��e����W¢~0YR��c�!R~�H	b��;�Mu�q"��2�
����֤m� B��,����B8٬��w�pRH��g�I�?����^d���)���V~�~����=��Զ��P$3���d|��m��g�po�8�h�ұ=s�K�Y��I$2�� #wQ����f(m�5�'m�Vu!���kL'�m��
�H[8q�|7)����]��2f ͑��Y�L
(#�	y�����/mdR4)W%䁣�|4��2��1�Vn�<��������9�*��*~�<P��ߓ�%���VK-�9���m���~�e,mǥWe���RH�/w-�l��L�
]�D�����y*M��̤-�H���m��&�L���2>�6=}�%wՐF�\J�~nî�D��ȗ�CF����Bz��.��;��)t���O�F�
�#d���H��ז��B�!y��vy�V�^����J[�vA�)�^�PBrwjO�����
�f�6�g�b���u�O�~=μy3"����wGIP!]��/��b�0�
j0W�E-�ø�g�(VM������C�B�Ծ�3���mD�W�'쓟k-���[�e�g�>�
��D��ךϮ�/!9lkf�f��(?Ba��L�t|u]}�)\�%�c�$�s=��=z:�1!��Qq��DΉr<��+�g�4��M0nOj�U=r�|�EH�jgU<��xR{��>e8�'��;�>3_nr�g
��.�iR�\WW!���˛�X��*���ʰ��HEeL��9���"$_x���Bj(:}���I�ú�]sDW���������Y�8#�31��iӶ�H�o2	h<���A�8&��^(!;J�Ok��|LH�i��F#�f�c���3ҭ���;rXǩq��̔ñY�L|Nw{ɰ��N�t�&w|	�g�l :�)Jn��YS6B�E#�Y9ܯF�*�
��d�,.�ҖSDGP�(�9+���d�#O����qN��{
zb�d���_W��1U�-W!y��6M�*�M�k���Y�"l��e,زZHDG�(PH�*hz;PF4������R�Y9�]���!*䆭�Jm��
����;Fd�!���ۺLH�R��pw�g#���etWpwb�)!����n�Ќ�G~d��v����1!5�U,u�ݍ�cBv?��@f7��	i�]��v���r�d���u��+�u�GZ�qd}����R%]������R!��Gd��8#�8rm�����(�4���!�dF+fW��J"~�Ps�n���+m	@���A*�W�cL�;?�
`<�ޙVZ�&�`�B~���ۻ;nQ���u��)t���
!'�nk��BH�
�d!�(�l�1�
<}����1#����VH�	�@H�"$ϰ�
,�����7��gk��	��9��Yk��>�gX���.��R8��ߨ�o|��[j�N���Gw��GH�$�*B�r����i!M� ��kNk�.��ug���Gw!��
yJռV����������1.��S�v��aEOių��wo�>�1�nf�w��<lݙqd�XH�$�B!����	��tԴBj����g�,�-� 
!o!$�	�9oBF����:6)s�Q���@��3�4B� $+r��R�:a=
�ˍ�����8�n+�]�AHPNX"��LiaR�҂�������WZr���P�<J��'t���"$�$~���.�D1�졾���'˄Ԏ#1�
�r�\Ə˄�V���w2�q���WB2�>��cBN�V�Bh�����g�����cBj��&�g'~rm�����7P�8;qi#$/}h6,#k�;Z����:���@� ht\�!1�@�J���#ɇ�`	T��hu3��h��F�m<Pq4<�/!��5IPU�^���<�z�
@U��=����U��h��F�L$�m9�=e��e<u�/@�"���z�O	9SF�g�+�@u�I��D�Y!�~�����*l��d�Up��ìf�uQT$:�(������v�D�s>�w@��$]��C�B�H���(	Jw��,ϫJ|�Kb]��m�%�X��r@��"����@٨+ǎ*o��G�_|���]e��8�r@�t:ܖ�B��ir��B��������]q��qi�%�Hu,����I��.Hw荒�������g��Ґ6l��%:f���h�A�躂�wU59'dP�!]�Q>^y��hl��jm��&$�寁�4����W�pΛ��z���xΠ (�5��.$�����K�LV���U[���ZH�3kg�8��K�XY#}��9N��9#]FB͡;@^����V������61������?��U
!$��κr}mD¾r�H��G1
i���Y&>$�u`�l��*��~��q�*���3/�<`u�I�0��U
)�d^>)?��W��&A����i���$m=z!�u:V~�.�$t�
is��cR�s\���֎'�RA���&���T~��!�D!$��3P�+�%��:���1�i#i�ACvH8��ü�S)W�^����O<z��p�jzP�W�_ޘH{�YH�0>��?����s�*�UF�S/���j��2E�E�x��t����9w�$�b�di� �-džc��W!�|9>\�WB2:�S���q��k)��&�_9|�g�~#�45�.Mi3.g_Q�L��d>:��Mw�րE��~-m��"$Ϛ~p��.�$���ؔ6Rw�qe3���(�"%Ϙ�2/{h{`�=i��ɸj!�J��'.���|�\h��V.cB���r�<Oes&�oU�5i=��_Q$	(����d�w�<g��6.�����]������i�W'�N��1�syK�l�ł��Q����1}��_���2|�ta��fK�z�.*I;��ź���:[����9��� �½�,K^�'v��yw��H�2��)o��X�f���
3���0�7N�p������P����єg��`mm��B���{ʞq��n�EwG�c�H1����ֹ̺���'��r��9�zA�#k�(�m5@Ŗ<���v�/�/�	o}�r𸲕�{�ؼ��'O_Á(0'ٷ=����GE��"�8�����I�Ж�	G^�ٽ�+�'�8���.�sy�nv��g����.%�e��^I�=������jBs�xa�_�%����7<��5�f^N�n�l��&�ꙧ����/oM�\9e8%�\]p!b��N�P�.��AG@]��[���XD�,C%���~~ �"Ѷ�ٕ�
��>��N�RN�X'����J��U�{4������W��t�6�ܗȉÈ�ӔH�����XqX��+��6C[nIĬ{��)7��o��|9x�vTq	[7<�
�'GT���4u.c��D��ejKٛ�y��6炖}2��'��"b;��uɓl'T�U��m*o�3����2r�s:�Zƛ��9�Z�(ؑq!��G
b_�_%��V�.F~����X�	yj]"Q��ɜ���C)�����k"��{vQ_�U���U��6G1
u�*���c$#)����
�nM�~-��-Z�ΘJ�Xe!��i����Ҕ�[����7A�,U(m��Δ��Ґ�Aq�|��zo�g�q}�]�*br�|F��7���U�T�"Nu��?��Ϥ�K��Z�p%�U!m����!r�P-��2N��N��K�e��S�Po��gR����\q(r�T:���^H��2W9y2��	�2���]��3�r2�
��\�woo��v^����]��]BAg�}"�5a�(��TΙD�o[�D�t�Z��(oS�����t �T$5�&��d�4VMgt��`��L���$I�E���Pr[�� �)A3l�T!���Y�+��c�b���d�����}@=�IEND�B`�assets/image/03.png000064400000072462151327614500010077 0ustar00�PNG


IHDR�..�
�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4C758B58BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4C758B57BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>Sw
�qbIDATx��|TUڇ��d�H��^H%��{AEPWEE��Uw��+������t�
H��{HB	)B�L2���wg�@�i�]��q��ܙs�=s�?�sΜ�2��� ­�Z�@AQA%AADIAD�A%AAQAD�AADIAQA��mc/^�_?@�����I���h��k͍5�y�$"#����jc��1�[�dk� ¯	��\}q�F
�
��"�
"A���*?g�Z����W�n�(5S�T7P�D�An�@�����n�uݢԄ ��A���'A��cn$f��pJ
	R�bgч��k��#U=��E�D�A"�p9����qk�35Z�\q�&Qj� ]�]�c#A����^37�{�>���^�t#':\��4��� ����7*0u���5�n�Sj�%5WL�ۜmM	�ՌC	� �V��|�d�#,M	S}�jLԚ㖮J��A���ƞ_��QAD������u��9�T�k�*a���jĨ9%�$�pcD��BTWh���kR�n�SjB���DH�a�Vqa�*H�*F
��1jL��M�E���;U#��1���
�R7Ӂ�kA�Q��tu_35!D������x���»V�t-cE�%u=������"J� �E�D�>Tok�N�P��y]�L�s-�&�K�$$u#������L���;AD��k��S#�35�U#��$��:]w
���ܑ�	!R7�ڏi�H!�I�߰C��"D�;��TG\L��&S#.��c�$N
u�ݨ�w\� 5�qCy�L�$�$�oI��;����k�V#4�Z���[2��Ƅ�BtÜRb��1���S_jH��ӭט(�0	��[rJM���ƌjw���&�R���MSjΘMC��n@�l�R��4�M"D� ����ݦ:�k����T_��=!��05�~^��t-N��.��1��Bd�L�Ԕ05gA�_� 5�%�'H���h��vJ�:b�X�m�[jR���N���RS�d�qj�(��q%A~{�)1jL�J��컶����wU��7��zƔ��G��P]1�i�A5��Ԋ"H� �V����sE�:"TW�Tu7$P�㽩��ڝR3{C3�s=6
����F� ¯Y��W�Ե�IUG��scu_�{��mR�ۮw�CcnI݈[�&[[��U*ո���q4"2� 7�a5���l6�1��7"N�W�1��0�M��j�K�+H�誳����]��REAn5�2���,�aR#��@�oq�&�F޺��]w���E���7/�p��R��\��j�G�M	S���C����jScIF��$_� �-Hu|6��q��fF_�����_sf��&A��dž_.KT{%U���Ӆ�┚��Os~<[7	� �>M-w��U]�(5�wc7�S7!H�An���wӇ&��zƔ��)՝�'NI�qJ6\��:
iE�;j�f.1ԜI�A~�N�&7�ՙkq+ͽ�ls&<� ��SjH�[Yc�:�t
B��QA�}E�9B�,�Y�����3OA�=�����k���]�55�BUk
9'A�����h�MwJ��&u3� �.Wϯ+�����{��A��~�$� �>N���M����
sJ�M�kl��Z\� �m����kn��iN�9;P53�SA���Rs���5�}w5��z^A�u�Rscys��9�����"J� �.Qj�\�%�Q.���QA��E�F�
wJM���*� ��_�ƞ_���!�T�NUWa�A���)��Cn�(56�OH�រ����\��$�p�;��n�(��A߰A���t�1����NFI����o��w�y�8$A�_�c�]��9%AA�)NIAD�A%AAQAD�AADIAD�A%AAQAD�A�)l����…����R���1L&��δj�J
NQ�Ɠ�����-�����f���YK��s��iz��٤�	���-�C���G��d���T��8��f�E7*�0�����R�׀��������Z��/EI��MU��V�UD,��$#�fE�4�o�/�\I��ln�T�_-�.�}kW�j�.��J�l��yLy`]>�{m�2h�((�_|
�r|�6�[�5�X��%&��;m<N|�S��b2���;���7�s�\ie�����J�n�W]6fN��<7��r]]{ܭ"�Z��M��\���+��RqG�M^�:N����ز7�3��K���ڗ3ْs�e���ݲ�M6���)JoD�9kx��%�^S�	]�}���b�@n�yt&�┮Յdn�?��lgBl
X�>|�^�
~���9Tj���i�|@���'$�R��ư���<�h��Cǚ�HԆB((��_.��?O���X�d�/�S��A,|9���,KY��O���7�����5N��0-*�ȸ���\W�,H�v�]8K�l�mC�����\v��Y�8+Wy��+�b��MJto�T��瘔ߍ�T����8�ώJ��:�3�_\J�5��N���tz�q�u7���u��z�5zJ�Q�Ibפ���t�v��6JP�r����^��T���+�ؓ<���W�m�챯u��+��Ù�)��_z�v5���V>��k6����c���o�W�*��;���3㢝.�Ұ��*��O$�V��^�S{��V��*o��O=Ǹ�f��l�:hH_�+�	���gI�Zȿ>\�ɰ;y���	 g7�S�\��_�$űU���Z�%o�$�g�b����`H��{~�f�2�o���a`d���n��7�d]�;��/�ȸ.�����?���BW�>�4��S�E|�?O�q�D
g<�[a:�O��mF�r&�Ö�M�1�hێ��g�$�:�W��g�9T�G�����?�=�-+�DŽG��
�g��_�'��sC�Q<׊�38�8�gz����/8�������|pPU�o$8����)~L��8��u�jrT8���`��||h�l�;�!:yWI+��wlη#j�}<=@	�'60���#|Ǟ�<��_��Y��8!�{�V]�˴�z�a�sy��� o��&�
�=��+��x�=��y<�<���9��Q�'����imW#�����U�0��+�<Z�Ta�Y[�M���j�Ze��%�'�J,0��ĴY�8�
�g������L�ˠG�!�}����'G\�|Of��z��ٰ�$-���:9�a�4V�9��������fla֢��X�w���0<��A���Y߯�ΈJm��+���"B��Ϭ��W+ө��΃�I���Я��N����
9���x�`z$%b	�9[y��/�6p$Ϗk��_�˳�
N����33_������3�]�cϾ�.�rW��������p<Η�q��]��]�g�r�_��JgSQL���Ϟ�|���Du�`�����}�����}lX���D�\�~�Q�������|�ɽ��)�;�S<�e�]��z�-��&s����0�%+^}�wv������^�}Nv��$�7+�z��������H��G��Ik�Z�T�0��8&��ށ�R��S+x��Xaǹh3�_���Y)u�߆V>���vQ��1$'�⪜�����?Le��D'����K<��j�av�T����qM��_>�i/n*=K?�̌#�7g��WX��Xz�6��ǟ����7sAZ�F;7����V�<�bJ��QC�y�ώ2�A���ѸiS�������;K��o�ǡլ�q�[�!�����is8ly���L�x�Q��cHO4[f��t��fN�]��&���o�>�P�Yɷ��aR��Uam��������C_�<>����z�o�2l@�t��&�r�8h����9�F�#LWg���2�_gJ��ԉ��)ո��:~�q���Z�[X�cŖs<���?����C1��!�G�E|��$D��w��^9�y�����Ё�Ç�_���}�A���ξy�1'���e�It�����Q��ƴ��wu���$'�7}��C{�8)�Vx*a#s�t�N�b��s�_����1�2�58%��g���������ʖ�
3xW1�s��9�����|6�1Z(�Uo�j�$��5�>�	[3���\����y�>\�O�C�q����Q�&!��<|G�_^�v����K��[v�wY��ZX"�J�E2��������̧����ſ���bF�g���>��1���O<��f�*���w*�d�Kg2s����4�4qd�����|���i7`<�>����3����$:��}�h͕�L�vx���c�Z_����`V��A��n���ͷ��/5_���[��ſ1��b�=���^"�lPk�(
�`�3�1�zW z�J��rv�TVDN ���b��q�&/��y��`�GJ+7S�����x��G9�{�@q��E���>��Q�(5���/wg2��"i�~�.��G	�˷��hV5:��6rO9�??~�Qm��{�ۅ�2��u��ǰa$�*o���¿��T��{8e�4�zW5�|�xy�J�+���A?�]���lǣ�F�;�E���$��P�\k������X�j���Mjyh�l�m����'�}
��h���o����k6�Q���]�8��[�j�h��Z�8��Y��X:z���|9�9���r�q2d,��V��5>�$��B�cC}0CY��N���	�j",w'���1�woK$����t��q�.8�P�N��7�y�]PZRni�.����`��c��E|��!'�Q�&#6F������}�)X��S�#�禮�]s��oo0zX?��6n�5-8�v��J)�λ�;)m�R,F�r�`>��jG���Y� Ki���ӌ2rpZ>�I�Rw䨬B	���*ʨH|��>{���t��k�h��
��g
1�����ylҖa�����V"��4�����[������pq�U\H%��咭�p�Ed+0�~���J�F{��~A'�T_Y�8�;�j��>�+�nS^\���^9����6���QLe��VA��.
��+�Z���u����������kt�{�=�^��֝����WwbZ�Cm���
F��
���]q��8'�W��dɱU�|2�Ӧ�<��u|�������C���۹ ��Jiyx0yX(S���ͧ��eT�P#�M�W�;�|2��}�f0uҿ��;��|�%A�tW���sp©������q���`�C�[�&z�(#�����TO����r��KPb��6�%��`�E/b���_��8�B�c|��D����#��tbnx���vZ�vZ��/�Z���\\��%s����u��,<���r�Zf����p���J����2�Wy�^}p�2�N)�k���4�f����r4*[�yF��B	J��,z�s6�U�c�`@'��OR\��P���r-��*1���"B�Q�Ƴ�X��җ#~�g��7xA�����޿��Y�,�`�+�>O�=����份j�Zr��8p&�Bř���bT*P���(`RZVzw�<������J�`S�����*�>&}p�.�Q��Dc_��ɬ���`��ۄ�҄V��K���|2�W�qn#Z%�l����1�/��Ҩ�Sl��?V�)��Twm:���]�Q�b
~���`8��w��z�/��SX��ٻ��֕�NB��T&kWfX����7DǪ!�㇕���Z^�=��F^����?Ӯ�"�/�}�S�����Ҭ���q��$�����rr勁�$\���G����&3x�Q^{�Me%��K�X��&��y��=�g�.�֘s9�j�q	�Ƿ,�����QtkF'u�uN1�Ӧ1+:�~Q�uZq%\te�����:��ҵg4X*��cV��� y�k�g����Rj�ɞ��e\��җa���8*��Ԭ��^�{���J�*<&r�)���*X�2�(���Je�v+/u����1�/���P9��ży��gLՐ߼L��^P�1�`{w��(����tP�Y��O?�y�?����D)��_NfEnw'�"{�L�F
��v�9>���y�;�����X6va}���<��X��ɱ�������i9��Jχ�1�Ǹw��zݎ�#[Pi���#��=13>�����DL��Z�җR�m1�MoMg��ox"�
e_�/Z/�$%߶c�e��&���MfV��0ʻ��siQ^��_�|v>��O+�J~��&|�G�}&:���Hʷg�5t�4�*�v�fJ�IO�����<��)��>�?�=����R�O+?�f�+�.<8�']x���'s�ۭx!4��_g}��t�]Kʎ1��ؠ���h[2�O#'q��V@��<��]/�84h-e�l��o�]t{����̘G��b�^]5��`fy_'+��=��_�i�nLz��ڷ�!&9�5�j�*N��P�������*U�������J}i�^)K�Y�KJ��rJ˄�"��li�5����)��-
[�{�aX���/���25�M^�S�kH�Ƈy��c���a�(>Ǚ��^�:��W�"t5�9T-�h��������}�6�Dq_����!~��_K�P�7o�tV��mM�ֽ��Kw
�7nd�}8eJ��B�2�ovi��B��)�(o�ײc�~;F�[ˢJ)*-�
��BGia�%7f�i))�_6�V)+˰����6I%H���Ui�����\,��|��b����#�w]���ÿ��-�{�i��Ù��P<�7WW�މ'6�155Uuy�ޤn"�4��DGG������Ulڵ���μ���
T�� �
�y��XǞ��P*�����9�����6^��8�>��[�����S�ߞ�Ia�z�gD�7i˖�j�)�q���Wl��X�2�N��x�?�\r������d�n~.�bH������cw�L�ū=#{�pd�,�i'�iI�^��tҒu�@l��$z)A�T�IC�f�aTp��va��сV^�M�ܚ�,^��cZ/:
L&أ�ܬ"�����2H�#7WKh��
r�?�=^�V3wc.�]z��}���c����?��Ц;ݒ�1Z9Δe߱xwQ����t��3[;ʳ�٤���݇8�?���ez��(�=C�C�r����T\�"á5#�t�3�C�mٴl.+ӌt}�޽�z��-.�@6�?kK�b�7�S>�?��x�k�5���K@@��7I�L�G���ߩ��*��G��W�4ruQ:��.g��]�:|
�����0l����:����K2kɹ`Cx�����4�R���R�x~�'-,����[D|�4���5�aQ-��(..�9�3�u\�IW@�M=���[�vwh�˾e�a#
~��'����Ο.!f�,���gh�-����D��Ж����=�8ӵg���- ���lZ4�6C�A�b5��q�j��:�5λV?�E�Ln����-��҃�a�.Ɋ�)w�'!��*�:�|!��!"w;�����e�ܕ�`<v����=u�:30���܃�u�w�N|�.�-ZɦiJ{͏N��8���]��G�1�L��]?����dn Q�o||��6M�SP�ϟ���WsY�T���m�����j'�F3w�ȑ6�

�o��[�booo]Ӯ�Аr�^��/ֲ2�:y��ɲ��-����|�:��x����f�����~��x�~gdBX�ti��`k��:�P'뤆D�\�/cƌ1�*Ɣ��Dll��0��%2� �b]�F����/y��*a�����G��SJ���(	�-����5	�/A���iڝ�h�*�(��`D�A�;�\�i�V~|t��`� � �$� "J� ��� � �(	� "J� � �$� ܶ���!??ߺ�Cs�ݲ,�bY����[
NQ�Ɠ���F��ѱj��֥�,-���9s�^^^�Ԑ �$��ɉ��H\]]�N藢��Ʀ�Ei�Z��ү~'&�3�vv��nZf2Z���Nc�/���DƔ��F�,]x��S\��˵����T*�ȶɫW���Y�f-w��U��t~-�}9���o�YPv&��ֱ~�:~�w���m��:y	��פhh�K�W�~�����ere�F�yy�+�R�(	�oW��;���7�);{��z˲�Ż|�|7nf�ʕl*��-#��r*�n���X��x}�f�l�š�1�Ȭ��|�*)*�QqM:q����qRUO��]˿�%sע��^,f�ԯX�S&�?�t�	�-�~A^.�:�^SK�u�AUq��P���S�t�jn�g���pqTqa�>J�N�Mk�0��~�Uo:w��Sg�5_CĠ����8��/Nx��8%`�;�[v��n�J���0�(!��ƭ:��k�z'0�O��[6���ď� m8�m�/�2W�&{�}�Qzx�s`���ݟ�*�;�����;ߝ�͌���Ƙ.xzx�j�e���C�~����j��еw-��<���g/�6�^�zQ��eNs�\=�c���Kw`�LE��]�]�����h)GG�'�h��c��9�8L��xjx;��ص�ϫ(ݵ�����7�^"����vSՓ�'�E��-ݿ�/�m!�9����_��TxqJ�pk�R+�P��M�yOAu4;��KS��g�=C��cG��@c���=�u�R�(���X�v��Z��|gz
ɘ�,��v.)���d�38w���9��0�
w59~&��2u�l��?\�i�*�������u��b�X����p�`���>x�mf�c��.�9���|{!��w����)�}�;�X>W��7��6��wG�����i�9��ͻS(��g�"v��Rj9���e�t��#zLHd��ch׻'b���(	��������@����������ܴ�9��Y����+�N3`$%T0��g��G�Ib�.�M�b��̇���Z�ϓC|H��s~Ω�
/NInqQ�h,����4S�
I+�uq.�:����(��w�
�JXml��6bq����=��ҫ�%E`c*G�@ϡCHQ��՞o�"�Ԉ�}�6u��=�����+�~bG�����%������0�\&��D�?Ib�aD��:�#N�.]��;��tc"�W����3�;B[��\����6x�zXN�M�{����?���s����%В�{"�3S�<�p���rsp���
_�0R7�r:|,�Gt�|L��xjhӻ#�u�.m��i=�A�>�����@ErL���ַ���`����8�}Q���0���-�N�v�R�7w��ڇ�� ��A�Ȟ�N>=�ص�}W:a6��>��Ç累��Tz%A����ʕֳ��c��L�l�+/*���A�8_6#M��	&�/���L��M�������?����\nBc��He9%��B��d%$�
�Y.hh���⌳d�'9�;6[Yv�,�,_C�"��آ1�q��>(��.�;~���A�b�W�GSP��.�0��s�=ԟ�,E�t�a_���7�-�������q�U��*u�!Wn��c4�S^���TOQ���3�Ǐf��?a^��ѱ����>�򥊈����^E�E=�NkӠ��'��nUyh+��uGU���Ta�ho��w�
T�3ر1O�J�����.R�E��%UU�ܮu$G��Z�Du�_�"�n`�L��O��d�?�_�ASYI��r��l�`�[K%���F��l�ܳ�h�b�_yq�1)6�{:�':���iS����+wYV�E�`<��P�F����j�����cV܍�q?�����+��L�ъpT:����x)_-�ᒈT�U�DZ�s��sJ�*<
F���O-��ޤVL\C#f�S���<7h��+���x)G���gF������;�����z��'UYy�#�T�����h��|�����~��Nrڦ�1%A�Eۋ��ǰ��/�����8���[w�r�0i�v2o[6���
Z�KJ/O�0�)*,"O�Ƴk����T�:��ٻp��M��o��a�t���������?�s��
���TfEyd��'��K�.-��vT-�Hhs�ųV���ž%s�|.�┍���p��~����ٺf��g!�A��h�����<�Ώ�7��Tq'� $v�����nO�4�O(�<	�?̶�{8�]g��R&E%%���o�3�*��߬%�RN-��aW�A2�d��
�v��!��".�Ϧ��Ғ��T��I_F�������Y�;U9��8���r�T�z��8qb�SSSU�z�K�&�McIaLtt�Z~�.�1��%  ������NCX�/�~9�򞼼<����F�*9ƺV�~���ea��w��/�������j��%����/�N�W0�[�rd�LmJ���N��G�k�7RpAGB�	u��_��T�Ƞ֞W��d��T�kxGb]�l*+��.��~��4v%���|��fRMA��	t��!��%\�(Ⓧwro:E��K@��Y������.t�ݝ�m��
��?�$�2�.�Ϗ�2�yD�9�
�g�i�r��Wky&}�xK+kѷ &ęR�=�]	k���,��)�Q�׍�P/���A/�#�
�,�,��̄W�$"�,�Z���N`�p\���U�ʥKظ�'
-�k��-�Weq{G�1�L�X�W$S��@�����Zm����*̟?_U�Q��Otl�$M�dW;i4��#G��i�Z_��kg�֭���Y״�|�Z��/�Q�ʔVxi)��ɲ̐pӰ�,�t��J��0��)�$C�d��1s���3�|��@�[���8JJJ���-Z*�$��Q�[wwwk��2�o&� �(	� ��� � �$� "J� ��� � �(	� "J� �p�ȏg���Ӝe�,˿X�#���D�A��9rĺ���c��
Z�Ҳ��^���ٳx{{�RC��� 7'''"##quu�:�_��">6�.J�Ւ��~�;��@g0��s��=��ɀNo��[�a%A�s4؅WXġJBU�6)*%�o��I���?��	��啹g���	��YGoF�y��s�ԨZ�ұSk�{U��5��])�>5�v�W�h��+E��{�+7U�uxi�ʑq��J��&��@I^9�.�)�?���xd@�U%A�u��md��;Cܔ���I�lx���R�Y�L��gmpӨ(�u�\�"J6�h��!�4���.������ŸX�;����0����ΌNWFE�|�3����;��Ŧ�L��+�ek��ǟ�����rS�᫙e<�B�j낿��z	�"J�������RIՊo���@����Cy�J&��G�����9�C�ʹLJ��)uwOx��j����wS�5_C�q�yX�X�'ǼyrH%`�3�kv���A�[ܲd�Q�G�'��:����y��?�^u;tC��!���$�-��oEt����}/>F{g|μ���ú�񣉫Q��|;e!;�����w7O�[�q�%��JK���dn�=��%H1B��5L��#u���LD�B�m�$�qz��}�c���/á�C�;�1��F�}s�ұ��p�c��oYz0|�0�ɇ��N���/�5������ }�]�Թa��S˷R�ZIF�6v��e��<7,�J�.��9T\a�-|�G"��w'I>��5�R�p�R["j�6����U/���ڒ�s�q<䭡��@c�A�J���Ȥ���6��ݾ.)kY_�I��w�@X.S��%�"X;���wd���q��c�<��0.,�@�Up��y�_�Z�i�O�>��Z]�KLe	,f��U�����b[%��1����y1�q#��e紷��8�Q�G3��3ޛA�U,3u�R�Fp��^T���ԉ\���̶�i����.��=�V]%P|�]�1�ݏ��£��	��}�~t���T��扗7Nj*�-Jn�O�A<�������ٴ�cb�B�9�mA/ڳ��6�~<�L&~�s�A�yw_W�b���{=ü�s �#�Ļ���%��H�$��(il-����_r�Ї��<��P"z��L�L1*a���~��<}�I�=�RC���s C:���T�ֳ}�������
�����#~��e���#�`�yϖgym�*��z�!K�V�i���4��s�د�'�)�%#̥���9�Tv�C����_�.�G�I<�^ٶ��V�{�@�-��`���3���S�I���dֱ���'6�����ߒ�k�~WI�����w�����*���9�3�c�hH���TF+[��hO�u
���k�;ϗ֮�؝>M�v�igV� ��{�.PVQIũ���B\\�����7�u"�š*�:�׷��%*�Q"!�+����z��D:*��u���x9�H�Q�[���\��|vG_��d��,�w��	�� Z\6#M��g�)���|����Q��a*J���S*7akoOE��/h��
���C)ל�袆v�~,<���t��M�V��b�?î{Qۢ�,��Di��ۛ~���5VhPHL<�5���](��&.8����,E��u��r�c˽N���iqjj����*�!�Wn��c4�S�U�mQǙ�hP�'�X*��������|Z�7.bٮ�8)��p1�r��Rn�O9%;7Kv���H�ٗH�K�
�Jy����rW��L��;ގh
fz�-�^DInaQR���N'��_��87�E�õ��H��'�Э���+�uE0*��Ҭ;4�R�����Q�8���U"�su��`;|˒�_0��c��S{b�qj�Tf��3,:��]�s�9�~O�R5�T[;,]{J4��>f7�
{��A�u�e���?F����*��])�*Q��c0�p�1B��y(y�hi4b&GyշV�*.�R��S=]eڋT$����W\O
�_��W��x�	��_���3x�r9��_��c�d���ĥ�7Sm�4aP
�R�6UE\=��_����g��#���d�E8K��۾�"�[���5�M���<,����n ���6l����9�o+���ұc������%��H��\,,�V���+ʸ���`���̙��A}鮈���7���֎(o5n���|·y��	����+�#�L=��/&����Qy�Ӷ]K�[��}�رp�.����Ⱦt�>��;س?�Mkvp�l��8j�c)��͒�{ؓ~��lf��L���ujM@�\�ܼ��{�r��Zr!�M��s,��ʃ2�(��d�uP�
pc���/ǝ�7t��/�����vCq�ֻ�{z'K7��U`��ґ��}Q%ڊ�ٗPb��
YaA6��|�3��ۏxw�nJ�Rۯ0�'Nlpcjj��VoA}I�D�i,)����V�/�rss	�\�W���־t���m[[[������wEuiW����9p�,����>A�Qʯp!�u$>U�TXjODhA������X�%
s�Q�p_7��Hq���m�g��OU��մ����:�cD�+�#,�׺ݓŔ��5·��FC`R{Z��d��m�����#t��&;?�D�rx�"V�Sεg_:G�荋����-׍��zҵ�^>A����)���K�g�֓T���S\�8�v�zr#�W�GZJ�\T�$:2�V�A9�G㘙N�C:���x&?)�?y#�p��=�Hc
��Aޑ6�j�A��%���B4��D�[�de�EL�18g��S�#w��	�t��.�iG=��r��e�
z����dZPՏ|E25��
$�Ww
��~1�|U-G���>ѱ��4u�]��h�9Ҧ9k}	¯��[��\�hqy$�Fp�^����J�ב��,w�p|��|}��~�g�����[}�/<pk�@��"K�.�4c-�]'�$c�Ԑ���e̘1��}� �XZ�%%%�Z�β�eAV�!��0��L�O[���7�ލ��� ��+z�����͚�_'j�p=�'"O\�h�n�D��J��(	� ��"nK£ZJ94&�R� ��� � �(	� "J� � �$� �(	� ��� �p�"�S�[�Zv���4g�-˲C�|}}��%An<ǎ���''�K�S�e��z=����� "J� �p,bi]�β�/DI�Ʀ�frZ������I��b�	G�n��{��K��8:9`+:,�$����

�or$�I�m��RL�-�КѸ��!���e�Y�q�z߬�7Szr?{�f�5�Q��S�h<�7�ܵ�>��G�K��U+%���z8�h_��E�>������*\��3��53���`�#G'w1Q�_3��F�*(���!rڶ�|x����.��_ɢ<<�T�l�r1B%�
#*Ǜx"�\�������GEY�:~�ݍg��H������L���L��N�gGӦ�cK�4i
†�Q��j��~�'�D_�5�%;늛�
�f��"J��[��lF�J!�֋Y�|����ʆ�)O[��GC��Ǩi�[�؝�8{#9?��Ô��RG0z£�r���nfL�˶|
��v�2��q�7OO@��w�S�6�gz[nq��YGh=j 	���\K�O;F?�Z��Ѝ��LJ����X~�%љk�p�#��<�d�Rv}�9�
���CB�:��iS���=�]ps��]Q
�ޅ���G�A��jΏ�>eOr��)F����sVrH@�=��-d��L�gУ��å@}9����քG��ko�dF.\A�x?���/�����w�R?5�էZ�o_��D�D�~�g:��8˿R�\O�q<;�NR���K E �*�Q+���ؙ_�bI.^z�%yxX<�yi(+3P�Xk�3��<�� ��v���(;'\�gC�7�G��6}.-�#_~6��N�x�;��=o�?��Ӂ¥9d�=L[����R�2=��2�\�[��$TJ`1c2�L�������>`vi<�ӛ(�RvLy�9��;�;|���X�u��>^Na��x�~����T��A�<����)�$�{���At��v�G�j5�^���$Ć����t2�n	~��R����<qu�Qc��Ɂ�����'�)K��{���"c#+W��E�S�ִ�x�q/��g0]�=�����/�l��x����t�����r����%�rI�t�J9�WI-�!�$�O(��+�O�Vu(����X�mX_�}����G�G�=y úŠ1�Qڪ��'N1:$�𚸛3%F�w$[���C��-����'�~O��E�(�����4��s�ث�'��i��R�h�q*;���X�B�s��ΌOT���ç�"@���|�`s�82��$YN�S(�����_��l��ͻ��oɷEs.T�-�qsiq9�ٻ�����-GȎ��/SI0-}U�tN ��\����s[���H��T;<@��٪��$w���^U��6�w��M���3�&r�?˿��^���>��`�@�)�gw�8�=�u��To%A����+�݃/��٧��=��c�860�R7Ps&���� u��L}��6o�5Z_|jƔ�M�����TNI��V����C��fQR�!��?����>G����&b3?;�����C��Rܞm�����dhU����őݭ�l�5ѱD֜�E-�v!]�i�K�dz�s�/#���%�{�b���8L�
�*[�,��x�vCF��r���s�"�S�8��N����c��/#������]�~�%��B9�ʲ2��ܯ��XT�������쳼ۻwuB�Tm%A�-EIUrUad���S��<ܙ=��5N�#n�c��\J�M' �Me%�5��J�TR���j��gQJG�f��iT%z�C��-O"~�T>hۆ:'{��S_ŷ	m]G�J(t��/U�)��%��
*j���;�=djݵ
���S��*�Q����jz��/��*E���9�=�9Dž\%O��F�O�U^���b��Q�]�zF,�1t����=Z5�T�I��I)+�ᗥ���YcGFV!��,L�6F.�$��@�Tg%A��`Cp���9�ȸ@�U}�"c;�OpuuBm֑�%�.ݕ0Y�E^Q	e5Rf=9�U��5��[�2iU0�=��X���QtS���ߋ�
3�����U�~ۗL�����BZ�(�!��У�,��$.��8ڵ_ʬ�����yj+;
�?���4s6�n%9�;�
���FO���,�B[O'Nl���(J�j�%�������&�;���A� /"
V����xvmClH-�c�Q�[H�|��|���\$���73�K�Xjj�6�3��3��
�VQ$wL�5����<�%�ވ:$�� O4R��W�'N������TU�ނ����d�XR��_����pyҀʖ�H:��r���=�e�����]�A�;��իٴ������w<��PDIG�ɕ��|,Q���2"CC	lHRl+���a��#�z�Ë�v���{%@kU$�A�`�G9���@������<��`�*�=Q�u6Uh�;�9ܷ�E�!0�>髙�fGm#����1�l�k�=髗�z�9��[t,a^8��is�M���#σ^��#�/�@\}c�jb��E�ޑ��U$c�i�z�
K6p�)�.��~�e�Q��"*2��W���D�ΈW@,�$E���7ѭi�CW�"6-\���S����-8�6�۠J]��w�/��ضķjq{:w�E9r�l2�XU��dj"�H���6�ۈ�����vu-R5":�u��N���4�ܑ#G�4g�/A���Ui�+�-Z4���ʬ)99Y
N�iXVY�ti��`k1�u��N2�I
����_ƌc��;A��hӦ
����z���{��Kn7D�����%	�o�7AD�AADIAQA%AADIAD�A%AA�^�dz�p�`Y������,�eY����ź�� �(	�p�9~�8�����,kR6�.�eV�^o1___dAcADI�������֥�,N���Rc�� �����#W�c9���;���v뼯T�]g����谈� �9��3����D��
�&E����7rBkF�Ht�$"����3�}�I��ܬ�7Qr|��d�5*�2���q�;�^9kymz	�G{��Vc��K�x���`s�&�EN��ɡ\j�
�u.D%w���a�۲<r�������n����/�� �4v+ٙ�|��N��c�`�]cW�6����7��HMMc���*���
�fT�7�D��5�\�NzZ��N���X�u�k��h4b4]ˇ�0}�:2�6��tl�?y�E�����Fڡ�W�w*����ް�7��)	�� Lg�0�tv���Yi�W6�Oy�O|r<�o>z����ּ-n�5z����ԝd����H���v0�����6`������LJ��;ڡA϶���-|�
Q�8�f!��u�'�:����+U�C7��7�cR�>���\ObO�c�V'x�q�=���,H��&�3��K�[�A��̔)��e
瞮�8;��C10���Yzޏ�C��X�r���󀏪��33��NH��J�MDTPtU��{Y����os_���t]�XPD���T!��	$!B��2�L����L	�n�����d��6�����;�ԓ��'�O�p9�>]E�.����_����8[˜�o����ll��3�^z��f�S[?��S���!�+e?�ǩ���9ٗ�mKyw�"��`��z��(���0_̞�W�MĎ�Γ�
#�x��I�n�h�7�z�'Fg�>3A'Y�����y�.�7��p�ʒ
&��>�$xJR�_�J�Ԩm��Y����r��*��bV��Ȕ��{��p�$����T���o�2���Z{���Zb�z�}<���s?e�5}��g�[�u/?x+���{ч�Ӵ�
m�K;���V*�c��j���D�ѥ*Q�Ƃ��Q�x��Ac��z;o��*�<r�D�6Q0�,4dq�3��o
�_��>��
y��/ir'��>���+��Oq��|;;���� {ش�����^yw=�I�Ȍ��f�g@� ���2�Ʃ�ɍ�SR^~xT�a��}�۳�-�eT�BxD��sx瘲w-��o��E(s�'�<w}�}���������V��å�v?����i^�,=��:���+ȸe:���Q��ٯ����Q̘q?ê��37B@<Ç$��1�)S�bP��33HR��$%��liaaQ%oU7��6��Ӽ^�Ĝ	x-�ܱ�Q�V����$L���q���uCGOf����:�#�2�	��)f���*��l)�v��&����xa�
Z�`b�"�(r`;1yגq����4{*�ɘB?�.RR��;��y��i����bJ=G�`���OBb�s���I�N[�ϼ�~\���ɱ�DOU�0��Q���Q��<l�}�Wm�Qy�LP��
�+�v��He���*�.^�0�:5���B��t��Gy��*��W�zqT]������F&N�ѻ�;�7��#�{�_$ ���s~�|������SS_z�|Et�<���(F�v##����^-��k�ib6��1HNB{�s/�=�18��5	�&�c���HIzS�
�C��i�|0��϶�3��3�rtR�M6y�1��Q��Qw��ʹ�=�
��j�"��ǫ��ψ�����ZO��1�� �/:�c4�kIΎe�2J��1*i(��M�T^�N�;(�“�j5�6��S��%�����*o�մ��OBǴu-�=��9_�c�)9�l����(��T@��
�o���	S�R��pV�@SD̅;�h�ll�U��7�����S�t~��c$��Ð�1����&-�/�֦�jj�B�r�Mg8��JH�a)�o��g�����$�G��y�YYO}|,��U-��W�k4b0���HI���T�5U�$Ol��ʓJ��I�I򼸟��k�/>u\��jКL��tPY̊||	�P*�Ê�z�<��2,�m�$x�B�'��rN6�
�!�De��9��d`셋�5R�ߗ�?�RW_)�P�uT>�!�S�i��6SSv�~J�n����W�r��ʤGo��qꩾ�g+C�y��P*v�cǕ�FuٱFZ�*���9c�Ra1�}�۠b�
N���YP8���!��װ蘆i5�sJ�:�Ā!<��;�Ɇa�"�.;ܪ��2NZ}d�C�Qv�M�L��J�Zk���� �J4�
KeK���q�۳�j�|6��	�Em�Q��4��*����S�
�:NHYZ����L�����D|̫_�1.�@ɚ=�$��HE���pZ��'Iy�.\E�G4��o�F�[�W�w+s}�Il^�O���7�Χ��t
Y��9KɍB_����C�'͚�fļy|��FLJжg;'N*YFYwm�lZ7oe��2�)߲�M�iT�̑Ix�S^[c �[��%D�R����68:�̤��U��v֭�N��c�/}�~f5�W$�w/q�<��;���Qק�凋xw��>J����#�>���~�94B����`\����ۺ�;���}��ri3P�n���2X��):��e�,�ɨ��|��5/����7���T]��]Q�(gEazjj�Z�H�s����Z�:�#����i���l�u����Q��k�w����W?�/FG+��:��d%'��\����K�~	Ć�28=�_~ʊG�=�_�6�ܑ����V-y�S�W�4�j%����6��v�1Ѫě>���;c1�1��ehbd����C�>��k�S�=�{��A��yQɰ��Y�k�?�ZF���O�T:������g��Ռ͊&�O,���OR����zG��d����\�7�7r�/�ai]����@WR̞�r�K��wG�iY�8�4���+��Jb[1ߪ��3���V�����;O⑐InBI�s�5K�wQ|�	�A��E�AR�$�}��=,7%s����7S�z+���[s�:~ �'
Y����k����b�СC�ټ����X�322�$w'�F,X���]�EB*'��+Z��ٵh��ӦMӸ3֗ ��)((���:̐+�z=:��1c�Ȏ��0��-[�1��)����ud�e˖����6�b�+F��Hb�G�O�n��;A�edff�������K�}�<��TѢT�~��?�)	B/�:귵?lԙ�0s�
�HI�__�z�+5�ci�.ADJ� � RADJ� � RADJ� � RA�T��� �*++���??���ÿ�������� ���G����m>�:&��q)������d���A4DJ� \v|}}III!00Ж��#%��������(.>��[�i1)��Ks�� ���&~�x��U��DK�� .�}��
�����jU�$?0��o:S�v���.+��|��#��!}8"���u����1�	&F~_ko���ml9x�f�Ux
#�eqɋ�\˿�ȣ��Šh��x^�A�zwoc����c�$�����g�.`�� n���i����x�>>����N����g�� B�4��Co�#u�2�x�`����:U�a�'1;�!�A��P���f�Aq����� ���F���2<���r�����V��Rּ�+C��Т:�>C����L�b�>���O�����)\��ܺ����9������KY��f��"/f��\��trU�����xb���p =_��vQ��
~hUfe�Z.�sK�	�=|���2
v�Ț�A@[0��M���yo1��0���l4�Q��3)U|��5e{�^W[�� \	b��`¼�ɢ��xY��;��u�0�4�9�x��=�YW��FOŲ��\��2K7>��$���X>ᄋ�m�Z����2�#��ہ><{� ���i�$��_^����D��N����ꤵ���\~r�;w;t�^���zѝ����'BI;����}����R���bq�i4�y��]�o`��z�3v���u�?JJR6ȸ}>K��0~�X"��/�O&\w	Jh��9o-X�A]�'�#U���
�q���Qo��)i\�����cd�P�]\��w�S�}!3�~�ٔ��h�/0���4ph�Lf�9Jؠ�[��
�C�H/���^{����|��h�,>\w}d&��?�����Y�z}6[��󗧯��v��sRkܵ�9���Ƀ�k�����P��-�X��c�B*���ȝ_�b_
�k���I�qߐ���J Հ ���ʦU�W����3�X�Ǘ��ޏ'�fpK��n��k{�Ie��8�7Q��>ok-����ln��M3噡:��]�n��No��Y�i��a�z�.R.��F���M��ns�W�nY���#�YVuo�.UI{���s��*�k�5y�n�{�u�x�ɤ�6�y�_Y�ƒ?ĝ�
,z�m
���ፙ�h~�̘���B�=��2S�.���c�U��Z�-�j}�+������xꡛ��I%5g}S�0�'7s��8�2�m]>��oJp�J�ۏ
,��2s�.�}�G��b(��fo[�8��-^���?��9�o:�$��TݙZt�
�u}�(\�:o����������w��}�d5�tx�.B���[�d[D7>��}�^��1ks�r�bf߇���I��!n�N��d���0�e���z�o@�� �&)y(��NϲCU̬n`_]5Y�g�uLy�^��MgR�Ug�w�~�x�
��`�l�c��L����YGs�0&OKr�2a���T58�m?�^�Մt�w#�=ʿ/^K��I�'}��z�;���y��:]�6e��=��6�x�.��"���S���1G��
��cy��n�EKh�Hf�6�D[���}�L��5dZ��2c8Y�[�)��֭a[L&�{C.Ѷ��j�MDa�A������

&B�){�p:�n�cL�uj�&0�Hb����-�k�I5��A�d��7�1jB0�v�X�-�04�6e�є�oE����{���*����I
�
��'�{_t�Qv���#�z
*+�	�o����zw��ӕ�Lp0����Nm�q�{m(9�)��F�)Q����Fd��4EL}��N����J�Q*�7oN拏JX��+�g02�)�g��M^n�+x�=�a�]Y����<���S�4�	#�cFz#j�V9�n�������e�NSJs�����,9T��B?F&�I�Ī���%jp"��U�Z��[jOsF��+u
��>��y�Q�>%�|�X�C��#��\���є�T�٫��H��_0Z�F�=�U�s]��]����Fy�Z���#�.�Ff��,�m��vi����6�_l�!އ��Wp��A<7a"m�t!�4x�(�X�Z�|I
;��~�}��[��ү����'��c���.R
�Ϣ���X|r�-ZE�ga^��0�ʖ���t�|S��`�`2�t���Nz��T��F}��b��Rj�NJ������O��^�wF&�(qK�Ak����Jy���#4R��t
o��bil#��'Q��H_���ៗÐ��f��1Ĥ�\�p}#u~q�{�9��ٳ<�.$��(u��`��cڰP�
�(�l�k���8��J��G��z���H;u�[�6!��zZf:�#����)E`*"��׫��n��,x|�ʫ�r--�x�<��ҹ�[�=y�]umJ%�����sZCK5g��)��x4S|��s�7����>>}P{6Q\y~��Ԗs��]��M�ì,���,N�ZN��4~��c<���L�ǩ���b2c��T�6ZM*B��߀$%A�Nj1y����Xn���O�px����URK7�a�kDŽrN�5�3uF3�k�jR4,�������h�(�����2�SqYL8��?bq�p���趾�̈�y1��Jl�=I��.���z*Z�K38��y���	ʎTVo;�uy�;�*�k�ч̝������Te"�2��6obުH2�9�u�}�hT��12��7��W�d{{��g yɑ�������?&����v�e��
4�������������ycP&)�Kxs�AY�����6��e\MZN.�>{���9��kX��g»�bnk��l�����4
�~@��4g����7��z�p�u��?���kI
�ƨlcD�hb����]Ē�������h��ʾUQ�YEB]�ӧ���Y��&��Ln�o���׼���,**Rui-讨]���0=55U-W��r�{�mؠ�a�T�$E���,�i�#:DGGw;����8�7l`�ރ,�%l�C<?2J	��U!d&'rn�&Z�~�׏��gFS�r!+w��3�~qˠs��x��J·a9S秤75&�PF�_����f&
}��o׵ڢ������~-���Ayĕm`�]�)b������A^z�뗳�@
	��cLF:����Jc�w=[��Κp&^7���Q���9�)Z��\�='�<�!��k`󗛩�Oa����3'�ӄ3rb��|Tg�e�'j=>r,�}
,Y��:o2���ԔP��cOD��K�ʧ�#��7��d����TJz3x�����҃��<2L;��<���q\��\��$�:���v��̮�C|{Z�o�����V���;(������18*��h_�k� �&qm��)$zֳy�F��ˆX���¡C�,f�y����bvQ,
����k#,X���̧�{�N:vEkW<��V;ڴiG

����l�#;�B��ۆ=z��8�{�:�Ȳe�L���e�]1��]q$1��#ӧO�H� �2���hnnv{zw�%W"%A�%XG��A�1#�f� �HIADJ� �HIADJ� �HIADJ� �HIA.�xVz	'O�������wN��b��6..Nv� R��SRR���~~~��0�Ki��:���ӧm�ʀƂHI�ˎu,���mI�;RR�Ѩ�	������C=_����-&%e⭹�v����&�~xʉ�,��
Bo�a�նf��"����|sJ�I�A���k>��/>e޼�,\U@����g��Ys�t��\{3��Y�h>�/`�=��\��V��7�-e_��|�@���4뺹�kK�6���2o8�������b��Jj[Z�W�$?��F�Fy)^3��,^�^x:k�k,a�+/�ў�<y��;�g��F�.Eh����+Y7���c�IN�8�������(j��z{�*,���\Ĝ�k���M<�X�G/�DƼ"�:ѕ0�i\5{1ǜμ��o|��ix��^�ބ��i+g�Ri�Ͳ��x�[�;�����f��G�x��\X+�Je�f�>����)3�3��G�>%���K��m��Q�%��[y���]�_����C�Bφ��`s�m�09I�!���;�2(��:i�a����{~Γ�;ϖ���׋����5̯!��(��g\�Y6�5��EU������������"�[����A���{��cəX&�0��tEKx�ċ��O!A�N��%��µj�˄���_��-��)c��ӸoJ�NWN�Mә����

<'��E�)N���IZ�:�e!��n��8F�x��3}��,�ޝO�N��<rsͫ?��U����H��A�������$W�a�R!��Y�r7�m:}N$u'x��lo��)��A�ވ��l<#��)g�}�hU�֊����-�dn}�)~>�ȧ/d�uf�7��;��2�	~��}d��W>ޅ.<��|
m����ֱyy���#kX^S���Ki�xa6����3���֞5{y��7Y�(�}d
Y~
lz�o,ӎ�'���T���{��ݲ��g��4�!~�$��+9���(��B
��ْw���c��h>�9[��?{�6FN##w}��?�6&��_(S
!C��z��Nth��M��:��6�������W1�7����H��1���aX� F�<��G�*�nC�:�_�-x�Z�V�`aQ��oKR�+�UJ:=+���3
쮫&���U(������s�U�UgGޚ�1<}�q�<�=��)����I��3��3��Mb�2aJ��wp���-E�\ůǦ�n��s���֒�{������� >�ZrO�R�L���CRo��_��Q��RɊ��c��G9t5g+�h	�7��oA?�L6�k(7�2���[w�Er��|truk��ş��"�V[
���V��a^����?�� (0�vK�=[J�κ��9�:�G�J|Z2��woWY{:z�<&����OP�r֨sx(Fَ�:��,Z�7�	�]��#������z�!��H�R�i�eX`3�����Ԣ;|����W?���$W}���)����͎�~H�:Y�_k�;B�+���Ky��F�S��
^�&/�����<�'�j��\�&8�sDF�S�ii�����G9�/�I�Hia큣��%*4�NQ�Ԩ-fZ��ijh@�9��|:���gR�OJ$�c�=��X��:��Od�fE�mD��9_I���<�$�7k��|O����(��Fـ���w�II�&����<
F3}���������A��&��b����U�&X�BM�)��0�9^ʲ6��`4�0�����v�K�g�Μ�tu�j<5�x'II�D)�����%���f"W��P�NJ�o~����/%]u7�SW1~k9dj�*���KݬR^�h}	�Ra>TB=C�������%x�D��wxe�`��"�D
%���yܑ}��M��2��gx2��(XY'��@[G�Fp�)�'5�i8s��Y�n���\Gg���t�F��5fE�3��oՔ��Te�"TQ&ڣ�V�vY�}�����-F#��Ad�dr���bpSJ_4��l���|��1�^�!���m�[�h��\��gM~���j���_�t�Q��EJ�pe7bDMeW�����ճ����7�9܌���4,:����PNe]=�=�-zjjj9Ӡ&pX.��xeI$c��m�OD�m�T��*&�ƍ�X�2�?���G-��cV�(~g_GcBW{����S;)��ukh��]pCF|Μ������v���T��k];�9�bx|�]T�J¬����0m�Ȝa��	�j�6��S��6}T&��\���udy{���(���˹+�7���ϯTk5���T��V�y�/�����[�~�PW[��9x�������cMjZ��"%0���r�|���������z6��ŗ��(%�~��K����_t�fQQ��KkAwE�h��驩�j�"]�ԩS�������y��؇�>>��j4TUU���ߏ���=�6�}�a�h �Gynx��<��HL ��f�`	d@�x�Cc�ݗ�5�Y����	w�r�5z[0���{=Cc}�]y�Ũ�	�����\�t��I���[fڠx��냦cs���&�l�CE`&�?}�6D�>�
�⛯�X\G�䩌�Πod(��id�����U쭋���0)'�e#�32Շ�k����
ud2�R�ȍhf��-��0t`�.�k��MR|2����Ef25{#���J�41���BS��Ǿ�_����3�`Ҳ��'5œ���8�я)ӯ���7,��--9��{���{�%w%&:t�b6�ڎ6.,f��`����q>�;�6b����ö�R9���]��ϮE��Ο6m��z�� ��ٲe�M0֑\af�ZF�-;N�ް�,�l�2��`�l��]����#�Y��>}�E�������Es��]�ݑ� \i����`��Z�nj��	� "%AA)	� "%AA)	� "%AA)	� ?)Y.rz�%�CA�X\����?y#DL� W�����\�=��ō���A�̄�N�+��J:ݍ+� �~)Y\��eZYw$$� �0E�/�S��;��HRA�A$%�%��{��ʼn-l*RA��S���μpY�t����� �p�%���˞�zbPi�A�aH�'�~�P�p�\Y�҃
)	� \�R�X7\��܍j7�Y�gA�+s�K��e��`q��p $IJ� WNR2���Y��6�c�;�������]6L�� •������U�ߣ��}��`�Ƭ��� �;%��>����એz�׎�"%)	� \YI�Q=�'|/Rr���{m��"%A�+JJ]Kw�y�����$�LL� •%%�����ߛ���p&"�$%A�TR��)�%'�R�j��Ν����|ς W&��;�<��\JGG��YZ�*$IJ� WNR2u##wĄ�)�'Rr�g=-��%)	� �𒒽�p���6�]��w�nW�N9�$�pe%%wz��}��ܒ�%��u�*�ǎ�KJR�,�p�$%�wxpK@�SJQ�z�U�]1u���Z���[��^?{t�RO;<����NJ���]��h0T*	M� �
����.2r$%3�7�]v)uMI���5-�GA��|��;���y:B�%�p|��&k=m���SOz߹��El���p���_wb4_V^m�RGQw�n�����*'iL$&E2�:�u�ᬻ�t���]�.�ی�R�=�h����w��A�Q9ء�vјۅd�LB9	��CO<�KLf�ȝ�;W����#�C$�F��.��]Ĥ�FF΄�r">� ?T!���s
fਘ�\���9t�::X��0�� ����Q��$K7�OI����GA���,n��Q��+9�?���J�D@�
ew�Tn$&����U�4�PHt�Z�$15Yܨ_���BJ΄t��.FJ�BR9�9b�NDj�q$#3�5۹JG"(A~�"�i��\���h4Ww�^::�$-�@L]��Q�N�ߪ$#WR!	��c�+)�$�qܬgqSH���.EJ8HK����'5ݟ�r&"G$)	��cNJ�%\�ш����z^���:;t�lg����T]Dd?_��s3�wh��I� ����A�n�<W�\���T�����q�;�~0Vpܬ�L.�.��^P�:2t'!IH� Hbr}�WG��]��t�vW��')�)$���t��T�G�i���;Mw"%A~LRrv��av#A�K˝�tQbr[J�\���$��d��}GMr�R�ʼn�p� INΞ��d�JH݊�Q�ݥ$%�ɕ�p )W�t=��Iӥ��Y�J`n���)���\5�Y�c��&<p��N�$��3)�ztWF��w�
C]���ed���H�$�H�ғ�;�#�<rY��b��𺓚��|��$2Ap�N,=x~1���s��tQRrc't��\�ID$��;厌����pQRr1rxwMw*';F���7$rAp.#wE�S�\�;)钒R���х��.��3�}N�� � �r�=wDs�et�R�Ajr��T6Εl�VAp_N�޷\ļz,��"%��)(GBr�wg�A.ND�"��"��.����
W]�A	� \|+�E}�RE�J�Պ����/BA�'�.�˱AnJLA腒�)*�E… ��;P�.ADJ� � RADJ� � RADJ� � RADJ� � RADJ� � RADJ� � RADJ� � RADJ� � RA�� �����sH�Ρ%�IEND�B`�assets/image/04.png000064400000236235151327614500010100 0ustar00�PNG


IHDR���$�tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4D2474BBBCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4D2474BABCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�;�8�IDATx��	�dUu?~�יa6�a�aAe�M"�q7�h411j@%j�M4�E��oAPep�����>������t��]]����:ݧN��z��{�ݙ�骷�w�R�{�g5�Z�Zֲ���e� �Y�Zֲ��L����e-k�d-kY�Z�20�Zֲ���e-��e-kY�Z&Y�Zֲ��L����e-k�d-kY�Zֲ��Iֲ���e-��e-kY�Z&Y�Zֲ��L����e-kY�$kY�Zֲ��Iֲ���e-��e-kY�Z&Y�Zֲ���U[��oL�X*�Lʱ��F��H�Y�Zֲ�fwѱv'oߞk��_t�E�Lv�����X��������㒎�)rǦ�i&x.;�s���1�����D?g ���e� hd�n&��n��
��Lp����а�ύ�̀%kY��D@a{���ߦ0;A�n�$`�׷َ{��$��4
���l�$��d-kY��c������xXG�6[HL
��^P�4,%���P�}ߑ�%kY���$6��	0�$pѠ�R~=�J�>��DŽ���d" ��l/S�Zֲ���D�Xi bS��4*6�
$�Ku��S�MZ��D��Q I��eG�J(Y�����κ���a�ot����^`(�����I81�xT\&����Z0`iԾ�Jֲ�g��F
��*v� �(���� M�)�N�)ld�j,�	�����\ֲ���� #it�mp��v[g�$`����Deҷ|
mJb$T8�}'�T2 �Z֦.����F���0�z���C�9�%
�&=�䕊+ɣ+��)LX��r�%����d-kS��l�>�$���z�l
�X���'	@&�.�R�$Ih7
$�s=P�K=�W$Y����8LDҌ�i8����5E)�!)�dJ��&&��$�@��Q�W�L�����P�<���n}�&����h@"���y�OP���+���)
&��Ӏ�&�*D�n�Y�Z�&h�����6��+?	�}��("8Fl��KehS��䷓��I�0I�F%��d-kY�<`�=����4���~�0�z �է<6��hf���h��e���D=�v�$�	��DU^�d-kST��k뱐ȳ=	4|�����F$��ui���Pi�NR/�ľ�{�[��Q;I�J�"�K=}#���e-k�H�Oڿ����RHT�78�g	2��0ἑ:6ir��ޒ��z*�Fݐ'����&I@x�ŷ�@g����Rֲ���"i�ä����@KHb!4���u�8	��F���؞�>���d"^\A
;��|>�Qc̛�禔��Zֲ�g����(A]�]l������`��8WIlǾ���8�,�S�K��Q�s���F����G��b=����~Kj,rL���P]oD�v��xר\.�6@�'���
$�TZ�/����ⲟ���s�0�%�I?�(��Mt�qgm������}�}��CϬ?�ȣ����y��K�ׁЁ�_~�c�����z	!%4�X����(���9��K/�t��MAߨ�KJ{�X�~r{�`�!�e�K@[��M�B�D3=s������}�<`Tg�֣���3�c�/fr�,g����E(t�JY���x��4�u^��ZC��0���-H�F�9ֳ���r��g������m�>�b���*�lA��˔�R���4��=�	���}��>Փ��+R�G	l��H�z�d�LY4�L4ML�L�����T���A�r�{E �<�DJ7)9�D)�|j���Z�`ږ��X��F��E0�9����;n�d��Ap4�����Kֲ��]�#r��<�
��U�B;S}{G�u's�5A � p�.і���~FEΣ**%��"%ܵ�BzdI�z�k�PV�<��(5Z�Q�EF��W=�HZ�D2.ﲖ��@���X�rqy9�sdd$~	3ֲ��O�~*<S�L����і�'�K���M]�M������,�w�Pgs��06�^\{���U�Z�>e6��,�ƌn�5�"g��A;P�����LE�D44���Jec
-����D�h��4}�~��50%���~����#7�w|@�b�C&7�zƜ�e�*�
�	��?_=F�"K)%�R�C������'̧�k4f�6�NOڠʼn2���e&��ӧSww7e^^{��YBL0��yO1��\@��im�0M�;�:[�e�*�*ӌ9s�-�4�~{eʵ�P��^*�Pd{qP*�Thmqb���DcSK\���KTtۛZ�+S�*�8�a�m�YN|tu�;d��8�!������j7��B�t�ۼM_�or�]Ԛ76Wh2�)m)�1�l���4��$�8Q���lH�0�M��֍���(�h�,���J^I�*�S�����
�e�q���T[���䏇�u�b2�L�ߨ{p]f����@��Ù$ރ��T�=�w-v���z�������t�hZP�����V�2D�B�F��l��V;B�r�Q���Ų�V��&��F��m���:M�3����
U��@�vuZ��Nl��F:[m�pHӦϠy6~'�57�;*�bLX�a���;ɔ�̦��0�6�rh�;�(n	6n.Fͭm֔��d�ܤ�3����P���J�'�k<L�@c�%ZU
�R����K	�6J��4�>��v��&��()�c�ʊi5Im&<��dn��d`��H�����*��l��q�:JE�ڷ��r�4�	�c,�֗h�>]1[)�VM���>��v�j6�n��
�F��h���Y=��v�z���^�Rdi$��Ј�&;T��=� ��f[������lsg7uw�S.���m���Nk
ie_�	���ٴ��5h�9���cQf]_�fO�����t��-f͚~��DJ��4���; !c�TkO��dZ�Wr�@�KJ��̅�z٣6�۱���q���\>�M��d-kY���<yju������[�c��G`"�O.�|vl�*�Bh�
�mr���1cE`˴m��p��:
n"5��!,�mC{P1���1R,�BG/͝�kJ[̦-E�=�A��9�C���հA!�*b��/�Zr�a�5�q�_�*l,pI�*�AK4�p/������$0��_�a,e�J|����.걎z.�
��&ż�A 1)*�$C|ֲ��]Т(�r��|���>��P�)Ge�\J��#���X�
3��E�s�@Vv�L�F��ϸ�K{k+�c �����S�c��&G#[MߦA�|�m*�68,�FFJ�\�bY����
͎ጔ�R��B,��p&*��Ȉ���
R�)��F� H���i^43I�f<*�$��z���:�&IN�z�\�&1��e-k;��8VhjjɃ180(;�PS!�[:{�#O48�}s�t�Pi�舌cN�m�Z[�)*���5U�+QsG�;Y�e`���p�xv�����`��Xuh�:;lkٍM���vw6E�Œ�5���1ju()�|�cO��l���J��m0��o�Z�-��Ak!�al2�NTYͤ��H��Fp�ڌ��]u}F��j=�L�j*)v$��!j<*~������Z@	�|��6U��Y��n�$
W��:*n�Pa�u�R��0�Б���N8h�*,�����;�5����Q���i��\?���Z���o2�B
�\�r���K��߭l���&+��P�l��mvzk�|!�MwO�;$r��Ё�iqÅ�̭#
K�ȁR���q!`Yy'	���J��WF �B��7P����X�L�#��)���UyIl��ݏ)�:(kRy�%x)��e˖؅8˝4E�ƙk����ͅ�8^��}[��ѥ@ך�r6��n�C6�mͰ���k+M�;$��&:��A@�KC>d��y�q/�p�]�u���8�zv��U���<�]��j�4Z@kB?�[�қ��&:��#cP��T�1SOݛ1���
<�3P��I��ċ�EA�� �@��B���&�5x���S��"W:ɣ4�[�fȣ��j�zc{UUv{~�K�.�T`R�f����n`$,�c�9&��f-k����4�$C�كy��l ��i���w,��`ð
"!�&r��p(�>JWan!�sgip0)�$�[�g3�aFx87L01
��D��vM��zؼys����?��f-k����@A��Zty]-P��
LJH���-�'�j5���%�Bd:z�񙄉j+&RJ/XUX�Ǘ�+_<i[#��i�\;L����M)��6��@C4�$�dF���jt�C�o$��lė�Q�h��&�?_�v_���z�S�
��zt�20�Z��6/Nߌ]V*�	e!*v�ͩ}dt{H��j���J�"JΫ%0��&�N)��I�Lꥣo��d-kY�3[Zzu��Ʒ�N �gv�W�ۗ����,���c�i@�I꥕��%r4	,eJ����S1)�臟��em�mI��&�Qr����F���\���j��uA��W�����D
�������Q~R��Dҩ��z����em�f'�-Du�)f"R�K��/��O�ku�&y��M	h|�
�`|i�������8�Y�D\x�1��f����}@��u䛩�|~V��ܟӢhp�v_..�DH�/A�cW|�5���@�#�W�O�0;<v+�L4�P�n�Y�Z�`�@�u.,)t�,#�G����Qt�y�E�<	e���ŕ5������0���~J2�F�K$Y����N�����.F@���4Q����)���Kj�6��Z�^�&d��v��y�ڈy_^.���eLJ�W�%�Si�I�rZ���g,\3���T�_g-kY�M��#B�0Z��U�"U�IT��Ү�R��q!eN#	?�=��H�⫺H`����IY~ǽm���@B�;���q��e-kS���<�l��2�h/|5�Yؗ���	#��V�(	Z�qE�U�ل�}�9�OJ)�R�/5�dG�v�Lzg-kY�^f�pi�ii���C*���UzK��`C6!����9-UJ����i�`�IkF�g���e-k;T����x()9�I��X��9�{���p�-B�-;}��r�X4k֬�q�q�g�y&7gΜ����lܸ1(��裏F2Iϩ�-[�D6l�s�εnߚ1���瞣ٳgG���vӦM��g:�FAepp�>��S4s�L����ĺ��{�!��^���˭ۆ�ƹ�׭[����Ck���En<4�|���1z�;7�k�3f�v5W�L�����Ԧ��f��C����^Ye�g��It�7�׿���a����/7���g��p�����.�,:餓������;/�я~ĶZ��
��7��:�|��_���r����<�x��rn��w�K.��^��W�׽�ut�]w�׈d�_���i�…(�a/��b����9�:��3��o�����~�ct�QG���6z���m?��O�5�y
͛7�>��O��@͍w@I_��W��30���0����N��]�$��n�r�S��U��J��=���O��O���
�f�?��O�z�ѭ��J���1���?}�s�3�B����r�=���?�����:�P�ѱ�K��r��a���/~����O��۬
�%�������N��\@?����?��^����M7�Doy�[誫��m۶��������W����X>�Oл�n�5k��о��[s���~��2Ssem����O�N;�xW�|)��J��	�C��X
V�Z`y|@����NNJ�|[r;M�>=^?m�4căkjj�����_����������=��~�b���ӯ~�+rLG�ܲ3f̈�mnn�����Y�s��7�3�8#>�UPP�a(��z*����n�!>�O��O���'|��{�g�}���qr스zK�{�[�L��G������^0�$�;�1�=@�G�E	j)�Q�멳<ҁ���{N�C�����r���q_�]h3��R���i֭[��>�D�Q��r�)��8��2��3
��5��������m��ϱ��=��׾;J��
���w�sҿ3��Kb!I3�Fn[�no��FA@�/��DQ���Za�s�ՙx�үK�-���W��᳝p`�u�.[��|�K_�s��y��d�Q6t�u�P)�����n��~�3�����'���G__=���:����0���1���;	>;2��駟N^x!��s�W�l�;������+*
�dm�We��u�`��f��_
�X���c6|�r@IZ'c?�w�/�N#	0)	��*�H���)(�1�`Ŋy�
�ā�9���1��O��O𾘃>����n���'�XĘ,�g�ؼ����P���[�}���Q��z���]v�}�{�[s�>�я�6�o�1��ttt����"d`��		�$��R@�'���nTp��;
'bO�@#�ۋA�?Przi������`-R=�S�[�W|���a�6��o}KF��s�9�V��d���ŋ�c�X,@�|>O�V��=ĸ��DF��^�d�imm�0�����޻q}�'�|_ƍ�r�!�^��O>96���|���A���dmJ�G��I~�3~��!I�����s�&j@Oؠ_\��X�>I��2 ѩU� ��tR�$�f6r?�z���<ę�,�B��ت�C<����+�I'�d��_����=��5k����^X�<�Ht��Ǐ��\�,�����7�ѐ?6&�o��q�E�����p����-<��	6UZ&Y�;���3�$@iD�K���B��g��1QF���K#����7Љh|~+�a�T(#T���AgD1��d(���1X555�j@b�Ao.�8�G���&YN��~���=�X>O<�.��~�{�3�q`2
����<9�����^�cr㎫IRoo/U�1%Z�͕�q�
I^N,��y�m��$���u�,�I�?iI;/8��O�v���m���Sۃ�]�GX�7�	�%R!S�Ȭ�2nl%Z�zu�׿�5��z�!�����?x��'c5���Z�~�0_��W̓>������q}`����]ڲe�}�'�|bӗ-[FCCC5��{���<��h���8�<j�س��_$��t�=�Ĩ$50���r�z��S])-mɥ-�]x�]w��?�iӦ��5x3�ƀ����j&�w�$��$!�$�} �;�ߑz6�J��u�Ҁ"��g=��fi�e/d-�X����+�PA������"�+S��~�]�9�ۿ�[�7����?~iH~���ۅ�6n�h>����n]�u��E���F��o;�5kViѢEᡇZ�7o^�&=ї�����GE_�c��X�+��"�~�!�����"2��n�̙3��F�O|��'�O�*<)W`\W@i`����#�<�e�9s&�������G}��&#�ҸL�f����\�h�ȫ���&�
�~�s�+_�,��f�ܹ�?���A���K��HE�����J�$��Bѷ�F�`�Y�YK��?��6�]�K=� ύq�Ɔ�2�u�J,��`i��$�\}u^�>��G��ĽOe»��9�J(��w0C��JNh����>��"��Q�
6#MMM��F�q��N^a]�Ĉ{��>���]_��E���_��O�m�֭�2ܑ�cNEN�a,�e��DUU�t����d��
�����LUNZ�K�7,�5)�of3��$�^�g��d��Z�#g�Iviw�^0Ib0I�$i�O��"�7����{ �Q2i��Y�/+����=��j��25
G���D2��Hwℷ�JUDP���+NH˚��xN�����U�4.�~{{����#��X���E�j��r;7����N����^�B�pL�:4�h���-�lZp�ٿ��X�O�Ԉ:.
P����C����5r��8=�$9���i�T(��&�F�򀎯���["�s�ż���o�`@9HғL��)I;����i5�M�o^�H�I�20��D����fI����_�mI�3�B<�l_�ӈz(�}�ؒd�=N
	6��w���$�`��
e�F��W�P��������T��U}��6W��%�M�2B��_�J?$��YR-�$V&��{���134A��$k;��$�.4��ܵ�Z��L��h�𩸴:I��Y|={�fZI*.	4$�p`|j=
$Id
�m��ԂU�����B_9�݆sT����@�YKNW��@|�9�x��IJVD
\�ƻ>���W��W�eʵ�
&,\F����z���gmǃJ�<��4�+ىo}3IRc�>���$)>�"��4b/Ѡ�`��'�U���l.�</s�B�$���T��Q�9|e|��e"=�4������,�s]�]���)�����e}m�Jˤܧ)���e`º�ѓ��Y
��H|�Գk�X����� �v"�>R8JU��p�UE<�s�7Z��>�$A��bv����4���9�ӵh��o<�W�4��uu�@���
�a��*�#�
�e)�5S"��6�4 h�m��kҀ�N����Iz�)�c�2 R/�"M��"r3�D�����J��>�9�|l�'��]3CZD|T�O�&
�Z�%�!�F��o�>�|R�I��O�K4�j[(}$�SR��))`�}4��ϓ?����������x7f�4�h|eI�	�0il*��-�'�l�v��f�>�d+���,���ğ!4�'�e��k'�3r,R�#�u��%�̾�Yal��w�讍m�����q,�+�S	�~H�W�
��Z\��$��@�b� ܤ�%�d=j*V'����Z�Z`3�*�4fk����"����~5H��(�c���\�>����L���@%
D|,��_�@(���J���׿&���1cF\�Y6l�P3
&��XE0�*x�U����\>U���7��1ƻ�;V�"X����
(|?j��^�h��T��ĬIܵ^��$0���Fl*IF�I(�T2R���푇������,�h�sKC$��UV2�1�<��H�@�}%R�W�a�F�(`4�
��I�v�_�3��1�H ���b�
Bʈ;��=���u����:��	`��{a6�`𩬏�ѝF�OIjQ#�ۮ��J���ߘ��q����V=���!w�e �=��F��y����D�δ��(�
���x���I��>)�(U�2�R%��AA�� #����U T]��*	UYA���#�-�&��J�yTY��>�AC�'��l%�=��4bI��1f��
��H��n�:Z�re��j$T��z0�%K��׿��8�RiϞ=;ކ%�0$t&aNY����>��a��^������alH���X��y���A!;g26��<�00���_�
l� ^/���`��G{�I�"mG���c')KI�|�n�2����V�����P��ؓ�&Yפ$��L��?�1T�A®"�'}�`�4p�^�7פ�L�8#��j��ޛd�1f"ȱ&�$t(!��rPk!��	���q�wҢE��SN��N:)��!�'�	�E���$�(h��U(�c��z��w��n��@�̙3&J�.���K��ƍQ���b�W�ʍ����$�q��P���3�k��(������)��IjG�n��b*I%y���H�.i/14>�p��U��H/\����@����燞�����\�XN�����=H�;3�L��YZ�IC�?�i�x61��h�D��0Li;I&{�M$	`|l$)��/U;o�����|��؈�O��9�#�4��`8�;!���t�����qN!_9\�HC7�E�B;�}��'ѪU��1��q�P���x<�5" H?~��a����scL�}��5*���F�F��^��t��zj����틌��z��]�Y�� P�Tk�������o5����@Cs?(;DH+��ғ�c��9�8^�K��a���t�����P�MD|���mD���x�x�sD���z�Γu4�D��DmW�dm�@E�Sga��lD�B�bf�k֬�0�2ց��@�B�a_���:�<�̸v5��&�T�7f����s=���q`
�X���
�E������b|`"���8��P���#�����d
����,��8��Q���n�aU�E�GX�s����C�k���n���}���i����B|1>/'�q��{-%�Kݼb.�²T\Ris�n�h�'"�q�c��,f��yz�B�͸]~fi����2�ӈZ�t�=�`�?�5����7�|�]�7�v�4m}���?7����§��p��*7��T�K��K�o�g_At�M�Z�wݭ(�1��M0сmI�z%X$ye1�@���0�����y<8'�?>C0�o.���w��.v������!k׮�Q��p���ƅ�x��Ǹ�'��l�Xp�@��0
>������y^p/������(^y�*.�2��/E�	0>���������	G��*PD��j�L�BU[��.#��,�=�g�E�	�����r�g�=�U�8�q ��8"Mn��f�:@y���;��k��a��-��h�i���mh��)#;�6p���e����v�H�1�5��m�p�D�o������L�����b#��
�@I�:(?�A����իcϬU�V��-�@�c����cN��v��'S��(S`�p���w��s�E��m<6���E?�|�aq_90�W����P�����8���7)��bP�����K
)��u�ÂO�U�B����g�����g&;����m"�42�����*P�Q]�������c��SUa-�ur{��p���}�Z���=�����?����q�cm*��������S�����E���A�t_9��m����w9;�D�]kC�����};�.r}�Q�m&Y�e�V��Y��d)��B|�`h����]�&5�!d�3||��C_�A`��?�Y���9L���wx�X�̆��Y�K[@�?��b��H����0P13C�I؇p?p/X%���5^
&��X��΀��M�d�xy��e71K�������gX焍l�`v��ڴ�N���K?�!�U@}tll�(�>o����ѪO�c
���|�Ǽ�Xj;�r�_p��l5A�����1>����x��忨lA���8�]��C/:0we�X�NO�o4��e30��
 ��O��?������3rª.�G�b��
�A���*&��B�����`��Y\�g�!��*,2�3�k0�0��@���\�������:��0>�
T``)(��̊�e=�
���K��w�@�3����\iE�v��+)ѡt"u��#	=6�У2+�t�^^�
���3F���\,�Kj9(��;+��^��+n&Z{����~|m��{����� -�к��8
b��a��}��
7W�z�P�aDو~�
�t}�����\V#�-������^��J4����0���׏��sK��/{]Ia'�/�6TE����|�1���*4�� X�O�J���Xq����K�'�A��)��S�0��j�G83��dD�j"���'\'��cF#Un>@�Y�}%�qz%OB�I��
�Ld���&s��6�DƋH�<����A�6�i�?.�܏�Y�9��"Z�)�p�UYP�С4t����"��a�unM�{I�t�����U�����-`���y��9"�|�����]�~��^�C>@t��{,�����Rl�ϵ�: �)�4Y�I�&.>A�$��
*'x/A�c���ݯ֗�?�W��ѳ!X��Y����J8O4l�l�L�
 �c�bV{1�`���n��&b�`S�h�瓀��	�8�N)ty��ʬ�؆c�-�p
��l��IIJh���Y���ȖV��+��YI�:���sm�q203�.E�Q��(w��
-���i�Kt��cB��L2g����56^��ɑ*PU#���kpa��þ?v��Y���Z��**�
�v�m�"A4���({U&Yk\�嫽�cHX@cV
UD���aa�՚�@g#�v!�`E�PI@�1r
�����dN�/{j��%����5|H1x��xl�y��Y=&�H25�l��

�A�0y�>#�_�bѮcmd�Z6	�Ҫ�2+p����"!ԥ@�SmZz����Th�&{�E�"Ϙ�d*�������ihvVO�5��]�Lq��`���`H�_?S6�K����@X�4 :2^��򾬪bwa_�¶�*�J��~�Vb 0�s�ڍ���8�#3!���V2�x�|���Th���&���Hù�W6�/AGzuI��'�����e_�
fBJKc} �*�ht���F�˨z>�4�KG��şm���$,��zC�zO_�m�e��m?X����$r�[@3g;���*�B��@�����%��Y5��d$7�m�a�[AАj7��}Kc�6"�Gao1i�`���I�	�k7]#�d��N8'����� ��Hg5�[iFs�fF��Ё��Ptv�@	P	/�X��(&eq��`F�
UG�o/Prz|��J��e���i�絷���*�S�|&S`t�Y)���L�g�i�f'U&2U	�Y���]��M�pdT���b0b�S���* �%�F��y\؏�{h�W�dQ���1H�k�󸤐f���⚘2�T�	�՗Ϟ��:,��I�E��2OB5�LQ��,�e�_-��y�(dEƐ��y�V"_���6XR�N	S��5��1)�p# ��V�V���T �`x�'�C�13�;f_���$Ӫ�:�������9��pű2����C�\�+���$�Mdzf@���q+��n$�/2Ǘ�|]/����Iq�rp?p^���!����=�tva���LDǗ�ûٳ˗9��$J��K��+�� ���&��L�VWIU�U�[@��$�=��If��Z}`�
ϐᙅl��}=���X���@R�Hc��
ȜP2���|e{���3�*��b��_�Ф�L�ά��e�:�C�?ao0����:Y=��2
_��dЧ�ǰ_;ہ�/@`*�b#�df�i�$]�5{���w7��Q��h|�.�,Sm�,mkЅ�H�%$h0��u9q^y\N�Tg�����t�>%����#Z&��V�U\,�� �x��XH Q���Rb�v_�X�:򕥕\
Z>C�fݗ��'����
�lg������Σ=�|��28�
������R��{�1��GdS�g��M�ӂ_���z��]{7{v���q�P��p/	�@#3�g�FA@�OV�IûO'P�Th�Q�:�F�W6���tU�C�t|��bc�dR� C�Y���0Ӑ`��H!�t)��۪t�.�R�a<,YkO1ُ��h���%���T�L^�V8tz|(	6�v[�����_�`{R�Kk�L4I��c%�~��;X��Q��nHm�����uI�$㶡�UK4�دݎmHHVS�ڒ�>//j@�5�HVi1k/@�_(8 �q�c=X���@
)v�e�L1��S�3�H[�4zk�'�.��p�ǒ΢��r�ьE6-��
IƍH�]iw�%��H�9���H������f�	X
T^Iu\�mL�����D�U|5Pv��ėN^���"⫟.��
\؆�+�kD�:�=	`�+��w@�u�e�.K���k��a_±�dm�� �;�OQ
W�/��<�����1�Y��e�`���JRup��̔���*.v��$�Dz�i�,��T3i��o�.���:\t�����G���Ę2U>�۰?%K��K{��qJynkцw��l6_MsC��y�	_?��.�C%Ha')��I��6�30�1u]��m��u��0�bJc&��3d�\YK9��pCzx�^�3O���������ك��4س7oǹXM�
�r��ӯs�27�f%�w>�8m��T&�9�/�"�3"�fo|/9���[2~:���{�p`(|/=vm��U�L�*5���v��Kٵa\G�k@��[�S$؇$������b�yl� ح�'J���'JQ�ٗp'-;�d��|� �*N)ªv啳h�2�魥�P�����0�o��C�#�I�h���=���u����T�>�����1r|��bWivy�+S�Hfth8N����s`�iV3�����g.'��i�V�%��]�T|/�d	��A(u�f2�#��-��;(�b�9ʊ�H����0$�
R�E�'&�aDS�V���$)TY�CX���c*�P�����ml<��R{'a;M)�Y �z��^{m��NV(UV���T�1�k�@�Uc��i㴼,�ٰ���5Nt�w#��V�G�Q_��_�#+)C�v�@��dr��v6����`ۅ��(��Y�7��;3n���@;Z�`�}�{�����뮻��?��|�#���I�7o���o��������~0�7o��Ѩ|�{3��/�b�z�):�����G���u�7F?�񏃮��ȭ����K[Qr`b�=K�N�
x�L�O.V�u�6��",d�4�Ka&�t��6
63��|YT�*���,@erE�2����!u�w=����<>�` �� f
�n�A� ^��x�P�ց��������F�OV�d�����|f�<�ަ��nj&E(������%�`	�`%F�G��%~�=�9��³�>�\t�E�я~4|��G�k��/�"���ks7�t�]�|y<w����O��| `�����4�~����'����+:��ӟқ��&��N�6;�U���|��L�^N����n=��!x ����
�2�/�u�p��g�2"\�.a��k���:�G����mCж
rL�I�y���Ⱦ�l^�U�K��
�Q���*ҡ�/�g:Ƃg"=�d�b�q�}KU�T�i�/_�����}N+���J�	*.K��T&��"S�Hϩ��vb�V��C�}�ʕ���ܟ�ٟ�s�=7���SN��c/��b����cvf�=4���/Q��p衇F^xa���Ռԣ ���q,�.\h��w��}�{P?۫���}����̇>�!�f͚���"f;�of3ɚ��$�����q63��`�BIJ�)S�0PH��/}�.��Uj,�e�D�O�x��gG��,

4��":a��+�'�xYMȥ�u�4���113�w0xdq��Ξ]r�|��{�I��bb>cz��K�Q��	��+2u��/�<�iO����<�-��Tx����*���9o8X'�c�*�bq�Tߙr�������K/�4�����s�Zl�%K��83gΜ����y�q���o<��ߗc���g�1;X�gj��5�撳v��L���X0qZ��
Lҏ���و>���|<g����k����T��W�C�l�.��ޡ݊e܍ff4��qd�Ta=�jA�%�o�K~^�;M/\�K���xL�>F�Y����B5W���r��j
u�J�j�J�"��Аq@o�=������[�w����H���f��M堃�}�S�",t��KЋ������MM���V�T����1%[&��i!̳K.+�I��U��I������!�}k����چg�:����c�\ڵWn�v)�u�G���n�|�T�I�+�/�U�l+b'�%a�a>�s\��ӥp���F���]ۡ����(I6��8t���j�14�+�ˆ�<պG
�dN�����~�̽��o��=�җ��{�+_���Q��q~ӦMѩ��j/���Mޢ���-��㏧��[� <79~�Ǭ{~�c���F6�'���\�d�qv�B��e]DƐp�tR����o	Z
�T�	��lZzyi��f���d2B����O��_&�$jf��`R�J��	��<q�G��U���X�(�R���2Gg#���Z�ٗ��,��2H��f���f"�dRj����lb�.Y>�>�@�X�x�b����y%L��#r�<6��cz��gͽ������M�o~�
z�ᇭ���W^���	ṵt�Ҹ�%K��n}�{�駣*�w>{�qǥ1��q�30�ہD{@A��嗩I��ו�t:w=K�,I��Z�S���O� "�@�&t�v`U�T1�~5@�$��>�<F�}d����q�Pk��D;40�0�H�0f>PcF#�V]Iwa����0Q�&դ����Dv��B���0��V0hH7`	H��g���~�p�5���n�����s����W�~͚5�1��U��7��+W���<�Hs�i�E���gr@�S�����o~s��݊���:3}������r\̏~�#��~`?������>��/�����\?щ'�Hph@��t�30ٛ�HRzy̎2~AGWk�����ˆ]yep��x�3Y�V�R�AWWdd!A@��Ҁ�A��חkJf���@��y�Ҿ�u�NN
���h��y�p���|A�̤�v/	�Z%�����'䵗�\��;�g<;��$e
֥n�@�ZL�
��n�5鰙8�>�������3�0�E\pA���bJ�K.��쮻�
�v������t�Mx�=�܃�wѼy��e�]f�<�̘�|�k_+�ca�7���l>��O��u`d���͜9������&�w�����y��WKA-Mrq?�~�_(���|�G{��"�(�…c5��&zv�bŊ��ɚ2�� f�,�� ��}�8�
NJ�,�R��zFΖ $�0�ҡ��R�I0��j�� \$�$�~�I���djv	8XX���q�x��>����(خ���5dž}�]�tiܧ�َ�|V�i;��`Y��`e��#r��ڋl'xv%�UD�
�2y��t(>ZwOB\Www��=�qE�֕���4f��g�YW��}����Z_�.#j)��nD|.�q���G~� �uԅ�JՕ1�݉�*.?~̚ �Y���6���#�Y@�uD�4�����&�QR�kc�.�$UC2}|�g���7:���o��=]X�t�ݤ�-R�Ơ�L�sra?�e���
�A�+w#����Fr�9&��j7�HT]�E���L|�
�"S:݉o�,�E���21����2��YN>A��*�i6"����$J̘���J�
�32�N��	R��@B8��X�1X'_d�
�����|q�<YZ�Rx�*�Ug�U�q笪�ۨ)�
�\�N>��
�"&k=�t|�
9~�\�4\?@��!�����:�C��tb�@�2}�8R�(A�ޢU]Dvb��$�N�Bu�_�ARR,FkP
T[%Tl�(U��@Jz�I03
ؤ��) ��I) �#�ߤhY��n�c�Є�B���d,8�+��$c$X��}��ڌ�*��a��C��jۆdL,�e�{][�r�N��,5�`�p�>j'�W�-aɱ��;��Fʥjߥ
�4�s�B*Xs)G�߯ϐ�ݣu��l�y�x�~q0"�X�l��+��KG�)��px��4o�ٛ+���=$o�3��Mv����6�=�x�N[��s�$��J�@�@�R�5+�y�"�"�#5N�Y����L��
*X �t*w�>a]�L�΂QFXc&͵5�+1���̳f�)X
7-�%�1')(Y�ƀ�"��*�h�5k6Q�RgG7G�>f@�n��ypM�8�-�?C�"��ut��S)�[)Ū0�2Lc�z��aA��J����3�W�P�.�3f��E/��l��:�������������nT���UY�ɥ}}5�I	ӼRYI� g��c+'�ˈ�����T,�*��Ê$��6�H4S��\τ�~B�)�Lr��A�u�9��T'��L�ª\b��V�p��q~)�c�����N{q��u�Uc��}#P7-zt�;O�8`
;vQ,���H#�ad݋���D��)��lFӏ8f�/д�6�����ۚ�]Eg��$$XK��3s�^N����{=gΜظ�s#�,��/�L����ʸ��/yn�X�y�+W���D�.���,UI>�C్H[���%9T@�9�ؘ.33Hh՛�X,ǙD	��^#���i���ni��h�9���p�
�p�t�= �d���;>c��~9��L���ku�ti��^^�}�~���)�I�=�����}m�6@[6ƪ/�@�Q�NĩJb�Uv@3D#����N7�RH�=W�{�/�+�@'����?X�ň�N�eاF���?�=�g����Gk�c���:�d��,�¬Q2?錠=�F��8Q	`�u2�ЩVd-=yى���~_Ȝ��t���+�ZO-m���T1/�����~\R��1j;K�Ɨ�USd)���d*�~�-$ 8 �0�eV"�V�g�
N4��8�yX��}��`f�6�,��GG]�X�ڙ��=�$&�N˖���?I��ݏ��7P���x̱���=���(bU�c+�S)���fjij�֖6���6��jh��!�����o~}M�>mt�����<��F)�e�.n��ǣP�k֬�+aJO3<S�	l,|,/�t��L�
��b��Iv�]��'��}P�–!�`W�SL#��B�&Z�bDyDyŢ�@i|�^Yo�W�w�M�L�V�V����T2�N�@�3X̀Y����cN�(�,sm�g+��|ن%��O�|y��@�b16�m[[����/>wS!O��(�#�'�0
��W%*�����b�c@)���������w���3��
M�t�O~F���#A6�Հ�/�=r�“*>�Ύ�L$��u [��?0�9s��/$mNRE)��՗Z-�݅��u
�BYI*��RL��d�Z�Ԉ�C��#�@���^]��؁���
(���_�Nx}כ��d��nq���(av��f�p?m�
B����5f����|n��J�G
��@8&dA-gϬb��1؆N��1%��A�7�6��T$;��M��T�����+��n1#5~��ݸ�9�4��9����l��:ؼ�-[�8��xzQ�o¨�Q�H�\��Č�L#%'����ݹZ
�����'/���j�|��]A��T��|��3@�%���¨;@�6mZM�y�X1�;Q�ȟ�j+�n_��]h;�H!e�F��j�q���KP�y�X�e`�j�e�*J�ɗ~m	���}}�+p踛�l�
�N�{e���	&��iŚ
T�N��[i݊�4�M���s�3����Ok�-%랔�+���H��z*�]J嬙#�Ѡ>�cX7�}��Hkvi��c7W�`;�K��i
;�sH!*�
�d�-PW(4Ӗ��4Ri��g;��ōgK
+W�t�ڛ;h��u�v�Z#4�'���o����]@�^p����.-����ہ��-�hر���m��o�Z?@/��U��6S��=Ew��t�E�Q�4t4�sL��� �����TS�����+�=fb��a\S^����/���Ru5�.�(��}�W`L+��Ml��>ALT�б�XM�I ��D�0k�B��gH�3�0�(A�e@�&0�z�y�����
$;L�_��"[���tl�<B����ŶV�B���f�7��׸G���FB�W�	�*�ل��������l8�Vӣ��������h��2R��t�
i����9$Mn����'_M?��&:�t�)gR9h�T�\�؆����@����=e-8x��o&�̝M�Ԫ��z$�	�a�g�;��?�u=��*zr�:z��5�t��r��t�9g�������T��\&��1vx��y4��s{q�H�d�֕#5`IVX��"a3��]*-�$I���cNl
S��ݥQ��d=��c�ѶVy1����%LaR6��:�>�Q�L[�M�L�5�L�fZp̱������~<��t����f��Q{>��KVӶr�]p8���r{+�P��B^ƀ0��\KZ�{���c!��.�l/�y<-5��ZG�u�V�h�QE8s��&z��i�������yz1~�	Tp ��lٺٱ����П�٫)��J�^'G�n	s����BfH�{A����k6�f����F�u-���+���6�nw�����%q���?�@M]�Q:JH�����Ҽv��Yg\�����cЕ&5�q�NJ�ˌ�O{r��wQ�o9�5��J���Y����U[����Zc{�j�P�=O�S�h �`�����+	4�@����S�.0��R�'��f�0�7��F�PiuB�`�4R�bh�s�,�6���{�Q*tt�G��cAD6����a��X��sP��!�	gF�w0�S�-[ձ��~8��z<>c��%k]|��r?�7�v�&z���ŋ�g�SN9-��u��:"Q�Uk���;����N�ށW�^q��3�����/����qZe �=0n�M9�N��&�xn�:L��
����QK�@�,:v��n�K/�0Qk/���U�;r��ҽY����]�eG����%�!������HTJ0��(�=?c>���I�𺴯VwI�܁���H��4Xʀ�s�Q�9%���+8�*.N��cu<����@1���9)m�IaD�
$��f�S�݇"͟�I}/,���(�Ԝ1��Iz4���V�@����l�F![MM.��t4�fRu`�u4X���,^�xTW/��ҥU�/���)��>����9*8����g����C[i����-��1�m۶�g]�����b�o}�M�>��^��ӣ�7УϮ$jn���3C������5-^�"�^7@����g�H_��紭��x�`���-�K����X�.�+�P����5���1&��HC�Tuj6㛘h�U��k���.��!g�V��+C����<�����H;J�j#�e�`FҸ/�d�� 4u�|�@$��F���i3Y����[��K?�A蠸��gMnF�߿���&�ij�������:�.iZ�X���GϚ9>��b9��L����{w^��W�^E:QFi���nJR��y ��\�Ξ���󨳫�|�x|۶�����#��D�nC�h��Ki߹3�[���{gх罌J�ݶ-�W W@@��c3�;Wi��=�@����Q��t�Y'�<�O���n�����{���*�q.���g�R�Ł�|ee€&F�%R�,_�<]�W�@��$��x
&I�St k������ vb�E�e䎔@���d|TN%��2�֑g�0�ׯ�V�\�:���SO�nV8�#���*�{�d�w>Vְ-B�KGuT�>xϞx�	:��#1yܳ�I��%���u�5k_�oz[,T(�Dm�-�;섒���7��e/�Q����ٲ��9�<E
-����c���cR�1
3b�����~G�GS㙄ƹ��D���:�.�46��0�����n\����V7�!�Ơ2L[�9�[�����I�����h�{I����̙d�:ȶw���>˃ۨ�zZ�t�{������k-ljۚ�t�1PW�۠������֥Z)�ȭUW|dVNI��.~ٸq�hzN=�m42S1?W��@�tQ�}Z%�$@�U�'��	X�Tc�ˌE2Vc�t��1���_~9}�+_�W^ye��#��T�1f�>��~�����/X�hQ��k�-+c����A�����:i�uk� M�w������]G��3�K�0N!��G���ݬtve�ak�t:�{�����~��{<��3�֛k�#=�x&��R0��g6ģ2Dd���򗿌?c�%�&x�X3
$Rkv%�[��hyZ�r��C�f:��jͪ�]h����qlt�s��S����tL���"�-[EK�n��6��uiŚM40�ő�-�Kp���!(v�SkK3��m���t�>=mt��vjA��kz/mZ��4X5�������)�*J�3l���?X���/�z�=��s��<f�l��e�="#�K�"i7�F���c&������x	"�����piC!��������f�����[���h��կF��￿|ꩧ�����{���IXl�G��{�'p�}�V�2՚�)��b�<���oZw��袋�s�����'�pB\UU��(辛%K�ĿO�b��Foo�q�%~�C9�à^=j����l(���z�!h��#�v�C<�I'�{s�s�9�X֞o�g����T���@z�U�Uf�{��D�� @2NC��y���U$�W���Q��`����[c!��F}mc�v�]�%��d�����3{:q�����w?����B���GgG=��Z��U���_sm��S/�ӓK�ѢgW��5}1p!�XP��]iF�,��>SI�'t$�Ns���Js�]B�;���0����h&a�����IG�Ku��������s仛��-�၊
 �S���	-��3����t��duU�t�ѿ�(�d7IRk��hx`X�q�D���.�D����t,n�ٳg�k5w�����+�O>��\}�ե7��MP�
�:!��o*�~��1����2�ѷ������s���źu��G����/~��4�1�c�-[f;����y���0�w��c��7�����o��?�q�``����_/�5�����;��:蠃���
6Ŀm�1��?����{��+�-1��۞�X��'�VI�*� {r�}bV�ٱt��С�3��-BKV��y��
F�u1.�:;������2'H��h�+i��-��
�QW{���|�z������_Џ~z/=�x���[����L]nio���f7�k�����>w����������~p�u��y���	��D^?�e�jP��2���F0��b=���6��_�3������.rLz����w���,_ή]d���u*m[�SmD6����/���܃���'9'�s�֭�?����Y�
N��0�Vq;��n�-f��<�L ��X����y���V��ώ���o����`5�<��L���6g�q����7���ñ��y���I��{���]q,�<��S�B��/��b��st@�S�ߋ��:�v7��tf�5���t&2}��Q�겎;@ι�Dz;){nA���~qѦx �n�X�#�}�+)H5;a0Ӟ]ϐC:�݌�$�5g.���������/��X�c�r�Y�v�F�20;\�9	r��dV܂+B��Q��.����	"�N�Կi�?�pz���2�o�؅h\�c��?�-�WR=%s�I��gSU_�60'4�;$�C
!��1�� Fv�઎:m�/�D�s�<Pa`f��k��/��ϓo2��l�I�F�:��6A#�"�C�����PM͛7o�	���Iν�9'���?޺u0�������Z������>�����7g�5k֘�
:p}�
���`�|��э7��@
a��,�</�_oo/@g4k�v���ϟ�Y	�
?�p��{2�,k�.���7*�2ǕL�'Y�L����`l���}b��利vZ<S��E�|%���V>�ϞY �d��p��:�?�i�Ї>@�{��yt��Υ���n��}�����fg�q@c�P���<M�A�z�SSsK\�#W]4��T��4�u�X(���y�w@=8�'L��zK��Pl�찠����eb���$n���9Ӏ���6x60؇��� ��5���XZ3��J*��3ȧi
v�z+J`�����`�~ea����{�
7n�`��~N>�d�`�{�UW��i@ �y睹?��j�[n�%p�8�	�>�1z��)�����wlŬ]�6瘧��+����\@��o��W����=���O<�s��6�hP�lÜw�yj�믿>.e�͝�~���ŬŽc9�b���s8����r]tQ��&-��ŵ����$��(c�/�~��0ㇶ���6`$���Q)ĥD�j.ÞD��rJY
����L����uX/���,U�I�Y=s�e����b�g� 㶟r�ɱ����b��煝,'�~�Ŷ���Njs��ꮷ�0ܓj�w�{���@�����}?�w��ڵ�F�Mր���28T���@R��Y���[m7�g�N(���]7�������� lp<ƍg��I�����G��Jv����۷6��/�IazsI�"��e<������L0��`P}��6�Q�=	9�0���31�n��{v�GQv����d	�Ʊ�pΜ9��G]v�����X7)(y�>����p!k	�6�C�Dܣ,E<B��#����$r�͚5˺qD`xv�{ý;��{�7��;6f��?L:��;�:9������ �m���8�O����/���+�oyK�6$�0T\��	�����a�^L�s��X滋��d�	�ubDmL��Ju�rU�SaT����}�3m��믋gS=�=Ԃ�]�g������`|��M-qZ��!�I/a���றz�4y����{޹U��\\�D�1�j-9K��ŵ��1��'��'���X<�^�x��B�S�`�g�Z i���;�;����6�k���$�"��3D={�O���e��E�4���d5�d{|�����X�E޷x�駏z�9P�,`�s����	yv�� s 2ʎ�g2w�\��� ���=��k��3�XHЅ�[F &&h��q������'��B3V-ffR�"S�kc-���B8q..����A�A7��A�!���a��]�NIJ�!وJ)��H{�1��
��h}����>�N�>���n6�(m�2@�-����B>����j�@�_(�Q��I'����Mo�?:�X7�����b_ii�Ԝ��[�!A������K��B�U~��0��3�T���0�A���cpo��S�����mÒ��B����J4@�yo� p���PUj�@�Kt�)��A�:6���đ� D�
$�1Z�(՚vi�؉��}��|�#Q�"�m��)᝔��N��H� T��I�!=��@���X��<�ϚY�a�!@���M�hѢX����(8H;��ζ�`(�K�$KduL܏�����q�y�٧�N?v?�l{7u��tǝ��ի�TM8B����<WtL#
Y�Fq����8 9�N}�9t��4��<m��D]M]T6hGp�0�Bd��̓�c�,��lx��j-�Tp���ĞsPE��C�v�,y�c����&���{��aU�d������Q�Q�w��Գ��v�]%�h�_���Z��
H'�z �_Q�)K�rbGiԗTT��x>�:��q�)���Ɨ�2���L��:p��Z�K]�/������x��E�U�B
�.�Y�Ε� ����ƀ���”g�\��g3��8��cwn�}s��c�?LK�[D���ҝ?��~����^Nǟ�
��߁4�wv�3
��dhx[�i^�#�:62o�Ch��Y�f��w�ohz��x�	����h���4�cM�'�8U�������c��������=�L��=����z*��.}0�B�Df���d$0��S��t�w����p�\����}'����(Am��2�3a5�v#.+�a�"A���g,�uT|�I���e�����q{f҂J�LvA����,���_d�sV�H��}!���휝�/l� s0�s/��b��0��t,��3h��(���^MZe"�12^y�+Ж�ƶ���g���|��{�t��І�"z�'hۨX�F=�q��ƍ���>*U��m}cwK'���R�`?-z���頡�}�}{�3hxpm٦���q�LY�š=��>!�G2A���LҦ��~��_Ů���|q��`��sI�L�"
�25�̤[2��L)e���*�F�{�h�)ᬽ�dy㱗��!��1@����y��aX����GYD������ଧ�jtۤe)3ىxi/�t�:/�4���Q�:F‹#��`f0����`���,��`!��xl����b;�jdL�\�`��%Zc���惩�s&�Z�O_�֍�ܒU4w�>�+4�%}G�mEYw���<)�h��9t�C�Ѓ���(�)*;�2@���{q�z���o��hz�~4�z��ͧ�l��8�1��0.�N��Fڐ8��mZ�Dž�8���L�K�2;ۃ
����a�y���,�~H���1�[��7)�~'���݄��Зeq-�/ի]��0g��!K�a�9P�RW�Z=��D��M����#��g�'W�j�I�btp�ńo�0�Lv����K�N_z�5%��ԟ�n�U%zf�_�{g�?��P�jY��г�J:h�=�3$�r��8����#ۅ������p�����S��(�1�9bCz�"ϣ����r@r��RO���R[{��=�8=�uh�6�<H��?�.�����6�K�MH"���cu@��3,^��KF���s�1�a���o��抄�>Y~@�@���2Q'Ot*�Ҟ�(�{�����,t���Fd�y�Z
a�6�2A��
U?�@�d@��q_�w~�߈�1R��AФ\��X��o~�%k��л�������*,����y��|)��/c-��P/=u�~AË̳i��:(��a�Ϭ�
���I����*,�y�1a���(��c(S��Y�7_L_��g���xK����X�歃�vldS�:�W�X��FMn��6P{G+}��H���'�]�z;͜3��eH�^�R\�$�
Ȥ��08Hv��c�]�@A踾��~:���!H�v(�3�P��H�&�A@Nt�,]YQ{}�< Ҁ"�>������HuUD��J��S0	�m\��D�8���\�'�t�R�TC�+v�aM�'��s˖-kB� ���+W"X1p����!z�
�\�x�`��cC�_�$�<1C�#l��Q86b���$u4�y�k,�_�0S�4XL��:xf��r�d$|f3���J�rI����
&,dX-А�ĺu����0��ď
AY����Bp�h��3l0��'UV��*��`e6a��;J9.Ĝ &$��8�q�֮Ez�N:��yt�=���ǒ�P��ιy�z�^z�q��%M���+�������7����oDf��]�����j	� �v	!D#!$F����x�a�6�����3�������]��	��}��ՒZR��ޗ�Z2#b�2n֗7_dU��U}�tefDdċ�����{�; o8���K�_�2,��r�^����J��Xkv���i6�
��R�}�z�j�/�5�K�}�^3����.���c��5
���ao�)�j�v@rz��FBFX71��*�鿼��'dR���
IJ��
7�Pr���ꫯ�|�ӟ������l����K/�Ty�[�2��y:��cՍu��}�>���GȒ\�bE���=��ˠ��y����ޘ;pe��=`\y�P�����AK��O=�T~�Wq�ශ���d�ʕї��Y��?�`_�Y����A��[o�'~�)�L
J��0�M���tWì+m��1�e{�+ե:O*�F�MA�0(`T�L�W�3�h<D�!�vQ�GS\�`j�^g���|�"�G=�_��u(�zk��;C�[�Fz�^�?�[g�tW��F\��(�ީ�G��X��X[�E{z�j���,9lS?�1�ޟ�1+U���9�J,X}���Y&E�:��z5���v��E�R�,k�K�[cӁ#iU.I��	�c�h�
�{ɒ%��O>9��?��F�yT�CJ�Ws��M���x�}@c�]���?�a�ˍkO��uy�G��1���Yg���Y1
Q%���OG���r�-P��?�я��I����E����A=�2������8N_�x�I'�;�,�������cr�e�������g2��-}@a���8.���C��x�W� ���0��ҁq�����ow���uQJF
�R_L�0��4�Θ�sb%\<�R9���SR���^�u��{۵CF��|����rnT�œ���yv��P��H�ƈg؜<���E��L{q̊k@���p�=�8|
�'��yLsq�!�^on�����e;p�R*0�b�@�9�p[^�^8ޡM���}�o<9�{<v@i��s�9@(_{�)z���y~}ݸB2�ү�C�:9O�;�}���=k�x)9�9���O}�
��<�3H�`_��!�x�҆j�UW]�'
�@�e�y��ad�8&��N5��9��A�N:��~�1���g<k��0-lW�±
�[�E܌�N����9��C�.4D����~�rJ���\t�"����u_�-~�v�SJ��?IN;�Y��(�w�yf�,��/]^Z����j^Ret�Z�,�+��*jCk�İg©̬��c�����jKi.΢�k��~m��Y]��X����6�!T_��n�{�8��l?	ɹ6�%QbH�T���\��m-��o���<
H�#6:iԁp�}�.^�8Eox,�S������֋�� `�u�
7��~O�w�SO==��«_��_�*��w��� 	���;/��O~"�<ͅ��Ǒ��k�gP��t��>���BcPh8V\x4�#�D�X
$�h��^�����\�Q�&�0�Z�ε�3azF�H
�z_aOE�+���9�P��q#Bm��s�����4nV6|0��xKc
�T#
��Vo��b#����vIٹ$3zf��L�{�e5 �f����ŋY
�iTF�����E���++
ǿų�P��&XyA
�k�"k�c��]xp1�CUj�L=�p6`WP�ͭI
�`
pkQoO)4��{�1������WT����^��Uf�*>0��?f�Y�F�u5�]���c��!%�G�J�eH��D�)�=��SSg�S�.G�X'(�u �n۶
k�vX��R��u�#s�Q�5�K,�;�!H�>f,wo�[xNХLJ�;餓@ť:���vZ�{����
��D A�|�
C&	�]ܼW1W�?�L�C��*Ec	��5^Ug�,���ٜM��
7LRcc{o(hq�3�n4�~���oBV*� ��5���e�ܴ?
�Q._
��e��Nk��8���r�edt����d�Р�K�9�@�A��k�<%���aY��H���gXf����9~��+�� �ŝ��"�t8}��Xi�	2��`��Ʃ�
�ܞ��W�z2���ٸJH�M�`��@�q����ж��y�@�&�Z[�b�V��)���9s��4��߇�e9��9���x4�koD"���kG�xr��g��T�*ˁS���ow���G֣�j1��ǣǔW�G�=T��t���)M
�Յ�IP���v�F7T;©�J�؞�&\���Gk 4�F�=��#E)5�\�1�5uX%A�Ͱ6���7�����4���ZYy�E���w�m�d۶-2<2,CÃ>�+�K�V����<��?�V�{ù��[��fyPʲ1�EL�qj�];T�����=��Ì��������`����\��ך��dL����xػ,�@��~|�m��px���:ʌ�i���e�t)���cH�YH26	�����ڑT�+��:�8�0
����o����X���t����
�*u���[�
+�a%�y&
�p@e��7�>(|���A���Vg������L[c꽨�dE^�5"�=�^��i��5ٺ}�<��nF7[z#����5@^�4s�Ku�K���c�u�����!���v6yMz�*c���Z��eV�՛��r5���=o�^�$
�5ckD��cQvK�i'F�b5(�Y{�R�-�5��}6Q���H�bVdP���+�Z�8*��P��գa}�IY�D"k�,���YZ�Hڀ��h/����~��d���t^4Hj��r����9}V�~��0�>tk���w�����B���e�b,7����,��XG�O���}�c��t��s���I��u����5�K�D��ݾ�5$�G�Y��w^�kŊ�7��ʎ�rgv�L�������Գ��J�X�dݎ�V��vYO��X �^`IM�減�BB��~��L���-+�X�9���~b�w)��X*����@��Ÿ���5�"㖢J}{n�hI�G�"����ڏ�-�YpC�kP#�����
�p��:�1�V��~���B(�P�i�u�o����,�)1�tW��O�X�'~,�?�9��#?([�n�J�3ֵD6o�"/��l۾C�;`�{5�=q��.��+�6o��_w�TG��3���K=رҮV�3�����x��UVV�@�+�:e\���`�mr�����������ҙ6���*��ڇ*œ�c��ƀ�c�3md��R��a��L��h/��V',5o�J�|f�}M����h�)�L��r�J+Y����@p�ڞW��Q�w��J�ॱl�L�0�CA���A�q��b㩆R�D
+�Uw۠��]����>!}�<���Od�+[}������7�+g�}�_���Ǐ��7�"��r��Y�F*ݐ|?K>���ʒÖ�Cʾ��RH:>:����6�Z���C^�1���8�ļJ�z<���b��0Ȱa�8/�9uҠ^�N8t��D81aw��},����
��@jf�L�cU�����֯_?�&/�c�=��{Ws{7*c5*J��a��`��3gN0����q	)����s�΍�;��xklҢ�Dy�ky��Z�+�Ԧq�D�� �)�L�֐�,X��r�j�T�FF9y��g�Y ��zR����Ep�!a�:�V�s���&c1DV�
�xm����.��H�貏˫�{����|���g���F����D_�W���$=��v��l��8ց4
6�b���^��p�B@�
�@��\�f�ɖX�<m�E6���H���D����&�T��q�pj�A��
��`��N�&~_�V�J~���E�!=��2V��,5@Vz衇��ܺ袋B=X���X����뮋.���,�>E�W��R�z�:q�/~��L�{�D��G��]`֣@��]l<tƩ3j5J����R�y�w������C(�xNOŢ����q\@g�Za����s�8��˴��.8?�9�)g�s���@b4X�ԟ�:��C��裏�׼�D_sR�b�5�L����5�L��S]�z三�I:9�`�v�Ԝz�z|�zl
^��z86ˋ��~��T�B����w=�=�RB3p���1�Ft�������mh%����{�j�J��ǽ��!=�2wMRg�c��ƍ}�S�}�Pp�<��}��1�O�3�g��;��k��w��]^&߻{9�?>*�\�!r@�{ ��w��=H�@�k����s�`�=
.��^��s��+�DK�,��;�<q@���~��r�g�Z2Յ��L� �p|���i7D�{b���3#�3b���9r}�r�X7�ff�€
D��u/
v,̨����jrq*0W��A�3�P!��
��-[����s}VS��:�l߾�?X�7o�@�F�{p�Ƕ���O��D��--���\����l���D
��R��\KǷL��իQOLiJ���q����V�=Ӑ��Ӑ����n�S����τ��R�V�v��&ͪ�>v��(q^��Pw�'���[��{,EU��
����@e{������_���_���W��������\���Kq�@�~#��_��k�Z��y'NH�D��e	�sɏ~�L�7��
}�=D�G�;��ݾ ")�
0��7��T����[_�����X%���cT�#�B��_~y'?]����:;ZѪ�pjd5���
@j=nf.��R-�T~���ٟ����b[9
�+=��n�[�(
f{P�H�%6�Xb�қA�kn`��K�[)=>ݎ���l�ޞ�B�?QPPiqTH��f��6��i�k�5;O�d���c����`�
�Ek��f�~y�m�X(y� �Њi���p}��UZ�l�k�7q3�����}�C���׿^r3z�R)g�q&��Κ�gr��g���!iR>��#T����Ӗ-Z�����]���?�x�.��
�����)h1�|��BE=�=���o�.��R���a����8/�~�vE�-���L�z�x�����ә�*09@�>H(@�r��7<Uf�"����Ab�7%n2�T#Q��Ї?�a�	hL@��H����5�L�J
�R4�ʗ
{�X�cK:�X[Eo�����F�s�b��t�U�F��S�8f�Y9��a����w0��� �����z2*������=��	�<LD� 4 65�R_�j�����xF ]Th��UV5ۖ%�T�ˍ!d�}E���Ehk�>��3%H��4oo�[��J'�x��H�����/���r�-ɲe�RTֻ��J�]���4�~���Ek֬�ܳ�p``�Z���2�7�p��K�=T�q��(��i�@*3��z��	����*�gTWL�!�h0FAuv ���l�L
�y����kE�z/�`��p����]S�^����Q���o��>U{�
Dj\�fq�R��9�x��e5���V�[��X
{=\8���)��>Y�5�
����6��(7����x�0*���3m��D�^,�?�<�b�O�A1Xo��U|�)��G�uo(�K�Y�u(�ၸE9�뮻z[h:U����=��e��B��?�A|�UWA�1r�(r_�G?�豒��y��/�Kh]� �
��l��¾_z���~��bnB�� �x���{�G�~i{�r�=���1F�2H�`��Jp?�t�M�կ~�1�` �
Y\�E�ip�>�5���k�=貃��W���Ns���5�:;׆K��aܹO�r�,a��z	�YN0b0f��ԧ>�3?T�3$��
�m0S�gh�
�
�T��
kU	�F�9�d]���8+�ng��f;� |(~�3v��'�l9����T��*�XYi�L�Y\th��������~�z(Mf{��j����$��[)�_$����ƶn�k��cj��IJ�>C��q�y�Mв�_~�pv�[���E�6�\�2q�-{�?��?�V�ZU}�G�7��M�[��<��^8��/�8u�5q�M��0�%�@c�'��g�y&�"�N���>捰2$�B�Yb��胂�<<$#ւ{,�ǜW��^D�x$���v8L>qi���J�����5	�E���a$`L@k茗��Ѫu�q�3|��w4����v
 ��(�অ�����ʄha7��g�\k,yz�,�鰡�a�{�������q=���U�
�����`�;���"��f�q2��)J�7����&܋�=Ȣ�zȀ[�#����Mq�z�Pc,ֳ� |���%͚W���T�}�k�\|��^����T����;�9c�k!QF���{��T�1�V�Mu�]�qw��@ �J=���v�X�K�h�4H�"�7�o�-Q�G�3���wg�q�����,{6��jk|�n3Vx
0dx���Y�R1�_��ad���a=D�G3�4�W��0�+�ר��~T�ӴYSJ���{l�l�j��
��-�]��SZ�3�\����5@�@�
�4[K�}�{��=�v�k���f�f�k\C�8t���S��	E;�4d�����t��"���4�]�2�"\O
ݕ�ϪD{����P.�����J+��|�]��Ŭ^g��Uh"�R-�F �qzO
<��q�����W_}u��w�;�Ig	�z��r>�idi��Є��v�\r�%��	+-��l���G�~�Y<7��}V����Z���m�eS|��C��VQ���6T�R46�A]X��� �~eÆW����G��"�m�����`�N�7��Y�X�>F�ͭDZkPl�����!j=	PfZ�n��(R+�_���lٲ"��X2'ā�Ђʦ���B>
ċځj&���d�L ��!汰�•�0^5Xo~�[0|J���l4&Å�Ju��l�C��ĸSc?��d[3�ijp���i�ZA���50�������r����Ƴ4������V��AWH��6��1�|�5!��V�+�j=�����M��!��HZ%�ˆ-0�
F��
1�ܸ�0�1�L�%3^���bi�Y$�o�X��k�uV�w<�β���|��~"�>WNk|T�~��u�Q�3pm��=���f%) qS-N��&ׇ�b�.����+�|m��P�<ׯXjN�[�B{�hbB���W�k���X��Z�j)Z��g#�����nG�1�ֽL]%��C',|&WN���9po�(c�TZ'iM{̹gf)�	Ch(�[��t����z2�6��ꫡU�C�jz�V�묟�!>�����麈00X9�P/w,�o�)����-u�U��:.�tj����ݶ�
�v��D��P��)�uM�̾�̽F^Llh.�G�*ްa��z��3�Y�t���]��=L�`�*�Mٯ�~�v���{;v�EBǒʄ�a�q�ɴt�L���g�`&ꉨԼJz�w�yĆַ�%Uc��̕�:#��X�������Rl��5��3�4�/NW5}b/H��l�1��҄.M��fv2]t�&�2N��8�TWdh���K
�U%���}�����|�{���]��n���]���_�r��O`G����h�aVL�Ol@�)�����
�=K���b@r�Z{�t����W ac��L"l�֍�����9w[d�a�����K��Q�g�)}�mt-p�,2?#��X�lӋ�d�Y8��Q���m	إ��=O�c<�@\���F	�'<߶D�^)�n�f�ܹ�i���T�C��c�{<��s�5k� �Ϟz�)��3Qv`�[�N%��O>�d��⚼h�i<�.@�7
����
�0���O?�4��x�������b]�����ꫯ�$��&�N��~Q�8�T:4��Hx����=RUUrE�xVT�K����}؆W�RjG�p
�m�1��b:�%��l%8{J��2ޯ�=�g��f�<X�ق�N0�-��x��64���Ci~�ڱ�$�vN�m����L�Z���SцV��v5d+�u�]��NJ��\��x'�'��s�9	�G��0_x��ۿ�D7�J��w���hĨC�袋RH��wn��Fx@���E�����}�3�����u��g�gj�����;��@������#�<�|�ɑ�.[�re/H{�1A�<23�{n�g�����-hze�G��駟�E��o���t�V#���;a�&\s�J�ډQ
�,a;���_���ĉn2��h��h���NS�F^�ݎ%�5�nӜ9#���,8i+�C��\��mͱ�\?+
�"�k��M��d��p�)F�b���2������>��U��]w]��_�E��[��$�cO�̙}�_�@�^�'?�I�c�W�z��G�3�W�L��#�y��QabAH��Ȳ@�L��s�����;��@:��V���mo��������#�~>���H茡(l��:`�Y��7bx�	qs,��w~,j~e�5{+�>�B�P,���V�1$���� Ò#�.R�c��&6�YG3�T"ł"���~2�|�����8�^2�
���]�8�2k֬�y)���=�.�"�����;.�v�t��u�Q���q���Ÿ	V�K����A:E���JPc�%K�}/ ��&h���k��ӐK�v#<�n�H�*�)@	�
(�e�I n_�����0�,�Ũ��3#�HT%�{�k<���XXRo`�~V=��`�-�s�z/�O,��1��,Xp59{I�\��Áx��O�[�{<�7E�%�]=�8�+MU���<�Xӎe��"xz�7�����B:����AP��YA*��_$B!z��v�m�;d�!���8s�g�j�=N��.\�8�4�r�o'Z�v�-tbD���'��0��8$D o��f0�o�~��,��Ź��!�s���7��XDn_ѷ��m��g�+̥#�8M<�
D̀�0K�>2Q4 �|/^��)���2�L!�3��-z@lKc#=N�+�2��㝩-��t_�$��_s���&0����Z��ړ)$!@�-h���d�������1��c���!5t?t�7Al�UΛ�9��^|��U�Y�C@>]�b�5L��9��Z�ְ�3�5�+�@$~��\�n������os�'�U��%^��y)�t!��<	�=R�7�X�|y�F�o�'�AMT��C��%�<��@����О `�=v<��5�v��nCP��d�>��꽺=�g)(��e�B�{��Z g`��[!�{K�qp�AG�WӀ��߂�jn1��L�x�H�h
gsI j�u�|,��VIZ�V$�: 47
c���sa�H��y{\�d~��߃�#8��1�袋p�'�֜66���ͥ�Yg���a�:�cF*��@�!� �.�y�{�f��>���h���+��v᳃�t�d�	����*uU��6��i��~�m0Pp_s^�{;�R*\`h{��`��\B�p�&j���)�YS6�P��I�?�܎Ʋ^��+�`����H��HD�ZZs�E�>�]#D�%��!Mx��k	1*����aI�-�T��3���q�*�C�%P��	'Y�
�oby�Z=�h��L Q�O��~P^:3��Wb[�*�Ah���`e���^�;2]�Ɯ�8S�u��<���
B`#a��u5�����X����V�L��
ڶ���6"J�Ԙ���6�R
�f.Fl(5�|X.EH��v�J�
���yf��Ș�}���b�(68�K'?ŁĶt�oD
��wg��%۴JB;jV�[�����mF��
A�bA%��5�*k�_4�46Ǖ�|v6hǶ(�n=�"P��C��W��ƪAm&#7�RȏeL2
ػR�=D6����8|0]Z%VBqf��f`M�ES�-h�KL��Gb��o5s
���rY�0��3��ۨ��&Tw�����6����C�ZL�q�F�������S��gc��,�v,��d�7�3����V�Ś��
���H�v�nS5ƞ	kqEp��Z6�Iq�v�g�six9����WL:@��I�	�1ρh���jt>f�:4��l��� �F��%�5�j��,'��gа��Ef���-���׬-[Q?Ѯ�������)Ꝅ����UV+6���Nlؽ��{U�9^��a
.%�}l�S
��Ev�=cS��5/�E3Ԫ�X��t�I$0ԨpW��j��P14��B@Ͷbꉽ
6�
<����Þ~�5�X	��Y�^
˸���6��}��L��QT��.Y`O��C�PNL�0`��I�7҄)��^J�x��wK8�IX����3ϔ���t�ڵI����_/_�����{��I��~t�5נ�v�Т|��Dnݺ5���ˑ�j�WL�0�X=-m�E��!�xj,
�s��cJ�qH���`�z\k���'���6,d��>c����،nkρu���գX0	]ۢn��$
��3)�!�� �K�dƓim�[Z�n]����@�b������>k�� UX~��7��M����K_�R�裏�Q5�y4���$��ק/�"�X�]�w��t�I�\�QN-��u�]�`~��9Y�b@ſG�/fxAA#�y��A_:�\S�#aP�M�
�j�ՠs-�Y��
u?dO�ϕ5��F�����z+0i=
ۖ�z+8�}����\��JԳ�V䝄����\�8��m�Ag�\[�P[������$���;cg`q�j��vZ�W^u/��͛Ws`�U~�:�{@�ѿ�뿎�I��
y����O�.��H�D7�pC�@
� �(?��OP���oL���/�_��_E7�tS�z�j�!���?����d�Ԃ$�������������r��G˻�.<
(׬Y��r�-��B�Tȯ��q@��Hm�ݹ��czw<�β�����j}�Jg���Ή���K�p�zl ��
r��= ��[��ӏ�r�
��v�1��A}��1Ԋ��c3�B�"�(�N������Y\	�[%i�Ud���e�	S��o����z(z�ᇳ'�x"���_|�ŵ���m%��������3��ҥK3
%\gg�!��[�p�{��T��{ꩧB�+F�;��7 ��$��'?9��<x��K��ǀ�{��@����ѽ�ޛ|��E��s������=8��_�e�B�[o��B���N�0��^	��U�Q������׸��Z�-6�Leـ���A�H��U�
q ?�[oE"٠[��V��:;���b#E�i� ʎ⸉�m��Hs��خFF�qw=j�ͺ�˲������
��~��uU�r�e����������+��0�Θ��<�;�#s@A�X��\H�+ ;� �p����n]/�{��{�����*����� �s	���3��=&6����>@�+��tCȯ�i@����:�� 90���6y♵fq峥&OA�6�Vؑ�OB)�6�jP
�[�k�ŋD��
����<����km��;�p}Jȋ�F^�b#�d��� ���V�`N�U���,���:�,�I6m�o޼9�뮻Rȟ�b*C���oO�D?�����5k֠�H騣��Ts�L��O���p��s#2�4�<��E�b�n��ŏ>���� m�k�.�B��sr�}���%���n��M���@�
��M�c������<�|�ߔ�\N>�d�<��#�B5�#�8ŁD��gq��נ���*˜�(p((hL�g�vbZ�֨X��u,��("�(��z
p!�ǐGa����8X�]
$�῵/|(dՐ��3�$UBI��3܏=��V�(�d�&Zd�)�yy/�u�{]��s�y��N8B�����o{� ����3�ŋC�1�3���(j˖-KV�\�[�R�@��%����T0�Gyd�ٳ�RWI��ϱ�����_�b���@�L���h0Q��K0a�犘�9��aA���C�^����߰�P">�cv�ǎG��C�ڮ���Ju6��&��YR�+�C��gX�,��Bq{<!�=�P�_+3���:�&;�Ϟ�(���
>�j]B^K�Xs
*+H$��V��(��HsM��J�Y�f��&G}t�^J�![*�1��jy�qƺ�^�mR�������U%Z.B��ƀ`�\�=Q��/���&�
�H=~�k^}�#��Y���'��i !�����R�~2ȩt�d
{$L٢B��ť�J��a
-5�\̨���lA����g�����>�}0���]�y2�ɢ��w�߂���Ls�'�c��$$���.�x�y(0�\�X��e��b��LjƋ�Ѻx!(�:^
5�����f6��=W�4���-I�y�s� }Ɗ�Hv���CNʥ&��(�Xk���G�^&l��g�3y۰ͫ��^a��`Ud\Y_��Gĸ6&��b�)Ņ�J����<�!a�v��SXR����t�p�,1F:
��f�U%,��cጲ(����$Ҫ	�Œ��B�(-�!V�c-�T�M��LkB�0�x%|Q��R�J{qe����h�D���k0l�m�CZ_(E����e�[�h���-��w�3����c@Sj���_�"�������,�,a��ΰ�T
W�W�k�u(�!p�_�	Tb>"�%��j�8"�51�Y�KV@���\�+�uM�'�����PU����w;۷^
�]�l������jo��7.$U��,��eSYRn���MH�'��l�,T�Ǩ=lS���P���٘�~`���CTB��BUdf�5�gR% ���?�nW��ġQi�R�I���*�iǕ|�K*�Js�Y)���jN@h��H�rKL��Gž��0�F�
�����
6k�
 r�5�t}k�-�e)�v}�mC,�plƙB��,xX�kp(y�"�c��4զa�Ԗ=�"�U�G�B�†��tQL���i�}��]\���^�J��#�I��
���#D���&b~3x(Q��a��&����T�;`�Y�q1��m�D�QC�YZ��:��U�Xȫ�^��PjpMƅ��*��B�f�`��
���`��m༾���]q\�=��I=��S��B����r-�0�djK��|$�80�U��]dD����u�v	�;1@I����11�ؾ+��b����g�Y�b3ny�C�C5L�ͥ���oiK!��������J龹|Q��ׄ2�X��w0�g�K�0�R^Օ5��,��7��O�^r� �Z`���V����!*lH�f�6f���[
�4�"ƫ�פ9�3�8��i��
{1Q^"͉!KiCu	�n1$�^D��!����Pz,Wa3�x�z�g���˝����eR�e��
"�,�Y�H+y�o�'JW����bOE�K��7:fxi{�$I�W26��d����Ci��Cj�*�PB=�C���N��\�Q%1�D���V���'�f���Ob�53�!�\����[;d�`M0���r�ƙ
.S=Je���X
˕p���"j�u�n
�-����&SUz���kS����q��a=�P��m�ű�"�y��⸋�33�t�ml�{�6�,t]��I��SCe
,-���Zk��G�'�/�!1&�K��F�� 5,=�	<lj���ڣ��e����:`��J&�W9tT#����J
�W�T��5s��ms-5�*K�q�P����(��7�Ƭ�c�El����;þ,��^~�4c�,|/dy�Ƶ��'����z$��
E�b'
����$�zkSs-�$�Z��g����3]U31	�:�<���dl�I8��
�g���U�:QN��~`2U��C
H0����Qd2�T`��>'6��Z�Ue+�x�L�z>��}Y�:�6S��Lۣ����h�-�ނS]�ů�̠K�"��1ixQ
��O�Y�(1끄�ԗ�����kui*�m���>6�1����������O$ܸ���k<���@&���N:��4���m��1��ЪsUf*�9���3l��)�!�F�m���C��cP��)�a�n�;�6���}�geS�뿣����"`W�J�E�%-81�X����D���(�#�p�+[�h%T�V����P3ޅ~��'�Y�U�.ji�a��)��o;*L��_i�������P����Q�x%n��8a����D
�R-63�S~1���!2�Y_V,R�ξ�x����ز�!|n���uXа�_��J�
U��߶�qݖ�y)Vc�J��|���:��ٸ����.�u�h�����E6��j<�$����8Fb��P<�$��zma�Ȋr%Da���jk��
$;v술�.��SL�{"
����֯mH3�$��xa�ь�
�vL`�8��kNl�6��7�1�ʲ�l�"^) ש0��
�m�2��Ғ'z�C*�V��9[��-Ϳ�:����B��֚XI�"�+�L�+T���f��~Y��zS��B�&!�a1/(2^�
�[�aqIK�5	GR�o4�q*�L�o�F�
"�D���K
mO�_��6��PN�&/Si��ڲeKS���		Q-��b/��6���k��E� ��S��صu-
\;z�@dw��P���C/>gN_n�`L06LBi�\��R&�eg�lU`��>�=jdz�	S`Lq��~�X�i���z*Y�e�b�����#�]#
���CYH�$,)���k���?(ՙ��W!�Q"/>�Z6o��K�I���իds�9f���ە��sǎ�W�=C��7��?^�y���|�VZ��`wKWپ�6���SUv�Y��03`��ʞЮE�|"@bkz�����,xB��^�~�6䙄h������dR\[aAB�I�h�@;�H|4�w�xC��=��F
�Th���l̄�l�P�ˍ{��()��o�O���gt�I���}^�c���F��voJa"o��`Rq�7�kPv�b��m$��r�;�A��R�%�#U�/g�}pP�q��N�#�E�k��ČW�y5�H+���+@h?x�p���XP��ATO�+�����&X����UԲww讉�
�W���u�Q2�Xt��*�ν]*q��(E�	w�2R)N�
�X��C�3�z(�oQ���k,�K�"���ā��R���I�n,2��,ζ]���p�6�-*�KS��؁I�WɆw�*�9��0����Qw��Π
:0�x,��+5<\n��]3�����ЈTK��D]�=����C�Y\0D�*�֐�TU�Y�^r�;�|9�X=���=�ّG��D,�L4N2��h�>��Q]��-�Ԁ;�"�o��
�%����z�"�z)0�RT�h�CY^������-:��u�~ n|*�ۈi}��=Oj�*�U��x,����::��34�r���]�(k��'YWO���C��O��,*�8�`�,��t����LjS:fw�̾H�wl�MiUzg�K�
���cF���.�輷re�̬� �G��ܙ��t`�&8#�
7r�m(�7�R�� �J2��މ�W���LDv��jGo��0(��E_|�*H�P���责�B^J��8JVGI��
,���%��G5w��xGdh��4<2���wi�5Pu��},�@=CU��t���]�$�׌!�^�������͓�(�W0��˰`����by��`V�C�K�TzgΒd�&y�9�}����u�{=�4T�\lP�hkv�&	��r�n8exAg��1���;~`����&Jm퉱l��;1����رCv���Ae�{n���������@�V�[ʊu�X8��!Eq$x$�r&����z�>+�[B �S��.�������g��Н��W0IG���?ˡ�{`�KfTdث��/E
�����e�yY�uO�����|	���op�Î��SZ�t�n�M�l�.�9�>�fw�+�8,�(XNH&JkM�C��(�e����>��M�@����qĄ�f��\Pl
�5�
��(&O�d(/���*��کQ����O^4�I�C�BF�b�䤓�T�,��H���תΤ�N�+�,;�H)����c^%�⊤YM-=\fw��V+2��E�apb���90~CRK;B������/mr�u0�ޒ�����-�r��F`���Zzt��`�P�����@cw�$�&��袢��\�c{��c��n����}�>�`��P����u�<���ܶ�HlC[bi#���ZH�K�?b)%w�U4�B-Ǻu�x͝;��O��+Kk{�vI��Dl��Ғ"�K�4Z�3��ꪻ`�Ԇ�2�sD�R$�sfLm0A�u�+3��Ǎ�Z7�Y����d5g��zefW&������x%ǭ�0��M`&��0�YP��s
	ׇ��Tc��3��&�b�"ٝ��=��&�o�.��lH�!�ȡ�,
�ׯ�c�p��`<��#�����Ove?���51�a#L[񾸐Pi)!{L�&��^�:�馛�N8!��K0�)�R�C�"E4Z�����v{�6$s�^ �}�\|a�<�[�x��F]�u�,��|�{�4~�b�lJH�O*�K���R*,������m%zHJ���}#�����$��H��vP���x"����:B�b��AĞ�~O������h/U��R0�Xj�z �kҪ�pa��
�48���}���.62�0�GydF	�G�'!�꺈��:�Q8cЀS�+��z��hѩ˳��9B�Zs�òm*�ɡ�dSج����\֐h����-b]��P Ҁ<�W���
y#��*���{#�]�(Rp�`�}\B^�~�F��`�/z)c\����Q�ج���Wi��X��7T0�^€��+6�O�s�l漽tѢE�߯�tEZ{�p��d��d�9R@ee����J�IWJu�r���^������M2�y��u��l8��z:��G�`��j���$z�S�9��C��հ(��~K�G+�5��w�D�/��]�dw҅m|eo_�g�8�߻3<��>k׮��Rt(����x�0�iBU�+=����H��˟y8���4ˢT�8����:���Jc�G$@l:��7
��K�D�h�,�V AP����J��$w�ӵ\RY|�1S��:d�����4��ݭ�n�"��I�>�e�
�t֬��wZ[�F�jHB�u��^��u��R�f�!o���B���Xꋽ��_~�{ nf<V:�Q,��;�>ȫ�l���U�1�_�Qi
�+ť5$�ޅH��c���@�v�L$�	2�YY�+�\���(,��?ó�Z(��I�l�	>��|�;4Wg�O`h�;T���j)p܃i2��̞=�I)��>�*�Ь�֏����T�`+M�'O2�#zl�E'�ق�&�R�.]��4���=�݉%�F���m_�2y5�]p@]�ڎ{�Ws/e(@5��{U���$7�q��$y�#�0\�)1+�h<�C�H�G�1@�u��l�&]�z�o�lٴf��x�)uW䈷�4e=��W2I�E)�7��;��3c��DZ]_c&>[�=v�k��`߱m=�ݍ����dmU�X��,���h�K�i�)���P���� }x��bc>�8�+�p!��\�z=%
� 	�Q���Cw���j���O�k֬�U�V�ʖ/_^5E��M7^�ݦ�_��pRp�4S`���:ť��i��=�q$G��8��]/o�Ǯ�O�������`�)�$F
F�\���b�C�A9ygT�@���v�/�{��d��eˢ��Ms/�kKm�b�*�����"?���bԤ�z�
��}(!	��z$Y$B"�Lo���-}����1G/�����fΜ�xD�s!�T½�EZc:�C�.k����Q���\����^�<��t��W_vv�3�/{�7Ot<��W���G�@��U��]��R�Q�3^�HX��v
T0ꑝ";�ɜ��%.���o�
��8�(��"{*�n���K?�ڰa��@̛7o��^L4��b�"	LF2�ei�[Q�H�a�+1��H��=�_�'��Pvc2:22Rr�Z-��8���Rf�����5�1l��ؒl�uWt����Ik��9G⮒<u�=2:4"�qlL:˾_�H�
��\����Y\�9a	m���)�U��Df?��R*M�ϻ@��kBj�S
D�T�1�BPK?�1�C!�G���=Ɖ�F� [�P^%��a�46,�R���5�%i��o�*s�ESwE�}���`�5#V�8# �1�<�����A��Py}����K^�}�=���^CϤ����FT}�� MǮ��90��g�q��$6�u۬�d`��"���2�OJ�|E6-~�R&R�>AdwA��g `%�vͿ�6��C�^
(�Z\䍌�	(6�3��2J
�p+ݘ@�kG���pjpp��x���1�IsfWd<��4W��6�F8����;'s�Id�5
�cD��M�jQ�[����EU����x&�5X@�I�DA���u���NF�F�h�F�>���&VYy�-����돮���qI6/�4�L'�OEA=DZp�k�L/�QP�\GT����v^{?�h#��g��B�HB�E7��b��Χf։�U>����=,�i�6^������#��m��L("�^[3�PѢ]��\�祃nx;��]43T���ǂ���*	P�{Q�K�-� R�+$��{�7K��_�����xoO����2�=.���C��J�d��J�NE�.���5��iԣ�<L��fQ�~�2��3��V"�q�R"i.&E#*��d�V��L�I�°H�̋�IL�҈�H��Jd=i����"2y%���QynϤ��O�
����]�-[�)
�BAU͝;�N��a)�oEc$! ѿӮ9���D��m�	��Ɇ�����t�dP�ǫ�	grռ�n~�W���	B�L�Pռ}n&�i 0�g��^�����J�Y�D�;�@F
�4����$\S�D���p�����4���h�;���	H:��4�N���|��D�Tä��������mA�-LLJ���O8o���/\��.��O~T�_��/�����q����-lK��z�T >�k�	DP��>�1)*��Y|f���Nv��X,�*���j䵊^5�k����&
��SI@�ƀl��3]1ǐ�J��^:'Zw�3�5�'C�w�̋�?.�-�ݳ;������خw����SL�C�2LE���ֶ��mQ�tx����A���Z������6���Dg��i�/��3�߳T���-�
2��U����?ɖ#���@w=ڀJ�X/60_to���	O�����&JwMhl�_j�#
������
�XȑeZJ�*�4D�ұ�H�013�\�N�̇</��rrc_�����3o��<��Zh��G]}�lL2B�?y
�,9����T���L�(U���֭[=�����4`�kϥN_5�}��<��r��n�S^w�۾~w�����cٺ�=�׷L�W�Κ=�E�����Fe˲��!�s�P8�+$7_�^u(��� >c*4$����J�Dl���2���	o�M��z
J[%d�G��J軐ʯ�\ei���1�&����}4��ؖ�b�#�MnϜrě�W'���(W��oH�}�3���k��Q
����겘��Ζ*�������z�(�U�5�m�V��OZ�qx��De٘���H�-�sΒ]'~Md�[���9OYJ�͝�6��RY6v��R^�
�#�K[�}i�B)�{�.R��_�{��X��Z7�F��{ �&�t��MYZ�Z�lӭ��\�5}��33,s��,���r%������(�L�����)�c�'5��3~�Q�w���k��-�m��ڵc����a��Idv����6
�(�Z^�!�;�녅ɠ���d������%�^(�v�BJ�B-͕����Q���l�ʳ���a���P�VIF����Kft-y�{�G��/�,6ۏ�CI*Nr�,��p�ƺ���K/�$GѪ�T?������q�M�U�����7���[3�>��X����P��)���Xr��\2�#^��c��et�^�((�a�L�R�G7{��2��*��Tf�piD�n��3��3��7��2t7�Ζv��e�I����aDʣ�%�$]���J�Y6=!�������Ń�y*:�����.�y���/8�_�]�� Xy�����3�{^�%��H���uϗj��&�3�w���\z皼����)�j[e˱��O>:˞�^P��D=P����Iݵވu��jD�ch�$B�y�h�![<��q�8,+Œ-���'��{�x4E��q=�̞={B�Ň�g�c��2��ܙݒ�Fd�+�H��å۝��J��!�j�zrnz�ڝ�/��S�F�K��UR޵Fd���qY����Z_��_t�����4�������?YE���x���}g�7�DΑс��,�ў%RZ�Yw�l}�>�|��2gt��98�;��^
+;3��T��ᅔo��I�C���8�I(���gz)��̨�� ۬*Mӭ�Ӟ�!�6��h�%cr*
q�Kl���5�˂F��ʋ+�=�L&۲_��2�W�M/ʶ��r�ܙ2��,��m�������&n�'2<Z�r�,�)�q,��C��JG�ǁF�v���~�ȮGƒ��йV>�J"l2Gv�b��9�I�3ANɦ��n�:*��r��V3�Tk�,��'���w���F׻Gs��'�ζ���`���
�";����i�:z�Dz��u�"�f�wdƮ�d�a�-�}��{(�Sa�P���"�8l/�O��d��b�Lc����DZ�5c�{y�p&�=�C��QCW٘J��c�ff�K�� �(+������W(�K��3��`R�!�q�lz�yyadD�,8L_4�<�W$r�1&
��13��I�n������u3�_;�Pk	���[�e�X���yx�����e�GjQ�Ժ�9C�%}��J���[&�y���\�����5���f嬅���̙
E��n�Ju�t�(���j������,~]|���>�u�<��
w�ל��Б,�3VH'�2q@	QO��Lw�# �ᇷ�@�Jw�D�<�6ci���.U	P,}�R'���5�b�3�_,��#��~Ks@��DM]���zOQ�oMXx�r�v�%;�n�-#�̝5K�����+2o�|Y:�KF�d�_I�{�e��.�U�%i �d�,��6���T^��Ȧ�ّ�R���x���sdt�q2�w�TK�%�g8/`��Y��<����`���^���3g72��>���z��y(cq��g���r��z&��*�-RZ+]����^�I�P�`�Y�9��B��ERz����g�&��/Hz��2ڻ�����]�a�#�)�M�"�O3��*�ö�Y�1M
(��Ed�
��l+�N76�K,�
^�#������&[��:>�"��<��
�����)����`�np �n�"#�2gv��6J��He�l�2��c���cH�����׶Ɍ�8���o9�;Z�b�u��e��5��!��7]*{��S:1�0x)m��D5$
(j���{��v�ۋ$�{ȗ+2Z���p����M?�Zz��#2���+�s���uR��oJ�����Gi�u2��^��?硼�kzu�b@iW�a5���Ҡ=R�qoX��xd�튀,0\�!�P���,�xc���?^
�ARCgUe��D�g�Jko��jp~6����v���R+�H���N�5��#̎�20o��t���Pc�0L�^w3��nzP���e���������f�zu�����,x��<N�r0�K�U���,�[�j�n���7>��v@d����5i
��3��/�{G����r�����<��%�Z(=;WɮY��ݧ���3��o�_z��[���U��r������	��w����l&�o�DEFR�^��#K����R:�&�`6~���Lټ�>�,0Y5�e5�B}�� �󏨈��[i/�OR�uO������X���C�7�T����p>&}���c��6��H�3���)�s�s�	�C`��lQ���k,,k֬���c�h�v�\ŵ]�5�֝���x���q��\#b�d{7_=�H
L��_�,7^[����M`�^'Et
Y��ᅃ��(���/�K������(���\6E�i;ʤY186�ж�y�"�ρxK��H�C([hZɩ��b�[�ʋ�YMk`Wa�	"�>(��Y��V�������Hh�z%jT��{�i�L�`�A�G�����:����6\�����=��Y0V�\-���̳��DB��a�.�R�ڸqc�`�w�b�{���<��A�
x���4�,r�+�k�ڥ�����Eb�FC�\2%�jM�	CFm�E�Ce�k����F7I?���.���V�}_�Q�-|��.Ie�#5$���k1)/�裏z>���R�wҒ1��M����%/dT�磴��e�@M�B��(��J���tg�i�f�O��i�q/Y0��w"��P�R*�hކ�o��@<�dgAI�w�k�xe���vfs�Q�ݝ޲h/z$i�3-R����xD�[d��E���mO4�F|Ι"�]&[���@��g�})@O�W�cV���x
��-FA/�"z��Y�����I�Q�,�TKՍ�&��y��tX��=�ɮ�3���`���2�����4}�JVr/�Y��ڳ�#�4�D�.m9�T��Ѣ���wb�
�1�vPB]���_c
�X/E��3�ls�RHj2�ͥ�Q5��ԆkR�8�y�ɧʪ(�Eބ����U��7�di�t@(.w���K)?�;O��[����I��?�sϑ}Q;jZğc�$J[�P(�<��C>�^D���p�tJ�{����c�Q�;�β��3o3�\p�P�͛W����vR!6mVc�.7��"@��2��1
���X�&�uP~�bZS�l��|��&�"HQN����.2�mS�mk��;�ĭ���=�UDs!�U$�s���z4p��-(^�{�u(.�����v���G�|��D6�?6���H�ؿ�]��V6��u@�6�E*�<��9mv��.���$�2�1��v�������*���K��]��}���H��T�̶S���47�i�O՛d�ĉH��bC��(}�������ȴ�UU9�5Q
/�h�<s���	�d
*m�Ν����@&'Dm���wH����.w�q�%��7��nk�\�_�"��<%��ް�ѡʘ����'��t?p�Ⱥ����Lj��ϲ�[d��YY�����n=ox <���B��H��5%t=�v��^
��h�g;�is6�~��1�l�2iΨb $�^������g?�������Fᩧ��m۶F��w����Ww>�/;��Z���H�u)?�]f�#�'f����/�fΜ	�� dl��eA/́�������f��'@�x�⎵�"@�(,$P|F�)�k�mJ�\S�@9od������ =Δd�geۂ��xLT��ϭ��#�5�?�x��`#��@u��У�B�뜡Ǚ^��AC�_{���]-��B�2QJ���OX&%��*��+<Ϝ�n����|�$>��3kP����G�P;��#���??s ��׾��P~����y�.� ۺukt�u���I/^���o�o���xpp0��?�쳳�~���+�	'�ཋ�}�c�����s�M@�<������=y�[�"�8������t�Ir��'�2$�\�ow.�3Ɏ>�h��/�K9�S���;ܚo`��0��d�,��>s ҿ�6�<�O"�ܑ���5�B���i��P�mg�������`�����Z��{g��JQ0�fv�=�ʬ��j�]�}���rp"��!AG
��@Uw�I�T�g͚�S�������…���կ~��v�i�7��M������������\�Rn��ve饗^�]t�E�w�Q�7o^��>����_.�zի@/en�}�C%7N�իWG�c(}�[����@#;#�,-�}����σ�����ӟ����{P�xVط�z��wl���o��p��x2����g�!�=���]����P⽸1�����n���?����K*w��$�=��M����l=�k�c����(�"Κ���
	f=�J����r�HQ�7O*���Ϙni
�<\Ԡ�ܷ0�jo���ft5�N7��z}��w7s��d�ƍ
rƶt�]w��T�\V(v�T@�������h�y����{�-���d�[H���ic�K8��c�d�	��Ǹ}��t�̙ѻ����;��q�F�\s
<�hŊ�\����@m�9@�ܺ}E��eP�Mĭ������^?#:�?���qAd��]�
��-?􉺲m��Y��nD��)���
����eC��z�͌�ytcj��x5D?�,Y�^��
�{m�{,���26p.�1�o���|t��Wg7�tS�j��/�O>����ǹ�[�ǏxJO欳�J��P�q3��;������)��{@uy/��s8���.n����E�X���h���
�~8Z�|��3g��w=%�`��׿>��5��C�m��>?�{�k^��Z�J�w�Y^�ti��x=�6m¾��`�x���s�l%(_����/���
x��C8iC�wTԛ�����K�d"1&��2��k��e"�_+2��~��N���+d������v����Ø;7��Y�!j�����O�?a��k�n6\��2u��ݙ��>5��3:p����L݄��h�<ɽl?�>�c�{��?��R�[4�5�N=��i���F��C�2Ƀ���90I�񆳒8O qF����{��|�v�%��k,���=����wr�QG%���r��gγI�y�����?���z*]�re��M��8PȰ��;uލ���l��p|�<�skA��
O	�N�<�=�u\�N�CY�d�����F���*K��ɢfֳ�)��z��9F�e_��޾[�����$0�xf&0
<����W�d����!
I��=�#�����ᵻ��v�x��7��{i��J��p��o��~#�S�U�KL��N;
�UI�8H�p��^z��$;���b�O|�C �Gyħ��>�Yօ^�Hk^�pa������a��|�N�S �Fm�9��B���s�~2JO���on\�W����qOP[Z��x��ƤޒNֲ_i�R��jM�n��y�2�F҅��,ݯ�xB�@X����A�p��8姲u�{(�LtiAFeTp�i
0t6�Z�Q׉�L�d���v�]p��Gq�������Zk��U�%�ܣ]��}��$�\�ȁ|��@伋�}�{_��-�d��GDL�cN�q᤭�/j�kӚy|���v�<x��3N2)��]�$��;v�i��G^�W��f7�m/Ⱥj,�fwO
�5ҷLz����?.[�F�ҌI}mJ&rd{ `�>΍ޣt��2u��zz/`lAܼ����3��z��4r�8i��WY+��mMKj��*�}{챙{Eƾ7�Z��x1�p���J�@�_E-��g��G�����/={����W����l޸E-^⮈Wh�.�W�ʆm�$��#ٺ�]�wM:�(�)��T���\
�!�gg���;^���P��P <�v�l2 y*k����{�ʡd��|���WȳaI����}LP�+M���
"eiNe	Y�ױ��E 3Y��Js
T��Y�8�^9z�r�!ٲ}P�E����+��ϒ]�7ȶj�y�'Hm�@F�X^�j:pQ�v��Y�6���3�j���Jl띄*��-��:^���J��47���MX�K\�[�v�^6�XO"����#@�-|����t���Z�Eܑ�Bi-�k,!��k�4�L��+wU�R��h*�J���T)9�6�xZ�Je�\���,��v@e�ž�v�CJp;��ȥL/)�:Nj���
��8R?
�k%V�X[�6��r/#.6v�P��8�YI��������ۆY�*�Ԙ��L�E�/�JȞF�ll)oC[�v��</��d�z&���w͔�Y]���Р�$R��!�5dr��K?{�\���w=�l�{9����43�=KB��.���ɋ[���;��PBT�GB�Ձb-��k���TZ{�T	Hj�*)�ɞC�>3�rmc-58��w�f��(/�:K��De���$�8��d��/s�ΖY���\��_\/���2of�����ep^�h5�n�J�d����=he�0���]ä������j��i�y*�<��wb�(�Cs���k1�N�Dʋc�64���bJ*O�اQ)֦Y�ٷ�a,���q�u"�3�h��.��H��P�8�q���>/z�왾!��v7�)���⥋dFw�K2-��}�u�ê�1�W�.����'�����6=͝ezP^�Յ�n��N*��LlvK��9Df?e�._
���K��I�
�KV$,��8��B�Z!C�PYY; A��LR7Ӆ�s�h��Tl\j�H(�Kh�m��� �֫Is�M���o���*Mȓ�,S��*�EC���kCi�8��ͬ�d�,�Cq�f�ND�����8�+1DJ�,��+�s�`�����>�Ɩvz�w�}�yL��
�K��,���ˏ����dx�6�:\���@c�l�=��Ӵ���غU�U�M1s�,�����
���t�WM=��}���Sua�57y���M��"���1א܋�6��E��sc)�ȴ�/l�.��l쐲�L*�YZb���SC�դ5hx��C����W�Ȅ��zH���JuPvn� �v��he��wK9�![����r�tw����v6>	�T���n�~������^y�� �5�}:�Z���-w�@��,�"d�F:���:�*�O���=�f�\������F)96�'
.�vt��\�e�H�<��t��&�g�>/s.�y��Y���,���2{�|���+]�.�:���s+�=s��w��S��>+���8%�T��xT����oF�{E�#����D��,4.R3F���\b����e��(�K�Jƞ��8D��-���\��~����LL�l|E�iI*��(��f��R"�W�6�2����Y�dz�Qٍ{����e�z�V�96O$ft�ƕ,5ei�"�AbGL,�Jt��~lFVD�;�fO@B��]�j�*�����X��/h:�8b?�Zm�^.z\薘����(���+�J�bŊ,��ҧ�~:EagWWW�@>t$X_|�S��}NܶM�a���yyAH<g��n�̧�p�?}�n����ڋI4���/��b���Ϭu������.P\ű�V����;O���
'�7�ݺu�/=��>�h9#�I1!
,4&��-�cF���=2`aS|l1U�����w��kSˍ,��+Σ���,;�y�[���<00Ps`⩮
6�o��{����@3�}���?�5kV�lٲȽ�^	�a�]�6���M�n���.��u��ҥKL"w)�m:�6�c�I
փ��� 7�`��]�v�oJ��
w�0��$T����d[M�<^%��C�����?��r?�=_�#}����Z�bl;0Q��b�����&H{{�s�{7����a�`��eu��|�=Xp<6�^�������ULo�4W�W�u��i�rF��L����*�t�Iɜ9s�_��W	�Oѿ$���P�[#6z�����{p�<F�Dg�����L1yD���n�5wOd�9��W�x���qE������h΅�NC���������=@hJ��x\l\�~Vi�>[���9zd�'8��j�9潄��h†�c��\|��M��}u��E��뮻nž2������yc��c���;�n�lؔ}(8.�� ��7�z	@lF��IsP^/DM���t�)����%�#�<�䓀���eG+��;���c�%�[�,X�����j0��>�,�gL`���+��2���>罐;�S�?�x4�����x�M�/^��x��ј}T�!�NrO�9��`�Y����n��׽䞸H�����r�L�B<���?K����e1��h&n�T��yHp_�}mL��m+�!�e�硨!ݛk�Fiw\�t_�n�L/\�"0	�G�!4׍�ѹn�F�{!,/�܋!ڗ����WPu^��i\s�5�������.l�p���k��T�x>����'A�M�6��p���	��Cd��'��c��*vǑ:�/��b��<�<4�B�?����xoc#o�Ɂ����=�Ad��C��Iwo�5���T�dxǠl�UF��d�਻�dǶ�mWUj��e��2�d賺W��:��S�������s��
��&5
\Cmec7�VQ�%VO����b���e	�[�re9�����̜��c �\,�Q_�8�����P�&�)�9`i�l�?{o$�U����U]�T��,�,Z=���� 0\dv �����x�Ä�b�b�o�bq���Bvpe��/2	�����ef43=[���]Kf��e�_�שs�����N�����r�;�o�7.X�2���b-���l�ۿ�ۡ��7�|s�SL�1v�}�C�Q�����ĹV�Tf
,#����k ��	LN?Fy��T����i��	�z�ixd��2`%Q��������
g(�ֲK�a\��@R�������e���B3�m���;�\��&e2��SA�:l.�s�4&#�oI��RdJ��È+@�}��[��@�4��;���XEBB ����QǑV�MOO���]�|���[�O�x��O��?$4غ����/>,�(�\�<TN.�6�=��^�1�>�(]t�E!Ȝ:u��罝�m'sAvYo�3%�Yd��!�Ky��%�Kf��{i (�����y�}C4BKsdz4R1b>�W׈�QY�I)����H)�a�h������|��ã�cS��N�b��;�S���>Q���O��MWJ�8-ol1��;�Y���a�2P�X��:iQ�f,�`$z+`�D����~ڹ��|H������h!�ͦչ��DG8�q��Gy���INzZ�`��ǻ:�zH3��s�W@�
�nz�K_J��z����f4>�`R�c$5�*���կ�K.���(p�igz�9�r`���axeq���oXL�d~~-��߇�$ʮ��vZ�o+
d��^o	 	��H�܏F�Ⴧ���)��3����oT6*���	>� kp�C�Ȱ�<F|���}+�j˂7�gB2Ej鉊�N�2zK��fĹ�JA�NPD�{���]LNN��u3�JF5����>�"�ч,��o�G�Z���o'�oAT�_�B��k�A�U��o~�366�ʁO��M����L(
"�X�_��J��?��@�)h	ϊIvĄ�&�^{mЕ`���Ճ\��9�.r�����^�`5�έ�[:?aS�J�ha���;������@�c�i81����l#��4Hè
���P����e6��{�t\<R7����K=�$
5
����b`�|����"���[R0ohL��p~M
�T۶W�v��w��i=���MZ�K�_(S�@2�:?��#�8Nh,>��3!x,//g��5�B\cL�N����>H�t_����{��E^������n'z^�J��z�}�bO<�D���l�L�����4�M�&�EE7{Ҵ��B�l���<���A����%��^u��N���2��8K�n�M��&w�L���	��
�q�3g΄̃��g?5e<<�l�`�<��a�;�
^�Q8�^ꝷv$p�EH��OP@�	ǁ����X��8x��1�`y��wD�d/�1��e;-Pp,st��{"�Ab�[%�ː�΋噄�Y�|��߇̅��<F�X��1���i����g�u�5A(pQ���ݍ�W$2�A"#��?�'�9)jP�!�b@�g'>�'Cց���8@�bF>���p�!X���v�wL�f�Rad���j�y|�{i��4͌�Rim�f�Eڽ{�VNт��T8jug��^&����4v!܀�Y��@@�6��TL��G{�ӧO��s��n���o�I���D-���,Ā�yl�x�/قI�j�ecb��
��@�0��C���E�)�#!�ɉ��-Ǎ�E�v�r���n%�˒�HTێW2=��A�媒&u�2󮐷�7<�៚���}��)`�>p�@*٢:�.#[XR�9%ṛ��p<X�}�U0��N�e�κ��u8c=�h�#+P3��`&L"̎GnS؍K}Fv=|%��r*�?	�xFx����L2�%:qƥ��&w�@c{Ј�n9u+�3I�;M�%��}��TT�e��==5	�#����Թ��K/��"M������I�-x���F��I	H�KÊ뉇#r	��_���ϐ��R'E/4�0��}���䑓�G�q#�v��Z7r$7�}=�_3"a�X��u�~���X�	G����t	�l&��vN��OMR��I[���G�Ѧ�����+煎te̋�y�k8����@�\b���b��	A�y9Ϸ�S��b^H^��Ղ��HDx43��I�u���+��Lµ1y~T�j�|T�'�xb��I�7L�
�P!�H=(р��0�i7��zB�{��sCV�ߤ0�w�q=��t��W�-o�̄]T�`��>P�����h�
S��)b���,�ل#�v$ a�[��;�P$���X1��9�!e�k���=B�bb��gv>b}x0�P�J$
�+^	9uT~dC���O	�#S���ſ�g�>W<���[|���q��,����t�W�,�1�� �_Pm?u���RW�����@��H,������C�M�K�[?N��Q��<;���r{G��q����
s����J�RD�X(RЫ(~a��PT��j��4�q��o�VX��S���|MT�#;<춈	��l�tj.�zر��ƶ�x����L�;@@��H�S~.SȽT����*��AtdT����Cf&�#���d(�
���B��9�F0X�f�4�k�6���V�IJ���-�.�5����|��e��G�E�ԥ�I��/I�1.��ּ��}��m�T]���IQu_� �#�ɚb���ƈ�$"G�`rzvI=,ٰ/�@�G��U�߽�Pc3�i$;@j�����q��ȔG��6�L?(��Ú;�t��<h�XL�	2޿c�6Xj��J	!N�n���1mF����ey�y����5��}���˦�ϥ<�G)��
�V�K&�V��Q�G�,���+~i(���3_�Ko�h�^(4odžp�'NTB�y��"�ɄM��������z���iL�''��e���ˎ����tyL6�r8U�ƒX4�(EF[6�
@����ՎUg#5�*X��|*](�b��j�n�����]�TP"5��.�piiq�܁a�=9�F�9��E��G�Q�ٙY5���-y��e�����>�G�?������x��a�oNT��
�)d
l�p�Xa�6�!g��2U���p;/!m��^duR�����������<��g���XX2�+�k�1�`����>J7�v��;Dm�^�[��+[�g��{�%.�Kf"2S 
�f���,[C$�&A7���c0�U{��i5����I�B�H��#�����^��JT[ݔC��h�~�O$	�p,,�
�P��� K=3(Ѳ�C�Ç:����A����F��0� �-�acx��82�@5O<X��A�|��g"+�]�0��"A	~�H�@�@ݳgOT:%�48r�3������q�ٷ��?\#qŮ�ә����')7;GW]1�d�r��|?��%C�S�%�&i�c�x>&WvTK��y��-��<qƾpY΋�&�9�R���ur~
���m�XY�b��
�ll+i��@�ѹ���d�z�x`xdo��gχI����6	����r*���~W�ޣ^k*��|ɢ��%����m	�Ȧ�I'�|8��?�)=��s�r�׆�0���A�ú��:�9����p��H.�&����h�� T��3�F�x���}��b;�Z�&��ʽI}F&�cg�8Gkq,Λ�ԗq���=q�9:}�i�`�U��'h~nE�֣}�'˿U��9��j�Z#…�r�h��"KD��.�feR�Ľ�{������vj3��~���e[xYf�(���L��?,SdW���G1���sJ��Ij�#�؟��$+O�EQ*��R�]
�l
��1��L%��0G�@J\���Rq��"ڡ}%[L��9�ȁBy$�.�Ԋ���r+K�a�Q!f0�s�L�
�Lj#��~���C
��w`B|��v�È �Czkg�n�`���#Z�Mb��A;O<j���W�r�����n��z(�O�~�9�L��]}����_H
o(��+j^�X������,�e �}��d#�����@������E7�Ű�'�h����P��Rߋ���RLmb-^�������5.@H2���]U�,E9 )EMV�5yL�@�oՖ�7���Փ!Z+��UH��&C&P��o��e�������l����B�<0���#��$H�z�q���|����L�G~,+p�'Bb?0r�^�Ƣ��M1���9���L��N�K	K=��
��Pȫ�S���N�ƕ���믥+.����a��k����*�~j�<|�H��#���D���hS�����`�`"�G�dg߆�a�%������h6��0��v��J|�d��9	bF�&��4U�b��j #�ճ|%}���8*L���#��5��	�O$�?�Ʌ�u��m¨�,xX8��X���jD6A'O��w�y�x�;t���Lo?����1^\ P��7:��`��`�0�@s'Zl���ƈ/�o�C�m]M��]�1��ZY(����{ӫ�&Q&�LR��mfH���rQA�BEO��G��CW��ס��0]|�Tr{h��Qw1�u.�s��(�زoA����DLa�|�r�J�H�\YF�1��$e/�d��G��{� t`��'1��-��B�uc�ҏa�Cqb�3�+��z)G,�jM%�8�����H�_��5%kV�y%:���1့}�QE;�L�
,G�q�$�����ƹ���|h�]�_�Az�>K+�MM��ɳg�����!�ܬN�y!��M���qHV �#��~�V�&����fW�7��2�%Xv�
:��G"10��=T�:�T,�_�HI1�T�I�ka����Au�3�h'��f?�H�3���<���r�1�eb��ɯ2z�/��sM��X��߶2��f�ד���K�'�ί�;��|Mz�sO� ��=��C��w�c���id��N$�9�$�����lL�tG��bo�n��:�^��o��t��a�b�0B� xjb�.��t��C�]I�K9ZP��̙� �H�g�DŽ�Ig���=�9�N��b;�
Z����Ԙ'��2�E7���_]����#`���L��T�󫮺�����{7<�^�H���k�Բ�j=���D����v��h���� ���q� ����Gv��A���
�$W�a9(X*�b�I:z�
��7�3	4���/!���$sIJ��\a��w)!��o3�>��0���2
Kf��^qL,�G�&�QRy�
�ujk��u���ð�X�#�B���n���%�+24��!��ied�mc�j�w֩���&�A��8�r�
��0}oz��g46�O`�>9\/8��֍�r���3�e���OR��)VWDˣ33b��:È�A���Jr��>"���?��{����e8�PL��\oLF5�1C�w8n0T.��� �}f�l����C-�F7����a²�;�����f�S�_��3��|OSu£�_��\�=�S��]˸ly�6���[&��TF�F	詧�
���Ґ�"�����C/zые,��b٭�m�0Z0�(�V�:Kxp刘x���_n`�YO�f��	L�?ڦ�w�`�n�M�OF���p=.��\|q.��HA^kS�v�\���p�hY4�d�LM�ԫ�%Gޮ4��/ܷܳ����ѣ���6�)��������c�l�%}eqj�	X���=	�X؉I���ym�{�|!�z^%����(0G[�_ddzDFx��G���J��:�&�c;v���ˀ�$���3z�0��ȿ�V\/��ɂx�M;ʎs�
F���Y����,���v�J��|&���oj$�.�R�������爳����F��E���7�5�x;zحm��?R�|�ƙA��ϐ�&,�|����)����`y`bxg�'%����c):���k��	\l�T<����4�K��%/�P#Gf�����E�v���|��=a���!&}2%�
y&����Z��w#��|�M

n&!J�$؇��~���7���v��)?����})MH���‘5��a:'�'���n���Eͅ*�ه`����"ҿ �+:%a�2���~��0E������%۵�$yM�1����Z����N|`��Hc���~c��[���G����f"�̥�F��a�g:��{��u1��D��r��5qˁI;)������<�Or����-�;���O%C�J�gIj4:
�"��qt���+kR��*e������`I�#g��D�v�k�r0q��d�j��������J��؎]�k���v���Mƽ���.��^_.�,��3]�
dbḇ�Nq����Tn^�&d�™��[����v�7lँ��hn��	0��䆏����(`af��G�\F�T�P�3�4|}m��f����IY�%#<%�e6����f�.�L`"U�����D�{�|雌����ߺT[�ġjJI�p�z�\�Hc�Ru�2��.u�†)����}�g�#��%�2n*r�V;c��
�x�9�Y^����ݡ8M��r4+u\.'�?��0�,�0x��"e5L1pIB�M`r�e�Y�H�Z �3bI�;��ץ �q؎Kg��ۍ8�$�})��@����]��V�F��m۾��x�@	>dt��jR��19���S�?Cw������38��1�3*����p��c���b�‚u`�wqb3��39�d��\!�أ@�[[�ӧNS.�E �*�Lo&����N<;�%�Ig%?�R��UV�){���~��1��M]�n��ߛdDG�Uh[�f5�6Ch:.p��<�"ק7#��]q�N�l��27'i�v�㐃'YJ��I���e;��d.ӹ��M=?t��k&��&%��8s�^�F�����q�rj�Ɔ�~�R�M�J�MC�	<ty���V��A�`b��S��,Ϟ���"�k�t��<�i��fhYJZH�n����׃[�Jv��ei�v�P��A�=383����|HR�I\�mcѥL�3@>LRv�.��3^q@�9`B7f:��٧����N\ՅV�A��M<0U�5z]�b9U?.�t�~.mb;_���������ظ�q�a����GQ"sH���Z؉�i�$K��ߤ����G��繚��Z�H�E��gk�s�gR��9�uiyq�ff��3D�직�G��+�R�m�8�3�τ�,��b0s��B6j��d�!}2�MYdO�?�7Rme2��뮻�.p��U�I�7c��˲�s9��L��B�k/�h;�G�2W�k �&�Ѝ�5ȿӁ�Q���4I\�{��1N}{q���"Qu$���$��]e�X��5��+$$�*@h�'Cں.��Yoޖ��&#Hp�R�� (�:�~��W;�K�Uƾ�Q!�Gr�.��A��q��M2Rlt���d�_/f#x�LF�����eT��^��[G�#�uE�:r����6�G�vzEg6��Q�L���m��)D��*�|�3���Kr^#������c��b��ɠ�}d/��H�<�j;2�j�
�Ȓ��)͟"+���j��ֺ�Ez#�͟��c9?MGum��nH�CzQ5�].Q������%:{�@���g`0L6+��(��W���+�4{1��3I#��_��ׅ���-��K8���cW_}u�-Ԅbg<���0�I��v�3���2�>����8�Z]V�*G��R��442\�Z�u��\��$fw�o"���>����ڛt#B�M�w�\���p�g)��y�Yǵ���������4��~�:�(��9�K/O"e.�\X���+<��+�p��U�I��嵁1'-�Y��ӑ�"�q�͏b�6��/k}��ֽ[L���a����d�)C}�[]���:p��42���\�,Q����P��\�����D=��a�߮�\LPZ%]��F�<ʇ��,�ur�+�O(� sҍ�z��wy:C��Z]X���Qڕ顴�)���W\)�����VV+�u�lFP��~nl�����ir��l���dҫ�_��q�`��c
�˂7�jt �5��Kdhr�����Ԗ�!e�U;�=�.�0���ƊTݭ1O�=�\O2��Z�I�:C
 Q�\����v?9I�smfR�Hpp�Mc*rFS���_˫��P���S�d8�G>?$�O�!�=<�K�Qg�\��"�E'�
.�h�4�R&��M��o��%�#���vc�l︈�$!e�Y9�.�}��g��|e�h0;HE���ix���
��m4��13��Ȩ&9�!���&;��p-L�n7R�JZ�����QTS0���oN��3�X#��N����J�$W����]���|mT�2f�rT]K���
�'�K�l��:���#X���G�5�l�U`Rp�\BE�_〯$�ˤ�1,%���ߥ�]��G��j��&��"�S��/��/�k��4�j�F�\Y��A�F��F%2[*���ҝ����3��K_�2���_��_3.e#�&	w��à���&y�pW.Q#���g��!I��F�	�tp�DM�EfJ\4U����د�A�1��L���T��%.K��]8"\X:�M*�l���z�Ūb�b�>g��(#EQu�^�җ��t
�H����Eq#v"�Wm�[�pJ$3Ӡ�2�������ؤ��'HG��r=��cUE�ڭs�`�C����sy����T�pl@��w=chq�9��ݣ�>�>q��5R���w2��t
�ǥ;�e�*S�c�%
�fI��͠�5�����.�$Y�EV^�>�:"�d-3aߟ�����E˄,RPU5]a�I����'� #YF�,c�QT��N[��T$��" r��D��	nn5����h���^�A�A𖒹��H%I���}q#���k_�ښ휸��L@���)Pi���Ѣ^"�%׿����H�!�O��ˤ����a����I����e���/��%�q� ��$�39ZJ�⒵�d)��d�S����DᏴ����s(����r*%2�R��av��Kˆ���_��{�0x���91 ���`)�-��Y΃)�@��:���6L���zL�#̄% ���}��^��|�tx�|�l�U�W���������A����{��F���&�L��	L�+s���_�ЭlDgc8&�u�@ʟ�0��6�� K/��FL��
&n�&'�&I�4�Q��e���-IC�i�(��d4c�G�Z*b&$@��kYLǥ��J�5yѹ�5��øt� J�[:,quc�y��<�z;$|��3�
DL#Y���L!ˆ(���׆��,o�Tn�tt��!��Sҩ,�
Ȓ5lPe�z^�I)�l4�$�7�⑾
�C����)��$A%� �!"M�f��>4�Q�:Nx��7�3��"yZ�p���35��]����q��ꢔntzaI2��ͮ֩�X��I�ˤm&��.�g!����2�FNF;�f�>۵���,��7�����AJ��)^ͼm#�Ne=�B����##�`�Cf�U8�&Q�U��~:�_"���/�2e}.�0�i�Gb�����(ad�^�X�O�¸�:c�=�"K���*�&��Q�g1�P�h�@��d�;�9c^J`U���8%sa��v�U�a��5ْ��i��6z��J�����[�����w�M��w:�{��#͍��l��$X���D�}���F�*J�g'zN.i��& C�rb�x��W&/+��}���Ə����c�������@v�d

���s�%dp.0cVf�p�+-o��Z|��w�����./�J�+&���Z\���"
�P��DK�UJ��`/�ˋ�N�F:�3�q�N0���o�/�
)������^��ʺ)'�����y��A�7��s�gg�%��&G�e�_X
ã�q5V#AAm�w���u�\��$�sG�M�8D8O�+Qa�8��؍�1[}�ʻ��1�0
N�T)e��[�I,S�hcJg#�khƒ�$4vI"��i�UޤӿKR��
���Q�EJU�/�DY��O#M�G���S�$�o<Hx ���5�d�L�3�':@�v��x7�P��mfVHx�Hzz:Y�����<�gcA�փk��H�j3UV�W��{�=�~[P����PV.X`4H�
�Fr<��!;�y(����S���]7H���z��E'�M�e�XPc���:�W�`��4F��;��C~eA��Ы��p:t�W穤�+����GDm���E�"���
_0�@������0�AI�ǁ�}1������~��=��<�k���romt��
Ll[��v�Lp3�a����FFR0�3���'�kM$�:�G�[�m��e�VԈ3����*-.(#����_����Nz=f��G��l�m�yu�t7�JXڅ!@��ɓ'�ԩSaM9Yb��#��A!�~ߵkWx�9�X	�c):�HV����[�w��J�7ι[�[��W�ԩ:w���ԙ��8�`
���\K���#yʉ8�S��gR����ݻw��J�s[~�"U��g_I�1 ZQ(0�1 �|))Q8�&���c6�:�wn����u�B��o��\LS�]�1�$!�>Ֆ��q�o��U/��@��������}h����#�diX=��ղ^_P���"��5Ɏ�0�2zI7�z򞞔�ѡ����v��R`�q����21�	��Y�K��F��uy�|Pm���ւJ��S�S�TVЮ�/A��d�J�
H!ac�w��~��|$
E2�o���=���"�2,e��FG��Em�,��G�U�UFY��焢��<KM��r�ި����o9��oB1L�%0���fM�>6[�[f=|)���Ѓ����]�GVE����O��4}L�z[a�n�no�u���~p�V�_�[1I=��z5�r����5��f�C�V\���f_�2$��F��f��H��GI���cѢ�x�>��+i����dIG�2�7�z�|�Z�H�� ]?@O��T�,6j�*�NV�4:��S���7kקj*t�tO:�}5��Q3K���o�";��F�:��耝,TtoePmi�<�-��&SY8�\D��(�$�N�zR�)zK�ڒHp��G��[g��wv�dw��`���$K���;0�I�D���
�w�*�n�d���ؐ�
�𸚱���a!3�����~�433��&G�%̀����T=
�X\��S���Pm���O<�a!����/�i^��{i����R��D3��##�������US1��8O��VUX"G���c�3�T��L=L�R�I2�c�ʪC��3ܤ���F7LZ�o����Ef
���C~SM0[�^�bc%I�]Q>��=�t�<JpȬw�n�a�	��� 2�ň�{ھ�d.A���O#{�����"���"�I����C�RK�I�8����]��MW��z��H��.W�J�L��J��4"B�F�����=�X"�RLuqa�
"W�h`|�F�J=�I��[��Rj��ytv~�2��4��i-̖B0B��p�hΡ�Po
e���B�'��Q��I���G��W�Y�͔b>p6c]0�A�J:dAE����c���	&:���i4k�=�Gi�X�SX�`e��z�^B�'�C=T�Ӽ�>�x�Wf��,�*�^_�6��8�E�N�&���&��$d%��d��LLD���s��"�ax�J�,eU-
8Q>�k�{���3(3:x:���ں���ZX��2�d&���`裍zJ6"���]a&�����;D�ZT��h�fO�����ha~�R}C42�_���������*]|��?s��'NP�W�U'CS�Y:v�iZ�[���3�NӉ�'CF126J}
D��-,(�I���(y�stvէ��*-�SN�g|t��R�fg�����Z9s�N�����������K�'im~�frj4�(�NqY'mNVi�1q��iu���`���/x}�{ߣ���[Z�0�\�	����l����-]��������5C1P����NQ�@0��쵩����	����R����p�d)�K���SO9�*d>�o�ie���Y0�^�fp��Y������Ԅ3��B�QI �\"E�2���O����fX.d�+0�Ih�z3DGO����.���<==���N?{���f����n�=�C��<�|��g��tɁ�(�����G��J�2W\J+�F_.
Ҋ���9J)�?C3Ky�x�92M�Qr�N��R�������T��
Z<I�����bZ8qLI�2K'�Hn����.�RV����,ͫ����c��lΣ�=wd�&��O}��&����*ؘ��nX0�DI���}*lɑ��⒝��?��|6YG�<�������������;�46q+l����weԞ�����B*�U�kq�����M��T΀W�r�7�8�n���%�y`G��dbn�m�� 	��R5����S�!�&
@��ғ��H��7Oݐ�]����Y�[�v+	�.����(?�/�dv��K�����$t:9��CQ]�b)C�d���K2���*O/���'�h�]�t���_��K���؞�4���sK����:{�(3G���
v��A5bL�it|���/O����M���+�mLД�F���E��i���|R�#�R_�N�]�|I���L(�m�o�v���cab'���V�����������R�����<�����z�r/&VSe�<�����kU�f�j#����(�Q\�g�q4�/a�}a�|m��YO��*�.�H�Ƌ�����$;a���p���D@#C�C���p�\����Mw��	�d�:��ɯ���C|`����inaW5Ltr\�3x;Y�b��.��:ڕ.ҩ3s�e\J�cٰP*�F<e�S�o����ty<(N��ɱ�#��|�
��G�h߮q���R�!�W^I��QU����GÙ���΀$e;\�W�xTc����|)��J[����]��[$��~��Ɓ��5Ȭ�R:i���/���`�3�d�t	�C��������'��zK�s��u��2ҫ@��qbAUR#g�c����[����{�v���Ll��v
�����ϒW��"��{��U��"��^�Ϥi
�r�]�qm��O��j~���&���;C�+k��nh$ѕREE�D֨P�i(����
��隣�5�=}�Rj���q���@-�=��G-�V�����	ZA���=A9��������!r����y|b���U�lz �(��8lc˰�=����8'Ι����`��S�. �A^g#X��P�����.��l���Wb��PPظ��ŏ"��RZi���QGFo�ѽ�@�hM�=O�4����#���8%���J�K���;0WDq9��J�>���T���Wʩ�>}��B��(\���n"�����Fɤ�v�H~�}^��Gx�3^ꭼ�=�ܓ]���������;���q����-5�^�y�U�>�N&�CX�75�
���N��-�=M|�"�Q𲲿�U�G\�K�/Κ�ߔ�:W����U�A�(D�v��_�=+�"����Uƒl"���_e�"�t01��#�������I?��>E�5nR�^aS���]��I��p�����Y��u��D#!9�t��Nd,�e�w���{$+��]v�����^����|�+V�� "��ƍHw7H���k����S�8000�i6t����
�{(Lj�2�@�O��t$���=d3�P�"�d��𪠡(B�헧|ά���T�@z�
��z�/}<<_�|�(NX�NJ�^����c�4>>�um{��m!¦�N��{��U@B��l@�o�iƀ�`�x��m�~
�F����F1n�E[ɺE6���,JqW���W]u՝�<�Ȼu�Ko�k��e
1����$��,�b�j��~��F&!F-r
�π#�_�
�,V��z{��ǀM r5L̓Ȁ{��j��=K��i9& 	�ߓ��
��
& �ɖ�h��P�R��O��R����D�G��@�i�
8mZ��߷�о���˔s�Q���A���U^Ǐw��%c�1�x��U�]~��� ���z��

�Jw�)IQ
*��^�ӯ|'�"�o� r^?�Q��.��c%�l�$���FL��"�7����ۀF
9��C�3��ٟ|d�-1%�g�k�<ò�&Ǭ�{��r,`����n�@�]�Uc�D�j���q$��'^=�쳐�j����|�s�����ՋDV`��+c�=�~�3�$�y��k�����[-������JP@r��/*��̏�QG"��\�z`#
�M
32쯐�t0�A�'s���-S4�r�����J$�$��6�_b�8��D9}�������`q@�6�:����������Y�d'�<'�W*|.�Ţs��a�
�444T��_��?�җ��	�È�R!�L�1�e����fu;��l�#�Đ����X]���-	*�FE+ ���.޼��D�g�zH'��)�b��V&Б���|&��j��"�)56� i�b��,�
Dd"�V�O��N�KJ%\� y5"�a>Q�~�v���\O=�ю}t��$�/��af#��j�����2�w�yU+<t�Љn��c=��G?�Ϥ9jD=‡
KܨxgjT��2�TWM�K�T�ꪫ>���	}�'N�s�_���V�<�D,�Op��V�b�m��kQdq���|H�]d}	>rI�$�#@�+�J2W=vB@�0n���1���F�`��&�@�@�rU��D�"���"sqf�<Ǒ���>��S�<W�r�7�H��'~�ӟ�YS���Bv��@"?'H�����}�/}��&��p/��������D����8G�x~�XK��*�Pm����6Od��,`A	l,Gw�k@R�<�"�����,�$��yv��.�Jd���n2�Q�G��ɪ���D�v1��N�V}��M#��]��w$#�Ae�w��?��.��<u�5ׄ%��t�-�|C��j�v���E�	\v��@����������~���QUZ]��{P ����'pr�d(�Op}m�M}�L��/�`Cd��}�z �����6Y�L��ϫ�F�-[(�f�KB0A���y��)�C����b� Dg'U�Yd��$��]L�Y�i�{jC䗶�#�@%<����U}ee���c��/~�k��w��?��?���}-Sh���l�[��n���
Hd��P$�(#�u�0mG]w$'�Q⛔wˆ���U�7g�F��x�}�~�V��~_��XO
����v<�Hc2�FH�Pg,��~���J☉��#��_�`"��<v�����DD]�re$���&��1�hc�ې��w�ފ4oG��������͹=�c�����?��?�(�r�(\z�#��Jr���$�����	��_��_I]� ���wNF��$j[�C��	`�!ı�S��ѥ�i��Z�b�@t6�
@PS�c#�eeb���Qv����$I��B��M&YG@d4���9�]�1mUzj�T�N��,�^�>�S��K�P\�ѵpQ��GqmַM�}�{�ۧ>��ޥ��ME�z��(��ZRޒ�@244t?�@B���?��N>���p�#?Hx=����%�/�M���#F�,b%TG&�-r�9[��ԉ�;_�#�)��I+�lw�}��w���EOdѭ��Ⲽ��q,��Z&Ϗ�hCa�
2��eXZ]O�`���h����o
�w��x���]0|����W^��᚛wmm��'?��P^_�!�ԏ�#{5�F$�Ľ�����}}}5���w}��,Ԡ��!�P�̏��}��fH�E��XZ�QB3��e>���H�̷}����lҚ	H q�H��_'s��O�+���#��� BՑ`NPk�)�e��v�bl�����9����mh䐯�f���ȝ��rv��]��l6�}����>������[�����>��/%D��������?��?6�/?u����J�.KZ��cg���&����&4�jb"�L��FP1��i�W`
��`���##�)u뭷��+��Ԙ�
\�"1Z�^����%z���`�~��"A��h��$w}�5����!�%�o���]������߿?������/���?��r�&v#��ǹ*6;�
�krr�3��4�T];�Z_����l�"&�w�?r���c��Vp|���z��	�)�����[_$T�ʢ�ePbm"�t;b��j�A������0����H0����w��,RW@��^݀��8��T�
��e���o$��aN��lG(p�}�d%��̥��|�.\�ȯ�H�-Bo���v�~������?��j\�-��\�� b�o�]R:������i������/9@�W)i�f��:,k������)���HlR���hF\_ƴ\��>#�A��?Kf��1cQ�VI��\U`�P���Ѭ@��ǵyt�&I��U�H(N;�M��c��<�/��.%���-oq���g��g?�ٗ<�裟R�v�:��|)�Tꁈ����Cu~毼����o�濘�q��1������Q8t X�;7~�^IF�
HS�j���NLic���p��t��m�"�$�穡�L�H�8�R�tl��p�Ѹ#|���l�%1���,�@�0x�`��k����pg`y�[��8p�x��{����_���ݕNT�+|ܙ�
�.���9�#�B�5�4"I�H���M7��o���i;����[�1��!�L���b���0�~�cNI�a
�:��2�u���+��� �k(�d��#�4(ֿ�ɪb!�0�A���f��RW�uv�𴺺Z�h�ò��VP�Q�

^�zի�W���m<{�p�'>����=���*{�
���@��yZ[�Ѫ��f)����z�k3�!�X�li\��zlD���f���9x�`޴��~��V�D���;������_�)V�I�XI���d;�X�	 RX�|��D	&��-&�u�9�S_�$҂d�4�i;��i%�D�g�;���D*����3�(�����o�n�#�}�W���G���aoh환�aRಲ@���i�o�v��C#)�r����4���@`���"6F��E�o��G?z�m�w�q=��A���%�D��3#�H �>���$]&	P�K�k����ɠ���
<x�s���m
$u�$�X
���\��W��nQ�F�o���O;�]`�d�\.�j���*��P,(T�~�:�T�q[w���x睟�q�/�=6JY���y�9{�f�LMM�P�\�͖�RH�4"�RP,R	���ҕPe*�r��T2h��8Y˔�n����/��/��[n��i��x�]w��|�@$�0��ȁ�0���H0����poy�(+�1���6l����:$����z@�J���&�%\���N�@�dyL�N��.	���Y��7�d���%W��oVVV*��@���NzH_�Ap��w��b����Ʒ�_�g!���A��O�9:s�$�U`r�y��X����p	
H���D�%@?���G?��_=*y�rp����R�}��A>E���G��ź<Z;5O+�e��S_���Gߖ�.-��J�v�
A�/y\�)���x~e��H@�`"��ٳ��ӟ��f܏=J��~{����a� 9�+@�P�k ��jG���ڕO�V_J��$Y�m�te=��4����#[L�v�0�E�uP�2���NB}dq�
P"*��w0���5G�Y�O�c�^��K�d���������S��>~��A�LF(�2G+�2�C4<��~�Q�G�k?�D�ˊ-�RS�z�#4ܟ
����hqa�Vխ�Ю�e�H����T�����%L
<V��.S���0��d��BN��9�F�����A����`���3tf>��3C�>����D�zCʲFK��X����Q�s�8���W�&�����7~��~�������#��$�~�)���=	3��uW6*A�����[�}���^�e�G��3��ۀ$<��PL
0MV���@�N�h�7l=����+��BC���
<B€~�L����^w�u�����|�;���G>�G��?�o������m�A)�Vf�U�͕���`�X/��	�4rK4;�B^*��O�b
��L�)�HG}�hyv���ir��ҩt���-8>e�i�'U6���Z�`\�Z����?59FYu[伢��A��Ѩ�`CŒ�	蛮�+��C�R��g���Sƿ�
-*svO�h&�߲
'z�{��C��P���]O�Z��I��o��GÑ9�S<sxq�Z|@�{u��@�vrtt��&V�2�
$�ɒL$�6k���Tɀo�ʢV��B�FE�������O
�>iٔN�K�(�8dT�����+�J���#�GFc�[�[�˿�%�\�(�2n�Mo��O����=�}c�@=�NNN�N�m�,(���0"��&��4������h|d�F�=�,����i���g��og��1&W�l��y�+�Ѐb�� ��?I��M8H���ЀZfF��Zj���*(��ط�\z���W�j�%���1��.=��&�����c9v&O�����\*̜�i���z)�����
��뼨���~�w����~�����Oҟ�ɟG��Dkeq��@Y�Q�D"�� �ӵ�$� �k��[����L�LG�	<�X$����%KdL�\��i�~ONNzjT[a(###���͓P�]��a�(m���Ї>��mos^��׆��OW^��‘g~�����|�3��S�yv��ξ��`F1�5(=j�_�ռ���>�H^I��U����sJEa�����>�4��JA��(�ڭ!>�YS�OQfj������������x?e}��>�~�/Ql$#
痥������^��V�(��E{�2�F<�,�����|��Ʋ���F�:��
�?�������MoZ�];T.������P�`��ɇ�eV;�����/oSG�=�~��eІ��?]�.�Q��8�lq�8.4P`Xt@����2^�H=Nh��o���W�:�_����oy�z}�_���?��w�Ο�O��
���!K	�@���C���|)����H��B8��?�b)���=��(��J�"�=��Y)�ȃ
jێp�E$^�h��)Z���e��Zg��1$"ƀȼ�;��w~N��l�5��w�:ٗ����(H�+�����(YH�Vx�v�n�8v�E@��I��	(p��01��T�_�e�wJG8���'�x�y׻ޅ���m��mo�U�?�������?����܉w:�Ћv���Y����&*��ya5B��Z��2-yn4�!73P��Ԩ�uD9�,�J�@���m�W)GK�JE��O�P�j��e!�Q��/o��^��W��Ӊ'�ӟ�4�'@;�1�H�p��"�$��J�
������̤ j'pm	@�,�(X�Ky��G����=N���5���z�~��/��o��U+���3�������by�5�94���Ɖ���~E����m�G�S�с�YJK��>�`���Dᝃ�?\�������7�_�}��5�e��aH��xfF�s��.��ο���z`dd$ֈKI�U6�ߝC@�)��J�!0i��w��t#�4(x7�^���${���X
ˆ!}��������M7�d݇��)�+�~�~��џ��_���̯�V��_\ˑ���8� P�B!�S*��WX���b����@�di�g��L�zi4�X���ZI��\o��dJ�i"�2�a1
ḡD�)�������
�n�CX�+�i��Ro������2�?�����
ox���}�{O%�	PE��g�@$�N�Z�$�i�.۟����3it��E-o�C�;�L'�#������D��#�Q�^�ǟ���e�BPy��_���?�Ё����~������^皴���t�l���c4ɪ����y�S�101E{F��E��Zn�D��0���RT�|A��,
e(����tb٥��1U���Q��hi�Mϫ�{�6R=�A&|a��N����Z�p��y���ўAԻ*G>���D�o�x��m��v4��~��A~�� ���t�ly���%��&	(�aܻP$�0���%�Hp����S��e����/��u�]��>9������N��df1���NN�ޞ��Y�� KSS4���O�����R�����h";��y9��V��s���gh���x(�-���,ͩC�����ʆ��U4gi&WPkOSOv4ؽg���C{��[o���~��}>�qA�b� "�#�o���V7I���+Y��l/0��Y�d'��D�8\<>��?���\��s��O�w�}ם>}������v/��@Yj�\�S�K�K{`�]�|5�ho�χ�ٟ�ڵ��n��G�x�;f�Ç;�<�H�>��i�JZ��� ��-&;��u@�#S����z,E��T.��2���o������{���׾vѱc�.P�w�ڇ�j;�j;�m
+0*�JЯ^�wA�V�yKʰ/��;����2�g��V����}�������o^je����x�0:K������IوE�
:4B���$;`�@q:��v��YJ����,�_���d�UيrD����у>pA�fA��ld��F�IG���찓�P��l�ŸT�7�|��
�ʵt�433�p~���y�B"p�8�%��@�Ik�+���g'[P63`�*{%���@EX���ݻ׹�+�СC�w[B�fLH,���~FO<�D�>==]�@$���#)�$d#uΠ�����찓m(�
*6@�,��u.��r�袋��/��/��6���u<���hBE�<�=���8�
���l�
@��Jv�d��t�Ml8�$��]MlE����E��Ȉ�r��>
Z��R���U���Bs�։�/U/��ٳg���a����*��#�����L��'Ҁ��Հd���ɶe';���k;���$\$�� #���I�'����K6�0�����`���s@�s���m-��qvj��o"�V*z�ȸu0�߄���$�G�Z~������n��л�1h��(:�00�%��C ��d3��i���9,wm%��4K�?I�J=�rG6��Y����m^��ԲU�g@��� ҬA�l�O��X�vf&��n:1��l��4K��@E�l%\F�,�1[aC�3ݰ��u
Tt�QE�b?M3���V�&���(Ͱ�XP��S6�2��K��:!YX�h3[�c�FJI����_%	�t!�lg i�s�3u�t�q�V�v
u`�V�G�$a+q�bz�%s���
�����s�	-�FK2A,{΂�V�����l��
� wu˲�����JC�&`1
f�$�42���p��s�� �-@���֎��[�d�0�@i�9�Lb`i\Z66�H����$[H�����\r��Ȯf�l�e7�8��
�Ozt�i�c�NI�p��V��
$;�d��lYv�UYG��[m8�U��\���60��#x��@m��sH���5`�A�sP��˷T��g��L3���)4:e��Dv��c%�3�@�J����6�'#�4b���em��0H�ݵ��(v�d[����f�J���NP1�D�m�шustW��d;]�m�J�ef��rW3�B�Y��[�<��&�Oݾ��[~3��9=�ݶC`'[������x#d�$��^�f���v��k�d���s��l&��6?�fDo��l6�����$;�v`&[��l'���q�c���������HvX�v�@�4�he4ۮ�x.KЁs�QldHv��jڑ��o glw#����
RX�^ڵ�nm�A��n��`�ï��S'IEND�B`�assets/image/09-icon.png000064400000003201151327614500011014 0ustar00�PNG


IHDR;0��tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:AD51E659BBC0E411AC0ADDF352E54947" xmpMM:DocumentID="xmp.did:7334B6AA7CC511E59901AEF868E93F7B" xmpMM:InstanceID="xmp.iid:7334B6A97CC511E59901AEF868E93F7B" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:E1766283CC8511E4A686AE7BF428B924" stRef:documentID="xmp.did:E1766284CC8511E4A686AE7BF428B924"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>,�g�IDATx��]h�aǟw[,f>˖Ҥ|�W9�'��^�#$'�ā�ȁ����9q@lB1$�M/)6̷��z76����SWooi����u?������u퉥R��7FV�K���9W����&��:q@�t�">�O�:�U⨘��~�Nj���Lj��qR|mb��^.J�����1Zt
���-�֞�k����,�qw놊}b'��.f�E��-��A��)�|qL��f�:)n���\Q+F�Q�_ �� �i�؀�hL�آ\�l8}���f�qB����΋�غ�gS�fq{g�T[��I<"]�Ή��Fq�+�,��0l&�{d�;P����?�݉��̥�6|+^�Y��<Od~�A�̍`]%J��́0�m܅����[#
#�b{�<���5�A"O��)�I\��x9\l��Tjݤq�"�0�8",t%�P�gY{W,&k
�3��<�N�&�o <��'�X-N#�/�{]��l��[B��b��HOw���[��lb�/�Rv_��C��z�CLv��z1G���N6�<���:p�?��6q���X�"-"C	'���FL]ΞKU�a�Ho�a#h��T�V�M:`�UC�=�s{����$h���>�E�*'-VKH�E~8�1����b;(�OS�Ug�H�Q�A�'Qr))�.�E����s�%������N&=IEND�B`�assets/image/06-icon.png000064400000004060151327614500011015 0ustar00�PNG


IHDR+"�R tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:4EDAF002BCF511E4B72CD0568AE043C3" xmpMM:InstanceID="xmp.iid:4EDAF001BCF511E4B72CD0568AE043C3" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6DC56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>��b`IDATxڼ�y�NQ��|�lc	�Fd{(�-ٚ����=��Ȑ�[CB�f�R��#� ���6�
��y�u��:�7�֯s�s�y�{�s�{nT(2233
?VX�m]�AG��Ѽ�ހ; \���*�⦗���^NЇ���`:��PU^�
������ˆOC��Q�G�3��x�@ÿ���	0<u�,��`&���	A��ʡ�&�1�v/��Z�W	E�*k���JJ0wr�=�ڂ*��R@0Q�b-�:6��m�VGq4w��8~��<����cAU��P9� T,:`��O������2��;�}͗�m ��h��߇���T~V7�����Ӆ�Xԑ�0�C�W�
�{��3��uV�K��L�y�n�K*BK3��J<��5X�y��K(��B��`7��r�U��<�@�t�B�q�6��*6L;o�؍�<P��ɜ�{����A"��=/�3���Ტ�#�6X�,�e�����z�bq��Y)Jr���<Y��j
�@�ZLo�8�X�,�C��|I��+�qHH&�Z�Z��������2�B��1řH����ft�h�<)K�J�2�izDXl2�f�x�b�����Nl3��f��0��+�^��x����z���F�Z!=���?�K�ᔑ�bK��XI7�+�K�rﱛؒ�'`�~�{!p�Ml��}\"���H�N��*biZ:�5��As�ɞ��vo)��U<ލ���5a
�����r�9N���ڵ��+�6�r���#����-��ƋX����v^ÇP�C٢�2A[MQ�+sQ8��[��r[�����e��P�GT�'΃�OܚrJ��L�1��*h�dg�y^=���3�
���l�zq�̣�0�ז��Q
�$%�u
_bi;-��!�G��,N2��� ǀ�G����wt�b����ky0A��u���<�)�Qd��GE@�G0���_LfZ��d�K,�F�=L���I���J���Y-��85A٥�Jb��"*�-�H�R���{�(X��0���^�6�!�)�hK�.�q7�-8]E��M��ܡ>uiG6y}l���.V��}~"�[\�r�/t�kq��f2��p��IEND�B`�assets/image/07-bg.png000064400000004740151327614500010463 0ustar00�PNG


IHDR����g3tEXtSoftwareAdobe ImageReadyq�e<fiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:A588B2798B18E311BCCED9E78F387C94" xmpMM:DocumentID="xmp.did:797599A8BDBB11E4836F80A8CCD3E4E0" xmpMM:InstanceID="xmp.iid:797599A7BDBB11E4836F80A8CCD3E4E0" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:70C56102F2BCE411B18089FBBEECC7FF" stRef:documentID="xmp.did:A588B2798B18E311BCCED9E78F387C94"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�.�IDATx���oSG��D ���e:�N_�
����[g:�v�
�J$!�n��OL�C��=�����s�����o�E�^[��Z+�a�0�A��q����wΉ%�ƺ9�%N�8���W��0n�;Z�(��!��l���P(�\<��=�.�%��A:/���<��̋eO(�U0{��l�z��-YX]�>�eל�B�!��O���O�^>+&��F揆[I�j�����iV�a���g2�	c���jk%�,UB9
��>��ez+E�����@�^��<k+E�{�N�(�,�.�t��{�S�M�N�i����;��"��X@, ����b�:蚂֋�O�j����5��W,��U��vCw�a�*��-l�w�&?�q���f?Wx�T��S\Mz�9��{_,\����,�Wu�%��n�r��eh
�B5�� *�,��W��^�Z�����F
Ρ��~.%�v;K[��cр��a�!�F<�A,E,E,E,e��XJ����7bA(�<�� �j�8gA(ME,E,E,E,E,%�PĂPĂPĂPĂPĂP2E,E,E,E,E,E,�=��������������'� � � � � � � ���2B)�%_�G���֯(G)�E�ZY�D\5^,b�U}#]ǒPp���0�V�wW���E(M:���u~�ay�_�<,J��P�B��P��r	E,��^(b��a�A(K��q�^���W�	������q�F��q��F,,ޒ
M�s��b�b��X@,  ��b��X��X@, �|�o]�����Ƈ�^�BKl��7���.�	�6��;sB��c���I(?TXu�P*�n�<�E(Ռ�@,K��dJ��a��n
b�����x�(> 4>��,�PN�8p���{�U�A�陇���N�ۯ��[Byff��3�|.�`o'�P�bbY���u�КX�5�ބB-Ⱥ
b
b
b
b
b
b�P�"� � � � � � �@[b
b
b��P�B���\4�B���|K(�q�p�M�������E(�E(�E(�E(�E(аX��X��X��+�RMG(�e���X��X��X�B��
������B}��0F%��U���ղ˰�z[i�sg�0J��q�4��jn�`�#�X��c�_<b�L2�Ǒs�\�7��[��X.�q1���t�0J���K�)��0n4�$y�s�7��Q�X�+̱�؆�X@,�X@, ��b�b��X@, �b�
-���z4�u�=��V���x|o��lc��(ަtǔ���
+�0�`P�_�����tª2=���
+�aܭL|��]���e���nZYNҹI��`�<�2�����C��>��ŭؑ9���P���~�eQ~e�d��(fc�'��CyV�ѼX�x��}[2ھ���P�x��{ǒ�� ^.^7w��I:����y7��+&��
�#����c}�z-����¤�?IEND�B`�assets/image/upgrade.png000064400000003231151327614500011270 0ustar00�PNG


IHDR$��o�tEXtSoftwareAdobe ImageReadyq�e<"iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmpMM:InstanceID="xmp.iid:F02E3C51756C11E4AC56F60DBE592D86" xmpMM:DocumentID="xmp.did:F02E3C52756C11E4AC56F60DBE592D86"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:F02E3C4F756C11E4AC56F60DBE592D86" stRef:documentID="xmp.did:F02E3C50756C11E4AC56F60DBE592D86"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>ؐ�:
IDATx�Ę�kQ�wcJҚ(Vb�b�<�� �HD��
"��>���?�$���P�� �bQ/�X*�Ŋ�������t�F��qi6'�4�5��9�23gΜڮ략,k�.��`Ě&�!������(�gZA�Q��gC����UM�G=8��a%���HWK��G�_kA��(h'��j���|p\?�ǎ�T5BV�%�2���.��jA��} ��4���E�<�r|oH�g�e�`����G�j�� �M�LP�g+�!ְry��.&h�^Z����8b��S�%R�E	W���a�{Ɖ�/��ڨ� q�8��3�����2<��fF�Iȴ��J�n��XB}�A��<䨐%��&y$L=f�l+Ԋ�_L���抋��`[���9^��%����)�Cu�N+�S�z��m�c"�㻀ޑ�s��!<��㍜S�#x(��D�åߤj�Lz\3���	��u���eY���K_V�/�:�eT���eZP��V�]
Q��vr�{
�"h�!��3[�
�Cz����2\�
�'�X��/�W�I)퇗�R#��}`�.;D2ۊw��_��L'lடdS1�ܑ��blk�����!�X��r��2��d��n���R��B,��σ�<F���.��v����|��6��m���7���ۼ^�L���$M~��	�s�k�	:,�
�U�)
ˀ�+=wT�����t���:uh{��k������E��#�z�\j�~0����I�IEND�B`�readme.txt000064400000024216151327614500006553 0ustar00=== Plugin Name ===
Contributors: yithemes
Tags: woocommerce, quick view, woocommerce quick view, products quick view
Requires at least: 5.6
Tested up to: 5.8
Stable tag: 1.9.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

This plugin adds the possibility to have a quick preview of the products right from product list

== Description ==
Sometimes the halfway is better: what if you are looking to a product in a list and its image is still too small? 

You have to open its product page, waiting for its loading and finally observe what you are interested into. 
So why don't use a simple way to look immediately at the product's distinctiveness? Here it is what Quick View can offer you.

People are more attracted to what they can see clearly. And often the classic product lists are not enough to understand the real value of a product. 
That's when Quick View strikes successfully! Your clients will be free to look in a better way your products, reading also a small description with all the most important features and qualities you want to underline. 
In this way, they will be more focused on what they really want and they will proceed easily to the purchase step.

**Main features:**

* Add a button in product loop to open a modal window with the product summary using AJAX
* Customize style of modal

Full documentation is available [here](https://docs.yithemes.com/yith-woocommerce-quick-view/).

== Installation ==

1. Unzip the downloaded zip file.
2. Upload the plugin folder into the `wp-content/plugins/` directory of your WordPress site.
3. Activate `YITH WooCommerce Quick View` from Plugins page.

== Screenshots ==

1. The plugin admin page.
2. The quick view button in shop page.
3. The quick view modal.

== Changelog ==

= 1.9.0 = Released 02 November 2021

* New: support for WooCommerce 5.9
* Update: YITH plugin framework

= 1.8.0 = Released 14 October 2021

* New: support for WooCommerce 5.8
* Update: YITH plugin framework

= 1.7.1 = Released 27 September 2021

* Update: YITH plugin framework
* Fix: debug info feature removed for all logged in users

= 1.7.0 = Released 08 September 2021

* New: support for WooCommerce 5.7
* Update: YITH plugin framework

= 1.6.4 = Released 13 August 2021

* New: support for WooCommerce 5.6
* Update: YITH plugin framework

= 1.6.3 = Released 06 July 2021

* New: Support for WordPress 5.8
* New: support for WooCommerce 5.5
* Update: YITH plugin framework

= 1.6.2 = Released 01 June 2021

* New: support for WooCommerce 5.4
* Update: YITH plugin framework

= 1.6.1 = Released 04 May 2021

* New: support for WooCommerce 5.3
* Update: YITH plugin framework

= 1.6.0 = Released 15 April 2021

* New: support for WooCommerce 5.2
* Update: YITH plugin framework
* Fix: compatibility issue with YITH WooCommerce Color and Label Variations Premium

= 1.5.1 = Released 05 March 2021

* Fix: compatibility issue with YITH WooCommerce Wishlist

= 1.5.0 = Released 02 March 2021

* New: Support for WordPress 5.7
* New: support for WooCommerce 5.1
* Update: YITH plugin framework
* Fix: issue with YITH Proteo and button "add to cart" position on image hover

= 1.4.9 = Released 04 February 2021

* New: support for WooCommerce 5.0
* Update: YITH plugin framework

= 1.4.8 = Released 12 January 2021

* New: Support for WooCommerce 4.9
* Update: Plugin framework

= 1.4.7 = Released 04 December 2020

* New: Support for WooCommerce 4.8
* Update: Plugin framework

= 1.4.6 = Released 04 November 2020

* New: Support for WordPress 5.6
* New: Support for WooCommerce 4.7
* Update: Plugin framework

= 1.4.5 = Released 12 October 2020

* New: Support for WooCommerce 4.6
* Update: Plugin framework

= 1.4.4 = Released 17 September 2020

* New: Support for WooCommerce 4.5
* Update: Plugin framework

= 1.4.3 = Released 19 August 2020

* New: Support for WooCommerce 4.4
* New: Support for WordPress 5.5
* Update: Plugin framework

= 1.4.2 = Released 21 May 2020

* New: Support for WooCommerce 4.2
* Update: Plugin framework

= 1.4.1 = Released 23 April 2020

* New: Support for WooCommerce 4.1
* Update: Plugin framework

= 1.4.0 = Released 06 March 2020

* New: Support for WooCommerce 4.0
* New: Support for WordPress 5.4
* Update: Plugin framework
* Fix: Enqueue of YITH WooCommerce Gift Card scripts if version installed is greater than 3.0.0
* Fix: Do not enqueue YITH WooCommerce Gift Card scripts in product pages
* Dev: New filter "yith_load_gift_card_script_pages_for_quick_view" to filter pages where YITH WooCommerce Gift Card scripts are loaded

= 1.3.18 = Released 21 December 2019

* New: Support for WooCommerce 3.9
* New: Support for WordPress 5.3.2
* Update: Plugin framework

= 1.3.17 = Released 29 November 2019

* Update: Plugin framework

= 1.3.16 = Released 05 November 2019

* Update: Plugin framework

= 1.3.15 = Released 30 October 2019

* Update: Plugin framework

= 1.3.14 = Released 28 October 2019

* New: Support for WooCommerce 3.8
* New: Support for WordPress 5.3
* Update: Plugin framework
* Fix: fatal error (Uncaught Error: Call to undefined function curl_init() )

= 1.3.13 = Released 26 August 2019

* Update: plugin core
* Fix: fatal error (Uncaught Error: Call to undefined function curl_init() )


= 1.3.12 = Released 31 July 2019

* New: Support to WooCommerce 3.7.0 RC1
* New: Plugin admin panel style
* Update: Plugin Core

= 1.3.11 = Released 12 June 2019

* Update: Plugin Core

= 1.3.10 = Released 11 June 2019

* New: Support to WooCommerce 3.6.4
* New: Support to WordPress 5.2.1
* Update: Plugin Core

= 1.3.9 = Released 23 April 2019

* New: Support to WooCommerce 3.6.1
* Update: Plugin Core

= 1.3.8 = Released 02 April 2019

* New: Support to WooCommerce 3.6.0 RC1
* Update: Plugin Core
* Fix: Style issue on Storefront theme

= 1.3.7 = Released 21 February 2019

* New: Support to WooCommerce 3.5.5
* New: Support to WordPress 5.1.0
* Update: Plugin Core
* Fix: Conflict with YITH WooCommerce Gift Card form in checkout page

= 1.3.6 = Released 06 December 2018

* New: Support to WooCommerce 3.5.2
* New: Support to WordPress 5.0.0
* Update: Plugin Core

= 1.3.5 = Released 24 October 2018

* New: Support to WooCommerce 3.5.0
* Update: Plugin Core

= 1.3.4 = Released 05 October 2018

* New: Support to WooCommerce 3.5.0 RC1
* New: Compatibility with YITH WooCommerce Gift Card
* Update: Plugin Core

= 1.3.3 = Released 27 September 2018

* Update: Plugin Core
* Dev: New filter "yith_wcqv_show_quick_view_button"

= 1.3.2 = Released 12 September 2018

* New: Support to WooCommerce 3.4.5
* New: Support to WordPress 4.9.8
* Update: Plugin Core
* Fix: Now is possible use shortcode [yith_quick_view] without specify the "product_id" parameter

= 1.3.1 = Released 30 May 2018

* New: Support to WooCommerce 3.4.0
* New: Support to WordPress 4.9.6
* Update: Plugin Core
* Fix: Product image zoom in Quick View modal
* Fix: Removed redirect to single product page after add to cart
* Fix: WPML compatibility issue

= 1.3.0 = Released 01 February 2018

* New: Support to WooCommerce 3.3.0
* New: Support to WordPress 4.9.2
* Update: Plugin Core

= 1.2.2 = Released 11 October 2017

* New: Support to WooCommerce 3.2.0 RC2
* New: Support to WordPress 4.8.2
* Fix: Compatibility issue with YITH WooCommerce Product Bundles
* Update: Plugin Core

= 1.2.1 = Released 05 April 2017

* Fix: Compatibility issue with YITH WooCommerce Wishlist
* Update: Plugin Core

= 1.2.0 = Released 31 March 2017

* New: Support to WordPress 4.7.3
* New: Support to WooCommerce 3.0.0 RC2
* New: Shortcode [yith_quick_view product_id="" label=""] for print "quick view" button of specified product
* Update: Plugin Core

= 1.1.4 = Released 24 October 2016

* Fix: Status code 404 for "Quick View" on single product page

= 1.1.3 = Released 20 October 2016

* New: Support to WooCommerce 2.6.5
* New: Support to WordPress 4.6.1
* Update: Plugin Core.
* Fix: Responsive style.
* Fix: Add inline css using WordPress function wp_add_inline_style.

= 1.1.2 = Released 10 June 2016

* New: Added minimized js files. Plugin loads full files version if the constant "SCRIPT_DEBUG" is defined and is true.
* New: Support to WooCommerce 2.6 RC1
* Update: Plugin Core

= 1.1.1 = Released 18 April 2016

* New: Compatibility with WordPress 4.5
* Update: Plugin Core

= 1.1.0 = Released 30 October 2015

* New: Compatibility with YITH WooCommerce Wishlist
* New: Compatibility with YITH WooCommerce Badge Management
* New: Italian Language
* Update: Language file .pot. Changed textdomain to yith-wcqv to yith-woocommerce-quick-view
* Update: Plugin Core

= 1.0.8 = Released 24 August 2015

* Fix: Main template issue

= 1.0.7 = Released 21 August 2015

* New: Compatibility with Wordpress 4.3
* New: WPML config xml
* Update: Language file .pot
* Fix: Default variation select

= 1.0.6 = Released 12 August 2015

* Update: Plugin Core

= 1.0.5 = Released 11 August 2015

* New: Compatibility with WooCommerce 2.4
* Update: Plugin Core
* Update: Language file

= 1.0.4 = Released 18 May 2015

* New option for enable quick view also in mobile device
* Compatibility with Wordpress 4.2.2
* Minor bug fix
* Update Plugin Core
* Update Language file

= 1.0.3 = Released 11 March 2015

* Minor bug fix
* Update Plugin Core

= 1.0.2 = Released 06 March 2015

* New: Action yith_quick_view_custom_style_scripts
* New: Filter 'yith_quick_view_loader_gif

= 1.0.1 = Released 26 February 2015

* Minor bug fix

= 1.0.0 = Released 17 February 2015

* Initial release

== Suggestions ==

If you have suggestions about how to improve YITH WooCommerce Quick View, you can [write us](mailto:plugins@yithemes.com "Your Inspiration Themes") so we can bundle them into YITH WooCommerce Quick View.

== Translators ==

= Available Languages =
* English
* Italian

If you can't find this plugin in your language and want to translate it, use the dedicated tool at [Translating WordPress](https://translate.wordpress.org/locale/it/default/wp-plugins/yith-woocommerce-quick-view "Translating WordPress").
Or, if you have created your own language pack, or have an update for an existing one, you can send it as an email attachment from our [Contacts page](http://yithemes.com/contact/ "Your Inspiration Themes") and we will bundle into YITH WooCommerce Quick View.

== Upgrade notice ==

= 1.9.0 = Released 02 November 2021

* New: support for WooCommerce 5.9
* Update: YITH plugin framework
plugin-options/premium-options.php000064400000000472151327614500013422 0ustar00<?php
/**
 * Premium tab array
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.1.1
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

return array(
	'premium' => array(
		'home' => array(
			'type'   => 'custom_tab',
			'action' => 'yith_quick_view_premium',
		),
	),
);
plugin-options/settings-options.php000064400000005402151327614500013602 0ustar00<?php
/**
 * Settings tab array
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.1.1
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

$settings = array(

	'settings' => array(

		'general-options'          => array(
			'title' => __( 'General Options', 'yith-woocommerce-quick-view' ),
			'type'  => 'title',
			'desc'  => '',
			'id'    => 'yith-wcqv-general-options',
		),

		'enable-quick-view'        => array(
			'id'        => 'yith-wcqv-enable',
			'name'      => __( 'Enable Quick View', 'yith-woocommerce-quick-view' ),
			'type'      => 'yith-field',
			'yith-type' => 'onoff',
			'default'   => 'yes',
		),

		'enable-quick-view-mobile' => array(
			'id'        => 'yith-wcqv-enable-mobile',
			'name'      => __( 'Enable Quick View on mobile', 'yith-woocommerce-quick-view' ),
			'desc'      => __( 'Enable quick view features on mobile device too', 'yith-woocommerce-quick-view' ),
			'type'      => 'yith-field',
			'yith-type' => 'onoff',
			'default'   => 'yes',
		),

		'quick-view-label'         => array(
			'id'        => 'yith-wcqv-button-label',
			'name'      => __( 'Quick View Button Label', 'yith-woocommerce-quick-view' ),
			'desc'      => __( 'Label for the quick view button in the WooCommerce loop.', 'yith-woocommerce-quick-view' ),
			'type'      => 'yith-field',
			'yith-type' => 'text',
			'default'   => __( 'Quick View', 'yith-woocommerce-quick-view' ),
		),

		'general-options-end'      => array(
			'type' => 'sectionend',
			'id'   => 'yith-wcqv-general-options',
		),

		'style-options'            => array(
			'title' => __( 'Style Options', 'yith-woocommerce-quick-view' ),
			'desc'  => '',
			'type'  => 'title',
			'id'    => 'yith-wcqv-style-options',
		),

		'background-color-modal'   => array(
			'name'      => __( 'Modal Window Background Color', 'yith-woocommerce-quick-view' ),
			'type'      => 'yith-field',
			'yith-type' => 'colorpicker',
			'desc'      => '',
			'id'        => 'yith-wcqv-background-modal',
			'default'   => '#ffffff',
		),

		'close-button-color'       => array(
			'name'      => __( 'Closing Button Color', 'yith-woocommerce-quick-view' ),
			'type'      => 'yith-field',
			'yith-type' => 'colorpicker',
			'desc'      => '',
			'id'        => 'yith-wcqv-close-color',
			'default'   => '#cdcdcd',
		),

		'close-button-color-hover' => array(
			'name'      => __( 'Closing Button Hover Color', 'yith-woocommerce-quick-view' ),
			'type'      => 'yith-field',
			'yith-type' => 'colorpicker',
			'desc'      => '',
			'id'        => 'yith-wcqv-close-color-hover',
			'default'   => '#ff0000',
		),

		'style-options-end'        => array(
			'type' => 'sectionend',
			'id'   => 'yith-wcqv-style-options',
		),


	),
);

return apply_filters( 'yith_wcqv_panel_settings_options', $settings );
templates/yith-quick-view-content.php000064400000001104151327614500013762 0ustar00<?php
/**
 * Quick view content.
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

while ( have_posts() ) :
	the_post();
	?>

	<div class="product">

		<div id="product-<?php the_ID(); ?>" <?php post_class( 'product' ); ?>>

			<?php do_action( 'yith_wcqv_product_image' ); ?>

			<div class="summary entry-summary">
				<div class="summary-content">
					<?php do_action( 'yith_wcqv_product_summary' ); ?>
				</div>
			</div>

		</div>

	</div>
	<?php
endwhile; // end of the loop.
templates/admin/premium.php000064400000037617151327614500012043 0ustar00<?php
/**
 * Quick view bone.
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

?>
	<style>
		.section {
			overflow-x: hidden;
		}

		.section {
			margin-left: -20px;
			margin-right: -20px;
			font-family: "Raleway", san-serif;
		}

		.section h1 {
			text-align: center;
			text-transform: uppercase;
			color: #808a97;
			font-size: 35px;
			font-weight: 700;
			line-height: normal;
			display: inline-block;
			width: 100%;
			margin: 50px 0 0;
		}

		.section:nth-child(even) {
			background-color: #fff;
		}

		.section:nth-child(odd) {
			background-color: #f1f1f1;
		}

		.section .section-title img {
			display: table-cell;
			vertical-align: middle;
			width: auto;
			margin-right: 15px;
		}

		.section h2,
		.section h3 {
			display: inline-block;
			vertical-align: middle;
			padding: 0;
			font-size: 24px;
			font-weight: 700;
			color: #808a97;
			text-transform: uppercase;
		}

		.section .section-title h2 {
			display: table-cell;
			vertical-align: middle;
			line-height: 27px;
			border: none;
		}

		.section-title {
			display: table;
		}

		.section h3 {
			font-size: 14px;
			line-height: 28px;
			margin-bottom: 0;
			display: block;
		}

		.section p {
			font-size: 13px;
			margin: 25px 0;
		}

		.section ul li {
			margin-bottom: 4px;
		}

		.landing-container {
			max-width: 750px;
			margin-left: auto;
			margin-right: auto;
			padding: 50px 0 30px;
		}

		.landing-container:after {
			display: block;
			clear: both;
			content: '';
		}

		.landing-container .col-1,
		.landing-container .col-2 {
			float: left;
			box-sizing: border-box;
			padding: 0 15px;
		}

		.landing-container .col-1 img {
			width: 100%;
		}

		.landing-container .col-1 {
			width: 55%;
		}

		.landing-container .col-2 {
			width: 45%;
		}

		.premium-cta {
			background-color: #808a97;
			color: #fff;
			border-radius: 6px;
			padding: 20px 15px;
		}

		.premium-cta:after {
			content: '';
			display: block;
			clear: both;
		}

		.premium-cta p {
			margin: 7px 0;
			font-size: 14px;
			font-weight: 500;
			display: inline-block;
			width: 60%;
		}

		.premium-cta a.button {
			border-radius: 6px;
			height: 60px;
			float: right;
			background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/upgrade.png) #ff643f no-repeat 13px 13px;
			border-color: #ff643f;
			box-shadow: none;
			outline: none;
			color: #fff;
			position: relative;
			padding: 9px 50px 9px 70px;
		}

		.premium-cta a.button:hover,
		.premium-cta a.button:active,
		.premium-cta a.button:focus {
			color: #fff;
			background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/upgrade.png) #971d00 no-repeat 13px 13px;
			border-color: #971d00;
			box-shadow: none;
			outline: none;
		}

		.premium-cta a.button:focus {
			top: 1px;
		}

		.premium-cta a.button span {
			line-height: 13px;
		}

		.premium-cta a.button .highlight {
			display: block;
			font-size: 20px;
			font-weight: 700;
			line-height: 20px;
		}

		.premium-cta .highlight {
			text-transform: uppercase;
			background: none;
			font-weight: 800;
			color: #fff;
		}

		@media (max-width: 768px) {
			.section {
				margin: 0
			}

			.premium-cta p {
				width: 100%;
			}

			.premium-cta {
				text-align: center;
			}

			.premium-cta a.button {
				float: none;
			}

			.section .section-title h2 {
				display: block;
				margin-top: 15px;
			}
		}

		@media (max-width: 480px) {
			.wrap {
				margin-right: 0;
			}

			.section {
				margin: 0;
			}

			.landing-container .col-1,
			.landing-container .col-2 {
				width: 100%;
				padding: 0 15px;
			}

			.section-odd .col-1 {
				float: left;
				margin-right: -100%;
			}

			.section-odd .col-2 {
				float: right;
				margin-top: 100%;
			}

			.section-even .landing-container .col-1 {
				margin-bottom: 26px;
			}
		}

		@media (max-width: 320px) {
			.premium-cta a.button {
				padding: 9px 20px 9px 70px;
			}

			.section .section-title img {
				display: none;
			}
		}
	</style>
	<div class="landing">
		<div class="section section-cta section-odd">
			<div class="landing-container">
				<div class="premium-cta">
					<p>
						<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Quick View%2$s to benefit from all features!', 'yith-woocommerce-quick-view' ), '<span class="highlight">', '</span>' );
						?>
					</p>
					<a href="<?php echo esc_url( YITH_WCQV_Admin()->get_premium_landing_uri() ); ?>" target="_blank"
						class="premium-cta-button button btn">
						<span class="highlight"><?php esc_html_e( 'UPGRADE', 'yith-woocommerce-quick-view' ); ?></span>
						<span><?php esc_html_e( 'to the premium version', 'yith-woocommerce-quick-view' ); ?></span>
					</a>
				</div>
			</div>
		</div>
		<div class="section section-even clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/01-bg.png) no-repeat #fff; background-position: 85% 75%">
			<h1><?php esc_html_e( 'Premium Features', 'yith-woocommerce-quick-view' ); ?></h1>
			<div class="landing-container">
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/01.png"
						alt="<?php esc_html_e( 'Button type', 'yith-woocommerce-quick-view' ); ?>"/>
				</div>
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/01-icon.png" alt="Review Title"/>
						<h2><?php esc_html_e( 'BUTTON TYPE', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'Choose between the button or a custom icon to access the %1$sQuick View%2$s: you can choose to place it after the "Add To Cart" button or inside the thumbnail of the product.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
			</div>
		</div>
		<div class="section section-odd clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/02-bg.png) no-repeat #f1f1f1; background-position: 15% 100%">
			<div class="landing-container">
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/02-icon.png"
							alt="<?php esc_html_e( 'Product Navigation', 'yith-woocommerce-quick-view' ); ?>"/>
						<h2><?php esc_html_e( 'Product Navigation', 'yith-woocommerce-quick-view' ); ?> </h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'The navigation in the "Quick View" allows browsing among %1$sproducts%2$s displayed in it. The navigation arrows show on mousehover the image of the next/previous product.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/02.png"
						alt="<?php esc_html_e( 'Product Navigation', 'yith-woocommerce-quick-view' ); ?>"/>
				</div>
			</div>
		</div>
		<div class="section section-even clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/03-bg.png) no-repeat #fff; background-position: 85% 100%">
			<div class="landing-container">
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/03.png" alt="Icon 03"/>
				</div>
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/03-icon.png"
							alt="<?php esc_html_e( 'Content to display', 'yith-woocommerce-quick-view' ); ?>"/>
						<h2><?php esc_html_e( 'Content to display', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'The display of the product information in the "Quick View" are managed by %1$sadministrators%2$s who can decide whether to show everything or only a part of it.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
			</div>
		</div>
		<div class="section section-odd clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/07-bg.png) no-repeat #f1f1f1; background-position: 15% 100%">
			<div class="landing-container">
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/07-icon.png" alt="icon 04"/>
						<h2><?php esc_html_e( 'Quick View Type', 'yith-woocommerce-quick-view' ); ?> </h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'Quick view has two different displaying modes: the first one opens it as a %1$smodal window%2$s, the other one opens it in the page itself with a %1$scascading effect%2$s above content page.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/07.png"
						alt="<?php esc_html_e( 'Quick view type', 'yith-woocommerce-quick-view' ); ?>"/>
				</div>
			</div>
		</div>
		<div class="section section-even clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/08-bg.png) no-repeat #fff; background-position: 85% 100%">
			<div class="landing-container">
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/08.png" alt="View details"/>
				</div>
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/08-icon.png"
							alt="Vote the review"/>
						<h2><?php esc_html_e( '"View details" button', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'An additional button that allows users to access product detail page directly from quick view window just with a click of the mouse.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
			</div>
		</div>
		<div class="section section-odd clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/04-bg.png) no-repeat #f1f1f1; background-position: 15% 100%">
			<div class="landing-container">
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/04-icon.png" alt="Number"/>
						<h2><?php esc_html_e( 'Type of product images', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'Each product can have more than one image: choose whether to hide or show them with the %1$sslider%2$s effect or in the classic %1$sWooCommerce%2$s display.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/04.png" alt="Icon 04"/>
				</div>
			</div>
		</div>
		<div class="section section-even clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/05-bg.png) no-repeat #fff; background-position: 85% 100%">
			<div class="landing-container">
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/05.png" alt="Share"/>
				</div>
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/05-icon.png" alt="icon 05"/>
						<h2><?php esc_html_e( 'SHARE', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( '%1$sQuick View is also social-friendly!%2$s Activating this option, you will be able to share the Quick View on Facebook, Twitter, Pinterest, Google+, or sending an email.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
			</div>
		</div>
		<div class="section section-odd clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/06-bg.png) no-repeat #f1f1f1; background-position: 15% 100%">
			<div class="landing-container">
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/06-icon.png" alt="Icon 06"/>
						<h2><?php esc_html_e( 'Style Options', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'A rich option panel to change the colors of the %1$s"Quick View"%2$s button and of everything that is within the modal window generated.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/06.png"
						alt="<?php esc_html_e( 'Style Options', 'yith-woocommerce-quick-view' ); ?>"/>
				</div>
			</div>
		</div>
		<div class="section section-even clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/09-bg.png) no-repeat #fff; background-position: 85% 100%">
			<div class="landing-container">
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/09.png" alt=""/>
				</div>
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/09-icon.png" alt="icon 09"/>
						<h2><?php esc_html_e( 'SHORTCODE', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'The shortcode of plugin is a $1$srapid$2$s and $1$seasy$2$s solution: you can add a button in any spot of the page to allow your users to see the quick view of a specific product in your store.', 'yith-woocommerce-quick-view' ), '<b>', '</b>' );
					?>
					</p>
				</div>
			</div>
		</div>
		<div class="section section-odd clear"
			style="background: url(<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/09-bg.png) no-repeat #f1f1f1; background-position: 15% 100%">
			<div class="landing-container">
				<div class="col-2">
					<div class="section-title">
						<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/09-icon.png" alt="Icon 10"/>
						<h2><?php esc_html_e( 'Compatibility with other YITH\'s plugins', 'yith-woocommerce-quick-view' ); ?></h2>
					</div>
					<p>
					<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'Thanks to the compatibility with %1$sYITH WooCommerce Zoom Magnifier, YITH WooCommerce Badge Management%2$s and %1$sYITH WooCommerce Wishlist%2$s, you will be free to enrich further the content of your quick view.%3$s Zoom the product image, show a badge, or add the button to open the quick view in all products available in your users\' wishlists. With YITH\'s plugins you make the difference.', 'yith-woocommerce-quick-view' ), '<b>', '</b>', '<br>' );
					?>
					</p>
				</div>
				<div class="col-1">
					<img src="<?php echo esc_url( YITH_WCQV_ASSETS_URL ); ?>/image/10.png" alt=""/>
				</div>
			</div>
		</div>
		<div class="section section-cta section-odd">
			<div class="landing-container">
				<div class="premium-cta">
					<p>
						<?php
						// translators: placeholders are used to add html tags.
						echo sprintf( esc_html__( 'Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Quick View%2$s to benefit from all features!', 'ywqa' ), '<span class="highlight">', '</span>' );
						?>
					</p>
					<a href="<?php echo esc_url( YITH_WCQV_Admin()->get_premium_landing_uri() ); ?>" target="_blank"
						class="premium-cta-button button btn">
						<span class="highlight"><?php esc_html_e( 'UPGRADE', 'yith-woocommerce-quick-view' ); ?></span>
						<span><?php esc_html_e( 'to the premium version', 'yith-woocommerce-quick-view' ); ?></span>
					</a>
				</div>
			</div>
		</div>
	</div>
<?php
templates/yith-quick-view.php000064400000001042151327614500012313 0ustar00<?php
/**
 * Quick view bone.
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

?>

<div id="yith-quick-view-modal">
	<div class="yith-quick-view-overlay"></div>
	<div class="yith-wcqv-wrapper">
		<div class="yith-wcqv-main">
			<div class="yith-wcqv-head">
				<a href="#" id="yith-quick-view-close" class="yith-wcqv-close">X</a>
			</div>
			<div id="yith-quick-view-content" class="woocommerce single-product"></div>
		</div>
	</div>
</div>
<?php
includes/class.yith-wcqv-frontend.php000064400000032137151327614500013751 0ustar00<?php
/**
 * Frontend class
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.1.1
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_WCQV_Frontend' ) ) {
	/**
	 * Admin class.
	 * The class manage all the Frontend behaviors.
	 *
	 * @since 1.0.0
	 */
	class YITH_WCQV_Frontend {

		/**
		 * Single instance of the class
		 *
		 * @since 1.0.0
		 * @var YITH_WCQV_Frontend
		 */
		protected static $instance;

		/**
		 * Plugin version
		 *
		 * @since 1.0.0
		 * @var string
		 */
		public $version = YITH_WCQV_VERSION;

		/**
		 * Returns single instance of the class
		 *
		 * @since 1.0.0
		 * @return YITH_WCQV_Frontend
		 */
		public static function get_instance() {
			if ( is_null( self::$instance ) ) {
				self::$instance = new self();
			}

			return self::$instance;
		}

		/**
		 * Constructor
		 *
		 * @access public
		 * @since  1.0.0
		 */
		public function __construct() {

			add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles_scripts' ) );

			// Enqueue gift card script.
			if ( defined( 'YITH_YWGC_FILE' ) ) {
				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_gift_card_script' ) );
			}

			// Quick view AJAX.
			add_action( 'wp_ajax_yith_load_product_quick_view', array( $this, 'yith_load_product_quick_view_ajax' ) );
			add_action( 'wp_ajax_nopriv_yith_load_product_quick_view', array( $this, 'yith_load_product_quick_view_ajax' ) );

			// Load modal template.
			add_action( 'wp_footer', array( $this, 'yith_quick_view' ) );

			// Load action for product template.
			$this->yith_quick_view_action_template();
			// Add quick view button.
			add_action( 'init', array( $this, 'add_button' ) );

			add_shortcode( 'yith_quick_view', array( $this, 'quick_view_shortcode' ) );
			add_filter( 'woocommerce_add_to_cart_form_action', array( $this, 'avoid_redirect_to_single_page' ), 10, 1 );
		}

		/**
		 * Enqueue styles and scripts
		 *
		 * @access public
		 * @since  1.0.0
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @return void
		 */
		public function enqueue_styles_scripts() {

			$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

			wp_register_script( 'yith-wcqv-frontend', YITH_WCQV_ASSETS_URL . '/js/frontend' . $suffix . '.js', array( 'jquery' ), $this->version, true );
			wp_enqueue_script( 'yith-wcqv-frontend' );
			wp_enqueue_style( 'yith-quick-view', YITH_WCQV_ASSETS_URL . '/css/yith-quick-view.css', array(), $this->version );

			$background_modal  = get_option( 'yith-wcqv-background-modal', '#ffffff' );
			$close_color       = get_option( 'yith-wcqv-close-color', '#cdcdcd' );
			$close_color_hover = get_option( 'yith-wcqv-close-color-hover', '#ff0000' );

			$inline_style = "
				#yith-quick-view-modal .yith-wcqv-main{background:{$background_modal};}
				#yith-quick-view-close{color:{$close_color};}
				#yith-quick-view-close:hover{color:{$close_color_hover};}";

			wp_add_inline_style( 'yith-quick-view', $inline_style );
		}


		/**
		 * Enqueue scripts for YITH WooCommerce Gift Cards
		 *
		 * @access public
		 * @since  1.0.0
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @return void
		 */
		public function enqueue_gift_card_script() {
			if ( ! wp_script_is( 'ywgc-frontend' ) && apply_filters( 'yith_load_gift_card_script_pages_for_quick_view', is_shop() ) && version_compare( YITH_YWGC_VERSION, '3.0.0', '<' ) ) {
				wp_register_script( 'ywgc-frontend', YITH_YWGC_URL . 'assets/js/' . yit_load_js_file( 'ywgc-frontend.js' ), array( 'jquery', 'woocommerce' ), YITH_YWGC_VERSION, true );
				wp_enqueue_script( 'ywgc-frontend' );
			} elseif ( ! wp_script_is( 'ywgc-frontend' ) && apply_filters( 'yith_load_gift_card_script_pages_for_quick_view', is_shop() ) ) {
				wp_register_script( 'ywgc-frontend', YITH_YWGC_URL . 'assets/js/' . yit_load_js_file( 'ywgc-frontend.js' ), array( 'jquery', 'woocommerce', 'jquery-ui-datepicker', 'accounting' ), YITH_YWGC_VERSION, true );

				wp_localize_script(
					'ywgc-frontend',
					'ywgc_data',
					array(
						'loader'        => apply_filters( 'yith_gift_cards_loader', YITH_YWGC_ASSETS_URL . '/images/loading.gif' ),
						'ajax_url'      => admin_url( 'admin-ajax.php' ),
						'wc_ajax_url'   => WC_AJAX::get_endpoint( '%%endpoint%%' ),
						'notice_target' => apply_filters( 'yith_ywgc_gift_card_notice_target', 'div.woocommerce' ),
					)
				);

				wp_enqueue_script( 'ywgc-frontend' );
			}
		}

		/**
		 * Add quick view button hooks
		 *
		 * @since 1.5.0
		 * @author Francesco Licandro
		 * @return void
		 */
		public function add_button() {
			if ( $this->is_proteo_add_to_cart_hover() ) {
				add_action( 'yith_proteo_products_loop_add_to_cart_actions', array( $this, 'yith_add_quick_view_button' ), 55 );
			} else {
				add_action( 'woocommerce_after_shop_loop_item', array( $this, 'yith_add_quick_view_button' ), 15 );
			}

			add_action( 'yith_wcwl_table_after_product_name', array( $this, 'add_quick_view_button_wishlist' ), 15 );
		}


		/**
		 * Check if current theme is YITH Proteo and if the add to cart button is visible on image hover
		 *
		 * @since 1.6.7
		 * @author Francesco Licandro
		 * @return boolean
		 */
		public function is_proteo_add_to_cart_hover() {
			return defined( 'YITH_PROTEO_VERSION' ) && 'hover' === get_theme_mod( 'yith_proteo_products_loop_add_to_cart_position', 'classic' );
		}

		/**
		 * Add quick view button in wc product loop
		 *
		 * @access public
		 * @since  1.0.0
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @param integer|string $product_id The product id.
		 * @param string         $label      The button label.
		 * @param boolean        $return     True to return, false to echo.
		 * @return string|void
		 */
		public function yith_add_quick_view_button( $product_id = 0, $label = '', $return = false ) {

			global $product;

			if ( ! $product_id && $product instanceof WC_Product ) {
				$product_id = $product->get_id();
			}

			if ( ! apply_filters( 'yith_wcqv_show_quick_view_button', true, $product_id ) ) {
				return;
			}

			$button = '';
			if ( $product_id ) {
				if ( ! $label ) {
					$label = $this->get_button_label();
				}

				$button = '<a href="#" class="button yith-wcqv-button" data-product_id="' . esc_attr( $product_id ) . '">' . $label . '</a>';
				$button = apply_filters( 'yith_add_quick_view_button_html', $button, $label, $product );
			}

			if ( $return ) {
				return $button;
			}

			echo $button;  // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		/**
		 * Add quick view button in wishlist
		 *
		 * @since 1.5.1
		 * @author Francesco Licandro
		 * @param YITH_WCWL_Wishlist_Item $item THe wishlist item.
		 * @return string|void
		 */
		public function add_quick_view_button_wishlist( $item ) {
			if ( $item instanceof YITH_WCWL_Wishlist_Item ) {
				$this->yith_add_quick_view_button( $item->get_product_id() );
			}
		}

		/**
		 * Enqueue scripts and pass variable to js used in quick view
		 *
		 * @access public
		 * @since  1.0.0
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @return bool
		 */
		public function yith_woocommerce_quick_view() {

			wp_enqueue_script( 'wc-add-to-cart-variation' );
			if ( version_compare( WC()->version, '3.0.0', '>=' ) ) {
				if ( current_theme_supports( 'wc-product-gallery-zoom' ) ) {
					wp_enqueue_script( 'zoom' );
				}
				if ( current_theme_supports( 'wc-product-gallery-lightbox' ) ) {
					wp_enqueue_script( 'photoswipe-ui-default' );
					wp_enqueue_style( 'photoswipe-default-skin' );
					if ( has_action( 'wp_footer', 'woocommerce_photoswipe' ) === false ) {
						add_action( 'wp_footer', 'woocommerce_photoswipe', 15 );
					}
				}
				wp_enqueue_script( 'wc-single-product' );
			}

			// Enqueue WC Color and Label Variations style and script.
			wp_enqueue_script( 'yith_wccl_frontend' );
			wp_enqueue_style( 'yith_wccl_frontend' );

			// Allow user to load custom style and scripts!
			do_action( 'yith_quick_view_custom_style_scripts' );

			wp_localize_script(
				'yith-wcqv-frontend',
				'yith_qv',
				array(
					'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ),
					'loader'  => apply_filters( 'yith_quick_view_loader_gif', YITH_WCQV_ASSETS_URL . '/image/qv-loader.gif' ),
					'lang'    => defined( 'ICL_LANGUAGE_CODE' ) ? ICL_LANGUAGE_CODE : '',
				)
			);

			return true;
		}

		/**
		 * Ajax action to load product in quick view
		 *
		 * @access public
		 * @since  1.0.0
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @return void
		 */
		public function yith_load_product_quick_view_ajax() {
			// phpcs:disable WordPress.Security.NonceVerification.Recommended
			if ( ! isset( $_REQUEST['product_id'] ) ) {
				die();
			}

			global $sitepress;

			$product_id = intval( $_REQUEST['product_id'] );
			$attributes = array();

			/**
			 * WPML Suppot:  Localize Ajax Call
			 */
			$lang = isset( $_REQUEST['lang'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['lang'] ) ) : '';
			if ( defined( 'ICL_LANGUAGE_CODE' ) && $lang && isset( $sitepress ) ) {
				$sitepress->switch_lang( $lang, true );
			}

			// Set the main wp query for the product.
			wp( 'p=' . $product_id . '&post_type=product' );

			// Remove product thumbnails gallery.
			remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
			// Change template for variable products.
			if ( isset( $GLOBALS['yith_wccl'] ) ) {
				$GLOBALS['yith_wccl']->obj = new YITH_WCCL_Frontend();
				$GLOBALS['yith_wccl']->obj->override();
			} elseif ( defined( 'YITH_WCCL_PREMIUM' ) && YITH_WCCL_PREMIUM && class_exists( 'YITH_WCCL_Frontend' ) ) {
				$attributes = YITH_WCCL_Frontend()->create_attributes_json( $product_id, true );
			}
						ob_start();
			wc_get_template( 'yith-quick-view-content.php', array(), '', YITH_WCQV_DIR . 'templates/' );
			$html = ob_get_contents();  // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			ob_end_clean();

			wp_send_json(
				array(
					'html'      => $html,
					'prod_attr' => $attributes,
				)
			);

			die();
			// phpcs:enable WordPress.Security.NonceVerification.Recommended
		}

		/**
		 * Load quick view template
		 *
		 * @access public
		 * @since  1.0.0
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @return void
		 */
		public function yith_quick_view() {
			$this->yith_woocommerce_quick_view();
			wc_get_template( 'yith-quick-view.php', array(), '', YITH_WCQV_DIR . 'templates/' );
		}

		/**
		 * Load wc action for quick view product template
		 *
		 * @access public
		 * @since  1.0.0
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @return void
		 */
		public function yith_quick_view_action_template() {

			// Image.
			add_action( 'yith_wcqv_product_image', 'woocommerce_show_product_sale_flash', 10 );
			add_action( 'yith_wcqv_product_image', 'woocommerce_show_product_images', 20 );

			// Summary.
			add_action( 'yith_wcqv_product_summary', 'woocommerce_template_single_title', 5 );
			add_action( 'yith_wcqv_product_summary', 'woocommerce_template_single_rating', 10 );
			add_action( 'yith_wcqv_product_summary', 'woocommerce_template_single_price', 15 );
			add_action( 'yith_wcqv_product_summary', 'woocommerce_template_single_excerpt', 20 );
			add_action( 'yith_wcqv_product_summary', 'woocommerce_template_single_add_to_cart', 25 );
			add_action( 'yith_wcqv_product_summary', 'woocommerce_template_single_meta', 30 );
		}

		/**
		 * Get Quick View button label
		 *
		 * @since  1.2.0
		 * @author Francesco Licandro
		 * @return string
		 */
		public function get_button_label() {
			$label = get_option( 'yith-wcqv-button-label' );
			$label = call_user_func( '__', $label, 'yith-woocommerce-quick-view' );

			return apply_filters( 'yith_wcqv_button_label', esc_html( $label ) );
		}

		/**
		 * Quick View shortcode button
		 *
		 * @access public
		 * @since  1.0.7
		 * @author Francesco Licandro
		 * @param array $atts An array of shortcode attributes.
		 * @return string
		 */
		public function quick_view_shortcode( $atts ) {

			$atts = shortcode_atts(
				array(
					'product_id' => 0,
					'label'      => '',
				),
				$atts
			);

			extract( $atts ); // phpcs:ignore

			return $this->yith_add_quick_view_button( intval( $product_id ), $label, true );
		}

		/**
		 * Check if is quick view
		 *
		 * @access public
		 * @since  1.3.1
		 * @author Francesco Licandro <francesco.licandro@yithemes.com>
		 * @return bool
		 */
		public function yith_is_quick_view() {
			// phpcs:ignore WordPress.Security.NonceVerification.Recommended
			return ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['action'] ) && 'yith_load_product_quick_view' === $_REQUEST['action'] );
		}

		/**
		 * Avoid redirect to single product page on add to cart action in quick view
		 *
		 * @since  1.3.1
		 * @author Francesco Licandro
		 * @param string $value The redirect url value.
		 * @return string
		 */
		public function avoid_redirect_to_single_page( $value ) {
			if ( $this->yith_is_quick_view() ) {
				return '';
			}
			return $value;
		}
	}
}
/**
 * Unique access to instance of YITH_WCQV_Frontend class
 *
 * @since 1.0.0
 * @return YITH_WCQV_Frontend
 */
function YITH_WCQV_Frontend() { // phpcs:ignore
	return YITH_WCQV_Frontend::get_instance();
}
includes/class.yith-wcqv.php000064400000006737151327614500012143 0ustar00<?php
/**
 * Main class
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.0.0
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_WCQV' ) ) {
	/**
	 * YITH WooCommerce Quick View
	 *
	 * @since 1.0.0
	 */
	class YITH_WCQV {

		/**
		 * Single instance of the class
		 *
		 * @since 1.0.0
		 * @var YITH_WCQV
		 */
		protected static $instance;

		/**
		 * Plugin version
		 *
		 * @since 1.0.0
		 * @var string
		 */
		public $version = YITH_WCQV_VERSION;

		/**
		 * Plugin object
		 *
		 * @since 1.0.0
		 * @var string
		 */
		public $obj = null;

		/**
		 * Returns single instance of the class
		 *
		 * @since 1.0.0
		 * @return YITH_WCQV
		 */
		public static function get_instance() {
			if ( is_null( self::$instance ) ) {
				self::$instance = new self();
			}

			return self::$instance;
		}

		/**
		 * Constructor
		 *
		 * @since 1.0.0
		 * @return void
		 */
		public function __construct() {

			// Load Plugin Framework.
			add_action( 'after_setup_theme', array( $this, 'plugin_fw_loader' ), 1 );

			if ( $this->can_load() ) {
				if ( $this->is_admin() ) {
					require_once 'class.yith-wcqv-admin.php';
					YITH_WCQV_Admin();
				}
				if ( $this->load_frontend() ) {
					require_once 'class.yith-wcqv-frontend.php';
					YITH_WCQV_Frontend();
				}
			}
		}

		/**
		 * Check if the plugin can load. Exit if is WooCommerce AJAX.
		 *
		 * @since  1.5
		 * @author Francesco Licandro
		 * @return boolean
		 */
		public function can_load() {
			$action = array(
				'woocommerce_get_refreshed_fragments',
				'woocommerce_apply_coupon',
				'woocommerce_remove_coupon',
				'woocommerce_update_shipping_method',
				'woocommerce_update_order_review',
				'woocommerce_add_to_cart',
				'woocommerce_checkout',
			);

			// phpcs:ignore WordPress.Security.NonceVerification.Recommended
			if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['action'] ) && in_array( $_REQUEST['action'], $action, true ) ) {
				return false;
			}

			return true;
		}

		/**
		 * Check if context is admin
		 *
		 * @since  1.2.0
		 * @author Francesco Licandro
		 * @return boolean
		 */
		public function is_admin() {
			// phpcs:ignore WordPress.Security.NonceVerification.Recommended
			$is_ajax = ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['context'] ) && 'frontend' === $_REQUEST['context'] );
			return apply_filters( 'yith_wcqv_is_admin', is_admin() && ! $is_ajax );
		}

		/**
		 * Check if load or not frontend
		 *
		 * @since  1.2.0
		 * @author Francesco Licandro
		 * @return boolean
		 */
		public function load_frontend() {
			$enable           = get_option( 'yith-wcqv-enable', 'yes' ) === 'yes';
			$enable_on_mobile = get_option( 'yith-wcqv-enable-mobile', 'yes' ) === 'yes';
			$is_mobile        = wp_is_mobile();

			return apply_filters( 'yith_wcqv_load_frontend', ( ! $is_mobile && $enable ) || ( $is_mobile && $enable_on_mobile ) );
		}


		/**
		 * Load Plugin Framework
		 *
		 * @since  1.0
		 * @access public
		 * @author Andrea Grillo <andrea.grillo@yithemes.com>
		 * @return void
		 */
		public function plugin_fw_loader() {
			if ( ! defined( 'YIT_CORE_PLUGIN' ) ) {
				global $plugin_fw_data;
				if ( ! empty( $plugin_fw_data ) ) {
					$plugin_fw_file = array_shift( $plugin_fw_data );
					require_once $plugin_fw_file;
				}
			}
		}
	}
}

/**
 * Unique access to instance of YITH_WCQV class
 *
 * @since 1.0.0
 * @return YITH_WCQV
 */
function YITH_WCQV() { // phpcs:ignore
	return YITH_WCQV::get_instance();
}
includes/class.yith-wcqv-admin.php000064400000013615151327614500013222 0ustar00<?php
/**
 * Admin class
 *
 * @author  YITH
 * @package YITH WooCommerce Quick View
 * @version 1.1.1
 */

defined( 'YITH_WCQV' ) || exit; // Exit if accessed directly.

if ( ! class_exists( 'YITH_WCQV_Admin' ) ) {
	/**
	 * Admin class.
	 * The class manage all the admin behaviors.
	 *
	 * @since 1.0.0
	 */
	class YITH_WCQV_Admin {

		/**
		 * Single instance of the class
		 *
		 * @since 1.0.0
		 * @var YITH_WCQV_Admin
		 */
		protected static $instance;

		/**
		 * Plugin options
		 *
		 * @since  1.0.0
		 * @var array
		 * @access public
		 */
		public $options = array();

		/**
		 * Plugin version
		 *
		 * @since 1.0.0
		 * @var string
		 */
		public $version = YITH_WCQV_VERSION;

		/**
		 * Panel Object
		 *
		 * @since 1.0.0
		 * @var object $panel
		 */
		protected $panel;

		/**
		 * Premium tab template file name
		 *
		 * @since 1.0.0
		 * @var string $premium
		 */
		protected $premium = 'premium.php';

		/**
		 * Premium version landing link
		 *
		 * @since 1.0.0
		 * @var string
		 */
		protected $premium_landing = 'https://yithemes.com/themes/plugins/yith-woocommerce-quick-view/';

		/**
		 * Quick View panel page
		 *
		 * @since 1.0.0
		 * @var string
		 */
		protected $panel_page = 'yith_wcqv_panel';

		/**
		 * Returns single instance of the class
		 *
		 * @since 1.0.0
		 * @return YITH_WCQV_Admin
		 */
		public static function get_instance() {
			if ( is_null( self::$instance ) ) {
				self::$instance = new self();
			}

			return self::$instance;
		}

		/**
		 * Constructor
		 *
		 * @access public
		 * @since  1.0.0
		 */
		public function __construct() {

			// Add panel options.
			add_action( 'admin_menu', array( $this, 'register_panel' ), 5 );

			// Add action links.
			add_filter( 'plugin_action_links_' . plugin_basename( YITH_WCQV_DIR . '/' . basename( YITH_WCQV_FILE ) ), array( $this, 'action_links' ) );
			add_filter( 'yith_show_plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 5 );

			add_action( 'yith_quick_view_premium', array( $this, 'premium_tab' ) );

			// YITH WCQV Loaded!
			do_action( 'yith_wcqv_loaded' );

		}


		/**
		 * Add the action links to plugin admin page
		 *
		 * @since    1.0
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 * @param array $links An array og plugin links.
		 *
		 * @return   array
		 * @use      plugin_action_links_{$plugin_file_name}
		 */
		public function action_links( $links ) {
			$links = yith_add_action_links( $links, $this->panel_page, false );
			return $links;
		}

		/**
		 * Add a panel under YITH Plugins tab
		 *
		 * @since    1.0
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 * @use      /Yit_Plugin_Panel class
		 * @return   void
		 * @see      plugin-fw/lib/yit-plugin-panel.php
		 */
		public function register_panel() {

			if ( ! empty( $this->panel ) ) {
				return;
			}

			$admin_tabs = array(
				'settings' => __( 'Settings', 'yith-woocommerce-quick-view' ),
				'premium'  => __( 'Premium Version', 'yith-woocommerce-quick-view' ),
			);

			$args = array(
				'create_menu_page' => true,
				'parent_slug'      => '',
				'page_title'       => _x( 'YITH WooCommerce Quick View', 'options page title', 'yith-woocommerce-quick-view' ),
				'menu_title'       => _x( 'Quick View', 'plugin menu title', 'yith-woocommerce-quick-view' ),
				'capability'       => 'manage_options',
				'parent'           => '',
				'parent_page'      => 'yith_plugin_panel',
				'page'             => $this->panel_page,
				'admin-tabs'       => $admin_tabs,
				'options-path'     => YITH_WCQV_DIR . '/plugin-options',
				'class'            => yith_set_wrapper_class(),
				'plugin_slug'      => YITH_WCQV_SLUG,
			);

			/* === Fixed: not updated theme  === */
			if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
				require_once 'plugin-fw/lib/yit-plugin-panel-wc.php';
			}

			$this->panel = new YIT_Plugin_Panel_WooCommerce( $args );
		}

		/**
		 * Premium Tab Template
		 *
		 * Load the premium tab template on admin page
		 *
		 * @since    1.0
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 * @return   void
		 */
		public function premium_tab() {
			$premium_tab_template = YITH_WCQV_TEMPLATE_PATH . '/admin/' . $this->premium;
			if ( file_exists( $premium_tab_template ) ) {
				include_once $premium_tab_template;
			}

		}

		/**
		 * Plugin Row Meta
		 *
		 * @since    1.0
		 * @author   Andrea Grillo <andrea.grillo@yithemes.com>
		 * @use      plugin_row_meta
		 * @param array    $new_row_meta_args An array of plugin row meta.
		 * @param string[] $plugin_meta       An array of the plugin's metadata,
		 *                                    including the version, author,
		 *                                    author URI, and plugin URI.
		 * @param string   $plugin_file       Path to the plugin file relative to the plugins directory.
		 * @param array    $plugin_data       An array of plugin data.
		 * @param string   $status            Status of the plugin. Defaults are 'All', 'Active',
		 *                                    'Inactive', 'Recently Activated', 'Upgrade', 'Must-Use',
		 *                                    'Drop-ins', 'Search', 'Paused'.
		 *
		 * @return array
		 */
		public function plugin_row_meta( $new_row_meta_args, $plugin_meta, $plugin_file, $plugin_data, $status ) {
			if ( defined( 'YITH_WCQV_INIT' ) && YITH_WCQV_INIT === $plugin_file ) {
				$new_row_meta_args['slug'] = YITH_WCQV_SLUG;

				if ( defined( 'YITH_WCQV_PREMIUM' ) ) {
					$new_row_meta_args['is_premium'] = true;
				}
			}
			return $new_row_meta_args;
		}

		/**
		 * Get the premium landing uri
		 *
		 * @since   1.0.0
		 * @author  Andrea Grillo <andrea.grillo@yithemes.com>
		 * @return  string The premium landing link
		 */
		public function get_premium_landing_uri() {
			return $this->premium_landing;
		}

	}
}
/**
 * Unique access to instance of YITH_WCQV_Admin class
 *
 * @since 1.0.0
 * @return YITH_WCQV_Admin
 */
function YITH_WCQV_Admin() { // phpcs:ignore
	return YITH_WCQV_Admin::get_instance();
}

Youez - 2016 - github.com/yon3zu
LinuXploit