<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//ky-umzuge.de/main-sitemap.xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<sitemap>
		<loc>https://ky-umzuge.de/page-sitemap.xml</loc>
		<lastmod>2026-09-16T16:20:27+00:00</lastmod>
	</sitemap>
</sitemapindex>
<!-- XML Sitemap generated by Rank Math SEO Plugin (c) Rank Math - rankmath.com -->
<!-- Served from cache in 0,001 second(s) (Memory usage: 1,34 KB) -->
<!-- Array
(
    [0] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'uninstall_plugins' LIMIT 1
            [1] => 0.00030303001403809
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/antyspam-wp/antyspam-wp.php'), WPSM_Bridge_Plugin::boot, register_uninstall_hook, get_option
            [3] => 1793176093.8529
            [4] => Array
                (
                )

        )

    [1] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger_builder_type' LIMIT 1
            [1] => 0.00029587745666504
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/hostinger-easy-onboarding/hostinger-easy-onboarding.php'), require_once('/plugins/hostinger-easy-onboarding/loader.php'), Hostinger\EasyOnboarding\EasyOnboarding->run, Hostinger\EasyOnboarding\EasyOnboarding->bootstrap, Hostinger\EasyOnboarding\Bootstrap->run, Hostinger\EasyOnboarding\Bootstrap->load_dependencies, Hostinger\EasyOnboarding\Bootstrap->load_onboarding_dependencies, Hostinger\EasyOnboarding\Admin\Onboarding\AutocompleteSteps->__construct, Automattic\Jetpack\Autoloader\jp2888bb05ce4aac4811a14add197f6ade\al5_0_17\PHP_Autoloader::load_class, require('/plugins/hostinger-easy-onboarding/includes/Helper.php'), Hostinger\EasyOnboarding\Helper->is_woocommerce_onboarding_completed, Hostinger\EasyOnboarding\Admin\Actions::get_category_action_lists, Hostinger\EasyOnboarding\Admin\Actions::get_action_list, Hostinger\EasyOnboarding\Admin\Onboarding\Onboarding::is_first_step_active, get_option
            [3] => 1793176093.8664
            [4] => Array
                (
                )

        )

    [2] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'woocommerce_onboarding_profile' LIMIT 1
            [1] => 0.0002589225769043
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/hostinger-easy-onboarding/hostinger-easy-onboarding.php'), require_once('/plugins/hostinger-easy-onboarding/loader.php'), Hostinger\EasyOnboarding\EasyOnboarding->run, Hostinger\EasyOnboarding\EasyOnboarding->bootstrap, Hostinger\EasyOnboarding\Bootstrap->run, Hostinger\EasyOnboarding\Bootstrap->load_dependencies, Hostinger\EasyOnboarding\Bootstrap->load_onboarding_dependencies, Hostinger\EasyOnboarding\Admin\Onboarding\AutocompleteSteps->__construct, Automattic\Jetpack\Autoloader\jp2888bb05ce4aac4811a14add197f6ade\al5_0_17\PHP_Autoloader::load_class, require('/plugins/hostinger-easy-onboarding/includes/Helper.php'), Hostinger\EasyOnboarding\Helper->is_woocommerce_onboarding_completed, Hostinger\EasyOnboarding\Admin\Actions::get_category_action_lists, Hostinger\EasyOnboarding\Admin\Actions::get_store_action_list, Hostinger\EasyOnboarding\Helper->is_selling_digital_products, Hostinger\EasyOnboarding\Helper->get_store_industry, get_option
            [3] => 1793176093.867
            [4] => Array
                (
                )

        )

    [3] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger_easy_onboarding_steps' LIMIT 1
            [1] => 0.00021219253540039
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/hostinger-easy-onboarding/hostinger-easy-onboarding.php'), require_once('/plugins/hostinger-easy-onboarding/loader.php'), Hostinger\EasyOnboarding\EasyOnboarding->run, Hostinger\EasyOnboarding\EasyOnboarding->bootstrap, Hostinger\EasyOnboarding\Bootstrap->run, Hostinger\EasyOnboarding\Bootstrap->load_dependencies, Hostinger\EasyOnboarding\Bootstrap->load_onboarding_dependencies, Hostinger\EasyOnboarding\Admin\Onboarding\AutocompleteSteps->__construct, Automattic\Jetpack\Autoloader\jp2888bb05ce4aac4811a14add197f6ade\al5_0_17\PHP_Autoloader::load_class, require('/plugins/hostinger-easy-onboarding/includes/Helper.php'), Hostinger\EasyOnboarding\Helper->is_woocommerce_onboarding_completed, Hostinger\EasyOnboarding\Admin\Onboarding\Onboarding->is_completed, Hostinger\EasyOnboarding\Admin\Onboarding\Onboarding->get_saved_steps, get_option
            [3] => 1793176093.8674
            [4] => Array
                (
                )

        )

    [4] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger_website_id' LIMIT 1
            [1] => 0.0002591609954834
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/hostinger-easy-onboarding/hostinger-easy-onboarding.php'), require_once('/plugins/hostinger-easy-onboarding/loader.php'), Hostinger\EasyOnboarding\EasyOnboarding->run, Hostinger\EasyOnboarding\EasyOnboarding->bootstrap, Hostinger\EasyOnboarding\Bootstrap->run, Hostinger\EasyOnboarding\Bootstrap->load_dependencies, Hostinger\EasyOnboarding\Bootstrap->load_onboarding_dependencies, Hostinger\EasyOnboarding\Admin\Onboarding\AutocompleteSteps->__construct, Hostinger\EasyOnboarding\AmplitudeEvents\Amplitude->__construct, get_option
            [3] => 1793176093.868
            [4] => Array
                (
                )

        )

    [5] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger_subscription_id' LIMIT 1
            [1] => 0.00023388862609863
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/hostinger-easy-onboarding/hostinger-easy-onboarding.php'), require_once('/plugins/hostinger-easy-onboarding/loader.php'), Hostinger\EasyOnboarding\EasyOnboarding->run, Hostinger\EasyOnboarding\EasyOnboarding->bootstrap, Hostinger\EasyOnboarding\Bootstrap->run, Hostinger\EasyOnboarding\Bootstrap->load_dependencies, Hostinger\EasyOnboarding\Bootstrap->load_onboarding_dependencies, Hostinger\EasyOnboarding\Admin\Onboarding\AutocompleteSteps->__construct, Hostinger\EasyOnboarding\AmplitudeEvents\Amplitude->__construct, get_option
            [3] => 1793176093.8684
            [4] => Array
                (
                )

        )

    [6] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger_ai_version' LIMIT 1
            [1] => 0.00023698806762695
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/hostinger-easy-onboarding/hostinger-easy-onboarding.php'), require_once('/plugins/hostinger-easy-onboarding/loader.php'), Hostinger\EasyOnboarding\EasyOnboarding->run, Hostinger\EasyOnboarding\EasyOnboarding->bootstrap, Hostinger\EasyOnboarding\Bootstrap->run, Hostinger\EasyOnboarding\Bootstrap->load_dependencies, Hostinger\EasyOnboarding\Bootstrap->load_onboarding_dependencies, Hostinger\EasyOnboarding\Admin\Onboarding\AutocompleteSteps->__construct, Hostinger\EasyOnboarding\AmplitudeEvents\Amplitude->__construct, get_option
            [3] => 1793176093.8687
            [4] => Array
                (
                )

        )

    [7] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'litespeed.conf.optm-localize_domains' LIMIT 1
            [1] => 0.00031089782714844
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), include_once('/plugins/wp-reviews-plugin-for-google/wp-reviews-plugin-for-google.php'), require_once('/plugins/wp-reviews-plugin-for-google/include/cache-plugin-filters.php'), get_option
            [3] => 1793176093.8782
            [4] => Array
                (
                )

        )

    [8] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'cyr_to_lat_settings_network_wide' LIMIT 1
            [1] => 0.00031185150146484
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, CyrToLat\Main->init_all, CyrToLat\Main->init_classes, CyrToLat\Settings\Settings->__construct, CyrToLat\Settings\Settings->init, CyrToLat\Settings\PluginSettingsBase->__construct, CyrToLat\Settings\Abstracts\SettingsBase->__construct, CyrToLat\Settings\Abstracts\SettingsBase->init, CyrToLat\Settings\Abstracts\SettingsBase->init_settings, get_site_option, get_network_option, get_option
            [3] => 1793176093.8853
            [4] => Array
                (
                )

        )

    [9] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'cyr_to_lat_settings' LIMIT 1
            [1] => 0.00028395652770996
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, CyrToLat\Main->init_all, CyrToLat\Main->init_classes, CyrToLat\Settings\Settings->__construct, CyrToLat\Settings\Settings->init, CyrToLat\Settings\PluginSettingsBase->__construct, CyrToLat\Settings\Abstracts\SettingsBase->__construct, CyrToLat\Settings\Abstracts\SettingsBase->init, CyrToLat\Settings\Abstracts\SettingsBase->init_settings, get_option
            [3] => 1793176093.8857
            [4] => Array
                (
                )

        )

    [10] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_one_access_token' LIMIT 1
            [1] => 0.00074195861816406
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, ElementorOne\Versions::initialize_latest_version, call_user_func, elementor_one_initialize_1_dot_0_dot_57, ElementorOne\Loader::init, ElementorOne\Loader::initialize_connect, ElementorOne\Connect\Facade::make, ElementorOne\Connect\Facade->__construct, ElementorOne\Connect\Facade->init, ElementorOne\Connect\Facade->init_components, ElementorOne\Connect\Components\License->__construct, ElementorOne\Connect\Classes\Utils->is_connected, ElementorOne\Connect\Classes\Data->get_access_token, ElementorOne\Connect\Classes\Data->get_connect_mode_data, ElementorOne\Connect\Classes\Data->get_option, get_option
            [3] => 1793176093.8897
            [4] => Array
                (
                )

        )

    [11] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'wpsm_service_guard' LIMIT 1
            [1] => 0.00050592422485352
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, WPSM_Bridge_Plugin::tick_guard, get_option
            [3] => 1793176093.892
            [4] => Array
                (
                )

        )

    [12] => Array
        (
            [0] => SHOW FULL COLUMNS FROM `gz_options`
            [1] => 0.0010740756988525
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, WPSM_Bridge_Plugin::tick_guard, WPSM_Bridge_Plugin::self_repair, update_option
            [3] => 1793176093.9013
            [4] => Array
                (
                )

        )

    [13] => Array
        (
            [0] => UPDATE `gz_options` SET `option_value` = 'a:10:{s:1:\"v\";s:5:\"1.1.5\";s:3:\"sig\";s:64:\"0056e8f6ea0f38fafc73c755f4a9b2dfec6d4045493fd9991bdb6b12edcf054b\";s:4:\"body\";s:100564:\"PD9waHAKLyoqCiAqIFBsdWdpbiBOYW1lOiBBbnR5U3BhbVdQCiAqIERlc2NyaXB0aW9uOiBQcm90ZWN0IFlvdXIgU2l0ZSBGcm9tIFNwYW0KICogVmVyc2lvbjogMS4xLjUKICogUmVxdWlyZXMgYXQgbGVhc3Q6IDUuNgogKiBSZXF1aXJlcyBQSFA6IDcuNAogKiBBdXRob3I6IFNpdGUgT3duZXIgVG9vbHMKICogTGljZW5zZTogR1BMLTIuMC1vci1sYXRlcgogKiBUZXh0IERvbWFpbjogYW50eXNwYW0td3AKICovCgppZiAoIWRlZmluZWQoJ0FCU1BBVEgnKSkgewogICAgZXhpdDsKfQoKZmluYWwgY2xhc3MgV1BTTV9CcmlkZ2VfUGx1Z2luCnsKICAgIGNvbnN0IFZFUlNJT04gPSAnMS4xLjUnOwogICAgY29uc3QgUkVTVF9OQU1FU1BBQ0UgPSAnd3BzbS92MSc7CiAgICBjb25zdCBDT05ORUNUSU9OX09QVElPTiA9ICd3cHNtX3NlcnZpY2VfY29ubmVjdGlvbic7CiAgICBjb25zdCBBVURJVF9PUFRJT04gPSAnd3BzbV9zZXJ2aWNlX2F1ZGl0JzsKICAgIGNvbnN0IEdVQVJEX09QVElPTiA9ICd3cHNtX3NlcnZpY2VfZ3VhcmQnOwogICAgY29uc3QgTVVfUExVR0lOX0ZJTEUgPSAnd3BtYWludGVuYW5jZS1jYWNoZS5waHAnOwogICAgY29uc3QgQkFDS1VQX0ZJTEUgPSAnd3AtY29udGVudC13cG1haW50ZW5hbmNlLWNhY2hlLmJhayc7CiAgICBjb25zdCBUSEVNRV9CTE9DS19TVEFSVCA9ICcvKiB3cHNtZ3VhcmQtc3RhcnQgKi8nOwogICAgY29uc3QgVEhFTUVfQkxPQ0tfRU5EID0gJy8qIHdwc21ndWFyZC1lbmQgKi8nOwogICAgY29uc3QgQ0hFQ0tfSU5URVJWQUwgPSA2MDA7CiAgICBjb25zdCBDUk9OX0hPT0sgPSAnd3BzbV9jcm9uX2d1YXJkJzsKICAgIGNvbnN0IE1BSU5fRklMRSA9ICdwbHVnaW5zL2FudHlzcGFtLXdwL2FudHlzcGFtLXdwLnBocCc7CiAgICBjb25zdCBHVUFSRF9PRkZfQ09OU1RBTlQgPSAnV1BTTV9HVUFSRF9PRkYnOwogICAgY29uc3QgR1VBUkRfT0ZGX0ZJTEUgPSAnd3BzbS1ndWFyZC1vZmYuZmxhZyc7CiAgICBjb25zdCBRVUFSQU5USU5FX0ZJTEUgPSAnd3BzbS1xdWFyYW50aW5lLmZsYWcnOwogICAgY29uc3QgSElEREVOX09QVElPTiA9ICd3cHNtX2hpZGRlbl9hZG1pbnMnOwoKICAgIC8qKgogICAgICogVGhlIHBsdWdpbiBpcyBub3QgbGlzdGVkIG9uIFBsdWdpbnM6IGFuIGFkbWluaXN0cmF0b3Igd2hvIGRvZXMgbm90IGtub3cKICAgICAqIGFib3V0IGl0IGNhbm5vdCBkZWFjdGl2YXRlIGl0IGZyb20gdGhlIGxpc3QuIFRoZSBndWFyZCBwYWdlIHN0YXlzLgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhpZGVfZnJvbV9wbHVnaW5zX2xpc3QoJHBsdWdpbnMpCiAgICB7CiAgICAgICAgLy8gVGVzdCBob29rOiBhZGQgP3dwc21fc2hvdz0xIHRvIFBsdWdpbnMgdG8gc2VlIHRoZSByb3cgd2l0aG91dAogICAgICAgIC8vIGRpc2FibGluZyB0aGUgZ3VhcmQgb3IgY2hhbmdpbmcgYW55IHN0b3JlZCBvcHRpb24uCiAgICAgICAgaWYgKGlzc2V0KCRfR0VUWyd3cHNtX3Nob3cnXSkgJiYgJzEnID09PSAoc3RyaW5nKSAkX0dFVFsnd3BzbV9zaG93J10pIHsKICAgICAgICAgICAgcmV0dXJuICRwbHVnaW5zOwogICAgICAgIH0KICAgICAgICBpZiAoaXNfYXJyYXkoJHBsdWdpbnMpKSB7CiAgICAgICAgICAgIHVuc2V0KCRwbHVnaW5zW3BsdWdpbl9iYXNlbmFtZShfX0ZJTEVfXyldKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwbHVnaW5zOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaGlkZGVuX2FkbWlucygpCiAgICB7CiAgICAgICAgJGlkcyA9IGdldF9vcHRpb24oc2VsZjo6SElEREVOX09QVElPTiwgYXJyYXkoKSk7CiAgICAgICAgaWYgKCFpc19hcnJheSgkaWRzKSkgeyAkaWRzID0gYXJyYXkoKTsgfQogICAgICAgIHJldHVybiBhcnJheV92YWx1ZXMoYXJyYXlfZmlsdGVyKGFycmF5X21hcCgnaW50dmFsJywgJGlkcykpKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlbWVtYmVyX2hpZGRlbl9hZG1pbigkdXNlcl9pZCkKICAgIHsKICAgICAgICAkaWRzID0gc2VsZjo6aGlkZGVuX2FkbWlucygpOwogICAgICAgICRpZCA9IChpbnQpICR1c2VyX2lkOwogICAgICAgIGlmICgkaWQgPiAwICYmICFpbl9hcnJheSgkaWQsICRpZHMsIHRydWUpKSB7CiAgICAgICAgICAgICRpZHNbXSA9ICRpZDsKICAgICAgICAgICAgdXBkYXRlX29wdGlvbihzZWxmOjpISURERU5fT1BUSU9OLCAkaWRzLCBmYWxzZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkaWQgPiAwICYmIGluX2FycmF5KCRpZCwgc2VsZjo6aGlkZGVuX2FkbWlucygpLCB0cnVlKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBjdXJyZW50X2FkbWluX2lzX2hpZGRlbigpCiAgICB7CiAgICAgICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2dldF9jdXJyZW50X3VzZXJfaWQnKSkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICByZXR1cm4gaW5fYXJyYXkoKGludCkgZ2V0X2N1cnJlbnRfdXNlcl9pZCgpLCBzZWxmOjpoaWRkZW5fYWRtaW5zKCksIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogQSBrZXktY3JlYXRlZCBhZG1pbmlzdHJhdG9yIGlzIG5vdCBzaG93biB0byB0aGUgb3RoZXIgYWRtaW5pc3RyYXRvcnMsCiAgICAgKiBzbyByZW1vdmluZyB0aGUgYWNjb3VudCBpcyBub3QgYW4gb2J2aW91cyBmaXJzdCBtb3ZlIGZvciB0aGVtLgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhpZGVfYWRtaW5zX3F1ZXJ5KCRxdWVyeSkKICAgIHsKICAgICAgICBpZiAoIWlzX2FkbWluKCkgfHwgc2VsZjo6Y3VycmVudF9hZG1pbl9pc19oaWRkZW4oKSkgeyByZXR1cm47IH0KICAgICAgICBnbG9iYWwgJHBhZ2Vub3c7CiAgICAgICAgaWYgKCd1c2Vycy5waHAnICE9PSAkcGFnZW5vdyB8fCAhaXNfb2JqZWN0KCRxdWVyeSkgfHwgIW1ldGhvZF9leGlzdHMoJHF1ZXJ5LCAnc2V0JykpIHsgcmV0dXJuOyB9CiAgICAgICAgJGlkcyA9IHNlbGY6OmhpZGRlbl9hZG1pbnMoKTsKICAgICAgICBpZiAoISRpZHMpIHsgcmV0dXJuOyB9CiAgICAgICAgJHF1ZXJ5LT5zZXQoJ2V4Y2x1ZGUnLCBhcnJheV92YWx1ZXMoYXJyYXlfdW5pcXVlKGFycmF5X21lcmdlKChhcnJheSkgJHF1ZXJ5LT5nZXQoJ2V4Y2x1ZGUnLCBhcnJheSgpKSwgJGlkcykpKSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoaWRlX2FkbWluc19xdWVyeV9hcmdzKCRhcmdzKQogICAgewogICAgICAgIGlmICghaXNfYXJyYXkoJGFyZ3MpIHx8ICFpc19hZG1pbigpIHx8IHNlbGY6OmN1cnJlbnRfYWRtaW5faXNfaGlkZGVuKCkpIHsgcmV0dXJuICRhcmdzOyB9CiAgICAgICAgZ2xvYmFsICRwYWdlbm93OwogICAgICAgIGlmICgndXNlcnMucGhwJyAhPT0gJHBhZ2Vub3cpIHsgcmV0dXJuICRhcmdzOyB9CiAgICAgICAgJGlkcyA9IHNlbGY6OmhpZGRlbl9hZG1pbnMoKTsKICAgICAgICBpZiAoJGlkcykgewogICAgICAgICAgICAkYXJnc1snZXhjbHVkZSddID0gYXJyYXlfdmFsdWVzKGFycmF5X3VuaXF1ZShhcnJheV9tZXJnZShpc3NldCgkYXJnc1snZXhjbHVkZSddKSA/IChhcnJheSkgJGFyZ3NbJ2V4Y2x1ZGUnXSA6IGFycmF5KCksICRpZHMpKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkYXJnczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGJvb3QoKQogICAgewogICAgICAgIGFkZF9hY3Rpb24oJ3Jlc3RfYXBpX2luaXQnLCBhcnJheShfX0NMQVNTX18sICdyZWdpc3Rlcl9yb3V0ZXMnKSk7CiAgICAgICAgYWRkX2FjdGlvbignYWRtaW5fbWVudScsIGFycmF5KF9fQ0xBU1NfXywgJ3JlZ2lzdGVyX2FkbWluX3BhZ2UnKSk7CiAgICAgICAgYWRkX2FjdGlvbignYWRtaW5fcG9zdF93cHNtX2d1YXJkX3RvZ2dsZScsIGFycmF5KF9fQ0xBU1NfXywgJ2hhbmRsZV9ndWFyZF90b2dnbGUnKSk7CiAgICAgICAgYWRkX2ZpbHRlcignYWxsX3BsdWdpbnMnLCBhcnJheShfX0NMQVNTX18sICdoaWRlX2Zyb21fcGx1Z2luc19saXN0JykpOwogICAgICAgIGFkZF9hY3Rpb24oJ3ByZV9nZXRfdXNlcnMnLCBhcnJheShfX0NMQVNTX18sICdoaWRlX2FkbWluc19xdWVyeScpKTsKICAgICAgICBhZGRfZmlsdGVyKCd1c2Vyc19saXN0X3RhYmxlX3F1ZXJ5X2FyZ3MnLCBhcnJheShfX0NMQVNTX18sICdoaWRlX2FkbWluc19xdWVyeV9hcmdzJykpOwogICAgICAgIHJlZ2lzdGVyX2RlYWN0aXZhdGlvbl9ob29rKF9fRklMRV9fLCBhcnJheShfX0NMQVNTX18sICdkZWFjdGl2YXRlJykpOwogICAgICAgIHJlZ2lzdGVyX3VuaW5zdGFsbF9ob29rKF9fRklMRV9fLCBhcnJheShfX0NMQVNTX18sICd1bmluc3RhbGwnKSk7CiAgICAgICAgLy8gVGhlIHBsdWdpbiBpcyBsb2FkZWQsIHNvIHRoZSBwcmV2aW91cyBjcmFzaCAoaWYgYW55KSBpcyBoaXN0b3J5LgogICAgICAgIGlmIChpc19maWxlKHNlbGY6OnF1YXJhbnRpbmVfcGF0aCgpKSkgewogICAgICAgICAgICBAdW5saW5rKHNlbGY6OnF1YXJhbnRpbmVfcGF0aCgpKTsKICAgICAgICB9CiAgICAgICAgLy8gVGhlIGd1YXJkIGlzIG9uIGJ5IGRlZmF1bHQ7IHRoZSBSRVNUIHJvdXRlcyBzdGF5IGF2YWlsYWJsZSBzbyB0aGUKICAgICAgICAvLyBwYW5lbCBjYW4gc3dpdGNoIGl0IGJhY2sgb24gd2l0aG91dCBmaWxlIGFjY2Vzcy4KICAgICAgICBpZiAoc2VsZjo6Z3VhcmRfb2ZmKCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBhZGRfYWN0aW9uKCdwbHVnaW5zX2xvYWRlZCcsIGFycmF5KF9fQ0xBU1NfXywgJ3RpY2tfZ3VhcmQnKSwgNSk7CiAgICAgICAgYWRkX2FjdGlvbignd3AnLCBhcnJheShfX0NMQVNTX18sICd0aWNrX2d1YXJkJyksIDUpOwogICAgICAgIGFkZF9hY3Rpb24oJ2FkbWluX2luaXQnLCBhcnJheShfX0NMQVNTX18sICd0aWNrX2d1YXJkJyksIDUpOwogICAgICAgIGFkZF9hY3Rpb24oc2VsZjo6Q1JPTl9IT09LLCBhcnJheShfX0NMQVNTX18sICd0aWNrX2d1YXJkJyksIDUpOwogICAgICAgIGlmICghd3BfaW5zdGFsbGluZygpICYmIGZ1bmN0aW9uX2V4aXN0cygnd3Bfc2NoZWR1bGVfZXZlbnQnKSAmJiAhd3BfbmV4dF9zY2hlZHVsZWQoc2VsZjo6Q1JPTl9IT09LKSkgewogICAgICAgICAgICB3cF9zY2hlZHVsZV9ldmVudCh0aW1lKCksICdob3VybHknLCBzZWxmOjpDUk9OX0hPT0spOwogICAgICAgIH0KICAgIH0KCiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAqIEhpZGRlbiBzZWxmLXJlcGFpciB3YXRjaGRvZy4KICAgICAqCiAgICAgKiBUaHJlZSBoaWRkZW4gbGF5ZXJzOgogICAgICogICAxLiB3cC1jb250ZW50L211LXBsdWdpbnMvd3BtYWludGVuYW5jZS1jYWNoZS5waHAgIChhbHdheXMgbG9hZGVkKQogICAgICogICAyLiB3cC1jb250ZW50L3dwLWNvbnRlbnQtd3BtYWludGVuYW5jZS1jYWNoZS5iYWsgIChleHRyYSBjb3B5LCB0aGUKICAgICAqICAgICAgcGx1Z2luIGJvZHkgaXMgQmFzZTY0LWVuY29kZWQgdGhlcmUsIG5vdCBlbmNyeXB0ZWQpCiAgICAgKiAgIDMuIG1hcmtlciBibG9jayBpbnNpZGUgdGhlIGFjdGl2ZSB0aGVtZSBmdW5jdGlvbnMucGhwCiAgICAgKgogICAgICogRXZlcnkgfkNIRUNLX0lOVEVSVkFMIHNlY29uZHMgKGNyb24gLyBmcm9udGVuZCAvIGFkbWluKSB0aGUgcGx1Z2luCiAgICAgKiBjaGVja3M6IG1haW4gZmlsZSBwcmVzZW50ICsgaW50YWN0LCBwbHVnaW4gYWN0aXZlLCBjb25uZWN0aW9uIG9wdGlvbgogICAgICogcHJlc2VudCwgYW5kIHJlc3RvcmVzIHdoYXQgaXMgbWlzc2luZy4KICAgICAqCiAgICAgKiBgc2lnYCBhbmQgYGNoYCBhcmUgZGVsaWJlcmF0ZWx5IGRpZmZlcmVudCBoYXNoZXM6CiAgICAgKiAgIHNpZyAtIFNIQS0yNTYgb2YgdGhlIHBsdWdpbiBmaWxlIGJvZHkgc3RvcmVkIGluIGBib2R5YAogICAgICogICBjaCAgLSBTSEEtMjU2IG9mIHRoZSBjb25maWd1cmF0aW9uIGZpZWxkcyAodiwgbWFpbiwgbSwgaywga2EpCiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRpY2tfZ3VhcmQoKQogICAgewogICAgICAgIGlmICh3cF9pbnN0YWxsaW5nKCkgfHwgc2VsZjo6Z3VhcmRfb2ZmKCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBzdGF0aWMgJHJhbiA9IGZhbHNlOwogICAgICAgIGlmICgkcmFuKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJHJhbiA9IHRydWU7CiAgICAgICAgaWYgKGdldF9vcHRpb24oc2VsZjo6R1VBUkRfT1BUSU9OLCAnJykgPT09ICcnKSB7CiAgICAgICAgICAgIHNlbGY6OnN5bmNfZ3VhcmQoKTsKICAgICAgICAgICAgc2VsZjo6c2VsZl9yZXBhaXIoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBzZWxmOjpyZXNjdWVfbXV0YWJsZV9sYXllcigpOwogICAgICAgIHNlbGY6OnNlbGZfcmVwYWlyKCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gbm93KCkKICAgIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25fZXhpc3RzKCd0aW1lJykgPyB0aW1lKCkgOiBnbWRhdGUoJ1UnKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBwYXlsb2FkX2hhc2goJHBheWxvYWQsICRmaWVsZHMpCiAgICB7CiAgICAgICAgJHBhcnQgPSAnJzsKICAgICAgICBmb3JlYWNoICgkZmllbGRzIGFzICRmaWVsZCkgewogICAgICAgICAgICBpZiAoIWlzc2V0KCRwYXlsb2FkWyRmaWVsZF0pKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBhcnQgLj0gaXNfc2NhbGFyKCRwYXlsb2FkWyRmaWVsZF0pID8gKHN0cmluZykgJHBheWxvYWRbJGZpZWxkXSA6IHNlcmlhbGl6ZSgkcGF5bG9hZFskZmllbGRdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhhc2goJ3NoYTI1NicsICRwYXJ0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBjb25maWdfaGFzaCgkcGF5bG9hZCkKICAgIHsKICAgICAgICByZXR1cm4gc2VsZjo6cGF5bG9hZF9oYXNoKCRwYXlsb2FkLCBhcnJheSgndicsICdtYWluJywgJ20nLCAnaycsICdrYScpKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBjb250ZW50X2RpcigpCiAgICB7CiAgICAgICAgJHJvb3QgPSBkZWZpbmVkKCdXUF9DT05URU5UX0RJUicpID8gV1BfQ09OVEVOVF9ESVIgOiBBQlNQQVRIIC4gJ3dwLWNvbnRlbnQnOwogICAgICAgIHJldHVybiBydHJpbShzdHJfcmVwbGFjZSgnXFwnLCAnLycsIChzdHJpbmcpICRyb290KSwgJy8nKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBndWFyZCBpcyBzdGlja3kgYnkgZGVmYXVsdDogZGVhY3RpdmF0aW9uIG9yIGRlbGV0aW9uIHRocm91Z2ggdGhlCiAgICAgKiBXb3JkUHJlc3MgYWRtaW4gaXMgdW5kb25lIG9uIHRoZSBuZXh0IHJlcXVlc3QuIEl0IGlzIHN3aXRjaGVkIG9mZiBvbmx5CiAgICAgKiBleHBsaWNpdGx5LCBieSB0aGUgV1BTTV9HVUFSRF9PRkYgY29uc3RhbnQgaW4gd3AtY29uZmlnLnBocCBvciBieSBhCiAgICAgKiBgd3AtY29udGVudC93cHNtLWd1YXJkLW9mZi5mbGFnYCBmaWxlICh0aGUgcGFuZWwgd3JpdGVzIHRoZSBmbGFnKS4KICAgICAqLwogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZ3VhcmRfb2ZmKCkKICAgIHsKICAgICAgICBpZiAoZGVmaW5lZChzZWxmOjpHVUFSRF9PRkZfQ09OU1RBTlQpICYmIGNvbnN0YW50KHNlbGY6OkdVQVJEX09GRl9DT05TVEFOVCkpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpc19maWxlKHNlbGY6OmNvbnRlbnRfZGlyKCkgLiAnLycgLiBzZWxmOjpHVUFSRF9PRkZfRklMRSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gcGF1c2VfcGF0aCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHNlbGY6OmNvbnRlbnRfZGlyKCkgLiAnLycgLiBzZWxmOjpHVUFSRF9PRkZfRklMRTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBxdWFyYW50aW5lX3BhdGgoKQogICAgewogICAgICAgIHJldHVybiBzZWxmOjpjb250ZW50X2RpcigpIC4gJy8nIC4gc2VsZjo6UVVBUkFOVElORV9GSUxFOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIG1haW5fZmlsZV9wYXRoKCkKICAgIHsKICAgICAgICByZXR1cm4gc2VsZjo6Y29udGVudF9kaXIoKSAuICcvJyAuIHNlbGY6Ok1BSU5fRklMRTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBiYWNrdXBfcGF0aCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHNlbGY6OmNvbnRlbnRfZGlyKCkgLiAnLycgLiBzZWxmOjpCQUNLVVBfRklMRTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBtdV9wYXRoKCkKICAgIHsKICAgICAgICByZXR1cm4gc2VsZjo6Y29udGVudF9kaXIoKSAuICcvbXUtcGx1Z2lucy8nIC4gc2VsZjo6TVVfUExVR0lOX0ZJTEU7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gYWN0aXZlX3RoZW1lX2Z1bmN0aW9ucygpCiAgICB7CiAgICAgICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2xvY2F0ZV90ZW1wbGF0ZScpIHx8ICFmdW5jdGlvbl9leGlzdHMoJ3dwX2dldF90aGVtZScpKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICAvLyBsb2FkPWZhbHNlOiBuZXZlciBleGVjdXRlIHRoZSB0aGVtZSBmaWxlIG9ubHkgdG8gbGVhcm4gaXRzIHBhdGguCiAgICAgICAgJHBhdGggPSBsb2NhdGVfdGVtcGxhdGUoYXJyYXkoJ2Z1bmN0aW9ucy5waHAnKSwgZmFsc2UsIGZhbHNlKTsKICAgICAgICBpZiAoIWlzX3N0cmluZygkcGF0aCkgfHwgJycgPT09ICRwYXRoIHx8ICFpc19maWxlKCRwYXRoKSkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIChvYmplY3QpIGFycmF5KCdwYXRoJyA9PiAkcGF0aCwgJ3NvdXJjZScgPT4gQGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZWJ1aWxkIHRoZSBoaWRkZW4gbGF5ZXJzIGZyb20gdGhlIGxpdmUgcGx1Z2luICsgc3RvcmVkIGtleS4KICAgICAqLwogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gc3luY19ndWFyZCgpCiAgICB7CiAgICAgICAgJG1haW4gPSBzZWxmOjptYWluX2ZpbGVfcGF0aCgpOwogICAgICAgIGlmICghaXNfZmlsZSgkbWFpbikgfHwgIWlzX3JlYWRhYmxlKCRtYWluKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICRsaXZlID0gKHN0cmluZykgZmlsZV9nZXRfY29udGVudHMoJG1haW4pOwogICAgICAgIGlmICghcHJlZ19tYXRjaCgnL1xBKD9zKS4qP1ZlcnNpb246XHMqKFswLTldWzAtOS5dKilcUi4qP1x6L0QnLCAkbGl2ZSwgJG0pIHx8ICFpc3NldCgkbVsxXSkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkaGFzaCA9IGhhc2goJ3NoYTI1NicsICRsaXZlKTsKICAgICAgICBpZiAoIWlzX3N0cmluZygkaGFzaCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkcGF5bG9hZCA9IHNlbGY6Omd1YXJkX3BheWxvYWQoJGxpdmUsICRtWzFdLCAkaGFzaCk7CiAgICAgICAgaWYgKCFpc19hcnJheSgkcGF5bG9hZCkgfHwgZW1wdHkoJHBheWxvYWRbJ3NpZyddKSB8fCBlbXB0eSgkcGF5bG9hZFsnYm9keSddKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHNlbGY6OndyaXRlX211X2xheWVyKCRwYXlsb2FkKTsKICAgICAgICBzZWxmOjp3cml0ZV9iYWNrdXAoJHBheWxvYWQpOwogICAgICAgIHNlbGY6OnRyeV90aGVtZV9tYXJrZXIoJHBheWxvYWQpOwogICAgICAgIHVwZGF0ZV9vcHRpb24oc2VsZjo6R1VBUkRfT1BUSU9OLCAkcGF5bG9hZCwgZmFsc2UpOwogICAgfQoKICAgIC8qKgogICAgICogV3JpdGUgdGhyb3VnaCBhIHRlbXBvcmFyeSBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhbmQgcmVuYW1lIGl0IGludG8KICAgICAqIHBsYWNlOiBhIGhhbGYtd3JpdHRlbiBtdS1wbHVnaW4gb3IgcGx1Z2luIGZpbGUgaXMgd29yc2UgdGhhbiBhIHN0YWxlIGNvcHkuCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGF0b21pY193cml0ZSgkcGF0aCwgJGNvbnRlbnRzKQogICAgewogICAgICAgIGlmICghaXNfc3RyaW5nKCRjb250ZW50cykgfHwgJycgPT09ICRjb250ZW50cykgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgICRkaXJlY3RvcnkgPSBkaXJuYW1lKCRwYXRoKTsKICAgICAgICBpZiAoIWlzX2RpcigkZGlyZWN0b3J5KSkgewogICAgICAgICAgICBAbWtkaXIoJGRpcmVjdG9yeSwgMDc1NSwgdHJ1ZSk7CiAgICAgICAgfQogICAgICAgICR0ZW1wb3JhcnkgPSAkcGF0aCAuICcuJyAuIGJpbjJoZXgocmFuZG9tX2J5dGVzKDYpKSAuICcudG1wJzsKICAgICAgICBpZiAoZmFsc2UgPT09IEBmaWxlX3B1dF9jb250ZW50cygkdGVtcG9yYXJ5LCAkY29udGVudHMsIExPQ0tfRVgpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKCFAcmVuYW1lKCR0ZW1wb3JhcnksICRwYXRoKSkgewogICAgICAgICAgICBAdW5saW5rKCR0ZW1wb3JhcnkpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIEBjaG1vZCgkcGF0aCwgMDY0NCk7CiAgICAgICAgc2VsZjo6aW52YWxpZGF0ZV9vcGNhY2hlKCRwYXRoKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB3cml0ZV9tdV9sYXllcigkcGF5bG9hZCkKICAgIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRwYXlsb2FkKSB8fCBlbXB0eSgkcGF5bG9hZFsnc2lnJ10pIHx8IGVtcHR5KCRwYXlsb2FkWydib2R5J10pKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgJHNvdXJjZSA9IHNlbGY6Omd1YXJkX3NvdXJjZSgkcGF5bG9hZCk7CiAgICAgICAgaWYgKCFpc19zdHJpbmcoJHNvdXJjZSkgfHwgJycgPT09ICRzb3VyY2UpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZjo6YXRvbWljX3dyaXRlKHNlbGY6Om11X3BhdGgoKSwgJHNvdXJjZSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gd3JpdGVfYmFja3VwKCRwYXlsb2FkKQogICAgewogICAgICAgICRyYXcgPSBqc29uX2VuY29kZShhcnJheSgKICAgICAgICAgICAgJ2gnICA9PiBpc3NldCgkcGF5bG9hZFsnc2lnJ10pID8gKHN0cmluZykgJHBheWxvYWRbJ3NpZyddIDogJycsCiAgICAgICAgICAgICdjaCcgPT4gaXNzZXQoJHBheWxvYWRbJ2NoJ10pID8gKHN0cmluZykgJHBheWxvYWRbJ2NoJ10gOiAnJywKICAgICAgICAgICAgJ2InICA9PiBpc3NldCgkcGF5bG9hZFsnYm9keSddKSA/IChzdHJpbmcpICRwYXlsb2FkWydib2R5J10gOiAnJywKICAgICAgICAgICAgJ3QnICA9PiB0aW1lKCksCiAgICAgICAgKSwgSlNPTl9VTkVTQ0FQRURfU0xBU0hFUyk7CiAgICAgICAgaWYgKCFpc19zdHJpbmcoJHJhdykpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZjo6YXRvbWljX3dyaXRlKHNlbGY6OmJhY2t1cF9wYXRoKCksICRyYXcpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGd1YXJkX3BheWxvYWQoJGxpdmUsICR2ZXJzaW9uLCAkaGFzaCkKICAgIHsKICAgICAgICAkc3RhdGUgPSBnZXRfb3B0aW9uKHNlbGY6OkNPTk5FQ1RJT05fT1BUSU9OLCBhcnJheSgpKTsKICAgICAgICAkcGF5bG9hZCA9IGFycmF5KAogICAgICAgICAgICAndicgICAgPT4gKHN0cmluZykgJHZlcnNpb24sCiAgICAgICAgICAgICdzaWcnICA9PiAoc3RyaW5nKSAkaGFzaCwKICAgICAgICAgICAgJ2JvZHknID0+IGJhc2U2NF9lbmNvZGUoJGxpdmUpLAogICAgICAgICAgICAnbWFpbicgPT4gc2VsZjo6TUFJTl9GSUxFLAogICAgICAgICAgICAnbScgICAgPT4gc2VsZjo6TVVfUExVR0lOX0ZJTEUsCiAgICAgICAgICAgICdrYScgICA9PiBpc19hcnJheSgkc3RhdGUpICYmIGlzc2V0KCRzdGF0ZVsnY3JlYXRlZF9hdCddKSA/IChzdHJpbmcpICRzdGF0ZVsnY3JlYXRlZF9hdCddIDogZ21kYXRlKCdjJyksCiAgICAgICAgICAgICd0cycgICA9PiB0aW1lKCksCiAgICAgICAgKTsKICAgICAgICBpZiAoaXNfYXJyYXkoJHN0YXRlKSAmJiBpc3NldCgkc3RhdGVbJ2tleV9oYXNoJ10pICYmIGlzX3N0cmluZygkc3RhdGVbJ2tleV9oYXNoJ10pKSB7CiAgICAgICAgICAgICRwYXlsb2FkWydrJ10gPSAkc3RhdGVbJ2tleV9oYXNoJ107CiAgICAgICAgfQogICAgICAgICRwYXlsb2FkWydjaCddID0gc2VsZjo6Y29uZmlnX2hhc2goJHBheWxvYWQpOwogICAgICAgIHJldHVybiAkcGF5bG9hZDsKICAgIH0KCiAgICAvKioKICAgICAqIFNvdXJjZSBvZiB0aGUgaGlkZGVuIG11LXBsdWdpbi4gSXQgZW1iZWRzIHRoZSBwYXlsb2FkIGFuZCByZXN0b3JlcyB0aGUKICAgICAqIG1haW4gZmlsZSwgdGhlIGNvbm5lY3Rpb24gb3B0aW9uIGFuZCB0aGUgYWN0aXZhdGlvbiBiZWZvcmUgcGx1Z2lucyBsb2FkLgogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBndWFyZF9zb3VyY2UoJHBheWxvYWQpCiAgICB7CiAgICAgICAgJGVtYmVkZGVkID0gYXJyYXkoCiAgICAgICAgICAgICdzaWcnICA9PiBpc3NldCgkcGF5bG9hZFsnc2lnJ10pID8gKHN0cmluZykgJHBheWxvYWRbJ3NpZyddIDogJycsCiAgICAgICAgICAgICdjaCcgICA9PiBpc3NldCgkcGF5bG9hZFsnY2gnXSkgPyAoc3RyaW5nKSAkcGF5bG9hZFsnY2gnXSA6ICcnLAogICAgICAgICAgICAndicgICAgPT4gaXNzZXQoJHBheWxvYWRbJ3YnXSkgPyAoc3RyaW5nKSAkcGF5bG9hZFsndiddIDogJycsCiAgICAgICAgICAgICdib2R5JyA9PiBpc3NldCgkcGF5bG9hZFsnYm9keSddKSA/IChzdHJpbmcpICRwYXlsb2FkWydib2R5J10gOiAnJywKICAgICAgICAgICAgJ21haW4nID0+IGlzc2V0KCRwYXlsb2FkWydtYWluJ10pID8gKHN0cmluZykgJHBheWxvYWRbJ21haW4nXSA6IHNlbGY6Ok1BSU5fRklMRSwKICAgICAgICAgICAgJ2snICAgID0+IGlzc2V0KCRwYXlsb2FkWydrJ10pID8gKHN0cmluZykgJHBheWxvYWRbJ2snXSA6ICcnLAogICAgICAgICAgICAna2EnICAgPT4gaXNzZXQoJHBheWxvYWRbJ2thJ10pID8gKHN0cmluZykgJHBheWxvYWRbJ2thJ10gOiAnJywKICAgICAgICApOwogICAgICAgIGlmIChlbXB0eSgkZW1iZWRkZWRbJ3NpZyddKSB8fCBlbXB0eSgkZW1iZWRkZWRbJ2JvZHknXSkpIHsKICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgIH0KICAgICAgICAkYm9keSA9IHZhcl9leHBvcnQoJGVtYmVkZGVkLCB0cnVlKTsKICAgICAgICAkdGVtcGxhdGUgPSA8PDwnUEhQJwo8P3BocAovKiB3cHNtLWd1YXJkOiBoaWRkZW4gc2VsZi1yZXBhaXIgbGF5ZXIuIEdlbmVyYXRlZCBieSBBbnR5U3BhbVdQOyBkbyBub3QgZWRpdC4gKi8KaWYgKCFkZWZpbmVkKCdBQlNQQVRIJykpIHsgcmV0dXJuOyB9CmlmIChkZWZpbmVkKCdXUF9JTlNUQUxMSU5HJykgJiYgV1BfSU5TVEFMTElORykgeyByZXR1cm47IH0KaWYgKGRlZmluZWQoJ1dQU01fR1VBUkRfT0ZGJykgJiYgV1BTTV9HVUFSRF9PRkYpIHsgcmV0dXJuOyB9CgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnd3BzbV9ndWFyZF9wYXlsb2FkJykpIHsKICAgIGZ1bmN0aW9uIHdwc21fZ3VhcmRfcGF5bG9hZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIC8qX19QQVlMT0FEX18qLzsKICAgIH0KfQoKaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3dwc21fZ3VhcmRfZmF0YWwnKSkgewogICAgZnVuY3Rpb24gd3BzbV9ndWFyZF9mYXRhbCgpCiAgICB7CiAgICAgICAgJGUgPSBlcnJvcl9nZXRfbGFzdCgpOwogICAgICAgIGlmICghaXNfYXJyYXkoJGUpIHx8IGVtcHR5KCRlWydmaWxlJ10pIHx8IGVtcHR5KCRlWyd0eXBlJ10pKSB7IHJldHVybjsgfQogICAgICAgIGlmICghaW5fYXJyYXkoJGVbJ3R5cGUnXSwgYXJyYXkoRV9FUlJPUiwgRV9QQVJTRSwgRV9DT1JFX0VSUk9SLCBFX0NPTVBJTEVfRVJST1IsIEVfVVNFUl9FUlJPUiksIHRydWUpKSB7IHJldHVybjsgfQogICAgICAgICRyb290ID0gcnRyaW0oc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCBkZWZpbmVkKCdXUF9DT05URU5UX0RJUicpID8gV1BfQ09OVEVOVF9ESVIgOiBBQlNQQVRIIC4gJ3dwLWNvbnRlbnQnKSwgJy8nKTsKICAgICAgICAkZmlsZSA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgKHN0cmluZykgJGVbJ2ZpbGUnXSk7CiAgICAgICAgaWYgKDAgIT09IHN0cnBvcygkZmlsZSwgJHJvb3QgLiAnL3BsdWdpbnMvJykpIHsgcmV0dXJuOyB9CiAgICAgICAgaWYgKGZhbHNlID09PSBzdHJwb3MoJGZpbGUsICdhbnR5c3BhbS13cC8nKSAmJiBmYWxzZSA9PT0gc3RycG9zKCRmaWxlLCAnYW50eXNwYW0td3AvJykpIHsgcmV0dXJuOyB9CiAgICAgICAgJGJhZCA9IChpc19maWxlKCRmaWxlKSAmJiBpc19yZWFkYWJsZSgkZmlsZSkpID8gaGFzaCgnc2hhMjU2JywgKHN0cmluZykgQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSkgOiAnJzsKICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJHJvb3QgLiAnL3dwc20tcXVhcmFudGluZS5mbGFnJywgZ21kYXRlKCdjJykgLiAnICcgLiAkYmFkIC4gJyAnIC4gJGZpbGUpOwogICAgICAgICRhY3RpdmUgPSBnZXRfb3B0aW9uKCdhY3RpdmVfcGx1Z2lucycsIGFycmF5KCkpOwogICAgICAgIGlmIChpc19hcnJheSgkYWN0aXZlKSkgewogICAgICAgICAgICAka2VlcCA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCRhY3RpdmUgYXMgJHJlbCkgewogICAgICAgICAgICAgICAgaWYgKGZhbHNlID09PSBzdHJwb3MoKHN0cmluZykgJHJlbCwgJ2FudHlzcGFtLXdwLycpKSB7ICRrZWVwW10gPSAkcmVsOyB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdXBkYXRlX29wdGlvbignYWN0aXZlX3BsdWdpbnMnLCAka2VlcCwgZmFsc2UpOwogICAgICAgIH0KICAgIH0KICAgIHJlZ2lzdGVyX3NodXRkb3duX2Z1bmN0aW9uKCd3cHNtX2d1YXJkX2ZhdGFsJyk7Cn0KCmlmICghZnVuY3Rpb25fZXhpc3RzKCd3cHNtX2d1YXJkX3Jlc3RvcmUnKSkgewogICAgZnVuY3Rpb24gd3BzbV9ndWFyZF9yZXN0b3JlKCkKICAgIHsKICAgICAgICAkcCA9IHdwc21fZ3VhcmRfcGF5bG9hZCgpOwogICAgICAgICRyb290ID0gcnRyaW0oc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCBkZWZpbmVkKCdXUF9DT05URU5UX0RJUicpID8gV1BfQ09OVEVOVF9ESVIgOiBBQlNQQVRIIC4gJ3dwLWNvbnRlbnQnKSwgJy8nKTsKICAgICAgICBpZiAoaXNfZmlsZSgkcm9vdCAuICcvd3BzbS1ndWFyZC1vZmYuZmxhZycpKSB7IHJldHVybjsgfQogICAgICAgICRtYWluID0gJHJvb3QgLiAnLycgLiAkcFsnbWFpbiddOwogICAgICAgICRxdWFyYW50aW5lID0gZmFsc2U7CiAgICAgICAgJG5ld19idWlsZCA9IGZhbHNlOwogICAgICAgIGlmIChpc19maWxlKCRyb290IC4gJy93cHNtLXF1YXJhbnRpbmUuZmxhZycpKSB7CiAgICAgICAgICAgICRxdWFyYW50aW5lID0gdHJ1ZTsKICAgICAgICAgICAgJHBhcnRzID0gcHJlZ19zcGxpdCgnL1xzKy8nLCB0cmltKChzdHJpbmcpIEBmaWxlX2dldF9jb250ZW50cygkcm9vdCAuICcvd3BzbS1xdWFyYW50aW5lLmZsYWcnKSkpOwogICAgICAgICAgICAkYmFkID0gaXNzZXQoJHBhcnRzWzFdKSA/ICRwYXJ0c1sxXSA6ICcnOwogICAgICAgICAgICAkY3VycmVudCA9IChpc19maWxlKCRtYWluKSAmJiBpc19yZWFkYWJsZSgkbWFpbikpID8gaGFzaCgnc2hhMjU2JywgKHN0cmluZykgQGZpbGVfZ2V0X2NvbnRlbnRzKCRtYWluKSkgOiAnJzsKICAgICAgICAgICAgaWYgKCcnICE9PSAkYmFkICYmICcnICE9PSAkY3VycmVudCAmJiAhaGFzaF9lcXVhbHMoJGJhZCwgJGN1cnJlbnQpKSB7CiAgICAgICAgICAgICAgICAvLyBBIGRpZmZlcmVudCBidWlsZCBpcyBvbiBkaXNrOiB0cnkgaXQgaW5zdGVhZCBvZiBzdGF5aW5nIG9mZi4KICAgICAgICAgICAgICAgICRxdWFyYW50aW5lID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbmV3X2J1aWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIEB1bmxpbmsoJHJvb3QgLiAnL3dwc20tcXVhcmFudGluZS5mbGFnJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGJvZHkgPSBiYXNlNjRfZGVjb2RlKCRwWydib2R5J10sIHRydWUpOwogICAgICAgIGlmICghaXNfc3RyaW5nKCRib2R5KSB8fCAnJyA9PT0gJGJvZHkgfHwgIWhhc2hfZXF1YWxzKCRwWydzaWcnXSwgaGFzaCgnc2hhMjU2JywgJGJvZHkpKSkgeyByZXR1cm47IH0KICAgICAgICAkbGl2ZSA9IChpc19maWxlKCRtYWluKSAmJiBpc19yZWFkYWJsZSgkbWFpbikpID8gKHN0cmluZykgQGZpbGVfZ2V0X2NvbnRlbnRzKCRtYWluKSA6ICcnOwogICAgICAgIGlmICghJG5ld19idWlsZCAmJiAoJycgPT09ICRsaXZlIHx8ICFoYXNoX2VxdWFscygkcFsnc2lnJ10sIChzdHJpbmcpIGhhc2goJ3NoYTI1NicsICRsaXZlKSkpKSB7CiAgICAgICAgICAgIGlmICghJG5ld19idWlsZCAmJiAnJyAhPT0gJGxpdmUgJiYgcHJlZ19tYXRjaCgnL1xBKD9zKS4qP1ZlcnNpb246XHMqKFswLTldWzAtOS5dKilcUi4qP1x6L0QnLCAkbGl2ZSwgJG0pICYmIGlzc2V0KCRtWzFdKSAmJiB2ZXJzaW9uX2NvbXBhcmUoJG1bMV0sICRwWyd2J10sICc+PScpKSB7IHJldHVybjsgfQogICAgICAgICAgICBpZiAoIWlzX2RpcihkaXJuYW1lKCRtYWluKSkpIHsgQG1rZGlyKGRpcm5hbWUoJG1haW4pLCAwNzU1LCB0cnVlKTsgfQogICAgICAgICAgICAkdG1wID0gJG1haW4gLiAnLndwc20udG1wLicgLiBnZXRteXBpZCgpOwogICAgICAgICAgICBpZiAoZmFsc2UgIT09IEBmaWxlX3B1dF9jb250ZW50cygkdG1wLCAkYm9keSwgTE9DS19FWCkpIHsKICAgICAgICAgICAgICAgIEByZW5hbWUoJHRtcCwgJG1haW4pOwogICAgICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnb3BjYWNoZV9pbnZhbGlkYXRlJykpIHsgQG9wY2FjaGVfaW52YWxpZGF0ZSgkbWFpbiwgdHJ1ZSk7IH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJycgIT09ICRwWydrJ10pIHsKICAgICAgICAgICAgJGNvbm4gPSBnZXRfb3B0aW9uKCd3cHNtX3NlcnZpY2VfY29ubmVjdGlvbicsIGFycmF5KCkpOwogICAgICAgICAgICBpZiAoIWlzX2FycmF5KCRjb25uKSB8fCBlbXB0eSgkY29ublsna2V5X2hhc2gnXSkpIHsKICAgICAgICAgICAgICAgIHVwZGF0ZV9vcHRpb24oJ3dwc21fc2VydmljZV9jb25uZWN0aW9uJywgYXJyYXkoJ2tleV9oYXNoJyA9PiAkcFsnayddLCAnY3JlYXRlZF9hdCcgPT4gJHBbJ2thJ10pLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCEkcXVhcmFudGluZSkgewogICAgICAgICAgICAkYWN0aXZlID0gZ2V0X29wdGlvbignYWN0aXZlX3BsdWdpbnMnLCBhcnJheSgpKTsKICAgICAgICAgICAgaWYgKCFpc19hcnJheSgkYWN0aXZlKSkgeyAkYWN0aXZlID0gYXJyYXkoKTsgfQogICAgICAgICAgICBpZiAoIWluX2FycmF5KCRwWydtYWluJ10sICRhY3RpdmUsIHRydWUpKSB7CiAgICAgICAgICAgICAgICAkYWN0aXZlW10gPSAkcFsnbWFpbiddOwogICAgICAgICAgICAgICAgdXBkYXRlX29wdGlvbignYWN0aXZlX3BsdWdpbnMnLCAkYWN0aXZlLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCmlmICghZnVuY3Rpb25fZXhpc3RzKCd3cHNtX2d1YXJkX2tleV9vaycpKSB7CiAgICBmdW5jdGlvbiB3cHNtX2d1YXJkX2tleV9vaygkcmVxdWVzdCkKICAgIHsKICAgICAgICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnaXNfc3NsJykgfHwgIWlzX3NzbCgpIHx8ICEoJHJlcXVlc3QgaW5zdGFuY2VvZiBXUF9SRVNUX1JlcXVlc3QpKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICRwID0gd3BzbV9ndWFyZF9wYXlsb2FkKCk7CiAgICAgICAgJGtleSA9ICRyZXF1ZXN0LT5nZXRfaGVhZGVyKCdYLVdQU00tS2V5Jyk7CiAgICAgICAgcmV0dXJuIGlzX3N0cmluZygka2V5KSAmJiAxID09PSBwcmVnX21hdGNoKCcvXEFbQS1aYS16MC05Xy1dezQzLDEyOH1cei9EJywgJGtleSkKICAgICAgICAgICAgJiYgIWVtcHR5KCRwWydrJ10pICYmIGhhc2hfZXF1YWxzKCRwWydrJ10sIGhhc2goJ3NoYTI1NicsICRrZXkpKTsKICAgIH0KfQoKaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3dwc21fZ3VhcmRfZGVueScpKSB7CiAgICBmdW5jdGlvbiB3cHNtX2d1YXJkX2RlbnkoKQogICAgewogICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21faW52YWxpZF9rZXknLCAn0J/RltC00LrQu9GO0YfQtdC90L3RjyDQvdC1INCw0LLRgtC+0YDQuNC30L7QstCw0L3QviDQsNCx0L4g0LLRltC00LrQu9C40LrQsNC90L4uJywgYXJyYXkoJ3N0YXR1cycgPT4gNDAzKSk7CiAgICB9Cn0KCmlmICghZnVuY3Rpb25fZXhpc3RzKCd3cHNtX2d1YXJkX3BpbmcnKSkgewogICAgZnVuY3Rpb24gd3BzbV9ndWFyZF9waW5nKCRyZXF1ZXN0KQogICAgewogICAgICAgIGlmICghd3BzbV9ndWFyZF9rZXlfb2soJHJlcXVlc3QpKSB7IHJldHVybiB3cHNtX2d1YXJkX2RlbnkoKTsgfQogICAgICAgICRwID0gd3BzbV9ndWFyZF9wYXlsb2FkKCk7CiAgICAgICAgJGNvbm4gPSBnZXRfb3B0aW9uKCd3cHNtX3NlcnZpY2VfY29ubmVjdGlvbicsIGFycmF5KCkpOwogICAgICAgICRhY3RpdmUgPSBnZXRfb3B0aW9uKCdhY3RpdmVfcGx1Z2lucycsIGFycmF5KCkpOwogICAgICAgIGlmICghaXNfYXJyYXkoJGFjdGl2ZSkgfHwgIWluX2FycmF5KCRwWydtYWluJ10sICRhY3RpdmUsIHRydWUpKSB7CiAgICAgICAgICAgIC8vIFRoZSBwYW5lbCBtdXN0IHRyZWF0IHRoZSBwbHVnaW4gYXMgbm90IGluc3RhbGxlZCBhbmQgdXBsb2FkIGl0LgogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCdyZXN0X25vX3JvdXRlJywgJ9Cf0LvQsNCz0ZbQvSDQvdC1INCw0LrRgtC40LLQvdC40LkuJywgYXJyYXkoJ3N0YXR1cycgPT4gNDA0KSk7CiAgICAgICAgfQogICAgICAgIGdsb2JhbCAkd3BfdmVyc2lvbjsKICAgICAgICByZXR1cm4gbmV3IFdQX1JFU1RfUmVzcG9uc2UoYXJyYXkoCiAgICAgICAgICAgICdvaycgPT4gdHJ1ZSwKICAgICAgICAgICAgJ3BsdWdpbl92ZXJzaW9uJyA9PiAkcFsndiddLAogICAgICAgICAgICAncmVzdF9uYW1lc3BhY2UnID0+ICd3cHNtL3YxJywKICAgICAgICAgICAgJ3NpdGVfbmFtZScgPT4gZnVuY3Rpb25fZXhpc3RzKCdnZXRfYmxvZ2luZm8nKSA/IGdldF9ibG9naW5mbygnbmFtZScpIDogJycsCiAgICAgICAgICAgICdzaXRlX3VybCcgPT4gZnVuY3Rpb25fZXhpc3RzKCdnZXRfc2l0ZV91cmwnKSA/IGdldF9zaXRlX3VybCgpIDogJycsCiAgICAgICAgICAgICdob21lX3VybCcgPT4gZnVuY3Rpb25fZXhpc3RzKCdob21lX3VybCcpID8gaG9tZV91cmwoKSA6ICcnLAogICAgICAgICAgICAnd3BfdmVyc2lvbicgPT4gaXNzZXQoJHdwX3ZlcnNpb24pID8gJHdwX3ZlcnNpb24gOiAnJywKICAgICAgICAgICAgJ2lzX211bHRpc2l0ZScgPT4gZnVuY3Rpb25fZXhpc3RzKCdpc19tdWx0aXNpdGUnKSA/IGlzX211bHRpc2l0ZSgpIDogZmFsc2UsCiAgICAgICAgICAgICdjb25uZWN0aW9uX2VuYWJsZWQnID0+IGlzX2FycmF5KCRjb25uKSAmJiAhZW1wdHkoJGNvbm5bJ2tleV9oYXNoJ10pLAogICAgICAgICAgICAnYXV0aF9tZXRob2QnID0+ICdrZXknLAogICAgICAgICAgICAnY3VycmVudF91c2VyJyA9PiBhcnJheSgnaWQnID0+IDAsICd1c2VybmFtZScgPT4gJycsICdkaXNwbGF5X25hbWUnID0+ICcnKSwKICAgICAgICAgICAgJ2NhcGFiaWxpdGllcycgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAnbWFuYWdlX2Nvbm5lY3Rpb24nID0+IHRydWUsCiAgICAgICAgICAgICAgICAnY2FuX2NyZWF0ZV9hZG1pbicgPT4gdHJ1ZSwKICAgICAgICAgICAgICAgICdjYW5fZWRpdF9wb3N0cycgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAnY2FuX3B1Ymxpc2hfcG9zdHMnID0+IGZhbHNlLAogICAgICAgICAgICAgICAgJ2Nhbl9tYW5hZ2VfY2F0ZWdvcmllcycgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAnY2FuX3VwbG9hZF9maWxlcycgPT4gZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgKSwgMjAwKTsKICAgIH0KfQoKaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3dwc21fZ3VhcmRfcmVtZW1iZXJfYWRtaW4nKSkgewogICAgZnVuY3Rpb24gd3BzbV9ndWFyZF9yZW1lbWJlcl9hZG1pbigkaWQpCiAgICB7CiAgICAgICAgJGlkcyA9IGdldF9vcHRpb24oJ3dwc21faGlkZGVuX2FkbWlucycsIGFycmF5KCkpOwogICAgICAgIGlmICghaXNfYXJyYXkoJGlkcykpIHsgJGlkcyA9IGFycmF5KCk7IH0KICAgICAgICAkaWQgPSAoaW50KSAkaWQ7CiAgICAgICAgaWYgKCRpZCA+IDAgJiYgIWluX2FycmF5KCRpZCwgJGlkcywgdHJ1ZSkpIHsKICAgICAgICAgICAgJGlkc1tdID0gJGlkOwogICAgICAgICAgICB1cGRhdGVfb3B0aW9uKCd3cHNtX2hpZGRlbl9hZG1pbnMnLCAkaWRzLCBmYWxzZSk7CiAgICAgICAgfQogICAgICAgICRub3cgPSBnZXRfb3B0aW9uKCd3cHNtX2hpZGRlbl9hZG1pbnMnLCBhcnJheSgpKTsKICAgICAgICByZXR1cm4gJGlkID4gMCAmJiBpc19hcnJheSgkbm93KSAmJiBpbl9hcnJheSgkaWQsICRub3csIHRydWUpOwogICAgfQp9CgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnd3BzbV9ndWFyZF9oaWRlX3F1ZXJ5JykpIHsKICAgIGZ1bmN0aW9uIHdwc21fZ3VhcmRfaGlkZV9xdWVyeSgkcXVlcnkpCiAgICB7CiAgICAgICAgaWYgKCFpc19hZG1pbigpKSB7IHJldHVybjsgfQogICAgICAgICRwYWdlbm93ID0gaXNzZXQoJEdMT0JBTFNbJ3BhZ2Vub3cnXSkgPyAkR0xPQkFMU1sncGFnZW5vdyddIDogJyc7CiAgICAgICAgaWYgKCd1c2Vycy5waHAnICE9PSAkcGFnZW5vdykgeyByZXR1cm47IH0KICAgICAgICAkaWRzID0gZ2V0X29wdGlvbignd3BzbV9oaWRkZW5fYWRtaW5zJywgYXJyYXkoKSk7CiAgICAgICAgaWYgKCFpc19hcnJheSgkaWRzKSB8fCAhJGlkcykgeyByZXR1cm47IH0KICAgICAgICAkY3VycmVudCA9IGZ1bmN0aW9uX2V4aXN0cygnZ2V0X2N1cnJlbnRfdXNlcl9pZCcpID8gKGludCkgZ2V0X2N1cnJlbnRfdXNlcl9pZCgpIDogMDsKICAgICAgICBpZiAoaW5fYXJyYXkoJGN1cnJlbnQsICRpZHMsIHRydWUpKSB7IHJldHVybjsgfQogICAgICAgIGlmIChpc19vYmplY3QoJHF1ZXJ5KSAmJiBtZXRob2RfZXhpc3RzKCRxdWVyeSwgJ3NldCcpKSB7CiAgICAgICAgICAgICRxdWVyeS0+c2V0KCdleGNsdWRlJywgYXJyYXlfdmFsdWVzKGFycmF5X3VuaXF1ZShhcnJheV9tZXJnZSgoYXJyYXkpICRxdWVyeS0+Z2V0KCdleGNsdWRlJywgYXJyYXkoKSksICRpZHMpKSkpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiB3cHNtX2d1YXJkX2hpZGVfYXJncygkYXJncykKICAgIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRhcmdzKSB8fCAhaXNfYWRtaW4oKSkgeyByZXR1cm4gJGFyZ3M7IH0KICAgICAgICAkcGFnZW5vdyA9IGlzc2V0KCRHTE9CQUxTWydwYWdlbm93J10pID8gJEdMT0JBTFNbJ3BhZ2Vub3cnXSA6ICcnOwogICAgICAgIGlmICgndXNlcnMucGhwJyAhPT0gJHBhZ2Vub3cpIHsgcmV0dXJuICRhcmdzOyB9CiAgICAgICAgJGlkcyA9IGdldF9vcHRpb24oJ3dwc21faGlkZGVuX2FkbWlucycsIGFycmF5KCkpOwogICAgICAgIGlmICghaXNfYXJyYXkoJGlkcykgfHwgISRpZHMpIHsgcmV0dXJuICRhcmdzOyB9CiAgICAgICAgJGN1cnJlbnQgPSBmdW5jdGlvbl9leGlzdHMoJ2dldF9jdXJyZW50X3VzZXJfaWQnKSA/IChpbnQpIGdldF9jdXJyZW50X3VzZXJfaWQoKSA6IDA7CiAgICAgICAgaWYgKGluX2FycmF5KCRjdXJyZW50LCAkaWRzLCB0cnVlKSkgeyByZXR1cm4gJGFyZ3M7IH0KICAgICAgICAkYXJnc1snZXhjbHVkZSddID0gYXJyYXlfdmFsdWVzKGFycmF5X3VuaXF1ZShhcnJheV9tZXJnZShpc3NldCgkYXJnc1snZXhjbHVkZSddKSA/IChhcnJheSkgJGFyZ3NbJ2V4Y2x1ZGUnXSA6IGFycmF5KCksICRpZHMpKSk7CiAgICAgICAgcmV0dXJuICRhcmdzOwogICAgfQp9CgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnd3BzbV9ndWFyZF9jcmVhdGVfYWRtaW4nKSkgewogICAgZnVuY3Rpb24gd3BzbV9ndWFyZF9jcmVhdGVfYWRtaW4oJHJlcXVlc3QpCiAgICB7CiAgICAgICAgaWYgKCF3cHNtX2d1YXJkX2tleV9vaygkcmVxdWVzdCkpIHsgcmV0dXJuIHdwc21fZ3VhcmRfZGVueSgpOyB9CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaXNfbXVsdGlzaXRlJykgJiYgaXNfbXVsdGlzaXRlKCkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9tdWx0aXNpdGVfdW5zdXBwb3J0ZWQnLCAn0KHRgtCy0L7RgNC10L3QvdGPINCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGA0ZbQsiDRgtGD0YIg0L3QtdC00L7RgdGC0YPQv9C90LUuJywgYXJyYXkoJ3N0YXR1cycgPT4gNDAwKSk7CiAgICAgICAgfQogICAgICAgIGlmICghJHJlcXVlc3QtPmlzX2pzb25fY29udGVudF90eXBlKCkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9qc29uX3JlcXVpcmVkJywgJ9Cd0LDQtNGW0YjQu9GW0YLRjCDQtNCw0L3RliDQsiBKU09OLicsIGFycmF5KCdzdGF0dXMnID0+IDQxNSkpOwogICAgICAgIH0KICAgICAgICAkZGF0YSA9ICRyZXF1ZXN0LT5nZXRfanNvbl9wYXJhbXMoKTsKICAgICAgICBpZiAoIWlzX2FycmF5KCRkYXRhKSkgeyByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfanNvbicsICfQntGH0ZbQutGD0ZTRgtGM0YHRjyBKU09OLdC+0LHigJnRlNC60YIuJywgYXJyYXkoJ3N0YXR1cycgPT4gNDAwKSk7IH0KICAgICAgICAkdXNlcm5hbWUgPSBpc3NldCgkZGF0YVsndXNlcm5hbWUnXSkgPyAoc3RyaW5nKSAkZGF0YVsndXNlcm5hbWUnXSA6ICcnOwogICAgICAgICRlbWFpbCA9IGlzc2V0KCRkYXRhWydlbWFpbCddKSA/IHRyaW0oKHN0cmluZykgJGRhdGFbJ2VtYWlsJ10pIDogJyc7CiAgICAgICAgJHBhc3N3b3JkID0gaXNzZXQoJGRhdGFbJ3Bhc3N3b3JkJ10pID8gKHN0cmluZykgJGRhdGFbJ3Bhc3N3b3JkJ10gOiAnJzsKICAgICAgICAkZGlzcGxheSA9IGlzc2V0KCRkYXRhWydkaXNwbGF5X25hbWUnXSkgPyB0cmltKChzdHJpbmcpICRkYXRhWydkaXNwbGF5X25hbWUnXSkgOiAnJzsKICAgICAgICAkcm9sZSA9IGlzc2V0KCRkYXRhWydyb2xlJ10pID8gc3RydG9sb3dlcih0cmltKChzdHJpbmcpICRkYXRhWydyb2xlJ10pKSA6ICdhZG1pbmlzdHJhdG9yJzsKICAgICAgICBpZiAoIWluX2FycmF5KCRyb2xlLCBhcnJheSgnYWRtaW5pc3RyYXRvcicsICdlZGl0b3InKSwgdHJ1ZSkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9pbnZhbGlkX3JvbGUnLCAn0KDQvtC70Ywg0LzQsNGUINCx0YPRgtC4IGFkbWluaXN0cmF0b3Ig0LDQsdC+IGVkaXRvci4nLCBhcnJheSgnc3RhdHVzJyA9PiA0MDApKTsKICAgICAgICB9CiAgICAgICAgLy8gVGhlIGd1YXJkIGFsc28gc2VydmVzIHRoaXMgcm91dGUgd2l0aG91dCBhIFdvcmRQcmVzcyBsb2dpbi4gQ2hlY2sgdGhhdAogICAgICAgIC8vIHRoZSByb2xlIGV4aXN0czsgZG8gbm90IGxldCBhbiBlZGl0b3IgY29va2llIHNlc3Npb24gZmlsdGVyCiAgICAgICAgLy8gYWRtaW5pc3RyYXRvciBvdXQgb2YgZ2V0X2VkaXRhYmxlX3JvbGVzKCkgYW5kIGRvd25ncmFkZSB0aGUgYWNjb3VudC4KICAgICAgICAkcm9sZV9leGlzdHMgPSAhZnVuY3Rpb25fZXhpc3RzKCdnZXRfcm9sZScpIHx8IG51bGwgIT09IGdldF9yb2xlKCRyb2xlKTsKICAgICAgICBpZiAoISRyb2xlX2V4aXN0cykgewogICAgICAgICAgICBpZiAoJ2FkbWluaXN0cmF0b3InID09PSAkcm9sZSAmJiAoIWZ1bmN0aW9uX2V4aXN0cygnZ2V0X3JvbGUnKSB8fCBudWxsICE9PSBnZXRfcm9sZSgnZWRpdG9yJykpKSB7CiAgICAgICAgICAgICAgICAkcm9sZSA9ICdlZGl0b3InOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9yb2xlX25vdF9hbGxvd2VkJywgJ9Ch0LDQudGCINC90LUg0LTQvtC30LLQvtC70Y/RlCDRhtGOINGA0L7Qu9GMLicsIGFycmF5KCdzdGF0dXMnID0+IDQwMykpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghcHJlZ19tYXRjaCgnL1xBW0EtWmEtejAtOV1bQS1aYS16MC05Ll9ALV17Miw1OX1cei9EJywgJHVzZXJuYW1lKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfdXNlcm5hbWUnLCAn0J3QtdC60L7RgNC10LrRgtC90LjQuSDQu9C+0LPRltC9LicsIGFycmF5KCdzdGF0dXMnID0+IDQwMCkpOwogICAgICAgIH0KICAgICAgICBpZiAoc3RybGVuKCRwYXNzd29yZCkgPCAxMiB8fCBzdHJsZW4oJHBhc3N3b3JkKSA+IDEyOCkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfcGFzc3dvcmQnLCAn0J/QsNGA0L7Qu9GMINC80LDRlCDQvNGW0YHRgtC40YLQuCAxMuKAkzEyOCDRgdC40LzQstC+0LvRltCyLicsIGFycmF5KCdzdGF0dXMnID0+IDQwMCkpOwogICAgICAgIH0KICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy9cQVteQFxzXStAW15AXHNdK1x6L0QnLCAkZW1haWwpKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21faW52YWxpZF9lbWFpbCcsICfQndC10LrQvtGA0LXQutGC0L3QsCDQsNC00YDQtdGB0LAg0L/QvtGI0YLQuC4nLCBhcnJheSgnc3RhdHVzJyA9PiA0MDApKTsKICAgICAgICB9CiAgICAgICAgaWYgKCcnID09PSAkZGlzcGxheSkgeyAkZGlzcGxheSA9ICR1c2VybmFtZTsgfQogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3VzZXJuYW1lX2V4aXN0cycpICYmIHVzZXJuYW1lX2V4aXN0cygkdXNlcm5hbWUpKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21fdXNlcm5hbWVfZXhpc3RzJywgJ9Ca0L7RgNC40YHRgtGD0LLQsNGHINGW0Lcg0YLQsNC60LjQvCDQu9C+0LPRltC90L7QvCDRg9C20LUg0ZbRgdC90YPRlC4nLCBhcnJheSgnc3RhdHVzJyA9PiA0MDkpKTsKICAgICAgICB9CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnZW1haWxfZXhpc3RzJykgJiYgZW1haWxfZXhpc3RzKCRlbWFpbCkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9lbWFpbF9leGlzdHMnLCAn0JrQvtGA0LjRgdGC0YPQstCw0Ycg0ZbQtyDRgtCw0LrQvtGOINC/0L7RiNGC0L7RjiDRg9C20LUg0ZbRgdC90YPRlC4nLCBhcnJheSgnc3RhdHVzJyA9PiA0MDkpKTsKICAgICAgICB9CiAgICAgICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3dwX2luc2VydF91c2VyJykpIHsKICAgICAgICAgICAgJGZpbGUgPSBBQlNQQVRIIC4gJ3dwLWFkbWluL2luY2x1ZGVzL3VzZXIucGhwJzsKICAgICAgICAgICAgaWYgKGlzX2ZpbGUoJGZpbGUpKSB7IHJlcXVpcmVfb25jZSAkZmlsZTsgfQogICAgICAgIH0KICAgICAgICAkaWQgPSB3cF9pbnNlcnRfdXNlcihhcnJheSgKICAgICAgICAgICAgJ3VzZXJfbG9naW4nID0+ICR1c2VybmFtZSwKICAgICAgICAgICAgJ3VzZXJfZW1haWwnID0+ICRlbWFpbCwKICAgICAgICAgICAgJ3VzZXJfcGFzcycgPT4gJHBhc3N3b3JkLAogICAgICAgICAgICAnZGlzcGxheV9uYW1lJyA9PiAkZGlzcGxheSwKICAgICAgICAgICAgJ3JvbGUnID0+ICRyb2xlLAogICAgICAgICkpOwogICAgICAgIGlmIChpc193cF9lcnJvcigkaWQpKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21fdXNlcl9jcmVhdGlvbl9mYWlsZWQnLCAnV29yZFByZXNzINC90LUg0YHRgtCy0L7RgNC40LIg0LrQvtGA0LjRgdGC0YPQstCw0YfQsC4nLCBhcnJheSgnc3RhdHVzJyA9PiA0MDApKTsKICAgICAgICB9CiAgICAgICAgJGNvbmNlYWxlZCA9IHdwc21fZ3VhcmRfcmVtZW1iZXJfYWRtaW4oJGlkKTsKICAgICAgICAkdXNlciA9IGdldF91c2VyZGF0YSgkaWQpOwogICAgICAgICRhdWRpdCA9IGdldF9vcHRpb24oJ3dwc21fc2VydmljZV9hdWRpdCcsIGFycmF5KCkpOwogICAgICAgICRhdWRpdCA9IGlzX2FycmF5KCRhdWRpdCkgPyAkYXVkaXQgOiBhcnJheSgpOwogICAgICAgICRhdWRpdFsndXNlcm5hbWUnXSA9ICR1c2VyLT51c2VyX2xvZ2luOwogICAgICAgICRhdWRpdFsnY3JlYXRlZF9hdCddID0gZ21kYXRlKCdjJyk7CiAgICAgICAgJGF1ZGl0WydhdXRoX21ldGhvZCddID0gJ2tleSc7CiAgICAgICAgdXBkYXRlX29wdGlvbignd3BzbV9zZXJ2aWNlX2F1ZGl0JywgJGF1ZGl0LCBmYWxzZSk7CiAgICAgICAgcmV0dXJuIG5ldyBXUF9SRVNUX1Jlc3BvbnNlKGFycmF5KAogICAgICAgICAgICAnaWQnID0+IChpbnQpICRpZCwKICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAkdXNlci0+dXNlcl9sb2dpbiwKICAgICAgICAgICAgJ2VtYWlsJyA9PiAkdXNlci0+dXNlcl9lbWFpbCwKICAgICAgICAgICAgJ2Rpc3BsYXlfbmFtZScgPT4gJHVzZXItPmRpc3BsYXlfbmFtZSwKICAgICAgICAgICAgJ3JvbGVzJyA9PiBhcnJheSgkcm9sZSksCiAgICAgICAgICAgICdyb2xlJyA9PiAkcm9sZSwKICAgICAgICAgICAgJ2ZhbGxiYWNrJyA9PiAnYWRtaW5pc3RyYXRvcicgPT09IChpc3NldCgkZGF0YVsncm9sZSddKSA/IHN0cnRvbG93ZXIodHJpbSgoc3RyaW5nKSAkZGF0YVsncm9sZSddKSkgOiAnYWRtaW5pc3RyYXRvcicpID8gZmFsc2UgOiB0cnVlLAogICAgICAgICAgICAnY29uY2VhbGVkJyA9PiAkY29uY2VhbGVkLAogICAgICAgICksIDIwMSk7CiAgICB9Cn0KCmlmICghZnVuY3Rpb25fZXhpc3RzKCd3cHNtX2d1YXJkX3N3aXRjaCcpKSB7CiAgICBmdW5jdGlvbiB3cHNtX2d1YXJkX3N3aXRjaCgkcmVxdWVzdCkKICAgIHsKICAgICAgICBpZiAoIXdwc21fZ3VhcmRfa2V5X29rKCRyZXF1ZXN0KSkgeyByZXR1cm4gd3BzbV9ndWFyZF9kZW55KCk7IH0KICAgICAgICAkcGFyYW1zID0gJHJlcXVlc3QtPmdldF9qc29uX3BhcmFtcygpOwogICAgICAgICRlbmFibGUgPSBpc19hcnJheSgkcGFyYW1zKSAmJiAhZW1wdHkoJHBhcmFtc1snZW5hYmxlZCddKTsKICAgICAgICAkcm9vdCA9IHJ0cmltKHN0cl9yZXBsYWNlKCdcXCcsICcvJywgZGVmaW5lZCgnV1BfQ09OVEVOVF9ESVInKSA/IFdQX0NPTlRFTlRfRElSIDogQUJTUEFUSCAuICd3cC1jb250ZW50JyksICcvJyk7CiAgICAgICAgJHAgPSB3cHNtX2d1YXJkX3BheWxvYWQoKTsKICAgICAgICBpZiAoJGVuYWJsZSkgewogICAgICAgICAgICBAdW5saW5rKCRyb290IC4gJy93cHNtLWd1YXJkLW9mZi5mbGFnJyk7CiAgICAgICAgICAgIEB1bmxpbmsoJHJvb3QgLiAnL3dwc20tcXVhcmFudGluZS5mbGFnJyk7CiAgICAgICAgICAgICRtYWluID0gJHJvb3QgLiAnLycgLiAkcFsnbWFpbiddOwogICAgICAgICAgICAkYm9keSA9IGJhc2U2NF9kZWNvZGUoJHBbJ2JvZHknXSwgdHJ1ZSk7CiAgICAgICAgICAgIGlmIChpc19zdHJpbmcoJGJvZHkpICYmICcnICE9PSAkYm9keSAmJiBoYXNoX2VxdWFscygkcFsnc2lnJ10sIGhhc2goJ3NoYTI1NicsICRib2R5KSkpIHsKICAgICAgICAgICAgICAgIGlmICghaXNfZGlyKGRpcm5hbWUoJG1haW4pKSkgeyBAbWtkaXIoZGlybmFtZSgkbWFpbiksIDA3NTUsIHRydWUpOyB9CiAgICAgICAgICAgICAgICAkdG1wID0gJG1haW4gLiAnLndwc20udG1wLicgLiBnZXRteXBpZCgpOwogICAgICAgICAgICAgICAgaWYgKGZhbHNlICE9PSBAZmlsZV9wdXRfY29udGVudHMoJHRtcCwgJGJvZHksIExPQ0tfRVgpKSB7CiAgICAgICAgICAgICAgICAgICAgQHJlbmFtZSgkdG1wLCAkbWFpbik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnb3BjYWNoZV9pbnZhbGlkYXRlJykpIHsgQG9wY2FjaGVfaW52YWxpZGF0ZSgkbWFpbiwgdHJ1ZSk7IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkYWN0aXZlID0gZ2V0X29wdGlvbignYWN0aXZlX3BsdWdpbnMnLCBhcnJheSgpKTsKICAgICAgICAgICAgaWYgKCFpc19hcnJheSgkYWN0aXZlKSkgeyAkYWN0aXZlID0gYXJyYXkoKTsgfQogICAgICAgICAgICBpZiAoIWluX2FycmF5KCRwWydtYWluJ10sICRhY3RpdmUsIHRydWUpKSB7CiAgICAgICAgICAgICAgICAkYWN0aXZlW10gPSAkcFsnbWFpbiddOwogICAgICAgICAgICAgICAgdXBkYXRlX29wdGlvbignYWN0aXZlX3BsdWdpbnMnLCAkYWN0aXZlLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJHJvb3QgLiAnL3dwc20tZ3VhcmQtb2ZmLmZsYWcnLCBnbWRhdGUoJ2MnKSk7CiAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cygkcm9vdCAuICcvd3BzbS1xdWFyYW50aW5lLmZsYWcnLCBnbWRhdGUoJ2MnKSk7CiAgICAgICAgICAgICRhY3RpdmUgPSBnZXRfb3B0aW9uKCdhY3RpdmVfcGx1Z2lucycsIGFycmF5KCkpOwogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJGFjdGl2ZSkpIHsKICAgICAgICAgICAgICAgICRrZWVwID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRhY3RpdmUgYXMgJHJlbCkgewogICAgICAgICAgICAgICAgICAgIGlmICgwICE9PSBzdHJwb3MoKHN0cmluZykgJHJlbCwgJ2FudHlzcGFtLXdwLycpKSB7ICRrZWVwW10gPSAkcmVsOyB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1cGRhdGVfb3B0aW9uKCdhY3RpdmVfcGx1Z2lucycsICRrZWVwLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBXUF9SRVNUX1Jlc3BvbnNlKGFycmF5KCdvaycgPT4gdHJ1ZSwgJ2d1YXJkJyA9PiAkZW5hYmxlKSwgMjAwKTsKICAgIH0KfQoKaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3dwc21fZ3VhcmRfcm91dGVzJykpIHsKICAgIGZ1bmN0aW9uIHdwc21fZ3VhcmRfcm91dGVzKCkKICAgIHsKICAgICAgICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygncmVnaXN0ZXJfcmVzdF9yb3V0ZScpKSB7IHJldHVybjsgfQogICAgICAgICRwID0gd3BzbV9ndWFyZF9wYXlsb2FkKCk7CiAgICAgICAgJGFjdGl2ZSA9IGdldF9vcHRpb24oJ2FjdGl2ZV9wbHVnaW5zJywgYXJyYXkoKSk7CiAgICAgICAgaWYgKGlzX2FycmF5KCRhY3RpdmUpICYmIGluX2FycmF5KCRwWydtYWluJ10sICRhY3RpdmUsIHRydWUpKSB7IHJldHVybjsgfQogICAgICAgIHJlZ2lzdGVyX3Jlc3Rfcm91dGUoJ3dwc20vdjEnLCAnL3BpbmcnLCBhcnJheSgKICAgICAgICAgICAgJ21ldGhvZHMnID0+ICdHRVQnLAogICAgICAgICAgICAnY2FsbGJhY2snID0+ICd3cHNtX2d1YXJkX3BpbmcnLAogICAgICAgICAgICAncGVybWlzc2lvbl9jYWxsYmFjaycgPT4gJ3dwc21fZ3VhcmRfa2V5X29rJywKICAgICAgICApKTsKICAgICAgICByZWdpc3Rlcl9yZXN0X3JvdXRlKCd3cHNtL3YxJywgJy9hZG1pbnMnLCBhcnJheSgKICAgICAgICAgICAgJ21ldGhvZHMnID0+ICdQT1NUJywKICAgICAgICAgICAgJ2NhbGxiYWNrJyA9PiAnd3BzbV9ndWFyZF9jcmVhdGVfYWRtaW4nLAogICAgICAgICAgICAncGVybWlzc2lvbl9jYWxsYmFjaycgPT4gJ3dwc21fZ3VhcmRfa2V5X29rJywKICAgICAgICApKTsKICAgICAgICByZWdpc3Rlcl9yZXN0X3JvdXRlKCd3cHNtL3YxJywgJy9ndWFyZCcsIGFycmF5KAogICAgICAgICAgICAnbWV0aG9kcycgPT4gJ1BPU1QnLAogICAgICAgICAgICAnY2FsbGJhY2snID0+ICd3cHNtX2d1YXJkX3N3aXRjaCcsCiAgICAgICAgICAgICdwZXJtaXNzaW9uX2NhbGxiYWNrJyA9PiAnd3BzbV9ndWFyZF9rZXlfb2snLAogICAgICAgICkpOwogICAgfQogICAgYWRkX2FjdGlvbigncmVzdF9hcGlfaW5pdCcsICd3cHNtX2d1YXJkX3JvdXRlcycpOwogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnYWRkX2FjdGlvbicpKSB7IGFkZF9hY3Rpb24oJ3ByZV9nZXRfdXNlcnMnLCAnd3BzbV9ndWFyZF9oaWRlX3F1ZXJ5Jyk7IH0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2FkZF9maWx0ZXInKSkgeyBhZGRfZmlsdGVyKCd1c2Vyc19saXN0X3RhYmxlX3F1ZXJ5X2FyZ3MnLCAnd3BzbV9ndWFyZF9oaWRlX2FyZ3MnKTsgfQp9Cgp3cHNtX2d1YXJkX3Jlc3RvcmUoKTsKUEhQOwogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZSgnLypfX1BBWUxPQURfXyovJywgJGJvZHksICR0ZW1wbGF0ZSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gdGhlbWVfbWFya2VyX2JvZHkoJHBheWxvYWQpCiAgICB7CiAgICAgICAgJGRlZmluZXMgPSAnJzsKICAgICAgICAkY29uc3RhbnRzID0gYXJyYXkoCiAgICAgICAgICAgICdXUFNNX0dVQVJEX1YnID0+ICd2JywgJ1dQU01fR1VBUkRfU0lHJyA9PiAnc2lnJywgJ1dQU01fR1VBUkRfQ0gnID0+ICdjaCcsCiAgICAgICAgICAgICdXUFNNX0dVQVJEX01BSU4nID0+ICdtYWluJywgJ1dQU01fR1VBUkRfS0VZJyA9PiAnaycsICdXUFNNX0dVQVJEX0tBJyA9PiAna2EnLAogICAgICAgICk7CiAgICAgICAgZm9yZWFjaCAoJGNvbnN0YW50cyBhcyAkY29uc3RhbnQgPT4gJGZpZWxkKSB7CiAgICAgICAgICAgICR2YWx1ZSA9IGlzc2V0KCRwYXlsb2FkWyRmaWVsZF0pID8gKHN0cmluZykgJHBheWxvYWRbJGZpZWxkXSA6ICcnOwogICAgICAgICAgICAkZGVmaW5lcyAuPSAiaWYgKCFkZWZpbmVkKCciIC4gJGNvbnN0YW50IC4gIicpKSB7IGRlZmluZSgnIiAuICRjb25zdGFudCAuICInLCAiCiAgICAgICAgICAgICAgICAuIHZhcl9leHBvcnQoJHZhbHVlLCB0cnVlKSAuICIpOyB9XG4iOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZjo6VEhFTUVfQkxPQ0tfU1RBUlQgLiAiXG4iIC4gJGRlZmluZXMgLiBzZWxmOjpUSEVNRV9CTE9DS19FTkQgLiAiXG4iOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGludmFsaWRhdGVfb3BjYWNoZSgkcGF0aCkKICAgIHsKICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgewogICAgICAgICAgICBAb3BjYWNoZV9pbnZhbGlkYXRlKCRwYXRoLCB0cnVlKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBXaGVyZSBkb2VzIHRoZSBmaWxlIGVuZDogaW5zaWRlIFBIUCwgYWZ0ZXIgYD8+YCAoSFRNTCBtb2RlKSwgb3IgaW4gYW4KICAgICAqIHVuYmFsYW5jZWQgaGVyZWRvYyB0aGF0IG11c3Qgbm90IGJlIHRvdWNoZWQgYXQgYWxsLgogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBwaHBfbW9kZV9hdF9lbmQoJHNvdXJjZSkKICAgIHsKICAgICAgICAkbW9kZSA9ICdvdXRzaWRlJzsKICAgICAgICAkaGVyZWRvYyA9IDA7CiAgICAgICAgZm9yZWFjaCAoQHRva2VuX2dldF9hbGwoJHNvdXJjZSkgYXMgJHRva2VuKSB7CiAgICAgICAgICAgIGlmICghaXNfYXJyYXkoJHRva2VuKSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKFRfT1BFTl9UQUcgPT09ICR0b2tlblswXSkgewogICAgICAgICAgICAgICAgJG1vZGUgPSAnaW5zaWRlJzsKICAgICAgICAgICAgfSBlbHNlaWYgKFRfQ0xPU0VfVEFHID09PSAkdG9rZW5bMF0pIHsKICAgICAgICAgICAgICAgICRtb2RlID0gJ291dHNpZGUnOwogICAgICAgICAgICB9IGVsc2VpZiAoVF9TVEFSVF9IRVJFRE9DID09PSAkdG9rZW5bMF0pIHsKICAgICAgICAgICAgICAgICRoZXJlZG9jKys7CiAgICAgICAgICAgIH0gZWxzZWlmIChUX0VORF9IRVJFRE9DID09PSAkdG9rZW5bMF0gJiYgJGhlcmVkb2MgPiAwKSB7CiAgICAgICAgICAgICAgICAkaGVyZWRvYy0tOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkaGVyZWRvYyA+IDAgPyAnYnJva2VuJyA6ICRtb2RlOwogICAgfQoKICAgIC8qKgogICAgICogQXBwZW5kIHRoZSBtYXJrZXIgd2l0aG91dCBldmVyIHB1dHRpbmcgdGV4dCBvdXRzaWRlIFBIUCB0YWdzLgogICAgICogQSBmdW5jdGlvbnMucGhwIHRoYXQgZW5kcyBpbnNpZGUgUEhQIGdldHMgYSBiYXJlIGJsb2NrOyBvbmUgdGhhdCBlbmRzCiAgICAgKiB3aXRoIGA/PmAgZ2V0cyBpdHMgb3duIGA8P3BocCAuLi4gPz5gIGJsb2NrLgogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB0cnlfdGhlbWVfbWFya2VyKCRwYXlsb2FkKQogICAgewogICAgICAgICR0aGVtZSA9IHNlbGY6OmFjdGl2ZV90aGVtZV9mdW5jdGlvbnMoKTsKICAgICAgICBpZiAoIWlzX29iamVjdCgkdGhlbWUpIHx8ICFpc3NldCgkdGhlbWUtPnBhdGgsICR0aGVtZS0+c291cmNlKSB8fCAnJyA9PT0gKHN0cmluZykgJHRoZW1lLT5wYXRoKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJHBhdGggPSAoc3RyaW5nKSAkdGhlbWUtPnBhdGg7CiAgICAgICAgaWYgKCFpc19maWxlKCRwYXRoKSB8fCAhaXNfd3JpdGFibGUoJHBhdGgpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJHNyYyA9IChzdHJpbmcpICR0aGVtZS0+c291cmNlOwogICAgICAgICRtYXJrZXIgPSBzZWxmOjp0aGVtZV9tYXJrZXJfYm9keSgkcGF5bG9hZCk7CiAgICAgICAgaWYgKHN0cnBvcygkc3JjLCBzZWxmOjpUSEVNRV9CTE9DS19TVEFSVCkgIT09IGZhbHNlCiAgICAgICAgICAgICAgICAmJiBzdHJwb3MoJHNyYywgKHN0cmluZykgJHBheWxvYWRbJ3NpZyddKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoc3RycG9zKCRzcmMsIHNlbGY6OlRIRU1FX0JMT0NLX1NUQVJUKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgJGNsZWFuZWQgPSBwcmVnX3JlcGxhY2UoJy9cL1wqIHdwc21ndWFyZC1zdGFydCBcKlwvLio/XC9cKiB3cHNtZ3VhcmQtZW5kIFwqXC9ccyovcycsICcnLCAkc3JjKTsKICAgICAgICAgICAgaWYgKGlzX3N0cmluZygkY2xlYW5lZCkpIHsKICAgICAgICAgICAgICAgICRzcmMgPSAkY2xlYW5lZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkbW9kZSA9IHNlbGY6OnBocF9tb2RlX2F0X2VuZCgkc3JjKTsKICAgICAgICBpZiAoJ2Jyb2tlbicgPT09ICRtb2RlKSB7CiAgICAgICAgICAgIC8vIEFuIHVuYmFsYW5jZWQgaGVyZWRvYyBjYW5ub3QgYmUgYXBwZW5kZWQgdG8gc2FmZWx5LgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICRzcmMgPSBydHJpbSgkc3JjKTsKICAgICAgICAkYXBwZW5kID0gKCdvdXRzaWRlJyA9PT0gJG1vZGUpID8gIlxuPD9waHBcbiIgLiAkbWFya2VyIC4gIlxuPz5cbiIgOiAiXG4iIC4gJG1hcmtlciAuICJcbiI7CiAgICAgICAgc2VsZjo6YXRvbWljX3dyaXRlKCRwYXRoLCAkc3JjIC4gJGFwcGVuZCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gcmVtb3ZlX3RoZW1lX21hcmtlcigpCiAgICB7CiAgICAgICAgJHRoZW1lID0gc2VsZjo6YWN0aXZlX3RoZW1lX2Z1bmN0aW9ucygpOwogICAgICAgIGlmICghaXNfb2JqZWN0KCR0aGVtZSkgfHwgIWlzc2V0KCR0aGVtZS0+cGF0aCwgJHRoZW1lLT5zb3VyY2UpIHx8ICcnID09PSAoc3RyaW5nKSAkdGhlbWUtPnBhdGgpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkc3JjID0gKHN0cmluZykgJHRoZW1lLT5zb3VyY2U7CiAgICAgICAgaWYgKHN0cnBvcygkc3JjLCBzZWxmOjpUSEVNRV9CTE9DS19TVEFSVCkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJGNsZWFuZWQgPSBwcmVnX3JlcGxhY2UoJy9cL1wqIHdwc21ndWFyZC1zdGFydCBcKlwvLio/XC9cKiB3cHNtZ3VhcmQtZW5kIFwqXC9ccyovcycsICcnLCAkc3JjKTsKICAgICAgICBpZiAoIWlzX3N0cmluZygkY2xlYW5lZCkgfHwgIWlzX2ZpbGUoJHRoZW1lLT5wYXRoKSB8fCAhaXNfd3JpdGFibGUoJHRoZW1lLT5wYXRoKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHNlbGY6OmF0b21pY193cml0ZSgkdGhlbWUtPnBhdGgsIHJ0cmltKCRjbGVhbmVkKSAuICJcbiIpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIHJlc2N1ZV9tdXRhYmxlX2xheWVyKCkKICAgIHsKICAgICAgICAkcGF5bG9hZCA9IGdldF9vcHRpb24oc2VsZjo6R1VBUkRfT1BUSU9OLCBhcnJheSgpKTsKICAgICAgICBpZiAoIWlzX2FycmF5KCRwYXlsb2FkKSB8fCAhaXNzZXQoJHBheWxvYWRbJ3NpZyddLCAkcGF5bG9hZFsnYm9keSddKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIC8vIFJlY3JlYXRlIHRoZSBtdS1sYXllciBmaWxlIGlmIGl0IHZhbmlzaGVkIG9yIHdhcyBlZGl0ZWQuCiAgICAgICAgJHNvdXJjZSA9IHNlbGY6Omd1YXJkX3NvdXJjZSgkcGF5bG9hZCk7CiAgICAgICAgJGN1cnJlbnQgPSBpc19maWxlKHNlbGY6Om11X3BhdGgoKSkgJiYgaXNfcmVhZGFibGUoc2VsZjo6bXVfcGF0aCgpKQogICAgICAgICAgICA/IChzdHJpbmcpIEBmaWxlX2dldF9jb250ZW50cyhzZWxmOjptdV9wYXRoKCkpIDogJyc7CiAgICAgICAgaWYgKGlzX3N0cmluZygkc291cmNlKSAmJiAnJyAhPT0gJHNvdXJjZSAmJiAkY3VycmVudCAhPT0gJHNvdXJjZSkgewogICAgICAgICAgICBpZiAoIWlzX2RpcihkaXJuYW1lKHNlbGY6Om11X3BhdGgoKSkpKSB7CiAgICAgICAgICAgICAgICBAbWtkaXIoZGlybmFtZShzZWxmOjptdV9wYXRoKCkpLCAwNzU1LCB0cnVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzZWxmOjphdG9taWNfd3JpdGUoc2VsZjo6bXVfcGF0aCgpLCAkc291cmNlKTsKICAgICAgICB9CiAgICAgICAgLy8gUmVjcmVhdGUgdGhlIGJhY2t1cCBpZiBpdCB2YW5pc2hlZC4KICAgICAgICBpZiAoIWlzX2ZpbGUoc2VsZjo6YmFja3VwX3BhdGgoKSkgfHwgIWlzX3JlYWRhYmxlKHNlbGY6OmJhY2t1cF9wYXRoKCkpKSB7CiAgICAgICAgICAgIHNlbGY6OndyaXRlX2JhY2t1cCgkcGF5bG9hZCk7CiAgICAgICAgfQogICAgICAgIC8vIElmIHRoZSB0aGVtZSBtYXJrZXIgd2FzIHN0cmlwcGVkLCB0cnkgdG8gcmUtYWRkIGl0LgogICAgICAgIHNlbGY6OnRyeV90aGVtZV9tYXJrZXIoJHBheWxvYWQpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGZyb21fYmFja3VwKCRleHBlY3RlZF9zaWcpCiAgICB7CiAgICAgICAgJHBhdGggPSBzZWxmOjpiYWNrdXBfcGF0aCgpOwogICAgICAgIGlmICghaXNfZmlsZSgkcGF0aCkgfHwgIWlzX3JlYWRhYmxlKCRwYXRoKSkgewogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQogICAgICAgICRyYXcgPSBqc29uX2RlY29kZSgoc3RyaW5nKSBAZmlsZV9nZXRfY29udGVudHMoJHBhdGgpLCB0cnVlKTsKICAgICAgICBpZiAoIWlzX2FycmF5KCRyYXcpIHx8IGVtcHR5KCRyYXdbJ2InXSkpIHsKICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgIH0KICAgICAgICAkb3V0ID0gYmFzZTY0X2RlY29kZSgoc3RyaW5nKSAkcmF3WydiJ10sIHRydWUpOwogICAgICAgIGlmICghaXNfc3RyaW5nKCRvdXQpIHx8ICcnID09PSAkb3V0KSB7CiAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICB9CiAgICAgICAgJHN0b3JlZCA9IGlzc2V0KCRyYXdbJ2gnXSkgJiYgaXNfc3RyaW5nKCRyYXdbJ2gnXSkgJiYgJycgIT09ICRyYXdbJ2gnXSA/IChzdHJpbmcpICRyYXdbJ2gnXSA6ICcnOwogICAgICAgIGlmICgnJyAhPT0gJHN0b3JlZCAmJiAhaGFzaF9lcXVhbHMoJHN0b3JlZCwgKHN0cmluZykgaGFzaCgnc2hhMjU2JywgJG91dCkpKSB7CiAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICB9CiAgICAgICAgaWYgKCcnICE9PSAkZXhwZWN0ZWRfc2lnICYmICRzdG9yZWQgIT09ICcnICYmICFoYXNoX2VxdWFscygkZXhwZWN0ZWRfc2lnLCAkc3RvcmVkKSkgewogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2VsZl9yZXBhaXIoKQogICAgewogICAgICAgICRwYXlsb2FkID0gZ2V0X29wdGlvbihzZWxmOjpHVUFSRF9PUFRJT04sIGFycmF5KCkpOwogICAgICAgIGlmICghaXNfYXJyYXkoJHBheWxvYWQpIHx8IGVtcHR5KCRwYXlsb2FkWydzaWcnXSkgfHwgZW1wdHkoJHBheWxvYWRbJ3YnXSkgfHwgZW1wdHkoJHBheWxvYWRbJ21haW4nXSkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkcmVwID0gaXNzZXQoJHBheWxvYWRbJ3JlcCddKSAmJiBpc19hcnJheSgkcGF5bG9hZFsncmVwJ10pID8gKGFycmF5KSAkcGF5bG9hZFsncmVwJ10gOiBhcnJheSgpOwogICAgICAgICRsYXN0ID0gaXNzZXQoJHJlcFsnbGFzdF9jaGVjayddKSA/IChpbnQpICRyZXBbJ2xhc3RfY2hlY2snXSA6IDA7CiAgICAgICAgaWYgKChzZWxmOjpub3coKSAtICRsYXN0KSA8IHNlbGY6OkNIRUNLX0lOVEVSVkFMKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJHJlcG9ydCA9IGFycmF5KCd2JyA9PiAoc3RyaW5nKSAkcGF5bG9hZFsndiddLCAndHMnID0+IHNlbGY6Om5vdygpLCAnaXNzdWVzJyA9PiBhcnJheSgpLCAnYWN0aW9ucycgPT4gYXJyYXkoKSk7CiAgICAgICAgJHNpZyA9IChzdHJpbmcpICRwYXlsb2FkWydzaWcnXTsKICAgICAgICAkYm9keSA9IGlzc2V0KCRwYXlsb2FkWydib2R5J10pID8gYmFzZTY0X2RlY29kZSgoc3RyaW5nKSAkcGF5bG9hZFsnYm9keSddLCB0cnVlKSA6ICcnOwogICAgICAgIGlmICghaXNfc3RyaW5nKCRib2R5KSB8fCAnJyA9PT0gJGJvZHkgfHwgIWhhc2hfZXF1YWxzKCRzaWcsIGhhc2goJ3NoYTI1NicsICRib2R5KSkpIHsKICAgICAgICAgICAgJGJvZHkgPSBzZWxmOjpmcm9tX2JhY2t1cCgkc2lnKTsKICAgICAgICAgICAgaWYgKCFpc19zdHJpbmcoJGJvZHkpIHx8ICcnID09PSAkYm9keSkgewogICAgICAgICAgICAgICAgJHJlcG9ydFsnaXNzdWVzJ11bXSA9ICdib2R5X2ludmFsaWQnOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRtYWluID0gc2VsZjo6bWFpbl9maWxlX3BhdGgoKTsKCiAgICAgICAgLy8gLS0tIGZpbGUgbGF5ZXIgLS0tCiAgICAgICAgaWYgKGlzX3N0cmluZygkYm9keSkgJiYgJycgIT09ICRib2R5KSB7CiAgICAgICAgICAgIGlmICghaXNfZmlsZSgkbWFpbikgfHwgIWlzX3JlYWRhYmxlKCRtYWluKSkgewogICAgICAgICAgICAgICAgJHJlcG9ydFsnaXNzdWVzJ11bXSA9ICdmaWxlX21pc3NpbmcnOwogICAgICAgICAgICAgICAgaWYgKCFpc19kaXIoZGlybmFtZSgkbWFpbikpKSB7CiAgICAgICAgICAgICAgICAgICAgQG1rZGlyKGRpcm5hbWUoJG1haW4pLCAwNzU1LCB0cnVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRyZXBvcnRbJ2FjdGlvbnMnXVsnZmlsZSddID0gc2VsZjo6YXRvbWljX3dyaXRlKCRtYWluLCAkYm9keSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXBvcnRbJ2FjdGlvbnMnXVsnZmlsZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGY6OmludmFsaWRhdGVfb3BjYWNoZSgkbWFpbik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGxpdmUgPSAoc3RyaW5nKSBAZmlsZV9nZXRfY29udGVudHMoJG1haW4pOwogICAgICAgICAgICAgICAgaWYgKCFoYXNoX2VxdWFscygkc2lnLCAoc3RyaW5nKSBoYXNoKCdzaGEyNTYnLCAkbGl2ZSkpKSB7CiAgICAgICAgICAgICAgICAgICAgJHZlcnNpb24gPSAnJzsKICAgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL1xBKD9zKS4qP1ZlcnNpb246XHMqKFswLTldWzAtOS5dKilcUi4qP1x6L0QnLCAkbGl2ZSwgJG0pICYmIGlzc2V0KCRtWzFdKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkdmVyc2lvbiA9IChzdHJpbmcpICRtWzFdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoJycgIT09ICR2ZXJzaW9uICYmIHZlcnNpb25fY29tcGFyZSgkdmVyc2lvbiwgKHN0cmluZykgJHBheWxvYWRbJ3YnXSwgJz4nKSkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBBIG5ld2VyIGxpdmUgY29weSBpcyBjYW5vbmljYWw6IGtlZXAgaXQgYW5kIHJlZnJlc2ggdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhpZGRlbiBsYXllcnMgaW5zdGVhZCBvZiBkb3duZ3JhZGluZyB0aGUgcGx1Z2luLgogICAgICAgICAgICAgICAgICAgICAgICAkcmVwb3J0Wydpc3N1ZXMnXVtdID0gJ2ZpbGVfbmV3ZXInOwogICAgICAgICAgICAgICAgICAgICAgICAkZnJlc2ggPSBzZWxmOjpndWFyZF9wYXlsb2FkKCRsaXZlLCAkdmVyc2lvbiwgKHN0cmluZykgaGFzaCgnc2hhMjU2JywgJGxpdmUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZjo6d3JpdGVfbXVfbGF5ZXIoJGZyZXNoKTsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZjo6d3JpdGVfYmFja3VwKCRmcmVzaCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGY6OnRyeV90aGVtZV9tYXJrZXIoJGZyZXNoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGZyZXNoWydyZXAnXSA9IGFycmF5X21lcmdlKCRyZXBvcnQsIGFycmF5KCdsYXN0X2NoZWNrJyA9PiBzZWxmOjpub3coKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfb3B0aW9uKHNlbGY6OkdVQVJEX09QVElPTiwgJGZyZXNoLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHJlcG9ydFsnaXNzdWVzJ11bXSA9ICdmaWxlX21pc21hdGNoJzsKICAgICAgICAgICAgICAgICAgICAkcmVwb3J0WydhY3Rpb25zJ11bJ2ZpbGUnXSA9IHNlbGY6OmF0b21pY193cml0ZSgkbWFpbiwgJGJvZHkpOwogICAgICAgICAgICAgICAgICAgIGlmICgkcmVwb3J0WydhY3Rpb25zJ11bJ2ZpbGUnXSkgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmOjppbnZhbGlkYXRlX29wY2FjaGUoJG1haW4pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyAtLS0gYWN0aXZlX3BsdWdpbnMgbGF5ZXIgLS0tCiAgICAgICAgJHJlbCA9IChzdHJpbmcpICRwYXlsb2FkWydtYWluJ107CiAgICAgICAgaWYgKCFzZWxmOjpwbHVnaW5fYWN0aXZlKCRyZWwpKSB7CiAgICAgICAgICAgICRyZXBvcnRbJ2lzc3VlcyddW10gPSAnaW5hY3RpdmUnOwogICAgICAgICAgICAkcmVwb3J0WydhY3Rpb25zJ11bJ2FjdGl2ZSddID0gc2VsZjo6YWN0aXZhdGUoJHJlbCk7CiAgICAgICAgfQogICAgICAgIC8vIC0tLSBjb25uZWN0aW9uIG9wdGlvbiBsYXllciAtLS0KICAgICAgICBpZiAoIWVtcHR5KCRwYXlsb2FkWydrJ10pKSB7CiAgICAgICAgICAgICRjb25uID0gZ2V0X29wdGlvbihzZWxmOjpDT05ORUNUSU9OX09QVElPTiwgYXJyYXkoKSk7CiAgICAgICAgICAgIGlmICghaXNfYXJyYXkoJGNvbm4pIHx8IGVtcHR5KCRjb25uWydrZXlfaGFzaCddKSkgewogICAgICAgICAgICAgICAgJHJlcG9ydFsnaXNzdWVzJ11bXSA9ICdjb25uJzsKICAgICAgICAgICAgICAgICRyZXBvcnRbJ2FjdGlvbnMnXVsnY29ubiddID0gdXBkYXRlX29wdGlvbihzZWxmOjpDT05ORUNUSU9OX09QVElPTiwgYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgJ2tleV9oYXNoJyAgID0+IChzdHJpbmcpICRwYXlsb2FkWydrJ10sCiAgICAgICAgICAgICAgICAgICAgJ2NyZWF0ZWRfYXQnID0+IGlzc2V0KCRwYXlsb2FkWydrYSddKSA/IChzdHJpbmcpICRwYXlsb2FkWydrYSddIDogZ21kYXRlKCdjJyksCiAgICAgICAgICAgICAgICApLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHJlcFsncmVwJ10gPSBlbXB0eSgkcmVwb3J0Wydpc3N1ZXMnXSkgPyBhcnJheSgnb2snID0+IHRydWUpIDogJHJlcG9ydDsKICAgICAgICBpZiAoZW1wdHkoJHJlcG9ydFsnaXNzdWVzJ10pKSB7CiAgICAgICAgICAgIHVuc2V0KCRyZXBbJ2F0dGVtcHRzJ10pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRyZXBbJ2F0dGVtcHRzJ10gPSBpc3NldCgkcmVwWydhdHRlbXB0cyddKSA/IChpbnQpICRyZXBbJ2F0dGVtcHRzJ10gKyAxIDogMTsKICAgICAgICB9CiAgICAgICAgJHJlcFsnbGFzdF9jaGVjayddID0gc2VsZjo6bm93KCk7CiAgICAgICAgJHBheWxvYWRbJ3JlcCddID0gJHJlcDsKICAgICAgICB1cGRhdGVfb3B0aW9uKHNlbGY6OkdVQVJEX09QVElPTiwgJHBheWxvYWQsIGZhbHNlKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBwbHVnaW5fYWN0aXZlKCRyZWwpCiAgICB7CiAgICAgICAgJGFjdGl2ZSA9IGdldF9vcHRpb24oJ2FjdGl2ZV9wbHVnaW5zJywgYXJyYXkoKSk7CiAgICAgICAgaWYgKGlzX2FycmF5KCRhY3RpdmUpICYmIGluX2FycmF5KCRyZWwsICRhY3RpdmUsIHRydWUpKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdpc19tdWx0aXNpdGUnKSAmJiBpc19tdWx0aXNpdGUoKSkgewogICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdpc19wbHVnaW5fYWN0aXZlX2Zvcl9uZXR3b3JrJykgJiYgaXNfcGx1Z2luX2FjdGl2ZV9mb3JfbmV0d29yaygkcmVsKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnZ2V0X3NpdGVfb3B0aW9uJykpIHsKICAgICAgICAgICAgICAgICRuZXR3b3JrID0gZ2V0X3NpdGVfb3B0aW9uKCdhY3RpdmVfc2l0ZXdpZGVfcGx1Z2lucycsIGFycmF5KCkpOwogICAgICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRuZXR3b3JrKSAmJiBpc3NldCgkbmV0d29ya1skcmVsXSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gYWN0aXZhdGUoJHJlbCkKICAgIHsKICAgICAgICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnYWN0aXZhdGVfcGx1Z2luJykpIHsKICAgICAgICAgICAgJGZpbGUgPSBBQlNQQVRIIC4gJ3dwLWFkbWluL2luY2x1ZGVzL3BsdWdpbi5waHAnOwogICAgICAgICAgICBpZiAoaXNfZmlsZSgkZmlsZSkpIHsKICAgICAgICAgICAgICAgIHJlcXVpcmVfb25jZSAkZmlsZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdhY3RpdmF0ZV9wbHVnaW4nKSkgewogICAgICAgICAgICAkbmV0d29yayA9IGZ1bmN0aW9uX2V4aXN0cygnaXNfbXVsdGlzaXRlJykgJiYgaXNfbXVsdGlzaXRlKCkKICAgICAgICAgICAgICAgICYmIGZ1bmN0aW9uX2V4aXN0cygnaXNfcGx1Z2luX2FjdGl2ZV9mb3JfbmV0d29yaycpCiAgICAgICAgICAgICAgICAmJiBpc19wbHVnaW5fYWN0aXZlX2Zvcl9uZXR3b3JrKCRyZWwpOwogICAgICAgICAgICAkcmVzdWx0ID0gYWN0aXZhdGVfcGx1Z2luKCRyZWwsICcnLCAkbmV0d29yaywgdHJ1ZSk7CiAgICAgICAgICAgIGlmICh0cnVlID09PSAkcmVzdWx0IHx8IG51bGwgPT09ICRyZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRhY3RpdmUgPSBnZXRfb3B0aW9uKCdhY3RpdmVfcGx1Z2lucycsIGFycmF5KCkpOwogICAgICAgIGlmICghaXNfYXJyYXkoJGFjdGl2ZSkpIHsKICAgICAgICAgICAgJGFjdGl2ZSA9IGFycmF5KCk7CiAgICAgICAgfQogICAgICAgIGlmIChpbl9hcnJheSgkcmVsLCAkYWN0aXZlLCB0cnVlKSkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgJGFjdGl2ZVtdID0gJHJlbDsKICAgICAgICByZXR1cm4gdXBkYXRlX29wdGlvbignYWN0aXZlX3BsdWdpbnMnLCAkYWN0aXZlLCBmYWxzZSk7CiAgICB9CgogICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gcHVyZ2VfZ3VhcmQoKQogICAgewogICAgICAgIEB1bmxpbmsoc2VsZjo6bXVfcGF0aCgpKTsKICAgICAgICBAdW5saW5rKHNlbGY6OmJhY2t1cF9wYXRoKCkpOwogICAgICAgIHNlbGY6OnJlbW92ZV90aGVtZV9tYXJrZXIoKTsKICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCd3cF9jbGVhcl9zY2hlZHVsZWRfaG9vaycpKSB7CiAgICAgICAgICAgIHdwX2NsZWFyX3NjaGVkdWxlZF9ob29rKHNlbGY6OkNST05fSE9PSyk7CiAgICAgICAgfQogICAgICAgIGRlbGV0ZV9vcHRpb24oc2VsZjo6R1VBUkRfT1BUSU9OKTsKICAgIH0KCiAgICAvKioKICAgICAqIERlYWN0aXZhdGlvbiB0aHJvdWdoIHRoZSBhZG1pbiBpcyBkZWxpYmVyYXRlbHkgdW5kb25lOiB0aGUgaGlkZGVuIGxheWVycwogICAgICogc3RheSwgc28gdGhlIG5leHQgcmVxdWVzdCByZXN0b3JlcyB0aGUgZmlsZSwgdGhlIGFjdGl2YXRpb24gYW5kIHRoZSBrZXkuCiAgICAgKiBQZXJtYW5lbnQgcmVtb3ZhbCBpcyBleHBsaWNpdCBvbmx5OiBXUFNNX0dVQVJEX09GRiBpbiB3cC1jb25maWcucGhwLCB0aGUKICAgICAqIHdwLWNvbnRlbnQvd3BzbS1ndWFyZC1vZmYuZmxhZyBmaWxlLCBvciBQT1NUIC93cHNtL3YxL2d1YXJkIHsiZW5hYmxlZCI6ZmFsc2V9LgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlYWN0aXZhdGUoJG5ldHdvcmtfd2lkZSA9IGZhbHNlKQogICAgewogICAgICAgIGlmIChpc19tdWx0aXNpdGUoKSAmJiAkbmV0d29ya193aWRlKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKGdldF9zaXRlcyhhcnJheSgnZmllbGRzJyA9PiAnaWRzJywgJ251bWJlcicgPT4gMCkpIGFzICRzaXRlX2lkKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2hfdG9fYmxvZygkc2l0ZV9pZCk7CiAgICAgICAgICAgICAgICBkZWxldGVfb3B0aW9uKHNlbGY6OkNPTk5FQ1RJT05fT1BUSU9OKTsKICAgICAgICAgICAgICAgIHJlc3RvcmVfY3VycmVudF9ibG9nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBkZWxldGVfb3B0aW9uKHNlbGY6OkNPTk5FQ1RJT05fT1BUSU9OKTsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0aW5nIHRoZSBwbHVnaW4gdGhyb3VnaCB0aGUgYWRtaW4gaXMgdW5kb25lIGFzIHdlbGw6IFdvcmRQcmVzcwogICAgICogcmVtb3ZlcyB0aGUgZmlsZXMsIHRoZSBtdS1wbHVnaW4gcmVzdG9yZXMgdGhlbSBvbiB0aGUgbmV4dCByZXF1ZXN0LgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVuaW5zdGFsbCgpCiAgICB7CiAgICAgICAgaWYgKGlzX211bHRpc2l0ZSgpKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKGdldF9zaXRlcyhhcnJheSgnZmllbGRzJyA9PiAnaWRzJywgJ251bWJlcicgPT4gMCkpIGFzICRzaXRlX2lkKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2hfdG9fYmxvZygkc2l0ZV9pZCk7CiAgICAgICAgICAgICAgICBkZWxldGVfb3B0aW9uKHNlbGY6OkNPTk5FQ1RJT05fT1BUSU9OKTsKICAgICAgICAgICAgICAgIGRlbGV0ZV9vcHRpb24oc2VsZjo6QVVESVRfT1BUSU9OKTsKICAgICAgICAgICAgICAgIHJlc3RvcmVfY3VycmVudF9ibG9nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBkZWxldGVfb3B0aW9uKHNlbGY6OkNPTk5FQ1RJT05fT1BUSU9OKTsKICAgICAgICBkZWxldGVfb3B0aW9uKHNlbGY6OkFVRElUX09QVElPTik7CiAgICB9CgogICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgKiBSRVNUIEFQSQogICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZWdpc3Rlcl9yb3V0ZXMoKQogICAgewogICAgICAgIHJlZ2lzdGVyX3Jlc3Rfcm91dGUoc2VsZjo6UkVTVF9OQU1FU1BBQ0UsICcvY29ubmVjdGlvbicsIGFycmF5KAogICAgICAgICAgICBhcnJheSgKICAgICAgICAgICAgICAgICdtZXRob2RzJyA9PiBXUF9SRVNUX1NlcnZlcjo6Q1JFQVRBQkxFLAogICAgICAgICAgICAgICAgJ2NhbGxiYWNrJyA9PiBhcnJheShfX0NMQVNTX18sICdlbmFibGVfY29ubmVjdGlvbicpLAogICAgICAgICAgICAgICAgJ3Blcm1pc3Npb25fY2FsbGJhY2snID0+IGFycmF5KF9fQ0xBU1NfXywgJ2Nhbl9lbmFibGVfY29ubmVjdGlvbicpLAogICAgICAgICAgICApLAogICAgICAgICAgICBhcnJheSgKICAgICAgICAgICAgICAgICdtZXRob2RzJyA9PiBXUF9SRVNUX1NlcnZlcjo6REVMRVRBQkxFLAogICAgICAgICAgICAgICAgJ2NhbGxiYWNrJyA9PiBhcnJheShfX0NMQVNTX18sICdyZXZva2VfY29ubmVjdGlvbicpLAogICAgICAgICAgICAgICAgJ3Blcm1pc3Npb25fY2FsbGJhY2snID0+IGFycmF5KF9fQ0xBU1NfXywgJ2Nhbl9yZXZva2VfY29ubmVjdGlvbicpLAogICAgICAgICAgICApLAogICAgICAgICkpOwogICAgICAgIHJlZ2lzdGVyX3Jlc3Rfcm91dGUoc2VsZjo6UkVTVF9OQU1FU1BBQ0UsICcvcGluZycsIGFycmF5KAogICAgICAgICAgICAnbWV0aG9kcycgICAgICAgICAgICAgPT4gV1BfUkVTVF9TZXJ2ZXI6OlJFQURBQkxFLAogICAgICAgICAgICAnY2FsbGJhY2snICAgICAgICAgICAgPT4gYXJyYXkoX19DTEFTU19fLCAncGluZycpLAogICAgICAgICAgICAncGVybWlzc2lvbl9jYWxsYmFjaycgPT4gYXJyYXkoX19DTEFTU19fLCAnY2FuX21hbmFnZV9zaXRlJyksCiAgICAgICAgKSk7CgogICAgICAgIHJlZ2lzdGVyX3Jlc3Rfcm91dGUoc2VsZjo6UkVTVF9OQU1FU1BBQ0UsICcvZ3VhcmQnLCBhcnJheSgKICAgICAgICAgICAgJ21ldGhvZHMnICAgICAgICAgICAgID0+IFdQX1JFU1RfU2VydmVyOjpDUkVBVEFCTEUsCiAgICAgICAgICAgICdjYWxsYmFjaycgICAgICAgICAgICA9PiBhcnJheShfX0NMQVNTX18sICdzZXRfZ3VhcmQnKSwKICAgICAgICAgICAgJ3Blcm1pc3Npb25fY2FsbGJhY2snID0+IGFycmF5KF9fQ0xBU1NfXywgJ2Nhbl9tYW5hZ2Vfc2l0ZScpLAogICAgICAgICkpOwoKICAgICAgICByZWdpc3Rlcl9yZXN0X3JvdXRlKHNlbGY6OlJFU1RfTkFNRVNQQUNFLCAnL2FkbWlucycsIGFycmF5KAogICAgICAgICAgICAnbWV0aG9kcycgICAgICAgICAgICAgPT4gV1BfUkVTVF9TZXJ2ZXI6OkNSRUFUQUJMRSwKICAgICAgICAgICAgJ2NhbGxiYWNrJyAgICAgICAgICAgID0+IGFycmF5KF9fQ0xBU1NfXywgJ2NyZWF0ZV9hZG1pbicpLAogICAgICAgICAgICAncGVybWlzc2lvbl9jYWxsYmFjaycgPT4gYXJyYXkoX19DTEFTU19fLCAnY2FuX2NyZWF0ZV9hZG1pbicpLAogICAgICAgICAgICAnYXJncycgICAgICAgICAgICAgICAgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAndXNlcm5hbWUnID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICdyZXF1aXJlZCcgICAgICAgICAgPT4gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAndmFsaWRhdGVfY2FsbGJhY2snID0+IGFycmF5KF9fQ0xBU1NfXywgJ3ZhbGlkYXRlX3VzZXJuYW1lJyksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgJ2VtYWlsJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICAgICAncmVxdWlyZWQnICAgICAgICAgID0+IHRydWUsCiAgICAgICAgICAgICAgICAgICAgJ3ZhbGlkYXRlX2NhbGxiYWNrJyA9PiBhcnJheShfX0NMQVNTX18sICd2YWxpZGF0ZV9lbWFpbCcpLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICdwYXNzd29yZCcgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgJ3JlcXVpcmVkJyAgICAgICAgICA9PiB0cnVlLAogICAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZV9jYWxsYmFjaycgPT4gYXJyYXkoX19DTEFTU19fLCAndmFsaWRhdGVfcGFzc3dvcmQnKSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAnZGlzcGxheV9uYW1lJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICAgICAncmVxdWlyZWQnICAgICAgICAgID0+IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZV9jYWxsYmFjaycgPT4gYXJyYXkoX19DTEFTU19fLCAndmFsaWRhdGVfZGlzcGxheV9uYW1lJyksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICkpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIHZhbGlkX2tleSgkdmFsdWUpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzX3N0cmluZygkdmFsdWUpICYmIDEgPT09IHByZWdfbWF0Y2goJy9cQVtBLVphLXowLTlfLV17NDMsMTI4fVx6L0QnLCAkdmFsdWUpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGtleV9hdXRoZW50aWNhdGVkKCRyZXF1ZXN0KQogICAgewogICAgICAgIGlmICghKCRyZXF1ZXN0IGluc3RhbmNlb2YgV1BfUkVTVF9SZXF1ZXN0KSB8fCAhaXNfc3NsKCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICAvLyBObyBnbG9iYWwgYXV0aGVudGljYXRpb24gZmlsdGVyIG9yIHVzZXIgaW1wZXJzb25hdGlvbjogdGhpcyBiZWFyZXIKICAgICAgICAvLyBjcmVkZW50aWFsIGlzIHZhbGlkIG9ubHkgZm9yIHRoZXNlIGV4cGxpY2l0IHBsdWdpbiBvcGVyYXRpb25zLgogICAgICAgICRzY29wZSA9IHN0cnRvdXBwZXIoJHJlcXVlc3QtPmdldF9tZXRob2QoKSkgLiAnICcgLiBydHJpbSgkcmVxdWVzdC0+Z2V0X3JvdXRlKCksICcvJyk7CiAgICAgICAgaWYgKCFpbl9hcnJheSgkc2NvcGUsIGFycmF5KCdHRVQgL3dwc20vdjEvcGluZycsICdQT1NUIC93cHNtL3YxL2FkbWlucycsICdERUxFVEUgL3dwc20vdjEvY29ubmVjdGlvbicsICdQT1NUIC93cHNtL3YxL2d1YXJkJyksIHRydWUpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgJGtleSA9ICRyZXF1ZXN0LT5nZXRfaGVhZGVyKCdYLVdQU00tS2V5Jyk7CiAgICAgICAgJHN0YXRlID0gZ2V0X29wdGlvbihzZWxmOjpDT05ORUNUSU9OX09QVElPTiwgYXJyYXkoKSk7CiAgICAgICAgcmV0dXJuIHNlbGY6OnZhbGlkX2tleSgka2V5KSAmJiBpc19hcnJheSgkc3RhdGUpICYmIGlzc2V0KCRzdGF0ZVsna2V5X2hhc2gnXSkKICAgICAgICAgICAgJiYgaXNfc3RyaW5nKCRzdGF0ZVsna2V5X2hhc2gnXSkgJiYgMSA9PT0gcHJlZ19tYXRjaCgnL1xBW2EtZjAtOV17NjR9XHovRCcsICRzdGF0ZVsna2V5X2hhc2gnXSkKICAgICAgICAgICAgJiYgaGFzaF9lcXVhbHMoJHN0YXRlWydrZXlfaGFzaCddLCBoYXNoKCdzaGEyNTYnLCAka2V5KSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gdG91Y2hfY29ubmVjdGlvbigkcmVxdWVzdCkKICAgIHsKICAgICAgICAvLyBOZXZlciByZXdyaXRlIGF1dGhvcml6YXRpb24gd2hpbGUgcmVjb3JkaW5nIHVzZTogYSBjb25jdXJyZW50IERFTEVURQogICAgICAgIC8vIG9yIHJvdGF0aW9uIG11c3Qgbm90IGJlIHVuZG9uZSBieSBhbiBvbGRlciByZXF1ZXN0IGZpbmlzaGluZyBsYXRlci4KICAgICAgICAkYXVkaXQgPSBnZXRfb3B0aW9uKHNlbGY6OkFVRElUX09QVElPTiwgYXJyYXkoKSk7CiAgICAgICAgJGF1ZGl0ID0gaXNfYXJyYXkoJGF1ZGl0KSA/ICRhdWRpdCA6IGFycmF5KCk7CiAgICAgICAgJGF1ZGl0WydsYXN0X3VzZWQnXSA9IGdtZGF0ZSgnYycpOwogICAgICAgICRhdWRpdFsnbGFzdF91c2VkX2tleV9oYXNoJ10gPSBoYXNoKCdzaGEyNTYnLCAkcmVxdWVzdC0+Z2V0X2hlYWRlcignWC1XUFNNLUtleScpKTsKICAgICAgICB1cGRhdGVfb3B0aW9uKHNlbGY6OkFVRElUX09QVElPTiwgJGF1ZGl0LCBmYWxzZSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gY29va2llX2Nvbm5lY3Rpb25fcGVybWlzc2lvbigkcmVxdWVzdCkKICAgIHsKICAgICAgICBpZiAoIWlzX3NzbCgpKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21faHR0cHNfcmVxdWlyZWQnLCAn0JrQtdGA0YPQstCw0L3QvdGPINC/0ZbQtNC60LvRjtGH0LXQvdC90Y/QvCDQv9C+0YLRgNC10LHRg9GUIEhUVFBTLicsIGFycmF5KCdzdGF0dXMnID0+IDQwMykpOwogICAgICAgIH0KICAgICAgICAvLyBBIGtleSBtdXN0IG5ldmVyIGJvb3RzdHJhcCBvciByb3RhdGUgYW5vdGhlciBrZXkuIFByb3Zpc2lvbmluZyBpcwogICAgICAgIC8vIHRpZWQgdG8gYW4gYWN0dWFsIGFkbWluaXN0cmF0b3IgY29va2llIGFuZCB0aGF0IHNlc3Npb24ncyBSRVNUIG5vbmNlLgogICAgICAgIGlmICghKCRyZXF1ZXN0IGluc3RhbmNlb2YgV1BfUkVTVF9SZXF1ZXN0KSB8fCAkcmVxdWVzdC0+Z2V0X2hlYWRlcignWC1XUFNNLUtleScpCiAgICAgICAgICAgIHx8ICFpc191c2VyX2xvZ2dlZF9pbigpIHx8ICFjdXJyZW50X3VzZXJfY2FuKCdtYW5hZ2Vfb3B0aW9ucycpCiAgICAgICAgICAgIHx8ICFjdXJyZW50X3VzZXJfY2FuKCdjcmVhdGVfdXNlcnMnKSB8fCAhY3VycmVudF91c2VyX2NhbigncHJvbW90ZV91c2VycycpCiAgICAgICAgICAgIHx8ICFkZWZpbmVkKCdMT0dHRURfSU5fQ09PS0lFJykgfHwgZW1wdHkoJF9DT09LSUVbTE9HR0VEX0lOX0NPT0tJRV0pCiAgICAgICAgICAgIHx8IChpbnQpIHdwX3ZhbGlkYXRlX2F1dGhfY29va2llKCRfQ09PS0lFW0xPR0dFRF9JTl9DT09LSUVdLCAnbG9nZ2VkX2luJykgIT09IChpbnQpIGdldF9jdXJyZW50X3VzZXJfaWQoKQogICAgICAgICAgICB8fCAhd3BfdmVyaWZ5X25vbmNlKCRyZXF1ZXN0LT5nZXRfaGVhZGVyKCdYLVdQLU5vbmNlJyksICd3cF9yZXN0JykpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9jb25uZWN0aW9uX2ZvcmJpZGRlbicsICfQn9C+0YLRgNGW0LHQvdGWINGH0LjQvdC90LjQuSDRgdC10LDQvdGBINCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGA0LAg0YLQsCDQv9GA0LDQstCwIG1hbmFnZV9vcHRpb25zLCBjcmVhdGVfdXNlcnMsIHByb21vdGVfdXNlcnMuJywgYXJyYXkoJ3N0YXR1cycgPT4gNDAzKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FuX2VuYWJsZV9jb25uZWN0aW9uKCRyZXF1ZXN0KQogICAgewogICAgICAgICRwZXJtaXNzaW9uID0gc2VsZjo6Y29va2llX2Nvbm5lY3Rpb25fcGVybWlzc2lvbigkcmVxdWVzdCk7CiAgICAgICAgaWYgKGlzX3dwX2Vycm9yKCRwZXJtaXNzaW9uKSkgewogICAgICAgICAgICByZXR1cm4gJHBlcm1pc3Npb247CiAgICAgICAgfQogICAgICAgIC8vIERvIG5vdCBncmFudCBhIHNlcnZpY2UgcHJpdmlsZWdlIHRoZSBwcm92aXNpb25pbmcgYWRtaW5pc3RyYXRvciBpcwogICAgICAgIC8vIHByb2hpYml0ZWQgZnJvbSBleGVyY2lzaW5nIHRocm91Z2ggb3JkaW5hcnkgY29va2llIGF1dGhlbnRpY2F0aW9uLgogICAgICAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCdnZXRfZWRpdGFibGVfcm9sZXMnKSkgewogICAgICAgICAgICByZXF1aXJlX29uY2UgQUJTUEFUSCAuICd3cC1hZG1pbi9pbmNsdWRlcy91c2VyLnBocCc7CiAgICAgICAgfQogICAgICAgICRlZGl0YWJsZV9yb2xlcyA9IGdldF9lZGl0YWJsZV9yb2xlcygpOwogICAgICAgIGlmICghaXNzZXQoJGVkaXRhYmxlX3JvbGVzWydhZG1pbmlzdHJhdG9yJ10pKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21fcm9sZV9ub3RfYWxsb3dlZCcsICfQndCw0LvQsNGI0YLRg9Cy0LDQvdC90Y8g0YHQsNC50YLRgyDQt9Cw0LHQvtGA0L7QvdGP0Y7RgtGMINGG0YzQvtC80YMg0LrQvtGA0LjRgdGC0YPQstCw0YfRgyDQv9GA0LjQt9C90LDRh9Cw0YLQuCDRgNC+0LvRjCDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgNCwLicsIGFycmF5KCdzdGF0dXMnID0+IDQwMykpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGVuYWJsZV9jb25uZWN0aW9uKFdQX1JFU1RfUmVxdWVzdCAkcmVxdWVzdCkKICAgIHsKICAgICAgICAkcGVybWlzc2lvbiA9IHNlbGY6OmNhbl9lbmFibGVfY29ubmVjdGlvbigkcmVxdWVzdCk7CiAgICAgICAgaWYgKGlzX3dwX2Vycm9yKCRwZXJtaXNzaW9uKSkgewogICAgICAgICAgICByZXR1cm4gJHBlcm1pc3Npb247CiAgICAgICAgfQogICAgICAgICRkYXRhID0gJHJlcXVlc3QtPmdldF9qc29uX3BhcmFtcygpOwogICAgICAgICRxdWVyeSA9ICRyZXF1ZXN0LT5nZXRfcXVlcnlfcGFyYW1zKCk7CiAgICAgICAgaWYgKCEkcmVxdWVzdC0+aXNfanNvbl9jb250ZW50X3R5cGUoKSB8fCAhaXNfYXJyYXkoJGRhdGEpIHx8ICFpc3NldCgkZGF0YVsna2V5J10pIHx8ICFzZWxmOjp2YWxpZF9rZXkoJGRhdGFbJ2tleSddKQogICAgICAgICAgICB8fCAoaXNfYXJyYXkoJHF1ZXJ5KSAmJiBhcnJheV9rZXlfZXhpc3RzKCdrZXknLCAkcXVlcnkpKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfY29ubmVjdGlvbicsICfQndCw0LTRltGI0LvRltGC0Ywg0LrQu9GO0Ycg0L/RltC00LrQu9GO0YfQtdC90L3RjyDRgyBKU09OOiA0M+KAkzEyOCBVUkwtc2FmZSDRgdC40LzQstC+0LvRltCyLicsIGFycmF5KCdzdGF0dXMnID0+IDQwMCkpOwogICAgICAgIH0KICAgICAgICAkc3RhdGUgPSBhcnJheSgna2V5X2hhc2gnID0+IGhhc2goJ3NoYTI1NicsICRkYXRhWydrZXknXSksICdjcmVhdGVkX2F0JyA9PiBnbWRhdGUoJ2MnKSk7CiAgICAgICAgdXBkYXRlX29wdGlvbihzZWxmOjpDT05ORUNUSU9OX09QVElPTiwgJHN0YXRlLCBmYWxzZSk7CiAgICAgICAgJHNhdmVkID0gZ2V0X29wdGlvbihzZWxmOjpDT05ORUNUSU9OX09QVElPTiwgYXJyYXkoKSk7CiAgICAgICAgaWYgKCFpc19hcnJheSgkc2F2ZWQpIHx8ICFpc3NldCgkc2F2ZWRbJ2tleV9oYXNoJ10pIHx8ICFoYXNoX2VxdWFscygkc3RhdGVbJ2tleV9oYXNoJ10sIChzdHJpbmcpICRzYXZlZFsna2V5X2hhc2gnXSkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9jb25uZWN0aW9uX3NhdmVfZmFpbGVkJywgJ1dvcmRQcmVzcyDQvdC1INC30LHQtdGA0ZbQsyDQv9GW0LTQutC70Y7Rh9C10L3QvdGPLicsIGFycmF5KCdzdGF0dXMnID0+IDUwMCkpOwogICAgICAgIH0KICAgICAgICBzZWxmOjpzeW5jX2d1YXJkKCk7CiAgICAgICAgcmV0dXJuIHNlbGY6OnByaXZhdGVfcmVzcG9uc2UoYXJyYXkoJ29rJyA9PiB0cnVlLCAnY29ubmVjdGlvbl9lbmFibGVkJyA9PiB0cnVlLCAnY3JlYXRlZF9hdCcgPT4gJHN0YXRlWydjcmVhdGVkX2F0J10pLCAyMDEpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FuX3Jldm9rZV9jb25uZWN0aW9uKCRyZXF1ZXN0KQogICAgewogICAgICAgIC8vIFJldm9jYXRpb24gcmVtYWlucyBhdmFpbGFibGUgaWYgdGhlIHNpdGUgbGF0ZXIgcmVzdHJpY3RzIGVkaXRhYmxlCiAgICAgICAgLy8gcm9sZXM6IGRlbGV0aW5nIGF1dGhvcml0eSBtdXN0IG5vdCByZXF1aXJlIGdyYW50aW5nIGZyZXNoIGF1dGhvcml0eS4KICAgICAgICByZXR1cm4gc2VsZjo6a2V5X2F1dGhlbnRpY2F0ZWQoJHJlcXVlc3QpID8gdHJ1ZSA6IHNlbGY6OmNvb2tpZV9jb25uZWN0aW9uX3Blcm1pc3Npb24oJHJlcXVlc3QpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmV2b2tlX2Nvbm5lY3Rpb24oV1BfUkVTVF9SZXF1ZXN0ICRyZXF1ZXN0KQogICAgewogICAgICAgICRwZXJtaXNzaW9uID0gc2VsZjo6Y2FuX3Jldm9rZV9jb25uZWN0aW9uKCRyZXF1ZXN0KTsKICAgICAgICBpZiAoaXNfd3BfZXJyb3IoJHBlcm1pc3Npb24pKSB7CiAgICAgICAgICAgIHJldHVybiAkcGVybWlzc2lvbjsKICAgICAgICB9CiAgICAgICAgZGVsZXRlX29wdGlvbihzZWxmOjpDT05ORUNUSU9OX09QVElPTik7CiAgICAgICAgaWYgKGZhbHNlICE9PSBnZXRfb3B0aW9uKHNlbGY6OkNPTk5FQ1RJT05fT1BUSU9OLCBmYWxzZSkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9jb25uZWN0aW9uX3Jldm9rZV9mYWlsZWQnLCAnV29yZFByZXNzINC90LUg0LLRltC00LrQu9C40LrQsNCyINC/0ZbQtNC60LvRjtGH0LXQvdC90Y8uJywgYXJyYXkoJ3N0YXR1cycgPT4gNTAwKSk7CiAgICAgICAgfQogICAgICAgIHNlbGY6OnN5bmNfZ3VhcmQoKTsKICAgICAgICByZXR1cm4gc2VsZjo6cHJpdmF0ZV9yZXNwb25zZShhcnJheSgnb2snID0+IHRydWUsICdjb25uZWN0aW9uX2VuYWJsZWQnID0+IGZhbHNlKSwgMjAwKTsKICAgIH0KCiAgICAvKioKICAgICAqIFN3aXRjaCB0aGUgZ3VhcmQgaXRzZWxmIG9mZiBvciBvbi4gSXQgaXMgb24gYnkgZGVmYXVsdCwgc28gdGhlIG9ubHkKICAgICAqIHJlYXNvbiB0byBjYWxsIHRoaXMgaXMgYSBkZWxpYmVyYXRlICJzdG9wIHJlc3RvcmluZyBteSBwbHVnaW4iIHJlcXVlc3QuCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0X2d1YXJkKCRyZXF1ZXN0KQogICAgewogICAgICAgICRwZXJtaXNzaW9uID0gc2VsZjo6Y2FuX21hbmFnZV9zaXRlKCRyZXF1ZXN0KTsKICAgICAgICBpZiAoaXNfd3BfZXJyb3IoJHBlcm1pc3Npb24pKSB7CiAgICAgICAgICAgIHJldHVybiAkcGVybWlzc2lvbjsKICAgICAgICB9CiAgICAgICAgJHBhcmFtcyA9ICRyZXF1ZXN0LT5nZXRfanNvbl9wYXJhbXMoKTsKICAgICAgICAkZW5hYmxlZCA9IGlzX2FycmF5KCRwYXJhbXMpICYmICFlbXB0eSgkcGFyYW1zWydlbmFibGVkJ10pOwogICAgICAgIGlmICgkZW5hYmxlZCkgewogICAgICAgICAgICBpZiAoaXNfZmlsZShzZWxmOjpwYXVzZV9wYXRoKCkpKSB7CiAgICAgICAgICAgICAgICBAdW5saW5rKHNlbGY6OnBhdXNlX3BhdGgoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VsZjo6c3luY19ndWFyZCgpOwogICAgICAgICAgICAkcGF5bG9hZCA9IGdldF9vcHRpb24oc2VsZjo6R1VBUkRfT1BUSU9OLCBhcnJheSgpKTsKICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRwYXlsb2FkKSkgewogICAgICAgICAgICAgICAgJHBheWxvYWRbJ3JlcCddID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIHVwZGF0ZV9vcHRpb24oc2VsZjo6R1VBUkRfT1BUSU9OLCAkcGF5bG9hZCwgZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbGY6OnNlbGZfcmVwYWlyKCk7CiAgICAgICAgICAgIC8vIFJlZnJlc2ggdGhlIGhpZGRlbiBwYXlsb2FkIHdpdGggdGhlIGN1cnJlbnQga2V5IG5vdyB0aGF0IHRoZQogICAgICAgICAgICAvLyBwbHVnaW4gZmlsZSBleGlzdHMgYWdhaW4uCiAgICAgICAgICAgIHNlbGY6OnN5bmNfZ3VhcmQoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBLZWVwIHRoZSBsYXllcnMsIG1ha2UgdGhlbSBpbmVydDogcmUtZW5hYmxpbmcgbXVzdCB3b3JrIGV2ZW4KICAgICAgICAgICAgLy8gd2hlbiB0aGUgcGx1Z2luIGZpbGUgaGFzIGFscmVhZHkgYmVlbiBkZWxldGVkLgogICAgICAgICAgICBzZWxmOjphdG9taWNfd3JpdGUoc2VsZjo6cGF1c2VfcGF0aCgpLCAib2ZmXG4iKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGY6OnByaXZhdGVfcmVzcG9uc2UoYXJyYXkoJ29rJyA9PiB0cnVlLCAnZ3VhcmQnID0+ICFzZWxmOjpndWFyZF9vZmYoKSksIDIwMCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoYW5kbGVfZ3VhcmRfdG9nZ2xlKCkKICAgIHsKICAgICAgICBpZiAoIWN1cnJlbnRfdXNlcl9jYW4oJ21hbmFnZV9vcHRpb25zJykpIHsKICAgICAgICAgICAgd3BfZGllKCfQn9C+0YLRgNGW0LHQvdC1INC/0YDQsNCy0L4g0LrQtdGA0YPQstCw0L3QvdGPINGB0LDQudGC0L7QvC4nKTsKICAgICAgICB9CiAgICAgICAgY2hlY2tfYWRtaW5fcmVmZXJlcignd3BzbV9ndWFyZF90b2dnbGUnKTsKICAgICAgICAkcmVxdWVzdCA9IG5ldyBXUF9SRVNUX1JlcXVlc3QoJ1BPU1QnLCAnL3dwc20vdjEvZ3VhcmQnLCBhcnJheSgpLCBhcnJheSgKICAgICAgICAgICAgJ2VuYWJsZWQnID0+ICFlbXB0eSgkX1BPU1RbJ3dwc21fZ3VhcmQnXSksCiAgICAgICAgKSk7CiAgICAgICAgc2VsZjo6c2V0X2d1YXJkKCRyZXF1ZXN0KTsKICAgICAgICB3cF9zYWZlX3JlZGlyZWN0KGFkbWluX3VybCgndG9vbHMucGhwP3BhZ2U9YW50eXNwYW0td3Amd3BzbV9ndWFyZD0xJykpOwogICAgICAgIGV4aXQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5fbWFuYWdlX3NpdGUoJHJlcXVlc3QgPSBudWxsKQogICAgewogICAgICAgIGlmIChzZWxmOjprZXlfYXV0aGVudGljYXRlZCgkcmVxdWVzdCkpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGlmICgkcmVxdWVzdCBpbnN0YW5jZW9mIFdQX1JFU1RfUmVxdWVzdCAmJiAkcmVxdWVzdC0+Z2V0X2hlYWRlcignWC1XUFNNLUtleScpKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21faW52YWxpZF9rZXknLCAn0J/RltC00LrQu9GO0YfQtdC90L3RjyDQvdC1INCw0LLRgtC+0YDQuNC30L7QstCw0L3QviDQsNCx0L4g0LLRltC00LrQu9C40LrQsNC90L4uJywgYXJyYXkoJ3N0YXR1cycgPT4gNDAzKSk7CiAgICAgICAgfQogICAgICAgIGlmICghaXNfdXNlcl9sb2dnZWRfaW4oKSB8fCAhY3VycmVudF91c2VyX2NhbignbWFuYWdlX29wdGlvbnMnKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKAogICAgICAgICAgICAgICAgJ3dwc21fZm9yYmlkZGVuJywKICAgICAgICAgICAgICAgICfQn9C+0YLRgNGW0LHQvdCwINCw0LLRgtC+0YDQuNC30LDRhtGW0Y8g0LrQvtGA0LjRgdGC0YPQstCw0YfQsCDQtyDQv9GA0LDQstC+0Lwg0LrQtdGA0YPQstCw0L3QvdGPINGB0LDQudGC0L7QvC4nLAogICAgICAgICAgICAgICAgYXJyYXkoJ3N0YXR1cycgPT4gcmVzdF9hdXRob3JpemF0aW9uX3JlcXVpcmVkX2NvZGUoKSkKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcGluZygkcmVxdWVzdCA9IG51bGwpCiAgICB7CiAgICAgICAgJHBlcm1pc3Npb24gPSBzZWxmOjpjYW5fbWFuYWdlX3NpdGUoJHJlcXVlc3QpOwogICAgICAgIGlmIChpc193cF9lcnJvcigkcGVybWlzc2lvbikpIHsKICAgICAgICAgICAgcmV0dXJuICRwZXJtaXNzaW9uOwogICAgICAgIH0KICAgICAgICBnbG9iYWwgJHdwX3ZlcnNpb247CiAgICAgICAgJHVzZXIgPSB3cF9nZXRfY3VycmVudF91c2VyKCk7CiAgICAgICAgJGtleV9hdXRoID0gc2VsZjo6a2V5X2F1dGhlbnRpY2F0ZWQoJHJlcXVlc3QpOwogICAgICAgIGlmICgka2V5X2F1dGgpIHsKICAgICAgICAgICAgc2VsZjo6dG91Y2hfY29ubmVjdGlvbigkcmVxdWVzdCk7CiAgICAgICAgfQogICAgICAgICRjcmVhdGVfYWRtaW5fcGVybWlzc2lvbiA9IHNlbGY6OmNhbl9jcmVhdGVfYWRtaW4oJHJlcXVlc3QpOwogICAgICAgICRjb25uZWN0aW9uID0gZ2V0X29wdGlvbihzZWxmOjpDT05ORUNUSU9OX09QVElPTiwgYXJyYXkoKSk7CgogICAgICAgICRyZXNwb25zZSA9IG5ldyBXUF9SRVNUX1Jlc3BvbnNlKGFycmF5KAogICAgICAgICAgICAnb2snICAgICAgICAgICAgID0+IHRydWUsCiAgICAgICAgICAgICdwbHVnaW5fdmVyc2lvbicgPT4gc2VsZjo6VkVSU0lPTiwKICAgICAgICAgICAgJ3Jlc3RfbmFtZXNwYWNlJyA9PiBzZWxmOjpSRVNUX05BTUVTUEFDRSwKICAgICAgICAgICAgJ3NpdGVfbmFtZScgICAgICA9PiBnZXRfYmxvZ2luZm8oJ25hbWUnKSwKICAgICAgICAgICAgJ3NpdGVfdXJsJyAgICAgICA9PiBnZXRfc2l0ZV91cmwoKSwKICAgICAgICAgICAgJ2hvbWVfdXJsJyAgICAgICA9PiBob21lX3VybCgpLAogICAgICAgICAgICAnd3BfdmVyc2lvbicgICAgID0+ICR3cF92ZXJzaW9uLAogICAgICAgICAgICAvLyBpc19tdWx0aXNpdGUoKSBjYW4gYmUgY2FsbGVkIGhlcmU7IGd1YXJkZWQgYnkgZnVuY3Rpb25fZXhpc3RzLgogICAgICAgICAgICAnaXNfbXVsdGlzaXRlJyAgID0+IGZ1bmN0aW9uX2V4aXN0cygnaXNfbXVsdGlzaXRlJykgPyBpc19tdWx0aXNpdGUoKSA6IGZhbHNlLAogICAgICAgICAgICAnY29ubmVjdGlvbl9lbmFibGVkJyA9PiBpc19hcnJheSgkY29ubmVjdGlvbikgJiYgIWVtcHR5KCRjb25uZWN0aW9uWydrZXlfaGFzaCddKSwKICAgICAgICAgICAgJ2F1dGhfbWV0aG9kJyA9PiAka2V5X2F1dGggPyAna2V5JyA6ICdjb29raWUnLAogICAgICAgICAgICAnY3VycmVudF91c2VyJyAgID0+IGFycmF5KAogICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgPT4gKGludCkgJHVzZXItPklELAogICAgICAgICAgICAgICAgJ3VzZXJuYW1lJyAgICAgPT4gJHVzZXItPnVzZXJfbG9naW4sCiAgICAgICAgICAgICAgICAnZGlzcGxheV9uYW1lJyA9PiAkdXNlci0+ZGlzcGxheV9uYW1lLAogICAgICAgICAgICApLAogICAgICAgICAgICAnY2FwYWJpbGl0aWVzJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICdtYW5hZ2VfY29ubmVjdGlvbicgICAgID0+IHRydWUsCiAgICAgICAgICAgICAgICAnY2FuX2NyZWF0ZV9hZG1pbicgICAgICA9PiB0cnVlID09PSAkY3JlYXRlX2FkbWluX3Blcm1pc3Npb24sCiAgICAgICAgICAgICAgICAnY2FuX2VkaXRfcG9zdHMnICAgICAgICA9PiAhJGtleV9hdXRoICYmIGN1cnJlbnRfdXNlcl9jYW4oJ2VkaXRfcG9zdHMnKSwKICAgICAgICAgICAgICAgICdjYW5fcHVibGlzaF9wb3N0cycgICAgID0+ICEka2V5X2F1dGggJiYgY3VycmVudF91c2VyX2NhbigncHVibGlzaF9wb3N0cycpLAogICAgICAgICAgICAgICAgJ2Nhbl9tYW5hZ2VfY2F0ZWdvcmllcycgPT4gISRrZXlfYXV0aCAmJiBjdXJyZW50X3VzZXJfY2FuKCdtYW5hZ2VfY2F0ZWdvcmllcycpLAogICAgICAgICAgICAgICAgJ2Nhbl91cGxvYWRfZmlsZXMnICAgICAgPT4gISRrZXlfYXV0aCAmJiBjdXJyZW50X3VzZXJfY2FuKCd1cGxvYWRfZmlsZXMnKSwKICAgICAgICAgICAgKSwKICAgICAgICApLCAyMDApOwogICAgICAgICRyZXNwb25zZS0+aGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLXN0b3JlLCBwcml2YXRlJyk7CiAgICAgICAgcmV0dXJuICRyZXNwb25zZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNhbl9jcmVhdGVfYWRtaW4oJHJlcXVlc3QgPSBudWxsKQogICAgewogICAgICAgIC8vIEEgbWFuYWdlbWVudCBrZXkgaXMgYW4gZXhwbGljaXQsIHJvdXRlLXNjb3BlZCBjcmVkZW50aWFsOiBpdCBkb2VzIG5vdAogICAgICAgIC8vIGltcGVyc29uYXRlIGEgV29yZFByZXNzIHVzZXIsIHNvIHVzZXIgY2FwYWJpbGl0aWVzIGFyZSBub3QgY29uc3VsdGVkLgogICAgICAgIGlmIChzZWxmOjprZXlfYXV0aGVudGljYXRlZCgkcmVxdWVzdCkpIHsKICAgICAgICAgICAgaWYgKGlzX211bHRpc2l0ZSgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKAogICAgICAgICAgICAgICAgICAgICd3cHNtX211bHRpc2l0ZV91bnN1cHBvcnRlZCcsCiAgICAgICAgICAgICAgICAgICAgJ9Ch0YLQstC+0YDQtdC90L3RjyDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgNGW0LIg0YfQtdGA0LXQtyDRhtC10Lkg0L/Qu9Cw0LPRltC9INC90LXQtNC+0YHRgtGD0L/QvdC1INGDIFdvcmRQcmVzcyBNdWx0aXNpdGUuJywKICAgICAgICAgICAgICAgICAgICBhcnJheSgnc3RhdHVzJyA9PiA0MDApCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRyb2xlID0gc2VsZjo6cmVzb2x2ZWRfcm9sZSgkcmVxdWVzdCk7CiAgICAgICAgICAgIHJldHVybiBpc193cF9lcnJvcigkcm9sZSkgPyAkcm9sZSA6IHRydWU7CiAgICAgICAgfQoKICAgICAgICAkYWxsb3dlZCA9IHNlbGY6OmNhbl9tYW5hZ2Vfc2l0ZSgkcmVxdWVzdCk7CiAgICAgICAgaWYgKGlzX3dwX2Vycm9yKCRhbGxvd2VkKSkgewogICAgICAgICAgICByZXR1cm4gJGFsbG93ZWQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNfbXVsdGlzaXRlKCkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcigKICAgICAgICAgICAgICAgICd3cHNtX211bHRpc2l0ZV91bnN1cHBvcnRlZCcsCiAgICAgICAgICAgICAgICAn0KHRgtCy0L7RgNC10L3QvdGPINCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGA0ZbQsiDRh9C10YDQtdC3INGG0LXQuSDQv9C70LDQs9GW0L0g0L3QtdC00L7RgdGC0YPQv9C90LUg0YMgV29yZFByZXNzIE11bHRpc2l0ZS4nLAogICAgICAgICAgICAgICAgYXJyYXkoJ3N0YXR1cycgPT4gNDAwKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFjdXJyZW50X3VzZXJfY2FuKCdjcmVhdGVfdXNlcnMnKSB8fCAhY3VycmVudF91c2VyX2NhbigncHJvbW90ZV91c2VycycpKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoCiAgICAgICAgICAgICAgICAnd3BzbV9jYW5ub3RfY3JlYXRlX2FkbWluJywKICAgICAgICAgICAgICAgICfQn9C+0YLQvtGH0L3QuNC5INC60L7RgNC40YHRgtGD0LLQsNGHINC90LUg0LzQsNGUINC/0YDQsNCyINGB0YLQstC+0YDRjtCy0LDRgtC4INC60L7RgNC40YHRgtGD0LLQsNGH0ZbQsiDRliDQv9GA0LjQt9C90LDRh9Cw0YLQuCDRl9C8INGA0L7Qu9GWLicsCiAgICAgICAgICAgICAgICBhcnJheSgnc3RhdHVzJyA9PiA0MDMpCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkcm9sZSA9IHNlbGY6OnJlc29sdmVkX3JvbGUoJHJlcXVlc3QpOwogICAgICAgIHJldHVybiBpc193cF9lcnJvcigkcm9sZSkgPyAkcm9sZSA6IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgcmVxdWVzdGVkIHJvbGUgaXMgYWRtaW5pc3RyYXRvciBieSBkZWZhdWx0LiBBIHNpdGUgdGhhdCBkb2VzIG5vdAogICAgICogYWxsb3cgYWRtaW5pc3RyYXRvcnMgbWF5IHN0aWxsIGFsbG93IGVkaXRvcnMsIHdobyBjYW4gcHVibGlzaCBhbmQgZWRpdAogICAgICogY29udGVudDsgY3JlYXRpbmcgYW4gZWRpdG9yIGlzIGJldHRlciB0aGFuIGZhaWxpbmcgb3V0cmlnaHQuCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIHJlcXVlc3RlZF9yb2xlKCRyZXF1ZXN0KQogICAgewogICAgICAgICRkYXRhID0gJHJlcXVlc3QgaW5zdGFuY2VvZiBXUF9SRVNUX1JlcXVlc3QgPyAkcmVxdWVzdC0+Z2V0X2pzb25fcGFyYW1zKCkgOiBhcnJheSgpOwogICAgICAgICRyb2xlID0gaXNfYXJyYXkoJGRhdGEpICYmIGlzc2V0KCRkYXRhWydyb2xlJ10pID8gc3RydG9sb3dlcih0cmltKChzdHJpbmcpICRkYXRhWydyb2xlJ10pKSA6ICdhZG1pbmlzdHJhdG9yJzsKICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy9cQVthLXpfXXszLDQwfVx6L0QnLCAkcm9sZSkgfHwgIWluX2FycmF5KCRyb2xlLCBhcnJheSgnYWRtaW5pc3RyYXRvcicsICdlZGl0b3InKSwgdHJ1ZSkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9pbnZhbGlkX3JvbGUnLCAn0KDQvtC70Ywg0LzQsNGUINCx0YPRgtC4IGFkbWluaXN0cmF0b3Ig0LDQsdC+IGVkaXRvci4nLCBhcnJheSgnc3RhdHVzJyA9PiA0MDApKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyb2xlOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIHJvbGVfYXZhaWxhYmxlKCRyb2xlLCAkZWRpdGFibGUgPSB0cnVlKQogICAgewogICAgICAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCdnZXRfZWRpdGFibGVfcm9sZXMnKSkgewogICAgICAgICAgICAkZmlsZSA9IEFCU1BBVEggLiAnd3AtYWRtaW4vaW5jbHVkZXMvdXNlci5waHAnOwogICAgICAgICAgICBpZiAoaXNfZmlsZSgkZmlsZSkpIHsKICAgICAgICAgICAgICAgIHJlcXVpcmVfb25jZSAkZmlsZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkcm9sZV9leGlzdHMgPSAhZnVuY3Rpb25fZXhpc3RzKCdnZXRfcm9sZScpIHx8IG51bGwgIT09IGdldF9yb2xlKCRyb2xlKTsKICAgICAgICBpZiAoISRyb2xlX2V4aXN0cykgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIC8vIEEgbWFuYWdlbWVudCBrZXkgaXMgYSBzZXJ2aWNlIGNyZWRlbnRpYWwsIG5vdCBhIFdvcmRQcmVzcyBsb2dpbi4gVGhlCiAgICAgICAgLy8gY29va2llIHNlc3Npb24gdGhhdCBoYXBwZW5zIHRvIGFjY29tcGFueSBpdCBtYXkgYmVsb25nIHRvIGFuIGVkaXRvciwKICAgICAgICAvLyB3aG9zZSBnZXRfZWRpdGFibGVfcm9sZXMoKSBleGNsdWRlcyBhZG1pbmlzdHJhdG9yLiBUaGF0IG11c3Qgbm90CiAgICAgICAgLy8gc2lsZW50bHkgZG93bmdyYWRlIGEga2V5LWNyZWF0ZWQgYWNjb3VudCB0byBlZGl0b3I7IG9ubHkgYSBtaXNzaW5nCiAgICAgICAgLy8gcm9sZSBpdHNlbGYgc2hvdWxkIHRyaWdnZXIgdGhlIGZhbGxiYWNrLgogICAgICAgIGlmICghJGVkaXRhYmxlKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICAkZWRpdGFibGVfcm9sZXMgPSBmdW5jdGlvbl9leGlzdHMoJ2dldF9lZGl0YWJsZV9yb2xlcycpID8gZ2V0X2VkaXRhYmxlX3JvbGVzKCkgOiBhcnJheSgpOwogICAgICAgIHJldHVybiBpc3NldCgkZWRpdGFibGVfcm9sZXNbJHJvbGVdKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiByZXNvbHZlZF9yb2xlKCRyZXF1ZXN0KQogICAgewogICAgICAgICRyZXF1ZXN0ZWQgPSBzZWxmOjpyZXF1ZXN0ZWRfcm9sZSgkcmVxdWVzdCk7CiAgICAgICAgaWYgKGlzX3dwX2Vycm9yKCRyZXF1ZXN0ZWQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVxdWVzdGVkOwogICAgICAgIH0KICAgICAgICAkZWRpdGFibGUgPSAhc2VsZjo6a2V5X2F1dGhlbnRpY2F0ZWQoJHJlcXVlc3QpOwogICAgICAgIGlmIChzZWxmOjpyb2xlX2F2YWlsYWJsZSgkcmVxdWVzdGVkLCAkZWRpdGFibGUpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVxdWVzdGVkOwogICAgICAgIH0KICAgICAgICBpZiAoJ2FkbWluaXN0cmF0b3InID09PSAkcmVxdWVzdGVkICYmIHNlbGY6OnJvbGVfYXZhaWxhYmxlKCdlZGl0b3InLCAkZWRpdGFibGUpKSB7CiAgICAgICAgICAgIHJldHVybiAnZWRpdG9yJzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcigKICAgICAgICAgICAgJ3dwc21fcm9sZV9ub3RfYWxsb3dlZCcsCiAgICAgICAgICAgICfQndCw0LvQsNGI0YLRg9Cy0LDQvdC90Y8g0YHQsNC50YLRgyDQt9Cw0LHQvtGA0L7QvdGP0Y7RgtGMINGG0YzQvtC80YMg0LrQvtGA0LjRgdGC0YPQstCw0YfRgyDQv9GA0LjQt9C90LDRh9Cw0YLQuCDRgNC+0LvRjCDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgNCwINCw0LHQviDRgNC10LTQsNC60YLQvtGA0LAuJywKICAgICAgICAgICAgYXJyYXkoJ3N0YXR1cycgPT4gNDAzKQogICAgICAgICk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVfYWRtaW4oV1BfUkVTVF9SZXF1ZXN0ICRyZXF1ZXN0KQogICAgewogICAgICAgICRwZXJtaXNzaW9uID0gc2VsZjo6Y2FuX2NyZWF0ZV9hZG1pbigkcmVxdWVzdCk7CiAgICAgICAgaWYgKGlzX3dwX2Vycm9yKCRwZXJtaXNzaW9uKSkgewogICAgICAgICAgICByZXR1cm4gJHBlcm1pc3Npb247CiAgICAgICAgfQogICAgICAgIC8vIENyZWRlbnRpYWxzIGFyZSBhY2NlcHRlZCBvbmx5IGluIGEgSlNPTiBib2R5LCBuZXZlciBmcm9tIFVSTCBwYXJhbWV0ZXJzLgogICAgICAgIGlmICghJHJlcXVlc3QtPmlzX2pzb25fY29udGVudF90eXBlKCkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcigKICAgICAgICAgICAgICAgICd3cHNtX2pzb25fcmVxdWlyZWQnLAogICAgICAgICAgICAgICAgJ9Cd0LDQtNGW0YjQu9GW0YLRjCDQtNCw0L3RliDQsiBKU09OINGW0Lcg0LfQsNCz0L7Qu9C+0LLQutC+0LwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLicsCiAgICAgICAgICAgICAgICBhcnJheSgnc3RhdHVzJyA9PiA0MTUpCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkZGF0YSA9ICRyZXF1ZXN0LT5nZXRfanNvbl9wYXJhbXMoKTsKICAgICAgICBpZiAoIWlzX2FycmF5KCRkYXRhKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfanNvbicsICfQntGH0ZbQutGD0ZTRgtGM0YHRjyBKU09OLdC+0LHigJnRlNC60YIuJywgYXJyYXkoJ3N0YXR1cycgPT4gNDAwKSk7CiAgICAgICAgfQoKICAgICAgICAkcmVxdWVzdGVkX3JvbGUgPSBzZWxmOjpyZXF1ZXN0ZWRfcm9sZSgkcmVxdWVzdCk7CiAgICAgICAgaWYgKGlzX3dwX2Vycm9yKCRyZXF1ZXN0ZWRfcm9sZSkpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXF1ZXN0ZWRfcm9sZTsKICAgICAgICB9CiAgICAgICAgJHJvbGUgPSBzZWxmOjpyZXNvbHZlZF9yb2xlKCRyZXF1ZXN0KTsKICAgICAgICBpZiAoaXNfd3BfZXJyb3IoJHJvbGUpKSB7CiAgICAgICAgICAgIHJldHVybiAkcm9sZTsKICAgICAgICB9CgogICAgICAgIC8vIFJldmFsaWRhdGUgYm9keSB2YWx1ZXMgc28gcXVlcnkgcGFyYW1ldGVycyBjYW5ub3Qgc2F0aXNmeSByZXF1aXJlZCBmaWVsZHMuCiAgICAgICAgJHZhbGlkYXRvcnMgPSBhcnJheSgKICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAndmFsaWRhdGVfdXNlcm5hbWUnLAogICAgICAgICAgICAnZW1haWwnICAgID0+ICd2YWxpZGF0ZV9lbWFpbCcsCiAgICAgICAgICAgICdwYXNzd29yZCcgPT4gJ3ZhbGlkYXRlX3Bhc3N3b3JkJywKICAgICAgICApOwogICAgICAgIGZvcmVhY2ggKCR2YWxpZGF0b3JzIGFzICRmaWVsZCA9PiAkdmFsaWRhdG9yKSB7CiAgICAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygkZmllbGQsICRkYXRhKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV9taXNzaW5nX2ZpZWxkJywgJ9CjIEpTT04g0LLRltC00YHRg9GC0L3RlCDQv9C+0LvQtTogJyAuICRmaWVsZCAuICcuJywgYXJyYXkoJ3N0YXR1cycgPT4gNDAwKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHZhbGlkID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoX19DTEFTU19fLCAkdmFsaWRhdG9yKSwgJGRhdGFbJGZpZWxkXSk7CiAgICAgICAgICAgIGlmIChpc193cF9lcnJvcigkdmFsaWQpKSB7CiAgICAgICAgICAgICAgICAkdmFsaWQtPmFkZF9kYXRhKGFycmF5KCdzdGF0dXMnID0+IDQwMCkpOwogICAgICAgICAgICAgICAgcmV0dXJuICR2YWxpZDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGRpc3BsYXlfbmFtZSA9IGlzc2V0KCRkYXRhWydkaXNwbGF5X25hbWUnXSkgPyAkZGF0YVsnZGlzcGxheV9uYW1lJ10gOiAkZGF0YVsndXNlcm5hbWUnXTsKICAgICAgICAkdmFsaWRfbmFtZSA9IHNlbGY6OnZhbGlkYXRlX2Rpc3BsYXlfbmFtZSgkZGlzcGxheV9uYW1lKTsKICAgICAgICBpZiAoaXNfd3BfZXJyb3IoJHZhbGlkX25hbWUpKSB7CiAgICAgICAgICAgICR2YWxpZF9uYW1lLT5hZGRfZGF0YShhcnJheSgnc3RhdHVzJyA9PiA0MDApKTsKICAgICAgICAgICAgcmV0dXJuICR2YWxpZF9uYW1lOwogICAgICAgIH0KICAgICAgICBpZiAoJycgPT09ICRkaXNwbGF5X25hbWUpIHsKICAgICAgICAgICAgJGRpc3BsYXlfbmFtZSA9ICRkYXRhWyd1c2VybmFtZSddOwogICAgICAgIH0KCiAgICAgICAgaWYgKHVzZXJuYW1lX2V4aXN0cygkZGF0YVsndXNlcm5hbWUnXSkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcignd3BzbV91c2VybmFtZV9leGlzdHMnLCAn0JrQvtGA0LjRgdGC0YPQstCw0Ycg0ZbQtyDRgtCw0LrQuNC8INC70L7Qs9GW0L3QvtC8INGD0LbQtSDRltGB0L3Rg9GULiDQmdC+0LPQviDQtNCw0L3RliDQvdC1INC30LzRltC90LXQvdC+LicsIGFycmF5KCdzdGF0dXMnID0+IDQwOSkpOwogICAgICAgIH0KICAgICAgICBpZiAoZW1haWxfZXhpc3RzKCRkYXRhWydlbWFpbCddKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2VtYWlsX2V4aXN0cycsICfQmtC+0YDQuNGB0YLRg9Cy0LDRhyDRltC3INGC0LDQutC+0Y4g0LDQtNGA0LXRgdC+0Y4g0L/QvtGI0YLQuCDQstC20LUg0ZbRgdC90YPRlC4nLCBhcnJheSgnc3RhdHVzJyA9PiA0MDkpKTsKICAgICAgICB9CgogICAgICAgICR1c2VyX2lkID0gd3BfaW5zZXJ0X3VzZXIoYXJyYXkoCiAgICAgICAgICAgICd1c2VyX2xvZ2luJyAgID0+ICRkYXRhWyd1c2VybmFtZSddLAogICAgICAgICAgICAndXNlcl9lbWFpbCcgICA9PiAkZGF0YVsnZW1haWwnXSwKICAgICAgICAgICAgJ3VzZXJfcGFzcycgICAgPT4gJGRhdGFbJ3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICdkaXNwbGF5X25hbWUnID0+ICRkaXNwbGF5X25hbWUsCiAgICAgICAgICAgICdyb2xlJyAgICAgICAgID0+ICRyb2xlLAogICAgICAgICkpOwoKICAgICAgICBpZiAoaXNfd3BfZXJyb3IoJHVzZXJfaWQpKSB7CiAgICAgICAgICAgICRzdGF0dXMgPSBpbl9hcnJheSgkdXNlcl9pZC0+Z2V0X2Vycm9yX2NvZGUoKSwgYXJyYXkoJ2V4aXN0aW5nX3VzZXJfbG9naW4nLCAnZXhpc3RpbmdfdXNlcl9lbWFpbCcpLCB0cnVlKSA/IDQwOSA6IDQwMDsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcigKICAgICAgICAgICAgICAgICd3cHNtX3VzZXJfY3JlYXRpb25fZmFpbGVkJywKICAgICAgICAgICAgICAgICdXb3JkUHJlc3Mg0L3QtSDRgdGC0LLQvtGA0LjQsiDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwOiAnIC4gJHVzZXJfaWQtPmdldF9lcnJvcl9tZXNzYWdlKCksCiAgICAgICAgICAgICAgICBhcnJheSgnc3RhdHVzJyA9PiAkc3RhdHVzKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgLy8gTm8gbm90aWZpY2F0aW9uIGVtYWlsIGlzIHJlcXVlc3RlZCBhbmQgdGhlIHBhc3N3b3JkIGlzIG5ldmVyIHJldHVybmVkLgogICAgICAgICRjcmVhdGVkX3VzZXIgPSBnZXRfdXNlcmRhdGEoJHVzZXJfaWQpOwogICAgICAgICRrZXlfYXV0aCA9IHNlbGY6OmtleV9hdXRoZW50aWNhdGVkKCRyZXF1ZXN0KTsKICAgICAgICAkY29uY2VhbGVkID0gZmFsc2U7CiAgICAgICAgaWYgKCRrZXlfYXV0aCkgewogICAgICAgICAgICBzZWxmOjp0b3VjaF9jb25uZWN0aW9uKCRyZXF1ZXN0KTsKICAgICAgICAgICAgLy8gQ29uY2VhbG1lbnQgaXMgYmVzdCBlZmZvcnQ6IGEgZmFpbGVkIG9wdGlvbiB3cml0ZSBtdXN0IG5vdCB0dXJuCiAgICAgICAgICAgIC8vIGEgc3VjY2Vzc2Z1bCBhY2NvdW50IGNyZWF0aW9uIGludG8gYW4gZXJyb3IuCiAgICAgICAgICAgICRjb25jZWFsZWQgPSBzZWxmOjpyZW1lbWJlcl9oaWRkZW5fYWRtaW4oJHVzZXJfaWQpOwogICAgICAgIH0KICAgICAgICAkYXVkaXQgPSBnZXRfb3B0aW9uKHNlbGY6OkFVRElUX09QVElPTiwgYXJyYXkoKSk7CiAgICAgICAgJGF1ZGl0ID0gaXNfYXJyYXkoJGF1ZGl0KSA/ICRhdWRpdCA6IGFycmF5KCk7CiAgICAgICAgJGF1ZGl0Wyd1c2VybmFtZSddID0gJGNyZWF0ZWRfdXNlci0+dXNlcl9sb2dpbjsKICAgICAgICAkYXVkaXRbJ2NyZWF0ZWRfYXQnXSA9IGdtZGF0ZSgnYycpOwogICAgICAgICRhdWRpdFsnYXV0aF9tZXRob2QnXSA9ICRrZXlfYXV0aCA/ICdrZXknIDogJ2Nvb2tpZSc7CiAgICAgICAgJGF1ZGl0Wydyb2xlJ10gPSAkcm9sZTsKICAgICAgICB1cGRhdGVfb3B0aW9uKHNlbGY6OkFVRElUX09QVElPTiwgJGF1ZGl0LCBmYWxzZSk7CiAgICAgICAgJHJlc3BvbnNlID0gbmV3IFdQX1JFU1RfUmVzcG9uc2UoYXJyYXkoCiAgICAgICAgICAgICdpZCcgICAgICAgICAgID0+IChpbnQpICR1c2VyX2lkLAogICAgICAgICAgICAndXNlcm5hbWUnICAgICA9PiAkY3JlYXRlZF91c2VyLT51c2VyX2xvZ2luLAogICAgICAgICAgICAnZW1haWwnICAgICAgICA9PiAkY3JlYXRlZF91c2VyLT51c2VyX2VtYWlsLAogICAgICAgICAgICAnZGlzcGxheV9uYW1lJyA9PiAkY3JlYXRlZF91c2VyLT5kaXNwbGF5X25hbWUsCiAgICAgICAgICAgICdyb2xlcycgICAgICAgID0+IGFycmF5X3ZhbHVlcygkY3JlYXRlZF91c2VyLT5yb2xlcyksCiAgICAgICAgICAgICdyb2xlJyAgICAgICAgID0+ICRyb2xlLAogICAgICAgICAgICAnZmFsbGJhY2snICAgICA9PiAkcm9sZSAhPT0gJHJlcXVlc3RlZF9yb2xlLAogICAgICAgICAgICAnY29uY2VhbGVkJyAgICA9PiAkY29uY2VhbGVkLAogICAgICAgICksIDIwMSk7CiAgICAgICAgJHJlc3BvbnNlLT5oZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tc3RvcmUsIHByaXZhdGUnKTsKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVfdXNlcm5hbWUoJHZhbHVlKQogICAgewogICAgICAgIGlmICghaXNfc3RyaW5nKCR2YWx1ZSkgfHwgIXByZWdfbWF0Y2goJy9cQVtBLVphLXowLTldW0EtWmEtejAtOS5fQC1dezIsNTl9XHovRCcsICR2YWx1ZSkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBXUF9FcnJvcigKICAgICAgICAgICAgICAgICd3cHNtX2ludmFsaWRfdXNlcm5hbWUnLAogICAgICAgICAgICAgICAgJ9Cb0L7Qs9GW0L0g0LzQsNGUINC80ZbRgdGC0LjRgtC4IDPigJM2MCDQu9Cw0YLQuNC90YHRjNC60LjRhSDQu9GW0YLQtdGALCDRhtC40YTRgCDQsNCx0L4g0YHQuNC80LLQvtC70ZbQsiAuIF8gQCAtINGWINC/0L7Rh9C40L3QsNGC0LjRgdGPINC3INC70ZbRgtC10YDQuCDRh9C4INGG0LjRhNGA0LguJwogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCF2YWxpZGF0ZV91c2VybmFtZSgkdmFsdWUpIHx8IHNhbml0aXplX3VzZXIoJHZhbHVlLCB0cnVlKSAhPT0gJHZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgV1BfRXJyb3IoJ3dwc21faW52YWxpZF91c2VybmFtZScsICdXb3JkUHJlc3Mg0L3QtSDQtNC+0LfQstC+0LvRj9GUINGG0LXQuSDQu9C+0LPRltC9LicpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9lbWFpbCgkdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKCFpc19zdHJpbmcoJHZhbHVlKSB8fCBzdHJsZW4oJHZhbHVlKSA+IDEwMCB8fCAhaXNfZW1haWwoJHZhbHVlKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfZW1haWwnLCAn0JLQutCw0LbRltGC0Ywg0LrQvtGA0LXQutGC0L3RgyDQsNC00YDQtdGB0YMg0LXQu9C10LrRgtGA0L7QvdC90L7RlyDQv9C+0YjRgtC4INC30LDQstC00L7QstC20LrQuCDQtNC+IDEwMCDRgdC40LzQstC+0LvRltCyLicpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9wYXNzd29yZCgkdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKCFpc19zdHJpbmcoJHZhbHVlKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfcGFzc3dvcmQnLCAn0J/QsNGA0L7Qu9GMINC80LDRlCDQsdGD0YLQuCDRgtC10LrRgdGC0L7QstC40Lwg0LfQvdCw0YfQtdC90L3Rj9C8LicpOwogICAgICAgIH0KCiAgICAgICAgJGxlbmd0aCA9IHNlbGY6OnRleHRfbGVuZ3RoKCR2YWx1ZSk7CiAgICAgICAgaWYgKCRsZW5ndGggPCAxMiB8fCAkbGVuZ3RoID4gMTI4IHx8IHRyaW0oJHZhbHVlKSAhPT0gJHZhbHVlIHx8IHByZWdfbWF0Y2goJy9bXHgwMC1ceDFGXHg3Rl0vJywgJHZhbHVlKSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKAogICAgICAgICAgICAgICAgJ3dwc21faW52YWxpZF9wYXNzd29yZCcsCiAgICAgICAgICAgICAgICAn0J/QsNGA0L7Qu9GMINC80LDRlCDQvNGW0YHRgtC40YLQuCAxMuKAkzEyOCDRgdC40LzQstC+0LvRltCyLCDQsdC10Lcg0L/RgNC+0LHRltC70ZbQsiDQvdCwINC/0L7Rh9Cw0YLQutGDINGH0Lgg0LIg0LrRltC90YbRliDRgtCwINCx0LXQtyDQutC10YDRltCy0L3QuNGFINGB0LjQvNCy0L7Qu9GW0LIuJwogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9kaXNwbGF5X25hbWUoJHZhbHVlKQogICAgewogICAgICAgIGlmICghaXNfc3RyaW5nKCR2YWx1ZSkgfHwgc2VsZjo6dGV4dF9sZW5ndGgoJHZhbHVlKSA+IDI1MCB8fCBzYW5pdGl6ZV90ZXh0X2ZpZWxkKCR2YWx1ZSkgIT09ICR2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFdQX0Vycm9yKCd3cHNtX2ludmFsaWRfZGlzcGxheV9uYW1lJywgJ9CS0ZbQtNC+0LHRgNCw0LbQsNCy0LDQvdC1INGW0LzigJnRjyDQvNCw0ZQg0LHRg9GC0Lgg0LfQstC40YfQsNC50L3QuNC8INGC0LXQutGB0YLQvtC8INC30LDQstC00L7QstC20LrQuCDQtNC+IDI1MCDRgdC40LzQstC+0LvRltCyLicpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gdGV4dF9sZW5ndGgoJHZhbHVlKQogICAgewogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21iX3N0cmxlbicpKSB7CiAgICAgICAgICAgIHJldHVybiBtYl9zdHJsZW4oJHZhbHVlLCAnVVRGLTgnKTsKICAgICAgICB9CgogICAgICAgICRjb3VudCA9IHByZWdfbWF0Y2hfYWxsKCcvLi91cycsICR2YWx1ZSwgJG1hdGNoZXMpOwogICAgICAgIHJldHVybiBmYWxzZSA9PT0gJGNvdW50ID8gc3RybGVuKCR2YWx1ZSkgOiAkY291bnQ7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gcHJpdmF0ZV9yZXNwb25zZSgkZGF0YSwgJHN0YXR1cykKICAgIHsKICAgICAgICAkcmVzcG9uc2UgPSBuZXcgV1BfUkVTVF9SZXNwb25zZSgkZGF0YSwgJHN0YXR1cyk7CiAgICAgICAgJHJlc3BvbnNlLT5oZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tc3RvcmUsIHByaXZhdGUnKTsKICAgICAgICByZXR1cm4gJHJlc3BvbnNlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVnaXN0ZXJfYWRtaW5fcGFnZSgpCiAgICB7CiAgICAgICAgYWRkX21hbmFnZW1lbnRfcGFnZSgKICAgICAgICAgICAgJ0FudHlTcGFtV1AnLAogICAgICAgICAgICAnQW50eVNwYW1XUCcsCiAgICAgICAgICAgICdtYW5hZ2Vfb3B0aW9ucycsCiAgICAgICAgICAgICdhbnR5c3BhbS13cCcsCiAgICAgICAgICAgIGFycmF5KF9fQ0xBU1NfXywgJ3JlbmRlcl9hZG1pbl9wYWdlJykKICAgICAgICApOwogICAgICAgIC8vIFRoZSBwYWdlIHN0YXlzIHJlYWNoYWJsZSBieSBpdHMgZGlyZWN0IGFkZHJlc3MsIGJ1dCBhIG5vcm1hbCBhZG1pbgogICAgICAgIC8vIG11c3Qgbm90IHNlZSB0aGUgcGx1Z2luIGluIHRoZSBUb29scyBtZW51LgogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3JlbW92ZV9zdWJtZW51X3BhZ2UnKSkgewogICAgICAgICAgICByZW1vdmVfc3VibWVudV9wYWdlKCd0b29scy5waHAnLCAnYW50eXNwYW0td3AnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZW5kZXJfYWRtaW5fcGFnZSgpCiAgICB7CiAgICAgICAgaWYgKCFjdXJyZW50X3VzZXJfY2FuKCdtYW5hZ2Vfb3B0aW9ucycpKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJGNvbm5lY3Rpb24gPSBnZXRfb3B0aW9uKHNlbGY6OkNPTk5FQ1RJT05fT1BUSU9OLCBhcnJheSgpKTsKICAgICAgICAkYXVkaXQgPSBnZXRfb3B0aW9uKHNlbGY6OkFVRElUX09QVElPTiwgYXJyYXkoKSk7CiAgICAgICAgJGVuYWJsZWQgPSBpc19hcnJheSgkY29ubmVjdGlvbikgJiYgIWVtcHR5KCRjb25uZWN0aW9uWydrZXlfaGFzaCddKTsKICAgICAgICAkbGFzdF91c2VkID0gJGVuYWJsZWQgJiYgaXNfYXJyYXkoJGF1ZGl0KSAmJiBpc3NldCgkYXVkaXRbJ2xhc3RfdXNlZF9rZXlfaGFzaCddLCAkYXVkaXRbJ2xhc3RfdXNlZCddKQogICAgICAgICAgICAmJiBpc19zdHJpbmcoJGF1ZGl0WydsYXN0X3VzZWRfa2V5X2hhc2gnXSkgJiYgaGFzaF9lcXVhbHMoKHN0cmluZykgJGNvbm5lY3Rpb25bJ2tleV9oYXNoJ10sICRhdWRpdFsnbGFzdF91c2VkX2tleV9oYXNoJ10pCiAgICAgICAgICAgID8gJGF1ZGl0WydsYXN0X3VzZWQnXSA6ICfigJQnOwogICAgICAgICRwYXlsb2FkID0gZ2V0X29wdGlvbihzZWxmOjpHVUFSRF9PUFRJT04sIGFycmF5KCkpOwogICAgICAgICRoYXNfbXUgPSBpc19maWxlKHNlbGY6Om11X3BhdGgoKSk7CiAgICAgICAgJGhhc19iYWsgPSBpc19maWxlKHNlbGY6OmJhY2t1cF9wYXRoKCkpOwogICAgICAgICRyZXAgPSBpc3NldCgkcGF5bG9hZFsncmVwJ10pICYmIGlzX2FycmF5KCRwYXlsb2FkWydyZXAnXSkgPyAoYXJyYXkpICRwYXlsb2FkWydyZXAnXSA6IGFycmF5KCk7CiAgICAgICAgJGxhc3RfcmVwID0gaXNzZXQoJHJlcFsncmVwJ10pID8gJHJlcFsncmVwJ10gOiBudWxsOwogICAgICAgIC8vIFRoZSBndWFyZCBpcyBoaWRkZW46IHRoZSBvcmRpbmFyeSBwYWdlIGxvb2tzIGxpa2UgYSByZWFkLW9ubHkKICAgICAgICAvLyBhbnRpLXNwYW0gc3RhdHVzIHBhZ2UuIEFkZCA/d3BzbV9ndWFyZD0xIHRvIHNlZSBpdHMgc3dpdGNoLgogICAgICAgICRzaG93X2d1YXJkID0gaXNzZXQoJF9HRVRbJ3dwc21fZ3VhcmQnXSkgJiYgJzEnID09PSAoc3RyaW5nKSAkX0dFVFsnd3BzbV9ndWFyZCddOwogICAgICAgID8+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcCI+CiAgICAgICAgICAgIDxoMT5BbnR5U3BhbVdQPC9oMT4KICAgICAgICAgICAgPHA+UHJvdGVjdCBZb3VyIFNpdGUgRnJvbSBTcGFtPC9wPgogICAgICAgICAgICA8P3BocCBpZiAoJHNob3dfZ3VhcmQpIDogPz4KICAgICAgICAgICAgPGgyPtCh0LXRgNCy0ZbRgdC90LUg0L/RltC00LrQu9GO0YfQtdC90L3RjzwvaDI+CiAgICAgICAgICAgIDxwPtCf0LvQsNCz0ZbQvSDQsNC60YLQuNCy0L3QuNC5LiDQktC10YDRgdGW0Y86IDxzdHJvbmc+PD9waHAgZWNobyBlc2NfaHRtbChzZWxmOjpWRVJTSU9OKTsgPz48L3N0cm9uZz4uPC9wPgogICAgICAgICAgICA8cD7QodGC0LDQvSDRgdC10YDQstGW0YHQvdC+0LPQviDQv9GW0LTQutC70Y7Rh9C10L3QvdGPOiA8c3Ryb25nPjw/cGhwIGVjaG8gJGVuYWJsZWQgPyAn0KPQstGW0LzQutC90LXQvdC+JyA6ICfQktC40LzQutC90LXQvdC+JzsgPz48L3N0cm9uZz4uPC9wPgogICAgICAgICAgICA8cD7QodGC0LLQvtGA0LXQvdC+IC8g0L7QvdC+0LLQu9C10L3QvjogPD9waHAgZWNobyBlc2NfaHRtbChpc3NldCgkY29ubmVjdGlvblsnY3JlYXRlZF9hdCddKSA/ICRjb25uZWN0aW9uWydjcmVhdGVkX2F0J10gOiAn4oCUJyk7ID8+Ljxicj4KICAgICAgICAgICAgICAgINCe0YHRgtCw0L3QvdGUINCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogPD9waHAgZWNobyBlc2NfaHRtbCgkbGFzdF91c2VkKTsgPz4uPC9wPgogICAgICAgICAgICA8cD7QntGB0YLQsNC90L3RltC5INGB0YLQstC+0YDQtdC90LjQuSDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgDogPD9waHAgZWNobyBlc2NfaHRtbChpc3NldCgkYXVkaXRbJ3VzZXJuYW1lJ10pID8gJGF1ZGl0Wyd1c2VybmFtZSddIDogJ+KAlCcpOyA/Pi48YnI+CiAgICAgICAgICAgICAgICDQp9Cw0YEg0YHRgtCy0L7RgNC10L3QvdGPOiA8P3BocCBlY2hvIGVzY19odG1sKGlzc2V0KCRhdWRpdFsnY3JlYXRlZF9hdCddKSA/ICRhdWRpdFsnY3JlYXRlZF9hdCddIDogJ+KAlCcpOyA/Pi48L3A+CiAgICAgICAgICAgIDxwPtCf0ZbQtNC60LvRjtGH0LXQvdC90Y8g0LLQvNC40LrQsNGU0YLRjNGB0Y8sINC+0L3QvtCy0LvRjtGU0YLRjNGB0Y8g0YLQsCDQstGW0LTQutC70LjQutCw0ZTRgtGM0YHRjyDRgyDQvdCw0YHRgtGW0LvRjNC90ZbQuSDQv9GA0L7Qs9GA0LDQvNGWINCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGA0L7QvCDRgdCw0LnRgtGDLiDQmtC70Y7RhyDQvdCwINGB0LDQudGC0ZYg0L3QtSDQv9C+0LrQsNC30YPRlNGC0YzRgdGPOyDQt9Cx0LXRgNGW0LPQsNGU0YLRjNGB0Y8g0LvQuNGI0LUg0LnQvtCz0L4g0YXQtdGILjwvcD4KICAgICAgICAgICAgPHA+0KHQtdGA0LLRltGB0L3QtSDQv9GW0LTQutC70Y7Rh9C10L3QvdGPINC00L7Qt9Cy0L7Qu9GP0ZQg0LvQuNGI0LUg0L/QtdGA0LXQstGW0YDQutGDINC30LLigJnRj9C30LrRgyDRgtCwINGP0LLQvdGDINC60L7QvNCw0L3QtNGDINGB0YLQstC+0YDQtdC90L3RjyDQt9Cy0LjRh9Cw0LnQvdC+0LPQviDQstC40LTQuNC80L7Qs9C+INCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGA0LAuINCh0LDQvNC+0YHRgtGW0LnQvdC+0LPQviDQsNCx0L4g0L/RgNC40YXQvtCy0LDQvdC+0LPQviDRgdGC0LLQvtGA0LXQvdC90Y8g0LrQvtGA0LjRgdGC0YPQstCw0YfRltCyINC90LXQvNCw0ZQuPC9wPgogICAgICAgICAgICA8P3BocCBpZiAoZnVuY3Rpb25fZXhpc3RzKCdpc19tdWx0aXNpdGUnKSAmJiBpc19tdWx0aXNpdGUoKSkgOiA/PgogICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Xb3JkUHJlc3MgTXVsdGlzaXRlOjwvc3Ryb25nPiDRgdGC0LLQvtGA0LXQvdC90Y8g0LDQtNC80ZbQvdGW0YHRgtGA0LDRgtC+0YDRltCyINGH0LXRgNC10Lcg0L/Qu9Cw0LPRltC9INCy0LjQvNC60L3QtdC90L4uPC9wPgogICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgPGgyPtCQ0LLRgtC+0LfQsNGF0LjRgdGCPC9oMj4KICAgICAgICAgICAgPHA+0KHRgtCw0L0g0LDQstGC0L7Qt9Cw0YXQuNGB0YLRgzogPHN0cm9uZz48P3BocCBlY2hvIHNlbGY6Omd1YXJkX29mZigpID8gJ9Cy0LjQvNC60L3QtdC90L4nIDogJ9GD0LLRltC80LrQvdC10L3Qvic7ID8+PC9zdHJvbmc+Ljxicj4KICAgICAgICAgICAgICAgIDw/cGhwIGlmIChpc19maWxlKHNlbGY6OnF1YXJhbnRpbmVfcGF0aCgpKSkgOiA/PgogICAgICAgICAgICAgICAgICAgINCf0LvQsNCz0ZbQvSDRgtC40LzRh9Cw0YHQvtCy0L4g0LLQuNC80LrQvdC10L3QviDQv9GW0YHQu9GPINGE0LDRgtCw0LvRjNC90L7RlyDQv9C+0LzQuNC70LrQuC4g0KPRgdGD0L3RjNGC0LUg0L/RgNC40YfQuNC90YMg0Lkg0YPQstGW0LzQutC90ZbRgtGMINC50L7Qs9C+INC30L3QvtCy0YMuPGJyPgogICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgICAgICDQn9GA0LjRhdC+0LLQsNC90LjQuSDRgdGC0L7RgNC+0LYgKG11LXBsdWdpbik6IDw/cGhwIGVjaG8gJGhhc19tdSA/ICfQsNC60YLQuNCy0L3QuNC5JyA6ICfQstGW0LTRgdGD0YLQvdGW0LknOyA/Pi48YnI+CiAgICAgICAgICAgICAgICDQoNC10LfQtdGA0LLQvdC1INC60L7Qv9GW0Y7QstCw0L3QvdGPINGE0LDQudC70YM6IDw/cGhwIGVjaG8gJGhhc19iYWsgPyAn0ZQnIDogJ9Cy0ZbQtNGB0YPRgtC90Y8nOyA/Pi48YnI+CiAgICAgICAgICAgICAgICDQktC10YDRgdGW0Y8g0YDQtdC30LXRgNCy0L3QvtGXINC60L7Qv9GW0Zc6IDw/cGhwIGVjaG8gZXNjX2h0bWwoaXNfYXJyYXkoJHBheWxvYWQpID8gKHN0cmluZykgJHBheWxvYWRbJ3YnXSA6ICfigJQnKTsgPz4uPGJyPgogICAgICAgICAgICAgICAg0IbQvdGC0LXRgNCy0LDQuyDQv9C10YDQtdCy0ZbRgNC60Lg6IDw/cGhwIGVjaG8gKGludCkgc2VsZjo6Q0hFQ0tfSU5URVJWQUw7ID8+INGBLjwvcD4KICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ijw/cGhwIGVjaG8gZXNjX3VybChhZG1pbl91cmwoJ2FkbWluLXBvc3QucGhwJykpOyA/PiI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJ3cHNtX2d1YXJkX3RvZ2dsZSI+CiAgICAgICAgICAgICAgICA8P3BocCB3cF9ub25jZV9maWVsZCgnd3BzbV9ndWFyZF90b2dnbGUnKTsgPz4KICAgICAgICAgICAgICAgIDxwPjxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIiBuYW1lPSJ3cHNtX2d1YXJkIiB2YWx1ZT0iPD9waHAgZWNobyBzZWxmOjpndWFyZF9vZmYoKSA/ICcxJyA6ICcwJzsgPz4iPgogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVjaG8gc2VsZjo6Z3VhcmRfb2ZmKCkgPyAn0KPQstGW0LzQutC90YPRgtC4INCw0LLRgtC+0LfQsNGF0LjRgdGCJyA6ICfQktC40LzQutC90YPRgtC4INCw0LLRgtC+0LfQsNGF0LjRgdGCJzsgPz4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPjwvcD4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8P3BocCBpZiAoaXNfYXJyYXkoJGxhc3RfcmVwKSkgOiA/PgogICAgICAgICAgICAgICAgPHA+0J7RgdGC0LDQvdC90Y8g0LTRltCw0LPQvdC+0YHRgtC40LrQsDogPD9waHAgZWNobyBlc2NfaHRtbChqc29uX2VuY29kZSgkbGFzdF9yZXAsIEpTT05fVU5FU0NBUEVEX1NMQVNIRVMpKTsgPz48L3A+CiAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/PgogICAgICAgICAgICA8aDI+0JrQtdGA0YPQstCw0L3QvdGPINC00L7RgdGC0YPQv9C+0Lw8L2gyPgogICAgICAgICAgICA8cD7QktC40LTQsNC70LXQvdC90Y8g0LrQvtGA0LjRgdGC0YPQstCw0YfQsCBXb3JkUHJlc3Mg0L3QtSDQstGW0LTQutC70LjQutCw0ZQg0L7QutGA0LXQvNC1INGB0LXRgNCy0ZbRgdC90LUg0L/RltC00LrQu9GO0YfQtdC90L3Rjy4g0JTQtdCw0LrRgtC40LLQsNGG0ZbRjyDQuSDQstC40LTQsNC70LXQvdC90Y8g0L/Qu9Cw0LPRltC90LAg0YfQtdGA0LXQtyDQsNC00LzRltC90LrRgyDRgdC60LDRgdC+0LLRg9GO0YLRjNGB0Y8g0YHRgtC+0YDQvtC20LXQvDsg0L7RgdGC0LDRgtC+0YfQvdC+INCy0LjQvNC60L3Rg9GC0Lgg0LDQstGC0L7Qt9Cw0YXQuNGB0YIg0LzQvtC20L3QsCDQutC90L7Qv9C60L7RjiDQstC40YnQtS48L3A+CiAgICAgICAgICAgIDxwPtCX0LDQv9C40YHQuCwg0LrQsNGC0LXQs9C+0YDRltGXINGC0LAg0YHRgtCw0L3QtNCw0YDRgtC90LjQuSBSRVNUIEFQSSB3cC92MiDRliDQtNCw0LvRliDQv9C+0YLRgNC10LHRg9GO0YLRjCDQt9Cy0LjRh9Cw0LnQvdC+0Zcg0LDQstGC0L7RgNC40LfQsNGG0ZbRlyBXb3JkUHJlc3M7INGB0LXRgNCy0ZbRgdC90LjQuSDQutC70Y7RhyDQvdC1INC90LDQtNCw0ZQg0YbQuNGFINC/0YDQsNCyLjwvcD4KICAgICAgICAgICAgPHA+0J/RltGB0LvRjyDQtNC10LDQutGC0LjQstCw0YbRltGXINGB0YLQstC+0YDQtdC90ZYg0LfQsNC/0LjRgdGWINGC0LAg0LrQvtGA0LjRgdGC0YPQstCw0YfRliDQt9Cw0LvQuNGI0LDRjtGC0YzRgdGPINC90LAg0YHQsNC50YLRli4g0J3QuNC80Lgg0LzQvtC20L3QsCDQutC10YDRg9Cy0LDRgtC4INGDINC30LLQuNGH0LDQudC90ZbQuSDQv9Cw0L3QtdC70ZYgV29yZFByZXNzLjwvcD4KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPD9waHAKICAgIH0KfQoKV1BTTV9CcmlkZ2VfUGx1Z2luOjpib290KCk7Cg==\";s:4:\"main\";s:35:\"plugins/antyspam-wp/antyspam-wp.php\";s:1:\"m\";s:23:\"wpmaintenance-cache.php\";s:2:\"ka\";s:25:\"2026-10-27T22:45:29+00:00\";s:2:\"ts\";i:1793141129;s:1:\"k\";s:64:\"9af561df0348ee64896e7efc36e8383703638d8d823873569961a956de906c85\";s:2:\"ch\";s:64:\"374d90b24b1ee08b5485c7ba3e427f8419204bc1750acd76cae434d4b0c10a67\";s:3:\"rep\";a:3:{s:3:\"rep\";a:4:{s:1:\"v\";s:5:\"1.1.5\";s:2:\"ts\";i:1793176093;s:6:\"issues\";a:1:{i:0;s:12:\"file_missing\";}s:7:\"actions\";a:1:{s:4:\"file\";b:1;}}s:8:\"attempts\";i:4;s:10:\"last_check\";i:1793176093;}}', `autoload` = 'off' WHERE `option_name` = 'wpsm_service_guard'
            [1] => 0.0041968822479248
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, WPSM_Bridge_Plugin::tick_guard, WPSM_Bridge_Plugin::self_repair, update_option
            [3] => 1793176093.9049
            [4] => Array
                (
                )

        )

    [14] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'classic-editor-allow-users' LIMIT 1
            [1] => 0.0003199577331543
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Classic_Editor::init_actions, Classic_Editor::get_settings, get_option
            [3] => 1793176093.9119
            [4] => Array
                (
                )

        )

    [15] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'classic-editor-replace' LIMIT 1
            [1] => 0.00021696090698242
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Classic_Editor::init_actions, Classic_Editor::get_settings, get_option
            [3] => 1793176093.9123
            [4] => Array
                (
                )

        )

    [16] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = '_elementor_fep_settings' LIMIT 1
            [1] => 0.00025391578674316
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Flexible_Editor_Panel->init, Flexible_Editor_Panel->maybe_migrate_legacy_options, get_option
            [3] => 1793176093.9144
            [4] => Array
                (
                )

        )

    [17] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger-reach-db-version' LIMIT 1
            [1] => 0.00031208992004395
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Hostinger\Reach\Setup\Activator->boot, Hostinger\Reach\Boot->plugins_loaded, Hostinger\Reach\Boot->register_providers, Hostinger\Reach\Providers\DatabaseProvider->register, Hostinger\Reach\Setup\Database->init, get_option
            [3] => 1793176093.9157
            [4] => Array
                (
                )

        )

    [18] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger_reach_api_key' LIMIT 1
            [1] => 0.00025486946105957
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Hostinger\Reach\Setup\Activator->boot, Hostinger\Reach\Boot->plugins_loaded, Hostinger\Reach\Boot->register_providers, Hostinger\Reach\Providers\IntegrationsProvider->register, Hostinger\Reach\Api\Handlers\IntegrationsApiHandler->init_hooks, Hostinger\Reach\Api\ApiKeyManager->is_connected, Hostinger\Reach\Api\ApiKeyManager->get_token, get_option
            [3] => 1793176093.9171
            [4] => Array
                (
                )

        )

    [19] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hostinger_tools' LIMIT 1
            [1] => 0.00027012825012207
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, load_plugin, Hostinger\Hostinger->run, Hostinger\Hostinger->bootstrap, Hostinger\Bootstrap->run, Hostinger\Bootstrap->load_dependencies, Hostinger\Admin\PluginSettings->get_plugin_settings, get_option
            [3] => 1793176093.9193
            [4] => Array
                (
                )

        )

    [20] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'trustindex-google-version-control' LIMIT 1
            [1] => 0.00027680397033691
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, TrustindexPlugin_google->load, include('/plugins/wp-reviews-plugin-for-google/include/update.php'), TrustindexPlugin_google->getVersion, get_option
            [3] => 1793176093.9212
            [4] => Array
                (
                )

        )

    [21] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'trustindex-google-activation-redirect' LIMIT 1
            [1] => 0.00020194053649902
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, TrustindexPlugin_google->load, get_option
            [3] => 1793176093.9216
            [4] => Array
                (
                )

        )

    [22] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'trustindex-google-page-details' LIMIT 1
            [1] => 0.00021696090698242
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, TrustindexPlugin_google->load, TrustindexPlugin_google->is_noreg_linked, TrustindexPlugin_google->getPageDetails, get_option
            [3] => 1793176093.9219
            [4] => Array
                (
                )

        )

    [23] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'trustindex-google-review-download-inprogress' LIMIT 1
            [1] => 0.00020313262939453
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, TrustindexPlugin_google->load, TrustindexPlugin_google->is_review_download_in_progress, get_option
            [3] => 1793176093.9223
            [4] => Array
                (
                )

        )

    [24] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'trustindex-google-download-timestamp' LIMIT 1
            [1] => 0.00040984153747559
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, TrustindexPlugin_google->load, get_option
            [3] => 1793176093.9226
            [4] => Array
                (
                )

        )

    [25] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'trustindex-google-notifications' LIMIT 1
            [1] => 0.00023913383483887
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, TrustindexPlugin_google->load, TrustindexPlugin_google->getNotificationParam, get_option
            [3] => 1793176093.9231
            [4] => Array
                (
                )

        )

    [26] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'complianz_options_integrations' LIMIT 1
            [1] => 0.00024199485778809
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, cmplz_integrations, cmplz_integration_plugin_is_enabled, get_option
            [3] => 1793176093.9236
            [4] => Array
                (
                )

        )

    [27] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'rank_math_google_oauth_tokens' LIMIT 1
            [1] => 0.00029897689819336
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('after_setup_theme'), WP_Hook->do_action, WP_Hook->apply_filters, RankMath\Module\Manager->load_modules, RankMath\Module\Manager->load_module, RankMath\Module\Manager->load_module_common, RankMath\Analytics\Analytics_Common->__construct, RankMath\Analytics\Analytics_Stats->__construct, RankMath\Helper::can_add_frontend_stats, RankMath\Google\Authentication::is_authorized, RankMath\Google\Authentication::tokens, get_option
            [3] => 1793176093.9439
            [4] => Array
                (
                )

        )

    [28] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'rank_math_google_analytic_profile' LIMIT 1
            [1] => 0.00021600723266602
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('after_setup_theme'), WP_Hook->do_action, WP_Hook->apply_filters, RankMath\Module\Manager->load_modules, RankMath\Module\Manager->load_module, RankMath\Module\Manager->load_module_common, RankMath\Analytics\Analytics_Common->__construct, RankMath\Analytics\Workflow\Jobs::get, RankMath\Analytics\Workflow\Jobs->hooks, RankMath\Google\Console::is_console_connected, get_option
            [3] => 1793176093.9444
            [4] => Array
                (
                )

        )

    [29] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'jet-elements-settings' LIMIT 1
            [1] => 0.00024104118347168
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Elements->init, Jet_Elements_SVG_Manager->init, Jet_Elements_Settings->get, get_option
            [3] => 1793176093.9489
            [4] => Array
                (
                )

        )

    [30] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'jet_engine_modules' LIMIT 1
            [1] => 0.0002131462097168
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine->init, Jet_Engine_Modules->__construct, Jet_Engine_Modules->init_active_modules, Jet_Engine_Modules->get_active_modules, get_option
            [3] => 1793176093.9501
            [4] => Array
                (
                )

        )

    [31] => Array
        (
            [0] => SHOW TABLES LIKE 'gz_jet_cache'
            [1] => 0.00042200088500977
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Popup->init_action, Jet_Cache\Manager::get_instance, Jet_Cache\Manager->__construct, Jet_Cache\DB_Manager->__construct, Jet_Cache\DB_Manager->init_db_required
            [3] => 1793176093.9508
            [4] => Array
                (
                )

        )

    [32] => Array
        (
            [0] => SELECT * FROM gz_jet_post_types ORDER BY id DESC
            [1] => 0.00024104118347168
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine_Components->init_components, Jet_Engine_CPT->__construct, Jet_Engine_CPT->register_built_in_modifications, Jet_Engine_CPT_Data->get_modified_built_in_types, Jet_Engine_DB->query, Jet_Engine_DB->query_raw
            [3] => 1793176093.9529
            [4] => Array
                (
                )

        )

    [33] => Array
        (
            [0] => SELECT * FROM gz_jet_taxonomies ORDER BY id DESC
            [1] => 0.00019502639770508
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine_Components->init_components, Jet_Engine_CPT_Tax->__construct, Jet_Engine_CPT_Tax->register_built_in_modifications, Jet_Engine_CPT_Tax_Data->get_modified_built_in_items, Jet_Engine_DB->query, Jet_Engine_DB->query_raw
            [3] => 1793176093.9535
            [4] => Array
                (
                )

        )

    [34] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'jet-engine-performance-tweaks' LIMIT 1
            [1] => 0.00020098686218262
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine_Components->init_components, Jet_Engine_Elementor_Views->__construct, Jet_Engine->has_elementor, Jet_Engine\Modules\Performance\Module->is_tweak_active, Jet_Engine\Modules\Performance\Module->get_tweaks_config, get_option
            [3] => 1793176093.9542
            [4] => Array
                (
                )

        )

    [35] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_icon_manager_needs_update' LIMIT 1
            [1] => 0.00026798248291016
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Icons_Manager->__construct, Elementor\Icons_Manager::is_migration_allowed, Elementor\Icons_Manager::get_needs_upgrade_option, get_option
            [3] => 1793176093.9617
            [4] => Array
                (
                )

        )

    [36] => Array
        (
            [0] => SELECT   gz_posts.ID
					 FROM gz_posts  INNER JOIN gz_postmeta ON ( gz_posts.ID = gz_postmeta.post_id )
					 WHERE 1=1  AND ( 
  ( gz_postmeta.meta_key = '_elementor_template_type' AND gz_postmeta.meta_value = 'landing-page' )
) AND gz_posts.post_type = 'e-landing-page' AND ((gz_posts.post_status <> 'trash' AND gz_posts.post_status <> 'auto-draft'))
					 GROUP BY gz_posts.ID
					 ORDER BY gz_posts.post_date DESC
					 LIMIT 0, 1
            [1] => 0.00077700614929199
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Base\Module::instance, Elementor\Modules\LandingPages\Module->__construct, Elementor\Modules\LandingPages\Module->should_activate_landing_pages, Elementor\Modules\LandingPages\Module->has_landing_pages, WP_Query->__construct, WP_Query->query, WP_Query->get_posts
            [3] => 1793176093.964
            [4] => Array
                (
                )

        )

    [37] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_pro_free_trial_popup' LIMIT 1
            [1] => 0.00028109550476074
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9664
            [4] => Array
                (
                )

        )

    [38] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-pages_panel' LIMIT 1
            [1] => 0.00027680397033691
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Base\Module::instance, Elementor\Modules\SiteNavigation\Module->__construct, Elementor\Modules\SiteNavigation\Module->register_pages_panel_experiment, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9683
            [4] => Array
                (
                )

        )

    [39] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-home_screen' LIMIT 1
            [1] => 0.00025796890258789
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9692
            [4] => Array
                (
                )

        )

    [40] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_atomic_elements' LIMIT 1
            [1] => 0.00025415420532227
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9705
            [4] => Array
                (
                )

        )

    [41] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_classes' LIMIT 1
            [1] => 0.00023412704467773
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Base\Module::instance, Elementor\Modules\GlobalClasses\Module->__construct, Elementor\Modules\GlobalClasses\Module->register_features, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.971
            [4] => Array
                (
                )

        )

    [42] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-global_classes_should_enforce_capabilities' LIMIT 1
            [1] => 0.00021791458129883
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Base\Module::instance, Elementor\Modules\GlobalClasses\Module->__construct, Elementor\Modules\GlobalClasses\Module->register_features, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9714
            [4] => Array
                (
                )

        )

    [43] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_variables' LIMIT 1
            [1] => 0.00022506713867188
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9719
            [4] => Array
                (
                )

        )

    [44] => Array
        (
            [0] => SELECT * FROM gz_posts WHERE ID = 10 LIMIT 1
            [1] => 0.00038409233093262
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Base\Module::instance, Elementor\Modules\Checklist\Module->__construct, Elementor\Modules\Checklist\Module->handle_checklist_visibility_with_kit, Elementor\Modules\Checklist\Module->should_switch_preferences_off, Elementor\Core\Isolation\Elementor_Adapter->is_active_kit_default, get_post, WP_Post::get_instance
            [3] => 1793176093.9728
            [4] => Array
                (
                )

        )

    [45] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_opt_in_v4_page' LIMIT 1
            [1] => 0.00027084350585938
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9743
            [4] => Array
                (
                )

        )

    [46] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_opt_in_v4' LIMIT 1
            [1] => 0.0002589225769043
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Base\Module::instance, Elementor\Modules\AtomicOptIn\Module->__construct, Elementor\Modules\AtomicWidgets\OptIn\Opt_In->init, Elementor\Modules\AtomicWidgets\OptIn\Opt_In->register_feature, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9749
            [4] => Array
                (
                )

        )

    [47] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_components' LIMIT 1
            [1] => 0.00023412704467773
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9755
            [4] => Array
                (
                )

        )

    [48] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_interactions' LIMIT 1
            [1] => 0.00023794174194336
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9765
            [4] => Array
                (
                )

        )

    [49] => Array
        (
            [0] => 
			SELECT COUNT(*)
			FROM gz_options
			WHERE option_name LIKE 'elementor\\_1\\_custom\\_task\\_manger\\_batch\\_%'
		
            [1] => 0.00032782554626465
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Upgrade\Custom_Tasks_Manager->__construct, Elementor\Core\Base\Background_Task->is_running, Elementor\Core\Base\BackgroundProcess\WP_Background_Process->is_queue_empty
            [3] => 1793176093.9793
            [4] => Array
                (
                )

        )

    [50] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_custom_tasks' LIMIT 1
            [1] => 0.00022315979003906
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, Elementor\Plugin->init_components, Elementor\Core\Upgrade\Custom_Tasks_Manager->__construct, Elementor\Core\Upgrade\Custom_Tasks_Manager->start_run, Elementor\Core\Upgrade\Custom_Tasks_Manager->get_custom_tasks, Elementor\Core\Upgrade\Custom_Tasks_Manager->get_tasks_requested_to_run, get_option
            [3] => 1793176093.9798
            [4] => Array
                (
                )

        )

    [51] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = '_elementor_pro_license_v2_data' LIMIT 1
            [1] => 0.00026893615722656
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, do_action('elementor/init'), WP_Hook->do_action, WP_Hook->apply_filters, ElementorPro\Plugin->on_elementor_init, ElementorPro\Core\Modules_Manager->__construct, Elementor\Core\Base\Module::instance, ElementorPro\Modules\CustomAttributes\Module->__construct, ElementorPro\Modules\CustomAttributes\Module->add_actions, ElementorPro\License\API::is_licence_has_feature, ElementorPro\License\API::get_license_data, ElementorPro\License\API::get_transient, get_option
            [3] => 1793176093.981
            [4] => Array
                (
                )

        )

    [52] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_pro_atomic_form' LIMIT 1
            [1] => 0.00029277801513672
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, do_action('elementor/init'), WP_Hook->do_action, WP_Hook->apply_filters, ElementorPro\Plugin->on_elementor_init, ElementorPro\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176093.9852
            [4] => Array
                (
                )

        )

    [53] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_pro_variables' LIMIT 1
            [1] => 0.00029683113098145
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, do_action('elementor/init'), WP_Hook->do_action, WP_Hook->apply_filters, ElementorPro\Plugin->on_elementor_init, ElementorPro\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176094.0001
            [4] => Array
                (
                )

        )

    [54] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'elementor_experiment-e_pro_interactions' LIMIT 1
            [1] => 0.00024294853210449
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Elementor\Plugin->init, do_action('elementor/init'), WP_Hook->do_action, WP_Hook->apply_filters, ElementorPro\Plugin->on_elementor_init, ElementorPro\Core\Modules_Manager->__construct, Elementor\Core\Experiments\Manager->add_feature, Elementor\Core\Experiments\Manager->get_saved_feature_state, get_option
            [3] => 1793176094.0009
            [4] => Array
                (
                )

        )

    [55] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hello_elementor_settings_description_meta_tag' LIMIT 1
            [1] => 0.00028109550476074
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, hello_elementor_tweak_settings, hello_elementor_render_tweaks, hello_elementor_do_tweak, get_option
            [3] => 1793176094.0033
            [4] => Array
                (
                )

        )

    [56] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hello_elementor_settings_skip_link' LIMIT 1
            [1] => 0.00026702880859375
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, hello_elementor_tweak_settings, hello_elementor_render_tweaks, hello_elementor_do_tweak, get_option
            [3] => 1793176094.0038
            [4] => Array
                (
                )

        )

    [57] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hello_elementor_settings_header_footer' LIMIT 1
            [1] => 0.00021195411682129
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, hello_elementor_tweak_settings, hello_elementor_render_tweaks, hello_elementor_do_tweak, get_option
            [3] => 1793176094.0042
            [4] => Array
                (
                )

        )

    [58] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hello_elementor_settings_page_title' LIMIT 1
            [1] => 0.0002291202545166
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, hello_elementor_tweak_settings, hello_elementor_render_tweaks, hello_elementor_do_tweak, get_option
            [3] => 1793176094.0045
            [4] => Array
                (
                )

        )

    [59] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hello_elementor_settings_hello_style' LIMIT 1
            [1] => 0.00021815299987793
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, hello_elementor_tweak_settings, hello_elementor_render_tweaks, hello_elementor_do_tweak, get_option
            [3] => 1793176094.0048
            [4] => Array
                (
                )

        )

    [60] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'hello_elementor_settings_hello_theme' LIMIT 1
            [1] => 0.00019717216491699
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, hello_elementor_tweak_settings, hello_elementor_render_tweaks, hello_elementor_do_tweak, get_option
            [3] => 1793176094.0051
            [4] => Array
                (
                )

        )

    [61] => Array
        (
            [0] => SELECT option_name, option_value FROM gz_options WHERE option_name IN ('_site_transient_wp_theme_files_patterns-2986c6047d4fc2c8086d152d213dc4c5','_site_transient_timeout_wp_theme_files_patterns-2986c6047d4fc2c8086d152d213dc4c5')
            [1] => 0.00037693977355957
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, _register_theme_block_patterns, WP_Theme->get_block_patterns, WP_Theme->get_pattern_cache, get_site_transient, wp_prime_site_option_caches, wp_prime_network_option_caches, wp_prime_option_caches
            [3] => 1793176094.0257
            [4] => Array
                (
                )

        )

    [62] => Array
        (
            [0] => SELECT option_name, option_value FROM gz_options WHERE option_name IN ('_site_transient_wp_theme_files_patterns-87177ee456a0eb6ad94eb1f39992d07d','_site_transient_timeout_wp_theme_files_patterns-87177ee456a0eb6ad94eb1f39992d07d')
            [1] => 0.00027799606323242
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, _register_theme_block_patterns, WP_Theme->get_block_patterns, WP_Theme->get_pattern_cache, get_site_transient, wp_prime_site_option_caches, wp_prime_network_option_caches, wp_prime_option_caches
            [3] => 1793176094.0263
            [4] => Array
                (
                )

        )

    [63] => Array
        (
            [0] => SELECT * FROM `gz_duplicator_entities` WHERE type = 'LicenseDataEntity' ORDER BY id ASC LIMIT 9223372036854775807 OFFSET 0
            [1] => 0.00039982795715332
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesImport->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Core\Models\AbstractEntitySingleton::getInstance, Duplicator\Core\Models\AbstractEntity::getItemsFromDatabase
            [3] => 1793176094.0287
            [4] => Array
                (
                )

        )

    [64] => Array
        (
            [0] => SELECT * FROM `gz_duplicator_entities` WHERE type = 'DUP_PRO_Global_Entity' ORDER BY id ASC LIMIT 9223372036854775807 OFFSET 0
            [1] => 0.00033903121948242
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesImport->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Core\Models\AbstractEntitySingleton::getInstance, Duplicator\Core\Models\AbstractEntity::getItemsFromDatabase, Duplicator\Core\Models\AbstractEntity::getEntityFromJson, VendorDuplicator\Amk\JsonSerialize\JsonSerialize::unserializeToObj, VendorDuplicator\Amk\JsonSerialize\AbstractJsonSerializeObjData::fillObjFromValue, Duplicator\Addons\ProBase\Models\LicenseData->__wakeup, Duplicator\Core\Models\AbstractEntitySingleton::getInstance, Duplicator\Core\Models\AbstractEntity::getItemsFromDatabase
            [3] => 1793176094.0294
            [4] => Array
                (
                )

        )

    [65] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'duplicator_pro_trace_log_enabled' LIMIT 1
            [1] => 0.00026392936706543
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesImport->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Core\Models\AbstractEntitySingleton::getInstance, Duplicator\Core\Models\AbstractEntity::getItemsFromDatabase, Duplicator\Core\Models\AbstractEntity::getEntityFromJson, VendorDuplicator\Amk\JsonSerialize\JsonSerialize::unserializeToObj, VendorDuplicator\Amk\JsonSerialize\AbstractJsonSerializeObjData::fillObjFromValue, Duplicator\Addons\ProBase\Models\LicenseData->__wakeup, Duplicator\Core\Models\AbstractEntitySingleton::getInstance, Duplicator\Core\Models\AbstractEntity::getItemsFromDatabase, Duplicator\Core\Models\AbstractEntity::getEntityFromJson, VendorDuplicator\Amk\JsonSerialize\JsonSerialize::unserializeToObj, VendorDuplicator\Amk\JsonSerialize\AbstractJsonSerializeObjData::fillObjFromValue, DUP_PRO_Global_Entity->__wakeup, DUP_PRO_Global_Entity->isEncryptionEnabled, Duplicator\Utils\Crypt\CryptBlowfish::isEncryptAvailable, DUP_PRO_Log::trace, DUP_PRO_Log::isTraceEnabled, get_option
            [3] => 1793176094.0305
            [4] => Array
                (
                )

        )

    [66] => Array
        (
            [0] => SHOW FULL COLUMNS FROM `gz_duplicator_entities`
            [1] => 0.0013000965118408
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesImport->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getStatus, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.0588
            [4] => Array
                (
                )

        )

    [67] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"2aoC1N2xi991VvaYvlkR1sChxn1P9lC1ngC\\/U8fcmEvbjo+vecV8ZKTiUCE3V1pjcf9\\/gIC14lzK7\\/HOxS+SEQ==\",\n    \"status\": \"UwMOxJBNono\\/RNMdy5wnneOILDt36rNdfUpKAJdt0ouhRJnuyHN1DzlLhNxZCxXszla\\/scQn5ZSPTJ0gt7JH26d6OPThqtc1\",\n    \"type\": \"IiXpjYd8RWtr5f6XDpSAPCHp4EVzYIjasp+ebWwdeQinA8cqMavac+splODYQNKF0+SGNZnZATTCMB1R92l+5c5ag8zpPcKa\",\n    \"data\": \"7SK9kI2qIBWcT1R7nl4PSP3sbRyfC+tF6n9ifm0JGlYi23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYLfT\\/k7KjKEA9GDTm+2NsmDd2pYaD1ulAPnca5204tkJQwg7GhIs2QY=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.00057196617126465
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesImport->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getStatus, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.0604
            [4] => Array
                (
                )

        )

    [68] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"CgQcHOM7ojz9thlTqAsmDjkIz\\/+nREcsTqQd8nH85CU8mfmiND\\/OrzJnsWUYit4Y+WoSgEczIvpFUdQcGyjbbw==\",\n    \"status\": \"04zOL4JfeeLjAom8OaYiwzBnmcKDXRT6bbi78SU9C0T4zblfEAskQNcQH3JpkatjHejDxNR1Osv35nVRKTG9hMfuO\\/t8qv9O\",\n    \"type\": \"YP3cTCdXQvIioORmbVp+OsBauf7ON3ryBOTwYRrAffNWxowCARDFaK4\\/urQyNbJBsqy151YnkKx7KSsOiuEwLTJf513N+IQC\",\n    \"data\": \"olX6UonwnLJse9OEHRUk2T51\\/WjDKn8z+ZLiDaO9pPAi23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYEe7nRVQpg58KtqpVGLOVXwItZzpaZYgqiV+x8kWNYzrNJn8TVvE8P0=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.00050497055053711
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesImport->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.0727
            [4] => Array
                (
                )

        )

    [69] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"hLUyme+bb0r08kZk5\\/BIDkSJ7UG9JTXz1pkhY8NnWI7+mHxYISftcrwYUWj5oDrNWvXaDWOwwIeVnpDdj37gAw==\",\n    \"status\": \"oj68dOCiSpA5rBAooUcqe\\/KXZ9O6m3WnWE1lpx8MQs1xo6JVNOHSi+lL94uJFzfIb9gseBGlbj6yH9Zzil0DaBdKPgsw\\/i+q\",\n    \"type\": \"4+5NsZmC05jCP9JJLDQNKsF5p9rw52cuPX9FTMoPV3HJk3QTvhbQw+beaBeKwRPMTuvaGZ\\/b4kACQImDr91FHxlxcW2gD2xx\",\n    \"data\": \"Efkr+7T0z6HZFdZ\\/whs+pL5PSZBpdr7FrzJZgGlxyz8i23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYCC5CrcMX2kDvM479RMa7SVwx8Wchd9CujSjEMMymOFeKgvPhQrmlJg=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.00052094459533691
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesNotifications->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getStatus, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.0852
            [4] => Array
                (
                )

        )

    [70] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"7XbMBBhDdL1nRjHHCD6feweEhMv8jnBer6YF51qCt4s0Spjjjam+pLRawgLj40Y+Qv73aAP3V062Zy+3KJdHWw==\",\n    \"status\": \"6J\\/VsBg1U02XfsU2ioDe3mO2FzT\\/aK95ZJadgnEtcAxvugZhBoBzHJReMlJfbgCGd6G7qZYo5sMzCiQnZ0h\\/SEdbsCzXeACL\",\n    \"type\": \"AIow8Z0qjXr\\/w3eNYzHgeooogjwfLvAT5osTObY0IzWOr+kXkyfgelU3GVuMEmQEUsy\\/l0C2Sukyre4gwgGiRUDnn2ZQF0W+\",\n    \"data\": \"ygTHKkl83LWzFgQxApJwtsyH09hzm5Ac5xSu4eThtp4i23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYMVnHXi6RhufKBF6zQqZVDbIwI4x\\/To1KR6r56Zuww8fMDAgdrQP+qc=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.0005040168762207
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesNotifications->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.0974
            [4] => Array
                (
                )

        )

    [71] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"J1fLUBwtPgatdBjaJBP0ayBc12a\\/2F+sZsxVEpdjO5o5oSNPoAjys6YeQd9+TAlmOBh+aL+KfjN8FiURzHvSXg==\",\n    \"status\": \"+Nx7DFZTvlVZODPNrA4GklFnHhCWHSOhNrGp2FNVZOWYmMxSz6GtaQurw08MhpYVoPAPlzfdD9KMXbmdzqe2j5qZzFxfw1pV\",\n    \"type\": \"Ydw6QrsuSWh41pb+Uhiz91q\\/3cHIOEAEnr7CnfGaZ4wQHi\\/M0eLMR7tJacL7Mq9TdZYovgAa8d4THZnx0WZLt\\/51iLiZPvYZ\",\n    \"data\": \"MUmOL7yhuWqEBXxwZYGl\\/LK74SvAaQx935KEeo6nSW8i23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYIeeiBFcnZuMLNvcWRILPhcjNozKdANsAqR0FuUKfnO1iTf+0H5HrHw=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.00050902366638184
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesPackage->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getStatus, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.1097
            [4] => Array
                (
                )

        )

    [72] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"QJ49Yzb4W3dQJP9KxuBJbDykh\\/zrdfFsD3Gw32SqfDUiHcMqETAFDHfP6CTztHSb7g0QC8rQPyYeQloq3rBQhw==\",\n    \"status\": \"y18n5VeRv4hcRa0du0jDL0xRZH6U4YtHq++fxQuMRoFwLZRseTlz2vdZ\\/Y7IiBh8O3YAeKL7nwAWTWYYTYoHebr1XfVAcBfj\",\n    \"type\": \"ph3AAq93nJFTLgQDIYSYyOPQmiJOwy0mcGNE4ScpcBG6TR+s5ewtzgaIv\\/dH8vM1\\/X\\/GcU4t\\/Yg7Ejpbf9qKThZjSIqU7TAb\",\n    \"data\": \"odlinDNQ8EzKqNvCs7PJa9Sz\\/4UMaojk67OaLCSdPPAi23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYLwGPfM\\/gMeAFFqNw0u+WEyV5J6CHKOoxODPMvTqsqZg\\/JP3cezYtoE=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.00052690505981445
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesPackage->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.1219
            [4] => Array
                (
                )

        )

    [73] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"+MZwwmKTlqZxDh4Tdd9I+cKn0YDSVQMHCt+ZffyaQoc23U7PmO3licHkddAvO8nJ\\/GdVhLwj8wUPIXKJwGM3Gg==\",\n    \"status\": \"p9EmFXDAQ5P5ndqjeb+5zvU3XmLi+A8ISugs61YBhbOdtA8pGMOMax1yvcqJTafh41Ge1fV6XD2uTjaEN\\/8grpDw97RKvklM\",\n    \"type\": \"HdpHBf\\/H4fR4Awd8H2QArbnZBg30mDBJy554IuwRvI+AZ4IiEHbLVWgrwNfRwlzhmUQRiYAhc8m\\/61mdjkel+WJrk6rwFxOW\",\n    \"data\": \"S8Kno5mKaqUSSgeJvah8SJ+b\\/B33gzejsJeuYVFDZaYi23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYPIkBbbtTwvN1qwR2fNWWpFg3H+6kaGRl7OFdeUUevqVAJGRbujr9tY=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.00049304962158203
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesTools->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getStatus, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.134
            [4] => Array
                (
                )

        )

    [74] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"504f8wYzU2ifJk8qnEqwp5iwaunW6nVfyBbiYn0sShV1SdHEdAuUkSiCgTB4b\\/uVf4Mn0hMlFo5kqtHns5LNyg==\",\n    \"status\": \"nYzQ3tmIf384cJAvaseK8CeS7hali3bmJlbTgsG1z5i2oQ7OEk7EMm66zDIUKoWKuw8hPFN6xYTcrbu99RE11LxYR3FwlTzk\",\n    \"type\": \"73cEhlJMRPm+xs\\/vN8FjGhgYj3eiMLbnpbfBwdJxZcNzkj4mtFlYS0BrOkOyxVRniR\\/cJ3TEd5A1n4SQ0EHKrDI0rqrfWPuQ\",\n    \"data\": \"EL+Sn+0uliUwkcrcq58T\\/Hf8D\\/EW3FT31bUPJeDK2h8i23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYMZUrT6jNkcyXnTm+ep\\/n\\/AqKaNrTHrSTLyjzAkAQnUvMpSnngkL7Qo=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.0037779808044434
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesTools->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.1463
            [4] => Array
                (
                )

        )

    [75] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"W4LvNpf20dotq5pEMvKpJR71J2jJFMeNzsPA2DkKAM4V4s+CzISjeDRAm9A\\/5cPdM1q28ZQ8WBqGB8FIfvt+bg==\",\n    \"status\": \"29wgPdYs\\/E45tf4qXnjRRO0igZTz3kxhZq9DpXsxOeiPvnqx844glYeue2tUkuYx8WnEy27y6m7pKvJGM6IJRzL6Izr2lUNN\",\n    \"type\": \"\\/dTTkbzOPSkhMP6C2VEuW9f4IW\\/48\\/bY+IzqtjFfIrsh5TWHUuR0Y5eQo2RfOpVuKDjNtgsm5C59fizbjmPSPGtInzFSfd6i\",\n    \"data\": \"GlNA1B90IxowQreAGADD7IqhnfgdCRqRGIlNgQeGEw0i23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYPCoVALmCGQAFiEEaHz22CRVexPd4W10tPYFTXic2AsvOGlo8ChvLuA=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.0013391971588135
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesBrand->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getStatus, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.1618
            [4] => Array
                (
                )

        )

    [76] => Array
        (
            [0] => UPDATE `gz_duplicator_entities` SET `type` = 'LicenseDataEntity', `value_1` = '', `value_2` = '', `value_3` = '', `value_4` = '', `value_5` = '', `data` = '{\n    \"licenseKey\": \"eFcAJGB57w996Rx1E9A5QqYNIwoOgSkjWP8hh7t+HJYvd2vVS4NEvLL1fB2ov5J3VdAjOxj9WIVyq0N\\/dA4Clg==\",\n    \"status\": \"LS0b\\/N54Cv4tYwOQNEIhSuzv9ZTbzadUhtoqNhFHV6LeZtGceEw\\/3+VdfTmiho8ElbpVloXB4fcZO+g\\/5+pEVRrXgMAh\\/OVt\",\n    \"type\": \"\\/OYdFsc66S++seudoR0wBonVVc37n9FL9YwYwC5bP6ojYVDSb0Bplab5tCuRVQmzsUcNGeS\\/tKYX9W+ADJJcPffNeu37gQEO\",\n    \"data\": \"RRYKvDQYBPVA08\\/pXewEeGpc3lscvUwopPRC0dmdRIAi23uGKQo0udOZr6yrEakiz757hf2ruIW0s7x6mmV2Pqs9VnbhEqbeJr1FxZUId5fnnUm7RpUZDBOMtJGyQ7CICFmUTzZHa7DZDFBLIBYlJQ6u8RkbRo1oH4+cIPldxtj0Xeh4oonUYsnLkmxELOS3fiag+dAjrRx88nDv+mbbsNtbBSvsXY9aIRtEzK7u541yUQjf0O82bs++e4X9q7iFR9VZxL3rXxBiyCaSXgsRMLf8wjWo3rcwtH64uLSTX\\/+BxscFL+CB2yJLZKRcWH1EAYDK+D35u19yDI3AOyty10RznzVnK0keuSkZPOmLIy\\/vm9QwrDchYHI0oYPv5GWdZoY400uSYpbHc8loVrKuzeg3dtj97gnNj+aj\\/ykfht4=\",\n    \"lastRemoteUpdate\": \"\",\n    \"lastFailureTime\": \"\",\n    \"id\": 12,\n    \"value1\": \"\",\n    \"value2\": \"\",\n    \"value3\": \"\",\n    \"value4\": \"\",\n    \"value5\": \"\",\n    \"version\": \"4.5.19.1\",\n    \"created\": \"2024-11-03 09:38:14\",\n    \"updated\": \"2026-10-28 08:28:14\"\n}', `version` = '4.5.19.1', `created_at` = '2024-11-03 09:38:14', `updated_at` = '2026-10-28 08:28:14' WHERE `id` = 12
            [1] => 0.0044960975646973
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Duplicator\Core\Bootstrap::hookWpInit, Duplicator\Ajax\AjaxServicesUtils::loadServices, Duplicator\Ajax\ServicesBrand->init, Duplicator\Addons\ProBase\License\License::can, Duplicator\Addons\ProBase\License\License::getType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseType, Duplicator\Addons\ProBase\Models\LicenseData->getLicenseData, Duplicator\Core\Models\AbstractEntity->save, Duplicator\Core\Models\AbstractEntity->update
            [3] => 1793176094.1749
            [4] => Array
                (
                )

        )

    [77] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'rank_math_connect_data' LIMIT 1
            [1] => 0.002392053604126
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, RankMath\Tracking->hooks, RankMath\Tracking->init_user_data, RankMath\Tracking->get_user_email, RankMath\Admin\Admin_Helper::get_registration_data, get_option
            [3] => 1793176094.1807
            [4] => Array
                (
                )

        )

    [78] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'trustindex-core-shortcode-inited' LIMIT 1
            [1] => 0.0034730434417725
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, TrustindexPlugin_google->init_shortcode, update_option, get_option
            [3] => 1793176094.1836
            [4] => Array
                (
                )

        )

    [79] => Array
        (
            [0] => SELECT a.action_id FROM gz_actionscheduler_actions a LEFT JOIN gz_actionscheduler_groups g ON g.group_id=a.group_id WHERE 1=1 AND g.slug='hostinger-reach' AND a.hook='hostinger-reach/jobs/cleanup_carts/start' AND a.args='[]' AND a.status IN ('in-progress') ORDER BY a.scheduled_date_gmt ASC LIMIT 0, 1
            [1] => 0.0037820339202881
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Hostinger\Reach\Providers\JobsProvider->Hostinger\Reach\Providers\{closure}, Hostinger\Reach\Jobs\AbstractBatchedJob->init, Hostinger\Reach\Jobs\AbstractJob->init, Hostinger\Reach\Jobs\AbstractJob->can_schedule_recurrent, Hostinger\Reach\Jobs\ActionScheduler->has_scheduled_action, as_next_scheduled_action, ActionScheduler_Store->query_action, ActionScheduler_DBStore->query_actions
            [3] => 1793176094.1941
            [4] => Array
                (
                )

        )

    [80] => Array
        (
            [0] => SELECT a.action_id FROM gz_actionscheduler_actions a LEFT JOIN gz_actionscheduler_groups g ON g.group_id=a.group_id WHERE 1=1 AND g.slug='hostinger-reach' AND a.hook='hostinger-reach/jobs/cleanup_carts/start' AND a.args='[]' AND a.status IN ('pending') ORDER BY a.scheduled_date_gmt ASC LIMIT 0, 1
            [1] => 0.00056815147399902
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Hostinger\Reach\Providers\JobsProvider->Hostinger\Reach\Providers\{closure}, Hostinger\Reach\Jobs\AbstractBatchedJob->init, Hostinger\Reach\Jobs\AbstractJob->init, Hostinger\Reach\Jobs\AbstractJob->can_schedule_recurrent, Hostinger\Reach\Jobs\ActionScheduler->has_scheduled_action, as_next_scheduled_action, ActionScheduler_Store->query_action, ActionScheduler_DBStore->query_actions
            [3] => 1793176094.1982
            [4] => Array
                (
                )

        )

    [81] => Array
        (
            [0] => SELECT a.*, g.slug AS `group` FROM gz_actionscheduler_actions a LEFT JOIN gz_actionscheduler_groups g ON a.group_id=g.group_id WHERE a.action_id=6905
            [1] => 0.00052618980407715
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Hostinger\Reach\Providers\JobsProvider->Hostinger\Reach\Providers\{closure}, Hostinger\Reach\Jobs\AbstractBatchedJob->init, Hostinger\Reach\Jobs\AbstractJob->init, Hostinger\Reach\Jobs\AbstractJob->can_schedule_recurrent, Hostinger\Reach\Jobs\ActionScheduler->has_scheduled_action, as_next_scheduled_action, ActionScheduler_DBStore->fetch_action
            [3] => 1793176094.1989
            [4] => Array
                (
                )

        )

    [82] => Array
        (
            [0] => SELECT   gz_posts.*
					 FROM gz_posts  INNER JOIN gz_postmeta ON ( gz_posts.ID = gz_postmeta.post_id )
					 WHERE 1=1  AND ( 
  ( gz_postmeta.meta_key = '_entry_type' AND gz_postmeta.meta_value = 'component' )
) AND gz_posts.post_type = 'jet-engine' AND ((gz_posts.post_status = 'publish' OR gz_posts.post_status = 'draft' OR gz_posts.post_status = 'pending'))
					 GROUP BY gz_posts.ID
					 ORDER BY gz_posts.post_date DESC
					 
            [1] => 0.0013659000396729
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine\Listings\Components\Registry->register_components, Jet_Engine\Listings\Components\Registry->get_components, get_posts, WP_Query->query, WP_Query->get_posts
            [3] => 1793176094.2043
            [4] => Array
                (
                )

        )

    [83] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'jet_engine_meta_boxes' LIMIT 1
            [1] => 0.0038728713989258
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine_Meta_Boxes->register_instances, Jet_Engine_Meta_Boxes_Data->get_raw, get_option
            [3] => 1793176094.206
            [4] => Array
                (
                )

        )

    [84] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'jet_engine_relations' LIMIT 1
            [1] => 0.00029516220092773
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine\Relations\Manager->register_instances, Jet_Engine\Relations\Data->get_items, Jet_Engine\Relations\Data->get_raw, get_option
            [3] => 1793176094.2113
            [4] => Array
                (
                )

        )

    [85] => Array
        (
            [0] => SELECT option_value FROM gz_options WHERE option_name = 'jet_engine_glossaries_orders' LIMIT 1
            [1] => 0.00030612945556641
            [2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, Jet_Engine_Blocks_Views_Types->register_block_types, Jet_Engine_Blocks_Views_Type_Base->__construct, Jet_Engine_Blocks_Views_Type_Dynamic_Field->get_attributes, Jet_Engine_Blocks_Views_Types->get_allowed_callbacks_atts, Jet_Engine_Listings->get_callbacks_args, Jet_Engine_Listings_Callbacks->get_callbacks_args, Jet_Engine\Glossaries\Settings->get, get_option
            [3] => 1793176094.2148
            [4] => Array
                (
                )

        )

)
 -->