Changeset 2761248
- Timestamp:
- 07/25/2022 03:38:47 PM (4 years ago)
- Location:
- seers-cookie-consent-banner-privacy-policy
- Files:
-
- 6 edited
-
trunk/css/cookie-style.css (modified) (4 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/seers-cookie-consent-banner-privacy-policy.php (modified) (12 diffs)
-
trunk/templates/admin.php (modified) (6 diffs)
-
trunk/templates/frontend-popup.php (modified) (3 diffs)
-
tsvnsync.tsex (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
seers-cookie-consent-banner-privacy-policy/trunk/css/cookie-style.css
r2752081 r2761248 765 765 padding: 10px 0px; 766 766 border-bottom: 0; 767 background: #fff;768 767 width: 100%; 769 768 text-align: center; … … 771 770 color: #999999; 772 771 font-weight: 500; 773 padding-left: 20px;774 padding-right: 20px;775 772 } 776 773 .pc-tab ul li label:hover { 777 774 /*background: #312a2a00;*/ 778 background: #FFF;779 775 } 780 776 .pc-tab ul li label:active { 781 777 /*background: #312a2a00;*/ 782 background: #FFF;783 }784 .pc-tab ul li:not(:last-child) label {785 border-right-width: 0;786 778 } 787 779 .pc-tab section { 788 780 clear: both; 789 781 margin-top:-5px; 790 background: #FFF;791 782 } 792 783 .pc-tab section div { … … 812 803 height: 2px; 813 804 width: 100%; 814 background: # FFF;805 background: #4273f8; 815 806 left: 0; 816 807 bottom: -2px; … … 1282 1273 } 1283 1274 /*accordion*/ 1275 1276 .showmessrelative{ 1277 position:relative; 1278 } -
seers-cookie-consent-banner-privacy-policy/trunk/readme.txt
r2752082 r2761248 17 17 == Description == 18 18 19 Seers CMP (Cookie Consent Management Platform) enables you to implement Cookie Banner/ Cookie Notice on your website. 20 Seers helps make websites compliant with GDPR (DSGVO), PECR and ePrivacy Directives. 21 Cookie Consent Plugin is intended to supplement individuals’ privacy rights and protections provided under all the privacy regulations in the European Union's GDPR, California's CCPA, Singapore's PDPA, South Africa's POPIA, UK's GDPR, Brazil’s LGPD, Canadian PIPEDA, Australia’s OAIC, China PIPL and more. 22 Obtain GDPR and ePrivacy Directive compliant consents, as well as services and cookies, and fill all your cookie banners with legal information. 19 Seers Cookie Consent Management Platform (CMP) enables you to implement Cookie Banner/ Cookie Notice on your website and helps businesses to achieve compliance with all the privacy regulations worldwide including European Union’s GDPR, California’s CCPA, Singapore’s PDPA, South Africa’s POPIA, UK’s GDPR, Brazil’s LGPD, Canadian PIPEDA, Australia’s OAIC, China PIPL and more. 20 Seers cookie plugin designed specifically for WordPress websites to simplify the setup and supports cookie compliance. It is a free and attractive way to get a Cookie Consent Banner, obtain consents, find cookies and trackers, record consent and fill all legal information in your cookie banner which is required to stay compliant. 23 21 The Seers Plugin is one of the best for WordPress GDPR Compliance which has features stated below: 24 22 … … 27 25 == KEY FEATURES == 28 26 29 • Configure a Cookie Notice for specific regions like the EU, the UK, the USA, Australia, South Africa, Brazil, China or Canada. 30 • Also, configure specific cookie consent for sub-regions such as the EU + GDPR/DSGVO/CNIL or the United States + CCPA. 31 • Scan your Website Cookies so you can quickly enlist the cookies your website is using in the cookie and privacy policy. 32 • Get Cookie Consent and Conditional Cookie Notice with Customisable Templates and Custom CSS. 33 • This cookie consent plugin adds a GDPR compliant cookie banner to your website at any position (header, footer, right, left, etc.) you would like. 34 • Banner templates for UK/US/CA/AU with accept, reject and customisation buttons are included. 35 • Automatically detects the requirement for a Cookie Banner or Cookie Notice and scans for updates in Plugins, Cookies, and third-party services regularly. 36 • With the support of this WordPress GDPR plugin, you can fully customise the cookie notice style so that it blends in with your existing website’s theme. 37 • It can modify the colors, fonts, styles, the location on the page, and even how it behaves when you click "Accept" or "Allow". 38 • Integrates with google consent mode and Interactive Advertising Bureau (IAB). 39 • Implementation of Google Analytics, Google Tag Manager, Clicky, Matomo, etc. Use Tag Manager and automatically anonymises IP addresses for Google Analytics if needed. 40 • Blocks third-party cookies (Google Maps, AdSense, Recaptcha, ActiveCampaign, HubSpot, Twitter, Facebook, Instagram, etc. ), iFrames ( YouTube, Dailymotion, Vimeo, etc. ) and social iFrames ( Facebook, Instagram, etc. ). 41 • Cookie Audit report to prove compliance and showcase what cookie your website uses. 42 • Explicit Consent. Accept, Reject & Setting. GDPR Article 7 43 • Comes with the Admin Panel to control all the settings related to displayed cookies and their description. Cookie Banner settings, sizes, wordings, etc. 44 • Cookie Database of 750,000 cookies pre-fill detected cookie data with clear and transparent cookie descriptions that are updated regularly. 45 • Compatible with all browsers including Chrome, Firefox, Safari, Explorer & Edge. 46 • Works with all the popular themes, including Divi, Elementor, and more. 47 • Seamlessly integrates with local or other popular plugins, for example, Gutenberg Google Analytics, Google Maps Widgets, WP Forms, WP Google Maps, Easy Digital Downloads, Contact Form 7, WPBakery, Woocommerce, Gravity Forms, Divi, Elementor, Foeminator, Beehive, GADWP, and many more. 48 • Support Options – Documentation and Online support 49 • Cookie compliance covers regional and sub-regional current and upcoming laws and regulations like, 50 51 1. EU GDPR (DSGVO): The General Data Protection Regulation 52 1. PECR: The Privacy and Electronic Communications Regulations 53 1. ePrivacy directive 54 1. France's CNIL: Commission Nationale Informatique & Libertiés 55 1. Canadian PIPEDA: The Personal Information Protection and Electronic Documents Act 56 1. California CCPA, USA: The California Consumer Privacy Act 57 1. Brazilian LGPD: The Brazilian General Data Protection Law 58 1. Australian OAIC: Australia’s Privacy Principles 59 1. Chinese PIPL: Personal Information Protection Law 60 1. Indian PDPB: Personal Data Protection Bill 61 62 • If you want more cutting-edge features, You can visit [Seers Pricing Plan](https://seersco.com/price-plan) and choose the Premium package. 27 * Configure a Cookie Notice for specific regions like the EU, the UK, the USA, Australia, South Africa, Brazil, China or Canada. 28 * Also, configure specific cookie consent for sub-regions such as the EU + GDPR/DSGVO/CNIL or the United States + CCPA. 29 * Scan your Website Cookies so you can quickly enlist the cookies your website is using in the cookie and privacy policy. 30 * Get Cookie Consent and Conditional Cookie Notice with Customisable Templates and Custom CSS. 31 * This cookie consent plugin adds a GDPR compliant cookie banner to your website at any position (header, footer, right, left, etc.) you would like. 32 * Banner templates for UK/US/CA/AU with accept, reject and customisation buttons are included. 33 * Automatically detects the requirement for a Cookie Banner or Cookie Notice and scans for updates in Plugins, Cookies, and third-party services regularly. 34 * With the support of this WordPress GDPR plugin, you can fully customise the cookie notice style so that it blends in with your existing website’s theme. 35 * It can modify the colors, fonts, styles, the location on the page, and even how it behaves when you click "Accept" or "Allow". 36 * Integrates with google consent mode and Interactive Advertising Bureau (IAB). 37 * Implementation of Google Analytics, Google Tag Manager, Clicky, Matomo, etc. Use Tag Manager and automatically anonymises IP addresses for Google Analytics if needed. 38 * Blocks third-party cookies (Google Maps, AdSense, Recaptcha, ActiveCampaign, HubSpot, Twitter, Facebook, Instagram, etc. ), iFrames ( YouTube, Dailymotion, Vimeo, etc. ) and social iFrames ( Facebook, Instagram, etc. ). 39 * Cookie Audit report to prove compliance and showcase what cookie your website uses. 40 * Explicit Consent. Accept, Reject & Setting. GDPR Article 7 41 * Comes with the Admin Panel to control all the settings related to displayed cookies and their description. Cookie Banner settings, sizes, wordings, etc. 42 * Cookie Database of 750,000 cookies pre-fill detected cookie data with clear and transparent cookie descriptions that are updated regularly. 43 * Compatible with all browsers including Chrome, Firefox, Safari, Explorer & Edge. 44 * Works with all the popular themes, including Divi, Elementor, and more. 45 * Seamlessly integrates with local or other popular plugins, for example, Gutenberg Google Analytics, Google Maps Widgets, WP Forms, WP Google Maps, Easy Digital Downloads, Contact Form 7, WPBakery, Woocommerce, Gravity Forms, Divi, Elementor, Foeminator, Beehive, GADWP, and many more. 46 * Support Options – Documentation and Online support 47 48 **Cookie compliance covers regional and sub-regional current and upcoming laws and regulations like:** 49 50 * EU GDPR (DSGVO): The General Data Protection Regulation 51 * PECR: The Privacy and Electronic Communications Regulations 52 * ePrivacy directive 53 * France's CNIL: Commission Nationale Informatique & Libertiés 54 * Canadian PIPEDA: The Personal Information Protection and Electronic Documents Act 55 * California CCPA, USA: The California Consumer Privacy Act 56 * Brazilian LGPD: The Brazilian General Data Protection Law 57 * Australian OAIC: Australia’s Privacy Principles 58 * Chinese PIPL: Personal Information Protection Law 59 * Indian PDPB: Personal Data Protection Bill 60 61 **If you want more cutting-edge features, You can visit [Seers Pricing Plan](https://seersco.com/price-plan) and choose the Premium package.** 63 62 64 63 … … 67 66 FREE Features PLUS 68 67 69 •Manage multiple websites under one admin panel70 •Google Consent Mode71 •Child Privacy Consent Management72 •Prior Consent. Cookies don’t fire till user consent. GDPR Article 573 •Cookie policy. Required by GDPR article 1274 •5+ Banner Layouts & Preset Designs75 •Scan Unlimited Subpages76 •Manages Cookie Categories and list of cookies such as CookieID, Name, Description, Type, Category, Duration, Header & Footer Script.77 •Full customisation of buttons, styles, colors, and fonts resembling your own website's theme and style.78 •Displays the cookie banner in the header, footer, as a pop-up, or as a widget.79 •Enables to display cookie notice settings popup where site visitors can give consent to cookie categories.80 •Automatically scans and blocks scripts such as Google Analytics, Google Tag Manager, Pixel, Instagram, Facebook, etc.81 •The consent analytics dashboard allows you to track how visitors' consents and make adjustments accordingly.82 •Improve your cookie banner acceptance rate by monitoring progress via a consent activity graph.83 •Enables users to have granular control over the cookies and scripts for websites.84 •Auto-update cookie consents when there is a change in the cookie policy.85 •Multi-Lingual Banners, automatically translate all banner text strings allowing custom translations – 30 languages86 •Detect Geolocation87 •Automatically generates cookie policy.88 •Banner as seen on UK’s Information Commissioner’s Office website89 •Branding – Own logo90 •Compatible with qTranslate, Polylang, WPML, etc.91 •Cookie declaration Table including cookies purpose. PECR – Reg 692 •Consent Log. Record users consent is required by GDPR Article 3093 •Customise Cookie Policy Design94 •Compatible with major caching plugins and servers such as WP Rocket, WP Engine, Bluehost, W3 Total Cache, SG Super Catcher, etc.95 •Pre-configured to prevent Dark Patterns through our unique Intentional Consent design.96 •CCPA Banner – Opt-Out option97 •World Class UK based Customer Support98 •In line with the regulator’s age-appropriate design & code of practice.68 * Manage multiple websites under one admin panel 69 * Google Consent Mode 70 * Child Privacy Consent Management 71 * Prior Consent. Cookies don’t fire till user consent. GDPR Article 5 72 * Cookie policy. Required by GDPR article 12 73 * 5+ Banner Layouts & Preset Designs 74 * Scan Unlimited Subpages 75 * Manages Cookie Categories and list of cookies such as CookieID, Name, Description, Type, Category, Duration, Header & Footer Script. 76 * Full customisation of buttons, styles, colors, and fonts resembling your own website's theme and style. 77 * Displays the cookie banner in the header, footer, as a pop-up, or as a widget. 78 * Enables to display cookie notice settings popup where site visitors can give consent to cookie categories. 79 * Automatically scans and blocks scripts such as Google Analytics, Google Tag Manager, Pixel, Instagram, Facebook, etc. 80 * The consent analytics dashboard allows you to track how visitors' consents and make adjustments accordingly. 81 * Improve your cookie banner acceptance rate by monitoring progress via a consent activity graph. 82 * Enables users to have granular control over the cookies and scripts for websites. 83 * Auto-update cookie consents when there is a change in the cookie policy. 84 * Multi-Lingual Banners, automatically translate all banner text strings allowing custom translations – 30 languages 85 * Detect Geolocation 86 * Automatically generates cookie policy. 87 * Banner as seen on UK’s Information Commissioner’s Office website 88 * Branding – Own logo 89 * Compatible with qTranslate, Polylang, WPML, etc. 90 * Cookie declaration Table including cookies purpose. PECR – Reg 6 91 * Consent Log. Record users consent is required by GDPR Article 30 92 * Customise Cookie Policy Design 93 * Compatible with major caching plugins and servers such as WP Rocket, WP Engine, Bluehost, W3 Total Cache, SG Super Catcher, etc. 94 * Pre-configured to prevent Dark Patterns through our unique Intentional Consent design. 95 * CCPA Banner – Opt-Out option 96 * World Class UK based Customer Support 97 * In line with the regulator’s age-appropriate design & code of practice. 99 98 100 99 -
seers-cookie-consent-banner-privacy-policy/trunk/seers-cookie-consent-banner-privacy-policy.php
r2752081 r2761248 52 52 //public $apibaseurl = 'https://cmp.seersco.dev/api/'; 53 53 //public $apibaseurl = 'https://seersco.backend/api/'; 54 //public $apibaseurl = 'https://seerscophp8.backend/api/'; 54 55 public $defaultfontsize = 12; 55 56 … … 324 325 update_option( 'SCCBPP_cookie_consent_lang', get_user_locale() ); 325 326 update_option( 'SCCBPP_cookie_consent_show_badge', (($seerscosettings && !empty($seerscosettings->has_badge)) ? $seerscosettings->has_badge : get_option("SCCBPP_cookie_consent_show_badge", "") ) ); 326 update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? $seerscosettingsbanner->agree_btn_color: get_option("SCCBPP_cookie_consent_agree_btn_color", "#3B6EF8") ) );327 update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? $seerscosettingsbanner->disagree_btn_color: get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) );328 update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? $seerscosettingsbanner->preferences_btn_color: get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) );329 update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? $seerscosettingsbanner->banner_bg_color: get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) );330 update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? $seerscosettingsbanner->body_text_color: get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) );331 update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? $seerscosettingsbanner->agree_text_color: get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) );332 update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? $seerscosettingsbanner->disagree_text_color: get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) );333 update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? $seerscosettingsbanner->preferences_text_color: get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) );327 update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? trim($seerscosettingsbanner->agree_btn_color) : get_option("SCCBPP_cookie_consent_agree_btn_color", "#3B6EF8") ) ); 328 update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? trim($seerscosettingsbanner->disagree_btn_color) : get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) ); 329 update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? trim($seerscosettingsbanner->preferences_btn_color) : get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) ); 330 update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? trim($seerscosettingsbanner->banner_bg_color) : get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) ); 331 update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? trim($seerscosettingsbanner->body_text_color) : get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) ); 332 update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? trim($seerscosettingsbanner->agree_text_color) : get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) ); 333 update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? trim($seerscosettingsbanner->disagree_text_color) : get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) ); 334 update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? trim($seerscosettingsbanner->preferences_text_color) : get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) ); 334 335 update_option( 'SCCBPP_cookie_consent_body_text', (($seerscosettings && !empty($seerscosettings->body)) ? $seerscosettings->body : get_option("SCCBPP_cookie_consent_body_text", '') ) ); 335 336 update_option( 'SCCBPP_cookie_consent_accept_btn_text', (($seerscosettings && !empty($seerscosettings->btn_agree_title)) ? $seerscosettings->btn_agree_title : get_option("SCCBPP_cookie_consent_accept_btn_text", '') ) ); … … 353 354 'platform' => 'wordpress', 354 355 355 'agree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_btn_color)) ? $seerscosettingsbanner->agree_btn_color: get_option('SCCBPP_cookie_consent_agree_btn_color', '#3B6EF8' )),356 'disagree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_btn_color)) ? $seerscosettingsbanner->disagree_btn_color: get_option('SCCBPP_cookie_consent_disagree_btn_color', '#3B6EF8' )),357 'preferences_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_btn_color)) ? $seerscosettingsbanner->preferences_btn_color: get_option('SCCBPP_cookie_consent_preferences_btn_color', '#FFFFFF' )),358 'banner_bg_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->banner_bg_color)) ? $seerscosettingsbanner->banner_bg_color: get_option('SCCBPP_cookie_consent_banner_bg_color', '#FFFFFF' )),359 360 'body_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->body_text_color)) ? $seerscosettingsbanner->body_text_color: get_option('SCCBPP_cookie_consent_body_text_color', '#000000' )),361 'agree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_text_color)) ? $seerscosettingsbanner->agree_text_color: get_option('SCCBPP_cookie_consent_agree_text_color', '#FFFFFF' )),362 'disagree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_text_color)) ? $seerscosettingsbanner->disagree_text_color: get_option('SCCBPP_cookie_consent_disagree_text_color', '#FFFFFF' )),363 'preferences_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_text_color)) ? $seerscosettingsbanner->preferences_text_color: get_option('SCCBPP_cookie_consent_preferences_text_color', '#000000' )),356 'agree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_btn_color)) ? trim($seerscosettingsbanner->agree_btn_color) : get_option('SCCBPP_cookie_consent_agree_btn_color', '#3B6EF8' )), 357 'disagree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_btn_color)) ? trim($seerscosettingsbanner->disagree_btn_color) : get_option('SCCBPP_cookie_consent_disagree_btn_color', '#3B6EF8' )), 358 'preferences_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_btn_color)) ? trim($seerscosettingsbanner->preferences_btn_color) : get_option('SCCBPP_cookie_consent_preferences_btn_color', '#FFFFFF' )), 359 'banner_bg_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->banner_bg_color)) ? trim($seerscosettingsbanner->banner_bg_color) : get_option('SCCBPP_cookie_consent_banner_bg_color', '#FFFFFF' )), 360 361 'body_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->body_text_color)) ? trim($seerscosettingsbanner->body_text_color) : get_option('SCCBPP_cookie_consent_body_text_color', '#000000' )), 362 'agree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_text_color)) ? trim($seerscosettingsbanner->agree_text_color) : get_option('SCCBPP_cookie_consent_agree_text_color', '#FFFFFF' )), 363 'disagree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_text_color)) ? trim($seerscosettingsbanner->disagree_text_color) : get_option('SCCBPP_cookie_consent_disagree_text_color', '#FFFFFF' )), 364 'preferences_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_text_color)) ? trim($seerscosettingsbanner->preferences_text_color) : get_option('SCCBPP_cookie_consent_preferences_text_color', '#000000' )), 364 365 365 366 'font_style'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->font_style)) ? $seerscosettingsbanner->font_style : get_option('SCCBPP_cookie_consent_font_style', '' )), … … 498 499 499 500 500 if ($existEnablePolicy != '') { 501 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 502 } else { 503 add_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 504 } 505 506 if($enable_policy == "true" || $enable_policy == true ){ 507 508 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 509 if ($existUrl != '') { 510 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 511 }else{ 512 add_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 513 } 514 515 echo __('Cookies policy added successfully.', $this->textdomain); 516 } 501 502 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 503 504 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 505 506 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 507 508 509 echo __('Cookies policy added successfully.', $this->textdomain); 510 517 511 }else{ 518 512 echo __('Some thing went wrong. Please check url and try again', $this->textdomain); … … 530 524 531 525 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy'); 532 533 534 if ($existEnablePolicy != '') { 535 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 536 } else { 537 add_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 538 } 526 527 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 539 528 540 529 if($enable_policy == "true" || $enable_policy === true ){ 541 530 542 531 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 543 if ($existUrl != '') { 544 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 545 }else{ 546 add_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 547 } 532 533 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 548 534 549 535 echo __('Cookies policy added successfully.', $this->textdomain); 550 536 } else { 551 537 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 552 if ($existUrl != '') { 553 update_option('SCCBPP_cookie_consent_policy_declaration_url', ''); 554 } 538 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 539 555 540 echo __('Cookies policy added successfully.', $this->textdomain); 556 541 } … … 600 585 if ( !is_wp_error( $result ) ) { 601 586 $response = json_decode($result['body']); 587 602 588 603 589 if ( !empty($response->bannersettings) ) { … … 661 647 ) 662 648 ); 649 663 650 if ( !is_wp_error( $result ) ) { 664 651 … … 1051 1038 $seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://cdn.seersco.com/banners/' . $bannerid1 . '/' . $bannerid2 . '/cb.js" type="text/javascript"></script>'; 1052 1039 //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seersco.backend/script/cb.js" type="text/javascript"></script>'; 1040 //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seers-banners-local.s3.eu-west-2.amazonaws.com/banners/' . $bannerid1 . '/' . $bannerid2 . '/cb.js" type="text/javascript"></script>'; 1053 1041 } else { 1054 1042 $seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://cmp.seersco.com/script/cb.js" type="text/javascript"></script>'; … … 1057 1045 //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://cmp.seersco.dev/script/cb.js" type="text/javascript"></script>'; 1058 1046 //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seersco.backend/script/cb.js" type="text/javascript"></script>'; 1047 //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seerscophp8.backend/script/cb.js" type="text/javascript"></script>'; 1059 1048 } 1060 1049 … … 1083 1072 1084 1073 let isvalueset = localStorage.getItem(concentname); 1074 var params = "action=savecookie&save=n"; 1085 1075 1086 1076 if (!isvalueset) { 1087 1077 1088 1078 1089 var params = "action=savecookie&save=n";1079 1090 1080 httpRequest = new XMLHttpRequest() 1091 1081 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") … … 1102 1092 } 1103 1093 1094 } else { 1095 //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry. 1096 let isvalueset = localStorage.getItem(concentname); 1097 let storval = JSON.parse(isvalueset); 1098 let expirydat = storval.expiry.split("="); 1099 var expirydate = new Date(expirydat[1]); 1100 var todaydate = new Date(); 1101 1102 if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) { 1103 1104 httpRequest = new XMLHttpRequest() 1105 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") 1106 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 1107 httpRequest.send(params); 1108 // beforeSend: 1109 httpRequest.onreadystatechange = function() { 1110 // Process the server response here. 1111 if (httpRequest.readyState === XMLHttpRequest.DONE) { 1112 // complete: 1113 //let data = JSON.parse(httpRequest.response) 1114 location.reload(); 1115 } 1116 } 1117 1118 } 1104 1119 } 1105 1120 … … 1238 1253 update_option( 'SCCBPP_cookie_consent_lang', get_user_locale() ); 1239 1254 update_option( 'SCCBPP_cookie_consent_show_badge', (($seerscosettings && !empty($seerscosettings->has_badge)) ? $seerscosettings->has_badge : get_option("SCCBPP_cookie_consent_show_badge", "") ) ); 1240 update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? $seerscosettingsbanner->agree_btn_color: get_option("SCCBPP_cookie_consent_show_badge", "") ) );1241 update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? $seerscosettingsbanner->disagree_btn_color: get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) );1242 update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? $seerscosettingsbanner->preferences_btn_color: get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) );1243 update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? $seerscosettingsbanner->banner_bg_color: get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) );1244 update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? $seerscosettingsbanner->body_text_color: get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) );1245 update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? $seerscosettingsbanner->agree_text_color: get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) );1246 update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? $seerscosettingsbanner->disagree_text_color: get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) );1247 update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? $seerscosettingsbanner->preferences_text_color: get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) );1255 update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? trim($seerscosettingsbanner->agree_btn_color) : get_option("SCCBPP_cookie_consent_show_badge", "") ) ); 1256 update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? trim($seerscosettingsbanner->disagree_btn_color) : get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) ); 1257 update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? trim($seerscosettingsbanner->preferences_btn_color) : get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) ); 1258 update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? trim($seerscosettingsbanner->banner_bg_color) : get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) ); 1259 update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? trim($seerscosettingsbanner->body_text_color) : get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) ); 1260 update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? trim($seerscosettingsbanner->agree_text_color) : get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) ); 1261 update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? trim($seerscosettingsbanner->disagree_text_color) : get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) ); 1262 update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? trim($seerscosettingsbanner->preferences_text_color) : get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) ); 1248 1263 update_option( 'SCCBPP_cookie_consent_body_text', (($seerscosettings && !empty($seerscosettings->body)) ? $seerscosettings->body : get_option("SCCBPP_cookie_consent_body_text", '') ) ); 1249 1264 update_option( 'SCCBPP_cookie_consent_accept_btn_text', (($seerscosettings && !empty($seerscosettings->btn_agree_title)) ? $seerscosettings->btn_agree_title : get_option("SCCBPP_cookie_consent_accept_btn_text", '') ) ); -
seers-cookie-consent-banner-privacy-policy/trunk/templates/admin.php
r2752081 r2761248 65 65 margin-top: 0px; 66 66 /*font-size:18px;*/ 67 position: absolute; 68 left:220px; 67 69 } 68 70 … … 71 73 margin-top: 0px; 72 74 /*font-size:18px;*/ 75 position: absolute; 76 left:220px; 73 77 } 74 78 … … 230 234 <p><?php echo __('Trust worlds leading privacy and consent management platform to help companies comply 231 235 with GDPR, PECR, CCPA and ePrivacy', $this->textdomain); ?></p> <a href="https://seersco.com/price-plan" 232 class="btn btn-green-bg"><?php echo __('START PREMIUM TODAY', $this->textdomain); ?></a>236 class="btn btn-green-bg" target="_blank"><?php echo __('START PREMIUM TODAY', $this->textdomain); ?></a> 233 237 </div> 234 238 <div class="seers-content-col tile-style"> … … 244 248 <li class="text-white"><?php echo __('Banner Customisation', $this->textdomain); ?></li> 245 249 <li class="text-white"><?php echo __('Cookie Declaration Table', $this->textdomain); ?></li> 246 </ul> <a href="https://seersco.com/price-plan" class="btn btn-green-bg" ><?php echo __('START PREMIUM250 </ul> <a href="https://seersco.com/price-plan" class="btn btn-green-bg" target="_blank"><?php echo __('START PREMIUM 247 251 TODAY', $this->textdomain); ?></a> 248 252 </div> … … 517 521 <div class="seers-pr"> 518 522 <textarea class="seers-textarea" rows="4" cols="50" name="body_text" 519 id="body_text"><?php if(get_option('SCCBPP_cookie_consent_body_text') && get_option('SCCBPP_cookie_consent_body_text')!=''){ esc_html_e(get_option('SCCBPP_cookie_consent_body_text')); }else{ esc_html_e( "We use cookies to ensure you get the best experience" );} ?></textarea>523 id="body_text"><?php if(get_option('SCCBPP_cookie_consent_body_text') && get_option('SCCBPP_cookie_consent_body_text')!=''){ esc_html_e(get_option('SCCBPP_cookie_consent_body_text')); }else{ esc_html_e( "We use cookies to ensure you get the best experience", $this->textdomain);} ?></textarea> 520 524 </div> 521 525 </div> … … 723 727 724 728 <div class="seers-pl"></div> 725 <div class="seers-pr ">729 <div class="seers-pr showmessrelative"> 726 730 <p id="setting_message_success"></p> 727 731 <p id="setting_message_error"></p> -
seers-cookie-consent-banner-privacy-policy/trunk/templates/frontend-popup.php
r2752081 r2761248 18 18 <?php if(get_option('SCCBPP_cookie_consent_font_size') && get_option('SCCBPP_cookie_consent_font_size')!=''){ echo ("font-size: " . get_option('SCCBPP_cookie_consent_font_size') . "px !important;"); }else{ echo ("font-size: " . $this->defaultfontsize . "px !important;"); }?> 19 19 } 20 a#seers-iagree, a#seers_allow_all {20 a#seers-iagree, a#seers_allow_all, a#savemychoice { 21 21 <?php if(get_option('SCCBPP_cookie_consent_agree_btn_color') && get_option('SCCBPP_cookie_consent_agree_btn_color')!=''){ echo("background: " . get_option('SCCBPP_cookie_consent_agree_btn_color') . ";"); }else{ echo ""; }?> 22 22 <?php if(get_option('SCCBPP_cookie_consent_agree_text_color') && get_option('SCCBPP_cookie_consent_agree_text_color')!=''){ echo("color: " . get_option('SCCBPP_cookie_consent_agree_text_color') . ";"); }else{ echo ""; }?> … … 1795 1795 <div class="seers-cmp-policy-banner-text-large-block"> 1796 1796 <p class="seers-cmp-policy-banner-text"> <?php if(get_option('SCCBPP_cookie_consent_body_text') && get_option('SCCBPP_cookie_consent_body_text')!=''){ esc_html_e(get_option('SCCBPP_cookie_consent_body_text')); }else{ esc_html_e( "We use cookies to ensure you get the best experience", $this->textdomain);} ?> </p> 1797 <?php if(get_option('SCCBPP_cookie_consent_enable_policy') && get_option('SCCBPP_cookie_consent_enable_policy')=='true' || get_option('SCCBPP_cookie_consent_enable_policy')=== true){?><a href="<?php if(get_option('SCCBPP_cookie_consent_policy_declaration_url') && get_option('SCCBPP_cookie_consent_policy_declaration_url')!=''){ if (filter_var(get_option('SCCBPP_cookie_consent_policy_declaration_url'), FILTER_VALIDATE_URL)) {esc_html_e(get_option('SCCBPP_cookie_consent_policy_declaration_url'));} else {echo "#";} }else{ echo "#"; } ?>" target="_blank" class="seers-cmp-policy-banner-read-cookie"><?php echo __("Read Cookie Policy", $this->textdomain);?> <svg viewBox="0 0 32 40" x="0px" y="0px"><path d="M32 0l-8 1 2.438 2.438-9.5 9.5-1.063 1.063 2.125 2.125 1.063-1.063 9.5-9.5 2.438 2.438 1-8zm-30 3c-.483 0-1.047.172-1.438.563-.391.391-.563.954-.563 1.438v25c0 .483.172 1.047.563 1.438.391.391.954.563 1.438.563h25c.483 0 1.047-.172 1.438-.563.391-.391.563-.954.563-1.438v-15h-3v14h-23v-23h15v-3h-16z"></path></svg>1797 <?php if(get_option('SCCBPP_cookie_consent_enable_policy') && get_option('SCCBPP_cookie_consent_enable_policy')=='true' || get_option('SCCBPP_cookie_consent_enable_policy')=== true){?><a href="<?php if(get_option('SCCBPP_cookie_consent_policy_declaration_url') && get_option('SCCBPP_cookie_consent_policy_declaration_url')!=''){ if (filter_var(get_option('SCCBPP_cookie_consent_policy_declaration_url'), FILTER_VALIDATE_URL)) {esc_html_e(get_option('SCCBPP_cookie_consent_policy_declaration_url'));} else if (filter_var(gethostbyname(get_option('SCCBPP_cookie_consent_policy_declaration_url')), FILTER_VALIDATE_IP)) {echo "http://" . get_option('SCCBPP_cookie_consent_policy_declaration_url');} else {echo "#";} }else{ echo "#"; } ?>" target="_blank" class="seers-cmp-policy-banner-read-cookie"><?php echo __("Read Cookie Policy", $this->textdomain);?> <svg viewBox="0 0 32 40" x="0px" y="0px"><path d="M32 0l-8 1 2.438 2.438-9.5 9.5-1.063 1.063 2.125 2.125 1.063-1.063 9.5-9.5 2.438 2.438 1-8zm-30 3c-.483 0-1.047.172-1.438.563-.391.391-.563.954-.563 1.438v25c0 .483.172 1.047.563 1.438.391.391.954.563 1.438.563h25c.483 0 1.047-.172 1.438-.563.391-.391.563-.954.563-1.438v-15h-3v14h-23v-23h15v-3h-16z"></path></svg> 1798 1798 1799 1799 </a><?php } ?> … … 1939 1939 1940 1940 if (days) { 1941 let expirindays = <?php echo ((get_option('SCCBPP_cookie_consent_cookies_expiry')) ? get_option('SCCBPP_cookie_consent_cookies_expiry') : 0 );?>; 1941 1942 var date = new Date(); 1942 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 1943 expires = "; expires=" + date.toGMTString(); 1943 //date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 1944 //expires = "; expires=" + date.toGMTString(); 1945 1946 if (expirindays < 1) { 1947 expires = "; expires="; 1948 } else { 1949 days = expirindays; 1950 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 1951 expires = "; expires=" + date.toGMTString(); 1952 } 1953 1944 1954 } 1945 1955 -
seers-cookie-consent-banner-privacy-policy/tsvnsync.tsex
r2752081 r2761248 1 c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff2332e5b41b630be3b0b98ec47c95ae98fca1c27c1a30ed06a7d8d9b25e154131d57dca2e27bda4c08110b2a81e6d3c1dae545fc1efd83acf094624351c4fa7d194160f9275a7d977a3f955644724e79d33e3edcf39c5bff9e1846046346af0b463bfced1b0e524354b07b7d2be61bf4f9bc6b61cba6f6808034fd8716de2e766550c46ef21221e2e96e65e6f9ee16118cf769a635ac121a5b709e26daf78d8c5b6af074ca5b7532daa2e8cceb4f7035996509a62bea7302ef4b1880fe5d0e72379 6b721c485b1ca7addad6bcb3917bf8712c088559b99809a75b5640ab488421055b763df579028bd13def37093b67456ec8db05a2ccd852e76317d63cb1fe241ba6de3941375e8f2882307a950c546ececb0ffd90f369cd51a4fe1a3eff2d898951479904ac8b6c46fbf14a9216de69b8cf88580431dc83b1f96444f1b9e4c7b7e5c5027bd0ba572f0ed6eeb4b394109483b293ada4d786c3e56905c29a24b2f85a9efc1e0da3bca625f772e418fdd71c423d4d06223abd4d2374f0a45f67f3eb3acbee1e7dda637f7452de916f87c35fe6ef89ea6ad61fd687e4b32d8112ca199ecb22821e08896d70996cf34f27e6855f546183c102f56df7852e9741cbd911c2326fc7147b2e0a6240d1bd9ac80a953a73dcd7ae9ba8051c21e1f409a8f63afdc5d00fd85692bca009e5a06c54a566954d3feda9c2316456bc84a541b4fdfb0d13f7443a0b6160543ef4b63f778e7284a9be2b0643409151e456b60054bf7b36b58387c9bf9e30ccd6e28a4730a5d1e6a9a61682d9eea5095c4f26298b59515813b3649273dc7d9dfb77b6fe85b2ece2da34fcd71f79d9724d799809865b61a92923f5f29a5cc43cc620cddfb089e968101fbf7b8e7cbfb88452985f5e89fd59d930712b99424953a4a6f26ec4a5866568912e59b1137d58b602ff136c90f9fcf1dcab18f9adfdca80724217346123512b48951324fd3ba26e8039c5266975f36c854f09a5b3e20abcd351193501b56ab1c574c3d79f439396bf66d7f2283ffb35f81694c98ad020abe1401cf44b44cba7cc57c30ff80fa811fdfcad57316fafd83286c046e3e1d14949114fdff826842842f225d91d03057bf63152b47ea7c6544446ff6a57e610d65869873e465a5f3f132cf9bafaf2992a628bb651e6c5709cf2bcd3bde339ffca64263f7ed1c3e401a06ed9a06365b8f88aeecd7edcd4d1fc1b01c7ff1e7b1bd163a7a7f235704d97f97d814816e7ca8e183c75ce496817ecf7c610f80901162fe1319b2fb10b2ee6c34000e5de11769c50b65530edc204728b769c3e13efc7189c4c51b19f2f4556484406d5c7c4c6c3ee8d2dececf3f85fafe839bf17075800488ed9b5f439a246bf995a139c644f9b490019758f52a5e4c2372898e4ff2a8c74a6961fa0f3b24dd5e7769baaacc59bffd90be3ed7664cf3b22330550afaf00bd0904693fadf71a2fc2a7d925a179069577d5de55cc4135e04edbf540b4026bf11c0a33d10ffe8302c8efbf2fd9674f9ea7e4d3339ab4df21d03f5db78506bca2643cce54ad8cac1bdbcbb1c979b54e393d36b67c132d753f71146b46a632117d1c7021140c44604c2fc681a4a82211e494285c2791d91ad822b99af3f52af621c5893aea3cfcb04293a8793655c971b82871d9287fd23b05f8b88cdad3e82980ab1261eb3152fd7d3c820f4f8393283a69b6df481458d3f0214bde6d044e43efc11a00aee9c492c02b70b1f31215c0a87a698445a8e830018098486f8fda89046f5eeca8d20d2caa6a2a7eb315b294bc338247074c47362b1912ce01c6f93a715cdb2fd435489dc18e620544189629e81fbe7292221266445e0ed735281422c2d710b90df183ec2dafadeb4f7f9a67270a2cbdab2b32347cf40a271f44ee9d227bca93dba4365827c928580c147fbdefea65e8cc8b5cb24145cb22389615e3e893e125092adb9161e0d4a2c199b8a47cf97e8448209a933f7bf8fd868086c00a5525b2392bcdd5b8e042f599258cf35fda1168793d1f5f578d0e8510e61864a77764872aff351a23f1138e4444acee0bac05c48d8ccf8aadd58c72f104a33e55fb8593f932272d829f87a8c761b02e22328af6e93516911f09334b81b91bdea86d76711cb55e757aedf87b22ebbf873ceecc65adeb8c4cc0c1f606b22fcea897a56ce0b62dac4cfceb4cb2bfc7e8d1d401c8ed92f95ca8958f3f37e95ec1170340b4e0ea984428e22631580723b35b16792a22a07c7786c8ee845e67fa1075461c71d88f7a154375e929c59f5b66a39135af945093f1b3d6e931d2c53ade916e7415b6493c5e6b2d161a4268e0cbf52d6b42b9689429e2c84bdc2035fe6696187c13dba91277ceeef6f061834d9039801c1cc8457c76e57453e0f5f66837467c30d678a7eb63a747a647092713d1dd7fb83109f667ddbd92fc38ffe40d2e42514133180461f0597bfa9cfdd518c7a32e837b0bb5f6fe220fb45683fae4342e42df00aa3b4d55dc22b1da437988256a739b6c3dac2586df170058e1d950090871d0f8d25b1a663687ba3cdc1cfc45e1fb91d9d40b5f1cdbda1a84743bafeebc770021259c33cdc5b1c7363253cf35769c2bd86e257a198762a024aa7a4d92ed17af9b7adae30a830ce760897c7c9c3c95afd3d76b0d0bffaf30b919976f98cc366e2a6c3c02dbab1a90e1f769ff0ff6b4557e1cac3f864de48405313ecd3a5ffd114440ce15446605f40db18365b5842a00e8dc125ec29b35cc3f4faea1ba491c5d7bde2e61787baeb1f47c7cd11e66b7711e6001b8e4a2d6a1911673d5a5d988069371ffcf01afbf3d4b2b85217055a3fc47e643e2725a537fe23cc25e523e3e9c416a30de406fb2fd0c47785cadaddc3d3a981ae7aa1d46413b7ec2c690c5ae47aef17f8cd015cbe9519d877c86784d67bbb24d55c4f8fbf096ee5853be9207e9168bc09f3065bfe8c7081020f0f6028a519954f1217a0b39a1e926eb5333cf17f81dadf3d471beb9d3a12197088613a70c3f67ed5d96f9620e972a7e0208a59e4c4bfeb44ada55c3833e75ac70cd5c54659a6c279317a85dea530dc5d0f8a2ee32a3d30fad3e22e5221445edb3650cad5f40bcc7dddae0b76797155ae92fcfd980ecde7fc6dc08e0d0261421e5712f8c378166cf27ec92c0dd6e5f50697ab62cf50cc66fc1acb0d93ddbdf09d7e8e6e5d87714a4797d363e24b56d97428531ea8f09a937c134557982abd7d4756b0d600132797263f97e4c45633ccdb07103cab30175e4e15aa2e4dea4796d3149e0bd8b676311cd077c484a024d1f84b5194b9eae10e217dd77608224adfe30b749f1786c93b4417b52f09ea505a49691b721967f333731804d1e1e5a607133f3138ab4c1f6dec298baa263b46850c94b86a092c3010dad17d8fd21cf64330157c5c0084003030c328e41c659645785a093c022d1da8cf8c34153eed98cde7176e363d1947766235ef6001ee25e6f3ab8f48acc586547bcb9693ad312c61b0b860f8490bee12a7551f5905af220e31858fd5ddbce56b6a4d5349b2d88dd7eeff8284773c4f96b25e9d840bc05d75fde3e018b2fec8ae5a9fb67431f8424a56483dbfa440f4821f45917698a464b9f33428ce93115e5028915d8c2ba2943b69b1f92a95fba656bbc86d69e5db614d72ac1d42f1bc8492dacbe5030a3ab8596e6a81d0576493f7504bdcb5592457c85bb728801a0b9a306f896659bba6c99526991e12e3604fa72a710f8eeb5da80b396a0b0be4a0d69380ac5ee47bc4121290a6aecbc78bb1fde30633a81da71bb752ed38f95ee4f3ade3a7bd12160b40a8d1fe8c6a5917f4f2fd6fea0ac8fbd6c65d68b5c39d018de97979b610e4f2312f7c6393a630c2a6987f1ad02d45d8bf1b6c5ae11f24649c302a8a0a9f13ec6358734d50b3fe2c0b5b018b0d7e3acbfd2496f8e08a1fc0481e46b554b14744d992a7d27d02b36853cb58116d2efaa13b4934663d0fbc108143233942e3eb0f246440b270f27bb3de2c7df3eec565f8b19b401bfe4d76c951fdd1361662415f2ab9808e590a708f47b17dfd6b6a903af4591b6cc3be13609c20eaff345d2c75d398688563e7401d364befc8150944c89b3f88748592bf8c413197da26a8101b9d895f914979ffdc550e0a2d4cac90720417550d42e217f31d78fd0f40c0c422fe45c42141d2d2e1669cf10bfb541ffa8526661eefa86f25b0dbe08024e42a5046509338a56e4804618cd44d48d36e95f0f7061a46ae602ca249688667892c85941e6b7f844986d0e0ab95ec227bdf75989ad98043fe4b710ee4d63a30c6d34658350e0a0dfb38dd6f3ca9b13f28de64530cf8fc7fbaaa0511a362625507e04fb843b87a8d1e493ea37efea93c447c72c1552dfe5113a1013cc54ed9b228ce1547ec7964e586254ac2a24b8af6440a7afee7b2f8a1a35d579f4b0df24f9b76ee83887d59dd7a1d6e3b68a140dde994c6b354b4b9320fb6e7ef4b33c7de75f53439e8c207e68ebeed24bc760fda26b5cbaa3add7b8ed38888d8c534e138e94ddb512b478ac9dc9f801510cdf19da497919074a041f4b3659569e8abdbe5e482b0591a54958afb69c7aa7026e7e0e7de11d4114f23aa960fb68ca03ba51799468397db3bde27a545da47e56f86eb27b66e3d8c069f6ad62bb67fce5fd903c9387b51db55fd43ece10122429fd43d8f50e7c71568c7fc1d065c6e588130deee1a738860ae9648549d26852fad3fabb157ecb71cba59e1893ec00ab5529429c4ea2dcde72f9310638b9b1f797efc493640cfa29c1527758d3a709eee2b9b44521f9cf671f445f383f36bec539fe7f56a858d5e57071e28c8707ffda89a13a6695d13d8f75e7e6f6716c0de58f35ac24064b1ba41a7d11605c053f7211bdb1d5fc145caefb937fc745e9eebd38d3b959d29753acbfb2b4f3485fc88e11cac261405fe79d9126e2b96eeda8d5e9fc007c63e1e134cae7350c22f2cd9f8e2e087ef057b11505bf1b44b164b8051758299e7c89a238384822f54be09fcf6011fe8b092d12814a080bb76da6d83f6d60fcf76b0d5e5ac5b2971ea3a204828816fb02f0451cb5e4cd8bf20544a5a90e6fb91d8df748cac252d47abdd27af866eaff26239c102a688cf514a1e986a7eb3323b3bd9c17c61515e7acc3acef7cc80cab6cfdc5f08bb782ca19b2002e9c1716fd1e37eca781134e9c7eadd02d54655f98950ce25c8550c83322223e48f11e96ad3457bf5927a3e1db6223d1650ff98877a316e3f54fe16fe4886fcc8bd65a5849511923a14a8e82e1b36a0dc509122079b3980846bd3dd5f6e4f938acdadb4a86da3b0f3b39f4e025418e657758d87ae81325fd6b3aa8db26239fcc0550d14f39c746c57f7c8995673cda4faf3ea04ef5f8ad8809bfc341fb5eb7292383ddaf3325442d576c0fa06d535c15c8ee3ff7480042e844cb6b0ec0c22aced7d84738667210f009acdb37c60bc91018321f5d4b32d76c92c5e16e7795d415d96c8b601405da9975b0f296cac0bf3fae129fd1b14f1e276b287108c4b0a04f6c0b5634b18ff47d0ac2b491e9db3a00dcef77010cc5c460bd7b28e327627e36888f286f2c2b28483f03a2a7298fd14346c3d3b616815518d1a9725f17cd92b8f135a4f45c69c2edf359063be68f186e4a8d559d796bfc2ba54ea1ae11983c961529e27a63c94975ea1db7122a03b0bb0bcf2a8c9f9ec0810a195d4d22f6fcca82a31551d1085577f49021d0a163e63f6422569ca4e0263f586eed92b3a79bea9911f59a44c227a41114f8ec85504380caacafc5b5de694027ffdd25e6e38a99e8f134a168023217a28d87162004aea62f338e958a6b4bf2ccdf5857a6e1a9532ba6b1274e1350747cae04ea46e69440a41b4a1969324940b1137b0ca476ad1d19417ad8223aa56e665f12b054d55eedf4cb2e5536300427acddec633dc31804303d851784bc4925156d9c5b982a5a96f5700770acb9fc370716bdc7167f92fdf5d6aaf99415592cfc8fd51ebdcb8dd31af132343a74f261e3f782c0243b5ede4a945bac4a7df850558c7a53158b6407a78b33aa2af5bf5aca56fe7d325fa38899b3c0ba864f51eea939a5b57efbeea23e6197659cc3a80186577a8d23b164009ccdc4957474786795369d15e2f4ce8577410e087337a02ebe4e9028283f482b25fcd54e8cddec9c9211e1aec03d8a1abb71a6371425570947c868edb5bb8ef81355ec51bde0956f102f10c4e1e7a13e45eb3ff0a6e3f7b54fd0c1c625b3d24bfda95cf4795fd632abdeeee54be8ff9abc0190d1950e8d6e7c4d207425a157dacdee3f441df95f845383dd5cb9b89b352b04bfa3901e73e6d7e263975c3fcdea89261 c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff2332e5b41b630be3b0b98ec47c95ae98fca1c27c1a30ed06a7d8d9b25e154131d57dca2e27bda4c08110b2a81e6d3c1dae545fc1efd83acf094624351c4fa7d194160f9275a7d977a3f955644724e79d33e3edcf39c5bff9e1846046346af0b463bfced1b0e524354b07b7d2be61bf4f9bc6b61cba6f6808034fd8716de2e766550c46ef21221e2e96e65e6f9ee16118cf769a635ac121a5b709e26daf78d8c5b6af074ca5b7532daa2e8cceb4f7035996509a62bea7302ef4b1880fe5d0e723794ca8840ee79ac52d96cd3d76d50577df12ccfcf3c0455236601ac8c2a168a95acb7c4f9d17a90b1ffd6d5e4f7917781c7379fa2699032d7732490fc381cddebb045005745c4955d8807e354447755abab86c30ffda45d90cb092f2a873fb45626f6fd41cd42123fdf085e71013714dfb1f6c810abddc59bcf23263d3dc20a9132f93a1dcab397344b549192e0fa3f1209be0bbd1a49b0c21907cda6dc243887ce9c0f98bb7e696c9e02a4f21224b0a204bb7cfcbc2e9419cbac752f010d0e2d2235ae497b14be1ca4737a4f4190a9b6ba31124ab5247de91fcd3301f0bef967fe7494857b1b7ebd35c051d524c67737c358b6a0948c570135eaaedbe02a8c3eae23ae2376f0a0f83b7e4506ec57571a75b1d576dba8884c5733a9e5e2fd63e6df554e0c1243b818e6265555dfaef9ce73b4f4542545053cb9eea704f85a91e84566209e6ef0d7fa9b0e4a62490d04af31174765e6f5ca7659ca106732077506597c7194e004e155c8a42347f87fb3dcc8047be4bfa49106eb5b5c5634c84808cdcf9844d955bb25f4fd362387e74b260e8211d01ae0ae32bfc3ac6e56bad269f15361c3d6091ccfcff47e8c7e5951ce60afd84416d4d44f007b86420d7a527ef511a493e56a1687088b4f4df98899d27088eb6935b5ccd684441ed11439ea923a70776a42f25c3dd91ccc6363ff5d304b616b3472c01cea6cf5174bc5a5f82ac31fdbf2fbd3887e22838203e0ee4a603572ec9205c509a2a44b5f27f47f9ead11db93cd45b0c9630c87e3da2bfe84febaada08936a8e5e3c5213cbeaaf42e34dcb75d86c946cbf12bf1a1b39a5578ec3889a7a7c7abbf3a81d40b533f3a180d36fd8b02e9b685bfdc89b658e939da711692c2add047f4c08e7634b4a0c340fa75a0b85af73c428db17f83eecc285d76a9a56cdbf1039acf873b39d3c7d631d7289dd9e65b13427a02021e9dc251e9c5c61622e0a3e3ae3602338da44da26a0fdae0e43c55cdccda66b08027a2b1adb7512b6be056d3071993439690f7f58b55141de7cad5aa233de93f21a1b4dfbb1374093cc1f6524e6ae7bab098b264e972e83b05b3a0ff6ca2f30b126dfecdf4318025508697b7e8b3c9bbd901c2f49f6c081a7f61d3b40a8d04c82f121143473e1a8b7ded940e1f9cfaca2400db6eb126f90da97937c268b8f9120937e7f84400b6e6ca8a740cd35ae685b0e76a72cd65f726849f74ce1371fd0cade9d8b1ccde3a55ddeef1dfc3eb3edf5ce6c33737a3fc0d4636b14527a264ae70958b4531c0c4a1614ff26d256905b41eb65d7316b9138712950819f9b9be6f20d33c61a1d5e5c2809547b91acf3552ea6a60bf877196cd04a9ab47d152c888b2e2c323915266510915ed1b6edb7fe2cfa35147e923503dd8b22280630dc8f882a66e083f25e3b6de1244a5ab80312554fd0ff91e7fbb4069223f724836b110afeac67501eca003914dfa6226d2613c9aa1653465e81af9f2374840a4cf1cea2a65e6b3d89bdbe035b74c1b6ea324343b61690e8713e577acff13977423324958650247fb7a1ecbbf27e5cc56ea830d1fb01f59a7cebf1c5b44506d2064cf72f41d368aee3a1f776654b93a3fb3369eaea2719fe3746c24ac7f6f709c231379cfa71762aa5682608412cec4f244017b1a223cb2f42c943787d5e8c6127de0dcab4deecf20ace59ea482810b485c19b185ad679eb70c10021ee32ebb348533f9737ff146e608ba6f30517f544a2e3f2e739b1379f7ed8e8ffe69271d6bb8ca65742b8e115638ea9c0609f0c4197495a714ac3b614fe413bebed369ee4f62f8f68dffcfd8404166a66d1945671701b42ac7846c44378ca37182da49a1734e177cb4e5a7786b4ce473654e3c5df61bf59a6c77d7d6c7c6f1830bf33861e93da523f03f8b419277b87f393e31b6da857214de034a684187c365da736bba563456acc94d8ff6deaeb6fe55c82c3da5267b16c4577e275536cf23ae44ffd1ddd814a0e9f8aac537cb01c42216b6d25ee8fe22fa990b5dc8800978a8d458d483b5ce4592e1973e108db814fc6f448c952523265885254522076149dee894ae15b87d7d8811d305c4acf08c605de8fc41c987d3b0fc79b310a93a63f35cb8c3673f2abc7cd95aea92d0724c6580543df618e6de725e763a4e40ab8709def08d9d57bacd3a74c028dec1455ce527a4491b13140b5d3e24e358cef4a00bc44b6ea9eeb0a630a7a9a146781b4a63d7c6284a796e1af33d55da330a73f12d934f41893ba15ca8f36fa00072e97542b3e3bdeb39d66f7f264034c1798666b457b3b0c674c06bf788b630e52ed95abd564dd8382008a39a63dc23e3680809f44667e8ecd861856587229fe20b398162cb3ef6ccb3fb3d39d95953b8c1585966b586d99d163dfb806b05d23c161e1601d8e461105b955787044a75e7821f6aaaaf665ecdf1971068a0dc532ace9f557634f47847d5334393db281889609770d45d8fae78d518e9748dc9a6679ab800ff83daa1858082efe853303b948e0c184c52bd59e32006f462b415f53887bd1b97734cd15cd0a6cf738327b398d1b7dd88faecd10766c4e139897a55a8b085b949f4b58f71acd57b7ef3803fc05b1a162a933295a906bda4efeecdee51f4bb1ec1db9ed50978485700fff8473f2f548bf40987656914fd8567d65cdd6d30696be0c6da04a4620443dd67097f6e6ba4ee9a497f0cd20f9b5e87f07419bf5fee8bf36446119fc076554ebe54c0f941c79e237130f35db80887f280ea2deae26b87d1aaa393c94ef9079617cd942ddb2efc1f9bcb1064e517108b84523d41060a7c9ec5a835e9e9b11938e44c9afd7ef44be581b9342d1f76d5c23708165b5b939112d7e015522e2a4adca68b7f61f8e389d6d90b4fe07dd7da5fb1596862b246c5ab34ed128e67b7511a74b37d039816119b3c6b4d978885581d1df6338ffd392f75d4d19f783a30f572524589421d07cf67094bd5ad818c9522a8c55d0cbdfd6818e4cbaf0bf42abfcd1ba237d15e4b14f3c3edf17ab9d4061c0a8839f25b620de4ec626a022bbc09247db40b72325dca629e213dbf6cab1f0d2c33d95297e6d4f845bd0cd9246b0361516cdd3e235314908ac593e9c10eb2dfa441e7d4a52d3b612a3e61d9b673604d5219a94105570cb1c3dc68636ac585bc08b47026388f5ac155826db5fdf5d25d583c1f1904590804d171c8d0ad9816e48022f2a2dabb2092aa410125d4522a46df28c78f1919753b4b54638ef2e7eae980bc0b3e804baad3a35b7eafee70408ab07165a61a75ef60ff61a6e620a2093b0926ba3056c59294eeb011fdc22a9936c24deb847bdfc8530e1796ca6827e1a9618f80a7ff8bf8457895caba4a15d9ff97727673b42873120be09c7e769470a0dbc804027a8abb963ec05be9315930f6a9e5e79fafd2bb4104fc1dfb832b3dd50712b22d57db904cafba27471bad2f92595f8abaabd309de82d316e69acff3ed9b4beeeb1973997d8225a84feb5892783e06258eafe564e04f8fbec3356d75b061001918d37851fde87b15c7e21b5774c5508325d1a6e0379fe985ad3978058c299494f5052d237bc8203126e033c00091a5ad6d1cf0f72d0f89066e8e0dc2d8fb37234b1b31049a908a25a1cf1e36519760718367e43f4dadcedaf7fb404b3571a40218744430016a283e2b5e97416d4379bb0bce7f808212b85afaeb9e33b2dc4db9c8ed93ecd776e67065e1842bbbaf6da3704055f931d702abd81b68c647348e22f1583a3fd4f75e503ad1cde5798851da347f5dcdd71c48630f23fcccc635978048489e67bcbf5d0d7904d57f6cd2ac38678cedc50c2bbeea33c657506a6046bcd699e0af748b7bc1e4fd892efd6bb675815967b4cc523bd4b80736b2fc5e82fc6b23886e545f9ce60000a0c65e43d16bcfd74fcb8cf119f83d84c66ad512511d405d7e518de25845956ec02e7fedc40d07783dd00bfc0de6ba05b306c074f542129c78a6317fdfea3f087e92ed7bc6b5f84265120b497cd963234f197edbf7e0083c0ed97da64bf8b2a809f74794175d3ebae639bea1df29900d6ae5d7b7389635063c7c0a1794bcdccc2dfe0c3ea1b7c312d4e54a1654197e42efe1723fe0968c28a5f16b4c7e572b55e806e1dfb3feb3e876f64da8e96054faaddc950076101ffdfc139316a9e5f5c49257f4e9e40c9cd71006a28219e3c51bdeaa46e5f8325150aa43894e3519e02fca4a90a079ebcc3f2ae070225bb41b9b3c54cd930302b59fb750fd8fc2791cb89f4f2374aa00923aef108415d8a116038dfb96c7c438029d7595ed3a303047a494d42b4eae62f652597add070132ffb7c445454bdbd64ed3bc1e9a33b4bcca9f6f043c3a4043235f69ffc3c79df8816b7448d4b81a30ace9c05665fbc8a067c33dd7f454637a7ef4c6ec1dddb4ac459345b7043e09d7c7c755bfa9e3750fef9e4fb113118e5754ae57282c911d343d80f3ba2180e0f587de82e43c172b57317a313faabadaa94c60430725075cacf716f98b9b3926f642eb9986ac83d76b1de28a3dd0901bdb0202c0dfc4d9edc4cfbef5d96e9a0ce3c03457e4282c1a75a441ef955d4a57fac9f4bf36f2554c73ac403bfb22b65ce8e0a163b434d721763bd88e70cd7e5dbfb4150514d45ecdb9014e2c33945c22814d5e5807340d3ebc827f118cd824f4ed1c8712594091af399218396cd7c33cecb4517e0fec72f587ef589cc7329936c386bc8ac104a1f4c94ff4ec704264e13636ca8332f61b097dcba340afe5d7bb63d43682a0ddb2e743a583ecb3a3259003ca58454d1a175fc31d50929fc2c251701a216be25f2633fd9b949b4c54bc5d3ae9f6d40e3a8e01111fc7e130865fdbd4176e1a4c568b75e344d25ab3d5dfceb75cdd0fd25030198a11eed9c79f9dad0b95f2a8bee5c413d3ef35dda6827e28095239e2c840e7a31fdd522d42c7d15efc4cc8dd847471ea77ab6a8c4bd880ba9590202267afe21e2e6696a8980a1e80fc0304af20cbd2346cf010c0eb49d51acf2b8caa97f614df92516668da83b36561af2ece46f111946ee4ec72a552c4826676f147bb2a7654edb2dbc673809d57c6737c2a6c57ba3e9598f3adcd11caaef4f6aa46b479699238c7735cf7a072e3d976a5a21857354313542504ac5c06e62faab94590d9e2908745793b2f59f8380936c779e4de674701d6cc1d8f95e1495b36f16fc772de0b0dd5e1e8d891ff6878171a58ec244aac75cf4f5333a160fe39f0215a5141c8e866b729ca1f1087795ff51348dbfd5186908ab80e72ea5a6cbb928d2829beac0468601a6766586ef82903ae7e0d039c5daf9f645f63ac7fe3f042484782d3934150f008c15fdde62857d8a4c7fb3311054363d84b6be5bb7116387527b64e033881e45db41c345970dca58b96f9ca64d9a35b025c7a886faf1f325958759cabfc4105e72a3428040630d606883ce54af3ae3e57dbd07cbd6a411f36a2992277c48e4a046796f0a9b927f28667e372d6c9817973d87c3fe3a2ec6e1489e460fc5adc4a5051ed09610bf16cacc8cb1c99a97badb693c3ffb22eab21d672fd3e4cc4c95bb2dd05fc048d3965879f7e594ac06bf6cef457f03cc384ada431ec0d85b55a7810ede033c607c78f15d00b13fa529aae1a481a354561f83125f5eb833ee97dc0569429b34f2e2e204686a2116130e3142bdae630900653a279fc85a82759a594fc092884f3226d3dcac7b37d02f3f31e095ec37441ad04b9c9d7d55ca8a0f060dcae5bb99dce24fe03f79008997dc0c08a4fd57858fb3d0f30fc94f2db90dcea6c605730d0c0fa1016820a41a259c5bb715e62ae9aa5e5150de1025ddb2b2955f571e8913b4e2327fef6a339eeca29f57b5ec0f1b08f5dc4a7a2f7fb4e15f4b28442334d1ec0c3d2021fb2667f95b6d12f745267ca76c9a942fd633c6b640d79d5e96c9e4b416da63adb33eb9ea54779076c6269bb294f9c6c5e038d97b0fa868985e6b457061ffb521fc6ec08a8ae7641e6aea6c58db6cf8cf2396bf17c8571f366b8e1a46e078de240ed3d0538fc1c8aeb6a287abdbd57865b97fe82c287d32af18f498e12fa483
Note: See TracChangeset
for help on using the changeset viewer.