Changeset 2811087
- Timestamp:
- 11/03/2022 01:26:56 PM (3 years ago)
- Location:
- seers-cookie-consent-banner-privacy-policy
- Files:
-
- 176 added
- 11 edited
-
tags/8.0.1 (added)
-
tags/8.0.1/css (added)
-
tags/8.0.1/css/cookie-style.css (added)
-
tags/8.0.1/css/popup.css (added)
-
tags/8.0.1/css/seers-plugin-font-icons.css (added)
-
tags/8.0.1/fonts (added)
-
tags/8.0.1/fonts/seers-plugin-font-icons.eot (added)
-
tags/8.0.1/fonts/seers-plugin-font-icons.svg (added)
-
tags/8.0.1/fonts/seers-plugin-font-icons.ttf (added)
-
tags/8.0.1/fonts/seers-plugin-font-icons.woff (added)
-
tags/8.0.1/images (added)
-
tags/8.0.1/images/----seers-logo.svg (added)
-
tags/8.0.1/images/5 cookie consent banner design.svg (added)
-
tags/8.0.1/images/Choose your Covid-19.svg (added)
-
tags/8.0.1/images/Seers full customisable cookie banner.svg (added)
-
tags/8.0.1/images/Seers-logo.png (added)
-
tags/8.0.1/images/Seers-logo1.png (added)
-
tags/8.0.1/images/Settings-Visuals.png (added)
-
tags/8.0.1/images/Solid256dot32_2_navy.png (added)
-
tags/8.0.1/images/color-icon.png (added)
-
tags/8.0.1/images/cookie consent customer support.svg (added)
-
tags/8.0.1/images/cookie consent for branding.svg (added)
-
tags/8.0.1/images/cookie consent for subdomains.svg (added)
-
tags/8.0.1/images/cookie consent with consent log.svg (added)
-
tags/8.0.1/images/cookie consent with multi-lingual.svg (added)
-
tags/8.0.1/images/cookie consent with prior consent.svg (added)
-
tags/8.0.1/images/icon.gif (added)
-
tags/8.0.1/images/li-dote.svg (added)
-
tags/8.0.1/images/li-green-tick.svg (added)
-
tags/8.0.1/images/li-white-tick.svg (added)
-
tags/8.0.1/images/loader-2.gif (added)
-
tags/8.0.1/images/loader.gif (added)
-
tags/8.0.1/images/play.png (added)
-
tags/8.0.1/images/plugin-player.png (added)
-
tags/8.0.1/images/plugin-player1.png (added)
-
tags/8.0.1/images/plugin-player2.png (added)
-
tags/8.0.1/images/red-cross.svg (added)
-
tags/8.0.1/images/seers-cmp-badge.svg (added)
-
tags/8.0.1/images/seers-logo.svg (added)
-
tags/8.0.1/images/seers-plugin-logo.png (added)
-
tags/8.0.1/inc (added)
-
tags/8.0.1/inc/seers-cookie-consent-plugin-activate.php (added)
-
tags/8.0.1/inc/seers-cookie-consent-plugin-deactivate.php (added)
-
tags/8.0.1/inc/seers-cookie-consent-plugin-deactivate_old.php (added)
-
tags/8.0.1/index.php (added)
-
tags/8.0.1/js (added)
-
tags/8.0.1/js/admin.js (added)
-
tags/8.0.1/js/jquery.min.js (added)
-
tags/8.0.1/languages (added)
-
tags/8.0.1/languages/default.mo (added)
-
tags/8.0.1/languages/default.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ar.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ar.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ary.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ary.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-bg_BG.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-bg_BG.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-cs_CZ.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-cs_CZ.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-da_DK.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-da_DK.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_AT.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_AT.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_CH.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_CH.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_CH_informal.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_CH_informal.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_DE.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_DE.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_DE_formal.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-de_DE_formal.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-el.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-el.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_AU.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_AU.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_CA.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_CA.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_GB.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_GB.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_NZ.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_NZ.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_US.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_US.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_ZA.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-en_ZA.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_AR.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_AR.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_CL.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_CL.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_CO.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_CO.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_CR.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_CR.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_ES.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_ES.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_GT.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_GT.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_MX.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_MX.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_PE.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_PE.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_PR.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_PR.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_UY.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_UY.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_VE.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-es_VE.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-et.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-et.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-eu.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-eu.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fi.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fi.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fr_BE.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fr_BE.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fr_CA.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fr_CA.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fr_FR.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-fr_FR.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ga.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ga.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-gd.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-gd.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-hr.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-hr.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-hu_HU.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-hu_HU.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-it_IT.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-it_IT.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-lt_LT.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-lt_LT.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-lv.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-lv.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-mt.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-mt.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-nl_NL.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-nl_NL.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pl_PL.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pl_PL.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_AO.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_AO.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_BR.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_BR.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_PT.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_PT.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_PT_ao90.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-pt_PT_ao90.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ro_RO.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-ro_RO.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sk_SK.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sk_SK.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sl_SI.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sl_SI.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sq.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sq.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sv_SE.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-sv_SE.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-tr_TR.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-tr_TR.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-uk.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-uk.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-zh_CN.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-zh_CN.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-zh_HK.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-zh_HK.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-zh_TW.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy-zh_TW.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy.mo (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy.po (added)
-
tags/8.0.1/languages/seers-cookie-consent-banner-privacy-policy.pot (added)
-
tags/8.0.1/readme.txt (added)
-
tags/8.0.1/seers-cookie-consent-banner-privacy-policy.php (added)
-
tags/8.0.1/templates (added)
-
tags/8.0.1/templates/admin.php (added)
-
tags/8.0.1/templates/frontend-popup.php (added)
-
tags/8.0.1/uninstall.php (added)
-
tags/Development Versions/inc/seers-cookie-consent-plugin-activate.php (modified) (1 diff)
-
tags/Development Versions/inc/seers-cookie-consent-plugin-deactivate.php (modified) (1 diff)
-
tags/Development Versions/readme.txt (modified) (2 diffs)
-
tags/Development Versions/seers-cookie-consent-banner-privacy-policy.php (modified) (3 diffs)
-
tags/Development Versions/templates/frontend-popup.php (modified) (1 diff)
-
trunk/inc/seers-cookie-consent-plugin-activate.php (modified) (1 diff)
-
trunk/inc/seers-cookie-consent-plugin-deactivate.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/seers-cookie-consent-banner-privacy-policy.php (modified) (3 diffs)
-
trunk/templates/frontend-popup.php (modified) (1 diff)
-
tsvnsync.tsex (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/inc/seers-cookie-consent-plugin-activate.php
r2797826 r2811087 23 23 wp_mail( $to, $subject, $body, $headers ); 24 24 25 $plugin_data = get_plugin_data( __FILE__);25 $plugin_data = get_plugin_data( dirname(__FILE__) . '/../seers-cookie-consent-banner-privacy-policy.php' ); 26 26 $theplugin_name = $plugin_data['Name'] . " - v" . $plugin_data['Version']; 27 27 //on activate plugin update in db -
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/inc/seers-cookie-consent-plugin-deactivate.php
r2797826 r2811087 103 103 wp_mail($to, $subject, strip_tags($message), $headers); 104 104 105 $plugin_data = get_plugin_data( __FILE__);105 $plugin_data = get_plugin_data( dirname(__FILE__) . '/../seers-cookie-consent-banner-privacy-policy.php' ); 106 106 $theplugin_name = $plugin_data['Name'] . " - v" . $plugin_data['Version']; 107 107 -
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/readme.txt
r2797881 r2811087 4 4 Tags: GDPR, CCPA, Cookie Consent, Cookie banner, Cookie popup 5 5 Requires at least: 3.8 or higher 6 Tested up to: 6. 0.27 Stable tag: 8.0. 16 Tested up to: 6.1.0 7 Stable tag: 8.0.2 8 8 Requires PHP: 5.3.3 9 9 Author URL: https://seersco.com … … 183 183 == Changelog == 184 184 185 VERSION 8.0.2 186 • Minor bugs fixing in Activate and Deactivate 187 • Minor bugs on home page loading again and again 188 185 189 VERSION 8.0.1 186 190 • Minor bugs fixing in "Advance Features" tab -
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/seers-cookie-consent-banner-privacy-policy.php
r2797826 r2811087 11 11 * Plugin URI: https://seersco.com/wp-cookie-plugin 12 12 * Description: Seers cookie consent management platform is trusted by thousands of businesses. Become GDPR, CCPA, ePrivacy and LGPD compliant in three clicks. 13 * Version: 8.0. 113 * Version: 8.0.2 14 14 * Author: Seers 15 15 * Author URI: https://seersco.com/ … … 1884 1884 1885 1885 if ( !$cookie_consent_code ) { 1886 if(!$cookie_banner_cookieless) { 1886 1887 if ($showbadge !== false && ($showbadge === 'true' || $showbadge === true)) { 1887 1888 require_once plugin_dir_path(__FILE__) . 'templates/frontend-popup.php'; 1888 if ($showbadge !== false && ($showbadge === 'true' || $showbadge === true) && ($cookie_consent_code === false || $cookie_consent_code === 'false' || empty($cookie_consent_code))) { 1889 echo '<script>window.onload = function(e) { 1889 echo '<script>window.onload = function(e) { 1890 1890 let concentname = "SeersCMPConsent"; 1891 1891 … … 1925 1925 1926 1926 }</script>'; 1927 } 1928 } else if ($showbadge !== false && ($showbadge === 'true' || $showbadge === true)) { 1927 } else { 1929 1928 require_once plugin_dir_path(__FILE__) . 'templates/frontend-popup.php'; 1930 1929 echo '<script>window.onload = function(e) { 1931 let concentname = "SeersCMPConsent"; 1932 1933 let isvalueset = localStorage.getItem(concentname); 1934 var params = "action=savecookie&save=n"; 1935 1936 console.log("Local Storage value = ", isvalueset); 1937 1938 if (isvalueset) { 1939 //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry. 1940 let storval = JSON.parse(isvalueset); 1941 let expirydat = storval.expiry.split("="); 1942 1943 if (expirydat.length === 1 && storval.expiry == "") { 1930 let concentname = "SeersCMPConsent"; 1931 1932 let isvalueset = localStorage.getItem(concentname); 1933 var params = "action=savecookie&save=n"; 1934 1935 console.log("Local Storage value = ", isvalueset); 1936 1937 if (isvalueset) { 1938 //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry. 1939 let storval = JSON.parse(isvalueset); 1940 let expirydat = storval.expiry.split("="); 1941 1942 if (expirydat.length === 1 && storval.expiry == "") { 1943 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1944 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1945 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1946 } else if (expirydat.length > 1) { 1947 var expirydate = new Date(expirydat[1]); 1948 var todaydate = new Date(); 1949 1950 if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) { 1951 console.log("The first if"); 1952 1953 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1954 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1955 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1956 1957 } else if (expirydat[1] !== "" || todaydate.getTime() < expirydate.getTime()) { 1958 console.log("The first else if"); 1959 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1960 seersbannerbar.classList.add("seers-cmp-banner-bar-hide"); 1961 seersbannerbar.classList.add("seers-cmp-banner-bar-hide-noanimation"); 1962 } 1963 } 1964 1965 } else { 1944 1966 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1945 1967 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1946 1968 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1947 } else if (expirydat.length > 1) {1948 var expirydate = new Date(expirydat[1]);1949 var todaydate = new Date();1950 1951 if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) {1952 1953 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0];1954 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide");1955 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation");1956 1957 }1958 1969 } 1959 1960 } else { 1961 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1962 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1963 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1964 } 1965 1966 1967 }</script>'; 1968 } else { 1969 echo '<script>window.onload = function(e) { 1970 let concentname = "SeersCMPConsent"; 1971 1972 let isvalueset = localStorage.getItem(concentname); 1973 var params = "action=savecookie&save=n"; 1974 1975 if (!isvalueset) { 1976 1977 1978 1979 httpRequest = new XMLHttpRequest() 1980 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") 1981 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 1982 httpRequest.send(params); 1983 // beforeSend: 1984 httpRequest.onreadystatechange = function() { 1985 // Process the server response here. 1986 if (httpRequest.readyState === XMLHttpRequest.DONE) { 1987 // complete: 1988 //let data = JSON.parse(httpRequest.response) 1989 location.reload(); 1990 } 1991 } 1992 1993 } else { 1994 //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry. 1995 let isvalueset = localStorage.getItem(concentname); 1996 let storval = JSON.parse(isvalueset); 1997 let expirydat = storval.expiry.split("="); 1998 1999 if (expirydat.length === 1 && storval.expiry == "") { 2000 httpRequest = new XMLHttpRequest() 2001 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") 2002 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 2003 httpRequest.send(params); 2004 // beforeSend: 2005 httpRequest.onreadystatechange = function() { 2006 // Process the server response here. 2007 if (httpRequest.readyState === XMLHttpRequest.DONE) { 2008 // complete: 2009 //let data = JSON.parse(httpRequest.response) 2010 location.reload(); 2011 } 2012 } 2013 } else if (expirydat.length > 1) { 2014 var expirydate = new Date(expirydat[1]); 2015 var todaydate = new Date(); 2016 2017 if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) { 2018 2019 httpRequest = new XMLHttpRequest() 2020 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") 2021 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 2022 httpRequest.send(params); 2023 // beforeSend: 2024 httpRequest.onreadystatechange = function() { 2025 // Process the server response here. 2026 if (httpRequest.readyState === XMLHttpRequest.DONE) { 2027 // complete: 2028 //let data = JSON.parse(httpRequest.response) 2029 location.reload(); 2030 } 2031 } 2032 } 2033 } 2034 } 2035 2036 2037 }</script>'; 1970 1971 1972 }</script>'; 2038 1973 } 2039 1974 } -
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/templates/frontend-popup.php
r2796918 r2811087 1834 1834 <body> 1835 1835 <div class="seers-cmp-cookie-data-hol"> 1836 <div class="seers-cmp-banner-bar <?php echo ((get_option('SCCBPP_cookie_consent_banner_position') != 'seers-cmp-banner-bar') ? get_option('SCCBPP_cookie_consent_banner_position') : "" );?> <?php echo (($showbadge !== false && ($showbadge === 'true' || $showbadge === true)) ? "seers-cmp-banner-bar-hide seers-cmp-banner-bar-hide-noanimation" : "");?>">1836 <div class="seers-cmp-banner-bar <?php echo ((get_option('SCCBPP_cookie_consent_banner_position') != 'seers-cmp-banner-bar') ? get_option('SCCBPP_cookie_consent_banner_position') : "" );?> <?php echo "seers-cmp-banner-bar-hide seers-cmp-banner-bar-hide-noanimation";?>"> 1837 1837 <div class="seers-cmp-cookie-policy-data"> 1838 1838 <div class="seers-cmp-cookie-policy-hol"> -
seers-cookie-consent-banner-privacy-policy/trunk/inc/seers-cookie-consent-plugin-activate.php
r2797826 r2811087 23 23 wp_mail( $to, $subject, $body, $headers ); 24 24 25 $plugin_data = get_plugin_data( __FILE__);25 $plugin_data = get_plugin_data( dirname(__FILE__) . '/../seers-cookie-consent-banner-privacy-policy.php' ); 26 26 $theplugin_name = $plugin_data['Name'] . " - v" . $plugin_data['Version']; 27 27 //on activate plugin update in db -
seers-cookie-consent-banner-privacy-policy/trunk/inc/seers-cookie-consent-plugin-deactivate.php
r2797826 r2811087 103 103 wp_mail($to, $subject, strip_tags($message), $headers); 104 104 105 $plugin_data = get_plugin_data( __FILE__);105 $plugin_data = get_plugin_data( dirname(__FILE__) . '/../seers-cookie-consent-banner-privacy-policy.php' ); 106 106 $theplugin_name = $plugin_data['Name'] . " - v" . $plugin_data['Version']; 107 107 -
seers-cookie-consent-banner-privacy-policy/trunk/readme.txt
r2797881 r2811087 4 4 Tags: GDPR, CCPA, Cookie Consent, Cookie banner, Cookie popup 5 5 Requires at least: 3.8 or higher 6 Tested up to: 6. 0.27 Stable tag: 8.0. 16 Tested up to: 6.1.0 7 Stable tag: 8.0.2 8 8 Requires PHP: 5.3.3 9 9 Author URL: https://seersco.com … … 183 183 == Changelog == 184 184 185 VERSION 8.0.2 186 • Minor bugs fixing in Activate and Deactivate 187 • Minor bugs on home page loading again and again 188 185 189 VERSION 8.0.1 186 190 • Minor bugs fixing in "Advance Features" tab -
seers-cookie-consent-banner-privacy-policy/trunk/seers-cookie-consent-banner-privacy-policy.php
r2797826 r2811087 11 11 * Plugin URI: https://seersco.com/wp-cookie-plugin 12 12 * Description: Seers cookie consent management platform is trusted by thousands of businesses. Become GDPR, CCPA, ePrivacy and LGPD compliant in three clicks. 13 * Version: 8.0. 113 * Version: 8.0.2 14 14 * Author: Seers 15 15 * Author URI: https://seersco.com/ … … 1884 1884 1885 1885 if ( !$cookie_consent_code ) { 1886 if(!$cookie_banner_cookieless) { 1886 1887 if ($showbadge !== false && ($showbadge === 'true' || $showbadge === true)) { 1887 1888 require_once plugin_dir_path(__FILE__) . 'templates/frontend-popup.php'; 1888 if ($showbadge !== false && ($showbadge === 'true' || $showbadge === true) && ($cookie_consent_code === false || $cookie_consent_code === 'false' || empty($cookie_consent_code))) { 1889 echo '<script>window.onload = function(e) { 1889 echo '<script>window.onload = function(e) { 1890 1890 let concentname = "SeersCMPConsent"; 1891 1891 … … 1925 1925 1926 1926 }</script>'; 1927 } 1928 } else if ($showbadge !== false && ($showbadge === 'true' || $showbadge === true)) { 1927 } else { 1929 1928 require_once plugin_dir_path(__FILE__) . 'templates/frontend-popup.php'; 1930 1929 echo '<script>window.onload = function(e) { 1931 let concentname = "SeersCMPConsent"; 1932 1933 let isvalueset = localStorage.getItem(concentname); 1934 var params = "action=savecookie&save=n"; 1935 1936 console.log("Local Storage value = ", isvalueset); 1937 1938 if (isvalueset) { 1939 //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry. 1940 let storval = JSON.parse(isvalueset); 1941 let expirydat = storval.expiry.split("="); 1942 1943 if (expirydat.length === 1 && storval.expiry == "") { 1930 let concentname = "SeersCMPConsent"; 1931 1932 let isvalueset = localStorage.getItem(concentname); 1933 var params = "action=savecookie&save=n"; 1934 1935 console.log("Local Storage value = ", isvalueset); 1936 1937 if (isvalueset) { 1938 //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry. 1939 let storval = JSON.parse(isvalueset); 1940 let expirydat = storval.expiry.split("="); 1941 1942 if (expirydat.length === 1 && storval.expiry == "") { 1943 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1944 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1945 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1946 } else if (expirydat.length > 1) { 1947 var expirydate = new Date(expirydat[1]); 1948 var todaydate = new Date(); 1949 1950 if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) { 1951 console.log("The first if"); 1952 1953 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1954 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1955 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1956 1957 } else if (expirydat[1] !== "" || todaydate.getTime() < expirydate.getTime()) { 1958 console.log("The first else if"); 1959 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1960 seersbannerbar.classList.add("seers-cmp-banner-bar-hide"); 1961 seersbannerbar.classList.add("seers-cmp-banner-bar-hide-noanimation"); 1962 } 1963 } 1964 1965 } else { 1944 1966 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1945 1967 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1946 1968 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1947 } else if (expirydat.length > 1) {1948 var expirydate = new Date(expirydat[1]);1949 var todaydate = new Date();1950 1951 if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) {1952 1953 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0];1954 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide");1955 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation");1956 1957 }1958 1969 } 1959 1960 } else { 1961 let seersbannerbar = document.getElementsByClassName("seers-cmp-banner-bar")[0]; 1962 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide"); 1963 seersbannerbar.classList.remove("seers-cmp-banner-bar-hide-noanimation"); 1964 } 1965 1966 1967 }</script>'; 1968 } else { 1969 echo '<script>window.onload = function(e) { 1970 let concentname = "SeersCMPConsent"; 1971 1972 let isvalueset = localStorage.getItem(concentname); 1973 var params = "action=savecookie&save=n"; 1974 1975 if (!isvalueset) { 1976 1977 1978 1979 httpRequest = new XMLHttpRequest() 1980 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") 1981 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 1982 httpRequest.send(params); 1983 // beforeSend: 1984 httpRequest.onreadystatechange = function() { 1985 // Process the server response here. 1986 if (httpRequest.readyState === XMLHttpRequest.DONE) { 1987 // complete: 1988 //let data = JSON.parse(httpRequest.response) 1989 location.reload(); 1990 } 1991 } 1992 1993 } else { 1994 //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry. 1995 let isvalueset = localStorage.getItem(concentname); 1996 let storval = JSON.parse(isvalueset); 1997 let expirydat = storval.expiry.split("="); 1998 1999 if (expirydat.length === 1 && storval.expiry == "") { 2000 httpRequest = new XMLHttpRequest() 2001 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") 2002 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 2003 httpRequest.send(params); 2004 // beforeSend: 2005 httpRequest.onreadystatechange = function() { 2006 // Process the server response here. 2007 if (httpRequest.readyState === XMLHttpRequest.DONE) { 2008 // complete: 2009 //let data = JSON.parse(httpRequest.response) 2010 location.reload(); 2011 } 2012 } 2013 } else if (expirydat.length > 1) { 2014 var expirydate = new Date(expirydat[1]); 2015 var todaydate = new Date(); 2016 2017 if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) { 2018 2019 httpRequest = new XMLHttpRequest() 2020 httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '") 2021 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 2022 httpRequest.send(params); 2023 // beforeSend: 2024 httpRequest.onreadystatechange = function() { 2025 // Process the server response here. 2026 if (httpRequest.readyState === XMLHttpRequest.DONE) { 2027 // complete: 2028 //let data = JSON.parse(httpRequest.response) 2029 location.reload(); 2030 } 2031 } 2032 } 2033 } 2034 } 2035 2036 2037 }</script>'; 1970 1971 1972 }</script>'; 2038 1973 } 2039 1974 } -
seers-cookie-consent-banner-privacy-policy/trunk/templates/frontend-popup.php
r2796918 r2811087 1834 1834 <body> 1835 1835 <div class="seers-cmp-cookie-data-hol"> 1836 <div class="seers-cmp-banner-bar <?php echo ((get_option('SCCBPP_cookie_consent_banner_position') != 'seers-cmp-banner-bar') ? get_option('SCCBPP_cookie_consent_banner_position') : "" );?> <?php echo (($showbadge !== false && ($showbadge === 'true' || $showbadge === true)) ? "seers-cmp-banner-bar-hide seers-cmp-banner-bar-hide-noanimation" : "");?>">1836 <div class="seers-cmp-banner-bar <?php echo ((get_option('SCCBPP_cookie_consent_banner_position') != 'seers-cmp-banner-bar') ? get_option('SCCBPP_cookie_consent_banner_position') : "" );?> <?php echo "seers-cmp-banner-bar-hide seers-cmp-banner-bar-hide-noanimation";?>"> 1837 1837 <div class="seers-cmp-cookie-policy-data"> 1838 1838 <div class="seers-cmp-cookie-policy-hol"> -
seers-cookie-consent-banner-privacy-policy/tsvnsync.tsex
r2797826 r2811087 1 c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff006795a36db50287143bd0b17869d04244401f61eda1329dfdd96b48526ba93eed700f3583fbdc82e819c6f6554084d04298aea61bae8db30d1fd359827bfec1e61e628073f2032a529f584f6140996f0005528a850f8866517a1e2567c6667ca48d96ae6d269dc8c91f0bbc6b36985bc8f9d13fc9af774410f64f4fe13309aa763d3db6faa277e079c77810d9ad336c588c05477046cb62c34f2551d35672cd6d12d928aa99952ac3704d6e35d52a73b7f98be5e477c67c0703d38ee4f7033a1cf27fc663af8d047a436a0946c2ce19cba7ecc9307f0a452eca3fe1b51a921631ff0f9584551c7630f7b28052ad7bb3b1b83a9efcd6e80f4ba4c72411dcbca0b1a2be228d67be2d58d9603d7f7a7bbc 985cc8d309c1ff9d3683d5f35a45f25a25392b0b5b52fa92407b54cb204bf77bd6777e09ddd06d5ac05fb95951d758c623b5a09be19b2cba3f078d685f4970966520c11cd3694a808ccb5ae2087177b8fedf01f4ac35b9adbcd5c29f43bb2a30074a6b83fbb6d02db6fb752b034393db6d75a3b188867b274acdcbf6ef94d3201b158accff347ef2f1d6ef4c2efe48affc4c83b36d72bddcf7161b04fa3a3f23dd2c34a86710aa4d47bea14b5864e45b971a46221c031b60d09d5a4a8bbdbde338fec021e49efb1f3c4bcc3dcd1152a0c37750694ae27e9b1ebe21c813256f3c772a6d017b7bd1ebf5a78f77fcc4bd52f2876351db2e64e8f7bc1adee8be414d8a65e01738f4b2a5dae009da2f490aaf6d216811dba5c9e809d8eb61895a5de3d339d7f3a62b38dcfbe5619bf1c44c6afb3cd1ba7e009c59a3977029c0939e9c8fcffe06de9813ffb87853601ab6713104cf5a9be1af80a0d7493fde23c028603958bc98a2506484f372860a72b1aa7243b61735def538c1c1f4ca42ab249d7dfd08e0be9f5e71545cbaae439e69381ede78664cb8e858f4060012d3a119e593534b079f795873a0fcb950010b52b64cf297664780c01b12ad98d450e7fcfddf2ac46b6994a603159a5b90850a68e4a0e26007bcde51b1ca17256530f5d9ce57bc5028eccfd2470b8e2c932f1e07c17137b3afb41704fceeb50bfe31091b23c8c9284b9d15b00bdd1d3933bfccc78d6e5fb8cef3ba9a057137f85bbbb9c52ee89464a43199e0f41bdd30b4ef0d51b609d1b43d6e48efd9adba742fbb00754fa55abf1f2f067f785d5b1843328fee928fba83e45be371f439a5037e6a7133b561763ca817e2f53024ff7be7670ec2e2457c68df47a662124374c68ac16fb6e63be9ac69a21b8707855ae9c287fd8153fb5750334d2decd56986e4c82c80a2190e9f342147f124faa678d07fe8a799a047dedf026572f7a731016d68c57ede01ccdedac85d76c76b7a5164fb13b4abdf05c8f424c27b63537e555ad58653c08da968e6419e235919002fd2affa7d88b83a1d9b64f0117bd82f5905ce4778b139d9ccd3f71764127e7c0dfca8e84519ee32240da171600bade9340a47edc83a09147a7b4425e5a422fc7114a54d835bcf38915e973b94f678cbd8ea36f0b7774e0c22fc574a8d40b9e0ce99fd685125e30504f12d58c18acb7dd4f34de89f17a645af3e373c9095f862c9c575fe31c48f4d02a030af630bf22367b1160173711df2388891ecdedaa29cd9821ed251644b7d3bc741122551c4d91ee5cf63709cc2c05b452a16682b8b3a1326b43ccd011cb6a812bdf8bc1e1d73bc753bd6d83aa18a4255c8d2574c29d3c46e9ca823964a6e4291c3822b94b69f3c6aa8feab7237c081caddb86c9120d1769497ade226d98b20b7e897121b0626a74ef1f501f5b98734d5b25b8f3c54b230681db85b35bcf2894c734fab582a4c666fd5c9a0258fa950075ac9a67c2e0751eb578d0bac8f2b7ed7b86ffb181c901d58814e73b5e22e9aac85c505615aa1b60181a95b4fe5c9ec1b546acf89228f2ae2280f606cdbf9ef14bad66586bc0bdfdfcd138d1afc106c2f913041637ef116c64b281bede78a70c45ee89f7ee755d4298829d35151a27ec07e67274f6eec8224436fcc08843151474ec75faf2f6692dc48fc55f044370bf27ff7d9d5278a5da40d9f0f8b482e53dac28bc62c41088f68571bc200bb68358ae784734cc0639b44aaa6fbff4ec781394d20275a9ad8ed73ad00191feb971160da37defc14d8dcb3b5a84d083b8657b56f519c4f55581313bcd055976f46f74c8feac430707cf4f195e09c9fcad5911981d9b5dac2935cd5b966eeac76280f86dfd3091426f4ce2126a3a20daf7aaa83bb125e7410545e2deb8165dd2ee824c76eb10b499267c5b80064d2ab4c2628d1d75df3ec601e353cf3c78e7da4f5ae744a27a6cc39625166e5db652092d75c582f21fbc046ee68b5a6e995b9f6adc65f92f927ea554ac084172db721d9e8114e338a677f729a27ce97f93cb136ff5207725085a46da3a10bc8e9f902eda7f969dbe0623c4c4a8eb442eeafb0be457cd659e62a20c9cdd3f3dd3ddec5a4885545f806b11b92aa76371eefda1d5fa4d676a64a7241879840ee62979a993be1b1ddf0a1979105b874aa900b8bd074de9ad10a2b9996894ae568d8194588dd1fb6a2638d9c3e358b5f6d111846ca0f37ce6081ad012c9fbc540f1712c471ae0b5df5138acd2a2a9071624bc427f9bf82f337903d5889648f43038528d3113db43aed63a6b8be035479cad78d66646e2a24d14fd7d1548c4729c6fe3598594e2c5017794af079a848f0ee89ba24d644d1ea55e995edd3b1910944c4740c72844f104636b79ebc69700978cf99a24279e13a51b7646e7f48ff9faedaad644e8da509d0f566fd4a0e9224fbae0f0c6bf6ca3a4df8399ccc3df73332bf4dfc5b29ec5a0b275aa420b56327935f14710abb6135827096bc71933fa7c74417b1e1f6d4a1824afb806311fffb0c5f56002d1331032eef5e774c4ced5941abf9b9d71cf64b820630f532cf1baeb18cf9b24ced7cd52c4c46b71918a80fef19dd40f7be08a900fa40fb896fb3b8640d700c03fd310488d3e1c8aae950ad3c6f64a6209d5a0ca6b5a08d792a6336a07d8567b19a3ced38fb2b11b49673458ff7bd686f1c220796e72d770655653811481f73c71d9d1edbcb364b27cda3b1460e3b647c79d104859617daba46060c55a4cddae603264db83367e9c2d2fc70c0678a5455f16dddbd7ad2a0f83070c97c942c1963b80dd8ec4d34c3be30501290dd1fc8955ed6221f784538e44648a3e569010979e94c677de6fd103d127f0db413ad734f16a79e6fbd39e190442b15ea26ea3bb3f5d6daa553f933870e0d806cad8e529cf122964cfbbc661a3abca3c2bb669dab597497347db2fa2a9200427c3ca5790d00a664e54dc5049baf5c8b911e3cbd3bce9d17cad27b6400cc5528f8144cffec6f669fe0a5f49587eb8efa0726bc71098bc6699a19ad27ae2d725dd97513084091d6bbade7c6756e3158a25e1e62fc21011b55c0e795876e42a7af590e5da5e7dc10160c3a461b6ef004227cdb15bd55961276093716740ae8ac1e6c61a062f2218dec1baa2daa1cf0c395d920faaff9177b362c1f0390e5ddac8f8035c6f1c57e230777461257c177bbcaf3335f07960b773f7ed40e9ec26197bb892477ad5a7c4c477f71475967fe8ce5253fddbd3869e9e696f63ca8a53ecd8160c60efc86569f934b81e3d0f238ffab54d6a3a456eb445ebea1ac6a5aeeebf741fa2716c962309a479fe2c140009113969bf32c7965dce8e441bf603e987698f5ac78f394c3a48a387e0d485b220e165537a8a92928d962cdc400e7541d699f20adc437c0b8e960b498770627d496436c28c1e0d0c207925d95e5336cedf869e6b768ae0b61aa0aef95551e28b1b9f537a163d77dc32ec718fb68173705840541b55184a97bd00f511549160caa1ccd93ef11304be60ed37102d0facab21a6afebb7ab53a63e5445f1c5e805b5e604c2755d3d07739d6b1be9d6c52dc674b2fc538262a6647bf75c6e77ee6054ff06ad1e8e324783005971bd4d1975daa74c9d6ff46092cd59f8307451b0eb44704d3a8ed073bfce36e90a4f780ea86b8a229ba5e6d89ac4a58e995734fa58a1fa7b640bf0cb66f9530eb23ad1204b6e742511f1e86fa2d1c5957d44e71ae46f979968c9fa0c33823c87984ded3067c464ffedbefb7789ab9b3639df1f3a8ecb31ccd233123eec0c9abfa2214174eecb508970f9217e0e6efa4bc7b398819e72db428da0be5565274c6d9d029fdbff69bbcbf9557bca5e4a490a063a643d0fbc738fbff4aac8a292df04ed809c8d02f3e808a4e4605e17742c23969b44f565630ee74afe3271fc3a1c8a941392d985c79168bc8add17dfa3d0b26c0b1da4f5b18271cb11529b558f1eb4e028e4465b96475dfffc5de35cded2516037469d170a5520870e0bcc1aeea4cf5e56838310dd7ae12442369f1d038309ae526eff4c58282ca3d9884dc737ed7a2dbb2b0648468c0c0dacab5ef2cda0a905290b725a30b50acfaebb2c0a3215d3936567b336b675dacc76796b3459ad7d1f34011f7153acb1482ff935a9475047d065aec271860ab5481d713cd0cb1574da98aeff417a4357b22e34e0adec5dbe324723aabcdca403acb55736b1473dec4e1e37e387ed4f0ce851ce9515753684448d9566469a3e93cd62acf4e7423d2fc07467a742f32638feeaa4cbd31bf34040dcd7d5ae2abf6a17daf947566b6d4504944f9c95fa5e448ea2ef0315823b1c50a48258e56690c52c1baf130c87191b541f64789203b9eb370ed56f412a9dd323ebd0f81e89722b4b13c417d1666765e88ca70fbafb7b441f485afec63d425b6d0023834858d0b28e698ad00f833e7d0e9da9b16b82496eea6693d6770d4fc730ceecd7d08b5d54e10d1182ee75197dc4b7350465ea14f761752e200255c2b8a196037754ce259e14ffdc5f3257782f27ac02c4970ab5c1b9aba33cf0585257dd62507e879cb124a4185691d148504c65f8a0c02e84f60a17e25f159a9e806fdd0ef1d6fe2ac55c1e0097072b00b14e05fa2fb8ebe5fee70e50b007dd176f023bf007b6fc2bd0c1efb00c6cadd17abe589c308f1b52615984c9e246fc5c7e5649452a30ec02380702022b346a25e9aeed4c79103ffce0664713cabbe14958fa9efdee319e84c7ec1270347a0c66be00f20a66291f4632af70c4b0a3f357fc2b778193296f80a4bcf1ef140668445036821a17cd757043576c8e2a95b29b90518ca2b1d200ee976aafac94626924915c705babd8a0983c93dfc94c958c22452f00780a2b7d8ad297cc317cdb937be84c0784c42cbece8fce1876df5bd29834a86546e07df8c608f9a52fd12750af4a99900dc58bba9d196f84e449bf2e48ba0099ccd469f6a27146da7bea21400cc796a403c3316be3724e126bab6cd4eaf47e4f2b5887d319805b93d40530443f0e0460328307f9af2f2185d7bfad1e31f4f67d20812110367aaf7eed06b86c5fc9734babda395c4b936d7916a8c47759857e6484c474f9bdce2f43f657f083855d1ae3c41b475bbd9d1ab639fbfabcfab5fd017e9c3370dcb0f89394423e864ee7c45e1e728575877800bae42ee77c6d6d45be98064bb8f2a85d90326b063a1e1bdf9a7453c77dd5ec068e418b2bbc68d6c257de5c4d6136906ba15c94b60d43602b9500064e4a7eaf6f3d2a187749f752e4919c73f62fc911f2fad7d2d3c2ef0b42d1336e97ed77b7e2a698ee219e4e7cf5a513d088d23494b85ba749fa6686ada1391e7d8277f90c793ad8d3fefccfe766126a2e1f53d47b20276d80fa7660c7e9096eb2d4273880ef9f6a89287785d0f26982109826b946b08f35305356432984a520d55d39ec57a92934902f3e3c1f8d2ff4fb25a4261ef41ac1fec2ad32d6e8aa38c9f7155cdb32f7bc53ad0035a20564d9fc1159fcdab673951ae4b848fbaf7851c896666d164acb4237d9385172b3de065a6fdf7947c21ec9c98bdb20e8cd32adf84f387986179a9b5884e80a5b4bd70e7e2f9092c3b1dcd69d7b2172e85155f105cd4f64211ce4af80f176823a883ef35121319f35981a3945e88b18d0532ad4ff6df71c4d4311178980a3e38d3eff6a6afdb0dbe1aef39c4f69eac82f6fbea8b0bb9413a291ebc325f59ab9ec056ffdf2193aeaa98535bca67e5e7398464361e6b59465f635ead01dae4f995ce1fdc12b796eb32a58ab1787aed1ad61ae1b09ef86bbd140ff2fe3d7975332580b8b33fbbe0a6c0583e4a5b3eef9caec329aa8437dc887da096a18bfa9ff880561ac398ebb9729f6eaae965b486d585aa32a58dd031911d11332208a9444c19719759b67c68e11a75b19372e69b78d0904c16444bcc2879ac85bc8832d486dbfcbe5a6684d6b8ed71c1d19c46452071e4c12553701e9b8f9fc35bdd37986e5a780bc78b1aee408307c57e2df84b390a32a95be7f6373f19bd4cd775f1432b46be4e522838a0be2888f8cb79279f403498f28f1f54c6b3bbd3a3049a1f7ed19df92f7ed75325ac135fbc08c3aa7065faefec959861dea756bd422f71818b4bb90fba3e582c31852a0c860ec4b20475e25db4884bd89ea77d1a1d972348596f09213f49f5ab3881be5151bb4792553b82f796ad0dffe80a2a733277a35c3e6f8400bb256d69053d072d220dadd53b363966b3c99b099e01e25eb59a48f4c1b1f2a9fce76ee0e8426186253c77b32b09f69e028fb33b2d24dce6d4dece2cba64923a5b5cbfa35ebdea63a13fb641cf3689c0f3a8ab0fb5c1aa34c5015b236d2128cca68a3b723ff2e369b457a06bdef071d87d0aa2f95baafa0ec115c8d91b77bdf7e0c8c77eb09fa0ddaa06b6bc7620afd0f8bc9bc228dc37e65086c80c9df6e5492f44d9019dc2cb76c9237e64557d9fc8d691da082a52429f153db9dea310bbcfb7ce59e8de93ee95bce8dddf4039c7dd8315f5fb70b92a5245c2aa1ffeadfff6cca8c7fdb930ef274b2a5a9dd6ef5de9e2c4d9e1cc4aee7480bcd2b53be7598e9d4b1300cf5b0480d9efdb1c7819b9ed384a778592a73c31f812c86b4edeeb913cd78c6342c9b6c61b5caf4a79d6fafd9403d2d920752f3db68e5ed1592e92671f40291dcad0125000648fc7e7c83e194fddf73ef60a7a62f0fead3c69daccf1faff33d59ec610f9257b578e4086e7f7ac2265ae7c4c659e0f2c3a4822378bf610ccfd82d5e022787303a74ad9f98fd3b9a87229f48ff662aeb85e30153ad859006e66293d177783933e5b2be34fbad1a1229ea8efb2553886141531821ff15c0ae93a306092b16969291a069e478ad3971d7c7ca971ecdf3a5bfc6c06d734e31 c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff006795a36db50287143bd0b17869d04244401f61eda1329dfdd96b48526ba93eed700f3583fbdc82e819c6f6554084d04298aea61bae8db30d1fd359827bfec1e61e628073f2032a529f584f6140996f0005528a850f8866517a1e2567c6667ca48d96ae6d269dc8c91f0bbc6b36985bc8f9d13fc9af774410f64f4fe13309aa763d3db6faa277e079c77810d9ad336c588c05477046cb62c34f2551d35672cd6d12d928aa99952ac3704d6e35d52a73b7f98be5e477c67c0703d38ee4f7033a1cf27fc663af8d047a436a0946c2ce19cba7ecc9307f0a452eca3fe1b51a921631ff0f9584551c7630f7b28052ad7bb3b1b83a9efcd6e80f4ba4c72411dcbca0b1a2be228d67be2d58d9603d7f7a7bbc6902407106169d7838253c5897f2b0a8c0d4d5e40ef0cdf71640e4395b6dbdd99e6016917b9a568e498c92d98248c83497e606dd9fb453ad4fee606d091bbdf44e4cada4e6b12e36c78b8a9f3aef3e75c8ccb6daa555f61080a29845a204e523d3512fa492e547208d82471b39306ec7a129de0fb0328a2a9c10518bcbb6342bacc74bc1f08cd592216ecc9fdb275e1d509ed3fcdfb2c6f4ac6eef60a6839fd83d5664a931a9b083b2a0575731c9ae7bb9036138eb80eb1c217ef66fd51ba3f2b2c6849992038e8c2d937615e1079e91871e855c320235fa28d186179a07ecf26c0a717e5525828e9fcc6e8817e65a26de25b0d52d5c2b91a2da60ee20c18455e8627674740e7a04faf4618072ab16251b394fc06792bf04b5b93f562eb03908c8cb3bf019505f425eb54bc08a2e309f06162b69b4151893f02ddd48b16f7cf1311d174c2b00df8796574a462b24e0bd6d9c83a7b5a14f5a7000823f455b357b5ec6a95712058bf82c8c433c23dd77c2e6238d651f0d56dbf1fbcce3e95b3271372d0c95e6cd8d4d444600b690ae5a42db28c449f96420b0a2f0764639de48acca2d964910f60dd38f156f7ecc588249348cbb394dba03065204b6415de39515523a29f0c349718d3c57d985a5a2e17778fc0c9e2249e99df4b7fcc990a37a38fd024001fbeda7b6da0f0e67ee5e2311623e6d4f17d31f308ecf928cc40040be94ab1cee0fdcef83997f14d3850aca0d48c10101735456765c8da2d06ba86bd57cd4bb37ac3e70192a14fe292b10c9c396ff3ea604cd11102faf75fea36fdd9a639931437109c44eb7f74e02110b3bd85310f487af2b5d341599c283a78aae908b18956fe13362749d6d1149d4a12bfaf6d5ed199a40bead02c01e03890023fda34f3b134d082d908bee06d75929cb02b8c4e947c523a4df5e5da87274d298abb68e7f841d9b739d8f965a0329ebfeabe02fd4244f2b5582aa4e0d3af8bd571a5c71d674bee1646b1de31f559543797559b47bb1be61d0e8b641e515c1465c053eda1bedcafa4f06cb4e3121bd0148e5dbf4c5432a4aff5c2a98236f81667da09f797a2ff52c42240da463be0b3748967cc03198398e2203df5b4d29ed6a46837601c8be732cd0268fa6424eb083e20ce2dbce725296e989242234be58cf1882726dc600553db4ee856fafd305b4983bb1042ecc12abe55d70bc20d8efcb7da490902e4bae63dc2c2ef69bf4fb7b5e935319ac4cf4a26fd37b7a2c903d6151b60891d0821ed01d1f1ad052df279577aec03b633503de951ed6515f5acd3db49e04c69864578fbf6906bcaea3f6f7e15a6fef7d3d3d5ea4deb5e20552bc1d93acb1f7e5d2eafe73578accba7ea53c899f32674419b02f51d017f1534eefa9dd5be004018a8d31cc23582c7e4ba7a6a459e5302af3ffc09896a67914bc34e2274d7d9e549928e283f0d1cc8484be4ea801cd9b48ca7dd603459ed0bea8fedabcbfa8a590a61d18d96300fc2de60d38ec8e4fcf953a893037019deb6fa06fdf950dd85cb11130375e0dad6ae19e249b73d2d6a7d459028050f6fe08a94c9fb3dee511015fd93ad4ca798f38188b5009696c54f40e46c1486cf5c9819edef7f3cfa0b0a930ff44e7622ce7e200873ede20ca72e11b73464d93681b9b221bf4b7e4032f4263401aeab27ad60cb470a968b65159d0aa41a898fea6e4c27262e5fb69fb84e4071e4b8660211896b707fcaa869f8d4b95702a95726b9f23141710ea8989257768fa340ca5490936394ff53cc511de417a0d714d374beab1cbc74f713244c4ffdaef1444e106d24bfa3d9fdb22036f139ae0ba83bb911be5703590da708d8242fcab7aaed2102550a042106f920a1fb523c40e97ef3e3eb57965237b64a8e5168fecc7c72adaa801fd5135ebaf63dd2dc92e2f5305a50b06920adc843039aa4de60a14440a17d9453ce7051b98de3e9adcf2997afcfc3fb1843567c89e47eeeb1a9542dd8731f2c847add8d6f7703fff70052cb1eb5d9991d4b9476961b1643137a7e419fb6b320e22f054641d5e3d215ab6f4f1df150e4aa04d8b3c66e1343d60ef073ee01900a13d0c211170e4ead04c10adf2d056d538868606eeac343dc5546dee65531caf5d62c0c8a21bc9b5f114b5ee63a58eee7ed362c066e59caefc72b0d55de3ab4fe877eeef08b57ee8dda62e45030a0f0cbe23e52911de0954f15464028b47c88c43317c3173fcec1fa509eaef7247001f8110bee68d26f5a32f9961c4d3a6e9f89af6fa0827fe02be14f2000512a19fe3f7bfc53b4bddf3d4609155619571e821c6c699e1a66ee92e50b759843448c5a1a77956e5c38111139b045da0f2f203f4ba2fe3efad3560e83add6f8c29fc24c81ec62817e5a33f4ec4cc86dde1be09529d90f047e2639fc7027de2aaa3a1453aee773b453e4511efe8f0f882be3d541901c571b6d0619c0fd585b2a702ac68cf928d86dc7db8decdd284624ce9b94579500bd8274045ef7a149f3bf613401ad7c5add38a9a89a678cde344422cca3caeed34c5d4f1c8a18209484138698f3227319ac0d627d9b22f66af9518d6439b49210edc94069cddcf644c6c11b35cb9819f771a8466ca88088f02ead63755026464078cdb9f70d27190999b83fdf9728f92141531c93a972d5c824d4958f53305d80e39eb6b0717f5883a210a21e42abf5895223bfabc02e68ed478c310196de0d27e6fa31f2623574230d16cfc2bb670945a094cfbee374305592c8adda04a2dadae2111e04a3a2d37d58f4299ff58538c2f601f46bfadd41f08f5992cee6bcf4d498527c93c9aeff24b900bdd4f9ae4e345d0afb79c483baaabd3a5a1fdc499b22f31f323295390f0edcc633d45de6614ab2d8efccb9ea482a52de722cb1bbdc5e09445dcc998949bf9a83bb9ac68b90f4db5597d157e14bd73486b524c8c80f9b3221a552710f9cb64c451c775b0e44b867e9370e30db570435229f26618cdffcbd2cde35c3fbce45676e5ca0ef3207ed47ec803475656e4bd0e0b33197eb94f0ce4a3665c8054e46bf7a822c61b6e8e30994d3bdedce8d3bfd4a43bde15fa5cf48a8f8cb23381e68806b38f7697323030cf7a98a09e8db83b2fadd8c11397fb64f4932cde6bcbae3aaf922c23beaab917b622a1b73bbeeb603ba010512357ccf3a2fef35ffb455578bb27dc5aca24d1ca5f4e6a9488a76cabd2d8d030a8f8dc86bbe6490ee8d688d8ff33ea82a84a1a143d87b1e924066e5b31b2ab6826343cc61ddd06e0580c9bccff8235128c97833a39068967bf308e25665ea81a7bb6ff0486fc1f0ec1d0c30b87e4a7510df6e1e3870a3e5f2871ecbb63c159877d69f208f2968e7669529ad32c0b094372893dced805041b680fb7eb72214b606d5e6f0c94f6e6bfed3d172fbecbe2e50f3735b72a1c5fde7539812e9a77e9207f5c45e1c33d034090d5acb1f9cd5623e7860049a8085c4f0bccbb593dfd8d0ae8a07e7328df13db94e0165b9b13666971a7ad135f64ed77b4f3cf4eceb3a76f67dec408786cf3706990b0d4e7d6fccec5cb12af13130a11ab1192475e56777c52d0a008c8910830ef94c3accdf1b9e906bd53d04024e3c28d58cca1b4d8ded5148ed87800aaf072d8f33cf0981e33da2c3e52270a24604bf76dc4e242883c8ec74b1fc8216652d430c3c5caef15eee57653803fe39f8015e3bd4acf3ff7bb8d3007d8247523816ef45451b9facf71e853e35fe48d3211d3d50fcbbd431ccc24e2f4210433d35f034d50cc71bfc594b65a1e493b49c9e997940a7ca1bb71e3be0e4cd94e9b0ff213c5e518872a6b55c65a6868f7173cec13617921a21f7791a3b1eedd0c984723dff896eb25feecfbfdaf6952f01b7363f357c6e4f05be666859edee26e848f8c4660ee730bbae1f4b6de37fa5f775680cbc3f3b4d99e7f888f43f72c4b06bfbbbb6987a41fc37ffc8df48ec9a50e6775d66b10a9f5582ca0f4f3e48818280dc5aba440f4f8185d76214bd288d57d877635255f0cfea489250d61f4a0950284e566f5216ded85a6737eff4ca5511d38a94e9ff0bd40180c58e82012389539385697ff0b4f636c3e5e2fe210ff41d14e295b797df4e849f4e15e808e9e850531d88503968e9220054b684b22bf9e8200d16438de39380fe2c9ca4951ff8b261d8b30aaf44aaa3c6b8abff6ebb99ed324508311031f66657475ef3e3d67c4c61087117f3a2336ee849d5a5e4576e2b43c03ae499687f66bb45799589411650c3f224a8dceae65b689932ca32f46b26482e2b94024294bacf28cfbd608277655b922aefcb3bc6f53ce14591d90239e3178183b9fce390e32fedfeebe6a698146998fba5a8e0c4bf5f62885f662f3744dc31dd041db4fb6885f75b0f9617b561b381c59daf2184918c1bb596bfb58a5b46ee7f05be1e87a446f23dc106f4bdee1d488ed0f9d851a14bef3f3c15ba8b3eb30cb15f8b7cea4013e4381525949e7d6ba719676ae696cf4e10fcfe9b31e511c6831c2290b2cb8addacd0833b562ca9c5732058cd6cffde16ab504df0760567010a16156578bbf1b5412d16e6e6a2b49110b9949bcccdaa746f934b5256f774b7426c40085fad7b2f55894f3dff92182c8f8ffdeb15b48bf10fe67c57d94fda53dfcf9f0a1b82fd6a23d24d6ff84a9db9d6ae9009c9b11cd9020c442eacb59e1e15d5fdf7055eba4c546eb5c3873887066cc7e8a03529497256b59847fd10726b2495aa1702d3a5a61c00956df66d0072db7786ed634c37afd9cce1c1243f182e6f4da4d1a39ae81b5a824300c5a12cba9aec6581238406554b31b5ecb7b1021685ba2bbeaabaa65ee322a23fd53481cd643a06ee5edd7ad3f22f4ff6e6b6caf4e65d1e2e69964137af6364e331e11083d52ee90e957a7fd130229e543bcc65257360389b99ec86360a6d0ba80570e8e5963f04f7684b083ca4d872037f8fa2c14ef809f0544b0f0e5118da0b5e5194f07439a26d9b008a0a2308b6fe90d2ef25cb98c0280660bb4d2cf9c72742e7d9191bd87917d4a631324bd8dae5aa88515fca627387a8f23ca206d315470dc606100c2122047ad27024bce20f85360253482a28e0494af01ac52376b9606cd9f238ca61275f24fe35b6ef372f05bafbcd900e8f2ba940dfe52c52a2af26525b890648e569c6048780a9a8961309ca52fe83bc4294527a9e845a27f274dd772f17e4f009538c38c4bb8b20c466f5c039c13c496e1addd87e8ad99805c62a7602d0f2bb6c345254e6fdb166239d6b47ae44b3e8bd8c9ddb3af4a39266f5703d698be38d88885e064b9ff267b5db6cc4983089c5323819172cf4e3b93fc6304ebd6e2b6840712d89ccca59bc27ba44384589deeabd592433b8088f1ee7dbc3972fd3da546bb75edb07763d107ab5d72542aebac729603391e775a1d55dc6fede6928499bdbe6510d83eec351e341a1fec7af3a8ab46fe5b4bd4f9db79d8edb5600af5b4e6c8414dfd7791cf1dea839bddfa3cff85301bf07f13983f0a957d951b5e790871467a7f00c3d8e97c925f4ac41180bc827f088e96a0c5c985708b1a067f06df48ebf2c48a51f17c40351765413abf58fac0462ccf08828700a6b4068e0a7cef1f62408068251db7fe35f191385fa9c6c509cde3237ffed4e5868ad819549abd50a6e478014b4895102fa584eb8c1e50176f383e961eba7605e440545add0d8a2d8f5bd11be93f50846254ced4c661bda0500ec4720c5b5c943b9735cd58ef97f98ce4aa42a0447bb52ddd09ca5a5a6316af1e1579b8785fe2f875f82b35901737cabc86f0612ff876cde74fffea432b5d4dc98196346f669ae0bcfbac9d444a71ae5c13e6e5e6e58ff115885f4bb74f181efd3fec19c6474ee089458b6a890828736dee6492d830f16b38033877d6e07c27dc0890162ec61ac4c2258ae2975a11036783c81ef73cce27eb898d0e13499486fa4c8835147fcf79af7d79e495eff7fea48221beba9a32d77f45520e13aca93abdb9c66fa832efed0b7a14e6656cb92b134b23df013f4064b3a8aa97cadc84109f9a35b0db78b153ba5964fd638526278d32bf2464ffffd5ee35c47a4ed12fe662396087dcc68715d7891742b4452e7eedd18b394dd0b6a7d8aae4bbdcae2e64e9f51020df155d308a7c294219d6730954b4d3989a3a7cd77413f9987618f23db6e8d8599d4738613e6b6129fc525e4204d3aa2666cc9ee0da63ab2110082149c00be5d15f750914dd11df570349dfe3e587d8a7480a975b83f64723b9a633b51dbb2d4845de20a2df10aa088279add951a7a4533de3b0d3571e7d404512623c47260d2e8e644b767d47db550a30c6e87cf27926a4c66a17fd4b68286843b0148baaf1ecb926e9dd13abe44c6f280fd5f42961be359fdd11c0f46cb341c7530f1de45498d243331ef335aab0e83eee12a062044b0c7aaf8c9811c78ef14a490f2b30b95c3199484981e6273b95fd65cae71b638e88c07b510fe8864514167bb3b7c1e8163260376dfd3dfcdf7bb89fa84f53863bc1cb3dfe5e6b6763921dca810325f3701de5144d964df98819a48481d99d2451ab0af50e57bb46b4e96c39d348ad3bd31929b4aab8d6c53e15c74fb8ed55b7a6152ce6ea132e3f32e8d9d1ea67ffb10b178d82d7fd86e1b98085542e1df99e17ddedfae139efb2665ec1a13b89b7714ff73649a2cecb28ae097433ece3690cca1a4a8d1d4c86c998eda420d127404a73f2143aac8f6f889a47abe956b3e4243e46aff429d716537c72807c0c76888d45264b6a4593b742068af219892a1a43cc45fa3b9f999595cddd08b0208e
Note: See TracChangeset
for help on using the changeset viewer.