From 886c5600086187ce67a8f8084896db04dcccf113 Mon Sep 17 00:00:00 2001 From: John Mertic Date: Wed, 18 Apr 2012 23:06:15 -0400 Subject: [PATCH] Release 6.5.0beta6 --- cache/include/javascript/sugar_grp1.js | 7 +- cache/include/javascript/sugar_grp1_jquery.js | 12 +- cache/include/javascript/sugar_grp_jsolait.js | 3 +- download.php | 28 +- files.md5 | 126 ++--- include/DetailView/header.tpl | 35 +- include/EditView/footer.tpl | 4 +- include/EditView/header.tpl | 4 +- include/ListView/ListViewData.php | 5 +- include/ListView/ListViewPagination.tpl | 2 +- include/MVC/View/views/view.favorites.php | 3 +- include/SearchForm/tpls/SugarSpot.tpl | 4 +- .../plugins/function.sugar_action_menu.php | 5 +- .../Smarty/plugins/function.sugar_button.php | 151 ++++-- .../Smarty/plugins/function.sugar_menu.php | 108 +--- include/SugarHtml/SugarHtml.php | 453 +++++++++++++++++ include/database/SqlsrvManager.php | 9 + .../SugarWidgets/SugarWidgetFielddatetime.php | 23 +- include/images/default-profile.png | Bin 0 -> 745 bytes include/javascript/ajaxUI.js | 3 +- .../javascript/jquery/jquery.hoverscroll.js | 2 +- include/javascript/jquery/jquery.sugarMenu.js | 4 +- include/javascript/jquery/jquery.superfish.js | 6 + include/javascript/sugar_3.js | 4 +- include/language/en_us.lang.php | 16 +- include/utils.php | 2 +- include/utils/layout_utils.php | 17 +- include/utils/mvc_utils.php | 7 +- .../src_files/include/javascript/ajaxUI.js | 9 +- .../src_files/include/javascript/sugar_3.js | 5 +- .../modules/Meetings/jsclass_scheduler.js | 7 +- modules/ACLRoles/DetailView.tpl | 8 +- modules/ACLRoles/EditView.php | 3 +- .../Administration/language/en_us.lang.php | 13 +- .../templates/GlobalSearchSettings.tpl | 1 + modules/Calls/metadata/detailviewdefs.php | 6 +- modules/Calls/tpls/footer.tpl | 4 +- modules/Configurator/language/en_us.lang.php | 2 +- modules/Emails/EditView.php | 38 +- modules/Emails/EditViewArchive.html | 12 +- modules/Emails/Email.php | 4 +- modules/Meetings/jsclass_scheduler.js | 3 +- modules/Meetings/metadata/detailviewdefs.php | 6 +- modules/Meetings/tpls/footer.tpl | 4 +- modules/ModuleBuilder/Module/StudioModule.php | 4 +- modules/ModuleBuilder/controller.php | 7 +- .../ModuleBuilder/views/view.modulefield.php | 3 +- modules/Notes/vardefs.php | 3 +- modules/Studio/language/en_us.lang.php | 12 +- modules/SugarFeed/SugarFeed.php | 4 +- modules/Tasks/vardefs.php | 2 +- modules/UpgradeWizard/uw_utils.php | 2 +- modules/Users/GeneratePassword.php | 2 +- modules/Users/Save.php | 100 ++-- modules/Users/UserViewHelper.php | 28 +- modules/Users/language/en_us.lang.php | 10 +- modules/Users/tpls/EditViewFooter.tpl | 2 +- modules/Users/tpls/EditViewHeader.tpl | 2 +- modules/Users/views/view.detail.php | 18 +- modules/Users/views/view.edit.php | 33 +- sugar_version.php | 8 +- .../plugins/FunctionSugarButtonTest.php | 472 ++++++++++++++++++ themes/Sugar5/css/style.css | 4 + themes/Sugar5/images/sugar_icon.ico | Bin 894 -> 1082 bytes themes/Sugar5/tpls/footer.tpl | 4 +- 65 files changed, 1413 insertions(+), 475 deletions(-) create mode 100644 include/SugarHtml/SugarHtml.php create mode 100644 include/images/default-profile.png create mode 100755 tests/include/Smarty/plugins/FunctionSugarButtonTest.php diff --git a/cache/include/javascript/sugar_grp1.js b/cache/include/javascript/sugar_grp1.js index 6b351ec5..8085762d 100644 --- a/cache/include/javascript/sugar_grp1.js +++ b/cache/include/javascript/sugar_grp1.js @@ -362,7 +362,7 @@ if(pageTotal>=0) sugarListView.update_count(pageTotal);else if(value) sugarListView.update_count(count,true);else sugarListView.update_count(-1*count,true);sugarListView.prototype.toggleSelected();} -sugarListView.check_all=sugarListView.prototype.check_all;sugarListView.confirm_action=sugarListView.prototype.confirm_action;sugarListView.prototype.check_boxes=function(){var inputsCount=0;var checkedCount=0;var existing_onload=window.onload;var theForm=document.MassUpdate;inputs_array=theForm.elements;if(typeof theForm.uid.value!='undefined'&&theForm.uid.value!=""){checked_items=theForm.uid.value.split(",");if(theForm.select_entire_list.value==1){document.MassUpdate.massall.disabled=true;sugarListView.prototype.toggleSelected();} +sugarListView.check_all=sugarListView.prototype.check_all;sugarListView.confirm_action=sugarListView.prototype.confirm_action;sugarListView.prototype.check_boxes=function(){var inputsCount=0;var checkedCount=0;var existing_onload=window.onload;var theForm=document.MassUpdate;inputs_array=theForm.elements;if(typeof theForm.uid.value!='undefined'&&theForm.uid.value!=""){checked_items=theForm.uid.value.split(",");if(theForm.select_entire_list.value==1){document.MassUpdate.massall.disabled=true;sugarListView.prototype.toggleSelected();$("#button_select_all_top").click();} for(var wp=0;wp0&&this._doWhenStack.length>0);} var notAvail=[];var executeItem=function(context,item){if(item.overrideContext){if(item.overrideContext===true){context=item.obj;}else{context=item.overrideContext;}} -item.fn.call(context,item.obj);};var i,len,item,test;for(i=0,len=this._doWhenStack.length;i-1;i--){item=this._doWhenStack[i];if(!item||!item.check){this._doWhenStack.splice(i,1);}} this._startDoWhenInterval();}else{if(this._doWhenInterval){this._doWhenInterval.cancel();this._doWhenInterval=null;}} @@ -647,7 +647,8 @@ if(r.favicon) {SUGAR.ajaxUI.setFavicon(r.favicon);} var c=document.getElementById("content");c.innerHTML=cont;SUGAR.util.evalScript(cont);if(r.moduleList) {SUGAR.themes.setModuleTabs(r.moduleList);} -if(typeof(r.responseTime)!='undefined'){var rt=document.getElementById('responseTime');if(rt!=null){rt.innerHTML=r.responseTime;}}}catch(e){SUGAR.ajaxUI.showErrorMessage(o.responseText);}},showErrorMessage:function(errorMessage) +if(typeof(r.responseTime)!='undefined'){var rt=$("#responseTime");if(rt.length>0){rt.html(rt.html().replace(/[\d]+\.[\d]+/,r.responseTime));} +else if(typeof(logoStats)!="undefined"){$("#logo").attr("title",logoStats.replace(/[\d]+\.[\d]+/,r.responseTime)).tipTip({maxWidth:"auto",edgeOffset:10});}}}catch(e){SUGAR.ajaxUI.showErrorMessage(o.responseText);}},showErrorMessage:function(errorMessage) {if(!SUGAR.ajaxUI.errorPanel){SUGAR.ajaxUI.errorPanel=new YAHOO.widget.Panel("ajaxUIErrorPanel",{modal:false,visible:true,constraintoviewport:true,width:"800px",height:"600px",close:true});} var panel=SUGAR.ajaxUI.errorPanel;panel.setHeader(SUGAR.language.get('app_strings','ERR_AJAX_LOAD'));panel.setBody('');panel.setFooter(SUGAR.language.get('app_strings','ERR_AJAX_LOAD_FOOTER'));panel.render(document.body);SUGAR.util.doWhen(function(){var f=document.getElementById("ajaxErrorFrame");return f!=null&&f.contentWindow!=null&&f.contentWindow.document!=null;},function(){document.getElementById("ajaxErrorFrame").contentWindow.document.body.innerHTML=errorMessage;window.setTimeout('throw "AjaxUI error parsing response"',300);});SUGAR.ajaxUI.errorMessage=errorMessage;window.setTimeout('if((typeof(document.getElementById("ajaxErrorFrame")) == "undefined" || typeof(document.getElementById("ajaxErrorFrame")) == null || document.getElementById("ajaxErrorFrame").contentWindow.document.body.innerHTML == "")){document.getElementById("ajaxErrorFrame").contentWindow.document.body.innerHTML=SUGAR.ajaxUI.errorMessage;}',3000);panel.show();panel.center();throw"AjaxUI error parsing response";},canAjaxLoadModule:function(module) {var checkLS=/&LicState=check/.exec(window.location.search);if(checkLS||(typeof(SUGAR.config.disableAjaxUI)!='undefined'&&SUGAR.config.disableAjaxUI==true)){return false;} diff --git a/cache/include/javascript/sugar_grp1_jquery.js b/cache/include/javascript/sugar_grp1_jquery.js index 482c94f9..b1884e4b 100644 --- a/cache/include/javascript/sugar_grp1_jquery.js +++ b/cache/include/javascript/sugar_grp1_jquery.js @@ -1363,7 +1363,7 @@ $.fn.hoverscroll = function(params) { // Bind stopMoving to the mouseleave // jQuery 1.2.x backward compatibility, thanks to Andy Mull! // replaced .mouseleave(...) with .bind('mouseleave', ...) - .bind('mouseleave', function() {stopMoving();}); + .bind('mouseleave, mouseout', function() {stopMoving();}); // Bind the startMoving and stopMoving functions // to the HTML object for external access @@ -1732,6 +1732,12 @@ Note: var $$ = $(this), menu = getMenu($$), o = sf.op; + + if($$.parent().hasClass("hs-active")) { + //Bug#51993: deactive submenu while hoverscroll is activated + return; + } + if (!o.firstOnClick || menuActive || $$.parent()[0] != menu) { clearTimeout(menu.sfTimer); @@ -2384,8 +2390,8 @@ Note: var jNode = $(node); var parent = jNode.parent(); var fancymenu = ""; - var slideUpSpeed = "fast"; - var slideDownSpeed = "fast"; + var slideUpSpeed = 0; + var slideDownSpeed = 0; var dropDownHandle; //if the dropdown handle doesn't exist, lets create it and diff --git a/cache/include/javascript/sugar_grp_jsolait.js b/cache/include/javascript/sugar_grp_jsolait.js index 309f7edb..2e5d883c 100644 --- a/cache/include/javascript/sugar_grp_jsolait.js +++ b/cache/include/javascript/sugar_grp_jsolait.js @@ -154,6 +154,5 @@ return nTopPos;} SugarWidgetScheduleRow.prototype.add_freebusy_nodes=function(tr,attendee){var hours=9;var segments=4;var html='';var is_loaded=false;if(typeof GLOBAL_REGISTRY['freebusy_adjusted']!='undefined'&&typeof GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id]!='undefined'){is_loaded=true;} for(var i=0;i=fb_limit){td.style.backgroundColor="#AA4D4D";}}}}}/* End of File modules/Meetings/jsclass_scheduler.js */ +if(is_loaded){if(typeof(GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash])!='undefined'){td.style.backgroundColor="#4D5EAA";if(GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash]>1){td.style.backgroundColor="#AA4D4D";}}}}}/* End of File modules/Meetings/jsclass_scheduler.js */ diff --git a/download.php b/download.php index 21c62b1c..45ca2e28 100644 --- a/download.php +++ b/download.php @@ -38,7 +38,7 @@ if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); global $db; -if(empty($_REQUEST['id']) || empty($_REQUEST['type']) || !isset($_SESSION['authenticated_user_id'])) { +if((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUEST['type']) || !isset($_SESSION['authenticated_user_id'])) { die("Not a Valid Entry Point"); } else { @@ -114,7 +114,11 @@ else { if(isset($_REQUEST['isTempFile']) && ($_REQUEST['type']=="SugarFieldImage")) { $local_location = "upload://{$_REQUEST['id']}"; } - + + if(isset($_REQUEST['isTempFile']) && ($_REQUEST['type']=="SugarFieldImage") && (isset($_REQUEST['isProfile'])) && empty($_REQUEST['id'])) { + $local_location = "include/images/default-profile.png"; + } + if(!file_exists( $local_location ) || strpos($local_location, "..")) { die($app_strings['ERR_INVALID_FILE_REFERENCE']); } else { @@ -164,16 +168,26 @@ else { header("Pragma: public"); header("Cache-Control: maxage=1, post-check=0, pre-check=0"); if(isset($_REQUEST['isTempFile']) && ($_REQUEST['type']=="SugarFieldImage")) { - $mime = getimagesize($download_location); - if(!empty($mime)) { + $mime = getimagesize($download_location); + if(!empty($mime)) { header("Content-Type: {$mime['mime']}"); } else { header("Content-Type: image/png"); } } else { - header("Content-Type: application/force-download"); - header("Content-type: application/octet-stream"); - header("Content-Disposition: attachment; filename=\"".$name."\";"); + + if(preg_match("/\.jpg|\.gif|\.png|\.jpeg/i", $name)){ + $mime = getimagesize($download_location); + if(!empty($mime)) { + header("Content-Type: {$mime['mime']}"); + } + } + else{ + header("Content-Type: application/force-download"); + header("Content-type: application/octet-stream"); + header("Content-Disposition: attachment; filename=\"".$name."\";"); + } + } // disable content type sniffing in MSIE header("X-Content-Type-Options: nosniff"); diff --git a/files.md5 b/files.md5 index 20537189..2abe51ad 100644 --- a/files.md5 +++ b/files.md5 @@ -1,5 +1,5 @@ 'd3f150e4a5bed444763ebe8a81742a95', './.htaccess' => 'd41d8cd98f00b204e9800998ecf8427e', @@ -271,6 +271,7 @@ $md5_string = array ( './include/HTMLPurifier/HTMLPurifier.standalone.php' => '98906b387369850c456a850dbf20b9da', './include/HTMLPurifier/LICENSE' => 'a1b3d3e45e8422eed104489842a6f546', './include/HTMLPurifier/CREDITS' => 'a5f9ddecea015543001404c0a9bfd181', + './include/SugarHtml/SugarHtml.php' => '444f8fba4624fc7cf2bffb278c1f72f4', './include/SubPanel/SubPanelTiles.js' => '911b71e48f36dc31831a5e88503ee20b', './include/SubPanel/SugarTab.php' => '398584e6128906ecf4b4b5154ced95ee', './include/SubPanel/SubPanelDynamic.html' => '4f74fcd4211256ec95d0054799608906', @@ -502,8 +503,8 @@ $md5_string = array ( './include/utils/progress_bar_utils.php' => 'dd1681c9c3f418d66364f4565eb0e286', './include/utils/php_zip_utils.php' => '837fa2513561b0b259abbbbd4082cd7e', './include/utils/zip_utils.php' => 'f765a38da8ded7c908fa5319d175c836', - './include/utils/mvc_utils.php' => '2c04d4950951a23bfb37caca0e08032f', - './include/utils/layout_utils.php' => '8e9ba2ade862c13f6b5af45f5713eb2c', + './include/utils/mvc_utils.php' => 'dddaf07ab17ebd0c2c1ab0bf035a2621', + './include/utils/layout_utils.php' => 'e415c490b561cf3e7145adb1cd43bc2f', './include/images/install_themes.jpg' => '01fe7a67fb311afe5e93e9819ca36b12', './include/images/seed_jim_id.gif' => 'ccdaf0d492f924e8af2611b374550abd', './include/images/docs.png' => '0752db044e772d50293561053acac995', @@ -527,6 +528,7 @@ $md5_string = array ( './include/images/sugarcrm_copyright_logo.jpg' => 'cab0f0a114f2df12d8a5a4ec3fe3ad2a', './include/images/seed_max_id.gif' => 'e208059a38b9899e47b9e3dad65e8888', './include/images/poweredby_sugarcrm.png' => '824e7e65a3b7901cb0a1d53a80ad9310', + './include/images/default-profile.png' => 'c7aa104e4073f0c385d3e153349b4004', './include/images/configure.png' => 'f12c66ea7f6af68e4a8649c2c9aa6fcb', './include/images/seed_chris_id.gif' => 'ec816fe3d80053c5225890e838a5813e', './include/images/import.png' => '7d0b32092c3ac09648d3c1b111a04eec', @@ -568,7 +570,7 @@ $md5_string = array ( './include/nusoap/license.txt' => '25823f4a2e463ab2c6b5873f07e428e1', './include/nusoap/class.wsdl.php' => 'cd7f1a43ca08891ac1ce04d4d1282c49', './include/nusoap/class.soap_val.php' => '084a898ecf261c201427fd41d4ee40e0', - './include/utils.php' => 'dc9dbf7fe041d2d2f47251272e107f3c', + './include/utils.php' => 'a3a5d1c8268c7f0035b98ca19e29251a', './include/SugarHttpClient.php' => '87fa99a397caaaceb121a21d91ed5260', './include/Sugar_Smarty.php' => 'ac26b79b198a41180bdfd39170974f95', './include/phpmailer/class.smtp.php' => '64255208cd6f263a69d58918dcb7138d', @@ -607,7 +609,7 @@ $md5_string = array ( './include/database/FreeTDSManager.php' => 'e8dd14878558239a32e4c963f03ddf74', './include/database/MssqlHelper.php' => '6b3a36ab4462e0f838c35e0e74e0f02b', './include/database/DBManagerFactory.php' => '021c6c562cd96f304544af0e336dc736', - './include/database/SqlsrvManager.php' => '84a0ceef3f982b9ff8756e7a4f466a9c', + './include/database/SqlsrvManager.php' => 'f693f670e865d0f1e4fc6e205bde6643', './include/database/MssqlManager.php' => '06c8d5c80dca53f389f6fcdcd41cb0ed', './include/timezone/timezones.php' => '15844342704f03ef8d40603abe9aa99b', './include/SugarSQLValidate.php' => 'eb288af9ccb9828370ef3999ad926619', @@ -721,9 +723,9 @@ $md5_string = array ( './include/ytree/TreeView/css/forecasts/tree.css' => '59797a1f43dc5602932f826d687d398f', './include/GroupedTabs/GroupedTabStructure.php' => '9b88d71d41cb5beb67e5a7344101f537', './include/EditView/SubpanelQuickCreate.php' => '97329858f4ea45e9ea681bebcebc5b92', - './include/EditView/footer.tpl' => 'ee01b71a0c6f35b2d9a53cde683b46e4', + './include/EditView/footer.tpl' => '8b987e19848d65cc532c12ae0f20443a', './include/EditView/SugarVCR.php' => '6a0a3aaddb7889a8d618a4aede4d6d90', - './include/EditView/header.tpl' => 'ceb86f5a1016c8820aee74ff0d34421d', + './include/EditView/header.tpl' => '5c215701582b9f43647ac6321c7a04e6', './include/EditView/QuickCreate.tpl' => 'fa3dacaca4c4985fa7d4e19e44d8a30a', './include/EditView/EditView.php' => '585450ac1a175834d05e944f77364c17', './include/EditView/EditView2.php' => '0f0de3b1a5ef1ba7d451f6e1857613b6', @@ -771,7 +773,7 @@ $md5_string = array ( './include/tcpdf/CHANGELOG.TXT' => 'b41664d05748e067b3d52ba1eba1e9c3', './include/tcpdf/tcpdf.php' => 'e1032f914233be45b287bbb29bdfb452', './include/tcpdf/README.TXT' => 'f64835b5e9149a89515a9eb589d13a38', - './include/javascript/ajaxUI.js' => '0ccc1119bde963217fb17b7ecf14abc4', + './include/javascript/ajaxUI.js' => '61452824c5e7e7515646a30deaaf6628', './include/javascript/calendar.js' => '74fcfcacbdf160e7eb749d7697ad8788', './include/javascript/iscroll.js' => 'f6b1477d2416ee1c40578d56c89220c1', './include/javascript/include.js' => 'f3ef613992bd21dcb9a6033c03675b90', @@ -782,7 +784,7 @@ $md5_string = array ( './include/javascript/sugar_yui_overrides.js' => '2044e4ff54670e82359c21cca12b2dd5', './include/javascript/cookie.js' => '88a6745e90f7c043394eca8b106068b2', './include/javascript/popup_parent_helper.js' => '592953cb14307a0ce288261d40c4f8a9', - './include/javascript/sugar_3.js' => 'e177e54cd59789355a1a777d793c3fb2', + './include/javascript/sugar_3.js' => '09f6c2aa1ba9c6bb0dd675e7e5c75d43', './include/javascript/jquery.js' => '819fb9d29c24f79d34343e9f182aaf24', './include/javascript/sugar_connection_event_listener.js' => '27234843e68e64fc9c399044619320be', './include/javascript/jsclass_async.js' => 'd725c16df9803e561437c4a2e13d1372', @@ -809,7 +811,7 @@ $md5_string = array ( './include/javascript/jquery/markitup/templates/preview.css' => 'dfc4c5b56b115d52e7ca83dd848141e7', './include/javascript/jquery/markitup/templates/preview.html' => '50ca53cf759b1c88a3ed8b29e4b2c3ed', './include/javascript/jquery/markitup/jquery.markitup.js' => '3e0726bc3d1829105ff52bd06d91242d', - './include/javascript/jquery/jquery.hoverscroll.js' => '301acc1d3f23f4116ad00ea08d392b58', + './include/javascript/jquery/jquery.hoverscroll.js' => '6f47c83c58cdddd2a704f967e2ec29d2', './include/javascript/jquery/jquery.elementReady.js' => 'ca3ff36ea735918a7425a47940d0e1c8', './include/javascript/jquery/jquery.js' => '219073097031d9c1a95a1291d66f3a10', './include/javascript/jquery/jquery.tipTip.js' => '3bcfb8155251dc38fe2d965e8ff78408', @@ -846,8 +848,8 @@ $md5_string = array ( './include/javascript/jquery/themes/base/jquery.ui.base.css' => '61035f9b4c191adb57badc1f558f4bc3', './include/javascript/jquery/themes/base/jquery.ui.accordion.css' => '4a87fc350a66bd0c9179eb9554e1cea0', './include/javascript/jquery/jquery.hoverIntent.js' => '0aaea26d96fc385b1540879c41c2b2dd', - './include/javascript/jquery/jquery.sugarMenu.js' => '1e7b8180bbcca8b12f3135361d1e6f96', - './include/javascript/jquery/jquery.superfish.js' => 'a45cac34d0beb16327d55d89babce541', + './include/javascript/jquery/jquery.sugarMenu.js' => '37598ebb219b563e5c4e3721e6c7c0f9', + './include/javascript/jquery/jquery.superfish.js' => 'b00fd48b6eb4854b0b4d0b8c2ccbc358', './include/javascript/jquery/jquery.showLoading.js' => '573787c855a3389081b878302f905df7', './include/javascript/sugarwidgets/SugarYUILoader.js' => 'c8198074c79a9df405d87800127c4e96', './include/javascript/sugarwidgets/SugarYUIWidgets.js' => '87d2799c07bc59a87f0cfc230158ed74', @@ -2545,7 +2547,7 @@ $md5_string = array ( './include/MVC/View/views/view.quick.php' => '4c1fda7615101d7c9a11af7e9c495289', './include/MVC/View/views/view.xml.php' => '5ca6f033ae95a3d8d7eacbaaac86d58a', './include/MVC/View/views/view.sugarpdf.config.php' => '85c23b2aa8b6af2b82efc3eae453a118', - './include/MVC/View/views/view.favorites.php' => '7df6efe0fb6a18d61962af6b6e5afd7a', + './include/MVC/View/views/view.favorites.php' => 'e8585f22c20d50e37895a3c968f6790e', './include/MVC/View/views/view.importvcard.php' => 'fd7a69f7fb258ce490acbf0334b263f9', './include/MVC/View/views/view.ajaxui.php' => '2b6496589d96202d453cb98ffbc51d3a', './include/MVC/View/views/view.classic.config.php' => '5d90625b2648beb884b29c10a076b1fe', @@ -2572,7 +2574,7 @@ $md5_string = array ( './include/MVC/preDispatch.php' => 'e22affc5e53060ce3fc9780c21b32289', './include/SearchForm/tpls/footer.tpl' => '3461531f4a52f4aecc61756098bb982f', './include/SearchForm/tpls/header.tpl' => '8b71afe9e844839dddf7cde148de2a9a', - './include/SearchForm/tpls/SugarSpot.tpl' => '60a48028ee1a0dd89b28c41586084683', + './include/SearchForm/tpls/SugarSpot.tpl' => 'cc926947bc5552040deb01a6961576a3', './include/SearchForm/tpls/SearchFormGenericAdvanced.tpl' => 'f8d8d9a835a80ce85bcd0b6b801ad7cf', './include/SearchForm/tpls/SearchFormGeneric.tpl' => '2e5f84f3de4d7e15d122e57253acfa91', './include/SearchForm/SugarSpot.php' => 'a899046092d8a1bdb1fd93352b209ab4', @@ -2597,13 +2599,13 @@ $md5_string = array ( './include/Pear/XML_HTMLSax3/LICENSE' => 'a45bb1bbeed9e26b26c5763df1d3913d', './include/Pear/XML_HTMLSax3/HTMLSax3.php' => '11107d97b19feb13feb394cd858603f0', './include/ListView/ListViewSmarty.php' => '1fdc53c2ffa2d08d9e9c671fa45c8390', - './include/ListView/ListViewData.php' => 'abd86dd6e8118f33f544b52adf83c717', + './include/ListView/ListViewData.php' => '8654d97722073be2651d310b62d4f88d', './include/ListView/ListViewGeneric.tpl' => '806bb3588292fad8800209dd9bac02d5', './include/ListView/ListView.php' => 'eba8cde03dfb26bf0e7ec9dba95e0755', './include/ListView/ListViewFacade.php' => 'e82b5372d43acd05f1dbe5855c40cdbd', './include/ListView/ListViewDCMenu.tpl' => 'e7f7ad82a50d2998a933c7e8c333c080', './include/ListView/ListViewXTPL.php' => '5fff1f22e74a373c216a5358e9be1aae', - './include/ListView/ListViewPagination.tpl' => '93067a812cfefb604df80040a48be3df', + './include/ListView/ListViewPagination.tpl' => '4e872c4c80c16572a07094349132f31b', './include/ListView/ListViewDisplay.php' => 'dacd21362a205d4c5e00df1ced8c4463', './include/ListView/ListViewNoMassUpdate.tpl' => '979476d174c8fa58af325195f03a3b29', './include/vCard.php' => 'b9b49b4d676cbb05c00771e037687ef3', @@ -2616,7 +2618,7 @@ $md5_string = array ( './include/resource/Observers/ResourceObserver.php' => 'd93dc69d2372859fe8fb0f1068587d54', './include/resource/Observers/SoapResourceObserver.php' => 'bff762397d04d958883d06ed160d8bd1', './include/language/jsLanguage.php' => '3aade005a1d8758085838ed1a22ebf34', - './include/language/en_us.lang.php' => '2d6e14b8028dcd62c63a6405e094b73b', + './include/language/en_us.lang.php' => 'db97e6e1f900ff2e4cbd23299420cde1', './include/language/en_us.notify_template.html' => 'd443be0488e3ce72c2e10984e891d275', './include/pclzip/readme.txt' => '2265cad9ccb84cfcd4093ce26b22dc97', './include/pclzip/gnu-lgpl.txt' => '7fbc338309ac38fefcd64b04bb903e34', @@ -2685,12 +2687,12 @@ $md5_string = array ( './include/Smarty/plugins/modifier.lower.php' => '014241bdc9356e4db65ff84902e868d2', './include/Smarty/plugins/function.html_image.php' => '06abba1563143b4b1190ca07d53b0a0d', './include/Smarty/plugins/function.config_load.php' => '752a15886ca6ee831f2ab650ab09fe4e', - './include/Smarty/plugins/function.sugar_button.php' => '92ff4af0806201c1f2e71130c6f8ccdb', + './include/Smarty/plugins/function.sugar_button.php' => 'adadde73bbbf0d6d2e2a6480a77473b9', './include/Smarty/plugins/function.sugar_ajax_url.php' => 'a0f1b3ec9077718a4a020b2be4f12b66', './include/Smarty/plugins/function.popup.php' => 'cf231d09647d1b1cf0adf5904b66b6a6', './include/Smarty/plugins/function.sugar_variable_constructor.php' => '6561cdb5987f989d18090a4713c9a27a', './include/Smarty/plugins/function.sugarvar_connector.php' => 'c63e36be38618aeb5da1d3a54f5019b2', - './include/Smarty/plugins/function.sugar_menu.php' => '743a9cb72e1beca06c56362097a0aa0e', + './include/Smarty/plugins/function.sugar_menu.php' => '8509c3cbf47c29a30529de984c7f7d11', './include/Smarty/plugins/function.sugar_translate.php' => '6c15cff8d615f848193726c8cd154b18', './include/Smarty/plugins/function.sugar_getscript.php' => '27ec71195a0e581d12dced7b669ca29f', './include/Smarty/plugins/function.counter.php' => '73d05c9943053b38780e3bb86bf74fd2', @@ -2722,7 +2724,7 @@ $md5_string = array ( './include/Smarty/plugins/function.sugar_evalcolumn.php' => '4a3bee9672c840cb602f36f8fc42c542', './include/Smarty/plugins/function.sugar_link.php' => '2495ebff2913647edfc2ac8c0322a9dd', './include/Smarty/plugins/compiler.append.php' => '19852716d0b872d80852a199fb5b6335', - './include/Smarty/plugins/function.sugar_action_menu.php' => 'a9cbd74f6bdf7b0436c020d7d98d71a1', + './include/Smarty/plugins/function.sugar_action_menu.php' => 'f4c3d00aa99eb4e2b387fd720550feee', './include/Smarty/plugins/block.textformat.php' => 'b0bebaca5693c6baf9332d22d6fbd1d1', './include/Smarty/plugins/modifier.lookup.php' => '40764bc28a9c155fffc65f60253c5b66', './include/Smarty/plugins/function.html_select_time.php' => '780246c13ff291a61a80e69a12690e4a', @@ -2745,7 +2747,7 @@ $md5_string = array ( './include/Smarty/README' => '1a3fe37eed420a020489d1082ea150c8', './include/Smarty/Smarty_Compiler.class.php' => 'b9a859a96c0d005cee69253bac461599', './include/DetailView/footer.tpl' => '82f240a39faba85858e561048e23fffd', - './include/DetailView/header.tpl' => '4b5a7aae4440f7d14c63c6a11f62277c', + './include/DetailView/header.tpl' => '9c88585d5c0e14d03fc50ea61168707a', './include/DetailView/DetailView.tpl' => '1c48b9a2df705a7f1ed37f6ee6d17d17', './include/DetailView/DetailView.php' => '3df8ccba8aca6dffb5969c47001d7435', './include/DetailView/DetailView2.php' => '4f800afa17ab95068341a3474e78fb76', @@ -2810,7 +2812,7 @@ $md5_string = array ( './include/generic/SugarWidgets/SugarWidgetFieldnum.php' => '15c06a35b7f2ee9f0a41716d5b6d393d', './include/generic/SugarWidgets/SugarWidgetFieldrelate.php' => '9c6d426695f9636ebe92dc1c83bba3d5', './include/generic/SugarWidgets/SugarWidgetSubPanelTopSelectAccountButton.php' => '7c46e299d2783d00cb36be8517100452', - './include/generic/SugarWidgets/SugarWidgetFielddatetime.php' => 'f6c58bb47ec077156d353702e8728fcd', + './include/generic/SugarWidgets/SugarWidgetFielddatetime.php' => 'e1c5b24ddd42edaf6f7548bc13984fa5', './include/generic/SugarWidgets/SugarWidgetSubPanelEmailLink.php' => '7b67281f140b86aad81ec6e817453467', './include/generic/SugarWidgets/SugarWidgetSubPanelRemoveButtonMeetings.php' => 'b122f559be91ce0a6ea228dc4c94b4c7', './include/generic/SugarWidgets/SugarWidgetFieldfloat.php' => 'c666c7874c49637db91c03b53abaa572', @@ -3411,7 +3413,7 @@ $md5_string = array ( './modules/Leads/SugarFeeds/LeadFeed.php' => '98bd66d9b339d8328fa814b7990c487c', './modules/Notes/tpls/QuickCreate.tpl' => '6d69dd062d81c322a168639aa0bea2db', './modules/Notes/Menu.php' => 'c30ebf1a9bad324f141d5bc359f1d461', - './modules/Notes/vardefs.php' => '67b8244cb886231fd798b2977979c8ca', + './modules/Notes/vardefs.php' => 'b2b53713ba6d5b4cead9a5422e38883c', './modules/Notes/controller.php' => 'f02f99558fc738986e5eb1891a4e57fd', './modules/Notes/field_arrays.php' => 'f65bdf4f6fa8f474701cd229d8750d11', './modules/Notes/SubPanelView.php' => '753cc6abd7b4d79d7a3ea9d8da09189c', @@ -3670,9 +3672,9 @@ $md5_string = array ( './modules/ACLRoles/EditViewBody.tpl' => '570692e3f88129c67f055558b94e0fb0', './modules/ACLRoles/views/view.list.php' => '41f69cfe7aed8a3528470b292e305046', './modules/ACLRoles/EditRole.php' => 'b6f5cd93ee278c497ea4a52641636b3f', - './modules/ACLRoles/EditView.php' => '8351ee28c9049d25038a42e4062f13a2', + './modules/ACLRoles/EditView.php' => '19eb4b5838c1bfd9db5c7511c2cad73d', './modules/ACLRoles/ACLRole.php' => '5d147bfe0736a2c87582a7b2716bfe38', - './modules/ACLRoles/DetailView.tpl' => '145e4b3f20e916a92980d864374743e2', + './modules/ACLRoles/DetailView.tpl' => '825284011e6518075ee8beb7fc0e85f7', './modules/ACLRoles/DetailView.php' => '9f60fe3029f1360cb8df6a3c5875e504', './modules/ACLRoles/Delete.php' => '5c949ba6a938e98d20be2d3b0ae58a8e', './modules/ACLRoles/ListUsers.php' => 'af4c1e1499aed90986c91cb20e27596a', @@ -3720,7 +3722,7 @@ $md5_string = array ( './modules/Emails/views/view.modulelistmenu.php' => 'ff0f664baed72bfa53ac055bb5728392', './modules/Emails/Compose.php' => '48aa2680069d1653658ee76c76aa649b', './modules/Emails/DetailView.html' => 'ad4fbc6db95cb0cd5b1136182bb815e8', - './modules/Emails/EditView.php' => 'faf8efa4bb9636d5a67a9c98a4a61241', + './modules/Emails/EditView.php' => '73016fae30088e7eb962ee0a490bb742', './modules/Emails/ListViewGroup.php' => '03d4fb855827c368785ea4d6378e9087', './modules/Emails/field_arrays.php' => 'e991a1f75c83e97734ac1d649ed1ca8e', './modules/Emails/ListViewSent.html' => '456be43ac6235a2a5dcf8cf36fa21de1', @@ -3794,12 +3796,12 @@ $md5_string = array ( './modules/Emails/PessimisticLock.php' => 'eec9f812607afdf9681c668939cf1794', './modules/Emails/language/en_us.lang.php' => 'f5ed55dab3fdaf92544be2a297a52faf', './modules/Emails/ListViewMyInbox.html' => '80a65ca00efffeda3eed9767b4dc5164', - './modules/Emails/Email.php' => '6f9b4f6222c1fcfcdaf0d32d6cc30e95', + './modules/Emails/Email.php' => '4944609c0f57cd81fb4bc0ab6bc76d44', './modules/Emails/subpanels/ForQueues.php' => '627f6382bc5961151c8ff23c44e3dae7', './modules/Emails/subpanels/ForHistory.php' => '7b08fa447e4f5623997e1b9fa1016389', './modules/Emails/subpanels/ForContacts.php' => '1e6eec75a19bfe36e1fbb9a47fa56d76', './modules/Emails/subpanels/ForUsers.php' => 'b31eae67c30d198fef2939d4365381e5', - './modules/Emails/EditViewArchive.html' => '3a4a7f3ee868e27f1d622b645f4b6398', + './modules/Emails/EditViewArchive.html' => 'ec3d3a403d492ee8af9ecf3f9d47471f', './modules/Emails/PopupDocuments.html' => 'b7bb797639a69ebacc675ee75522637f', './modules/Emails/ListViewHome.php' => '3bd573bff99a540a8fcf635f02e11c16', './modules/Help/Menu.php' => '48fcb96303c5e5792b8c9b621010c763', @@ -3825,7 +3827,7 @@ $md5_string = array ( './modules/Configurator/LogView.php' => 'f36febb03ff544126ae335a35fe23923', './modules/Configurator/metadata/SugarpdfSettingsdefs.php' => '11e35d8657b2f5fa72588ec9fab24f54', './modules/Configurator/action_view_map.php' => '335f3982fdb42f04ed981f930a82c733', - './modules/Configurator/language/en_us.lang.php' => 'b09b9c83e109e0f4f681541577b4ea89', + './modules/Configurator/language/en_us.lang.php' => '43cd49c8648e7100336937699d013d2e', './modules/Configurator/Forms.php' => '05095502bdc7e8e5ef2c726d45356a13', './modules/Schedulers/Schedulers.js' => '3e105a83e8719753c6fdc479a945f589', './modules/Schedulers/_AddJobsHere.php' => '1f2f9a09fc574098bc384586589c9729', @@ -3979,10 +3981,10 @@ $md5_string = array ( './modules/ModuleBuilder/Module/MainTree.php' => '2817547b3c188df1d5c4b0bed2510552', './modules/ModuleBuilder/Module/StudioTree.php' => 'ba8cb5bb1828ab02c95b763ebb0d508f', './modules/ModuleBuilder/Module/StudioBrowser.php' => '92c13d7c173dd243c2a72c821c17189f', - './modules/ModuleBuilder/Module/StudioModule.php' => 'f3da5d509e606d445ac81d257efc73f1', + './modules/ModuleBuilder/Module/StudioModule.php' => '3a4e69efbfbe09f346ae83301923a373', './modules/ModuleBuilder/Module/DropDownTree.php' => '1efd3171700422c9bb838a0e8a8c8699', './modules/ModuleBuilder/Module/DropDownBrowser.php' => 'eb231cf94dbec3b0cf1bfa5bd14bb5d2', - './modules/ModuleBuilder/views/view.modulefield.php' => '9a1b574e1bb10fdae1e46d69c1d04c83', + './modules/ModuleBuilder/views/view.modulefield.php' => 'a018c28341eb6bd384dafa8956cbfdff', './modules/ModuleBuilder/views/view.relationship.php' => '59e94a5659c958248c3b6353e19ad4d0', './modules/ModuleBuilder/views/view.history.php' => '300fe8425bd9b4758ed01d7796c295c1', './modules/ModuleBuilder/views/view.layoutview.php' => '9739a1a3ce7795392008e15884e9e23a', @@ -4009,7 +4011,7 @@ $md5_string = array ( './modules/ModuleBuilder/views/view.resetmodule.php' => 'c29d9ed79f75e33af345b98ec31fef5b', './modules/ModuleBuilder/views/view.dropdowns.php' => 'c30f77851cb740f472cbceeb9156f25c', './modules/ModuleBuilder/views/view.property.php' => '94b623c4c5d445e3b49d7d55265f52d4', - './modules/ModuleBuilder/controller.php' => 'b5d55ebbb64ea0ba943fe761a42938e5', + './modules/ModuleBuilder/controller.php' => '0bcda465db07c038db7792d9eb63c715', './modules/ModuleBuilder/action_view_map.php' => '211f7363fe60af9cfb8e0dda4a8e8573', './modules/ModuleBuilder/javascript/studio2RowDD.js' => '3faaeadba8b352f2f7e09d6766b74641', './modules/ModuleBuilder/javascript/ModuleBuilder.js' => '43d21c34dcfd9dfd496ea4736a079918', @@ -4118,7 +4120,7 @@ $md5_string = array ( './modules/Tasks/Save.php' => '9f0a512dbd6d372bca431114f98b6b79', './modules/Tasks/tpls/QuickCreate.tpl' => 'c7abe3e62f7d7e5a968a21993fcef63b', './modules/Tasks/Menu.php' => '38dab79673ba7b8dead39055960fb940', - './modules/Tasks/vardefs.php' => 'ae73f082011219886259f34b13223fd2', + './modules/Tasks/vardefs.php' => '6eefbdc45e668b966c0f7939702880a4', './modules/Tasks/views/view.edit.php' => '1f0f201661b694f29221abb0b2b60ee9', './modules/Tasks/MyTasks.php' => '159167f56cd8df10897cb9fef5c33cac', './modules/Tasks/field_arrays.php' => 'a933184fabc5f36b480317109efca54d', @@ -4243,12 +4245,12 @@ $md5_string = array ( './modules/Users/PasswordRequirementBox.js' => '5501145e15a9b907efc9df667462d52b', './modules/Users/User.js' => 'f608f699e43355dbebcf6bf26a460a4e', './modules/Users/UserEditView.js' => '829b9bd128f07eeb48181aaee9ca6576', - './modules/Users/UserViewHelper.php' => '7fe0dd91cd93698bbbb134b89447dba5', + './modules/Users/UserViewHelper.php' => 'ceee29f54d65fb5610e3f95859f9737b', './modules/Users/Error.php' => 'e47d743efb522af6e4861396be53e8b6', - './modules/Users/Save.php' => '526f93efe4f73f77e322d2479e46aaab', + './modules/Users/Save.php' => '3deefadd48007de1596e7f07ac00572d', './modules/Users/tpls/DetailViewFooter.tpl' => '75097a8bc280009b5779a138b1126883', - './modules/Users/tpls/EditViewFooter.tpl' => '570bd32a6cccb8c9e74a46767acc79f9', - './modules/Users/tpls/EditViewHeader.tpl' => 'ce8678e0e2ac212418d41316cd50d4fa', + './modules/Users/tpls/EditViewFooter.tpl' => '782069ccc3eeae1caccc075294a27b79', + './modules/Users/tpls/EditViewHeader.tpl' => 'a3db8cb89fe92f5d15ad18aee0587848', './modules/Users/tpls/wizard.tpl' => 'f8f87728585eb6f754f0d5ec52d640ff', './modules/Users/tpls/QuickEditFooter.tpl' => 'ca1415ac61ae726339e359a43a25d97e', './modules/Users/tpls/DetailViewHeader.tpl' => '9fde916c9cd6c7f48345ddd9b52aa8a5', @@ -4282,8 +4284,8 @@ $md5_string = array ( './modules/Users/views/view.quickedit.php' => '5a458c0188281d6ef893bf9e066ad4c6', './modules/Users/views/view.wizard.php' => '0ee43721692818879c9ccf06e102bf3b', './modules/Users/views/view.list.php' => '2da7405c724b558b493865af34b4523c', - './modules/Users/views/view.edit.php' => '1d14d765bacae69f64a6bf13a4e2946b', - './modules/Users/views/view.detail.php' => '4a72e695f634e4d96fddbf541213a6a5', + './modules/Users/views/view.edit.php' => 'ec80bb2f2ee512e751e0c456c52d3c6d', + './modules/Users/views/view.detail.php' => 'aa0aeb232c42dadc9b4f8ebb743f96b9', './modules/Users/controller.php' => 'ab707e79b219d0f9a9302b7549cf9d8e', './modules/Users/SaveSignature.php' => 'cc2276e326ce4a58a4fce9b147302c4f', './modules/Users/User.php' => 'c9c420070dec38f6f9a8077ba4b90066', @@ -4296,7 +4298,7 @@ $md5_string = array ( './modules/Users/SetTimezone.php' => 'c44b79aaff575d0ca6250a1f1b7dcd84', './modules/Users/password_utils.php' => '81d971c14523bc6a3e494c5c0bf1933f', './modules/Users/SetTimezone.tpl' => '63de1550c8415a4a7f510846b0f1010a', - './modules/Users/GeneratePassword.php' => '040e17391cec02a3dc7ba39ba639a8c9', + './modules/Users/GeneratePassword.php' => 'daa7e2d2a230691ffa2d5d9b4d83c9f6', './modules/Users/ChangeGroupTab.php' => '6e1a3d401d7fd5f53bb79478ea6ab905', './modules/Users/metadata/searchdefs.php' => '8da9385b7be582391c6cd0ee32ec302f', './modules/Users/metadata/subpaneldefs.php' => '46b92950b7489723bc30fc5be7b2e680', @@ -4320,7 +4322,7 @@ $md5_string = array ( './modules/Users/UserSignature.php' => '410eac350e431f5f5e88ca59a01ad7d3', './modules/Users/Popup_picker.html' => '44ecf49fcfd43110437ff32d25736fa1', './modules/Users/Changenewpassword.php' => 'b409e317853158c7ee75161c98c11f70', - './modules/Users/language/en_us.lang.php' => '69d5990e0be8a5cde8e587c955dc79dc', + './modules/Users/language/en_us.lang.php' => 'd9e379644b9a6b1e58904cbaaab83343', './modules/Users/Logout.php' => '9b9980898ec0a1d58eaaf8a00faa2e67', './modules/Users/Popup_Users_picker.html' => '72ca55f89e936ccf6c8b1f252ee54236', './modules/Users/Changenewpassword.tpl' => '8d01c6786232a13cb1ced470885ca4b5', @@ -4368,7 +4370,7 @@ $md5_string = array ( './modules/SugarFeed/Dashlets/SugarFeedDashlet/SugarFeedDashlet.meta.php' => '1f4b4b89924d1d38f9fac52b27ebe79f', './modules/SugarFeed/Dashlets/SugarFeedDashlet/SugarFeedScript.tpl' => '4c94e556a10cf7274facee5edba8bafa', './modules/SugarFeed/Dashlets/SugarFeedDashlet/UserPostForm.tpl' => 'bea651d1aee15116a639c9bef187356b', - './modules/SugarFeed/SugarFeed.php' => '9fc957465b2ca1d68dfbc3f8ca2e4795', + './modules/SugarFeed/SugarFeed.php' => '186cad0b12c8b2cf736f2ce720edb9a9', './modules/SugarFeed/language/en_us.lang.php' => 'fad767b5b2851f78cbf25527fac922fc', './modules/SugarFeed/Forms.php' => 'd41d8cd98f00b204e9800998ecf8427e', './modules/Studio/studio.js' => '7fefd890274ffd5a2cb7deeab5308564', @@ -4387,7 +4389,7 @@ $md5_string = array ( './modules/Studio/TabGroups/EditViewTabs.php' => 'c0e6813ded91f85f8c61de94a3259687', './modules/Studio/TabGroups/TabGroupHelper.php' => 'dfba66e4630ee0da68954353ced9c6ce', './modules/Studio/TabGroups/EditViewTabs.tpl' => '88145d03eab2949584035e6cad185a5f', - './modules/Studio/language/en_us.lang.php' => 'eef38b5b55c45c9fb2f624183e081f7a', + './modules/Studio/language/en_us.lang.php' => '13dc4e6899d7fde198afef320eacf4d2', './modules/Studio/language/en_us.Portal.html' => '06519f1d1219175436818fe90efbaf10', './modules/Studio/wizards/RenameModules.tpl' => '1a29a8a12ec9afc5abdc0074a088596f', './modules/Studio/wizards/StudioWizard.php' => '23195644bedf65eaa92e0a376eb18b5b', @@ -4416,7 +4418,7 @@ $md5_string = array ( './modules/UpgradeWizard/processing.gif' => 'd7c43fc19181ee59862601bfce100b41', './modules/UpgradeWizard/systemCheckJson.php' => '1b3ca3638039d16eab4dc010373effcd', './modules/UpgradeWizard/end.php' => 'f19bb292a8fbb353f420b0580985c53e', - './modules/UpgradeWizard/uw_utils.php' => '11c786914dbcd43a884f7463e86dd14e', + './modules/UpgradeWizard/uw_utils.php' => '4f75c844c97fc2c816cbec586709dfb0', './modules/UpgradeWizard/preflightJson.php' => 'f9430751b95094f6d831f98fbaed9d80', './modules/UpgradeWizard/upgradeTimeCounter.php' => '13650e724da4e4fe127bae4a8073565c', './modules/UpgradeWizard/uw_files.php' => 'a874d9aca1246f5125cb8007e9a9364a', @@ -4450,7 +4452,7 @@ $md5_string = array ( './modules/UserPreferences/UserPreference.php' => '17db32c275129ffaf0253f1e72d79ab7', './modules/Calls/CallHelper.php' => '0a3e16eb98321a42cd2b078b094f1ad8', './modules/Calls/Save.php' => '89bcb06dff3026f3627692ee1616d86a', - './modules/Calls/tpls/footer.tpl' => 'b1bb660105583440d3c000b6893eb532', + './modules/Calls/tpls/footer.tpl' => 'b5981022a00a24ffc06e27f0ebad65ed', './modules/Calls/tpls/QuickCreate.tpl' => '83609a9e601a5599dc3f3d2674665941', './modules/Calls/Menu.php' => '858bb3073b45d382034626a6ae3e13dd', './modules/Calls/vardefs.php' => 'ac2980875114f34a8d087846144549cc', @@ -4472,7 +4474,7 @@ $md5_string = array ( './modules/Calls/metadata/listviewdefs.php' => 'd8fbb386c9825e95b0d20a90bef4a1fc', './modules/Calls/metadata/additionalDetails.php' => '806492f1654ddb97a247b3d7957b0abf', './modules/Calls/metadata/studio.php' => 'fe87c7c9d8abf393806b94bbb9313d60', - './modules/Calls/metadata/detailviewdefs.php' => 'fdd94ead5e819dc224fd1d5bf3b8104b', + './modules/Calls/metadata/detailviewdefs.php' => '948162f1f728cd0d127a0fc5e397795f', './modules/Calls/Dashlets/MyCallsDashlet/MyCallsDashlet.data.php' => '879e5027ef79b3bf23f9c09609188e29', './modules/Calls/Dashlets/MyCallsDashlet/MyCallsDashlet.meta.php' => '81158ed6fa50d810929b4ff429657161', './modules/Calls/Dashlets/MyCallsDashlet/MyCallsDashlet.php' => '6bf0c16b793ffcadcf14333530dafe83', @@ -4953,10 +4955,10 @@ $md5_string = array ( './modules/Project/language/en_us.lang.php' => 'c62a8abfa09841a60c54f90e6c9d4e6a', './modules/Project/SubPanelView.html' => 'a8cfd450c5a10dac0f401a57c430a519', './modules/Project/ProjectQuickCreate.php' => '0b45e5508713bd8397d38194ed2743ae', - './modules/Meetings/jsclass_scheduler.js' => '2626cbaa4dbd4e096a4e4bfd238cc25e', + './modules/Meetings/jsclass_scheduler.js' => 'd246b858b46d9c4f5cd9aae436d9f815', './modules/Meetings/duration_dependency.js' => 'a4d8be7dae3be9561c174d0743f50a04', './modules/Meetings/Save.php' => '82a55c7692d587e20236135aca956f43', - './modules/Meetings/tpls/footer.tpl' => '341a7075f5dc13b16b24d7fdb8732d79', + './modules/Meetings/tpls/footer.tpl' => '7385db55451c8784598e1d0578452585', './modules/Meetings/tpls/header.tpl' => 'd2ecbc05b238906de6b4dfd3c0e06129', './modules/Meetings/tpls/QuickCreate.tpl' => '713e1113ca260e860e7f8b68085caec9', './modules/Meetings/tpls/extMeetingNotInvited.tpl' => '4cd1dd9a2f232673e7828455bb0df98e', @@ -4982,7 +4984,7 @@ $md5_string = array ( './modules/Meetings/metadata/listviewdefs.php' => 'fa302246f3795a3fcfe46455158eccc7', './modules/Meetings/metadata/additionalDetails.php' => 'c98a17cfb10dade0d36e0596c87a6a72', './modules/Meetings/metadata/studio.php' => 'd8ec9c1a4d2c17483fdce4a8753e61ca', - './modules/Meetings/metadata/detailviewdefs.php' => '46ea25e6856972a39455b31a5183522b', + './modules/Meetings/metadata/detailviewdefs.php' => '6234cef5e4ec8153de1ad06b8aae64c9', './modules/Meetings/action_view_map.php' => '783a7b699c3b3ce049ca2e3bde08d856', './modules/Meetings/Dashlets/MyMeetingsDashlet/MyMeetingsDashlet.data.php' => '71a3a44c23a6fd7ed3c65a5b56795414', './modules/Meetings/Dashlets/MyMeetingsDashlet/MyMeetingsDashlet.meta.php' => '1f17c035ab5229249ccb4dbbb51a1d39', @@ -5042,7 +5044,7 @@ $md5_string = array ( './modules/Administration/templates/Languages.tpl' => '0c578621730bbdb5117f05859a4da1a6', './modules/Administration/templates/ConfigureAjaxUI.tpl' => 'ebcf209c34092fabe26cef1b04e74721', './modules/Administration/templates/ShortcutBar.tpl' => '34b17e29780b6aae7fbeb22286f7c6ee', - './modules/Administration/templates/GlobalSearchSettings.tpl' => 'dcea073c677cfa5fc0bd9e0d21f0b325', + './modules/Administration/templates/GlobalSearchSettings.tpl' => 'ad5b544750a895694af1fa34f074d369', './modules/Administration/templates/ConfigureTabs.tpl' => 'a0febea3c9ae7b3f10789d8a10f74f00', './modules/Administration/templates/RepairDatabase.tpl' => '1818950fcb51f4f185446f463bc79eda', './modules/Administration/templates/themeSettings.tpl' => '76b185bc1ae63c22dcdda3d1ec9999e5', @@ -5068,7 +5070,7 @@ $md5_string = array ( './modules/Administration/PasswordManager.php' => '11ef65dbd8f4ef09c813483507fff134', './modules/Administration/Locale.tpl' => 'bb9afeb5e9db4919bdcd1808cabf2999', './modules/Administration/RebuildExpressionPlugins.php' => 'a926f301737fb11ba1a71673eb51424c', - './modules/Administration/language/en_us.lang.php' => '0f0d983a5bc2326a32146e7134c9dc25', + './modules/Administration/language/en_us.lang.php' => '28fbd02120db31a0ce573d5c2e2931f7', './modules/Administration/UpgradeHistory.php' => '3b449bcfaa5761803e51a306a8e16a0e', './modules/Administration/upgrade_custom_relationships.php' => 'fe1239f73daa16e6a8b7f3170c8cad23', './modules/Administration/ImportCustomFieldStructure.php' => 'fd2baf8134f11375810c5c4daa52c889', @@ -5231,7 +5233,7 @@ $md5_string = array ( './modules/Home/LastViewed.php' => 'e4fd8c8ebf25ad8a93173deabf4b35bc', './modules/Home/AddToFavorites.php' => '2d1240598be9e7f74c497fe3a6578868', './modules/Home/TrainingPortal.php' => '1ec4a300d6dfd51f80eb642eee05f0f0', - './cache/include/javascript/sugar_grp_jsolait.js' => '6c0161d96f2a0dc4f2916901b0b9b17f', + './cache/include/javascript/sugar_grp_jsolait.js' => 'e3643a51081ed6fcf1e1f260e11d3020', './cache/include/javascript/sugar_grp_quickcomp.js' => '66fc3bf6cac6a7f96521f4fe03169a14', './cache/include/javascript/sugar_grp_emails.js' => 'dc529f724ff341b530cf04cac9bcf355', './cache/include/javascript/sugar_grp_yui2.js' => '4a88d7ce761f812c014082053f8ed2f4', @@ -5239,8 +5241,8 @@ $md5_string = array ( './cache/include/javascript/sugar_grp_yui_widgets.js' => 'ce18f141981e67d209c23484b4ca1b35', './cache/include/javascript/sugar_grp1_yui.js' => '6a23f15fbc897c4ce4bb8843f0b5a473', './cache/include/javascript/sugar_field_grp.js' => 'fc5723e1d36249a4a50eb5995bdcb47b', - './cache/include/javascript/sugar_grp1_jquery.js' => '53588f3f65384a3eaa62e882354fb3f6', - './cache/include/javascript/sugar_grp1.js' => '0f4072fd09d3d7383eee7c3fc84e3c62', + './cache/include/javascript/sugar_grp1_jquery.js' => '578c9895f4e0c3b371d3a7edf3c442e0', + './cache/include/javascript/sugar_grp1.js' => '39c97d35b938d87b878ae09fdc70fcd8', './cache/layout/index.html' => '9cd784063d39b18d308932c28c385853', './cache/images/index.html' => '9cd784063d39b18d308932c28c385853', './cache/xml/index.html' => '9cd784063d39b18d308932c28c385853', @@ -5311,7 +5313,7 @@ $md5_string = array ( './metadata/prospect_lists_prospectsMetaData.php' => 'fe3dc7d813428ca0fa774884a88ef5c4', './metadata/inboundEmail_autoreplyMetaData.php' => '7c670a62c7142827bbdf675c8b4be221', './metadata/acl_roles_actionsMetaData.php' => 'a3446107943a271bf6e329a80deb06e8', - './sugar_version.php' => '2f25bfb7b0ec9ac0926ee66f46ab6260', + './sugar_version.php' => 'c716324247013740a7251f8afb016dad', './cron.php' => '96a6fd7893809132e902086e77dde30c', './log4php/LoggerManager.php' => 'fa34194306cd50c01b71d8d5060ee362', './TreeData.php' => '7040af43bf01c450f4e225ece5e3f30c', @@ -5917,7 +5919,7 @@ $md5_string = array ( './themes/default/css/deprecated.css' => 'b5471d86d506bea8630df869fbfbe9cb', './themes/Sugar5/js/style.js' => '78dbd0d1b66f9ef26b3e4b0f06701e6e', './themes/Sugar5/tpls/_companyLogo.tpl' => 'aec162121df756deaeb8b2b24a877b65', - './themes/Sugar5/tpls/footer.tpl' => '0f9636230cf14dd6ff76b70b6c8b369d', + './themes/Sugar5/tpls/footer.tpl' => 'fbb48d80817323aacb010b920bd5921d', './themes/Sugar5/tpls/header.tpl' => 'f4f2a382c900e9186faba11ce64803c7', './themes/Sugar5/tpls/_head.tpl' => '53d3a8d5836d1ff25b252b39340d9dda', './themes/Sugar5/tpls/_welcome.tpl' => 'a758aa0298fc3a281dc9906e6f5ca48f', @@ -6363,7 +6365,7 @@ $md5_string = array ( './themes/Sugar5/images/icon_MyTasks_32.gif' => '5af76e5299c5e6a2946ce3ed13d64d5f', './themes/Sugar5/images/Currencies.gif' => '8d1421616dcc7965a2995ea286cfb00d', './themes/Sugar5/images/EmailSetupWizard.gif' => 'ba3c3a98ea383dc47a87af1f65218031', - './themes/Sugar5/images/sugar_icon.ico' => '92f1ffd4b2fef157613e48d2d2c7d9c8', + './themes/Sugar5/images/sugar_icon.ico' => 'a3c9d446edab2a35aa9fff15cbe924fe', './themes/Sugar5/images/Calls.gif' => 'fb79ca6ff562b6321c30039d577a55cc', './themes/Sugar5/images/mass_update.gif' => '9b855db1e593f1e916dc478fa52648b6', './themes/Sugar5/images/icon_Subpanels.gif' => '99b9a4c23b9d4d52c80db23b65241032', @@ -6510,7 +6512,7 @@ $md5_string = array ( './themes/Sugar5/images/select.gif' => '2090e9761478fb6bee48c197b0f102dc', './themes/Sugar5/images/arrow_down.gif' => '7ae60aa70170713428e265b1cc695291', './themes/Sugar5/themedef.php' => '79f66d3ad564f057ab233f595c84f28c', - './themes/Sugar5/css/style.css' => '2a136a809cf64d12b8ffe709de7f1d18', + './themes/Sugar5/css/style.css' => 'e408a3881dcda7fc6efc0a1fa3c81b6a', './themes/Sugar5/css/chart.css' => '78bf9d159067f20c5e3fc6adf7762f1c', './themes/Sugar5/css/print.css' => 'c00fb2d3011318e43c4b1332080d1698', './themes/Sugar5/css/yui.css' => '45d099cc32f4ea1cf99817b9374e0566', @@ -6530,7 +6532,7 @@ $md5_string = array ( './jssource/src_files/modules/Currencies/EditView.js' => '83b17318ef591148bbc75e2aebb5c8d5', './jssource/src_files/modules/Administration/javascript/Async.js' => 'd0e7a85e67bde67980dad376c11f1221', './jssource/src_files/modules/Administration/javascript/Administration.js' => '8c7eb2c4bd0024ab3f020d84c58ef1d5', - './jssource/src_files/modules/Meetings/jsclass_scheduler.js' => '8fbb03a011ed058018e6b83c69e48de3', + './jssource/src_files/modules/Meetings/jsclass_scheduler.js' => 'e27b3667f6b7de0fac720f13aa7a4250', './jssource/src_files/modules/Meetings/duration_dependency.js' => '2aebc3441fea5a5b85f4c2bf2a08946c', './jssource/src_files/modules/Project/Project.js' => '935ffab1d5effc64a12e43c5ed8f243d', './jssource/src_files/modules/Contacts/Contact.js' => '57e5e967dd1d1f623d4248922115f258', @@ -6563,7 +6565,7 @@ $md5_string = array ( './jssource/src_files/service/utils/SugarRest.js' => '25bb6ba045022c695e3b3582f4a00ce6', './jssource/src_files/include/MySugar/javascript/MySugar.js' => '270b71a9ce6b524095622d58e9e8b105', './jssource/src_files/include/SugarEmailAddress/SugarEmailAddress.js' => 'dbdc67c4b71a5c24bd8ef7efb12675b7', - './jssource/src_files/include/javascript/ajaxUI.js' => 'c853c781c1afeb077dc6a894745a05b3', + './jssource/src_files/include/javascript/ajaxUI.js' => '79a5a52b3e84e90b33d2238a312508a7', './jssource/src_files/include/javascript/calendar.js' => '8a64349697d88a99b897514e60afcb4d', './jssource/src_files/include/javascript/iscroll.js' => 'b6c232e3c54b2a1320b22c7ad920c842', './jssource/src_files/include/javascript/include.js' => 'b120bd1c521be781c2dee60e719fb15d', @@ -7339,7 +7341,7 @@ $md5_string = array ( './jssource/src_files/include/javascript/sugar_yui_overrides.js' => 'ac6afa48c7c53dd7a52fc0e812c54d4f', './jssource/src_files/include/javascript/cookie.js' => 'c4e6168195f22c5fbb1780a0745bde24', './jssource/src_files/include/javascript/popup_parent_helper.js' => 'c546e26584026b47054eecbcba234410', - './jssource/src_files/include/javascript/sugar_3.js' => '3ecff6a0aa2699b70a912ad92896e098', + './jssource/src_files/include/javascript/sugar_3.js' => '528f14c78162d5d60264cdf8e45b5c93', './jssource/src_files/include/javascript/jquery.js' => '219073097031d9c1a95a1291d66f3a10', './jssource/src_files/include/javascript/sugar_connection_event_listener.js' => 'e38a0e0155991cbc8fabaa59bcb1b705', './jssource/src_files/include/javascript/jsclass_async.js' => '95072f5177e01c78662f14596255402e', @@ -7420,7 +7422,7 @@ $md5_string = array ( './install/license.php' => '00d8b0f04104eaa3cab95f1d1b26fb33', './install/installType.php' => 'f5b3025e3996ad16b8218d3b1424e389', './install/download_modules.php' => 'a1625e32936a669709b617a609c5a7ba', - './download.php' => 'e63c79c6d8edcd2d9c341878935bfb3c', + './download.php' => 'f07780b763a7e8581b1a8658bb4ac696', './campaign_trackerv2.php' => 'd474548736ceaf4275064094e5aa798b', './install.php' => 'a4e2e1c845b63962dfa89cd8ff50c9f7', './soap/SoapDeprecated.php' => '309e512eb7592c910a824f991869c4b4', diff --git a/include/DetailView/header.tpl b/include/DetailView/header.tpl index a32f8347..f3b4fcdc 100644 --- a/include/DetailView/header.tpl +++ b/include/DetailView/header.tpl @@ -53,23 +53,6 @@ SUGAR.util.doWhen(function(){
-
- - - - - - - - - - -{{if isset($form.hidden)}} - {{foreach from=$form.hidden item=field}} - {{$field}} - {{/foreach}} -{{/if}} -
{{if !isset($form.buttons)}} {{sugar_button module="$module" id="EDIT" view="$view" form_id="formDetailView" appendTo="detail_header_buttons"}} {{sugar_button module="$module" id="DUPLICATE" view="EditView" form_id="formDetailView" appendTo="detail_header_buttons"}} @@ -93,6 +76,24 @@ SUGAR.util.doWhen(function(){ {{sugar_button module="$module" id="Audit" view="EditView" form_id="formDetailView" appendTo="detail_header_buttons"}} {{/if}} {{/if}} + +
+ + + + + + + + + + +{{if isset($form.hidden)}} +{{foreach from=$form.hidden item=field}} +{{$field}} +{{/foreach}} +{{/if}} +
{{sugar_action_menu id="detail_header_action_menu" buttons=$detail_header_buttons class="fancymenu" }}
diff --git a/include/EditView/footer.tpl b/include/EditView/footer.tpl index 16e92911..4a739414 100644 --- a/include/EditView/footer.tpl +++ b/include/EditView/footer.tpl @@ -48,7 +48,7 @@
{{if !empty($form) && !empty($form.buttons)}} {{foreach from=$form.buttons key=val item=button}} - {{sugar_button module="$module" id="$button" form_id="$form_id" view="$view" appendTo="footer_buttons"}} + {{sugar_button module="$module" id="$button" form_id="$form_id" view="$view" appendTo="footer_buttons" location="FOOTER"}} {{/foreach}} {{else}} {{sugar_button module="$module" id="SAVE" view="$view" form_id="$form_id" location="FOOTER" appendTo="footer_buttons"}} @@ -57,7 +57,7 @@ {{if empty($form.hideAudit) || !$form.hideAudit}} {{sugar_button module="$module" id="Audit" view="$view" form_id="$form_id" appendTo="footer_buttons"}} {{/if}} -{{sugar_action_menu buttons=$footer_buttons class="fancymenu" theme="Classic"}} +{{sugar_action_menu buttons=$footer_buttons class="fancymenu" flat=true}}
{{/if}} diff --git a/include/EditView/header.tpl b/include/EditView/header.tpl index 247e610b..99c94c26 100644 --- a/include/EditView/header.tpl +++ b/include/EditView/header.tpl @@ -78,7 +78,7 @@ {{if empty($form.button_location) || $form.button_location == 'top'}} {{if !empty($form) && !empty($form.buttons)}} {{foreach from=$form.buttons key=val item=button}} - {{sugar_button module="$module" id="$button" form_id="$form_id" view="$view" appendTo="header_buttons"}} + {{sugar_button module="$module" id="$button" form_id="$form_id" view="$view" appendTo="header_buttons" location="HEADER"}} {{/foreach}} {{else}} {{sugar_button module="$module" id="SAVE" view="$view" form_id="$form_id" location="HEADER" appendTo="header_buttons"}} @@ -88,7 +88,7 @@ {{sugar_button module="$module" id="Audit" view="$view" form_id="$form_id" appendTo="header_buttons"}} {{/if}} {{/if}} -{{sugar_action_menu buttons=$header_buttons class="fancymenu" theme="Classic"}} +{{sugar_action_menu buttons=$header_buttons class="fancymenu" flat=true}} {{$ADMIN_EDIT}} {{if $panelCount == 0}} diff --git a/include/ListView/ListViewData.php b/include/ListView/ListViewData.php index 23b47742..bae4ddd4 100644 --- a/include/ListView/ListViewData.php +++ b/include/ListView/ListViewData.php @@ -496,8 +496,9 @@ class ListViewData { foreach( $basicSearchFields as $basicSearchField) { - $field_name = $basicSearchField['name'] . "_basic"; - if( isset($_REQUEST[$field_name]) && (!isset($basicSearchField['type']) || $basicSearchField['type'] == 'text') ) + $field_name = (is_array($basicSearchField) && isset($basicSearchField['name'])) ? $basicSearchField['name'] : $basicSearchField; + $field_name .= "_basic"; + if( isset($_REQUEST[$field_name]) && ( !is_array($basicSearchField) || !isset($basicSearchField['type']) || $basicSearchField['type'] == 'text') ) { $queryString = htmlentities($_REQUEST[$field_name]); break; diff --git a/include/ListView/ListViewPagination.tpl b/include/ListView/ListViewPagination.tpl index 7fff2ac9..6f85bc72 100644 --- a/include/ListView/ListViewPagination.tpl +++ b/include/ListView/ListViewPagination.tpl @@ -58,7 +58,7 @@ {sugar_action_menu id=$link_action_id params=$actionsLink theme="Sugar"} -
{$actionDisabledLink}
+ { if $actionDisabledLink ne "" }
{$actionDisabledLink}
{/if}  {$selectedObjectsSpan} diff --git a/include/MVC/View/views/view.favorites.php b/include/MVC/View/views/view.favorites.php index 503c2dae..785ce804 100644 --- a/include/MVC/View/views/view.favorites.php +++ b/include/MVC/View/views/view.favorites.php @@ -54,7 +54,8 @@ class ViewFavorites extends SugarView { $favorites = new SugarFavorites(); - $results = $favorites->getUserFavoritesByModule($this->module,$GLOBALS['current_user']); + $favorites_max_viewed = (!empty($GLOBALS['sugar_config']['favorites_max_viewed']))? $GLOBALS['sugar_config']['favorites_max_viewed'] : 10; + $results = $favorites->getUserFavoritesByModule($this->module,$GLOBALS['current_user'], "sugarfavorites.date_modified DESC ", $favorites_max_viewed); $items = array(); foreach ( $results as $key => $row ) { $items[$key]['label'] = $row->record_name; diff --git a/include/SearchForm/tpls/SugarSpot.tpl b/include/SearchForm/tpls/SugarSpot.tpl index 4284ee21..e375b075 100644 --- a/include/SearchForm/tpls/SugarSpot.tpl +++ b/include/SearchForm/tpls/SugarSpot.tpl @@ -71,7 +71,9 @@
{/foreach} - View all results + + {$appStrings.LNK_SEARCH_NONFTS_VIEW_ALL} + {else}

{$appStrings.LBL_EMAIL_SEARCH_NO_RESULTS}

diff --git a/include/Smarty/plugins/function.sugar_action_menu.php b/include/Smarty/plugins/function.sugar_action_menu.php index e65e96a5..fb7938fb 100644 --- a/include/Smarty/plugins/function.sugar_action_menu.php +++ b/include/Smarty/plugins/function.sugar_action_menu.php @@ -50,6 +50,7 @@ if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); * 'buttons' => list of button htmls, such as ( html_element1, html_element2, ..., html_element_n), * 'id' => id property for ul element * 'class' => class property for ul element + * 'flat' => controls the display of the menu as a dropdown or flat buttons * @param $smarty * * @return string - compatible sugarActionMenu structure, such as @@ -116,7 +117,7 @@ if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); */ function smarty_function_sugar_action_menu($params, &$smarty) { - $theme = !empty($params['theme']) ? $params['theme'] : SugarThemeRegistry::current()->name; + $flat = !empty($params['flat']) ? $params['flat'] : false; if( !empty($params['params']) ) { $addition_params = $params['params']; @@ -127,7 +128,7 @@ function smarty_function_sugar_action_menu($params, &$smarty) if(empty($params['buttons'])) return ''; - if(is_array($params['buttons']) && $theme != 'Classic') { + if(is_array($params['buttons']) && !$flat) { $menus = array( 'html' => array_shift($params['buttons']), diff --git a/include/Smarty/plugins/function.sugar_button.php b/include/Smarty/plugins/function.sugar_button.php index 3cfa0364..1a9b24cd 100644 --- a/include/Smarty/plugins/function.sugar_button.php +++ b/include/Smarty/plugins/function.sugar_button.php @@ -395,61 +395,47 @@ function smarty_function_sugar_button($params, &$smarty) } //switch - if($params['appendTo']) { + if(isset($params['appendTo'])) { $smarty->append($params['appendTo'], $output); return; } return $output; } else if(is_array($type) && isset($type['sugar_html'])) { - require_once('function.sugar_menu.php'); - $sugar_html = $type['sugar_html']; - if(isset($sugar_html['html'])) { - $output = parse_html_tag($sugar_html['html']); - if(is_array($output)) { - $sugar_html = array( - 'type' => $output['type'], - 'tag' => $output['tag'], - 'value' => $output['value'], - 'self_closing' => $output['self_closing'], - ); - unset($output['type']); - unset($output['tag']); - unset($output['value']); - unset($output['self_closing']); - $sugar_html['htmlOptions'] = $output; - } - } + require_once('include/SugarHtml/SugarHtml.php'); - $input_types = array( - 'submit', 'button', 'hidden', 'checkbox', 'input' - ); - - if(in_array($sugar_html['type'], $input_types)) { - $sugar_html['htmlOptions']['type'] = (empty($sugar_html['htmlOptions']['type'])) ? $sugar_html['type'] : $sugar_html['htmlOptions']['type']; - $sugar_html['htmlOptions']['value'] = $sugar_html['value']; - $sugar_html['htmlOptions']['onclick'] = $js_form.str_replace("this.form", "_form", $sugar_html['htmlOptions']['onclick']); - if($sugar_html['type'] == "submit") { - $sugar_html['htmlOptions']['type'] = "button"; - if(substr($sugar_html['htmlOptions']['onclick'], -1) != ';') - $sugar_html['htmlOptions']['onclick'] .= ";"; - $sugar_html['htmlOptions']['onclick'] .= "_form.submit();"; - } - $output = open_tag('input', $sugar_html['htmlOptions'], true); - } - if(isset($sugar_html['template'])) { - $output = strtr($sugar_html['template'], array( - '[CONTENT]' => $output) - ); - } - if($params['appendTo']) { + $dom_tree = SugarHtml::parseSugarHtml($type['sugar_html']); + replaceFormClick($dom_tree, $js_form); + $output = SugarHtml::createHtml($dom_tree); + + if(isset($params['appendTo'])) { $smarty->append($params['appendTo'], $output); return; } return $output; } else if(is_array($type) && isset($type['customCode'])) { + require_once('include/SugarHtml/SugarHtml.php'); + + $dom_tree = SugarHtml::parseHtmlTag($type['customCode']); + $hidden_exists = false; + + replaceFormClick($dom_tree, $js_form, $hidden_exists); + if($hidden_exists) { + //If the customCode contains hidden fields, the extracted hidden fields need to append in the original form + $form = $smarty->get_template_vars('form'); + $hidden_fields = $dom_tree; + extractHiddenInputs($hidden_fields); + if(!isset($form)) { + $form = array(); + } + if(!isset($form['hidden'])) { + $form['hidden'] = array(); + } + $form['hidden'][] = SugarHtml::createHtml($hidden_fields); + $smarty->assign('form', $form); + } + $output = SugarHtml::createHtml($dom_tree); - $output = $type['customCode']; ; - if($params['appendTo']) { + if(isset($params['appendTo'])) { $smarty->append($params['appendTo'], $output); return; } @@ -457,4 +443,83 @@ function smarty_function_sugar_button($params, &$smarty) } } +/** + * Bug#51862: Reproduce the JS onclick for upgraded instances + * + * @param array $dom_tree - Cascade array form generated by SugarHtml::parseHtmlTag + * @param string $js_form - JS getter to assign _form object by ID + * @param bool $hidden_field_exists - whether the selected element contains hidden fields or not + * @return array - two boolean variables. + * $set_submit - whether the replace operation is excuted or not + * $is_hidden_field - where current attributes contains the key "hidden" or not + */ +function replaceFormClick(&$dom_tree = array(), $js_form = '', &$hidden_field_exists = false) { + $set_submit = false; + $is_hidden_field = false; + //if the code is wrapped with the form element, it will escape the operation for JS replacement + if(isset($dom_tree['tag']) && $dom_tree['tag'] == 'form') + return false; + + if(isset($dom_tree['type']) && $dom_tree['type'] == 'hidden') { + $is_hidden_field = true; + } + + //Replace the JS syntax where the sugar_button contains the event handler for this.form + if(isset($dom_tree['onclick'])) { + if(strpos($dom_tree['onclick'], "this.form") !== false) { + $dom_tree['onclick'] = $js_form.str_replace("this.form", "_form", $dom_tree['onclick']); + if(substr($dom_tree['onclick'], -1) != ';') + $dom_tree['onclick'] .= ";"; + $dom_tree['onclick'] .= "_form.submit();"; + $set_submit = true; + } + } + foreach($dom_tree as $key => $sub_tree) { + if(is_array($sub_tree)) { + list($_submit, $_hidden) = replaceFormClick($dom_tree[$key], $js_form, $hidden_field_exists); + $set_submit = ($set_submit) ? $set_submit : $_submit; + $is_hidden_field = ($is_hidden_field) ? $is_hidden_field : $_hidden; + } + } + + if($set_submit && isset($dom_tree['type'])) { + $dom_tree['type'] = "button"; + $set_submit = false; + } + if($is_hidden_field && isset($dom_tree['tag']) && $dom_tree['tag'] == 'input' ) { + $hidden_field_exists = true; + $is_hidden_field = false; + } + + return array($set_submit, $is_hidden_field); +} + +/** + * Bug#51862: Extract hidden field form the original dom structure + * @param array $dom_tree - Cascade array form generated by SugarHtml::parseHtmlTag + */ +function extractHiddenInputs(&$dom_tree = array()) { + $allow_types = array( + 'hidden' + ); + //all hidden fields in the form elements must NOT attach in the original form + if(isset($dom_tree['tag']) && $dom_tree['tag'] == 'form') { + $dom_tree = array(); + } + foreach($dom_tree as $key => $sub_tree) { + if(is_numeric($key) && isset($sub_tree['tag']) && $sub_tree['tag'] == 'input') { + if( !isset($sub_tree['type']) || in_array($sub_tree['type'], $allow_types) === false ) { + unset($dom_tree[$key]); + } + } else if(is_array($sub_tree)) { + extractHiddenInputs($dom_tree[$key]); + } + } + if(isset($dom_tree['tag']) && $dom_tree['tag'] == 'input') { + if( !isset($dom_tree['type']) || in_array($dom_tree['type'], $allow_types) === false ) { + $dom_tree = array(); + } + } +} + diff --git a/include/Smarty/plugins/function.sugar_menu.php b/include/Smarty/plugins/function.sugar_menu.php index b1ffd1f1..83fe0948 100644 --- a/include/Smarty/plugins/function.sugar_menu.php +++ b/include/Smarty/plugins/function.sugar_menu.php @@ -85,6 +85,7 @@ if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); * * * @author Justin Park (jpark@sugarcrm.com) */ +require_once('include/SugarHtml/SugarHtml.php'); function smarty_function_sugar_menu($params, &$smarty) { $root_options = array( @@ -95,119 +96,22 @@ function smarty_function_sugar_menu($params, &$smarty) $root_options[$attr] = $value; } } - $output = open_tag("ul", $root_options); + $output = SugarHtml::createOpenTag("ul", $root_options); foreach($params['items'] as $item) { if(strpos($item['html'], " $item['items'], 'htmlOptions' => !empty($params['submenuHtmlOptions']) ? $params['submenuHtmlOptions'] : array() ), $smarty); } - $output .= ""; - } - $output .= ''; - return $output; -} - -function open_tag($tagName, $params = array(), $self_closing = false) { - - $options = ""; - $self_closing_tag = ($self_closing) ? "/" : ""; - if(empty($params)) - return "<{$tagName}{$self_closing_tag}>"; - - foreach($params as $attr => $value) { - if($value) - $options .= $attr.'="'.$value.'" '; - } - return "<{$tagName} {$options}{$self_closing_tag}>"; -} - -function parse_html_tag($code) { - $SINGLE_QUOTE = "'"; - $DOUBLE_QUOTE = '"'; - $ASSIGN_SIGN = "="; - $TAG_BEGIN = "<"; - $TAG_END = ">"; - $quote_encoded = false; - $cache = array(); - $var_name = ''; - $var_assign = false; - $start_pos = strpos($code, ' ') ? strpos($code, ' ') : strpos($code, $TAG_END); - if(substr($code, 0, 1) != $TAG_BEGIN || $start_pos === false) { - return $code; - } - $tag = substr($code, 1, $start_pos - 1); - $closing_tag = ' $tag - ); - if($end_pos === false) { - $output['self_closing'] = true; - $end_pos = (substr($code, -2) == '/>') ? -2 : -1; - $code = substr($code, $start_pos + 1, $end_pos); - } else { - $output['self_closing'] = false; - $code = substr($code, $start_pos + 1, $end_pos - $start_pos - 1); - } - for($i = 0; $i < strlen($code) ; $i ++) { - $char = $code[$i]; - if($char == $SINGLE_QUOTE || $char == $DOUBLE_QUOTE) { - if(empty($quote_type)) { - $quote_encoded = true; - $quote_type = $char; - } else if ($quote_type == $char) { - if(!empty($cache)) { - $string = implode('', $cache); - if(empty($var_name)) { - $var_name = $string; - } else if($var_assign) { - $output[$var_name] = $string; - unset($var_name); - } - } - $quote_type = ''; - $var_assign = false; - $cache = array(); - $quote_encoded = false; - } else { - array_push($cache, $char); - } - } else if ( !$quote_encoded && $char == ' ' ) { - if(!empty($cache)) { - $string = implode('', $cache); - if(empty($var_name)) { - $var_name = $string; - } else if($var_assign) { - $output[$var_name] = $string; - unset($var_name); - } - $quote_encoded = false; - $var_assign = false; - $cache = array(); - } - } else if ( !$quote_encoded && $char == $ASSIGN_SIGN ) { - if(!empty($var_name)) { - $output[$var_name] = ''; - } - $string = implode('', $cache); - $var_name = $string; - $var_assign = true; - $cache = array(); - } else if ( !$quote_encoded && $char == $TAG_END ) { - break; - } else { - array_push($cache, $char); - } - } - if($output['self_closing'] === false) { - $output['container'] = substr($code, $i + 1); + $output .= SugarHtml::createCloseTag("li"); } + $output .= SugarHtml::createCloseTag("ul"); return $output; } diff --git a/include/SugarHtml/SugarHtml.php b/include/SugarHtml/SugarHtml.php new file mode 100644 index 00000000..014d0b64 --- /dev/null +++ b/include/SugarHtml/SugarHtml.php @@ -0,0 +1,453 @@ +"; + const SMARTY_TAG_BEGIN = "{"; + const SMARTY_TAG_END = "}"; + const CLAUSE_TAG_BEGIN = "("; + const CLAUSE_TAG_END = ")"; + + /** + * @var integer the counter for generating automatic input field names. + */ + public static $count=0; + + /** + * @static + * Create an open html element + * + * @param String $tagName - the tag name + * @param array $params - the element attributes + * @param bool $self_closing - whether the element is self-closing or not + * @return string - generated html string + */ + public static function createOpenTag($tagName, $params = array(), $self_closing = false) { + + $self_closing_tag = ($self_closing) ? "/" : ""; + if(empty($params)) + return "<{$tagName}{$self_closing_tag}>"; + + $options = self::createAttributes($params); + return "<{$tagName} {$options}{$self_closing_tag}>"; + } + /** + * @static + * Create a close html element + * + * @param String $tagName - the tag name + * @return string - generated html string + */ + public static function createCloseTag($tagName) { + return ""; + } + /** + * @static + * Create a html block given a cascade array tree. + * Resemble the array form generated by parseHtmlTag + * @see SugarHtml::parseHtmlTag + * + * @param array $dom_tree - Cascade array form + *
+     * 1. Simple html format
+     * array(
+     *      'tag' => 'div',
+     *      // all attributes are assigned in key-value form
+     *      'id' => 'div_id',
+     *      'class' => 'wrapper',
+     *      ...
+     * )
+     *
+     * 2. Cascade html format
+     * array(
+     *      'tag' => 'div',
+     *      //all subitems are assigned in container
+     *      'container' => array(
+     *          array(
+     *              'tag' => 'input',
+     *              'type' => 'hidden',
+     *          )
+     *      )
+     * )
+     *
+     * 3. Siblings
+     * array(
+     *      //all siblings are assigned in a parallel array form
+     *      array('tag' => 'input', 'type' => 'button', ... ),
+     *      array('tag' => 'input', 'type' => 'submit', ... )
+     * )
+     *
+     * 4. Smarty
+     * array(
+     *      'smarty' => array(
+     *          array(
+     *              //smarty must contain 'template'. Container will replace with the same key value
+     *              'template' => '{if}[CONTENT1]{else}[CONTENT2]{/if}',
+     *              //content1 will be assign on the lefthand side, and content2 will be on righthand side
+     *              '[CONTENT1]' => array(
+     *                  //cascade valid array form
+     *              )
+     *              '[CONTENT2]' => array(...)
+     *          ),
+     *      )
+     * )
+     * 
+ * + * @return string - generated html string + */ + public static function createHtml($dom_tree = array()) { + + $out = ""; + if(isset($dom_tree[0])) { //dom contains sibling items + foreach($dom_tree as $dom) { + $out .= is_array($dom) ? self::createHtml($dom) : $dom; + } + } else if( isset($dom_tree['tag']) ) { + $tagName = $dom_tree['tag']; + $self_closing = $dom_tree['self_closing']; + unset($dom_tree['tag']); + unset($dom_tree['self_closing']); + if(isset($dom_tree['container'])) { + $container = $dom_tree['container']; + unset($dom_tree['container']); + } + $out .= self::HTML_TAG_BEGIN."{$tagName} "; + if(isset($dom_tree['smarty'])) { + $out .= self::createHtml(array( + 'smarty' => $dom_tree['smarty'] + )).' '; + unset($dom_tree['smarty']); + } + $out .= self::createHtml($dom_tree); + if($self_closing) { + $out .= '/>'; + } else{ + $out .= self::HTML_TAG_END; + $out .= (is_array($container)) ? self::createHtml($container) : $container; + $out .= self::createCloseTag($tagName); + } + } else if( isset($dom_tree['smarty']) ) { //dom contains smarty function + $count = 0; + foreach($dom_tree['smarty'] as $blocks) { + $template = $blocks['template']; + unset($blocks['template']); + $replacement = array(); + foreach($blocks as $key => $value) { + $replacement[$key] = is_array($value) ? self::createHtml($value) : $value; + } + if($count++ > 0) $out .= ' '; + $out .= strtr($template, $replacement); + } + } else { + $count = 0; + foreach($dom_tree as $attr => $value) { + if($count++ > 0) $out .= ' '; + $out .= (empty($value)) ? $attr : $attr.'="'.$value.'"'; + } + } + + return $out; + } + + public static function parseSugarHtml($sugar_html = array()) { + $output = array(); + $input_types = array( + 'submit', 'button', 'hidden', 'checkbox', 'input' + ); + + if(in_array($sugar_html['type'], $input_types)) { + $sugar_html['htmlOptions']['type'] = (empty($sugar_html['htmlOptions']['type'])) ? $sugar_html['type'] : $sugar_html['htmlOptions']['type']; + $sugar_html['htmlOptions']['value'] = $sugar_html['value']; + + $output = array_merge(array( + 'tag' => 'input', + 'self_closing' => true, + ), $sugar_html['htmlOptions']); + } + if(isset($sugar_html['template'])) { + $output = array( + 'smarty' => array( + array( + 'template' => $sugar_html['template'], + '[CONTENT]' => $output + ) + ) + ); + } + + return $output; + } + + /** + * @static + * Disassemble html string into a cascaded array form elements + * + * @param String $code - html string (support the mixed html string with smarty blocks) + * @param array $appendTo - Precedent siblings + * @return array - structual array form, can be restored in a html code by createHtml + * @see SugarHtml::createHtml + */ + public static function parseHtmlTag($code, $appendTo = array()) { + $code = ltrim($code); + $start_pos = strpos($code, ' ') ? strpos($code, ' ') : strpos($code, self::HTML_TAG_END); + $output = array(); + if(substr($code, 0, 1) != self::HTML_TAG_BEGIN || $start_pos === false) { + self::parseSmartyTag($code, $output); + } else { + $tag = substr($code, 1, $start_pos - 1); + $closing_tag = ' 0) { + $_right = strpos($code, $_smarty_closing, $_right + strlen($_smarty_closing)); + } + + $_right = strpos($code, self::SMARTY_TAG_END, $_right); + } + $smarty_string = substr($code, $i, $_right + 1 - $i); + + $clauses = array_slice( + //split into each clause + preg_split("/[\{\}]/i", $smarty_string), + 1, -1 //slice out the first and last items, which is empty. + ); + $smarty_template = array( + 'template' => '', + ); + + //Concatenate smarty variables + $queue = 0; + for($seq = 0; $seq < count($clauses); $seq++) { + + if($seq > 0 && substr(ltrim($clauses[$seq]), 0, 1) == '$' ) { + $clauses[--$queue] .= self::SMARTY_TAG_BEGIN.$clauses[$seq].self::SMARTY_TAG_END; + if($seq < count($clauses)) { + $clauses[$queue++] .= $clauses[++$seq]; + } + } else { + $clauses[$queue++] = $clauses[$seq]; + } + } + array_splice($clauses, $queue); + + //Split phrases for the conditional statement + $count = 0; + $queue = 0; + for($seq = 0; $seq < count($clauses); $seq++) { + + if ($seq > 0 && substr(ltrim($clauses[$seq]), 0, 2) == 'if') { + $count++; + } + if($count > 0) { + $clauses[--$queue] .= ($seq % 2 == 0) ? self::SMARTY_TAG_BEGIN.$clauses[$seq].self::SMARTY_TAG_END : $clauses[$seq]; + if($seq < count($clauses)) { + $clauses[$queue++] .= $clauses[++$seq]; + } + } else { + $clauses[$queue++] = $clauses[$seq]; + } + + if ( $seq > 0 && substr(ltrim($clauses[$seq - 1]), 0, 3) == '/if') { + $count--; + } + } + array_splice($clauses, $queue); + + //resemble the smarty phases + $seq = 0; + foreach($clauses as $index => $clause) { + if($index % 2 == 0) { + $smarty_template['template'] .= '{'.$clause.'}'; + + } else { + $key = '[CONTENT'.($seq++).']'; + $smarty_template['template'] .= $key; + $params = array(); + if($is_attr) + self::extractAttributes($clause, $params); + else + $params = self::parseHtmlTag($clause); + $smarty_template[$key] = $params; + } + } + $output['smarty'][] = $smarty_template; + $i = $_right + 1; + } + + public static function extractAttributes($code, &$output) { + $var_assign = false; + $quote_encoded = false; + $smarty_encoded = false; + $cache = array(); + $code = rtrim($code); + for($i = 0; $i < strlen($code) ; $i ++) { + $char = $code[$i]; + if( !$smarty_encoded && ($char == self::SINGLE_QUOTE || $char == self::DOUBLE_QUOTE) ) { + if(empty($quote_type)) { + $quote_encoded = true; + $quote_type = $char; + } else if ($quote_type == $char) { + if(!empty($cache)) { + $string = implode('', $cache); + if(empty($var_name)) { + $var_name = $string; + } else if($var_assign) { + $output[$var_name] = $string; + unset($var_name); + } + } + $quote_type = ''; + $var_assign = false; + $cache = array(); + $quote_encoded = false; + } else { + array_push($cache, $char); + } + } else if ( $quote_encoded && $char == self::SMARTY_TAG_BEGIN ) { + $smarty_encoded = true; + array_push($cache, $char); + } else if ( $quote_encoded && $char == self::SMARTY_TAG_END ) { + $smarty_encoded = false; + array_push($cache, $char); + } else if ( !$quote_encoded && $char == ' ' ) { + if(!empty($cache)) { + $string = implode('', $cache); + if(empty($var_name)) { + $var_name = $string; + } else if($var_assign) { + $output[$var_name] = $string; + unset($var_name); + } + $quote_encoded = false; + $var_assign = false; + $cache = array(); + } + } else if ( !$quote_encoded && $char == self::ASSIGN_SIGN ) { + + if(!empty($var_name)) { + $output[$var_name] = ''; + } + $string = implode('', $cache); + if(trim($string) != "") { + $var_name = $string; + } + $var_assign = true; + $cache = array(); + } else if ( !$quote_encoded && $char == self::SMARTY_TAG_BEGIN) { + self::parseSmartyTag($code, $output, $i, true); + } else if ( !$quote_encoded && $char == self::HTML_TAG_END ) { + break; + } else { + array_push($cache, $char); + } + } + if(!empty($cache)) { + $var_name = implode('', $cache); + $output[$var_name] = ''; + } + + if(isset($output['self_closing']) && $output['self_closing'] === false) { + $output['container'] = self::parseHtmlTag(substr($code, $i + 1)); + return ''; + } + + return substr($code, $i + 1); + } + + public static function createAttributes($params) { + $options = ""; + foreach($params as $attr => $value) { + if($value) + $options .= $attr.'="'.$value.'" '; + } + return $options; + } + +} \ No newline at end of file diff --git a/include/database/SqlsrvManager.php b/include/database/SqlsrvManager.php index 6b0fb161..83250ba2 100644 --- a/include/database/SqlsrvManager.php +++ b/include/database/SqlsrvManager.php @@ -509,6 +509,15 @@ EOSQL; return $sql; } + /** + * Truncate table + * @param $name + * @return string + */ + public function truncateTableSQL($name) + { + return "TRUNCATE TABLE $name"; + } /** * (non-PHPdoc) diff --git a/include/generic/SugarWidgets/SugarWidgetFielddatetime.php b/include/generic/SugarWidgets/SugarWidgetFielddatetime.php index 0d7b8629..b888a5c8 100644 --- a/include/generic/SugarWidgets/SugarWidgetFielddatetime.php +++ b/include/generic/SugarWidgets/SugarWidgetFielddatetime.php @@ -481,17 +481,7 @@ class SugarWidgetFieldDateTime extends SugarWidgetReportField return parent :: querySelect($layout_def)." \n"; } function & displayListday(& $layout_def) { - global $timedate; - $field_name = strtoupper($this->_get_column_alias($layout_def)); - $tmp_field_name = str_replace('_DAY_', '_DAYREAL_', $field_name); - if($tmp_field_name != $field_name && isset($layout_def['fields'][$tmp_field_name])) - { - return $timedate->to_display_date($layout_def['fields'][$tmp_field_name], true); - } - else - { - return parent:: displayListPlain($layout_def); - } + return parent:: displayListPlain($layout_def); } function & displayListyear(& $layout_def) { @@ -522,17 +512,6 @@ class SugarWidgetFieldDateTime extends SugarWidgetReportField return $this->reporter->db->convert($this->_get_column_select($layout_def), "date_format", array('%Y-%m'))."\n"; } - /** - * Select addon datetime field for "day" field in reports - * - * @param $layout_def array definition of new field - * @return string piece for creation "select" query - */ - function querySelectdayreal($layout_def) - { - return $this->reporter->db->convert($this->_get_column_select($layout_def), "date_format", array('%Y-%m-%d %H:%i:%s'))." ".$this->_get_column_alias($layout_def)."\n"; - } - function querySelectday($layout_def) { return $this->reporter->db->convert($this->_get_column_select($layout_def), "date_format", array('%Y-%m-%d'))." ".$this->_get_column_alias($layout_def)."\n"; diff --git a/include/images/default-profile.png b/include/images/default-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3acb5344543b4fe8444de7b2e5f72b54bf6fa5 GIT binary patch literal 745 zcmVl9vvgoMf~ z8jnIDiV+%#hC-wB_yZIQg-%1IQcxp7q4B5$EjmmzBuIz^L3L5yx$7LssjfLQag48y!$uS_O; z1nZ4iZ1wy7VzGGdQ;|sI_xphlsS|;zP$&@hb-7%s)hd`19Tqq)pU)HD3CNnwCORxI z6+um-(daASP*{uNNMP!AyC|^M>-FJqASkQRXdI76*0I1;1Wf@M>sZt2lrGkAIAk4b zwOY}|f-T9wk2J90+i3;Xm)ON(#sq?iEapVDTFop|sZ=T!u^`h41OmDzB+P>Kup9CQ zgMqFG88D&1V&->xSWc%?E|+r-ODq=0VzEDT1j|5?sx=x-I2@*KDy!9s=o;wpc#K9P z#dx>bZ0Jf1xD$WtKA}(;iA0cAK4!BS4kU6@ft|EkE$V^{f{Yvs20WooG?`4~PJ9H5 zd7ZdiF3Ha%xY9hqS~n~bRVo$6WDKzegTZ#YC3oU{K99%a%*be0)$lW=QmJ0AQyi~Q zC=!W;PN!o9>wG?UI-SX60(ByT)dvCrpU)?eNPY}!zu)(Iy;`jXFCOf}U>N3hyQ%ah z$gplSIFA2plL%~veaddP)4*CR7VUN$n0C7zt4%E61F~Q+s8lM+uz(|-PLIc9#7#Df z#S#jI;Q0@%R;!iE*>8oy<200000NkvXXu0mjfUcXCF literal 0 HcmV?d00001 diff --git a/include/javascript/ajaxUI.js b/include/javascript/ajaxUI.js index ade6c964..5edacaca 100644 --- a/include/javascript/ajaxUI.js +++ b/include/javascript/ajaxUI.js @@ -42,7 +42,8 @@ if(r.favicon) {SUGAR.ajaxUI.setFavicon(r.favicon);} var c=document.getElementById("content");c.innerHTML=cont;SUGAR.util.evalScript(cont);if(r.moduleList) {SUGAR.themes.setModuleTabs(r.moduleList);} -if(typeof(r.responseTime)!='undefined'){var rt=document.getElementById('responseTime');if(rt!=null){rt.innerHTML=r.responseTime;}}}catch(e){SUGAR.ajaxUI.showErrorMessage(o.responseText);}},showErrorMessage:function(errorMessage) +if(typeof(r.responseTime)!='undefined'){var rt=$("#responseTime");if(rt.length>0){rt.html(rt.html().replace(/[\d]+\.[\d]+/,r.responseTime));} +else if(typeof(logoStats)!="undefined"){$("#logo").attr("title",logoStats.replace(/[\d]+\.[\d]+/,r.responseTime)).tipTip({maxWidth:"auto",edgeOffset:10});}}}catch(e){SUGAR.ajaxUI.showErrorMessage(o.responseText);}},showErrorMessage:function(errorMessage) {if(!SUGAR.ajaxUI.errorPanel){SUGAR.ajaxUI.errorPanel=new YAHOO.widget.Panel("ajaxUIErrorPanel",{modal:false,visible:true,constraintoviewport:true,width:"800px",height:"600px",close:true});} var panel=SUGAR.ajaxUI.errorPanel;panel.setHeader(SUGAR.language.get('app_strings','ERR_AJAX_LOAD'));panel.setBody('');panel.setFooter(SUGAR.language.get('app_strings','ERR_AJAX_LOAD_FOOTER'));panel.render(document.body);SUGAR.util.doWhen(function(){var f=document.getElementById("ajaxErrorFrame");return f!=null&&f.contentWindow!=null&&f.contentWindow.document!=null;},function(){document.getElementById("ajaxErrorFrame").contentWindow.document.body.innerHTML=errorMessage;window.setTimeout('throw "AjaxUI error parsing response"',300);});SUGAR.ajaxUI.errorMessage=errorMessage;window.setTimeout('if((typeof(document.getElementById("ajaxErrorFrame")) == "undefined" || typeof(document.getElementById("ajaxErrorFrame")) == null || document.getElementById("ajaxErrorFrame").contentWindow.document.body.innerHTML == "")){document.getElementById("ajaxErrorFrame").contentWindow.document.body.innerHTML=SUGAR.ajaxUI.errorMessage;}',3000);panel.show();panel.center();throw"AjaxUI error parsing response";},canAjaxLoadModule:function(module) {var checkLS=/&LicState=check/.exec(window.location.search);if(checkLS||(typeof(SUGAR.config.disableAjaxUI)!='undefined'&&SUGAR.config.disableAjaxUI==true)){return false;} diff --git a/include/javascript/jquery/jquery.hoverscroll.js b/include/javascript/jquery/jquery.hoverscroll.js index fc32e832..61bf0c79 100644 --- a/include/javascript/jquery/jquery.hoverscroll.js +++ b/include/javascript/jquery/jquery.hoverscroll.js @@ -410,7 +410,7 @@ $.fn.hoverscroll = function(params) { // Bind stopMoving to the mouseleave // jQuery 1.2.x backward compatibility, thanks to Andy Mull! // replaced .mouseleave(...) with .bind('mouseleave', ...) - .bind('mouseleave', function() {stopMoving();}); + .bind('mouseleave, mouseout', function() {stopMoving();}); // Bind the startMoving and stopMoving functions // to the HTML object for external access diff --git a/include/javascript/jquery/jquery.sugarMenu.js b/include/javascript/jquery/jquery.sugarMenu.js index fac02b1a..71f19e55 100644 --- a/include/javascript/jquery/jquery.sugarMenu.js +++ b/include/javascript/jquery/jquery.sugarMenu.js @@ -152,8 +152,8 @@ var jNode = $(node); var parent = jNode.parent(); var fancymenu = ""; - var slideUpSpeed = "fast"; - var slideDownSpeed = "fast"; + var slideUpSpeed = 0; + var slideDownSpeed = 0; var dropDownHandle; //if the dropdown handle doesn't exist, lets create it and diff --git a/include/javascript/jquery/jquery.superfish.js b/include/javascript/jquery/jquery.superfish.js index 08799dd2..de45ce17 100644 --- a/include/javascript/jquery/jquery.superfish.js +++ b/include/javascript/jquery/jquery.superfish.js @@ -35,6 +35,12 @@ var $$ = $(this), menu = getMenu($$), o = sf.op; + + if($$.parent().hasClass("hs-active")) { + //Bug#51993: deactive submenu while hoverscroll is activated + return; + } + if (!o.firstOnClick || menuActive || $$.parent()[0] != menu) { clearTimeout(menu.sfTimer); diff --git a/include/javascript/sugar_3.js b/include/javascript/sugar_3.js index acd371ce..c299667f 100644 --- a/include/javascript/sugar_3.js +++ b/include/javascript/sugar_3.js @@ -395,7 +395,7 @@ if(pageTotal>=0) sugarListView.update_count(pageTotal);else if(value) sugarListView.update_count(count,true);else sugarListView.update_count(-1*count,true);sugarListView.prototype.toggleSelected();} -sugarListView.check_all=sugarListView.prototype.check_all;sugarListView.confirm_action=sugarListView.prototype.confirm_action;sugarListView.prototype.check_boxes=function(){var inputsCount=0;var checkedCount=0;var existing_onload=window.onload;var theForm=document.MassUpdate;inputs_array=theForm.elements;if(typeof theForm.uid.value!='undefined'&&theForm.uid.value!=""){checked_items=theForm.uid.value.split(",");if(theForm.select_entire_list.value==1){document.MassUpdate.massall.disabled=true;sugarListView.prototype.toggleSelected();} +sugarListView.check_all=sugarListView.prototype.check_all;sugarListView.confirm_action=sugarListView.prototype.confirm_action;sugarListView.prototype.check_boxes=function(){var inputsCount=0;var checkedCount=0;var existing_onload=window.onload;var theForm=document.MassUpdate;inputs_array=theForm.elements;if(typeof theForm.uid.value!='undefined'&&theForm.uid.value!=""){checked_items=theForm.uid.value.split(",");if(theForm.select_entire_list.value==1){document.MassUpdate.massall.disabled=true;sugarListView.prototype.toggleSelected();$("#button_select_all_top").click();} for(var wp=0;wp0&&this._doWhenStack.length>0);} var notAvail=[];var executeItem=function(context,item){if(item.overrideContext){if(item.overrideContext===true){context=item.obj;}else{context=item.overrideContext;}} -item.fn.call(context,item.obj);};var i,len,item,test;for(i=0,len=this._doWhenStack.length;i-1;i--){item=this._doWhenStack[i];if(!item||!item.check){this._doWhenStack.splice(i,1);}} this._startDoWhenInterval();}else{if(this._doWhenInterval){this._doWhenInterval.cancel();this._doWhenInterval=null;}} diff --git a/include/language/en_us.lang.php b/include/language/en_us.lang.php index 08f3b263..7185a8e5 100644 --- a/include/language/en_us.lang.php +++ b/include/language/en_us.lang.php @@ -899,7 +899,7 @@ $app_list_strings = array ( 'Monthly' => 'Monthly', 'Yearly' => 'Yearly', ), - + 'repeat_intervals' => array( '' => '', 'Daily' => 'day(s)', @@ -907,7 +907,7 @@ $app_list_strings = array ( 'Monthly' => 'month(s)', 'Yearly' => 'year(s)', ), - + 'duration_dom' => array( '' => 'None', '900' => '15 minutes', @@ -1777,7 +1777,7 @@ $app_strings = array ( 'LBL_IMPORT' => 'Import', 'LBL_IMPORT_STARTED' => 'Import Started: ', 'LBL_MISSING_CUSTOM_DELIMITER' => 'Must specify a custom delimiter.', - 'LBL_LAST_VIEWED' => 'Last Viewed', + 'LBL_LAST_VIEWED' => 'Recently Viewed', 'LBL_SHOW_LESS' => 'Show Less', 'LBL_SHOW_MORE' => 'Show More', 'LBL_TODAYS_ACTIVITIES' => 'Today\'s Activities', @@ -1871,7 +1871,7 @@ $app_strings = array ( 'LBL_PRIMARY_ADDRESS_STREET_3' => 'Primary Address Street 3:', 'LBL_PRIMARY_ADDRESS_STREET' => 'Primary Address Street:', 'LBL_PRIMARY_ADDRESS' => 'Primary Address:', - + 'LBL_BILLING_STREET'=> 'Street:', 'LBL_SHIPPING_STREET'=> 'Street:', @@ -2050,6 +2050,8 @@ $app_strings = array ( 'LNK_ABOUT' => 'About', 'LNK_ADVANCED_SEARCH' => 'Advanced Search', 'LNK_BASIC_SEARCH' => 'Basic Search', + 'LNK_SEARCH_FTS_VIEW_ALL' => 'View all results', + 'LNK_SEARCH_NONFTS_VIEW_ALL' => 'Show All', 'LNK_CLOSE' => 'close', 'LBL_MODIFY_CURRENT_SEARCH'=> 'Modify current search', 'LNK_SAVED_VIEWS' => 'Layout Options', @@ -2145,10 +2147,10 @@ $app_strings = array ( 'MSG_JS_ALERT_MTG_REMINDER_MEETING_MSG' => "\nClick OK to view this meeting or click Cancel to dismiss this message.", 'MSG_LIST_VIEW_NO_RESULTS_BASIC' => "No results found.", 'MSG_LIST_VIEW_NO_RESULTS' => "No results found for ", - 'MSG_LIST_VIEW_NO_RESULTS_SUBMSG' => "Create as a new ", + 'MSG_LIST_VIEW_NO_RESULTS_SUBMSG' => "Create as a new ", 'MSG_EMPTY_LIST_VIEW_NO_RESULTS' => "You currently have no records saved. or one now.", 'MSG_EMPTY_LIST_VIEW_NO_RESULTS_SUBMSG' => " to learn more about the module. In order to access more information, use the user menu drop down located on the main navigation bar to access Help.", - + 'LBL_CLICK_HERE' => "Click here", // contextMenu strings 'LBL_ADD_TO_FAVORITES' => 'Add to My Favorites', @@ -2356,7 +2358,7 @@ $app_strings = array ( 'LBL_MERIDIEM' => 'Meridiem', 'LBL_DATE' => 'Date', 'LBL_DASHLET_CONFIGURE_AUTOREFRESH' => 'Auto-Refresh', - + 'LBL_DURATION_DAY' => 'day', 'LBL_DURATION_HOUR' => 'hour', 'LBL_DURATION_MINUTE' => 'minute', diff --git a/include/utils.php b/include/utils.php index 656f0ea0..45a071e4 100644 --- a/include/utils.php +++ b/include/utils.php @@ -2400,7 +2400,7 @@ function get_emails_by_assign_or_link($params) //$return_array['join'] = ''; $return_array['join_tables'][0] = ''; - if(0 && $bean->object_name == "Case" && !empty($bean->case_number)) { + if($bean->object_name == "Case" && !empty($bean->case_number)) { $where = str_replace("%1", $bean->case_number, $bean->getEmailSubjectMacro()); $return_array["where"] .= "\n AND emails.name LIKE '%$where%'"; } diff --git a/include/utils/layout_utils.php b/include/utils/layout_utils.php index 0f040f36..ff5fe2ea 100644 --- a/include/utils/layout_utils.php +++ b/include/utils/layout_utils.php @@ -252,7 +252,6 @@ function getClassicModuleTitle($module, $params, $show_create=false, $index_url_ global $app_strings; $module_title = ''; - $count = count($params); $index = 0; $module = preg_replace("/ /","",$module); @@ -271,20 +270,8 @@ function getClassicModuleTitle($module, $params, $show_create=false, $index_url_ array_unshift ($params,""); } - $new_params = array(); - $i = 0; - foreach ($params as $value) { - if ((!is_null($value)) && ($value !== "")) { - $new_params[$i] = $value; - $i++; - } - } - - if(SugarThemeRegistry::current()->directionality == "rtl") { - $new_params = array_reverse($new_params); - } - - $module_title = join(SugarView::getBreadCrumbSymbol(),$new_params); + $new_params = array_pop($params); + if(!is_null($new_params) && ($new_params !== "")) $module_title = $new_params; if(!empty($module_title)){ $the_title .= "

".$module_title."

\n";//removing empty H2 tag for 508 compliance } diff --git a/include/utils/mvc_utils.php b/include/utils/mvc_utils.php index 23420eed..7ee570c5 100644 --- a/include/utils/mvc_utils.php +++ b/include/utils/mvc_utils.php @@ -57,7 +57,7 @@ function loadParentView($type) } } -$msi0="len";$msi="code";$msi1="2C87B98C54433A2BE9B4BF89808B200CaWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW5kcyBTdWdhckJlYW4geyAgdmFyICRtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgIHZhciAkdGFibGVfbmFtZSA9ICd0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmFja2VyJzsgICAgIHZhciAkb2JqZWN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CX25hbWUgPSAnVHJhY2tlcic7ICB2YXIgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXInOyAgICAgIHZhciAkY29sdW1uX2ZpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWxkcyA9IEFycmF5KCAgICAgICAgICJpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCIsICAgICAgICAgIm1vbml0b3JfaWQiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLCAgICAgICAgICJ1c2VyX2lkIiwgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAibW9kdWxlX25hbWUiLCAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICJpdGVtX2lkIiwgICAgICAgICAiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXRlbV9zdW1tYXJ5IiwgICAgICAgICAiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbiIsICAgICAgInNlc3Npb25faWQiLCAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICJ2aXNpYmxlIiAgICAgKTsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICBmdW5jdGlvbiBUcmFja2VyKCkgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHsgICAgICBnbG9iYWwgJGRpY3Rpb25hDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ccnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ11bJHRoaXMtPm9iamVjdF9uYW1lXSkpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeyAgICAgICAgICAkcGF0aCA9ICdtb2R1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJzsgICAgaWYoZGVmaW5lZCgnVEVNUExBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVEVfVVJMJykpJHBhdGggPSBTdWdhclRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmVfb25jZSgkcGF0aCk7ICAgICAgfSAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgIHBhcmVudDo6U3VnYXJCZWFuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1ha2VJbnZpc2libGVGb3JBbGwoJGl0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW1faWQpICAgICB7ICAgICAgICAgJHF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCcgQU5EIHZpc2libGUgPSAxIjsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGggPSAnbW9kdWxlcy9UcmFja2Vycy9CDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmVhZENydW1iU3RhY2sucGhwJzsgICBpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZihkZWZpbmVkKCdURU1QTEFURV9VUkwnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXRoKTsgICAgICByZXF1aXJlX29uY2UoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHBhdGgpOyAgICAgICAgIGlmKCFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ10pKXsgICAgICAgICAgJGJyZWFkQ3J1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWJzID0gJF9TRVNTSU9OWydicmVhZENyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW1icyddOyAgICAgICAgICAkYnJlYWRDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgICAgICAgIH0gICAgIH0gICAgICBmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHRpbWVfb25fbGFzdF9wYWdlID0gMDsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICBpZihlbXB0eSgkR0xPQkFMU1snDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXBwJ10tPmhlYWRlckRpc3BsYXllZCApDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKXJldHVybjsgICAgICBpZighZW1wdHkoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJF9TRVNTSU9OWydscGFnZSddKSkkdGltDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgJF9TRVNTSU9OWydscGFnZSddPXRpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWUoKTsgICBtdmNsb2coJHRpbWVfb25fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGFzdF9wYWdlKTsgICAgIH0gICAgZnVuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJykgICAgIHsgICAgICAkcGF0aCA9ICdtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWJTdGFjay5waHAnOyAgIGlmKGRlZmluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cczo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgaWYoZW1wdHkoJF9TRVNTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU9OWydicmVhZENydW1icyddKSkgeyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICAkYnJlYWRDcnVtYiA9DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG5ldyBCcmVhZENydW1iU3RhY2soJHVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJfaWQsICRtb2R1bGVzKTsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJF9TRVNTSU9OWydicmVhZENyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW1icyddID0gJGJyZWFkQ3J1bWI7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICRHTE9CQUxTWydsb2cnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTE9CQUxTWydhcHBfc3RyaW5ncyddWydMDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgfSBlbHNlIHsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICRtb2R1bGVfcXVlcnkgPSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJzsgICAgICAgICAgaWYoIWVtcHR5KCRtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVzKSkgeyAgICAgICAgICAgICAkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGlzdG9yeV9tYXhfdmlld2VkID0gMTA7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICAgICRtb2R1bGVfcXVlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnkgPSBpc19hcnJheSgkbW9kdWxlcykgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXCcnIC4gaW1wbG9kZSgiJywnIiAsICRtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVzKSAuICdcJyknIDogICcgQU5EDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZHVsZXMgLiAnXCcnOyAgICAgICAgICB9DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGVsc2UgeyAgICAgICAgICAgICAkaGlzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdG9yeV9tYXhfdmlld2VkID0gKCFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSgkR0xPQkFMU1snc3VnYXJfY29uZmlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKSk/ICRHTE9CQUxTWydzdWdhcl9jb25mDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ10gOiA1MDsgICAgICAgICAgfSAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGhpcy0+dGFibGVfbmFtZSAuICcgV0hFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWQgPSBcJycgLiAkdXNlcl9pZCAuICdcDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZHVsZV9xdWVyeSAuICcpJzsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGltaXRRdWVyeSgkcXVlcnksMCwkaGlzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdG9yeV9tYXhfdmlld2VkLHRydWUsJHF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3NvYygkcmVzdWx0KSkpIHsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICRicmVhZENydW1iLT5wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXNoKCRyb3cpOyAgICAgICAgICB9ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgfSAgICAgICAgICRsaXN0ID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWJMaXN0KCRtb2R1bGVzKTsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAkR0xPQkFMU1snbG9nJ10tPmluZm8oDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgIHJldHVybiAkbGlzdDsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWVudHMoJGludGVyZmFjZSl7ICAgcmV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIWZ1bmN0aW9uX2V4aXN0cygndmNtc2knDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJhdGUsICRtZDUsICRhbHQgPSAnJykgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXN0cygkZ2VuZXJhdGUpICYmICRoYW5kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYicsIHRydWUpKSB7ICAgICRmcm9tX2tlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSA9IHN0cmVhbV9nZXRfY29udGVudHMoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXkpID09ICRhbHQpKSB7ICAgICByZXR1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ccm4gMDsgICAgfSAgIH0gICAgcmV0dXJuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIC0xOyAgIH0gfSBpZighZnVuY3Rpb25fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGhrZXksICRpLCAkYWx0ID0gJycsICRjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY29kZSgkYXV0aGtleSk7ICAgaWYoIWVtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGUsICdyYicsIHRydWUpKSApIHsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWYoJGMpeyAgICAgJGZyb21fa2V5ID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbHNleyAgICAgJGZyb21fa2V5ID0gc3RyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWFtX2dldF9jb250ZW50cygkaGFuZGxlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKTsgICAgfSAgICBpZiAoc3Vic3RyX2NvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW50KCRmcm9tX2tleSwgJGF1dGhrZXkpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIDwgJGkpIHsgICAgICAgaWYgKCFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbV9rZXksICRhbHRrZXkpID49ICRpKSB7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgIHJldHVybiAwOyAgICAgfSAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHsgICAgIHJldHVybiAwOyAgICB9ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIH0gZWxzZSB7ICAgICByZXR1cm4gLTE7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgfSAgfSB9ICBpZighZnVuY3Rpb25fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb24gYW1zaSgkYXMpIHsgICBpbmNsdWRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHogPSAxOyAgIGdsb2JhbCAkbG9naW5fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJyc7ICAgJHN0ciA9ICcnOyAgICBmb3JlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWNoICgkYXMgYXMgJGspIHsgICAgaWYgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCFlbXB0eSAoJGtbJ20nXSkpIHsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICR0ZW1wID0gdmNtc2koJGtbJ2cnXSwgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGtbJ20nXSwgJGtbJ2EnXSwgJGtbJ2wnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXSk7ICAgIH0gZWxzZSB7ICAgICAkdGVtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCA9ICBhY21zaSgka1snZyddLCAka1snDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYSddLCAka1snaSddLCAka1snYiddLCAkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca1snYyddLCRrWydsJ10pOyAgICB9ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKCFlbXB0eSgkdGVtcCkpeyAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHEgPSAkcSB8ICRrWydzJ107ICAgIH0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoJGtbJ3MnXSA9PSAyKXsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKCRzdWdhcl9mbGF2b3IgPT0gJ0NFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJyB8fCAkc3VnYXJfZmxhdm9yID09ICdDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT00nKXsgICAgICAkbSA9ICRrWydhJ107DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJHN0ciAuPSBiYXNlNjRfZGVjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2RlKCRtKTsgICAgIH1lbHNleyAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAkbSA9ICRrWydiJ107ICAgICAgaWYoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIWVtcHR5KCRzdHIpKSRzdHIuPSc8YnIvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPic7ICAgICAgJHN0ciAuPSBiYXNlNjRfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZGVjb2RlKCRtKTsgICAgIH0gICAgfSAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIH0gICBpZiAoJHEgIT0gMCB8fCAhZW1wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdHkoJF9TRVNTSU9OWydtdmknXSkpIHsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbXZpJ10pKSRvZGQgPSAkX1NFU1NJT05bDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ212aSddOyAgICAgJGltYWdlX2NvbnRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnRzPSAnaVZCT1J3MEtHZ29BQUFBTlNVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaEVVZ0FBQUdvQUFBQVhDQVlBQUFEam5kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcUlBQUFBQkdkQlRVRUFBTEdPZlB0Umt3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQUFDa0ZwUTBOUVNVTkRJRkJ5YjJacGJHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVUFBSGdCblpaM1ZGUFpGb2ZQdlRlOTBCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSWlJQ1gwR25vSklOSTdTQlVFVVlsSmdGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQUNob1FtZGtRRlJoUVJLVlprVk1BQlI0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2lZMFVVQzRPQ1l0Y0o4aEJReHNGUlJFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWGwzWXhyQ2UrdE5mUGVtdjNIV2QvWjU3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZlgyV2Z2ZmRlNkFGRDhnZ1RDZEZnQmdEDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU2hXQlR1NjhGY0VoUEx4UGNDR0JBQkRsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ0J3T0ZtWmdSSCtFUUMxUHk5UFptWnFFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CakdzL2J1TG9Ca3U5c3N2MUFtYzliL2Y1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRWlOME1rQmdBS1JkVTJQSDRtRitVQ2xGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT3p4Umt5L3dUSzlKVXBNb1l4TWhhaENhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CS3NJdVBFcjJ6MnArWXJ1OG1ZbHlia29SDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcFp6aG04Tko2TXUxRGVtaVhobzR3RW9WDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeVlKZUJubzN3SFpiMVVTWm9BNWZjbzA5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUDRuRXdBTUJTWlg4em5KcUZzaVRKRkZCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnVpZklDQUFpVXhEbThjZzZMK1Rsb25nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQjRwbWZraWdTSlNXS21FZGVZYWVYb3lHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjY4Yk5UK1dJeEs1VERUZUdJZUV6UDlMDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUU1qakFYZ0s5dmxrVUJKVmx0bVdpUjdhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMGM3ZTFaMXVabytiL1ozeDUrVS8wOXlIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcjdWZkVtN00rZVFZeWVXZDlzN0t3dnZSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWUE5aVJhbXgyenZwVlZBTFJ0QmtEbDRhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeFA3eUFBOGdVQXRONmM4eDZHYkY2U3hPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU1Kd3VMN094c2N3R2ZheTRyNkRmN240DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSnZ5citHT2ZlWnkrNzdWanVtRnorQkkwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca1ZNMlZGNWFhbnBrdEV6TXdNRHBmUFpQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMzNFUC9qd0RscHpjbkRMSnlmd0JmeGhlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaFZVZWlVQ1lTSmFMdUZQSUZZa0M1a0NvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUi8xZUYvR0RZbkJ4bCtuV3NVYUhWZkFIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMkZPVkM0U1FmSWJ6MEFReU1ESkc0L2VnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSjk2MXNRTVFySXZyeG9yWkd2YzQ4eWV2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CN24raDhMWElwdTRVeEJJbFBtOWd5UFpIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSWxvaXdabzkrRWJNRUNFcEFIZEtBS05JDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRXVNQUlzWUEwY2dETndBOTRnQUlTQVNCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQURsZ011U0FKcFFBU3lRVDdZQUFwQk1kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ0Jkb05xY0FEVWdYclFCRTZDTm5BR1hBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUlh3QTF3Q3d5QVIwQUtoc0ZMTUFIZWdXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca0lndkFRRmFKQnFwQVdwQStaUXRZUUcxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb0llVU5CVURnVUE4VkRpWkFRa2tENTBDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYW9HQ3FEcXFGRFVEMzBJM1FhdWdoZGcvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcWdCOUFnTkFiOUFYMkVFWmdDMDJFTjJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQzJnTm13T3h3SVI4TEw0RVI0Rlp3SEY4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRGI0VXE0Rmo0T3Q4SVg0UnZ3QUN5Rlg4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CS1RDRURJQ0FQUlJsZ0lHL0ZFUXBCWUpBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRVJJV3VSSXFRQ3FVV2FrQTZrRzdtTlNKDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRng1QU1HaDZGaG1CZ1d4aG5qaDFtTTRXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSldZZFppU2pEVm1HT1lWa3dYNWpabUVEDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT0IrWUtsWXRXeHBsZ25yRDkyQ1RZUm00DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMHR4RlpnajJCYnNKZXhBOWhoN0RzY0RzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZkFHZUljY0g2NEdGd3liald1QkxjUDE0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeTdnT3ZERGVFbThYaThLdDRVNzRJUHdYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUHdZbndodmdwL0hIOGUzNDhmeHI4bmtBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGFCR3VDRHlHV0lDUnNKRlFRR2dqbkNQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMkVFY0kwVVlHb1QzUWloaEI1eEZ4aUtiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CR08yRUc4U1J3bVRwTVVTWVlrRjFJa0taDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbTBnVlJKYWlKZEpqMG12U0dUeVRwa1IzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSVlXVUJlVDY0a255QmZKUStTUDFDVUtDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWVVUMG9jUlVMWlRqbEt1VUI1UUhsRHBWDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU5xRzdVV0txWXVwMWFUNzFFZlVwOUwwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZVRNNWZ6bCtQSnJaT3JrV3VWNjVkN0pVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1UxNWQzbDE4dW55ZGZJWDlLL3FiOHVBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSlJ3VURCVTRHanNGYWhSdUcwd2oyRlNVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV2FvcFZpaUdLYVlvbGlnK0kxeFZFbHZKDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CS0JrcmNTVDZsQTZiRFNKYVVoR2tMVHBYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CblN1TFJOdERyYVpkb3dIVWMzcFB2VGsrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbkY5Qi9vdmZRSlpTVmxXK1VvNVJ6bEd1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV3p5bElHd2pCZytETlNHYVdNazR5N2pJDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3pOT2E1eitQUDJ6YXZhVjcvdkNtVitTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHVLbnlWSXBWbWxRR1ZqNnBNVlcvVkZODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV2RxbTJxVDlRd2FpWnFZV3JaYXZ2VkxxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdU56NmZQZDU3UG5WODAvK1Q4aCtxd3VvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbDZ1UHBxOWNQcVBlcVRHcG9hdmhvWkdsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVWFselRHTlJtYWJwckptdVdhNXpUSHRHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGFDN1VFV3VWYTU3VmVNSldaN3N4VVppDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV3ppem1ocmE3dHB5M1JQcVRkcXoydFk2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXpXR2VqVHJQT0UxMlNMbHMzUWJkY3QxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTjNRazlMTDFndlg2OVI3NkUrVVordG42DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUy9SNzliZjhyQTBDRGFZSXRCbThHb29ZDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcWh2MkdlWWFQaFl5T3FrYXZSS3FOYW96DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdkdPR08yY1lyeFB1TmJKckNKblVtU1NZDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CM0pUVlBZMU41VVlMclB0TThNYStab0pqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU3JOYnZIb3JEY1dWbXNSdGFnT2NNOHlIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeWplWnY1S3dzOWkxaUxuUmJkRmw4czdTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeFRMZXNzSDFrcFdRVlliYlRxc1ByRDJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU2FhMTFqZmNlR2F1TmpzODZtM2VhMXJhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca3QzM2EvN1gwN21sMnczUmE3VHJ2UDlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNzJJdnNtK3pFSFBZZDRoNzBPOTloMGRpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaTdoSDNWRWV2bzRiak84WXpqQnlkN0o3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSFRTYWZmblZuT0tjNE56cU1MREJmd0Y5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUXRHSExSY2VHNEhIS1JMbVF1akY5NGNLDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSFVWZHVWNDFycitzeE4xNDNuZHNSdHhODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CM1lQZG45dVBzckQwc1BrVWVMeDVTbmsrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2F6d3RlaUpldlY1RlhyN2VTOTJMdmF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK25Qam8raVQ2TlBoTytkcjZyZlMvNFlmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMEMvWGI2M2ZQWDhPZjYxL3RQQkRnRXJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cbm9DcVFFUmdSV0J6NExNZ2tTQlhVRXc4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRUJ3YnVDSHkvU1h5UmMxQllDUXZ4RGRvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVThDVFVNWFJYNmN4Z3VMRFNzSnV4NXVGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVjRmbmgzQkMxaVJVUkR4THRJajhqU3lFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZUxqUlpMRm5kR3lVZkZSZFZIVFVWN1JaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZEZTNWRZTEZtejVFYU1Xb3dncGowV0h4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc1ZleVIyY3FuMzB0MUxoK1BzNGdyajdpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNHpYSmF6N05weXRlV3B5OCt1a0YvQldYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRXFIaHNmSGQ4US80a1R3cW5sVEs3MFg3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbDM1UVRYazd1SCs1TG54aXZuamZGZCtHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWDhrUVNYaExLRTBVU1h4RjJKWTBtdVNSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVko0d0pQUWJYZ2RiSmY4b0hrcVpTUWxLDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTXBNNm5ScWMxcGhMVDR0Tk5DSldHS3NDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGRNejBudlMvRE5LTXdRN3JLYWRYdVZSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT2lRTkdSVENoeldXYTdtSTcrVFBWSWpDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU2JKWU5aQzdOcXN0NW5SMldmeWxITUVlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjA1SnJrYnNzZHlmUEorMzQxWmpWM2RXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZStkdjZHL01FMTdtc09yWVhXcmx6YnVVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNTNYY0c2NGZXKzY0OXRJRzFJMmZETFJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdU5aUnZmYm9yZTFGR2dVYkMrWUdpejcrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYkdRcmxDVWVHOUxjNWJEbXpGYkJWczdkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMW1zNjFxMjVjaVh0SDFZc3ZpaXVKUEpkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeVM2OTlaZlZmNTNjejJoTzI5cGZhbCszDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZmdkZ2gzM04zcHV2TlltV0paWHRuUXJ1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQmRyZVhNOHFMeXQ3dFg3TDVXWVZ0eFlBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COXBqMlNQdERLb3NyMUtyMnBIMWFmcXBPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcUJHbythNXIzcWU3ZnRuZHJIMjllLzMyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMS8wd0dOQThVSFBoNFVITHgveVBkUWE2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMUJiY1ZoM09Hc3c4L3JvdXE2djJkL1gzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COUU3VWp4a2M5SGhVZWx4OEtQZGRVNzFODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYzNxRGVVTnNLTmtzYXg0M0hIYi8zZzlVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTjdFNnZwVURPanVmZ0VPQ0U1OGVMSCtCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3ZuZ3c4MlhtS2ZhcnBKLzJmOXJiUVdvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcGFvZGJjMW9tMnBEWnBlMHg3MyttQTA1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMGR6aDB0UDV2L2ZQU005cG1hczhwblM4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1J6aFdjbXptZmQzN3lRc2FGOFl1SkY0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYzZWM1ErdXJUazBwMnVzSzdleTRHWHIxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CN3h1WEtwMjczNy9GV1hxMmV1T1YwN2ZaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMTl2ZTJHL1kzV0hydWVsbC9zZm1ucHRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COXR2ZWx3cy8yVzQ2Mk92Z1Y5NS9wZCt5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL2U5cnA5NVk3L25Sc0Rpd2I2N2k2K2UvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COWUzRDNwZmQ3OTBRZXBEMTQvekhvNC9XDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CajlZK3pqb2ljS1R5cWVxait0L2RYNDEyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXB2ZlRzb05kZ3o3T0laNCtHdUVNdi81DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWDVyMC9EQmMrcHp5dEd0RWJxUjYxSHo0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CejVqTjE2c2ZURjhNdU1sOVBqaGI4cC9yDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjNsZEdybjM1Mys3MW5Zc25FOEd2UjY1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cay9TdDZvdmpuNjF2WnQ1MlRvNU5OM2FlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK21wNHJlcTc0LzlvSDlvZnRqOU1lUjZlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeFArRStWbjQwL2Qzd0ovUEo0Sm0xbTV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLzNoUFA3cGZJbUlnQUFBQWx3U0ZsekFBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQUxFd0FBQ3hNQkFKcWNHQUFBQitOSlJFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRlVhQVh0V25sUVZXVVVQK1JqaENlSXlwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTkJmQ0N1TkVPWllPYWs1VExxVkNiNlg3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbE1saldwb2ROa3VlYVNMU0p1V1FwR0dGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca1dpVnAvNE5hNGpXYkJqRmxzUllVYjVrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTjhJb3VLTEU0WWZiOFB6K1c3bC91dUdJDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNmx3NW01NzF2Tzh0MTdmdDg1NTd2dlBhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLzYrbnBxcGYrL0IyeTR4YlZyVXpvVm5NDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZzYwcjE3OXlBeHRJc0w4L2VKeTB0Y3JYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVG5QSUNvK1Z0Y2RkVTF0ZFVYM09kTEluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcEhENWsxNjZWeXIzVUppZHZQblN2dUdSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLzNYdFNkdTUvV2xacnJnZmx2THNydTJqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWGtsTmUwVjJMcmt6WWtObGV2aVZ4WldSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGxaV1hyNXFPam95Z3dNRkNiMjcvL2dODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWkhoL25RTFMrdm9ONjllMG4raVJNblpjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdmpINDhkbzU0OWVzZzU0eG9CSFFMb2tRDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRUQ2R2JydzhibFM1ZWxEZjRZTldxazdCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnZpMjJ5bkxHMXNzWDNxajYzMlp6UlpuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUEcwMk5ua0MwNHVFdHpaRDNLd0lGYnQzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK3RPUnVDR0s5WXZreUNoVVd3aHErdmo3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUlJVMU1yK1o4a0o5R3AwNmZwMDAyZkVXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1VGYXRXazcrL1A2MWRzMHJLSm05TWtYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYk0xZ2dLQ3BKQWdaZStjeGVGaGpvMSsyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmJ0bFBLeG8vbGVQTVhxUnBQVG9nUEJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcDQzeTVYRWUzNWRpOHRYYktJUlhVdGJQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbjUrVkhIamgza3ZOdDlnUTRlT2t3aUcxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSCtiNy9MWjFuMjdqdnl1VGQ5dnBtT0hqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMUtHTGVVUkVraUd6dXdKY1o4Zkh4bzNwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CelptZ21BQXhCNGR4a2ZmT2FycjBsWlJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU0FRaVJWWEtvZzJLbXNySlRqM0x3OGNqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2NtZzJiclExRjkrdW5yUkVlSHE3MUFaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSnhmWTBwT3FvZW9vYkplTitZNTN0akdXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUHI3QnBDRVgzNnlPbXNuQndDV0tBcHowDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1c3Y0xGUytpQnlFajZOVDlmZ3NRK2tNDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cd1dmTWpEUkF2MHBXcE5UWTN1QVgxOTdYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSzNnMm16ZVZ1YUh6aHdJS1Z1U2FQYTJsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnEzeithU2twS2FPKytmUUxvUWhyOTVCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT2FibDNkZFlKalZPSVVDYURad2JCakpGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV1BJOUVvMDl4eDBibGlxcXF1bHVMSURpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb0JyS3FyVnlrbk4wL0xLQ3EvSmYzYkFwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU3ZyeThsclB2QTlENEFJaHlwT2xWMTV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ3hUOU84QlF1bExsSUlaSkVDUVp5aTBEDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZmIvWmdId2JaVlJLbThCZzN6VDJQTk1wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTWFNWHlZZGwrb1FVaUhLaUhhL2lnNHJtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVUNsZGVTZm91QlFpcEJpdkpFVDRtbytIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQjlnbzQ5ZVBBZ2JZelV3Q0JpRW4ybjAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmR1b1ZwTXB5dU9HckF3SnBJcWVBaFNsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUlM2eTdrVkQzSXFadEs1YUgrVEg1dWttDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcEsxNGV0ZEZFUGNZRzh2YjFwMk5BaE9wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWIrVU1uZkFzRHIvaVZxK3FidStOdXdXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNnI2RzMwQURJTVhtcGI2Uzd3d0UxVFgxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVmVBWlh2T21UNktMWUFmK29VTTV6YWhvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVVE1SzVmcnBSeTdSOS91SW44bGU5L2tuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTnRoRTY3dmhGVUoyUXhCejB6Q2hBMnJPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeEFoMjJwK3VwOXFQTnFYN1ZiV2xwR0JRDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVUZWQ3JlNll4a0Y3VTNLaXBLcE5sQWdsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeHBXYWxSUkRjT0N3MGx1OTFPWjEwdXFyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNXg0SUNBSTlBaGJhakM0RU9PQ1hyUTkwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU1dRTG5pa3Fob2VjUDdpQ2NENEVmbDc2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWXo4MWRMeDBQdTBVcjlDekRtOGtlL2pFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWTZ2MWZTMjVRM2FMd0VTMDZhZk1CdWx4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbVRLRHgrdHNZRnNHeUhKNlBGMnRnb1RPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcDk4Snl4eFVicG01RkdHUm1abENKZUQ2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeG95OVp0TkhOR0xMbUVVOU4zN0xRU2xTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQXRYYktZMHRLMmlRTkY0d2E4UHlLQzVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNTVRNmVMT3FjZVhzeGtWQVZMb0s3ODhMDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTW0yMm5NY0xJLzJQRCtnTW1LM1lkbE5DDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQXlxajFFaGFaczZKUjh1VU1IRWh5SDZBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQmQrN09ZcnAwdGx2M3ppYWs2b0Z3bW0rDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYms5TGNvY3M5R0tkL2NEMFFkUUUvZnJYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYzhuTVdrUmtXMmVDMXdLTiswc0l5eFJaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUmtaR1lhcHlWbzJCUjhpSUp0RmFRbUNpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWVRsa0NwOGdBSjZVZ2xUajF0dXpYdWFKDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWHZxYTl1Z0lndDd4TTJnVXB3UG9QRjh4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZFRkMmdSQzNudzJlRnd1cHJPV01jWTJZDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZzJnTStFZEFaQzJsa1pIeWRibFllWGNSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRDRLaUU2VkZDenNuTW9JWEdES3FMMW9RDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc0FFWmxSVWYya0xVUWNFL041N0ttMUJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbzFpQW1weUN3TklwbzZUNHhoc1Z0dWVRDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMmtORGpjRTduaUdsTncrSXJaTXZJNERTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTFNJZzJiQ0haVWUxd1QyVDVITU1aY1c1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaUhGblZKVFZkcTJuT2RiYXd0a00xVW9nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaDFUYVZSSTBmSWxBbXc5aDg0S0w3T0N0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWFNJaUtzVEd3V05VMnF1bXJmRXFpZW9wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYTBYZDV3VUZDVjBBZEFlSGhjbmc0YlJwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMS9PMGF0NUFoRFBVTHFCQUZrQmdEM1lJDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeE1CdEs0THFJUDZaWUpUalFqQnNlWTloDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQWRab1RvZ1BPemMzSTE5cml4TVRJZEluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcGhEeHNBQk5seE1USHlLelJOMktKakNWDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVEJoTmUxWFRtZzZJaDBETnVDWThBM0k2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUVgxUkhsb3A2cHBCYi9rdFNHT2hHNllCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcVJ1T0Q0VXlMMW9RV2hkVy80U2xNSFlHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYVJmV2JlNmlaQWFVcUdEaUtOZ1FlTGEwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWm9XT09wQzFIRFFDSE5SVVEwMW1lRE9XDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMEl3TE5GR2pUU2kxTmVvSldyMXNocFRyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZUlOQWJOS0c4MnRnUktWVGptMUwrQnF6DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CejBWZWVqRm5naUFOaE8xRHZVSEJCYTdwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdnBBSFFHRFpIUS9ySCtPakUrMU1EeFJqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdFdOUXFIbG1oUk0xQmZRSjZpQkx6QUcxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CR0FQc2lxUnBrZDh3RTBMazV4QUFpUlppDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU0FpTU1JSWhocmNoM0VkNHEyd3NKQ283DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdzI3aEk3VVhjSzB4aEtCODdETVJxRTl5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXJOSWpVNUJSUmc1UlY5Y3R4dW1nNC9TDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbG1KZkNkSjhWbzBRTWRIRHk0cHJFc2JPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWU5IaStIaUNxN2t0SllodHMyN2YyNEs5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXh3bG5WMVRXYUEzWE1Hd000YThLeno4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CajZZc2JIbk4ydXIwdG1jb2lxdWZNWFNCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjZaZ1FBRWJrSmlSOFJJbzZCY3J2UGs5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZjY5WW5mRkJYTFgzZ2ZNbE51bmZ0dlBTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQis0YzExaG9oZmVQSG5sdVRrWklmNEtlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQzc0T0FRaC9oOXFwMjROZncyd2YrWDRQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYS92ZU43ZjNYK2x4SGF2MFM2cTNLN2kwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdkZiMmxEcDA2ZFdpcUJ1dmQ5Y1BjLzRUDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3llSTlzYmpEZDRBQUFBQUJKUlU1RXJrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSmdnZz09JzsgICAgJGltYWdlX3BhdGggDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSAkR0xPQkFMU1snc3VnYXJfY29uZmlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ11bJ2NhY2hlX2RpciddLidsb2dpbmltDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWdlJzsgICAgICRjb3VudCA9IDA7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHdoaWxlKCEoJGZwID0gQGZvcGVuKCRpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWFnZV9wYXRoLicucG5nJywgJ3cnKSkpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeyAgICAgJGltYWdlX3BhdGggPSAkaW1hDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2VfcGF0aC4kY291bnQ7ICAgICAkY291DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnQrKzsgICAgfSAgICAgZndyaXRlKCRmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCwgYmFzZTY0X2RlY29kZSgkaW1hZ2VfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY29udGVudHMpKTsgICAgZmNsb3NlKCRmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCk7ICAgIGNoZWNrX25vdyh0cnVlKTsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoJF9SRVFVRVNUWydhY3Rpb24nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXT09ICdBdXRoZW50aWNhdGUnICl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQ0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ0NPTScpeyAgICAgICRub3RpY2UgPSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIFRoaXMgY29weSBvZiB0aGUgU3VnYXJDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUk0gY3VzdG9tZXIgcmVsYXRpb25zaGlwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1hbmFnZW1lbnQgcHJvZ3JhbSBhcHBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXJzIHRvIGhhdmUgbGVnYWwgbm90aWNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcyBvciBhdXRob3IgYXR0cmlidXRpb25zDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1vZGlmaWVkIG9yIHJlbW92ZWQgaW4gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdmlvbGF0aW9uIG9mIHRoZSBHTlUgQWZmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJvIEdlbmVyYWwgUHVibGljIExpY2VuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc2UgdmVyc2lvbiAzLiBQbGVhc2UgY29uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGFjdCBTdWdhckNSTSBJbmMuIHRvIGNvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnJlY3QgdGhpcyBwcm9ibGVtLic7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgfWVsc2V7ICAgICAgJG5vdGljZSA9DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICdUaGlzIGNvcHkgb2YgdGhlIFN1Z2FyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQ1JNIGN1c3RvbWVyIHJlbGF0aW9uc2hpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCBtYW5hZ2VtZW50IHByb2dyYW0gYXBwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWFycyB0byBoYXZlIGxlZ2FsIG5vdGljDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXMgb3IgYXV0aG9yIGF0dHJpYnV0aW9uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcyBtb2RpZmllZCBvciByZW1vdmVkIGluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHZpb2xhdGlvbiBvZiB0aGUgU3VnYXJDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUk0gU3Vic2NyaXB0aW9uIEFncmVlbWVuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdC4gUGxlYXNlIGNvbnRhY3QgU3VnYXJDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUk0gSW5jLiB0byBjb3JyZWN0IHRoaXMgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHJvYmxlbS4nOyAgICAgIH0gICAgICBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2hvICc8aGVhZD48dGl0bGU+UG93ZXJlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCBCeSBTdWdhckNSTTwvdGl0bGU+PGxpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSJ0ZXh0L2NzcyIgaHJlZj0idGhlbWVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL1N1Z2FyL25hdmlnYXRpb24uY3NzIiAvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdHlwZT0idGV4dC9jc3MiIGhyZWY9InRoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW1lcy9TdWdhci9zdHlsZS5jc3MiIC8+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeXBlPSJ0ZXh0L2NzcyIgaHJlZj0idGhlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWVzL1N1Z2FyL2NvbG9ycy5zdWdhci5jDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3MiIGlkPSJjdXJyZW50X2NvbG9yX3N0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeWxlIiAvPjxsaW5rIHJlbD0ic3R5bGVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWY9InRoZW1lcy9TdWdhci9mb250cy5uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3JtYWwuY3NzIiBpZD0iY3VycmVudF9mDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb250X3N0eWxlIi8+PC9oZWFkPjxkaXYgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MjAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHgiPjx0YWJsZSB3aWR0aD00MDAgY2xhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3M9InRhYkZvcm0iPjx0cj48dGQgY29sDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPGI+Jy4kbm90aWNlLic8L2I+PC90ZD48DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWxpZ249ImNlbnRlciI+PGltZyBzdHlsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZT0ibWFyZ2luLXRvcDogMnB4IiBib3JkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXI9IjAiIHdpZHRoPSIxMDYiIGhlaWdoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdD0iMjMiIHNyYz0iJy4gJGltYWdlX3BhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGggLiAnLnBuZyIgYWx0PSInLiRhcHBfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3RyaW5nc1siTEJMX1BPV0VSRURfQllfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU1VHQVJDUk0iXS4nIj48L3RkPjwvdHI+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cbj0icmlnaHQiPjxzcGFuIGlkPSJkb3RzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIj48L3NwYW4+PC90ZD48L3RyPjwvdGFiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGU+JzsgICAgICBlY2hvICc8YnI+PHNjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmlwdD52YXIgY291bnQgPSA2OyBmdW5jDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGlvbiB1cGRhdGVEb3RzKCl7aWYoY291DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnQgPiAwKXtjb3VudC0tO30gaWYoY291DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnQ9PTEpe2RvY3VtZW50LmxvY2F0aW9uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSJpbmRleC5waHAiO31kb2N1bWVudC5nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXRFbGVtZW50QnlJZCgiZG90cyIpLmluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmVySFRNTD0gY291bnQ7IHNldFRpbWVvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXQoInVwZGF0ZURvdHMoKTsiLCAxMDAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKTt9dXBkYXRlRG90cygpOzwvc2NyaXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPjwvZGl2Pic7ICAgICAgZGllKCk7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICB9ICAgIGlmKCRfUkVRVUVTVFsnYWN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uJ109PSAnQWJvdXQnICYmICFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSgkX1NFU1NJT05bJ212aSddKSl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICBlY2hvIGJhc2U2NF9kZWNvZGUoJF9TDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRVNTSU9OWydtdmknXSk7ICAgIH1lbHNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKCRfUkVRVUVTVFsnYWN0aW9uJ109DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSAnTG9naW4nIHx8ICRfUkVRVUVTVFsnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWN0aW9uJ109PSAnQWJvdXQnICl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgJF9TRVNTSU9OWydtdmknXSA9ICcnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgICAgaWYoJHEgJiAyKXsgICAgICA7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICB9ICAgICBpZigkcSAmIDEpeyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgIDsgICAgIH0gICAgIGlmKGVtcHR5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCRfU0VTU0lPTlsnbXZpJ10pICYmICFlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbXB0eSgkb2RkKSkkX1NFU1NJT05bJ212DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaSddID0gYmFzZTY0X2RlY29kZSgkb2RkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKTsgICAgIGVjaG8gJF9TRVNTSU9OWydtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdmknXTsgICAgICRfU0VTU0lPTlsnbXZpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ10gPSBiYXNlNjRfZW5jb2RlKCRfU0VTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU0lPTlsnbXZpJ10pOyAgICAgfSAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CfSAgfSB9ICBpZighZnVuY3Rpb25fZXhpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3RzKCdtdmNjaGVjaycpKXsgIGZ1bmN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uIG12Y2NoZWNrKCl7ICAgaWYoIWVtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHR5KCRfU0VTU0lPTlsnbXZpJ10pICYmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICFlbXB0eSgkR0xPQkFMU1snYXBwJ10tDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPmhlYWRlckRpc3BsYXllZCkpeyAgICBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2hvIGJhc2U2NF9kZWNvZGUoJF9TRVNTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU9OWydtdmknXSk7ICAgfSAgfSB9ICBpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZighZnVuY3Rpb25fZXhpc3RzKCdtdmNsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2cnKSl7ICAgZnVuY3Rpb24gbXZjbG9nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCR0aW1lX29uX2xhc3RfcGFnZSkgeyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKGVtcHR5KCRfUkVRVUVTVFsnYWN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uJ10pKXJldHVybjsgICBzd2l0Y2goDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJF9SRVFVRVNUWydhY3Rpb24nXSl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGNhc2UgJ0xvZ2luJzokY2FzZSA9IDE7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGxldmVsPTE7YnJlYWs7ICAgIGNhc2UgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ0F1dGhlbnRpY2F0ZSc6JGNhc2UgPSAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyRsZXZlbD0yO2JyZWFrOyAgICBjYXNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICdBYm91dCc6JGNhc2UgPSAxOyRsZXZlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbD0xO2JyZWFrOyAgICBkZWZhdWx0Om12DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2NoZWNrKCk7cmV0dXJuOyAgIH0gICBnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbG9iYWwgJGF1dGhMZXZlbDsgICAkYXV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaExldmVsID0gJGxldmVsOyAgICAkZnMgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSBhcnJheSAoKTsgICAgYW1zaSgkZnMpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgIH0gfSA=";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10); +$msi0="len";$msi="code";$msi1="FBCA230F93F8AA5E88EB368C32F5C2E9aWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5kcyBTdWdhckJlYW4geyAgdmFyICRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIHZhciAkdGFibGVfbmFtZSA9ICd0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmFja2VyJzsgICAgIHZhciAkb2JqZWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9X25hbWUgPSAnVHJhY2tlcic7ICB2YXIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXInOyAgICAgIHZhciAkY29sdW1uX2ZpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWxkcyA9IEFycmF5KCAgICAgICAgICJpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCIsICAgICAgICAgIm1vbml0b3JfaWQiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LCAgICAgICAgICJ1c2VyX2lkIiwgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAibW9kdWxlX25hbWUiLCAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICJpdGVtX2lkIiwgICAgICAgICAiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXRlbV9zdW1tYXJ5IiwgICAgICAgICAiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9biIsICAgICAgInNlc3Npb25faWQiLCAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICJ2aXNpYmxlIiAgICAgKTsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICBmdW5jdGlvbiBUcmFja2VyKCkgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHsgICAgICBnbG9iYWwgJGRpY3Rpb25hA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Pm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJHRoaXMtPm9iamVjdF9uYW1lXSkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICAgICAgICAkcGF0aCA9ICdtb2R1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JzsgICAgaWYoZGVmaW5lZCgnVEVNUExBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VEVfVVJMJykpJHBhdGggPSBTdWdhclRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmVfb25jZSgkcGF0aCk7ICAgICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHBhcmVudDo6U3VnYXJCZWFuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1ha2VJbnZpc2libGVGb3JBbGwoJGl0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW1faWQpICAgICB7ICAgICAgICAgJHF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCcgQU5EIHZpc2libGUgPSAxIjsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGggPSAnbW9kdWxlcy9UcmFja2Vycy9CA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmVhZENydW1iU3RhY2sucGhwJzsgICBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZihkZWZpbmVkKCdURU1QTEFURV9VUkwnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXRoKTsgICAgICByZXF1aXJlX29uY2UoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHBhdGgpOyAgICAgICAgIGlmKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10pKXsgICAgICAgICAgJGJyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJzID0gJF9TRVNTSU9OWydicmVhZENyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW1icyddOyAgICAgICAgICAkYnJlYWRDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICAgICAgIH0gICAgIH0gICAgICBmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHRpbWVfb25fbGFzdF9wYWdlID0gMDsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICBpZihlbXB0eSgkR0xPQkFMU1snA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXBwJ10tPmhlYWRlckRpc3BsYXllZCApA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KXJldHVybjsgICAgICBpZighZW1wdHkoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JF9TRVNTSU9OWydscGFnZSddKSkkdGltA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJF9TRVNTSU9OWydscGFnZSddPXRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWUoKTsgICBtdmNsb2coJHRpbWVfb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGFzdF9wYWdlKTsgICAgIH0gICAgZnVuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JykgICAgIHsgICAgICAkcGF0aCA9ICdtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJTdGFjay5waHAnOyAgIGlmKGRlZmluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9czo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgaWYoZW1wdHkoJF9TRVNTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU9OWydicmVhZENydW1icyddKSkgeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICAkYnJlYWRDcnVtYiA9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG5ldyBCcmVhZENydW1iU3RhY2soJHVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJfaWQsICRtb2R1bGVzKTsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJF9TRVNTSU9OWydicmVhZENyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW1icyddID0gJGJyZWFkQ3J1bWI7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICRHTE9CQUxTWydsb2cnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TE9CQUxTWydhcHBfc3RyaW5ncyddWydMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgfSBlbHNlIHsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICRtb2R1bGVfcXVlcnkgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JzsgICAgICAgICAgaWYoIWVtcHR5KCRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzKSkgeyAgICAgICAgICAgICAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGlzdG9yeV9tYXhfdmlld2VkID0gMTA7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICAgICRtb2R1bGVfcXVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnkgPSBpc19hcnJheSgkbW9kdWxlcykgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XCcnIC4gaW1wbG9kZSgiJywnIiAsICRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzKSAuICdcJyknIDogICcgQU5EA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZXMgLiAnXCcnOyAgICAgICAgICB9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGVsc2UgeyAgICAgICAgICAgICAkaGlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dG9yeV9tYXhfdmlld2VkID0gKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkR0xPQkFMU1snc3VnYXJfY29uZmlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSk/ICRHTE9CQUxTWydzdWdhcl9jb25mA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10gOiA1MDsgICAgICAgICAgfSAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGhpcy0+dGFibGVfbmFtZSAuICcgV0hFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWQgPSBcJycgLiAkdXNlcl9pZCAuICdcA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZV9xdWVyeSAuICcpJzsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGltaXRRdWVyeSgkcXVlcnksMCwkaGlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dG9yeV9tYXhfdmlld2VkLHRydWUsJHF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3NvYygkcmVzdWx0KSkpIHsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICRicmVhZENydW1iLT5wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXNoKCRyb3cpOyAgICAgICAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgfSAgICAgICAgICRsaXN0ID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJMaXN0KCRtb2R1bGVzKTsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAkR0xPQkFMU1snbG9nJ10tPmluZm8oA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHJldHVybiAkbGlzdDsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWVudHMoJGludGVyZmFjZSl7ICAgcmV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IWZ1bmN0aW9uX2V4aXN0cygndmNtc2knA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJhdGUsICRtZDUsICRhbHQgPSAnJykgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXN0cygkZ2VuZXJhdGUpICYmICRoYW5kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YicsIHRydWUpKSB7ICAgICRmcm9tX2tlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSA9IHN0cmVhbV9nZXRfY29udGVudHMoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXkpID09ICRhbHQpKSB7ICAgICByZXR1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cm4gMDsgICAgfSAgIH0gICAgcmV0dXJuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IC0xOyAgIH0gfSBpZighZnVuY3Rpb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGhrZXksICRpLCAkYWx0ID0gJycsICRjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y29kZSgkYXV0aGtleSk7ICAgaWYoIWVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGUsICdyYicsIHRydWUpKSApIHsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWYoJGMpeyAgICAgJGZyb21fa2V5ID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bHNleyAgICAgJGZyb21fa2V5ID0gc3RyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWFtX2dldF9jb250ZW50cygkaGFuZGxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTsgICAgfSAgICBpZiAoc3Vic3RyX2NvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW50KCRmcm9tX2tleSwgJGF1dGhrZXkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IDwgJGkpIHsgICAgICAgaWYgKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bV9rZXksICRhbHRrZXkpID49ICRpKSB7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHJldHVybiAwOyAgICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHsgICAgIHJldHVybiAwOyAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gZWxzZSB7ICAgICByZXR1cm4gLTE7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgfSAgfSB9ICBpZighZnVuY3Rpb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b24gYW1zaSgkYXMpIHsgICBpbmNsdWRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHogPSAxOyAgIGdsb2JhbCAkbG9naW5fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Jyc7ICAgJHN0ciA9ICcnOyAgICBmb3JlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWNoICgkYXMgYXMgJGspIHsgICAgaWYgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCFlbXB0eSAoJGtbJ20nXSkpIHsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICR0ZW1wID0gdmNtc2koJGtbJ2cnXSwgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGtbJ20nXSwgJGtbJ2EnXSwgJGtbJ2wnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XSk7ICAgIH0gZWxzZSB7ICAgICAkdGVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCA9ICBhY21zaSgka1snZyddLCAka1snA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YSddLCAka1snaSddLCAka1snYiddLCAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1snYyddLCRrWydsJ10pOyAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCFlbXB0eSgkdGVtcCkpeyAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHEgPSAkcSB8ICRrWydzJ107ICAgIH0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJGtbJ3MnXSA9PSAyKXsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCRzdWdhcl9mbGF2b3IgPT0gJ0NFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JyB8fCAkc3VnYXJfZmxhdm9yID09ICdDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T00nKXsgICAgICAkbSA9ICRrWydhJ107A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJHN0ciAuPSBiYXNlNjRfZGVjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2RlKCRtKTsgICAgIH1lbHNleyAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAkbSA9ICRrWydiJ107ICAgICAgaWYoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IWVtcHR5KCRzdHIpKSRzdHIuPSc8YnIvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Pic7ICAgICAgJHN0ciAuPSBiYXNlNjRfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZGVjb2RlKCRtKTsgICAgIH0gICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gICBpZiAoJHEgIT0gMCB8fCAhZW1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHkoJF9TRVNTSU9OWydtdmknXSkpIHsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXZpJ10pKSRvZGQgPSAkX1NFU1NJT05bA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J212aSddOyAgICAgJGltYWdlX2NvbnRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnRzPSAnaVZCT1J3MEtHZ29BQUFBTlNVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aEVVZ0FBQUdvQUFBQVhDQVlBQUFEam5kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cUlBQUFBQkdkQlRVRUFBTEdPZlB0Umt3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUFDa0ZwUTBOUVNVTkRJRkJ5YjJacGJHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUFBSGdCblpaM1ZGUFpGb2ZQdlRlOTBCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SWlJQ1gwR25vSklOSTdTQlVFVVlsSmdGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUNob1FtZGtRRlJoUVJLVlprVk1BQlI0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2lZMFVVQzRPQ1l0Y0o4aEJReHNGUlJFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WGwzWXhyQ2UrdE5mUGVtdjNIV2QvWjU3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZlgyV2Z2ZmRlNkFGRDhnZ1RDZEZnQmdEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2hXQlR1NjhGY0VoUEx4UGNDR0JBQkRsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z0J3T0ZtWmdSSCtFUUMxUHk5UFptWnFFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9akdzL2J1TG9Ca3U5c3N2MUFtYzliL2Y1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RWlOME1rQmdBS1JkVTJQSDRtRitVQ2xGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T3p4Umt5L3dUSzlKVXBNb1l4TWhhaENhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S3NJdVBFcjJ6MnArWXJ1OG1ZbHlia29SA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cFp6aG04Tko2TXUxRGVtaVhobzR3RW9WA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eVlKZUJubzN3SFpiMVVTWm9BNWZjbzA5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UDRuRXdBTUJTWlg4em5KcUZzaVRKRkZCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnVpZklDQUFpVXhEbThjZzZMK1Rsb25nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QjRwbWZraWdTSlNXS21FZGVZYWVYb3lHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjY4Yk5UK1dJeEs1VERUZUdJZUV6UDlMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UU1qakFYZ0s5dmxrVUJKVmx0bVdpUjdhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MGM3ZTFaMXVabytiL1ozeDUrVS8wOXlIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cjdWZkVtN00rZVFZeWVXZDlzN0t3dnZSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WUE5aVJhbXgyenZwVlZBTFJ0QmtEbDRhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFA3eUFBOGdVQXRONmM4eDZHYkY2U3hPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU1Kd3VMN094c2N3R2ZheTRyNkRmN240A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SnZ5citHT2ZlWnkrNzdWanVtRnorQkkwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1ZNMlZGNWFhbnBrdEV6TXdNRHBmUFpQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MzNFUC9qd0RscHpjbkRMSnlmd0JmeGhlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aFZVZWlVQ1lTSmFMdUZQSUZZa0M1a0NvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ui8xZUYvR0RZbkJ4bCtuV3NVYUhWZkFIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MkZPVkM0U1FmSWJ6MEFReU1ESkc0L2VnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Sjk2MXNRTVFySXZyeG9yWkd2YzQ4eWV2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9N24raDhMWElwdTRVeEJJbFBtOWd5UFpIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SWxvaXdabzkrRWJNRUNFcEFIZEtBS05JA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RXVNQUlzWUEwY2dETndBOTRnQUlTQVNCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QURsZ011U0FKcFFBU3lRVDdZQUFwQk1kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z0Jkb05xY0FEVWdYclFCRTZDTm5BR1hBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ulh3QTF3Q3d5QVIwQUtoc0ZMTUFIZWdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a0lndkFRRmFKQnFwQVdwQStaUXRZUUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b0llVU5CVURnVUE4VkRpWkFRa2tENTBDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YW9HQ3FEcXFGRFVEMzBJM1FhdWdoZGcvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cWdCOUFnTkFiOUFYMkVFWmdDMDJFTjJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QzJnTm13T3h3SVI4TEw0RVI0Rlp3SEY4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RGI0VXE0Rmo0T3Q4SVg0UnZ3QUN5Rlg4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S1RDRURJQ0FQUlJsZ0lHL0ZFUXBCWUpBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RVJJV3VSSXFRQ3FVV2FrQTZrRzdtTlNKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Rng1QU1HaDZGaG1CZ1d4aG5qaDFtTTRXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SldZZFppU2pEVm1HT1lWa3dYNWpabUVEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T0IrWUtsWXRXeHBsZ25yRDkyQ1RZUm00A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MHR4RlpnajJCYnNKZXhBOWhoN0RzY0RzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZkFHZUljY0g2NEdGd3liald1QkxjUDE0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eTdnT3ZERGVFbThYaThLdDRVNzRJUHdYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UHdZbndodmdwL0hIOGUzNDhmeHI4bmtBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGFCR3VDRHlHV0lDUnNKRlFRR2dqbkNQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MkVFY0kwVVlHb1QzUWloaEI1eEZ4aUtiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9R08yRUc4U1J3bVRwTVVTWVlrRjFJa0taA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bTBnVlJKYWlKZEpqMG12U0dUeVRwa1IzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SVlXVUJlVDY0a255QmZKUStTUDFDVUtDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WVVUMG9jUlVMWlRqbEt1VUI1UUhsRHBWA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU5xRzdVV0txWXVwMWFUNzFFZlVwOUwwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZVRNNWZ6bCtQSnJaT3JrV3VWNjVkN0pVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1UxNWQzbDE4dW55ZGZJWDlLL3FiOHVBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SlJ3VURCVTRHanNGYWhSdUcwd2oyRlNVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V2FvcFZpaUdLYVlvbGlnK0kxeFZFbHZKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S0JrcmNTVDZsQTZiRFNKYVVoR2tMVHBYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9blN1TFJOdERyYVpkb3dIVWMzcFB2VGsrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bkY5Qi9vdmZRSlpTVmxXK1VvNVJ6bEd1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V3p5bElHd2pCZytETlNHYVdNazR5N2pJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3pOT2E1eitQUDJ6YXZhVjcvdkNtVitTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHVLbnlWSXBWbWxRR1ZqNnBNVlcvVkZOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V2RxbTJxVDlRd2FpWnFZV3JaYXZ2VkxxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dU56NmZQZDU3UG5WODAvK1Q4aCtxd3VvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bDZ1UHBxOWNQcVBlcVRHcG9hdmhvWkdsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VWFselRHTlJtYWJwckptdVdhNXpUSHRHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGFDN1VFV3VWYTU3VmVNSldaN3N4VVppA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V3ppem1ocmE3dHB5M1JQcVRkcXoydFk2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXpXR2VqVHJQT0UxMlNMbHMzUWJkY3QxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjNRazlMTDFndlg2OVI3NkUrVVordG42A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uy9SNzliZjhyQTBDRGFZSXRCbThHb29ZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cWh2MkdlWWFQaFl5T3FrYXZSS3FOYW96A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dkdPR08yY1lyeFB1TmJKckNKblVtU1NZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9M0pUVlBZMU41VVlMclB0TThNYStab0pqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U3JOYnZIb3JEY1dWbXNSdGFnT2NNOHlIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eWplWnY1S3dzOWkxaUxuUmJkRmw4czdTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFRMZXNzSDFrcFdRVlliYlRxc1ByRDJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2FhMTFqZmNlR2F1TmpzODZtM2VhMXJhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a3QzM2EvN1gwN21sMnczUmE3VHJ2UDlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NzJJdnNtK3pFSFBZZDRoNzBPOTloMGRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aTdoSDNWRWV2bzRiak84WXpqQnlkN0o3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SFRTYWZmblZuT0tjNE56cU1MREJmd0Y5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UXRHSExSY2VHNEhIS1JMbVF1akY5NGNLA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SFVWZHVWNDFycitzeE4xNDNuZHNSdHhOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9M1lQZG45dVBzckQwc1BrVWVMeDVTbmsrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2F6d3RlaUpldlY1RlhyN2VTOTJMdmF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K25Qam8raVQ2TlBoTytkcjZyZlMvNFlmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MEMvWGI2M2ZQWDhPZjYxL3RQQkRnRXJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bm9DcVFFUmdSV0J6NExNZ2tTQlhVRXc4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUJ3YnVDSHkvU1h5UmMxQllDUXZ4RGRvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VThDVFVNWFJYNmN4Z3VMRFNzSnV4NXVGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VjRmbmgzQkMxaVJVUkR4THRJajhqU3lFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZUxqUlpMRm5kR3lVZkZSZFZIVFVWN1JaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZEZTNWRZTEZtejVFYU1Xb3dncGowV0h4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c1ZleVIyY3FuMzB0MUxoK1BzNGdyajdpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NHpYSmF6N05weXRlV3B5OCt1a0YvQldYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RXFIaHNmSGQ4US80a1R3cW5sVEs3MFg3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bDM1UVRYazd1SCs1TG54aXZuamZGZCtHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WDhrUVNYaExLRTBVU1h4RjJKWTBtdVNSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Vko0d0pQUWJYZ2RiSmY4b0hrcVpTUWxLA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TXBNNm5ScWMxcGhMVDR0Tk5DSldHS3NDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGRNejBudlMvRE5LTXdRN3JLYWRYdVZSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T2lRTkdSVENoeldXYTdtSTcrVFBWSWpDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2JKWU5aQzdOcXN0NW5SMldmeWxITUVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjA1SnJrYnNzZHlmUEorMzQxWmpWM2RXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZStkdjZHL01FMTdtc09yWVhXcmx6YnVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NTNYY0c2NGZXKzY0OXRJRzFJMmZETFJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dU5aUnZmYm9yZTFGR2dVYkMrWUdpejcrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YkdRcmxDVWVHOUxjNWJEbXpGYkJWczdkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MW1zNjFxMjVjaVh0SDFZc3ZpaXVKUEpkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eVM2OTlaZlZmNTNjejJoTzI5cGZhbCszA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmdkZ2gzM04zcHV2TlltV0paWHRuUXJ1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QmRyZVhNOHFMeXQ3dFg3TDVXWVZ0eFlBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OXBqMlNQdERLb3NyMUtyMnBIMWFmcXBPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cUJHbythNXIzcWU3ZnRuZHJIMjllLzMyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MS8wd0dOQThVSFBoNFVITHgveVBkUWE2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MUJiY1ZoM09Hc3c4L3JvdXE2djJkL1gzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OUU3VWp4a2M5SGhVZWx4OEtQZGRVNzFOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzNxRGVVTnNLTmtzYXg0M0hIYi8zZzlVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjdFNnZwVURPanVmZ0VPQ0U1OGVMSCtCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3ZuZ3c4MlhtS2ZhcnBKLzJmOXJiUVdvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cGFvZGJjMW9tMnBEWnBlMHg3MyttQTA1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MGR6aDB0UDV2L2ZQU005cG1hczhwblM4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1J6aFdjbXptZmQzN3lRc2FGOFl1SkY0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzZWM1ErdXJUazBwMnVzSzdleTRHWHIxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9N3h1WEtwMjczNy9GV1hxMmV1T1YwN2ZaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MTl2ZTJHL1kzV0hydWVsbC9zZm1ucHRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OXR2ZWx3cy8yVzQ2Mk92Z1Y5NS9wZCt5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L2U5cnA5NVk3L25Sc0Rpd2I2N2k2K2UvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OWUzRDNwZmQ3OTBRZXBEMTQvekhvNC9XA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ajlZK3pqb2ljS1R5cWVxait0L2RYNDEyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXB2ZlRzb05kZ3o3T0laNCtHdUVNdi81A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WDVyMC9EQmMrcHp5dEd0RWJxUjYxSHo0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ejVqTjE2c2ZURjhNdU1sOVBqaGI4cC9yA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjNsZEdybjM1Mys3MW5Zc25FOEd2UjY1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ay9TdDZvdmpuNjF2WnQ1MlRvNU5OM2FlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K21wNHJlcTc0LzlvSDlvZnRqOU1lUjZlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFArRStWbjQwL2Qzd0ovUEo0Sm0xbTV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzNoUFA3cGZJbUlnQUFBQWx3U0ZsekFBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUxFd0FBQ3hNQkFKcWNHQUFBQitOSlJFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RlVhQVh0V25sUVZXVVVQK1JqaENlSXlwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TkJmQ0N1TkVPWllPYWs1VExxVkNiNlg3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bE1saldwb2ROa3VlYVNMU0p1V1FwR0dGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1dpVnAvNE5hNGpXYkJqRmxzUllVYjVrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjhJb3VLTEU0WWZiOFB6K1c3bC91dUdJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Nmx3NW01NzF2Tzh0MTdmdDg1NTd2dlBhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzYrbnBxcGYrL0IyeTR4YlZyVXpvVm5NA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZzYwcjE3OXlBeHRJc0w4L2VKeTB0Y3JYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VG5QSUNvK1Z0Y2RkVTF0ZFVYM09kTEluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cEhENWsxNjZWeXIzVUppZHZQblN2dUdSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzNYdFNkdTUvV2xacnJnZmx2THNydTJqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WGtsTmUwVjJMcmt6WWtObGV2aVZ4WldSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGxaV1hyNXFPam95Z3dNRkNiMjcvL2dOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WkhoL25RTFMrdm9ONjllMG4raVJNblpjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmpINDhkbzU0OWVzZzU0eG9CSFFMb2tRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUQ2R2JydzhibFM1ZWxEZjRZTldxazdCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnZpMjJ5bkxHMXNzWDNxajYzMlp6UlpuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UEcwMk5ua0MwNHVFdHpaRDNLd0lGYnQzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K3RPUnVDR0s5WXZreUNoVVd3aHErdmo3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UlJVMU1yK1o4a0o5R3AwNmZwMDAyZkVXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1VGYXRXazcrL1A2MWRzMHJLSm05TWtYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Yk0xZ2dLQ3BKQWdaZStjeGVGaGpvMSsyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmJ0bFBLeG8vbGVQTVhxUnBQVG9nUEJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cDQzeTVYRWUzNWRpOHRYYktJUlhVdGJQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bjUrVkhIamgza3ZOdDlnUTRlT2t3aUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SCtiNy9MWjFuMjdqdnl1VGQ5dnBtT0hqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MUtHTGVVUkVraUd6dXdKY1o4Zkh4bzNwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9elptZ21BQXhCNGR4a2ZmT2FycjBsWlJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0FRaVJWWEtvZzJLbXNySlRqM0x3OGNqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2NtZzJiclExRjkrdW5yUkVlSHE3MUFaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SnhmWTBwT3FvZW9vYkplTitZNTN0akdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UHI3QnBDRVgzNnlPbXNuQndDV0tBcHowA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1c3Y0xGUytpQnlFajZOVDlmZ3NRK2tNA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9d1dmTWpEUkF2MHBXcE5UWTN1QVgxOTdYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SzNnMm16ZVZ1YUh6aHdJS1Z1U2FQYTJsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnEzeithU2twS2FPKytmUUxvUWhyOTVCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T2FibDNkZFlKalZPSVVDYURad2JCakpGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V1BJOUVvMDl4eDBibGlxcXF1bHVMSURpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b0JyS3FyVnlrbk4wL0xLQ3EvSmYzYkFwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U3ZyeThsclB2QTlENEFJaHlwT2xWMTV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z3hUOU84QlF1bExsSUlaSkVDUVp5aTBEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmIvWmdId2JaVlJLbThCZzN6VDJQTk1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TWFNWHlZZGwrb1FVaUhLaUhhL2lnNHJtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUNsZGVTZm91QlFpcEJpdkpFVDRtbytIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QjlnbzQ5ZVBBZ2JZelV3Q0JpRW4ybjAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmR1b1ZwTXB5dU9HckF3SnBJcWVBaFNsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UlM2eTdrVkQzSXFadEs1YUgrVEg1dWttA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cEsxNGV0ZEZFUGNZRzh2YjFwMk5BaE9wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWIrVU1uZkFzRHIvaVZxK3FidStOdXdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NnI2RzMwQURJTVhtcGI2Uzd3d0UxVFgxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VmVBWlh2T21UNktMWUFmK29VTTV6YWhvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VVE1SzVmcnBSeTdSOS91SW44bGU5L2tuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TnRoRTY3dmhGVUoyUXhCejB6Q2hBMnJPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eEFoMjJwK3VwOXFQTnFYN1ZiV2xwR0JRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUZWQ3JlNll4a0Y3VTNLaXBLcE5sQWdsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eHBXYWxSUkRjT0N3MGx1OTFPWjEwdXFyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NXg0SUNBSTlBaGJhakM0RU9PQ1hyUTkwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1dRTG5pa3Fob2VjUDdpQ2NENEVmbDc2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WXo4MWRMeDBQdTBVcjlDekRtOGtlL2pFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WTZ2MWZTMjVRM2FMd0VTMDZhZk1CdWx4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bVRLRHgrdHNZRnNHeUhKNlBGMnRnb1RPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cDk4Snl4eFVicG01RkdHUm1abENKZUQ2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eG95OVp0TkhOR0xMbUVVOU4zN0xRU2xTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QXRYYktZMHRLMmlRTkY0d2E4UHlLQzVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NTVRNmVMT3FjZVhzeGtWQVZMb0s3ODhMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TW0yMm5NY0xJLzJQRCtnTW1LM1lkbE5DA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QXlxajFFaGFaczZKUjh1VU1IRWh5SDZBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QmQrN09ZcnAwdGx2M3ppYWs2b0Z3bW0rA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Yms5TGNvY3M5R0tkL2NEMFFkUUUvZnJYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzhuTVdrUmtXMmVDMXdLTiswc0l5eFJaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UmtaR1lhcHlWbzJCUjhpSUp0RmFRbUNpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WVRsa0NwOGdBSjZVZ2xUajF0dXpYdWFKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WHZxYTl1Z0lndDd4TTJnVXB3UG9QRjh4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZFRkMmdSQzNudzJlRnd1cHJPV01jWTJZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZzJnTStFZEFaQzJsa1pIeWRibFllWGNSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RDRLaUU2VkZDenNuTW9JWEdES3FMMW9RA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c0FFWmxSVWYya0xVUWNFL041N0ttMUJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bzFpQW1weUN3TklwbzZUNHhoc1Z0dWVRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MmtORGpjRTduaUdsTncrSXJaTXZJNERTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TFNJZzJiQ0haVWUxd1QyVDVITU1aY1c1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aUhGblZKVFZkcTJuT2RiYXd0a00xVW9nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aDFUYVZSSTBmSWxBbXc5aDg0S0w3T0N0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WFNJaUtzVEd3V05VMnF1bXJmRXFpZW9wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YTBYZDV3VUZDVjBBZEFlSGhjbmc0YlJwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MS9PMGF0NUFoRFBVTHFCQUZrQmdEM1lJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eE1CdEs0THFJUDZaWUpUalFqQnNlWTloA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QWRab1RvZ1BPemMzSTE5cml4TVRJZEluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cGhEeHNBQk5seE1USHlLelJOMktKakNWA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VEJoTmUxWFRtZzZJaDBETnVDWThBM0k2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UVgxUkhsb3A2cHBCYi9rdFNHT2hHNllCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cVJ1T0Q0VXlMMW9RV2hkVy80U2xNSFlHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YVJmV2JlNmlaQWFVcUdEaUtOZ1FlTGEwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Wm9XT09wQzFIRFFDSE5SVVEwMW1lRE9XA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MEl3TE5GR2pUU2kxTmVvSldyMXNocFRyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZUlOQWJOS0c4MnRnUktWVGptMUwrQnF6A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ejBWZWVqRm5naUFOaE8xRHZVSEJCYTdwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dnBBSFFHRFpIUS9ySCtPakUrMU1EeFJqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dFdOUXFIbG1oUk0xQmZRSjZpQkx6QUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9R0FQc2lxUnBrZDh3RTBMazV4QUFpUlppA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0FpTU1JSWhocmNoM0VkNHEyd3NKQ283A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dzI3aEk3VVhjSzB4aEtCODdETVJxRTl5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXJOSWpVNUJSUmc1UlY5Y3R4dW1nNC9TA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bG1KZkNkSjhWbzBRTWRIRHk0cHJFc2JPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WU5IaStIaUNxN2t0SllodHMyN2YyNEs5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXh3bG5WMVRXYUEzWE1Hd000YThLeno4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ajZZc2JIbk4ydXIwdG1jb2lxdWZNWFNCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjZaZ1FBRWJrSmlSOFJJbzZCY3J2UGs5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZjY5WW5mRkJYTFgzZ2ZNbE51bmZ0dlBTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Qis0YzExaG9oZmVQSG5sdVRrWklmNEtlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Qzc0T0FRaC9oOXFwMjROZncyd2YrWDRQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YS92ZU43ZjNYK2x4SGF2MFM2cTNLN2kwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dkZiMmxEcDA2ZFdpcUJ1dmQ5Y1BjLzRUA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3llSTlzYmpEZDRBQUFBQUJKUlU1RXJrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SmdnZz09JzsgICAgJGltYWdlX3BhdGggA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSAkR0xPQkFMU1snc3VnYXJfY29uZmlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJ2NhY2hlX2RpciddLidsb2dpbmltA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWdlJzsgICAgICRjb3VudCA9IDA7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHdoaWxlKCEoJGZwID0gQGZvcGVuKCRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWFnZV9wYXRoLicucG5nJywgJ3cnKSkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICAgJGltYWdlX3BhdGggPSAkaW1hA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VfcGF0aC4kY291bnQ7ICAgICAkY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQrKzsgICAgfSAgICAgZndyaXRlKCRmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCwgYmFzZTY0X2RlY29kZSgkaW1hZ2VfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y29udGVudHMpKTsgICAgZmNsb3NlKCRmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCk7ICAgIGNoZWNrX25vdyh0cnVlKTsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJF9SRVFVRVNUWydhY3Rpb24nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XT09ICdBdXRoZW50aWNhdGUnICl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Q0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J0NPTScpeyAgICAgICRub3RpY2UgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IFRoaXMgY29weSBvZiB0aGUgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gY3VzdG9tZXIgcmVsYXRpb25zaGlwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1hbmFnZW1lbnQgcHJvZ3JhbSBhcHBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXJzIHRvIGhhdmUgbGVnYWwgbm90aWNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cyBvciBhdXRob3IgYXR0cmlidXRpb25zA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1vZGlmaWVkIG9yIHJlbW92ZWQgaW4gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmlvbGF0aW9uIG9mIHRoZSBHTlUgQWZmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJvIEdlbmVyYWwgUHVibGljIExpY2VuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c2UgdmVyc2lvbiAzLiBQbGVhc2UgY29uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGFjdCBTdWdhckNSTSBJbmMuIHRvIGNvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnJlY3QgdGhpcyBwcm9ibGVtLic7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgfWVsc2V7ICAgICAgJG5vdGljZSA9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICdUaGlzIGNvcHkgb2YgdGhlIFN1Z2FyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Q1JNIGN1c3RvbWVyIHJlbGF0aW9uc2hpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCBtYW5hZ2VtZW50IHByb2dyYW0gYXBwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWFycyB0byBoYXZlIGxlZ2FsIG5vdGljA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXMgb3IgYXV0aG9yIGF0dHJpYnV0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cyBtb2RpZmllZCBvciByZW1vdmVkIGluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHZpb2xhdGlvbiBvZiB0aGUgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gU3Vic2NyaXB0aW9uIEFncmVlbWVuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dC4gUGxlYXNlIGNvbnRhY3QgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gSW5jLiB0byBjb3JyZWN0IHRoaXMgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHJvYmxlbS4nOyAgICAgIH0gICAgICBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2hvICc8aGVhZD48dGl0bGU+UG93ZXJlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCBCeSBTdWdhckNSTTwvdGl0bGU+PGxpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSJ0ZXh0L2NzcyIgaHJlZj0idGhlbWVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L1N1Z2FyL25hdmlnYXRpb24uY3NzIiAvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHlwZT0idGV4dC9jc3MiIGhyZWY9InRoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW1lcy9TdWdhci9zdHlsZS5jc3MiIC8+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idGhlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWVzL1N1Z2FyL2NvbG9ycy5zdWdhci5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3MiIGlkPSJjdXJyZW50X2NvbG9yX3N0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eWxlIiAvPjxsaW5rIHJlbD0ic3R5bGVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWY9InRoZW1lcy9TdWdhci9mb250cy5uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3JtYWwuY3NzIiBpZD0iY3VycmVudF9mA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b250X3N0eWxlIi8+PC9oZWFkPjxkaXYgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGFsaWduPSJjZW50ZXIiIHN0eWxlPSJwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3NpdGlvbjpyZWxhdGl2ZTt0b3A6MjAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHgiPjx0YWJsZSB3aWR0aD00MDAgY2xhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3M9InRhYkZvcm0iPjx0cj48dGQgY29sA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PGI+Jy4kbm90aWNlLic8L2I+PC90ZD48A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWxpZ249ImNlbnRlciI+PGltZyBzdHlsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZT0ibWFyZ2luLXRvcDogMnB4IiBib3JkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXI9IjAiIHdpZHRoPSIxMDYiIGhlaWdoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dD0iMjMiIHNyYz0iJy4gJGltYWdlX3BhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGggLiAnLnBuZyIgYWx0PSInLiRhcHBfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3RyaW5nc1siTEJMX1BPV0VSRURfQllfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1VHQVJDUk0iXS4nIj48L3RkPjwvdHI+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bj0icmlnaHQiPjxzcGFuIGlkPSJkb3RzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ij48L3NwYW4+PC90ZD48L3RyPjwvdGFiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGU+JzsgICAgICBlY2hvICc8YnI+PHNjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmlwdD52YXIgY291bnQgPSA2OyBmdW5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlvbiB1cGRhdGVEb3RzKCl7aWYoY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQgPiAwKXtjb3VudC0tO30gaWYoY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQ9PTEpe2RvY3VtZW50LmxvY2F0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSJpbmRleC5waHAiO31kb2N1bWVudC5nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXRFbGVtZW50QnlJZCgiZG90cyIpLmluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmVySFRNTD0gY291bnQ7IHNldFRpbWVvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXQoInVwZGF0ZURvdHMoKTsiLCAxMDAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTt9dXBkYXRlRG90cygpOzwvc2NyaXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PjwvZGl2Pic7ICAgICAgZGllKCk7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICB9ICAgIGlmKCRfUkVRVUVTVFsnYWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uJ109PSAnQWJvdXQnICYmICFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkX1NFU1NJT05bJ212aSddKSl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICBlY2hvIGJhc2U2NF9kZWNvZGUoJF9TA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RVNTSU9OWydtdmknXSk7ICAgIH1lbHNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCRfUkVRVUVTVFsnYWN0aW9uJ109A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSAnTG9naW4nIHx8ICRfUkVRVUVTVFsnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWN0aW9uJ109PSAnQWJvdXQnICl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJF9TRVNTSU9OWydtdmknXSA9ICcnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICAgaWYoJHEgJiAyKXsgICAgICA7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICB9ICAgICBpZigkcSAmIDEpeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIDsgICAgIH0gICAgIGlmKGVtcHR5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCRfU0VTU0lPTlsnbXZpJ10pICYmICFlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXB0eSgkb2RkKSkkX1NFU1NJT05bJ212A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aSddID0gYmFzZTY0X2RlY29kZSgkb2RkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTsgICAgIGVjaG8gJF9TRVNTSU9OWydtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmknXTsgICAgICRfU0VTU0lPTlsnbXZpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10gPSBiYXNlNjRfZW5jb2RlKCRfU0VTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0lPTlsnbXZpJ10pOyAgICAgfSAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9fSAgfSB9ICBpZighZnVuY3Rpb25fZXhpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3RzKCdtdmNjaGVjaycpKXsgIGZ1bmN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uIG12Y2NoZWNrKCl7ICAgaWYoIWVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHR5KCRfU0VTU0lPTlsnbXZpJ10pICYmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICFlbXB0eSgkR0xPQkFMU1snYXBwJ10tA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PmhlYWRlckRpc3BsYXllZCkpeyAgICBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2hvIGJhc2U2NF9kZWNvZGUoJF9TRVNTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU9OWydtdmknXSk7ICAgfSAgfSB9ICBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZighZnVuY3Rpb25fZXhpc3RzKCdtdmNsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2cnKSl7ICAgZnVuY3Rpb24gbXZjbG9nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCR0aW1lX29uX2xhc3RfcGFnZSkgeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKGVtcHR5KCRfUkVRVUVTVFsnYWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uJ10pKXJldHVybjsgICBzd2l0Y2goA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JF9SRVFVRVNUWydhY3Rpb24nXSl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGNhc2UgJ0xvZ2luJzokY2FzZSA9IDE7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGxldmVsPTE7YnJlYWs7ICAgIGNhc2UgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J0F1dGhlbnRpY2F0ZSc6JGNhc2UgPSAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyRsZXZlbD0yO2JyZWFrOyAgICBjYXNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICdBYm91dCc6JGNhc2UgPSAxOyRsZXZlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bD0xO2JyZWFrOyAgICBkZWZhdWx0Om12A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2NoZWNrKCk7cmV0dXJuOyAgIH0gICBnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bG9iYWwgJGF1dGhMZXZlbDsgICAkYXV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aExldmVsID0gJGxldmVsOyAgICAkZnMgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSBhcnJheSAoKTsgICAgYW1zaSgkZnMpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgIH0gfSA=";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10); function getPrintLink() { @@ -110,7 +110,8 @@ function ajaxBannedModules(){ 'EmailAddresses', 'Relationships', 'Employees', - 'Import' + 'Import', + 'OAuthKeys' ); if(!empty($GLOBALS['sugar_config']['addAjaxBannedModules'])){ @@ -128,7 +129,7 @@ function ajaxLink($url) global $sugar_config; $match = array(); $javascriptMatch = array(); - + preg_match('/module=([^&]*)/i', $url, $match); preg_match('/^javascript/i', $url, $javascriptMatch); diff --git a/jssource/src_files/include/javascript/ajaxUI.js b/jssource/src_files/include/javascript/ajaxUI.js index 51adbeb1..7aba713a 100644 --- a/jssource/src_files/include/javascript/ajaxUI.js +++ b/jssource/src_files/include/javascript/ajaxUI.js @@ -74,9 +74,12 @@ SUGAR.ajaxUI = { // set response time from ajax response if(typeof(r.responseTime) != 'undefined'){ - var rt = document.getElementById('responseTime'); - if(rt != null){ - rt.innerHTML = r.responseTime; + var rt = $("#responseTime"); + if(rt.length > 0){ + rt.html(rt.html().replace(/[\d]+\.[\d]+/, r.responseTime)); + } + else if(typeof(logoStats) != "undefined"){ + $("#logo").attr("title", logoStats.replace(/[\d]+\.[\d]+/, r.responseTime)).tipTip({maxWidth: "auto", edgeOffset: 10}); } } } catch (e){ diff --git a/jssource/src_files/include/javascript/sugar_3.js b/jssource/src_files/include/javascript/sugar_3.js index caccfc92..e9257740 100644 --- a/jssource/src_files/include/javascript/sugar_3.js +++ b/jssource/src_files/include/javascript/sugar_3.js @@ -2388,6 +2388,7 @@ sugarListView.prototype.check_boxes = function() { if (theForm.select_entire_list.value == 1) { document.MassUpdate.massall.disabled = true; sugarListView.prototype.toggleSelected(); + $("#button_select_all_top").click(); } for(var wp = 0 ; wp < inputs_array.length; wp++) { @@ -3286,7 +3287,9 @@ SUGAR.util = function () { context = item.overrideContext; } } - item.fn.call(context, item.obj); + if(item.fn) { + item.fn.call(context, item.obj); + } }; var i, len, item, test; diff --git a/jssource/src_files/modules/Meetings/jsclass_scheduler.js b/jssource/src_files/modules/Meetings/jsclass_scheduler.js index 37b875d2..0b586469 100644 --- a/jssource/src_files/modules/Meetings/jsclass_scheduler.js +++ b/jssource/src_files/modules/Meetings/jsclass_scheduler.js @@ -763,12 +763,7 @@ SugarWidgetScheduleRow.prototype.add_freebusy_nodes = function(tr,attendee) { if( typeof(GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash]) != 'undefined') { td.style.backgroundColor="#4D5EAA"; - fb_limit = 1; - if(typeof(GLOBAL_REGISTRY.focus.orig_users_arr_hash) != 'undefined' && typeof(GLOBAL_REGISTRY.focus.orig_users_arr_hash[this.focus_bean.fields.id]) != 'undefined') { - fb_limit = 2; - } - - if( GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash] >= fb_limit) { + if( GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash] > 1) { td.style.backgroundColor="#AA4D4D"; } } diff --git a/modules/ACLRoles/DetailView.tpl b/modules/ACLRoles/DetailView.tpl index 1aa5b158..a89dc762 100644 --- a/modules/ACLRoles/DetailView.tpl +++ b/modules/ACLRoles/DetailView.tpl @@ -56,17 +56,17 @@ $APP = $this->get_template_vars('APP'); $this->append('buttons', <<{$APP['LBL_EDIT_BUTTON']} + EOD ); $this->append('buttons', << + EOD ); $this->append('buttons', << + EOD ); {/php} @@ -83,5 +83,5 @@ EOD

- + {include file="modules/ACLRoles/EditViewBody.tpl" } \ No newline at end of file diff --git a/modules/ACLRoles/EditView.php b/modules/ACLRoles/EditView.php index c60cbf18..21c6da2c 100644 --- a/modules/ACLRoles/EditView.php +++ b/modules/ACLRoles/EditView.php @@ -112,13 +112,14 @@ $buttons = array( "", + onclick=\"document.EditView.action.value='".$return['action']."';document.EditView.module.value='".$return['module']."';document.EditView.record.value='".$return['record']."';document.EditView.submit();\">", ); require_once('include/Smarty/plugins/function.sugar_action_menu.php'); $action_buttons = smarty_function_sugar_action_menu(array( 'id' => 'ACLRoles_EditView_action_menu', 'buttons' => $buttons, + 'theme' => 'Classic' ), $sugar_smarty); $sugar_smarty->assign('ACTION_MENU', $action_buttons); diff --git a/modules/Administration/language/en_us.lang.php b/modules/Administration/language/en_us.lang.php index 62f56ebe..877d0b79 100644 --- a/modules/Administration/language/en_us.lang.php +++ b/modules/Administration/language/en_us.lang.php @@ -214,8 +214,8 @@ $mod_strings = array ( 'LBL_CONFIG_TABS_ALLOW_USERS_HIDE_TABS_HELP'=>'Select this option to allow users to choose which module tabs they can view. When selected, users will be able to choose which module tabs are visible by managing the tabs within their User Settings.', 'LBL_CONFIGURATOR_DESC'=>'Set up Config.php', 'LBL_CONFIGURATOR_TITLE'=>'Configurator', - 'LBL_CONFIGURE_GROUP_TABS_DESC' => 'Create and edit the grouping of navigation tabs', - 'LBL_CONFIGURE_GROUP_TABS' => 'Configure Grouped Modules', + 'LBL_CONFIGURE_GROUP_TABS_DESC' => 'Create and edit module menu filters', + 'LBL_CONFIGURE_GROUP_TABS' => 'Configure Module Menu Filters', 'LBL_CONFIGURE_SETTINGS_TITLE' => 'System Settings', 'LBL_CONFIGURE_SETTINGS' => 'Configure system-wide settings', 'LBL_CONFIGURE_TABS_AND_SUBPANELS' => 'Display Module Tabs and Subpanels', @@ -1102,7 +1102,7 @@ $mod_strings = array ( 'LBL_SAML_LOGIN_URL' => 'Login URL', 'LBL_SAML_LOGIN_URL_DESC' => 'Enter Login URL', - 'LBL_GLOBAL_SEARCH_SETTINGS_TITLE' => 'Select the module(s) that users will be able to search against using the Global Search. If full-text searching is enabled, perform a full system index after enabling modules for the Global Search. To enable module fields for full text searching, use Studio.', + 'LBL_GLOBAL_SEARCH_SETTINGS_TITLE' => 'Select the module(s) that users will be able to search against using the Global Search.', 'LBL_SELECT_MODULES' => 'Advanced', 'LBL_SELECT_MODULES_TITLE' => 'Drag and drop to select modules and to change the display order. Perform a search to apply the changes.', 'LBL_EAPM_SETTINGS' => 'External Accounts', @@ -1143,17 +1143,18 @@ $mod_strings = array ( 'LBL_AVAILABLE_FTS_MODULES' => 'Select the module(s) for indexing.', 'LBL_FTS_INDEX_BUTTON' => 'Index', + 'LBL_DELETE_FTS_DATA' => 'Delete existing data and index data in the selected modules only?', 'LBL_CONNECT_STATUS' => 'Connection Status', 'LBL_FTS_SETTINGS_TITLE' => 'Full Text Search Settings', 'LBL_FTS_TEST' => 'Connect', - 'LBL_SAVE_SCHED_BUTTON' => 'Schedule Full System Index', - 'LBL_SAVE_SCHED_WARNING' => 'Are you sure you would like to perform a full system index at this time? The system performance could be impacted while the index is being performed.', + 'LBL_SAVE_SCHED_BUTTON' => 'Schedule System Index', + 'LBL_SAVE_SCHED_WARNING' => 'Are you sure you would like to perform a system index at this time? The system performance could be impacted while the index is being performed.', 'LBL_FTS_NO_MODULES' => 'Select at least one module to search.', 'LBL_FTS_NO_MODULES_FOR_SCHED' => 'Select at least one module to schedule.', 'LBL_FTS_ADVANCED_LINK' => 'Enable Modules', 'LBL_FTS_ADVANCED_LINK_HELP' => 'Select the module(s) that users will be able to search against using the Full Text Search.', 'LBL_FTS_CONN_SUCCESS' => 'The connection was successfully made. You will need to perform a system index for full-text searching to work for the enabled modules and module fields.', - 'LBL_FTS_CONN_SUCCESS_SHORT' => 'A full system index operation has been scheduled to run within the next several minutes.', + 'LBL_FTS_CONN_SUCCESS_SHORT' => 'A system index operation has been scheduled to run within the next several minutes.', 'LBL_FTS_CONN_FAILURE_SHORT' => 'Unable to schedule an index operation.', 'LBL_FTS_PAGE_DESC' => 'To enable full text searching, select the search engine that will be used and enter the host and port of the search engine. To complete the setup, connect to the engine and perform a full system index.' ); diff --git a/modules/Administration/templates/GlobalSearchSettings.tpl b/modules/Administration/templates/GlobalSearchSettings.tpl index b077d77a..70135fd7 100644 --- a/modules/Administration/templates/GlobalSearchSettings.tpl +++ b/modules/Administration/templates/GlobalSearchSettings.tpl @@ -95,6 +95,7 @@

+
 {$MOD.LBL_DELETE_FTS_DATA}