PixelYourSite – Facebook Pixel (Events, WooCommerce & Easy Digital Downloads) - Version 8.0.3

Version Description

Download this release

Release Info

Developer PixelYourSite
Plugin Icon 128x128 PixelYourSite – Facebook Pixel (Events, WooCommerce & Easy Digital Downloads)
Version 8.0.3
Comparing to
See all releases

Code changes from version 8.0.2 to 8.0.3

Files changed (98) hide show
  1. dist/scripts/public.js +1 -1
  2. facebook-pixel-master.php +1 -1
  3. includes/functions-common.php +1 -1
  4. modules/facebook/function-helpers.php +1 -1
  5. notices/0_clean.php +2 -1
  6. notices/1_from_pre_7x.php +2 -1
  7. notices/7_1_0.php +1 -1
  8. notices/7_1_8.php +15 -3
  9. notices/8_0_3.php +55 -0
  10. pixelyoursite.php +1 -1
  11. readme.txt +8 -1
  12. vendor/composer/autoload_classmap.php +8 -9
  13. vendor/composer/autoload_static.php +8 -9
  14. vendor_prefix/guzzlehttp/guzzle/Dockerfile +0 -18
  15. vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php +23 -0
  16. vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php +12 -0
  17. vendor_prefix/guzzlehttp/guzzle/src/Client.php +73 -101
  18. vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php +9 -13
  19. vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php +227 -0
  20. vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php +48 -47
  21. vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php +8 -11
  22. vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php +22 -14
  23. vendor_prefix/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php +14 -10
  24. vendor_prefix/guzzlehttp/guzzle/src/Cookie/SetCookie.php +69 -65
  25. vendor_prefix/guzzlehttp/guzzle/src/Exception/BadResponseException.php +16 -4
  26. vendor_prefix/guzzlehttp/guzzle/src/Exception/ConnectException.php +25 -9
  27. vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php +3 -18
  28. vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php +30 -53
  29. vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php +0 -25
  30. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactory.php +84 -67
  31. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php +2 -5
  32. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlHandler.php +8 -4
  33. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php +61 -28
  34. vendor_prefix/guzzlehttp/guzzle/src/Handler/EasyHandle.php +41 -12
  35. vendor_prefix/guzzlehttp/guzzle/src/Handler/MockHandler.php +56 -39
  36. vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php +13 -10
  37. vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php +98 -71
  38. vendor_prefix/guzzlehttp/guzzle/src/HandlerStack.php +49 -57
  39. vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php +32 -20
  40. vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php +17 -0
  41. vendor_prefix/guzzlehttp/guzzle/src/Middleware.php +56 -50
  42. vendor_prefix/guzzlehttp/guzzle/src/Pool.php +21 -22
  43. vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php +11 -16
  44. vendor_prefix/guzzlehttp/guzzle/src/RedirectMiddleware.php +28 -48
  45. vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php +31 -31
  46. vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php +31 -39
  47. vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php +23 -19
  48. vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php +0 -191
  49. vendor_prefix/guzzlehttp/guzzle/src/Utils.php +293 -31
  50. vendor_prefix/guzzlehttp/guzzle/src/functions.php +53 -189
  51. vendor_prefix/guzzlehttp/guzzle/src/functions_include.php +1 -1
  52. vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey +0 -5
  53. vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +0 -11
  54. vendor_prefix/paragonie/random_compat/lib/byte_safe_strings.php +0 -147
  55. vendor_prefix/paragonie/random_compat/lib/cast_to_int.php +0 -68
  56. vendor_prefix/paragonie/random_compat/lib/error_polyfill.php +0 -47
  57. vendor_prefix/paragonie/random_compat/lib/random.php +0 -171
  58. vendor_prefix/paragonie/random_compat/lib/random_bytes_com_dotnet.php +0 -81
  59. vendor_prefix/paragonie/random_compat/lib/random_bytes_dev_urandom.php +0 -173
  60. vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium.php +0 -81
  61. vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php +0 -82
  62. vendor_prefix/paragonie/random_compat/lib/random_bytes_mcrypt.php +0 -68
  63. vendor_prefix/paragonie/random_compat/lib/random_int.php +0 -181
  64. vendor_prefix/paragonie/random_compat/phpunit-autoload.php +0 -15
  65. vendor_prefix/psr/http-client/src/ClientExceptionInterface.php +10 -0
  66. vendor_prefix/psr/http-client/src/ClientInterface.php +19 -0
  67. vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php +23 -0
  68. vendor_prefix/psr/http-client/src/RequestExceptionInterface.php +23 -0
  69. vendor_prefix/symfony/polyfill-intl-idn/Idn.php +0 -716
  70. vendor_prefix/symfony/polyfill-intl-idn/Info.php +0 -22
  71. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php +0 -286
  72. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php +0 -21
  73. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/deviation.php +0 -5
  74. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php +0 -5
  75. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php +0 -5
  76. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php +0 -5
  77. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/ignored.php +0 -5
  78. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/mapped.php +0 -5
  79. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/virama.php +0 -5
  80. vendor_prefix/symfony/polyfill-intl-idn/bootstrap.php +0 -151
  81. vendor_prefix/symfony/polyfill-intl-normalizer/Normalizer.php +0 -257
  82. vendor_prefix/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php +0 -20
  83. vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalComposition.php +0 -5
  84. vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php +0 -5
  85. vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php +0 -5
  86. vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php +0 -5
  87. vendor_prefix/symfony/polyfill-intl-normalizer/bootstrap.php +0 -25
  88. vendor_prefix/symfony/polyfill-php70/Php70.php +0 -67
  89. vendor_prefix/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php +0 -8
  90. vendor_prefix/symfony/polyfill-php70/Resources/stubs/AssertionError.php +0 -8
  91. vendor_prefix/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php +0 -8
  92. vendor_prefix/symfony/polyfill-php70/Resources/stubs/Error.php +0 -8
  93. vendor_prefix/symfony/polyfill-php70/Resources/stubs/ParseError.php +0 -8
  94. vendor_prefix/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php +0 -25
  95. vendor_prefix/symfony/polyfill-php70/Resources/stubs/TypeError.php +0 -8
  96. vendor_prefix/symfony/polyfill-php70/bootstrap.php +0 -37
  97. vendor_prefix/symfony/polyfill-php72/Php72.php +0 -176
  98. vendor_prefix/symfony/polyfill-php72/bootstrap.php +0 -80
dist/scripts/public.js CHANGED
@@ -839,7 +839,7 @@ if (!Array.prototype.includes) {
839
  success: function () {
840
  },
841
  });
842
- }, 1000, json);
843
  //}
844
  }
845
  }
839
  success: function () {
840
  },
841
  });
842
+ }, 500, json);
843
  //}
844
  }
845
  }
facebook-pixel-master.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No codding <strong>Facebook Pixel</strong> and <strong>Google Analytics</strong> install. Track key actions with our Global Events, or configure your own events. WooCommerce and EDD fully supported, with Facebook Dynamic Ads Pixel set-up and Google Analytics Enhanced Ecommerce. Insert any custom script with our Head & Footer option. Add the <strong>Pinterest Tag</strong> with our free add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff.
7
- * Version: 8.0.2
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No codding <strong>Facebook Pixel</strong> and <strong>Google Analytics</strong> install. Track key actions with our Global Events, or configure your own events. WooCommerce and EDD fully supported, with Facebook Dynamic Ads Pixel set-up and Google Analytics Enhanced Ecommerce. Insert any custom script with our Head & Footer option. Add the <strong>Pinterest Tag</strong> with our free add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff.
7
+ * Version: 8.0.3
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
includes/functions-common.php CHANGED
@@ -704,7 +704,7 @@ function sanitizeParams( $params ) {
704
  } elseif ( is_bool( $value ) ) {
705
  $sanitized[ $key ] = (bool) $value;
706
  } else {
707
- $sanitized[ $key ] = stripslashes(htmlentities( $value ));
708
  }
709
 
710
  }
704
  } elseif ( is_bool( $value ) ) {
705
  $sanitized[ $key ] = (bool) $value;
706
  } else {
707
+ $sanitized[ $key ] = stripslashes(html_entity_decode( $value ));
708
  }
709
 
710
  }
modules/facebook/function-helpers.php CHANGED
@@ -365,7 +365,7 @@ function getWooCartParams( $context = 'cart' ) {
365
  if ( isDefaultWooContentIdLogic() ) {
366
 
367
  // Facebook for WooCommerce plugin does not support new Dynamic Ads parameters
368
- $params['contents'] = json_encode( $contents );
369
 
370
  }
371
 
365
  if ( isDefaultWooContentIdLogic() ) {
366
 
367
  // Facebook for WooCommerce plugin does not support new Dynamic Ads parameters
368
+ $params['contents'] = ( $contents );
369
 
370
  }
371
 
notices/0_clean.php CHANGED
@@ -20,7 +20,8 @@ function adminGetPromoNoticesContent() {
20
 
21
 
22
  ],
23
- 'next' => '7_1_8'
 
24
 
25
  ];
26
  }
20
 
21
 
22
  ],
23
+
24
+ 'next' => '8_0_3'
25
 
26
  ];
27
  }
notices/1_from_pre_7x.php CHANGED
@@ -17,7 +17,8 @@ function adminGetPromoNoticesContent() {
17
  'no_woo_no_edd' => [
18
 
19
  ],
20
- 'next' => '7_1_8'
 
21
 
22
  ];
23
  }
17
  'no_woo_no_edd' => [
18
 
19
  ],
20
+
21
+ 'next' => '8_0_3'
22
 
23
  ];
24
  }
notices/7_1_0.php CHANGED
@@ -18,7 +18,7 @@ function adminGetPromoNoticesContent() {
18
 
19
  ],
20
 
21
- 'next' => '7_1_8'
22
 
23
  ];
24
  }
18
 
19
  ],
20
 
21
+ 'next' => '8_0_3'
22
 
23
  ];
24
  }
notices/7_1_8.php CHANGED
@@ -14,7 +14,11 @@ function adminGetPromoNoticesContent() {
14
  'disabled' => false,
15
  // 'from' => 1,
16
  // 'to' => 2,
17
- 'content' => '</br>PixelYourSite & WooCommerce: track both PROFIT and TOTAL for your Facebook Ads: <a href="https://www.pixelyoursite.com/cost-of-goods-purchase-and-completeregistration" target="_blank">LEARN HOW</a></br></br>'
 
 
 
 
18
  ],
19
 
20
 
@@ -25,7 +29,11 @@ function adminGetPromoNoticesContent() {
25
  'disabled' => false,
26
  // 'from' => 0,
27
  // 'to' => 1,
28
- 'content' => '</br>PixelYourSite: Learn how to do Facebook Dynamic Ads for NORMAL WordPress posts: <a href="https://www.pixelyoursite.com/facebook-dynamic-product-ads-for-wordpress" target="_blank">CLICK HERE</a></br></br>'
 
 
 
 
29
  ],
30
 
31
  ],
@@ -35,7 +43,11 @@ function adminGetPromoNoticesContent() {
35
  'disabled' => false,
36
  // 'from' => 0,
37
  // 'to' => 1,
38
- 'content' => '</br>PixelYourSite: Learn how to do Facebook Dynamic Ads for NORMAL WordPress posts: <a href="https://www.pixelyoursite.com/facebook-dynamic-product-ads-for-wordpress" target="_blank">CLICK HERE</a></br></br>'
 
 
 
 
39
  ],
40
 
41
  ],
14
  'disabled' => false,
15
  // 'from' => 1,
16
  // 'to' => 2,
17
+ 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
18
+ </br></br>
19
+ How to verify your domanin on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
20
+ </br></br>
21
+ Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a></br></br>'
22
  ],
23
 
24
 
29
  'disabled' => false,
30
  // 'from' => 0,
31
  // 'to' => 1,
32
+ 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
33
+ </br></br>
34
+ How to verify your domani on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
35
+ </br></br>
36
+ Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a></br></br>'
37
  ],
38
 
39
  ],
43
  'disabled' => false,
44
  // 'from' => 0,
45
  // 'to' => 1,
46
+ 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
47
+ </br></br>
48
+ How to verify your domani on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
49
+ </br></br>
50
+ Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a></br></br>'
51
  ],
52
 
53
  ],
notices/8_0_3.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PixelYourSite;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit; // Exit if accessed directly.
7
+ }
8
+
9
+ function adminGetPromoNoticesContent() {
10
+ return [
11
+ 'woo' => [
12
+
13
+ [
14
+ 'disabled' => false,
15
+ // 'from' => 1,
16
+ // 'to' => 2,
17
+ 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
18
+ </br></br>
19
+ How to verify your domanin on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
20
+ </br></br>
21
+ Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a></br></br>'
22
+ ],
23
+
24
+
25
+ ],
26
+ 'edd' => [
27
+
28
+ [
29
+ 'disabled' => false,
30
+ // 'from' => 0,
31
+ // 'to' => 1,
32
+ 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
33
+ </br></br>
34
+ How to verify your domani on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
35
+ </br></br>
36
+ Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a></br></br>'
37
+ ],
38
+
39
+ ],
40
+ 'no_woo_no_edd' => [
41
+
42
+ [
43
+ 'disabled' => false,
44
+ // 'from' => 0,
45
+ // 'to' => 1,
46
+ 'content' => '</br>PIXELYOURSITE KEY INFO:</br></br>Learn about Facebook Aggregated Event Measurement: <a href="https://www.pixelyoursite.com/aem" target="_blank">Click here</a>
47
+ </br></br>
48
+ How to verify your domani on Facebook: <a href="https://www.pixelyoursite.com/verify-domain-facebook" target="_blank">Click here</a>
49
+ </br></br>
50
+ Find out about Custom Conversion using the Signal event: <a href="https://www.pixelyoursite.com/signal-custom-conversions-aem" target="_blank">Click here</a></br></br>'
51
+ ],
52
+
53
+ ],
54
+ ];
55
+ }
pixelyoursite.php CHANGED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
- define( 'PYS_FREE_VERSION', '8.0.2' );
8
  define( 'PYS_FREE_PINTEREST_MIN_VERSION', '3.0.0' );
9
  define( 'PYS_FREE_BING_MIN_VERSION', '2.0.0' );
10
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
+ define( 'PYS_FREE_VERSION', '8.0.3' );
8
  define( 'PYS_FREE_PINTEREST_MIN_VERSION', '3.0.0' );
9
  define( 'PYS_FREE_BING_MIN_VERSION', '2.0.0' );
10
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: Facebook Pixel, New Facebook Pixel, Facebook Conversion Pixel, Facebook Pi
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
  Tested up to: 5.6
7
- Stable tag: 8.0.2
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -396,6 +396,13 @@ NO, absolutely not! We don't track any type of data about your website. We simpl
396
  == Changelog ==
397
 
398
 
 
 
 
 
 
 
 
399
  = PixelYourSite 8.0.2 =
400
 
401
  * Fix for a potential fatal error: PHP Fatal error: Cannot use FacebookAds\Object\ServerSide\Event as Event because the name is already in use
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
  Tested up to: 5.6
7
+ Stable tag: 8.0.3
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
396
  == Changelog ==
397
 
398
 
399
+ = PixelYourSite 8.0.3 =
400
+
401
+ * FIX: some encoding problems with parameter values.
402
+
403
+ * FIX: Greek language issue.
404
+
405
+
406
  = PixelYourSite 8.0.2 =
407
 
408
  * Fix for a potential fatal error: PHP Fatal error: Cannot use FacebookAds\Object\ServerSide\Event as Event because the name is already in use
vendor/composer/autoload_classmap.php CHANGED
@@ -1273,8 +1273,11 @@ return array(
1273
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1274
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1275
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
 
 
1276
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1277
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
 
1278
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1279
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1280
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
@@ -1286,7 +1289,6 @@ return array(
1286
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1287
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1288
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
1289
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\SeekException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php',
1290
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1291
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1292
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
@@ -1300,6 +1302,7 @@ return array(
1300
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1301
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1302
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
 
1303
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1304
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1305
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
@@ -1351,9 +1354,11 @@ return array(
1351
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1352
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1353
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
1354
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\UriTemplate' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php',
1355
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1356
- 'PYS_PRO_GLOBAL\\Normalizer' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
 
 
 
1357
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1358
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1359
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
@@ -1361,11 +1366,5 @@ return array(
1361
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1362
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1363
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UriInterface.php',
1364
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Idn' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Idn.php',
1365
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Info' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Info.php',
1366
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php',
1367
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php',
1368
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-normalizer/Normalizer.php',
1369
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Php72\\Php72' => $baseDir . '/vendor_prefix/symfony/polyfill-php72/Php72.php',
1370
  'WP_Async_Task' => $vendorDir . '/techcrunch/wp-async-task/wp-async-task.php',
1371
  );
1273
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1274
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1275
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
1276
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizer' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php',
1277
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizerInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php',
1278
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1279
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
1280
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientTrait' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php',
1281
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1282
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1283
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
1289
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1290
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1291
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
 
1292
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1293
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1294
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
1302
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1303
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1304
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
1305
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatterInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php',
1306
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1307
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1308
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
1354
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1355
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1356
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
 
1357
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1358
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientExceptionInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/ClientExceptionInterface.php',
1359
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/ClientInterface.php',
1360
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\NetworkExceptionInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php',
1361
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\RequestExceptionInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/RequestExceptionInterface.php',
1362
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1363
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1364
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
1366
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1367
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1368
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UriInterface.php',
 
 
 
 
 
 
1369
  'WP_Async_Task' => $vendorDir . '/techcrunch/wp-async-task/wp-async-task.php',
1370
  );
vendor/composer/autoload_static.php CHANGED
@@ -1288,8 +1288,11 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1288
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1289
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1290
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
 
 
1291
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1292
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
 
1293
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1294
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1295
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
@@ -1301,7 +1304,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1301
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1302
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1303
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
1304
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\SeekException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php',
1305
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1306
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1307
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
@@ -1315,6 +1317,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1315
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1316
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1317
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
 
1318
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1319
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1320
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
@@ -1366,9 +1369,11 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1366
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1367
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1368
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
1369
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\UriTemplate' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php',
1370
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1371
- 'PYS_PRO_GLOBAL\\Normalizer' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
 
 
 
1372
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1373
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1374
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
@@ -1376,12 +1381,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1376
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1377
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1378
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UriInterface.php',
1379
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Idn' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Idn.php',
1380
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Info' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Info.php',
1381
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php',
1382
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php',
1383
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-normalizer/Normalizer.php',
1384
- 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-php72/Php72.php',
1385
  'WP_Async_Task' => __DIR__ . '/..' . '/techcrunch/wp-async-task/wp-async-task.php',
1386
  );
1387
 
1288
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1289
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1290
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
1291
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizer' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php',
1292
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizerInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php',
1293
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1294
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
1295
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientTrait' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php',
1296
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1297
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1298
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
1304
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1305
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1306
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
 
1307
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1308
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1309
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
1317
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1318
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1319
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
1320
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatterInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php',
1321
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1322
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1323
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
1369
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1370
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1371
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
 
1372
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1373
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/ClientExceptionInterface.php',
1374
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/ClientInterface.php',
1375
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\NetworkExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php',
1376
+ 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\RequestExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/RequestExceptionInterface.php',
1377
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1378
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1379
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
1381
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1382
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1383
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UriInterface.php',
 
 
 
 
 
 
1384
  'WP_Async_Task' => __DIR__ . '/..' . '/techcrunch/wp-async-task/wp-async-task.php',
1385
  );
1386
 
vendor_prefix/guzzlehttp/guzzle/Dockerfile DELETED
@@ -1,18 +0,0 @@
1
- FROM composer:latest as setup
2
-
3
- RUN mkdir /guzzle
4
-
5
- WORKDIR /guzzle
6
-
7
- RUN set -xe \
8
- && composer init --name=guzzlehttp/test --description="Simple project for testing Guzzle scripts" --author="Márk Sági-Kazár <mark.sagikazar@gmail.com>" --no-interaction \
9
- && composer require guzzlehttp/guzzle
10
-
11
-
12
- FROM php:7.3
13
-
14
- RUN mkdir /guzzle
15
-
16
- WORKDIR /guzzle
17
-
18
- COPY --from=setup /guzzle /guzzle
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
+
5
+ use PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface;
6
+ final class BodySummarizer implements \PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface
7
+ {
8
+ /**
9
+ * @var int|null
10
+ */
11
+ private $truncateAt;
12
+ public function __construct(int $truncateAt = null)
13
+ {
14
+ $this->truncateAt = $truncateAt;
15
+ }
16
+ /**
17
+ * Returns a summarized message body.
18
+ */
19
+ public function summarize(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message) : ?string
20
+ {
21
+ return $this->truncateAt === null ? \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::bodySummary($message) : \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::bodySummary($message, $this->truncateAt);
22
+ }
23
+ }
vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
+
5
+ use PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface;
6
+ interface BodySummarizerInterface
7
+ {
8
+ /**
9
+ * Returns a summarized message body.
10
+ */
11
+ public function summarize(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message) : ?string;
12
+ }
vendor_prefix/guzzlehttp/guzzle/src/Client.php CHANGED
@@ -4,28 +4,21 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
 
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
12
  /**
13
- * @method ResponseInterface get(string|UriInterface $uri, array $options = [])
14
- * @method ResponseInterface head(string|UriInterface $uri, array $options = [])
15
- * @method ResponseInterface put(string|UriInterface $uri, array $options = [])
16
- * @method ResponseInterface post(string|UriInterface $uri, array $options = [])
17
- * @method ResponseInterface patch(string|UriInterface $uri, array $options = [])
18
- * @method ResponseInterface delete(string|UriInterface $uri, array $options = [])
19
- * @method Promise\PromiseInterface getAsync(string|UriInterface $uri, array $options = [])
20
- * @method Promise\PromiseInterface headAsync(string|UriInterface $uri, array $options = [])
21
- * @method Promise\PromiseInterface putAsync(string|UriInterface $uri, array $options = [])
22
- * @method Promise\PromiseInterface postAsync(string|UriInterface $uri, array $options = [])
23
- * @method Promise\PromiseInterface patchAsync(string|UriInterface $uri, array $options = [])
24
- * @method Promise\PromiseInterface deleteAsync(string|UriInterface $uri, array $options = [])
25
  */
26
- class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
27
  {
28
- /** @var array Default request options */
 
 
 
29
  private $config;
30
  /**
31
  * Clients accept an array of constructor parameters.
@@ -63,11 +56,11 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
63
  if (!isset($config['handler'])) {
64
  $config['handler'] = \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create();
65
  } elseif (!\is_callable($config['handler'])) {
66
- throw new \InvalidArgumentException('handler must be a callable');
67
  }
68
  // Convert the base_uri to a UriInterface
69
  if (isset($config['base_uri'])) {
70
- $config['base_uri'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\uri_for($config['base_uri']);
71
  }
72
  $this->configureDefaults($config);
73
  }
@@ -75,15 +68,17 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
75
  * @param string $method
76
  * @param array $args
77
  *
78
- * @return Promise\PromiseInterface
 
 
79
  */
80
  public function __call($method, $args)
81
  {
82
  if (\count($args) < 1) {
83
- throw new \InvalidArgumentException('Magic request methods require a URI and optional options array');
84
  }
85
  $uri = $args[0];
86
- $opts = isset($args[1]) ? $args[1] : [];
87
  return \substr($method, -5) === 'Async' ? $this->requestAsync(\substr($method, 0, -5), $uri, $opts) : $this->request($method, $uri, $opts);
88
  }
89
  /**
@@ -91,10 +86,8 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
91
  *
92
  * @param array $options Request options to apply to the given
93
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
94
- *
95
- * @return Promise\PromiseInterface
96
  */
97
- public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = [])
98
  {
99
  // Merge the base URI into the request URI if needed.
100
  $options = $this->prepareDefaults($options);
@@ -106,12 +99,23 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
106
  * @param array $options Request options to apply to the given
107
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
108
  *
109
- * @return ResponseInterface
110
  * @throws GuzzleException
111
  */
112
- public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = [])
 
 
 
 
 
 
 
 
 
 
113
  {
114
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
 
 
115
  return $this->sendAsync($request, $options)->wait();
116
  }
117
  /**
@@ -125,20 +129,18 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
125
  * @param string $method HTTP method
126
  * @param string|UriInterface $uri URI object or string.
127
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
128
- *
129
- * @return Promise\PromiseInterface
130
  */
131
- public function requestAsync($method, $uri = '', array $options = [])
132
  {
133
  $options = $this->prepareDefaults($options);
134
  // Remove request modifying parameter because it can be done up-front.
135
- $headers = isset($options['headers']) ? $options['headers'] : [];
136
- $body = isset($options['body']) ? $options['body'] : null;
137
- $version = isset($options['version']) ? $options['version'] : '1.1';
138
  // Merge the URI into the base URI.
139
- $uri = $this->buildUri($uri, $options);
140
  if (\is_array($body)) {
141
- $this->invalidBody();
142
  }
143
  $request = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Request($method, $uri, $headers, $body, $version);
144
  // Remove the option so that they are not doubly-applied.
@@ -156,10 +158,9 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
156
  * @param string|UriInterface $uri URI object or string.
157
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
158
  *
159
- * @return ResponseInterface
160
  * @throws GuzzleException
161
  */
162
- public function request($method, $uri = '', array $options = [])
163
  {
164
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
165
  return $this->requestAsync($method, $uri, $options)->wait();
@@ -174,22 +175,17 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
174
  * @param string|null $option The config option to retrieve.
175
  *
176
  * @return mixed
 
 
177
  */
178
- public function getConfig($option = null)
179
  {
180
  return $option === null ? $this->config : (isset($this->config[$option]) ? $this->config[$option] : null);
181
  }
182
- /**
183
- * @param string|null $uri
184
- *
185
- * @return UriInterface
186
- */
187
- private function buildUri($uri, array $config)
188
  {
189
- // for BC we accept null which would otherwise fail in uri_for
190
- $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\uri_for($uri === null ? '' : $uri);
191
  if (isset($config['base_uri'])) {
192
- $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\uri_for($config['base_uri']), $uri);
193
  }
194
  if (isset($config['idn_conversion']) && $config['idn_conversion'] !== \false) {
195
  $idnOptions = $config['idn_conversion'] === \true ? \IDNA_DEFAULT : $config['idn_conversion'];
@@ -199,24 +195,21 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
199
  }
200
  /**
201
  * Configures the default options for a client.
202
- *
203
- * @param array $config
204
- * @return void
205
  */
206
- private function configureDefaults(array $config)
207
  {
208
- $defaults = ['allow_redirects' => \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware::$defaultSettings, 'http_errors' => \true, 'decode_content' => \true, 'verify' => \true, 'cookies' => \false, 'idn_conversion' => \true];
209
  // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set.
210
  // We can only trust the HTTP_PROXY environment variable in a CLI
211
  // process due to the fact that PHP has no reliable mechanism to
212
  // get environment variables that start with "HTTP_".
213
- if (\php_sapi_name() === 'cli' && \getenv('HTTP_PROXY')) {
214
- $defaults['proxy']['http'] = \getenv('HTTP_PROXY');
215
  }
216
- if ($proxy = \getenv('HTTPS_PROXY')) {
217
  $defaults['proxy']['https'] = $proxy;
218
  }
219
- if ($noProxy = \getenv('NO_PROXY')) {
220
  $cleanedNoProxy = \str_replace(' ', '', $noProxy);
221
  $defaults['proxy']['no'] = \explode(',', $cleanedNoProxy);
222
  }
@@ -226,7 +219,7 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
226
  }
227
  // Add the default user-agent header.
228
  if (!isset($this->config['headers'])) {
229
- $this->config['headers'] = ['User-Agent' => default_user_agent()];
230
  } else {
231
  // Add the User-Agent header if one was not already set.
232
  foreach (\array_keys($this->config['headers']) as $name) {
@@ -234,17 +227,15 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
234
  return;
235
  }
236
  }
237
- $this->config['headers']['User-Agent'] = default_user_agent();
238
  }
239
  }
240
  /**
241
  * Merges default options into the array.
242
  *
243
  * @param array $options Options to modify by reference
244
- *
245
- * @return array
246
  */
247
- private function prepareDefaults(array $options)
248
  {
249
  $defaults = $this->config;
250
  if (!empty($defaults['headers'])) {
@@ -260,7 +251,7 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
260
  $defaults['_conditional'] = [];
261
  unset($options['headers']);
262
  } elseif (!\is_array($options['headers'])) {
263
- throw new \InvalidArgumentException('headers must be an array');
264
  }
265
  }
266
  // Shallow merge defaults underneath options.
@@ -280,39 +271,22 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
280
  * as-is without merging in default options.
281
  *
282
  * @param array $options See \GuzzleHttp\RequestOptions.
283
- *
284
- * @return Promise\PromiseInterface
285
  */
286
- private function transfer(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
287
  {
288
- // save_to -> sink
289
- if (isset($options['save_to'])) {
290
- $options['sink'] = $options['save_to'];
291
- unset($options['save_to']);
292
- }
293
- // exceptions -> http_errors
294
- if (isset($options['exceptions'])) {
295
- $options['http_errors'] = $options['exceptions'];
296
- unset($options['exceptions']);
297
- }
298
  $request = $this->applyOptions($request, $options);
299
  /** @var HandlerStack $handler */
300
  $handler = $options['handler'];
301
  try {
302
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\promise_for($handler($request, $options));
303
  } catch (\Exception $e) {
304
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($e);
305
  }
306
  }
307
  /**
308
  * Applies the array of request options to a request.
309
- *
310
- * @param RequestInterface $request
311
- * @param array $options
312
- *
313
- * @return RequestInterface
314
  */
315
- private function applyOptions(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options)
316
  {
317
  $modify = ['set_headers' => []];
318
  if (isset($options['headers'])) {
@@ -321,12 +295,12 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
321
  }
322
  if (isset($options['form_params'])) {
323
  if (isset($options['multipart'])) {
324
- throw new \InvalidArgumentException('You cannot use ' . 'form_params and multipart at the same time. Use the ' . 'form_params option if you want to send application/' . 'x-www-form-urlencoded requests, and the multipart ' . 'option to send multipart/form-data requests.');
325
  }
326
  $options['body'] = \http_build_query($options['form_params'], '', '&');
327
  unset($options['form_params']);
328
  // Ensure that we don't have the header in different case and set the new value.
329
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
330
  $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded';
331
  }
332
  if (isset($options['multipart'])) {
@@ -334,22 +308,22 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
334
  unset($options['multipart']);
335
  }
336
  if (isset($options['json'])) {
337
- $options['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\json_encode($options['json']);
338
  unset($options['json']);
339
  // Ensure that we don't have the header in different case and set the new value.
340
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
341
  $options['_conditional']['Content-Type'] = 'application/json';
342
  }
343
  if (!empty($options['decode_content']) && $options['decode_content'] !== \true) {
344
  // Ensure that we don't have the header in different case and set the new value.
345
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Accept-Encoding'], $options['_conditional']);
346
  $modify['set_headers']['Accept-Encoding'] = $options['decode_content'];
347
  }
348
  if (isset($options['body'])) {
349
  if (\is_array($options['body'])) {
350
- $this->invalidBody();
351
  }
352
- $modify['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($options['body']);
353
  unset($options['body']);
354
  }
355
  if (!empty($options['auth']) && \is_array($options['auth'])) {
@@ -358,7 +332,7 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
358
  switch ($type) {
359
  case 'basic':
360
  // Ensure that we don't have the header in different case and set the new value.
361
- $modify['set_headers'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Authorization'], $modify['set_headers']);
362
  $modify['set_headers']['Authorization'] = 'Basic ' . \base64_encode("{$value[0]}:{$value[1]}");
363
  break;
364
  case 'digest':
@@ -375,10 +349,10 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
375
  if (isset($options['query'])) {
376
  $value = $options['query'];
377
  if (\is_array($value)) {
378
- $value = \http_build_query($value, null, '&', \PHP_QUERY_RFC3986);
379
  }
380
  if (!\is_string($value)) {
381
- throw new \InvalidArgumentException('query must be a string or array');
382
  }
383
  $modify['query'] = $value;
384
  unset($options['query']);
@@ -387,14 +361,14 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
387
  if (isset($options['sink'])) {
388
  // TODO: Add more sink validation?
389
  if (\is_bool($options['sink'])) {
390
- throw new \InvalidArgumentException('sink must not be a boolean');
391
  }
392
  }
393
- $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify);
394
  if ($request->getBody() instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\MultipartStream) {
395
  // Use a multipart/form-data POST if a Content-Type is not set.
396
  // Ensure that we don't have the header in different case and set the new value.
397
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
398
  $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' . $request->getBody()->getBoundary();
399
  }
400
  // Merge in conditional headers if they are not present.
@@ -406,19 +380,17 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
406
  $modify['set_headers'][$k] = $v;
407
  }
408
  }
409
- $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify);
410
  // Don't pass this internal value along to middleware/handlers.
411
  unset($options['_conditional']);
412
  }
413
  return $request;
414
  }
415
  /**
416
- * Throw Exception with pre-set message.
417
- * @return void
418
- * @throws \InvalidArgumentException Invalid body.
419
  */
420
- private function invalidBody()
421
  {
422
- throw new \InvalidArgumentException('Passing in the "body" request ' . 'option as an array to send a POST request has been deprecated. ' . 'Please use the "form_params" request option to send a ' . 'application/x-www-form-urlencoded request, or the "multipart" ' . 'request option to send a multipart/form-data request.');
423
  }
424
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
9
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
12
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
13
  /**
14
+ * @final
 
 
 
 
 
 
 
 
 
 
 
15
  */
16
+ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLOBAL\Psr\Http\Client\ClientInterface
17
  {
18
+ use ClientTrait;
19
+ /**
20
+ * @var array Default request options
21
+ */
22
  private $config;
23
  /**
24
  * Clients accept an array of constructor parameters.
56
  if (!isset($config['handler'])) {
57
  $config['handler'] = \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create();
58
  } elseif (!\is_callable($config['handler'])) {
59
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('handler must be a callable');
60
  }
61
  // Convert the base_uri to a UriInterface
62
  if (isset($config['base_uri'])) {
63
+ $config['base_uri'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::uriFor($config['base_uri']);
64
  }
65
  $this->configureDefaults($config);
66
  }
68
  * @param string $method
69
  * @param array $args
70
  *
71
+ * @return PromiseInterface|ResponseInterface
72
+ *
73
+ * @deprecated Client::__call will be removed in guzzlehttp/guzzle:8.0.
74
  */
75
  public function __call($method, $args)
76
  {
77
  if (\count($args) < 1) {
78
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('Magic request methods require a URI and optional options array');
79
  }
80
  $uri = $args[0];
81
+ $opts = $args[1] ?? [];
82
  return \substr($method, -5) === 'Async' ? $this->requestAsync(\substr($method, 0, -5), $uri, $opts) : $this->request($method, $uri, $opts);
83
  }
84
  /**
86
  *
87
  * @param array $options Request options to apply to the given
88
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
 
 
89
  */
90
+ public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
91
  {
92
  // Merge the base URI into the request URI if needed.
93
  $options = $this->prepareDefaults($options);
99
  * @param array $options Request options to apply to the given
100
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
101
  *
 
102
  * @throws GuzzleException
103
  */
104
+ public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
105
+ {
106
+ $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
107
+ return $this->sendAsync($request, $options)->wait();
108
+ }
109
+ /**
110
+ * The HttpClient PSR (PSR-18) specify this method.
111
+ *
112
+ * @inheritDoc
113
+ */
114
+ public function sendRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
115
  {
116
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
117
+ $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::ALLOW_REDIRECTS] = \false;
118
+ $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::HTTP_ERRORS] = \false;
119
  return $this->sendAsync($request, $options)->wait();
120
  }
121
  /**
129
  * @param string $method HTTP method
130
  * @param string|UriInterface $uri URI object or string.
131
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
 
 
132
  */
133
+ public function requestAsync(string $method, $uri = '', array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
134
  {
135
  $options = $this->prepareDefaults($options);
136
  // Remove request modifying parameter because it can be done up-front.
137
+ $headers = $options['headers'] ?? [];
138
+ $body = $options['body'] ?? null;
139
+ $version = $options['version'] ?? '1.1';
140
  // Merge the URI into the base URI.
141
+ $uri = $this->buildUri(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::uriFor($uri), $options);
142
  if (\is_array($body)) {
143
+ throw $this->invalidBody();
144
  }
145
  $request = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Request($method, $uri, $headers, $body, $version);
146
  // Remove the option so that they are not doubly-applied.
158
  * @param string|UriInterface $uri URI object or string.
159
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
160
  *
 
161
  * @throws GuzzleException
162
  */
163
+ public function request(string $method, $uri = '', array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
164
  {
165
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
166
  return $this->requestAsync($method, $uri, $options)->wait();
175
  * @param string|null $option The config option to retrieve.
176
  *
177
  * @return mixed
178
+ *
179
+ * @deprecated Client::getConfig will be removed in guzzlehttp/guzzle:8.0.
180
  */
181
+ public function getConfig(?string $option = null)
182
  {
183
  return $option === null ? $this->config : (isset($this->config[$option]) ? $this->config[$option] : null);
184
  }
185
+ private function buildUri(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri, array $config) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
 
 
 
 
 
186
  {
 
 
187
  if (isset($config['base_uri'])) {
188
+ $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::uriFor($config['base_uri']), $uri);
189
  }
190
  if (isset($config['idn_conversion']) && $config['idn_conversion'] !== \false) {
191
  $idnOptions = $config['idn_conversion'] === \true ? \IDNA_DEFAULT : $config['idn_conversion'];
195
  }
196
  /**
197
  * Configures the default options for a client.
 
 
 
198
  */
199
+ private function configureDefaults(array $config) : void
200
  {
201
+ $defaults = ['allow_redirects' => \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware::$defaultSettings, 'http_errors' => \true, 'decode_content' => \true, 'verify' => \true, 'cookies' => \false, 'idn_conversion' => \false];
202
  // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set.
203
  // We can only trust the HTTP_PROXY environment variable in a CLI
204
  // process due to the fact that PHP has no reliable mechanism to
205
  // get environment variables that start with "HTTP_".
206
+ if (\PHP_SAPI === 'cli' && ($proxy = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('HTTP_PROXY'))) {
207
+ $defaults['proxy']['http'] = $proxy;
208
  }
209
+ if ($proxy = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('HTTPS_PROXY')) {
210
  $defaults['proxy']['https'] = $proxy;
211
  }
212
+ if ($noProxy = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('NO_PROXY')) {
213
  $cleanedNoProxy = \str_replace(' ', '', $noProxy);
214
  $defaults['proxy']['no'] = \explode(',', $cleanedNoProxy);
215
  }
219
  }
220
  // Add the default user-agent header.
221
  if (!isset($this->config['headers'])) {
222
+ $this->config['headers'] = ['User-Agent' => \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultUserAgent()];
223
  } else {
224
  // Add the User-Agent header if one was not already set.
225
  foreach (\array_keys($this->config['headers']) as $name) {
227
  return;
228
  }
229
  }
230
+ $this->config['headers']['User-Agent'] = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultUserAgent();
231
  }
232
  }
233
  /**
234
  * Merges default options into the array.
235
  *
236
  * @param array $options Options to modify by reference
 
 
237
  */
238
+ private function prepareDefaults(array $options) : array
239
  {
240
  $defaults = $this->config;
241
  if (!empty($defaults['headers'])) {
251
  $defaults['_conditional'] = [];
252
  unset($options['headers']);
253
  } elseif (!\is_array($options['headers'])) {
254
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('headers must be an array');
255
  }
256
  }
257
  // Shallow merge defaults underneath options.
271
  * as-is without merging in default options.
272
  *
273
  * @param array $options See \GuzzleHttp\RequestOptions.
 
 
274
  */
275
+ private function transfer(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
276
  {
 
 
 
 
 
 
 
 
 
 
277
  $request = $this->applyOptions($request, $options);
278
  /** @var HandlerStack $handler */
279
  $handler = $options['handler'];
280
  try {
281
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::promiseFor($handler($request, $options));
282
  } catch (\Exception $e) {
283
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($e);
284
  }
285
  }
286
  /**
287
  * Applies the array of request options to a request.
 
 
 
 
 
288
  */
289
+ private function applyOptions(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
290
  {
291
  $modify = ['set_headers' => []];
292
  if (isset($options['headers'])) {
295
  }
296
  if (isset($options['form_params'])) {
297
  if (isset($options['multipart'])) {
298
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('You cannot use ' . 'form_params and multipart at the same time. Use the ' . 'form_params option if you want to send application/' . 'x-www-form-urlencoded requests, and the multipart ' . 'option to send multipart/form-data requests.');
299
  }
300
  $options['body'] = \http_build_query($options['form_params'], '', '&');
301
  unset($options['form_params']);
302
  // Ensure that we don't have the header in different case and set the new value.
303
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Content-Type'], $options['_conditional']);
304
  $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded';
305
  }
306
  if (isset($options['multipart'])) {
308
  unset($options['multipart']);
309
  }
310
  if (isset($options['json'])) {
311
+ $options['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonEncode($options['json']);
312
  unset($options['json']);
313
  // Ensure that we don't have the header in different case and set the new value.
314
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Content-Type'], $options['_conditional']);
315
  $options['_conditional']['Content-Type'] = 'application/json';
316
  }
317
  if (!empty($options['decode_content']) && $options['decode_content'] !== \true) {
318
  // Ensure that we don't have the header in different case and set the new value.
319
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Accept-Encoding'], $options['_conditional']);
320
  $modify['set_headers']['Accept-Encoding'] = $options['decode_content'];
321
  }
322
  if (isset($options['body'])) {
323
  if (\is_array($options['body'])) {
324
+ throw $this->invalidBody();
325
  }
326
+ $modify['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($options['body']);
327
  unset($options['body']);
328
  }
329
  if (!empty($options['auth']) && \is_array($options['auth'])) {
332
  switch ($type) {
333
  case 'basic':
334
  // Ensure that we don't have the header in different case and set the new value.
335
+ $modify['set_headers'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Authorization'], $modify['set_headers']);
336
  $modify['set_headers']['Authorization'] = 'Basic ' . \base64_encode("{$value[0]}:{$value[1]}");
337
  break;
338
  case 'digest':
349
  if (isset($options['query'])) {
350
  $value = $options['query'];
351
  if (\is_array($value)) {
352
+ $value = \http_build_query($value, '', '&', \PHP_QUERY_RFC3986);
353
  }
354
  if (!\is_string($value)) {
355
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('query must be a string or array');
356
  }
357
  $modify['query'] = $value;
358
  unset($options['query']);
361
  if (isset($options['sink'])) {
362
  // TODO: Add more sink validation?
363
  if (\is_bool($options['sink'])) {
364
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('sink must not be a boolean');
365
  }
366
  }
367
+ $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify);
368
  if ($request->getBody() instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\MultipartStream) {
369
  // Use a multipart/form-data POST if a Content-Type is not set.
370
  // Ensure that we don't have the header in different case and set the new value.
371
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Content-Type'], $options['_conditional']);
372
  $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' . $request->getBody()->getBoundary();
373
  }
374
  // Merge in conditional headers if they are not present.
380
  $modify['set_headers'][$k] = $v;
381
  }
382
  }
383
+ $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify);
384
  // Don't pass this internal value along to middleware/handlers.
385
  unset($options['_conditional']);
386
  }
387
  return $request;
388
  }
389
  /**
390
+ * Return an InvalidArgumentException with pre-set message.
 
 
391
  */
392
+ private function invalidBody() : \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException
393
  {
394
+ return new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('Passing in the "body" request ' . 'option as an array to send a request is not supported. ' . 'Please use the "form_params" request option to send a ' . 'application/x-www-form-urlencoded request, or the "multipart" ' . 'request option to send a multipart/form-data request.');
395
  }
396
  }
vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php CHANGED
@@ -13,9 +13,9 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
13
  interface ClientInterface
14
  {
15
  /**
16
- * @deprecated Will be removed in Guzzle 7.0.0
17
  */
18
- const VERSION = '6.5.5';
19
  /**
20
  * Send an HTTP request.
21
  *
@@ -23,20 +23,17 @@ interface ClientInterface
23
  * @param array $options Request options to apply to the given
24
  * request and to the transfer.
25
  *
26
- * @return ResponseInterface
27
  * @throws GuzzleException
28
  */
29
- public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []);
30
  /**
31
  * Asynchronously send an HTTP request.
32
  *
33
  * @param RequestInterface $request Request to send
34
  * @param array $options Request options to apply to the given
35
  * request and to the transfer.
36
- *
37
- * @return PromiseInterface
38
  */
39
- public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []);
40
  /**
41
  * Create and send an HTTP request.
42
  *
@@ -48,10 +45,9 @@ interface ClientInterface
48
  * @param string|UriInterface $uri URI object or string.
49
  * @param array $options Request options to apply.
50
  *
51
- * @return ResponseInterface
52
  * @throws GuzzleException
53
  */
54
- public function request($method, $uri, array $options = []);
55
  /**
56
  * Create and send an asynchronous HTTP request.
57
  *
@@ -63,10 +59,8 @@ interface ClientInterface
63
  * @param string $method HTTP method
64
  * @param string|UriInterface $uri URI object or string.
65
  * @param array $options Request options to apply.
66
- *
67
- * @return PromiseInterface
68
  */
69
- public function requestAsync($method, $uri, array $options = []);
70
  /**
71
  * Get a client configuration option.
72
  *
@@ -77,6 +71,8 @@ interface ClientInterface
77
  * @param string|null $option The config option to retrieve.
78
  *
79
  * @return mixed
 
 
80
  */
81
- public function getConfig($option = null);
82
  }
13
  interface ClientInterface
14
  {
15
  /**
16
+ * The Guzzle major version.
17
  */
18
+ const MAJOR_VERSION = 7;
19
  /**
20
  * Send an HTTP request.
21
  *
23
  * @param array $options Request options to apply to the given
24
  * request and to the transfer.
25
  *
 
26
  * @throws GuzzleException
27
  */
28
+ public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
29
  /**
30
  * Asynchronously send an HTTP request.
31
  *
32
  * @param RequestInterface $request Request to send
33
  * @param array $options Request options to apply to the given
34
  * request and to the transfer.
 
 
35
  */
36
+ public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
37
  /**
38
  * Create and send an HTTP request.
39
  *
45
  * @param string|UriInterface $uri URI object or string.
46
  * @param array $options Request options to apply.
47
  *
 
48
  * @throws GuzzleException
49
  */
50
+ public function request(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
51
  /**
52
  * Create and send an asynchronous HTTP request.
53
  *
59
  * @param string $method HTTP method
60
  * @param string|UriInterface $uri URI object or string.
61
  * @param array $options Request options to apply.
 
 
62
  */
63
+ public function requestAsync(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
64
  /**
65
  * Get a client configuration option.
66
  *
71
  * @param string|null $option The config option to retrieve.
72
  *
73
  * @return mixed
74
+ *
75
+ * @deprecated ClientInterface::getConfig will be removed in guzzlehttp/guzzle:8.0.
76
  */
77
+ public function getConfig(?string $option = null);
78
  }
vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
+
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException;
6
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
7
+ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
+ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
9
+ /**
10
+ * Client interface for sending HTTP requests.
11
+ */
12
+ trait ClientTrait
13
+ {
14
+ /**
15
+ * Create and send an HTTP request.
16
+ *
17
+ * Use an absolute path to override the base path of the client, or a
18
+ * relative path to append to the base path of the client. The URL can
19
+ * contain the query string as well.
20
+ *
21
+ * @param string $method HTTP method.
22
+ * @param string|UriInterface $uri URI object or string.
23
+ * @param array $options Request options to apply.
24
+ *
25
+ * @throws GuzzleException
26
+ */
27
+ public abstract function request(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
28
+ /**
29
+ * Create and send an HTTP GET request.
30
+ *
31
+ * Use an absolute path to override the base path of the client, or a
32
+ * relative path to append to the base path of the client. The URL can
33
+ * contain the query string as well.
34
+ *
35
+ * @param string|UriInterface $uri URI object or string.
36
+ * @param array $options Request options to apply.
37
+ *
38
+ * @throws GuzzleException
39
+ */
40
+ public function get($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
41
+ {
42
+ return $this->request('GET', $uri, $options);
43
+ }
44
+ /**
45
+ * Create and send an HTTP HEAD request.
46
+ *
47
+ * Use an absolute path to override the base path of the client, or a
48
+ * relative path to append to the base path of the client. The URL can
49
+ * contain the query string as well.
50
+ *
51
+ * @param string|UriInterface $uri URI object or string.
52
+ * @param array $options Request options to apply.
53
+ *
54
+ * @throws GuzzleException
55
+ */
56
+ public function head($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
57
+ {
58
+ return $this->request('HEAD', $uri, $options);
59
+ }
60
+ /**
61
+ * Create and send an HTTP PUT request.
62
+ *
63
+ * Use an absolute path to override the base path of the client, or a
64
+ * relative path to append to the base path of the client. The URL can
65
+ * contain the query string as well.
66
+ *
67
+ * @param string|UriInterface $uri URI object or string.
68
+ * @param array $options Request options to apply.
69
+ *
70
+ * @throws GuzzleException
71
+ */
72
+ public function put($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
73
+ {
74
+ return $this->request('PUT', $uri, $options);
75
+ }
76
+ /**
77
+ * Create and send an HTTP POST request.
78
+ *
79
+ * Use an absolute path to override the base path of the client, or a
80
+ * relative path to append to the base path of the client. The URL can
81
+ * contain the query string as well.
82
+ *
83
+ * @param string|UriInterface $uri URI object or string.
84
+ * @param array $options Request options to apply.
85
+ *
86
+ * @throws GuzzleException
87
+ */
88
+ public function post($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
89
+ {
90
+ return $this->request('POST', $uri, $options);
91
+ }
92
+ /**
93
+ * Create and send an HTTP PATCH request.
94
+ *
95
+ * Use an absolute path to override the base path of the client, or a
96
+ * relative path to append to the base path of the client. The URL can
97
+ * contain the query string as well.
98
+ *
99
+ * @param string|UriInterface $uri URI object or string.
100
+ * @param array $options Request options to apply.
101
+ *
102
+ * @throws GuzzleException
103
+ */
104
+ public function patch($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
105
+ {
106
+ return $this->request('PATCH', $uri, $options);
107
+ }
108
+ /**
109
+ * Create and send an HTTP DELETE request.
110
+ *
111
+ * Use an absolute path to override the base path of the client, or a
112
+ * relative path to append to the base path of the client. The URL can
113
+ * contain the query string as well.
114
+ *
115
+ * @param string|UriInterface $uri URI object or string.
116
+ * @param array $options Request options to apply.
117
+ *
118
+ * @throws GuzzleException
119
+ */
120
+ public function delete($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
121
+ {
122
+ return $this->request('DELETE', $uri, $options);
123
+ }
124
+ /**
125
+ * Create and send an asynchronous HTTP request.
126
+ *
127
+ * Use an absolute path to override the base path of the client, or a
128
+ * relative path to append to the base path of the client. The URL can
129
+ * contain the query string as well. Use an array to provide a URL
130
+ * template and additional variables to use in the URL template expansion.
131
+ *
132
+ * @param string $method HTTP method
133
+ * @param string|UriInterface $uri URI object or string.
134
+ * @param array $options Request options to apply.
135
+ */
136
+ public abstract function requestAsync(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
137
+ /**
138
+ * Create and send an asynchronous HTTP GET request.
139
+ *
140
+ * Use an absolute path to override the base path of the client, or a
141
+ * relative path to append to the base path of the client. The URL can
142
+ * contain the query string as well. Use an array to provide a URL
143
+ * template and additional variables to use in the URL template expansion.
144
+ *
145
+ * @param string|UriInterface $uri URI object or string.
146
+ * @param array $options Request options to apply.
147
+ */
148
+ public function getAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
149
+ {
150
+ return $this->requestAsync('GET', $uri, $options);
151
+ }
152
+ /**
153
+ * Create and send an asynchronous HTTP HEAD request.
154
+ *
155
+ * Use an absolute path to override the base path of the client, or a
156
+ * relative path to append to the base path of the client. The URL can
157
+ * contain the query string as well. Use an array to provide a URL
158
+ * template and additional variables to use in the URL template expansion.
159
+ *
160
+ * @param string|UriInterface $uri URI object or string.
161
+ * @param array $options Request options to apply.
162
+ */
163
+ public function headAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
164
+ {
165
+ return $this->requestAsync('HEAD', $uri, $options);
166
+ }
167
+ /**
168
+ * Create and send an asynchronous HTTP PUT request.
169
+ *
170
+ * Use an absolute path to override the base path of the client, or a
171
+ * relative path to append to the base path of the client. The URL can
172
+ * contain the query string as well. Use an array to provide a URL
173
+ * template and additional variables to use in the URL template expansion.
174
+ *
175
+ * @param string|UriInterface $uri URI object or string.
176
+ * @param array $options Request options to apply.
177
+ */
178
+ public function putAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
179
+ {
180
+ return $this->requestAsync('PUT', $uri, $options);
181
+ }
182
+ /**
183
+ * Create and send an asynchronous HTTP POST request.
184
+ *
185
+ * Use an absolute path to override the base path of the client, or a
186
+ * relative path to append to the base path of the client. The URL can
187
+ * contain the query string as well. Use an array to provide a URL
188
+ * template and additional variables to use in the URL template expansion.
189
+ *
190
+ * @param string|UriInterface $uri URI object or string.
191
+ * @param array $options Request options to apply.
192
+ */
193
+ public function postAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
194
+ {
195
+ return $this->requestAsync('POST', $uri, $options);
196
+ }
197
+ /**
198
+ * Create and send an asynchronous HTTP PATCH request.
199
+ *
200
+ * Use an absolute path to override the base path of the client, or a
201
+ * relative path to append to the base path of the client. The URL can
202
+ * contain the query string as well. Use an array to provide a URL
203
+ * template and additional variables to use in the URL template expansion.
204
+ *
205
+ * @param string|UriInterface $uri URI object or string.
206
+ * @param array $options Request options to apply.
207
+ */
208
+ public function patchAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
209
+ {
210
+ return $this->requestAsync('PATCH', $uri, $options);
211
+ }
212
+ /**
213
+ * Create and send an asynchronous HTTP DELETE request.
214
+ *
215
+ * Use an absolute path to override the base path of the client, or a
216
+ * relative path to append to the base path of the client. The URL can
217
+ * contain the query string as well. Use an array to provide a URL
218
+ * template and additional variables to use in the URL template expansion.
219
+ *
220
+ * @param string|UriInterface $uri URI object or string.
221
+ * @param array $options Request options to apply.
222
+ */
223
+ public function deleteAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
224
+ {
225
+ return $this->requestAsync('DELETE', $uri, $options);
226
+ }
227
+ }
vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php CHANGED
@@ -9,18 +9,22 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  */
10
  class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
11
  {
12
- /** @var SetCookie[] Loaded cookie data */
 
 
13
  private $cookies = [];
14
- /** @var bool */
 
 
15
  private $strictMode;
16
  /**
17
- * @param bool $strictMode Set to true to throw exceptions when invalid
18
  * cookies are added to the cookie jar.
19
  * @param array $cookieArray Array of SetCookie objects or a hash of
20
  * arrays that can be used with the SetCookie
21
  * constructor
22
  */
23
- public function __construct($strictMode = \false, $cookieArray = [])
24
  {
25
  $this->strictMode = $strictMode;
26
  foreach ($cookieArray as $cookie) {
@@ -35,10 +39,8 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
35
  *
36
  * @param array $cookies Cookies to create the jar from
37
  * @param string $domain Domain to set the cookies to
38
- *
39
- * @return self
40
  */
41
- public static function fromArray(array $cookies, $domain)
42
  {
43
  $cookieJar = new self();
44
  foreach ($cookies as $name => $value) {
@@ -46,22 +48,14 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
46
  }
47
  return $cookieJar;
48
  }
49
- /**
50
- * @deprecated
51
- */
52
- public static function getCookieValue($value)
53
- {
54
- return $value;
55
- }
56
  /**
57
  * Evaluate if this cookie should be persisted to storage
58
  * that survives between requests.
59
  *
60
- * @param SetCookie $cookie Being evaluated.
61
- * @param bool $allowSessionCookies If we should persist session cookies
62
- * @return bool
63
  */
64
- public static function shouldPersist(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie, $allowSessionCookies = \false)
65
  {
66
  if ($cookie->getExpires() || $allowSessionCookies) {
67
  if (!$cookie->getDiscard()) {
@@ -74,14 +68,11 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
74
  * Finds and returns the cookie based on the name
75
  *
76
  * @param string $name cookie name to search for
 
77
  * @return SetCookie|null cookie that was found or null if not found
78
  */
79
- public function getCookieByName($name)
80
  {
81
- // don't allow a non string name
82
- if ($name === null || !\is_scalar($name)) {
83
- return null;
84
- }
85
  foreach ($this->cookies as $cookie) {
86
  if ($cookie->getName() !== null && \strcasecmp($cookie->getName(), $name) === 0) {
87
  return $cookie;
@@ -89,38 +80,50 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
89
  }
90
  return null;
91
  }
92
- public function toArray()
 
 
 
93
  {
94
- return \array_map(function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) {
95
  return $cookie->toArray();
96
  }, $this->getIterator()->getArrayCopy());
97
  }
98
- public function clear($domain = null, $path = null, $name = null)
 
 
 
99
  {
100
  if (!$domain) {
101
  $this->cookies = [];
102
  return;
103
  } elseif (!$path) {
104
- $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($domain) {
105
  return !$cookie->matchesDomain($domain);
106
  });
107
  } elseif (!$name) {
108
- $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain) {
109
  return !($cookie->matchesPath($path) && $cookie->matchesDomain($domain));
110
  });
111
  } else {
112
- $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain, $name) {
113
  return !($cookie->getName() == $name && $cookie->matchesPath($path) && $cookie->matchesDomain($domain));
114
  });
115
  }
116
  }
117
- public function clearSessionCookies()
 
 
 
118
  {
119
- $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) {
120
  return !$cookie->getDiscard() && $cookie->getExpires();
121
  });
122
  }
123
- public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie)
 
 
 
124
  {
125
  // If the name string is empty (but not 0), ignore the set-cookie
126
  // string entirely.
@@ -133,10 +136,9 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
133
  if ($result !== \true) {
134
  if ($this->strictMode) {
135
  throw new \RuntimeException('Invalid cookie: ' . $result);
136
- } else {
137
- $this->removeCookieIfEmpty($cookie);
138
- return \false;
139
  }
 
 
140
  }
141
  // Resolve conflicts with previously set cookies
142
  foreach ($this->cookies as $i => $c) {
@@ -168,15 +170,18 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
168
  $this->cookies[] = $cookie;
169
  return \true;
170
  }
171
- public function count()
172
  {
173
  return \count($this->cookies);
174
  }
175
- public function getIterator()
 
 
 
176
  {
177
  return new \ArrayIterator(\array_values($this->cookies));
178
  }
179
- public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
180
  {
181
  if ($cookieHeader = $response->getHeader('Set-Cookie')) {
182
  foreach ($cookieHeader as $cookie) {
@@ -195,11 +200,8 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
195
  * Computes cookie path following RFC 6265 section 5.1.4
196
  *
197
  * @link https://tools.ietf.org/html/rfc6265#section-5.1.4
198
- *
199
- * @param RequestInterface $request
200
- * @return string
201
  */
202
- private function getCookiePathFromRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request)
203
  {
204
  $uriPath = $request->getUri()->getPath();
205
  if ('' === $uriPath) {
@@ -211,12 +213,13 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
211
  if ('/' === $uriPath) {
212
  return '/';
213
  }
214
- if (0 === ($lastSlashPos = \strrpos($uriPath, '/'))) {
 
215
  return '/';
216
  }
217
  return \substr($uriPath, 0, $lastSlashPos);
218
  }
219
- public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request)
220
  {
221
  $values = [];
222
  $uri = $request->getUri();
@@ -233,10 +236,8 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
233
  /**
234
  * If a cookie already exists and the server asks to set it again with a
235
  * null value, the cookie must be deleted.
236
- *
237
- * @param SetCookie $cookie
238
  */
239
- private function removeCookieIfEmpty(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie)
240
  {
241
  $cookieValue = $cookie->getValue();
242
  if ($cookieValue === null || $cookieValue === '') {
9
  */
10
  class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
11
  {
12
+ /**
13
+ * @var SetCookie[] Loaded cookie data
14
+ */
15
  private $cookies = [];
16
+ /**
17
+ * @var bool
18
+ */
19
  private $strictMode;
20
  /**
21
+ * @param bool $strictMode Set to true to throw exceptions when invalid
22
  * cookies are added to the cookie jar.
23
  * @param array $cookieArray Array of SetCookie objects or a hash of
24
  * arrays that can be used with the SetCookie
25
  * constructor
26
  */
27
+ public function __construct(bool $strictMode = \false, array $cookieArray = [])
28
  {
29
  $this->strictMode = $strictMode;
30
  foreach ($cookieArray as $cookie) {
39
  *
40
  * @param array $cookies Cookies to create the jar from
41
  * @param string $domain Domain to set the cookies to
 
 
42
  */
43
+ public static function fromArray(array $cookies, string $domain) : self
44
  {
45
  $cookieJar = new self();
46
  foreach ($cookies as $name => $value) {
48
  }
49
  return $cookieJar;
50
  }
 
 
 
 
 
 
 
51
  /**
52
  * Evaluate if this cookie should be persisted to storage
53
  * that survives between requests.
54
  *
55
+ * @param SetCookie $cookie Being evaluated.
56
+ * @param bool $allowSessionCookies If we should persist session cookies
 
57
  */
58
+ public static function shouldPersist(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie, bool $allowSessionCookies = \false) : bool
59
  {
60
  if ($cookie->getExpires() || $allowSessionCookies) {
61
  if (!$cookie->getDiscard()) {
68
  * Finds and returns the cookie based on the name
69
  *
70
  * @param string $name cookie name to search for
71
+ *
72
  * @return SetCookie|null cookie that was found or null if not found
73
  */
74
+ public function getCookieByName(string $name) : ?\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie
75
  {
 
 
 
 
76
  foreach ($this->cookies as $cookie) {
77
  if ($cookie->getName() !== null && \strcasecmp($cookie->getName(), $name) === 0) {
78
  return $cookie;
80
  }
81
  return null;
82
  }
83
+ /**
84
+ * @inheritDoc
85
+ */
86
+ public function toArray() : array
87
  {
88
+ return \array_map(static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : array {
89
  return $cookie->toArray();
90
  }, $this->getIterator()->getArrayCopy());
91
  }
92
+ /**
93
+ * @inheritDoc
94
+ */
95
+ public function clear(?string $domain = null, ?string $path = null, ?string $name = null) : void
96
  {
97
  if (!$domain) {
98
  $this->cookies = [];
99
  return;
100
  } elseif (!$path) {
101
+ $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($domain) : bool {
102
  return !$cookie->matchesDomain($domain);
103
  });
104
  } elseif (!$name) {
105
+ $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain) : bool {
106
  return !($cookie->matchesPath($path) && $cookie->matchesDomain($domain));
107
  });
108
  } else {
109
+ $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain, $name) {
110
  return !($cookie->getName() == $name && $cookie->matchesPath($path) && $cookie->matchesDomain($domain));
111
  });
112
  }
113
  }
114
+ /**
115
+ * @inheritDoc
116
+ */
117
+ public function clearSessionCookies() : void
118
  {
119
+ $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : bool {
120
  return !$cookie->getDiscard() && $cookie->getExpires();
121
  });
122
  }
123
+ /**
124
+ * @inheritDoc
125
+ */
126
+ public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : bool
127
  {
128
  // If the name string is empty (but not 0), ignore the set-cookie
129
  // string entirely.
136
  if ($result !== \true) {
137
  if ($this->strictMode) {
138
  throw new \RuntimeException('Invalid cookie: ' . $result);
 
 
 
139
  }
140
+ $this->removeCookieIfEmpty($cookie);
141
+ return \false;
142
  }
143
  // Resolve conflicts with previously set cookies
144
  foreach ($this->cookies as $i => $c) {
170
  $this->cookies[] = $cookie;
171
  return \true;
172
  }
173
+ public function count() : int
174
  {
175
  return \count($this->cookies);
176
  }
177
+ /**
178
+ * @return \ArrayIterator<int, SetCookie>
179
+ */
180
+ public function getIterator() : \ArrayIterator
181
  {
182
  return new \ArrayIterator(\array_values($this->cookies));
183
  }
184
+ public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) : void
185
  {
186
  if ($cookieHeader = $response->getHeader('Set-Cookie')) {
187
  foreach ($cookieHeader as $cookie) {
200
  * Computes cookie path following RFC 6265 section 5.1.4
201
  *
202
  * @link https://tools.ietf.org/html/rfc6265#section-5.1.4
 
 
 
203
  */
204
+ private function getCookiePathFromRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : string
205
  {
206
  $uriPath = $request->getUri()->getPath();
207
  if ('' === $uriPath) {
213
  if ('/' === $uriPath) {
214
  return '/';
215
  }
216
+ $lastSlashPos = \strrpos($uriPath, '/');
217
+ if (0 === $lastSlashPos || \false === $lastSlashPos) {
218
  return '/';
219
  }
220
  return \substr($uriPath, 0, $lastSlashPos);
221
  }
222
+ public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
223
  {
224
  $values = [];
225
  $uri = $request->getUri();
236
  /**
237
  * If a cookie already exists and the server asks to set it again with a
238
  * null value, the cookie must be deleted.
 
 
239
  */
240
+ private function removeCookieIfEmpty(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : void
241
  {
242
  $cookieValue = $cookie->getValue();
243
  if ($cookieValue === null || $cookieValue === '') {
vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php CHANGED
@@ -12,7 +12,8 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
12
  * necessary. Subclasses are also responsible for storing and retrieving
13
  * cookies from a file, database, etc.
14
  *
15
- * @link http://docs.python.org/2/library/cookielib.html Inspiration
 
16
  */
17
  interface CookieJarInterface extends \Countable, \IteratorAggregate
18
  {
@@ -26,14 +27,14 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
26
  *
27
  * @return RequestInterface returns the modified request.
28
  */
29
- public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request);
30
  /**
31
  * Extract cookies from an HTTP response and store them in the CookieJar.
32
  *
33
  * @param RequestInterface $request Request that was sent
34
  * @param ResponseInterface $response Response that was received
35
  */
36
- public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response);
37
  /**
38
  * Sets a cookie in the cookie jar.
39
  *
@@ -41,7 +42,7 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
41
  *
42
  * @return bool Returns true on success or false on failure
43
  */
44
- public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie);
45
  /**
46
  * Remove cookies currently held in the cookie jar.
47
  *
@@ -55,10 +56,8 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
55
  * @param string|null $domain Clears cookies matching a domain
56
  * @param string|null $path Clears cookies matching a domain and path
57
  * @param string|null $name Clears cookies matching a domain, path, and name
58
- *
59
- * @return CookieJarInterface
60
  */
61
- public function clear($domain = null, $path = null, $name = null);
62
  /**
63
  * Discard all sessions cookies.
64
  *
@@ -66,11 +65,9 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
66
  * field set to true. To be called when the user agent shuts down according
67
  * to RFC 2965.
68
  */
69
- public function clearSessionCookies();
70
  /**
71
  * Converts the cookie jar to an array.
72
- *
73
- * @return array
74
  */
75
- public function toArray();
76
  }
12
  * necessary. Subclasses are also responsible for storing and retrieving
13
  * cookies from a file, database, etc.
14
  *
15
+ * @link https://docs.python.org/2/library/cookielib.html Inspiration
16
+ * @extends \IteratorAggregate<SetCookie>
17
  */
18
  interface CookieJarInterface extends \Countable, \IteratorAggregate
19
  {
27
  *
28
  * @return RequestInterface returns the modified request.
29
  */
30
+ public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
31
  /**
32
  * Extract cookies from an HTTP response and store them in the CookieJar.
33
  *
34
  * @param RequestInterface $request Request that was sent
35
  * @param ResponseInterface $response Response that was received
36
  */
37
+ public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) : void;
38
  /**
39
  * Sets a cookie in the cookie jar.
40
  *
42
  *
43
  * @return bool Returns true on success or false on failure
44
  */
45
+ public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : bool;
46
  /**
47
  * Remove cookies currently held in the cookie jar.
48
  *
56
  * @param string|null $domain Clears cookies matching a domain
57
  * @param string|null $path Clears cookies matching a domain and path
58
  * @param string|null $name Clears cookies matching a domain, path, and name
 
 
59
  */
60
+ public function clear(?string $domain = null, ?string $path = null, ?string $name = null) : void;
61
  /**
62
  * Discard all sessions cookies.
63
  *
65
  * field set to true. To be called when the user agent shuts down according
66
  * to RFC 2965.
67
  */
68
+ public function clearSessionCookies() : void;
69
  /**
70
  * Converts the cookie jar to an array.
 
 
71
  */
72
+ public function toArray() : array;
73
  }
vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php CHANGED
@@ -2,25 +2,30 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
4
 
 
5
  /**
6
  * Persists non-session cookies using a JSON formatted file
7
  */
8
  class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
9
  {
10
- /** @var string filename */
 
 
11
  private $filename;
12
- /** @var bool Control whether to persist session cookies or not. */
 
 
13
  private $storeSessionCookies;
14
  /**
15
  * Create a new FileCookieJar object
16
  *
17
- * @param string $cookieFile File to store the cookie data
18
- * @param bool $storeSessionCookies Set to true to store session cookies
19
- * in the cookie jar.
20
  *
21
  * @throws \RuntimeException if the file cannot be found or created
22
  */
23
- public function __construct($cookieFile, $storeSessionCookies = \false)
24
  {
25
  parent::__construct();
26
  $this->filename = $cookieFile;
@@ -40,18 +45,19 @@ class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
40
  * Saves the cookies to a file.
41
  *
42
  * @param string $filename File to save
 
43
  * @throws \RuntimeException if the file cannot be found or created
44
  */
45
- public function save($filename)
46
  {
47
  $json = [];
 
48
  foreach ($this as $cookie) {
49
- /** @var SetCookie $cookie */
50
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
51
  $json[] = $cookie->toArray();
52
  }
53
  }
54
- $jsonStr = \PYS_PRO_GLOBAL\GuzzleHttp\json_encode($json);
55
  if (\false === \file_put_contents($filename, $jsonStr, \LOCK_EX)) {
56
  throw new \RuntimeException("Unable to save file {$filename}");
57
  }
@@ -62,22 +68,24 @@ class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
62
  * Old cookies are kept unless overwritten by newly loaded ones.
63
  *
64
  * @param string $filename Cookie file to load.
 
65
  * @throws \RuntimeException if the file cannot be loaded.
66
  */
67
- public function load($filename)
68
  {
69
  $json = \file_get_contents($filename);
70
  if (\false === $json) {
71
  throw new \RuntimeException("Unable to load file {$filename}");
72
- } elseif ($json === '') {
 
73
  return;
74
  }
75
- $data = \PYS_PRO_GLOBAL\GuzzleHttp\json_decode($json, \true);
76
  if (\is_array($data)) {
77
- foreach (\json_decode($json, \true) as $cookie) {
78
  $this->setCookie(new \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie($cookie));
79
  }
80
- } elseif (\strlen($data)) {
81
  throw new \RuntimeException("Invalid cookie file: {$filename}");
82
  }
83
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
6
  /**
7
  * Persists non-session cookies using a JSON formatted file
8
  */
9
  class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
10
  {
11
+ /**
12
+ * @var string filename
13
+ */
14
  private $filename;
15
+ /**
16
+ * @var bool Control whether to persist session cookies or not.
17
+ */
18
  private $storeSessionCookies;
19
  /**
20
  * Create a new FileCookieJar object
21
  *
22
+ * @param string $cookieFile File to store the cookie data
23
+ * @param bool $storeSessionCookies Set to true to store session cookies
24
+ * in the cookie jar.
25
  *
26
  * @throws \RuntimeException if the file cannot be found or created
27
  */
28
+ public function __construct(string $cookieFile, bool $storeSessionCookies = \false)
29
  {
30
  parent::__construct();
31
  $this->filename = $cookieFile;
45
  * Saves the cookies to a file.
46
  *
47
  * @param string $filename File to save
48
+ *
49
  * @throws \RuntimeException if the file cannot be found or created
50
  */
51
+ public function save(string $filename) : void
52
  {
53
  $json = [];
54
+ /** @var SetCookie $cookie */
55
  foreach ($this as $cookie) {
 
56
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
57
  $json[] = $cookie->toArray();
58
  }
59
  }
60
+ $jsonStr = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonEncode($json);
61
  if (\false === \file_put_contents($filename, $jsonStr, \LOCK_EX)) {
62
  throw new \RuntimeException("Unable to save file {$filename}");
63
  }
68
  * Old cookies are kept unless overwritten by newly loaded ones.
69
  *
70
  * @param string $filename Cookie file to load.
71
+ *
72
  * @throws \RuntimeException if the file cannot be loaded.
73
  */
74
+ public function load(string $filename) : void
75
  {
76
  $json = \file_get_contents($filename);
77
  if (\false === $json) {
78
  throw new \RuntimeException("Unable to load file {$filename}");
79
+ }
80
+ if ($json === '') {
81
  return;
82
  }
83
+ $data = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonDecode($json, \true);
84
  if (\is_array($data)) {
85
+ foreach ($data as $cookie) {
86
  $this->setCookie(new \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie($cookie));
87
  }
88
+ } elseif (\is_scalar($data) && !empty($data)) {
89
  throw new \RuntimeException("Invalid cookie file: {$filename}");
90
  }
91
  }
vendor_prefix/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php CHANGED
@@ -7,19 +7,23 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
7
  */
8
  class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
9
  {
10
- /** @var string session key */
 
 
11
  private $sessionKey;
12
- /** @var bool Control whether to persist session cookies or not. */
 
 
13
  private $storeSessionCookies;
14
  /**
15
  * Create a new SessionCookieJar object
16
  *
17
- * @param string $sessionKey Session key name to store the cookie
18
- * data in session
19
- * @param bool $storeSessionCookies Set to true to store session cookies
20
- * in the cookie jar.
21
  */
22
- public function __construct($sessionKey, $storeSessionCookies = \false)
23
  {
24
  parent::__construct();
25
  $this->sessionKey = $sessionKey;
@@ -36,11 +40,11 @@ class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
36
  /**
37
  * Save cookies to the client session
38
  */
39
- public function save()
40
  {
41
  $json = [];
 
42
  foreach ($this as $cookie) {
43
- /** @var SetCookie $cookie */
44
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
45
  $json[] = $cookie->toArray();
46
  }
@@ -50,7 +54,7 @@ class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
50
  /**
51
  * Load the contents of the client session into the data array
52
  */
53
- protected function load()
54
  {
55
  if (!isset($_SESSION[$this->sessionKey])) {
56
  return;
7
  */
8
  class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
9
  {
10
+ /**
11
+ * @var string session key
12
+ */
13
  private $sessionKey;
14
+ /**
15
+ * @var bool Control whether to persist session cookies or not.
16
+ */
17
  private $storeSessionCookies;
18
  /**
19
  * Create a new SessionCookieJar object
20
  *
21
+ * @param string $sessionKey Session key name to store the cookie
22
+ * data in session
23
+ * @param bool $storeSessionCookies Set to true to store session cookies
24
+ * in the cookie jar.
25
  */
26
+ public function __construct(string $sessionKey, bool $storeSessionCookies = \false)
27
  {
28
  parent::__construct();
29
  $this->sessionKey = $sessionKey;
40
  /**
41
  * Save cookies to the client session
42
  */
43
+ public function save() : void
44
  {
45
  $json = [];
46
+ /** @var SetCookie $cookie */
47
  foreach ($this as $cookie) {
 
48
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
49
  $json[] = $cookie->toArray();
50
  }
54
  /**
55
  * Load the contents of the client session into the data array
56
  */
57
+ protected function load() : void
58
  {
59
  if (!isset($_SESSION[$this->sessionKey])) {
60
  return;
vendor_prefix/guzzlehttp/guzzle/src/Cookie/SetCookie.php CHANGED
@@ -7,25 +7,27 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
7
  */
8
  class SetCookie
9
  {
10
- /** @var array */
 
 
11
  private static $defaults = ['Name' => null, 'Value' => null, 'Domain' => null, 'Path' => '/', 'Max-Age' => null, 'Expires' => null, 'Secure' => \false, 'Discard' => \false, 'HttpOnly' => \false];
12
- /** @var array Cookie data */
 
 
13
  private $data;
14
  /**
15
- * Create a new SetCookie object from a string
16
  *
17
  * @param string $cookie Set-Cookie header string
18
- *
19
- * @return self
20
  */
21
- public static function fromString($cookie)
22
  {
23
  // Create the default return array
24
  $data = self::$defaults;
25
  // Explode the cookie string using a series of semicolons
26
  $pieces = \array_filter(\array_map('trim', \explode(';', $cookie)));
27
  // The name of the cookie (first kvp) must exist and include an equal sign.
28
- if (empty($pieces[0]) || !\strpos($pieces[0], '=')) {
29
  return new self($data);
30
  }
31
  // Add the cookie pieces into the parsed data array
@@ -34,7 +36,7 @@ class SetCookie
34
  $key = \trim($cookieParts[0]);
35
  $value = isset($cookieParts[1]) ? \trim($cookieParts[1], " \n\r\t\0\v") : \true;
36
  // Only check for non-cookies when cookies have been found
37
- if (empty($data['Name'])) {
38
  $data['Name'] = $key;
39
  $data['Value'] = $value;
40
  } else {
@@ -54,13 +56,18 @@ class SetCookie
54
  */
55
  public function __construct(array $data = [])
56
  {
57
- $this->data = \array_replace(self::$defaults, $data);
 
 
 
 
 
58
  // Extract the Expires value and turn it into a UNIX timestamp if needed
59
  if (!$this->getExpires() && $this->getMaxAge()) {
60
  // Calculate the Expires date
61
  $this->setExpires(\time() + $this->getMaxAge());
62
- } elseif ($this->getExpires() && !\is_numeric($this->getExpires())) {
63
- $this->setExpires($this->getExpires());
64
  }
65
  }
66
  public function __toString()
@@ -77,12 +84,12 @@ class SetCookie
77
  }
78
  return \rtrim($str, '; ');
79
  }
80
- public function toArray()
81
  {
82
  return $this->data;
83
  }
84
  /**
85
- * Get the cookie name
86
  *
87
  * @return string
88
  */
@@ -91,34 +98,34 @@ class SetCookie
91
  return $this->data['Name'];
92
  }
93
  /**
94
- * Set the cookie name
95
  *
96
  * @param string $name Cookie name
97
  */
98
- public function setName($name)
99
  {
100
  $this->data['Name'] = $name;
101
  }
102
  /**
103
- * Get the cookie value
104
  *
105
- * @return string
106
  */
107
  public function getValue()
108
  {
109
  return $this->data['Value'];
110
  }
111
  /**
112
- * Set the cookie value
113
  *
114
  * @param string $value Cookie value
115
  */
116
- public function setValue($value)
117
  {
118
  $this->data['Value'] = $value;
119
  }
120
  /**
121
- * Get the domain
122
  *
123
  * @return string|null
124
  */
@@ -127,16 +134,16 @@ class SetCookie
127
  return $this->data['Domain'];
128
  }
129
  /**
130
- * Set the domain of the cookie
131
  *
132
  * @param string $domain
133
  */
134
- public function setDomain($domain)
135
  {
136
  $this->data['Domain'] = $domain;
137
  }
138
  /**
139
- * Get the path
140
  *
141
  * @return string
142
  */
@@ -145,16 +152,16 @@ class SetCookie
145
  return $this->data['Path'];
146
  }
147
  /**
148
- * Set the path of the cookie
149
  *
150
  * @param string $path Path of the cookie
151
  */
152
- public function setPath($path)
153
  {
154
  $this->data['Path'] = $path;
155
  }
156
  /**
157
- * Maximum lifetime of the cookie in seconds
158
  *
159
  * @return int|null
160
  */
@@ -163,34 +170,34 @@ class SetCookie
163
  return $this->data['Max-Age'];
164
  }
165
  /**
166
- * Set the max-age of the cookie
167
  *
168
  * @param int $maxAge Max age of the cookie in seconds
169
  */
170
- public function setMaxAge($maxAge)
171
  {
172
  $this->data['Max-Age'] = $maxAge;
173
  }
174
  /**
175
- * The UNIX timestamp when the cookie Expires
176
  *
177
- * @return mixed
178
  */
179
  public function getExpires()
180
  {
181
  return $this->data['Expires'];
182
  }
183
  /**
184
- * Set the unix timestamp for which the cookie will expire
185
  *
186
- * @param int $timestamp Unix timestamp
187
  */
188
- public function setExpires($timestamp)
189
  {
190
  $this->data['Expires'] = \is_numeric($timestamp) ? (int) $timestamp : \strtotime($timestamp);
191
  }
192
  /**
193
- * Get whether or not this is a secure cookie
194
  *
195
  * @return bool|null
196
  */
@@ -199,16 +206,16 @@ class SetCookie
199
  return $this->data['Secure'];
200
  }
201
  /**
202
- * Set whether or not the cookie is secure
203
  *
204
  * @param bool $secure Set to true or false if secure
205
  */
206
- public function setSecure($secure)
207
  {
208
  $this->data['Secure'] = $secure;
209
  }
210
  /**
211
- * Get whether or not this is a session cookie
212
  *
213
  * @return bool|null
214
  */
@@ -217,16 +224,16 @@ class SetCookie
217
  return $this->data['Discard'];
218
  }
219
  /**
220
- * Set whether or not this is a session cookie
221
  *
222
  * @param bool $discard Set to true or false if this is a session cookie
223
  */
224
- public function setDiscard($discard)
225
  {
226
  $this->data['Discard'] = $discard;
227
  }
228
  /**
229
- * Get whether or not this is an HTTP only cookie
230
  *
231
  * @return bool
232
  */
@@ -235,11 +242,11 @@ class SetCookie
235
  return $this->data['HttpOnly'];
236
  }
237
  /**
238
- * Set whether or not this is an HTTP only cookie
239
  *
240
  * @param bool $httpOnly Set to true or false if this is HTTP only
241
  */
242
- public function setHttpOnly($httpOnly)
243
  {
244
  $this->data['HttpOnly'] = $httpOnly;
245
  }
@@ -257,10 +264,8 @@ class SetCookie
257
  * path is a %x2F ("/") character.
258
  *
259
  * @param string $requestPath Path to check against
260
- *
261
- * @return bool
262
  */
263
- public function matchesPath($requestPath)
264
  {
265
  $cookiePath = $this->getPath();
266
  // Match on exact matches or when path is the default empty "/"
@@ -279,63 +284,62 @@ class SetCookie
279
  return \substr($requestPath, \strlen($cookiePath), 1) === '/';
280
  }
281
  /**
282
- * Check if the cookie matches a domain value
283
  *
284
  * @param string $domain Domain to check against
285
- *
286
- * @return bool
287
  */
288
- public function matchesDomain($domain)
289
  {
 
 
 
 
290
  // Remove the leading '.' as per spec in RFC 6265.
291
- // http://tools.ietf.org/html/rfc6265#section-5.2.3
292
- $cookieDomain = \ltrim($this->getDomain(), '.');
293
  // Domain not set or exact match.
294
  if (!$cookieDomain || !\strcasecmp($domain, $cookieDomain)) {
295
  return \true;
296
  }
297
  // Matching the subdomain according to RFC 6265.
298
- // http://tools.ietf.org/html/rfc6265#section-5.1.3
299
  if (\filter_var($domain, \FILTER_VALIDATE_IP)) {
300
  return \false;
301
  }
302
  return (bool) \preg_match('/\\.' . \preg_quote($cookieDomain, '/') . '$/', $domain);
303
  }
304
  /**
305
- * Check if the cookie is expired
306
- *
307
- * @return bool
308
  */
309
- public function isExpired()
310
  {
311
  return $this->getExpires() !== null && \time() > $this->getExpires();
312
  }
313
  /**
314
- * Check if the cookie is valid according to RFC 6265
315
  *
316
  * @return bool|string Returns true if valid or an error message if invalid
317
  */
318
  public function validate()
319
  {
320
- // Names must not be empty, but can be 0
321
  $name = $this->getName();
322
- if (empty($name) && !\is_numeric($name)) {
323
  return 'The cookie name must not be empty';
324
  }
325
  // Check if any of the invalid characters are present in the cookie name
326
  if (\preg_match('/[\\x00-\\x20\\x22\\x28-\\x29\\x2c\\x2f\\x3a-\\x40\\x5c\\x7b\\x7d\\x7f]/', $name)) {
327
  return 'Cookie name must not contain invalid characters: ASCII ' . 'Control characters (0-31;127), space, tab and the ' . 'following characters: ()<>@,;:\\"/?={}';
328
  }
329
- // Value must not be empty, but can be 0
 
330
  $value = $this->getValue();
331
- if (empty($value) && !\is_numeric($value)) {
332
  return 'The cookie value must not be empty';
333
  }
334
- // Domains must not be empty, but can be 0
335
- // A "0" is not a valid internet domain, but may be used as server name
336
- // in a private network.
337
  $domain = $this->getDomain();
338
- if (empty($domain) && !\is_numeric($domain)) {
339
  return 'The cookie domain must not be empty';
340
  }
341
  return \true;
7
  */
8
  class SetCookie
9
  {
10
+ /**
11
+ * @var array
12
+ */
13
  private static $defaults = ['Name' => null, 'Value' => null, 'Domain' => null, 'Path' => '/', 'Max-Age' => null, 'Expires' => null, 'Secure' => \false, 'Discard' => \false, 'HttpOnly' => \false];
14
+ /**
15
+ * @var array Cookie data
16
+ */
17
  private $data;
18
  /**
19
+ * Create a new SetCookie object from a string.
20
  *
21
  * @param string $cookie Set-Cookie header string
 
 
22
  */
23
+ public static function fromString(string $cookie) : self
24
  {
25
  // Create the default return array
26
  $data = self::$defaults;
27
  // Explode the cookie string using a series of semicolons
28
  $pieces = \array_filter(\array_map('trim', \explode(';', $cookie)));
29
  // The name of the cookie (first kvp) must exist and include an equal sign.
30
+ if (!isset($pieces[0]) || \strpos($pieces[0], '=') === \false) {
31
  return new self($data);
32
  }
33
  // Add the cookie pieces into the parsed data array
36
  $key = \trim($cookieParts[0]);
37
  $value = isset($cookieParts[1]) ? \trim($cookieParts[1], " \n\r\t\0\v") : \true;
38
  // Only check for non-cookies when cookies have been found
39
+ if (!isset($data['Name'])) {
40
  $data['Name'] = $key;
41
  $data['Value'] = $value;
42
  } else {
56
  */
57
  public function __construct(array $data = [])
58
  {
59
+ /** @var array|null $replaced will be null in case of replace error */
60
+ $replaced = \array_replace(self::$defaults, $data);
61
+ if ($replaced === null) {
62
+ throw new \InvalidArgumentException('Unable to replace the default values for the Cookie.');
63
+ }
64
+ $this->data = $replaced;
65
  // Extract the Expires value and turn it into a UNIX timestamp if needed
66
  if (!$this->getExpires() && $this->getMaxAge()) {
67
  // Calculate the Expires date
68
  $this->setExpires(\time() + $this->getMaxAge());
69
+ } elseif (null !== ($expires = $this->getExpires()) && !\is_numeric($expires)) {
70
+ $this->setExpires($expires);
71
  }
72
  }
73
  public function __toString()
84
  }
85
  return \rtrim($str, '; ');
86
  }
87
+ public function toArray() : array
88
  {
89
  return $this->data;
90
  }
91
  /**
92
+ * Get the cookie name.
93
  *
94
  * @return string
95
  */
98
  return $this->data['Name'];
99
  }
100
  /**
101
+ * Set the cookie name.
102
  *
103
  * @param string $name Cookie name
104
  */
105
+ public function setName($name) : void
106
  {
107
  $this->data['Name'] = $name;
108
  }
109
  /**
110
+ * Get the cookie value.
111
  *
112
+ * @return string|null
113
  */
114
  public function getValue()
115
  {
116
  return $this->data['Value'];
117
  }
118
  /**
119
+ * Set the cookie value.
120
  *
121
  * @param string $value Cookie value
122
  */
123
+ public function setValue($value) : void
124
  {
125
  $this->data['Value'] = $value;
126
  }
127
  /**
128
+ * Get the domain.
129
  *
130
  * @return string|null
131
  */
134
  return $this->data['Domain'];
135
  }
136
  /**
137
+ * Set the domain of the cookie.
138
  *
139
  * @param string $domain
140
  */
141
+ public function setDomain($domain) : void
142
  {
143
  $this->data['Domain'] = $domain;
144
  }
145
  /**
146
+ * Get the path.
147
  *
148
  * @return string
149
  */
152
  return $this->data['Path'];
153
  }
154
  /**
155
+ * Set the path of the cookie.
156
  *
157
  * @param string $path Path of the cookie
158
  */
159
+ public function setPath($path) : void
160
  {
161
  $this->data['Path'] = $path;
162
  }
163
  /**
164
+ * Maximum lifetime of the cookie in seconds.
165
  *
166
  * @return int|null
167
  */
170
  return $this->data['Max-Age'];
171
  }
172
  /**
173
+ * Set the max-age of the cookie.
174
  *
175
  * @param int $maxAge Max age of the cookie in seconds
176
  */
177
+ public function setMaxAge($maxAge) : void
178
  {
179
  $this->data['Max-Age'] = $maxAge;
180
  }
181
  /**
182
+ * The UNIX timestamp when the cookie Expires.
183
  *
184
+ * @return string|int|null
185
  */
186
  public function getExpires()
187
  {
188
  return $this->data['Expires'];
189
  }
190
  /**
191
+ * Set the unix timestamp for which the cookie will expire.
192
  *
193
+ * @param int|string $timestamp Unix timestamp or any English textual datetime description.
194
  */
195
+ public function setExpires($timestamp) : void
196
  {
197
  $this->data['Expires'] = \is_numeric($timestamp) ? (int) $timestamp : \strtotime($timestamp);
198
  }
199
  /**
200
+ * Get whether or not this is a secure cookie.
201
  *
202
  * @return bool|null
203
  */
206
  return $this->data['Secure'];
207
  }
208
  /**
209
+ * Set whether or not the cookie is secure.
210
  *
211
  * @param bool $secure Set to true or false if secure
212
  */
213
+ public function setSecure($secure) : void
214
  {
215
  $this->data['Secure'] = $secure;
216
  }
217
  /**
218
+ * Get whether or not this is a session cookie.
219
  *
220
  * @return bool|null
221
  */
224
  return $this->data['Discard'];
225
  }
226
  /**
227
+ * Set whether or not this is a session cookie.
228
  *
229
  * @param bool $discard Set to true or false if this is a session cookie
230
  */
231
+ public function setDiscard($discard) : void
232
  {
233
  $this->data['Discard'] = $discard;
234
  }
235
  /**
236
+ * Get whether or not this is an HTTP only cookie.
237
  *
238
  * @return bool
239
  */
242
  return $this->data['HttpOnly'];
243
  }
244
  /**
245
+ * Set whether or not this is an HTTP only cookie.
246
  *
247
  * @param bool $httpOnly Set to true or false if this is HTTP only
248
  */
249
+ public function setHttpOnly($httpOnly) : void
250
  {
251
  $this->data['HttpOnly'] = $httpOnly;
252
  }
264
  * path is a %x2F ("/") character.
265
  *
266
  * @param string $requestPath Path to check against
 
 
267
  */
268
+ public function matchesPath(string $requestPath) : bool
269
  {
270
  $cookiePath = $this->getPath();
271
  // Match on exact matches or when path is the default empty "/"
284
  return \substr($requestPath, \strlen($cookiePath), 1) === '/';
285
  }
286
  /**
287
+ * Check if the cookie matches a domain value.
288
  *
289
  * @param string $domain Domain to check against
 
 
290
  */
291
+ public function matchesDomain(string $domain) : bool
292
  {
293
+ $cookieDomain = $this->getDomain();
294
+ if (null === $cookieDomain) {
295
+ return \true;
296
+ }
297
  // Remove the leading '.' as per spec in RFC 6265.
298
+ // https://tools.ietf.org/html/rfc6265#section-5.2.3
299
+ $cookieDomain = \ltrim($cookieDomain, '.');
300
  // Domain not set or exact match.
301
  if (!$cookieDomain || !\strcasecmp($domain, $cookieDomain)) {
302
  return \true;
303
  }
304
  // Matching the subdomain according to RFC 6265.
305
+ // https://tools.ietf.org/html/rfc6265#section-5.1.3
306
  if (\filter_var($domain, \FILTER_VALIDATE_IP)) {
307
  return \false;
308
  }
309
  return (bool) \preg_match('/\\.' . \preg_quote($cookieDomain, '/') . '$/', $domain);
310
  }
311
  /**
312
+ * Check if the cookie is expired.
 
 
313
  */
314
+ public function isExpired() : bool
315
  {
316
  return $this->getExpires() !== null && \time() > $this->getExpires();
317
  }
318
  /**
319
+ * Check if the cookie is valid according to RFC 6265.
320
  *
321
  * @return bool|string Returns true if valid or an error message if invalid
322
  */
323
  public function validate()
324
  {
 
325
  $name = $this->getName();
326
+ if ($name === '') {
327
  return 'The cookie name must not be empty';
328
  }
329
  // Check if any of the invalid characters are present in the cookie name
330
  if (\preg_match('/[\\x00-\\x20\\x22\\x28-\\x29\\x2c\\x2f\\x3a-\\x40\\x5c\\x7b\\x7d\\x7f]/', $name)) {
331
  return 'Cookie name must not contain invalid characters: ASCII ' . 'Control characters (0-31;127), space, tab and the ' . 'following characters: ()<>@,;:\\"/?={}';
332
  }
333
+ // Value must not be null. 0 and empty string are valid. Empty strings
334
+ // are technically against RFC 6265, but known to happen in the wild.
335
  $value = $this->getValue();
336
+ if ($value === null) {
337
  return 'The cookie value must not be empty';
338
  }
339
+ // Domains must not be empty, but can be 0. "0" is not a valid internet
340
+ // domain, but may be used as server name in a private network.
 
341
  $domain = $this->getDomain();
342
+ if ($domain === null || $domain === '') {
343
  return 'The cookie domain must not be empty';
344
  }
345
  return \true;
vendor_prefix/guzzlehttp/guzzle/src/Exception/BadResponseException.php CHANGED
@@ -9,11 +9,23 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  */
10
  class BadResponseException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
11
  {
12
- public function __construct($message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $handlerContext = [])
13
  {
14
- if (null === $response) {
15
- @\trigger_error('Instantiating the ' . __CLASS__ . ' class without a Response is deprecated since version 6.3 and will be removed in 7.0.', \E_USER_DEPRECATED);
16
- }
17
  parent::__construct($message, $request, $response, $previous, $handlerContext);
18
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  }
9
  */
10
  class BadResponseException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
11
  {
12
+ public function __construct(string $message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, \Throwable $previous = null, array $handlerContext = [])
13
  {
 
 
 
14
  parent::__construct($message, $request, $response, $previous, $handlerContext);
15
  }
16
+ /**
17
+ * Current exception and the ones that extend it will always have a response.
18
+ */
19
+ public function hasResponse() : bool
20
+ {
21
+ return \true;
22
+ }
23
+ /**
24
+ * This function narrows the return type from the parent class and does not allow it to be nullable.
25
+ */
26
+ public function getResponse() : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
27
+ {
28
+ /** @var ResponseInterface */
29
+ return parent::getResponse();
30
+ }
31
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/ConnectException.php CHANGED
@@ -2,30 +2,46 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
 
5
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
  /**
7
  * Exception thrown when a connection cannot be established.
8
  *
9
  * Note that no response is present for a ConnectException
10
  */
11
- class ConnectException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
12
  {
13
- public function __construct($message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Exception $previous = null, array $handlerContext = [])
 
 
 
 
 
 
 
 
14
  {
15
- parent::__construct($message, $request, null, $previous, $handlerContext);
 
 
16
  }
17
  /**
18
- * @return null
19
  */
20
- public function getResponse()
21
  {
22
- return null;
23
  }
24
  /**
25
- * @return bool
 
 
 
 
 
26
  */
27
- public function hasResponse()
28
  {
29
- return \false;
30
  }
31
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
+ use PYS_PRO_GLOBAL\Psr\Http\Client\NetworkExceptionInterface;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * Exception thrown when a connection cannot be established.
9
  *
10
  * Note that no response is present for a ConnectException
11
  */
12
+ class ConnectException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferException implements \PYS_PRO_GLOBAL\Psr\Http\Client\NetworkExceptionInterface
13
  {
14
+ /**
15
+ * @var RequestInterface
16
+ */
17
+ private $request;
18
+ /**
19
+ * @var array
20
+ */
21
+ private $handlerContext;
22
+ public function __construct(string $message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Throwable $previous = null, array $handlerContext = [])
23
  {
24
+ parent::__construct($message, 0, $previous);
25
+ $this->request = $request;
26
+ $this->handlerContext = $handlerContext;
27
  }
28
  /**
29
+ * Get the request that caused the exception
30
  */
31
+ public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
32
  {
33
+ return $this->request;
34
  }
35
  /**
36
+ * Get contextual information about the error from the underlying handler.
37
+ *
38
+ * The contents of this array will vary depending on which handler you are
39
+ * using. It may also be just an empty array. Relying on this data will
40
+ * couple you to a specific handler, but can give more debug information
41
+ * when needed.
42
  */
43
+ public function getHandlerContext() : array
44
  {
45
+ return $this->handlerContext;
46
  }
47
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php CHANGED
@@ -2,22 +2,7 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
- use Throwable;
6
- if (\interface_exists(\Throwable::class)) {
7
- interface GuzzleException extends \Throwable
8
- {
9
- }
10
- } else {
11
- /**
12
- * @method string getMessage()
13
- * @method \Throwable|null getPrevious()
14
- * @method mixed getCode()
15
- * @method string getFile()
16
- * @method int getLine()
17
- * @method array getTrace()
18
- * @method string getTraceAsString()
19
- */
20
- interface GuzzleException
21
- {
22
- }
23
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
+ use PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface;
6
+ interface GuzzleException extends \PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface
7
+ {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php CHANGED
@@ -2,25 +2,33 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
9
  /**
10
  * HTTP Request exception
11
  */
12
- class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferException
13
  {
14
- /** @var RequestInterface */
 
 
15
  private $request;
16
- /** @var ResponseInterface|null */
 
 
17
  private $response;
18
- /** @var array */
 
 
19
  private $handlerContext;
20
- public function __construct($message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $handlerContext = [])
21
  {
22
  // Set the code of the exception if the response is set and not future.
23
- $code = $response && !$response instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface ? $response->getStatusCode() : 0;
24
  parent::__construct($message, $code, $previous);
25
  $this->request = $request;
26
  $this->response = $response;
@@ -28,30 +36,24 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
28
  }
29
  /**
30
  * Wrap non-RequestExceptions with a RequestException
31
- *
32
- * @param RequestInterface $request
33
- * @param \Exception $e
34
- *
35
- * @return RequestException
36
  */
37
- public static function wrapException(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Exception $e)
38
  {
39
  return $e instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $e : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($e->getMessage(), $request, null, $e);
40
  }
41
  /**
42
  * Factory method to create a new exception with a normalized error message
43
  *
44
- * @param RequestInterface $request Request
45
- * @param ResponseInterface $response Response received
46
- * @param \Exception $previous Previous exception
47
- * @param array $ctx Optional handler context.
48
- *
49
- * @return self
50
  */
51
- public static function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $ctx = [])
52
  {
53
  if (!$response) {
54
- return new self('Error completing request', $request, null, $previous, $ctx);
55
  }
56
  $level = (int) \floor($response->getStatusCode() / 100);
57
  if ($level === 4) {
@@ -69,33 +71,16 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
69
  // Client Error: `GET /` resulted in a `404 Not Found` response:
70
  // <html> ... (truncated)
71
  $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri, $response->getStatusCode(), $response->getReasonPhrase());
72
- $summary = static::getResponseBodySummary($response);
73
  if ($summary !== null) {
74
  $message .= ":\n{$summary}\n";
75
  }
76
- return new $className($message, $request, $response, $previous, $ctx);
77
- }
78
- /**
79
- * Get a short summary of the response
80
- *
81
- * Will return `null` if the response is not printable.
82
- *
83
- * @param ResponseInterface $response
84
- *
85
- * @return string|null
86
- */
87
- public static function getResponseBodySummary(\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
88
- {
89
- return \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\get_message_body_summary($response);
90
  }
91
  /**
92
  * Obfuscates URI if there is a username and a password present
93
- *
94
- * @param UriInterface $uri
95
- *
96
- * @return UriInterface
97
  */
98
- private static function obfuscateUri(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri)
99
  {
100
  $userInfo = $uri->getUserInfo();
101
  if (\false !== ($pos = \strpos($userInfo, ':'))) {
@@ -105,28 +90,22 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
105
  }
106
  /**
107
  * Get the request that caused the exception
108
- *
109
- * @return RequestInterface
110
  */
111
- public function getRequest()
112
  {
113
  return $this->request;
114
  }
115
  /**
116
  * Get the associated response
117
- *
118
- * @return ResponseInterface|null
119
  */
120
- public function getResponse()
121
  {
122
  return $this->response;
123
  }
124
  /**
125
  * Check if a response was received
126
- *
127
- * @return bool
128
  */
129
- public function hasResponse()
130
  {
131
  return $this->response !== null;
132
  }
@@ -137,10 +116,8 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
137
  * using. It may also be just an empty array. Relying on this data will
138
  * couple you to a specific handler, but can give more debug information
139
  * when needed.
140
- *
141
- * @return array
142
  */
143
- public function getHandlerContext()
144
  {
145
  return $this->handlerContext;
146
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizer;
6
+ use PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface;
7
+ use PYS_PRO_GLOBAL\Psr\Http\Client\RequestExceptionInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
11
  /**
12
  * HTTP Request exception
13
  */
14
+ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferException implements \PYS_PRO_GLOBAL\Psr\Http\Client\RequestExceptionInterface
15
  {
16
+ /**
17
+ * @var RequestInterface
18
+ */
19
  private $request;
20
+ /**
21
+ * @var ResponseInterface|null
22
+ */
23
  private $response;
24
+ /**
25
+ * @var array
26
+ */
27
  private $handlerContext;
28
+ public function __construct(string $message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Throwable $previous = null, array $handlerContext = [])
29
  {
30
  // Set the code of the exception if the response is set and not future.
31
+ $code = $response ? $response->getStatusCode() : 0;
32
  parent::__construct($message, $code, $previous);
33
  $this->request = $request;
34
  $this->response = $response;
36
  }
37
  /**
38
  * Wrap non-RequestExceptions with a RequestException
 
 
 
 
 
39
  */
40
+ public static function wrapException(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Throwable $e) : \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
41
  {
42
  return $e instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $e : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($e->getMessage(), $request, null, $e);
43
  }
44
  /**
45
  * Factory method to create a new exception with a normalized error message
46
  *
47
+ * @param RequestInterface $request Request sent
48
+ * @param ResponseInterface $response Response received
49
+ * @param \Throwable|null $previous Previous exception
50
+ * @param array $handlerContext Optional handler context
51
+ * @param BodySummarizerInterface|null $bodySummarizer Optional body summarizer
 
52
  */
53
+ public static function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Throwable $previous = null, array $handlerContext = [], \PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface $bodySummarizer = null) : self
54
  {
55
  if (!$response) {
56
+ return new self('Error completing request', $request, null, $previous, $handlerContext);
57
  }
58
  $level = (int) \floor($response->getStatusCode() / 100);
59
  if ($level === 4) {
71
  // Client Error: `GET /` resulted in a `404 Not Found` response:
72
  // <html> ... (truncated)
73
  $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri, $response->getStatusCode(), $response->getReasonPhrase());
74
+ $summary = ($bodySummarizer ?? new \PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizer())->summarize($response);
75
  if ($summary !== null) {
76
  $message .= ":\n{$summary}\n";
77
  }
78
+ return new $className($message, $request, $response, $previous, $handlerContext);
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  }
80
  /**
81
  * Obfuscates URI if there is a username and a password present
 
 
 
 
82
  */
83
+ private static function obfuscateUri(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
84
  {
85
  $userInfo = $uri->getUserInfo();
86
  if (\false !== ($pos = \strpos($userInfo, ':'))) {
90
  }
91
  /**
92
  * Get the request that caused the exception
 
 
93
  */
94
+ public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
95
  {
96
  return $this->request;
97
  }
98
  /**
99
  * Get the associated response
 
 
100
  */
101
+ public function getResponse() : ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
102
  {
103
  return $this->response;
104
  }
105
  /**
106
  * Check if a response was received
 
 
107
  */
108
+ public function hasResponse() : bool
109
  {
110
  return $this->response !== null;
111
  }
116
  * using. It may also be just an empty array. Relying on this data will
117
  * couple you to a specific handler, but can give more debug information
118
  * when needed.
 
 
119
  */
120
+ public function getHandlerContext() : array
121
  {
122
  return $this->handlerContext;
123
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
-
5
- use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
6
- /**
7
- * Exception thrown when a seek fails on a stream.
8
- */
9
- class SeekException extends \RuntimeException implements \PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException
10
- {
11
- private $stream;
12
- public function __construct(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $stream, $pos = 0, $msg = '')
13
- {
14
- $this->stream = $stream;
15
- $msg = $msg ?: 'Could not seek the stream to position ' . $pos;
16
- parent::__construct($msg);
17
- }
18
- /**
19
- * @return StreamInterface
20
- */
21
- public function getStream()
22
- {
23
- return $this->stream;
24
- }
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactory.php CHANGED
@@ -4,30 +4,41 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream;
10
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
 
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
12
  /**
13
  * Creates curl resources from a request
 
 
14
  */
15
  class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface
16
  {
17
- const CURL_VERSION_STR = 'curl_version';
18
- const LOW_CURL_VERSION_NUMBER = '7.21.2';
19
- /** @var array */
 
 
 
 
 
20
  private $handles = [];
21
- /** @var int Total number of idle handles to keep in cache */
 
 
22
  private $maxHandles;
23
  /**
24
  * @param int $maxHandles Maximum number of idle handles.
25
  */
26
- public function __construct($maxHandles)
27
  {
28
  $this->maxHandles = $maxHandles;
29
  }
30
- public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
31
  {
32
  if (isset($options['curl']['body_as_string'])) {
33
  $options['_body_as_string'] = $options['curl']['body_as_string'];
@@ -50,7 +61,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
50
  \curl_setopt_array($easy->handle, $conf);
51
  return $easy;
52
  }
53
- public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
54
  {
55
  $resource = $easy->handle;
56
  unset($easy->handle);
@@ -73,13 +84,10 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
73
  * Completes a cURL transaction, either returning a response promise or a
74
  * rejected promise.
75
  *
76
- * @param callable $handler
77
- * @param EasyHandle $easy
78
- * @param CurlFactoryInterface $factory Dictates how the handle is released
79
- *
80
- * @return \GuzzleHttp\Promise\PromiseInterface
81
  */
82
- public static function finish(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory)
83
  {
84
  if (isset($easy->options['on_stats'])) {
85
  self::invokeStats($easy);
@@ -96,14 +104,17 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
96
  }
97
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($easy->response);
98
  }
99
- private static function invokeStats(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
100
  {
101
  $curlStats = \curl_getinfo($easy->handle);
102
  $curlStats['appconnect_time'] = \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME);
103
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($easy->request, $easy->response, $curlStats['total_time'], $easy->errno, $curlStats);
104
- \call_user_func($easy->options['on_stats'], $stats);
105
  }
106
- private static function finishError(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory)
 
 
 
107
  {
108
  // Get error information and release the handle to the factory.
109
  $ctx = ['errno' => $easy->errno, 'error' => \curl_error($easy->handle), 'appconnect_time' => \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME)] + \curl_getinfo($easy->handle);
@@ -115,24 +126,30 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
115
  }
116
  return self::createRejection($easy, $ctx);
117
  }
118
- private static function createRejection(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx)
119
  {
120
  static $connectionErrors = [\CURLE_OPERATION_TIMEOUTED => \true, \CURLE_COULDNT_RESOLVE_HOST => \true, \CURLE_COULDNT_CONNECT => \true, \CURLE_SSL_CONNECT_ERROR => \true, \CURLE_GOT_NOTHING => \true];
 
 
 
121
  // If an exception was encountered during the onHeaders event, then
122
  // return a rejected promise that wraps that exception.
123
  if ($easy->onHeadersException) {
124
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for(new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException('An error was encountered during the on_headers event', $easy->request, $easy->response, $easy->onHeadersException, $ctx));
125
  }
126
- if (\version_compare($ctx[self::CURL_VERSION_STR], self::LOW_CURL_VERSION_NUMBER)) {
127
- $message = \sprintf('cURL error %s: %s (%s)', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html');
128
- } else {
129
- $message = \sprintf('cURL error %s: %s (%s) for %s', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html', $easy->request->getUri());
130
  }
131
  // Create a connection exception if it was a specific error code.
132
  $error = isset($connectionErrors[$easy->errno]) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($message, $easy->request, null, $ctx) : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($message, $easy->request, $easy->response, null, $ctx);
133
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($error);
134
  }
135
- private function getDefaultConf(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
 
 
 
136
  {
137
  $conf = ['_headers' => $easy->request->getHeaders(), \CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), \CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), \CURLOPT_RETURNTRANSFER => \false, \CURLOPT_HEADER => \false, \CURLOPT_CONNECTTIMEOUT => 150];
138
  if (\defined('CURLOPT_PROTOCOLS')) {
@@ -148,7 +165,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
148
  }
149
  return $conf;
150
  }
151
- private function applyMethod(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf)
152
  {
153
  $body = $easy->request->getBody();
154
  $size = $body->getSize();
@@ -158,7 +175,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
158
  }
159
  $method = $easy->request->getMethod();
160
  if ($method === 'PUT' || $method === 'POST') {
161
- // See http://tools.ietf.org/html/rfc7230#section-3.3.2
162
  if (!$easy->request->hasHeader('Content-Length')) {
163
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Length: 0';
164
  }
@@ -167,7 +184,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
167
  unset($conf[\CURLOPT_WRITEFUNCTION], $conf[\CURLOPT_READFUNCTION], $conf[\CURLOPT_FILE], $conf[\CURLOPT_INFILE]);
168
  }
169
  }
170
- private function applyBody(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$conf)
171
  {
172
  $size = $request->hasHeader('Content-Length') ? (int) $request->getHeaderLine('Content-Length') : null;
173
  // Send the body as a string if the size is less than 1MB OR if the
@@ -187,7 +204,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
187
  if ($body->isSeekable()) {
188
  $body->rewind();
189
  }
190
- $conf[\CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use($body) {
191
  return $body->read($length);
192
  };
193
  }
@@ -200,7 +217,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
200
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Type:';
201
  }
202
  }
203
- private function applyHeaders(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf)
204
  {
205
  foreach ($conf['_headers'] as $name => $values) {
206
  foreach ($values as $value) {
@@ -225,7 +242,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
225
  * @param string $name Case-insensitive header to remove
226
  * @param array $options Array of options to modify
227
  */
228
- private function removeHeader($name, array &$options)
229
  {
230
  foreach (\array_keys($options['_headers']) as $key) {
231
  if (!\strcasecmp($key, $name)) {
@@ -234,7 +251,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
234
  }
235
  }
236
  }
237
- private function applyHandlerOptions(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf)
238
  {
239
  $options = $easy->options;
240
  if (isset($options['verify'])) {
@@ -252,7 +269,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
252
  }
253
  // If it's a directory or a link to a directory use CURLOPT_CAPATH.
254
  // If not, it's probably a file, or a link to a file, so use CURLOPT_CAINFO.
255
- if (\is_dir($options['verify']) || \is_link($options['verify']) && \is_dir(\readlink($options['verify']))) {
256
  $conf[\CURLOPT_CAPATH] = $options['verify'];
257
  } else {
258
  $conf[\CURLOPT_CAINFO] = $options['verify'];
@@ -260,7 +277,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
260
  }
261
  }
262
  }
263
- if (!empty($options['decode_content'])) {
264
  $accept = $easy->request->getHeaderLine('Accept-Encoding');
265
  if ($accept) {
266
  $conf[\CURLOPT_ENCODING] = $accept;
@@ -270,25 +287,23 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
270
  $conf[\CURLOPT_HTTPHEADER][] = 'Accept-Encoding:';
271
  }
272
  }
273
- if (isset($options['sink'])) {
274
- $sink = $options['sink'];
275
- if (!\is_string($sink)) {
276
- $sink = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($sink);
277
- } elseif (!\is_dir(\dirname($sink))) {
278
- // Ensure that the directory exists before failing in curl.
279
- throw new \RuntimeException(\sprintf('Directory %s does not exist for sink value of %s', \dirname($sink), $sink));
280
- } else {
281
- $sink = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+');
282
- }
283
- $easy->sink = $sink;
284
- $conf[\CURLOPT_WRITEFUNCTION] = function ($ch, $write) use($sink) {
285
- return $sink->write($write);
286
- };
287
- } else {
288
  // Use a default temp stream if no sink was set.
289
- $conf[\CURLOPT_FILE] = \fopen('php://temp', 'w+');
290
- $easy->sink = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($conf[\CURLOPT_FILE]);
 
 
 
 
 
 
 
 
291
  }
 
 
 
 
292
  $timeoutRequiresNoSignal = \false;
293
  if (isset($options['timeout'])) {
294
  $timeoutRequiresNoSignal |= $options['timeout'] < 1;
@@ -316,7 +331,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
316
  $scheme = $easy->request->getUri()->getScheme();
317
  if (isset($options['proxy'][$scheme])) {
318
  $host = $easy->request->getUri()->getHost();
319
- if (!isset($options['proxy']['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\is_host_in_noproxy($host, $options['proxy']['no'])) {
320
  $conf[\CURLOPT_PROXY] = $options['proxy'][$scheme];
321
  }
322
  }
@@ -336,12 +351,12 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
336
  if (isset($options['ssl_key'])) {
337
  if (\is_array($options['ssl_key'])) {
338
  if (\count($options['ssl_key']) === 2) {
339
- list($sslKey, $conf[\CURLOPT_SSLKEYPASSWD]) = $options['ssl_key'];
340
  } else {
341
- list($sslKey) = $options['ssl_key'];
342
  }
343
  }
344
- $sslKey = isset($sslKey) ? $sslKey : $options['ssl_key'];
345
  if (!\file_exists($sslKey)) {
346
  throw new \InvalidArgumentException("SSL private key not found: {$sslKey}");
347
  }
@@ -353,17 +368,12 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
353
  throw new \InvalidArgumentException('progress client option must be callable');
354
  }
355
  $conf[\CURLOPT_NOPROGRESS] = \false;
356
- $conf[\CURLOPT_PROGRESSFUNCTION] = function () use($progress) {
357
- $args = \func_get_args();
358
- // PHP 5.5 pushed the handle onto the start of the args
359
- if (\is_resource($args[0])) {
360
- \array_shift($args);
361
- }
362
- \call_user_func_array($progress, $args);
363
  };
364
  }
365
  if (!empty($options['debug'])) {
366
- $conf[\CURLOPT_STDERR] = \PYS_PRO_GLOBAL\GuzzleHttp\debug_resource($options['debug']);
367
  $conf[\CURLOPT_VERBOSE] = \true;
368
  }
369
  }
@@ -375,8 +385,10 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
375
  * stream, and then encountered a "necessary data rewind wasn't possible"
376
  * error, causing the request to be sent through curl_multi_info_read()
377
  * without an error status.
 
 
378
  */
379
- private static function retryFailedRewind(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx)
380
  {
381
  try {
382
  // Only rewind if the body has been read from.
@@ -399,7 +411,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
399
  }
400
  return $handler($easy->request, $easy->options);
401
  }
402
- private function createHeaderFn(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
403
  {
404
  if (isset($easy->options['on_headers'])) {
405
  $onHeaders = $easy->options['on_headers'];
@@ -409,11 +421,16 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
409
  } else {
410
  $onHeaders = null;
411
  }
412
- return function ($ch, $h) use($onHeaders, $easy, &$startingResponse) {
413
  $value = \trim($h);
414
  if ($value === '') {
415
  $startingResponse = \true;
416
- $easy->createResponse();
 
 
 
 
 
417
  if ($onHeaders !== null) {
418
  try {
419
  $onHeaders($easy->response);
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
9
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
10
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream;
11
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
12
+ use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
13
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
14
  /**
15
  * Creates curl resources from a request
16
+ *
17
+ * @final
18
  */
19
  class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface
20
  {
21
+ public const CURL_VERSION_STR = 'curl_version';
22
+ /**
23
+ * @deprecated
24
+ */
25
+ public const LOW_CURL_VERSION_NUMBER = '7.21.2';
26
+ /**
27
+ * @var resource[]|\CurlHandle[]
28
+ */
29
  private $handles = [];
30
+ /**
31
+ * @var int Total number of idle handles to keep in cache
32
+ */
33
  private $maxHandles;
34
  /**
35
  * @param int $maxHandles Maximum number of idle handles.
36
  */
37
+ public function __construct(int $maxHandles)
38
  {
39
  $this->maxHandles = $maxHandles;
40
  }
41
+ public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle
42
  {
43
  if (isset($options['curl']['body_as_string'])) {
44
  $options['_body_as_string'] = $options['curl']['body_as_string'];
61
  \curl_setopt_array($easy->handle, $conf);
62
  return $easy;
63
  }
64
+ public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : void
65
  {
66
  $resource = $easy->handle;
67
  unset($easy->handle);
84
  * Completes a cURL transaction, either returning a response promise or a
85
  * rejected promise.
86
  *
87
+ * @param callable(RequestInterface, array): PromiseInterface $handler
88
+ * @param CurlFactoryInterface $factory Dictates how the handle is released
 
 
 
89
  */
90
+ public static function finish(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
91
  {
92
  if (isset($easy->options['on_stats'])) {
93
  self::invokeStats($easy);
104
  }
105
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($easy->response);
106
  }
107
+ private static function invokeStats(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : void
108
  {
109
  $curlStats = \curl_getinfo($easy->handle);
110
  $curlStats['appconnect_time'] = \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME);
111
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($easy->request, $easy->response, $curlStats['total_time'], $easy->errno, $curlStats);
112
+ $easy->options['on_stats']($stats);
113
  }
114
+ /**
115
+ * @param callable(RequestInterface, array): PromiseInterface $handler
116
+ */
117
+ private static function finishError(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
118
  {
119
  // Get error information and release the handle to the factory.
120
  $ctx = ['errno' => $easy->errno, 'error' => \curl_error($easy->handle), 'appconnect_time' => \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME)] + \curl_getinfo($easy->handle);
126
  }
127
  return self::createRejection($easy, $ctx);
128
  }
129
+ private static function createRejection(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
130
  {
131
  static $connectionErrors = [\CURLE_OPERATION_TIMEOUTED => \true, \CURLE_COULDNT_RESOLVE_HOST => \true, \CURLE_COULDNT_CONNECT => \true, \CURLE_SSL_CONNECT_ERROR => \true, \CURLE_GOT_NOTHING => \true];
132
+ if ($easy->createResponseException) {
133
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor(new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException('An error was encountered while creating the response', $easy->request, $easy->response, $easy->createResponseException, $ctx));
134
+ }
135
  // If an exception was encountered during the onHeaders event, then
136
  // return a rejected promise that wraps that exception.
137
  if ($easy->onHeadersException) {
138
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor(new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException('An error was encountered during the on_headers event', $easy->request, $easy->response, $easy->onHeadersException, $ctx));
139
  }
140
+ $message = \sprintf('cURL error %s: %s (%s)', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html');
141
+ $uriString = (string) $easy->request->getUri();
142
+ if ($uriString !== '' && \false === \strpos($ctx['error'], $uriString)) {
143
+ $message .= \sprintf(' for %s', $uriString);
144
  }
145
  // Create a connection exception if it was a specific error code.
146
  $error = isset($connectionErrors[$easy->errno]) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($message, $easy->request, null, $ctx) : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($message, $easy->request, $easy->response, null, $ctx);
147
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($error);
148
  }
149
+ /**
150
+ * @return array<int|string, mixed>
151
+ */
152
+ private function getDefaultConf(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : array
153
  {
154
  $conf = ['_headers' => $easy->request->getHeaders(), \CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), \CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), \CURLOPT_RETURNTRANSFER => \false, \CURLOPT_HEADER => \false, \CURLOPT_CONNECTTIMEOUT => 150];
155
  if (\defined('CURLOPT_PROTOCOLS')) {
165
  }
166
  return $conf;
167
  }
168
+ private function applyMethod(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) : void
169
  {
170
  $body = $easy->request->getBody();
171
  $size = $body->getSize();
175
  }
176
  $method = $easy->request->getMethod();
177
  if ($method === 'PUT' || $method === 'POST') {
178
+ // See https://tools.ietf.org/html/rfc7230#section-3.3.2
179
  if (!$easy->request->hasHeader('Content-Length')) {
180
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Length: 0';
181
  }
184
  unset($conf[\CURLOPT_WRITEFUNCTION], $conf[\CURLOPT_READFUNCTION], $conf[\CURLOPT_FILE], $conf[\CURLOPT_INFILE]);
185
  }
186
  }
187
+ private function applyBody(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$conf) : void
188
  {
189
  $size = $request->hasHeader('Content-Length') ? (int) $request->getHeaderLine('Content-Length') : null;
190
  // Send the body as a string if the size is less than 1MB OR if the
204
  if ($body->isSeekable()) {
205
  $body->rewind();
206
  }
207
+ $conf[\CURLOPT_READFUNCTION] = static function ($ch, $fd, $length) use($body) {
208
  return $body->read($length);
209
  };
210
  }
217
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Type:';
218
  }
219
  }
220
+ private function applyHeaders(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) : void
221
  {
222
  foreach ($conf['_headers'] as $name => $values) {
223
  foreach ($values as $value) {
242
  * @param string $name Case-insensitive header to remove
243
  * @param array $options Array of options to modify
244
  */
245
+ private function removeHeader(string $name, array &$options) : void
246
  {
247
  foreach (\array_keys($options['_headers']) as $key) {
248
  if (!\strcasecmp($key, $name)) {
251
  }
252
  }
253
  }
254
+ private function applyHandlerOptions(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) : void
255
  {
256
  $options = $easy->options;
257
  if (isset($options['verify'])) {
269
  }
270
  // If it's a directory or a link to a directory use CURLOPT_CAPATH.
271
  // If not, it's probably a file, or a link to a file, so use CURLOPT_CAINFO.
272
+ if (\is_dir($options['verify']) || \is_link($options['verify']) === \true && ($verifyLink = \readlink($options['verify'])) !== \false && \is_dir($verifyLink)) {
273
  $conf[\CURLOPT_CAPATH] = $options['verify'];
274
  } else {
275
  $conf[\CURLOPT_CAINFO] = $options['verify'];
277
  }
278
  }
279
  }
280
+ if (!isset($options['curl'][\CURLOPT_ENCODING]) && !empty($options['decode_content'])) {
281
  $accept = $easy->request->getHeaderLine('Accept-Encoding');
282
  if ($accept) {
283
  $conf[\CURLOPT_ENCODING] = $accept;
287
  $conf[\CURLOPT_HTTPHEADER][] = 'Accept-Encoding:';
288
  }
289
  }
290
+ if (!isset($options['sink'])) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  // Use a default temp stream if no sink was set.
292
+ $options['sink'] = \fopen('php://temp', 'w+');
293
+ }
294
+ $sink = $options['sink'];
295
+ if (!\is_string($sink)) {
296
+ $sink = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($sink);
297
+ } elseif (!\is_dir(\dirname($sink))) {
298
+ // Ensure that the directory exists before failing in curl.
299
+ throw new \RuntimeException(\sprintf('Directory %s does not exist for sink value of %s', \dirname($sink), $sink));
300
+ } else {
301
+ $sink = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+');
302
  }
303
+ $easy->sink = $sink;
304
+ $conf[\CURLOPT_WRITEFUNCTION] = static function ($ch, $write) use($sink) : int {
305
+ return $sink->write($write);
306
+ };
307
  $timeoutRequiresNoSignal = \false;
308
  if (isset($options['timeout'])) {
309
  $timeoutRequiresNoSignal |= $options['timeout'] < 1;
331
  $scheme = $easy->request->getUri()->getScheme();
332
  if (isset($options['proxy'][$scheme])) {
333
  $host = $easy->request->getUri()->getHost();
334
+ if (!isset($options['proxy']['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\Utils::isHostInNoProxy($host, $options['proxy']['no'])) {
335
  $conf[\CURLOPT_PROXY] = $options['proxy'][$scheme];
336
  }
337
  }
351
  if (isset($options['ssl_key'])) {
352
  if (\is_array($options['ssl_key'])) {
353
  if (\count($options['ssl_key']) === 2) {
354
+ [$sslKey, $conf[\CURLOPT_SSLKEYPASSWD]] = $options['ssl_key'];
355
  } else {
356
+ [$sslKey] = $options['ssl_key'];
357
  }
358
  }
359
+ $sslKey = $sslKey ?? $options['ssl_key'];
360
  if (!\file_exists($sslKey)) {
361
  throw new \InvalidArgumentException("SSL private key not found: {$sslKey}");
362
  }
368
  throw new \InvalidArgumentException('progress client option must be callable');
369
  }
370
  $conf[\CURLOPT_NOPROGRESS] = \false;
371
+ $conf[\CURLOPT_PROGRESSFUNCTION] = static function ($resource, int $downloadSize, int $downloaded, int $uploadSize, int $uploaded) use($progress) {
372
+ $progress($downloadSize, $downloaded, $uploadSize, $uploaded);
 
 
 
 
 
373
  };
374
  }
375
  if (!empty($options['debug'])) {
376
+ $conf[\CURLOPT_STDERR] = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::debugResource($options['debug']);
377
  $conf[\CURLOPT_VERBOSE] = \true;
378
  }
379
  }
385
  * stream, and then encountered a "necessary data rewind wasn't possible"
386
  * error, causing the request to be sent through curl_multi_info_read()
387
  * without an error status.
388
+ *
389
+ * @param callable(RequestInterface, array): PromiseInterface $handler
390
  */
391
+ private static function retryFailedRewind(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
392
  {
393
  try {
394
  // Only rewind if the body has been read from.
411
  }
412
  return $handler($easy->request, $easy->options);
413
  }
414
+ private function createHeaderFn(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : callable
415
  {
416
  if (isset($easy->options['on_headers'])) {
417
  $onHeaders = $easy->options['on_headers'];
421
  } else {
422
  $onHeaders = null;
423
  }
424
+ return static function ($ch, $h) use($onHeaders, $easy, &$startingResponse) {
425
  $value = \trim($h);
426
  if ($value === '') {
427
  $startingResponse = \true;
428
+ try {
429
+ $easy->createResponse();
430
+ } catch (\Exception $e) {
431
+ $easy->createResponseException = $e;
432
+ return -1;
433
+ }
434
  if ($onHeaders !== null) {
435
  try {
436
  $onHeaders($easy->response);
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php CHANGED
@@ -11,16 +11,13 @@ interface CurlFactoryInterface
11
  * @param RequestInterface $request Request
12
  * @param array $options Transfer options
13
  *
14
- * @return EasyHandle
15
  * @throws \RuntimeException when an option cannot be applied
16
  */
17
- public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options);
18
  /**
19
  * Release an easy handle, allowing it to be reused or closed.
20
  *
21
  * This function must call unset on the easy handle's "handle" property.
22
- *
23
- * @param EasyHandle $easy
24
  */
25
- public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy);
26
  }
11
  * @param RequestInterface $request Request
12
  * @param array $options Transfer options
13
  *
 
14
  * @throws \RuntimeException when an option cannot be applied
15
  */
16
+ public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle;
17
  /**
18
  * Release an easy handle, allowing it to be reused or closed.
19
  *
20
  * This function must call unset on the easy handle's "handle" property.
 
 
21
  */
22
+ public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : void;
23
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlHandler.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * HTTP handler that uses cURL easy handles as a transport layer.
@@ -10,10 +10,14 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  * When using the CurlHandler, custom curl options can be specified as an
11
  * associative array of curl option constants mapping to values in the
12
  * **curl** key of the "client" key of the request.
 
 
13
  */
14
  class CurlHandler
15
  {
16
- /** @var CurlFactoryInterface */
 
 
17
  private $factory;
18
  /**
19
  * Accepts an associative array of options:
@@ -24,9 +28,9 @@ class CurlHandler
24
  */
25
  public function __construct(array $options = [])
26
  {
27
- $this->factory = isset($options['handle_factory']) ? $options['handle_factory'] : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(3);
28
  }
29
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
30
  {
31
  if (isset($options['delay'])) {
32
  \usleep($options['delay'] * 1000);
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * HTTP handler that uses cURL easy handles as a transport layer.
10
  * When using the CurlHandler, custom curl options can be specified as an
11
  * associative array of curl option constants mapping to values in the
12
  * **curl** key of the "client" key of the request.
13
+ *
14
+ * @final
15
  */
16
  class CurlHandler
17
  {
18
+ /**
19
+ * @var CurlFactoryInterface
20
+ */
21
  private $factory;
22
  /**
23
  * Accepts an associative array of options:
28
  */
29
  public function __construct(array $options = [])
30
  {
31
+ $this->factory = $options['handle_factory'] ?? new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(3);
32
  }
33
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
34
  {
35
  if (isset($options['delay'])) {
36
  \usleep($options['delay'] * 1000);
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php CHANGED
@@ -4,6 +4,7 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\Promise;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  /**
@@ -13,16 +14,39 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
13
  * associative array of curl option constants mapping to values in the
14
  * **curl** key of the provided request options.
15
  *
16
- * @property resource $_mh Internal use only. Lazy loaded multi-handle.
 
 
17
  */
18
  class CurlMultiHandler
19
  {
20
- /** @var CurlFactoryInterface */
 
 
21
  private $factory;
 
 
 
22
  private $selectTimeout;
 
 
 
23
  private $active;
 
 
 
 
 
24
  private $handles = [];
 
 
 
 
 
25
  private $delays = [];
 
 
 
26
  private $options = [];
27
  /**
28
  * This handler accepts the following options:
@@ -32,34 +56,43 @@ class CurlMultiHandler
32
  * out while selecting curl handles. Defaults to 1 second.
33
  * - options: An associative array of CURLMOPT_* options and
34
  * corresponding values for curl_multi_setopt()
35
- *
36
- * @param array $options
37
  */
38
  public function __construct(array $options = [])
39
  {
40
- $this->factory = isset($options['handle_factory']) ? $options['handle_factory'] : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(50);
41
  if (isset($options['select_timeout'])) {
42
  $this->selectTimeout = $options['select_timeout'];
43
- } elseif ($selectTimeout = \getenv('GUZZLE_CURL_SELECT_TIMEOUT')) {
44
- $this->selectTimeout = $selectTimeout;
 
45
  } else {
46
  $this->selectTimeout = 1;
47
  }
48
- $this->options = isset($options['options']) ? $options['options'] : [];
49
  }
 
 
 
 
 
 
 
 
50
  public function __get($name)
51
  {
52
- if ($name === '_mh') {
53
- $this->_mh = \curl_multi_init();
54
- foreach ($this->options as $option => $value) {
55
- // A warning is raised in case of a wrong option.
56
- \curl_multi_setopt($this->_mh, $option, $value);
57
- }
58
- // Further calls to _mh will return the value directly, without entering the
59
- // __get() method at all.
60
- return $this->_mh;
 
 
61
  }
62
- throw new \BadMethodCallException();
63
  }
64
  public function __destruct()
65
  {
@@ -68,7 +101,7 @@ class CurlMultiHandler
68
  unset($this->_mh);
69
  }
70
  }
71
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
72
  {
73
  $easy = $this->factory->create($request, $options);
74
  $id = (int) $easy->handle;
@@ -81,7 +114,7 @@ class CurlMultiHandler
81
  /**
82
  * Ticks the curl event loop.
83
  */
84
- public function tick()
85
  {
86
  // Add any delayed handles if needed.
87
  if ($this->delays) {
@@ -94,7 +127,7 @@ class CurlMultiHandler
94
  }
95
  }
96
  // Step through the task queue which may add additional requests.
97
- \PYS_PRO_GLOBAL\GuzzleHttp\Promise\queue()->run();
98
  if ($this->active && \curl_multi_select($this->_mh, $this->selectTimeout) === -1) {
99
  // Perform a usleep if a select returns -1.
100
  // See: https://bugs.php.net/bug.php?id=61141
@@ -107,9 +140,9 @@ class CurlMultiHandler
107
  /**
108
  * Runs until all outstanding connections have completed.
109
  */
110
- public function execute()
111
  {
112
- $queue = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\queue();
113
  while ($this->handles || !$queue->isEmpty()) {
114
  // If there are no transfers, then sleep for the next delay
115
  if (!$this->active && $this->delays) {
@@ -118,7 +151,7 @@ class CurlMultiHandler
118
  $this->tick();
119
  }
120
  }
121
- private function addRequest(array $entry)
122
  {
123
  $easy = $entry['easy'];
124
  $id = (int) $easy->handle;
@@ -136,7 +169,7 @@ class CurlMultiHandler
136
  *
137
  * @return bool True on success, false on failure.
138
  */
139
- private function cancel($id)
140
  {
141
  // Cannot cancel if it has been processed.
142
  if (!isset($this->handles[$id])) {
@@ -148,7 +181,7 @@ class CurlMultiHandler
148
  \curl_close($handle);
149
  return \true;
150
  }
151
- private function processMessages()
152
  {
153
  while ($done = \curl_multi_info_read($this->_mh)) {
154
  $id = (int) $done['handle'];
@@ -163,7 +196,7 @@ class CurlMultiHandler
163
  $entry['deferred']->resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory::finish($this, $entry['easy'], $this->factory));
164
  }
165
  }
166
- private function timeToNext()
167
  {
168
  $currentTime = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime();
169
  $nextTime = \PHP_INT_MAX;
@@ -172,6 +205,6 @@ class CurlMultiHandler
172
  $nextTime = $time;
173
  }
174
  }
175
- return \max(0, $nextTime - $currentTime) * 1000000;
176
  }
177
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\Promise;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  /**
14
  * associative array of curl option constants mapping to values in the
15
  * **curl** key of the provided request options.
16
  *
17
+ * @property resource|\CurlMultiHandle $_mh Internal use only. Lazy loaded multi-handle.
18
+ *
19
+ * @final
20
  */
21
  class CurlMultiHandler
22
  {
23
+ /**
24
+ * @var CurlFactoryInterface
25
+ */
26
  private $factory;
27
+ /**
28
+ * @var int
29
+ */
30
  private $selectTimeout;
31
+ /**
32
+ * @var resource|\CurlMultiHandle|null the currently executing resource in `curl_multi_exec`.
33
+ */
34
  private $active;
35
+ /**
36
+ * @var array Request entry handles, indexed by handle id in `addRequest`.
37
+ *
38
+ * @see CurlMultiHandler::addRequest
39
+ */
40
  private $handles = [];
41
+ /**
42
+ * @var array<int, float> An array of delay times, indexed by handle id in `addRequest`.
43
+ *
44
+ * @see CurlMultiHandler::addRequest
45
+ */
46
  private $delays = [];
47
+ /**
48
+ * @var array<mixed> An associative array of CURLMOPT_* options and corresponding values for curl_multi_setopt()
49
+ */
50
  private $options = [];
51
  /**
52
  * This handler accepts the following options:
56
  * out while selecting curl handles. Defaults to 1 second.
57
  * - options: An associative array of CURLMOPT_* options and
58
  * corresponding values for curl_multi_setopt()
 
 
59
  */
60
  public function __construct(array $options = [])
61
  {
62
+ $this->factory = $options['handle_factory'] ?? new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(50);
63
  if (isset($options['select_timeout'])) {
64
  $this->selectTimeout = $options['select_timeout'];
65
+ } elseif ($selectTimeout = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('GUZZLE_CURL_SELECT_TIMEOUT')) {
66
+ @\trigger_error('Since guzzlehttp/guzzle 7.2.0: Using environment variable GUZZLE_CURL_SELECT_TIMEOUT is deprecated. Use option "select_timeout" instead.', \E_USER_DEPRECATED);
67
+ $this->selectTimeout = (int) $selectTimeout;
68
  } else {
69
  $this->selectTimeout = 1;
70
  }
71
+ $this->options = $options['options'] ?? [];
72
  }
73
+ /**
74
+ * @param string $name
75
+ *
76
+ * @return resource|\CurlMultiHandle
77
+ *
78
+ * @throws \BadMethodCallException when another field as `_mh` will be gotten
79
+ * @throws \RuntimeException when curl can not initialize a multi handle
80
+ */
81
  public function __get($name)
82
  {
83
+ if ($name !== '_mh') {
84
+ throw new \BadMethodCallException("Can not get other property as '_mh'.");
85
+ }
86
+ $multiHandle = \curl_multi_init();
87
+ if (\false === $multiHandle) {
88
+ throw new \RuntimeException('Can not initialize curl multi handle.');
89
+ }
90
+ $this->_mh = $multiHandle;
91
+ foreach ($this->options as $option => $value) {
92
+ // A warning is raised in case of a wrong option.
93
+ \curl_multi_setopt($this->_mh, $option, $value);
94
  }
95
+ return $this->_mh;
96
  }
97
  public function __destruct()
98
  {
101
  unset($this->_mh);
102
  }
103
  }
104
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
105
  {
106
  $easy = $this->factory->create($request, $options);
107
  $id = (int) $easy->handle;
114
  /**
115
  * Ticks the curl event loop.
116
  */
117
+ public function tick() : void
118
  {
119
  // Add any delayed handles if needed.
120
  if ($this->delays) {
127
  }
128
  }
129
  // Step through the task queue which may add additional requests.
130
+ \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Utils::queue()->run();
131
  if ($this->active && \curl_multi_select($this->_mh, $this->selectTimeout) === -1) {
132
  // Perform a usleep if a select returns -1.
133
  // See: https://bugs.php.net/bug.php?id=61141
140
  /**
141
  * Runs until all outstanding connections have completed.
142
  */
143
+ public function execute() : void
144
  {
145
+ $queue = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Utils::queue();
146
  while ($this->handles || !$queue->isEmpty()) {
147
  // If there are no transfers, then sleep for the next delay
148
  if (!$this->active && $this->delays) {
151
  $this->tick();
152
  }
153
  }
154
+ private function addRequest(array $entry) : void
155
  {
156
  $easy = $entry['easy'];
157
  $id = (int) $easy->handle;
169
  *
170
  * @return bool True on success, false on failure.
171
  */
172
+ private function cancel($id) : bool
173
  {
174
  // Cannot cancel if it has been processed.
175
  if (!isset($this->handles[$id])) {
181
  \curl_close($handle);
182
  return \true;
183
  }
184
+ private function processMessages() : void
185
  {
186
  while ($done = \curl_multi_info_read($this->_mh)) {
187
  $id = (int) $done['handle'];
196
  $entry['deferred']->resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory::finish($this, $entry['easy'], $this->factory));
197
  }
198
  }
199
+ private function timeToNext() : int
200
  {
201
  $currentTime = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime();
202
  $nextTime = \PHP_INT_MAX;
205
  $nextTime = $time;
206
  }
207
  }
208
+ return (int) \max(0, $nextTime - $currentTime) * 1000000;
209
  }
210
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/EasyHandle.php CHANGED
@@ -3,6 +3,7 @@
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response;
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
@@ -13,36 +14,56 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
13
  */
14
  final class EasyHandle
15
  {
16
- /** @var resource cURL resource */
 
 
17
  public $handle;
18
- /** @var StreamInterface Where data is being written */
 
 
19
  public $sink;
20
- /** @var array Received HTTP headers so far */
 
 
21
  public $headers = [];
22
- /** @var ResponseInterface Received response (if any) */
 
 
23
  public $response;
24
- /** @var RequestInterface Request being sent */
 
 
25
  public $request;
26
- /** @var array Request options */
 
 
27
  public $options = [];
28
- /** @var int cURL error number (if any) */
 
 
29
  public $errno = 0;
30
- /** @var \Exception Exception during on_headers (if any) */
 
 
31
  public $onHeadersException;
 
 
 
 
32
  /**
33
  * Attach a response to the easy handle based on the received headers.
34
  *
35
  * @throws \RuntimeException if no headers have been received.
36
  */
37
- public function createResponse()
38
  {
39
  if (empty($this->headers)) {
40
  throw new \RuntimeException('No headers have been received');
41
  }
42
  // HTTP-version SP status-code SP reason-phrase
43
  $startLine = \explode(' ', \array_shift($this->headers), 3);
44
- $headers = \PYS_PRO_GLOBAL\GuzzleHttp\headers_from_lines($this->headers);
45
- $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\normalize_header_keys($headers);
46
  if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) {
47
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
48
  unset($headers[$normalizedKeys['content-encoding']]);
@@ -56,9 +77,17 @@ final class EasyHandle
56
  }
57
  }
58
  }
 
59
  // Attach a response to the easy handle with the parsed headers.
60
- $this->response = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response($startLine[1], $headers, $this->sink, \substr($startLine[0], 5), isset($startLine[2]) ? (string) $startLine[2] : null);
61
  }
 
 
 
 
 
 
 
62
  public function __get($name)
63
  {
64
  $msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: ' . $name;
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response;
6
+ use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
14
  */
15
  final class EasyHandle
16
  {
17
+ /**
18
+ * @var resource|\CurlHandle cURL resource
19
+ */
20
  public $handle;
21
+ /**
22
+ * @var StreamInterface Where data is being written
23
+ */
24
  public $sink;
25
+ /**
26
+ * @var array Received HTTP headers so far
27
+ */
28
  public $headers = [];
29
+ /**
30
+ * @var ResponseInterface|null Received response (if any)
31
+ */
32
  public $response;
33
+ /**
34
+ * @var RequestInterface Request being sent
35
+ */
36
  public $request;
37
+ /**
38
+ * @var array Request options
39
+ */
40
  public $options = [];
41
+ /**
42
+ * @var int cURL error number (if any)
43
+ */
44
  public $errno = 0;
45
+ /**
46
+ * @var \Throwable|null Exception during on_headers (if any)
47
+ */
48
  public $onHeadersException;
49
+ /**
50
+ * @var \Exception|null Exception during createResponse (if any)
51
+ */
52
+ public $createResponseException;
53
  /**
54
  * Attach a response to the easy handle based on the received headers.
55
  *
56
  * @throws \RuntimeException if no headers have been received.
57
  */
58
+ public function createResponse() : void
59
  {
60
  if (empty($this->headers)) {
61
  throw new \RuntimeException('No headers have been received');
62
  }
63
  // HTTP-version SP status-code SP reason-phrase
64
  $startLine = \explode(' ', \array_shift($this->headers), 3);
65
+ $headers = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::headersFromLines($this->headers);
66
+ $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::normalizeHeaderKeys($headers);
67
  if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) {
68
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
69
  unset($headers[$normalizedKeys['content-encoding']]);
77
  }
78
  }
79
  }
80
+ $statusCode = (int) $startLine[1];
81
  // Attach a response to the easy handle with the parsed headers.
82
+ $this->response = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response($statusCode, $headers, $this->sink, \substr($startLine[0], 5), isset($startLine[2]) ? (string) $startLine[2] : null);
83
  }
84
+ /**
85
+ * @param string $name
86
+ *
87
+ * @return void
88
+ *
89
+ * @throws \BadMethodCallException
90
+ */
91
  public function __get($name)
92
  {
93
  $msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: ' . $name;
vendor_prefix/guzzlehttp/guzzle/src/Handler/MockHandler.php CHANGED
@@ -4,59 +4,77 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\RejectedPromise;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
 
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
 
12
  /**
13
  * Handler that returns responses or throw exceptions from a queue.
 
 
14
  */
15
  class MockHandler implements \Countable
16
  {
 
 
 
17
  private $queue = [];
 
 
 
18
  private $lastRequest;
19
- private $lastOptions;
 
 
 
 
 
 
20
  private $onFulfilled;
 
 
 
21
  private $onRejected;
22
  /**
23
  * Creates a new MockHandler that uses the default handler stack list of
24
  * middlewares.
25
  *
26
- * @param array $queue Array of responses, callables, or exceptions.
27
- * @param callable $onFulfilled Callback to invoke when the return value is fulfilled.
28
- * @param callable $onRejected Callback to invoke when the return value is rejected.
29
- *
30
- * @return HandlerStack
31
  */
32
- public static function createWithMiddleware(array $queue = null, callable $onFulfilled = null, callable $onRejected = null)
33
  {
34
  return \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create(new self($queue, $onFulfilled, $onRejected));
35
  }
36
  /**
37
  * The passed in value must be an array of
38
- * {@see Psr7\Http\Message\ResponseInterface} objects, Exceptions,
39
  * callables, or Promises.
40
  *
41
- * @param array $queue
42
- * @param callable $onFulfilled Callback to invoke when the return value is fulfilled.
43
- * @param callable $onRejected Callback to invoke when the return value is rejected.
44
  */
45
  public function __construct(array $queue = null, callable $onFulfilled = null, callable $onRejected = null)
46
  {
47
  $this->onFulfilled = $onFulfilled;
48
  $this->onRejected = $onRejected;
49
  if ($queue) {
50
- \call_user_func_array([$this, 'append'], $queue);
 
51
  }
52
  }
53
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
54
  {
55
  if (!$this->queue) {
56
  throw new \OutOfBoundsException('Mock queue is empty');
57
  }
58
  if (isset($options['delay']) && \is_numeric($options['delay'])) {
59
- \usleep($options['delay'] * 1000);
60
  }
61
  $this->lastRequest = $request;
62
  $this->lastOptions = $options;
@@ -73,15 +91,15 @@ class MockHandler implements \Countable
73
  }
74
  }
75
  if (\is_callable($response)) {
76
- $response = \call_user_func($response, $request, $options);
77
  }
78
- $response = $response instanceof \Exception ? \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($response) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\promise_for($response);
79
- return $response->then(function ($value) use($request, $options) {
80
  $this->invokeStats($request, $options, $value);
81
  if ($this->onFulfilled) {
82
- \call_user_func($this->onFulfilled, $value);
83
  }
84
- if (isset($options['sink'])) {
85
  $contents = (string) $value->getBody();
86
  $sink = $options['sink'];
87
  if (\is_resource($sink)) {
@@ -96,62 +114,61 @@ class MockHandler implements \Countable
96
  }, function ($reason) use($request, $options) {
97
  $this->invokeStats($request, $options, null, $reason);
98
  if ($this->onRejected) {
99
- \call_user_func($this->onRejected, $reason);
100
  }
101
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
102
  });
103
  }
104
  /**
105
  * Adds one or more variadic requests, exceptions, callables, or promises
106
  * to the queue.
 
 
107
  */
108
- public function append()
109
  {
110
- foreach (\func_get_args() as $value) {
111
- if ($value instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface || $value instanceof \Exception || $value instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface || \is_callable($value)) {
112
  $this->queue[] = $value;
113
  } else {
114
- throw new \InvalidArgumentException('Expected a response or ' . 'exception. Found ' . \PYS_PRO_GLOBAL\GuzzleHttp\describe_type($value));
115
  }
116
  }
117
  }
118
  /**
119
  * Get the last received request.
120
- *
121
- * @return RequestInterface
122
  */
123
- public function getLastRequest()
124
  {
125
  return $this->lastRequest;
126
  }
127
  /**
128
  * Get the last received request options.
129
- *
130
- * @return array
131
  */
132
- public function getLastOptions()
133
  {
134
  return $this->lastOptions;
135
  }
136
  /**
137
  * Returns the number of remaining items in the queue.
138
- *
139
- * @return int
140
  */
141
- public function count()
142
  {
143
  return \count($this->queue);
144
  }
145
- public function reset()
146
  {
147
  $this->queue = [];
148
  }
149
- private function invokeStats(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $reason = null)
 
 
 
150
  {
151
  if (isset($options['on_stats'])) {
152
- $transferTime = isset($options['transfer_time']) ? $options['transfer_time'] : 0;
153
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, $transferTime, $reason);
154
- \call_user_func($options['on_stats'], $stats);
155
  }
156
  }
157
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
9
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
10
+ use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
12
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
13
+ use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
14
  /**
15
  * Handler that returns responses or throw exceptions from a queue.
16
+ *
17
+ * @final
18
  */
19
  class MockHandler implements \Countable
20
  {
21
+ /**
22
+ * @var array
23
+ */
24
  private $queue = [];
25
+ /**
26
+ * @var RequestInterface|null
27
+ */
28
  private $lastRequest;
29
+ /**
30
+ * @var array
31
+ */
32
+ private $lastOptions = [];
33
+ /**
34
+ * @var callable|null
35
+ */
36
  private $onFulfilled;
37
+ /**
38
+ * @var callable|null
39
+ */
40
  private $onRejected;
41
  /**
42
  * Creates a new MockHandler that uses the default handler stack list of
43
  * middlewares.
44
  *
45
+ * @param array|null $queue Array of responses, callables, or exceptions.
46
+ * @param callable|null $onFulfilled Callback to invoke when the return value is fulfilled.
47
+ * @param callable|null $onRejected Callback to invoke when the return value is rejected.
 
 
48
  */
49
+ public static function createWithMiddleware(array $queue = null, callable $onFulfilled = null, callable $onRejected = null) : \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack
50
  {
51
  return \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create(new self($queue, $onFulfilled, $onRejected));
52
  }
53
  /**
54
  * The passed in value must be an array of
55
+ * {@see \Psr\Http\Message\ResponseInterface} objects, Exceptions,
56
  * callables, or Promises.
57
  *
58
+ * @param array<int, mixed>|null $queue The parameters to be passed to the append function, as an indexed array.
59
+ * @param callable|null $onFulfilled Callback to invoke when the return value is fulfilled.
60
+ * @param callable|null $onRejected Callback to invoke when the return value is rejected.
61
  */
62
  public function __construct(array $queue = null, callable $onFulfilled = null, callable $onRejected = null)
63
  {
64
  $this->onFulfilled = $onFulfilled;
65
  $this->onRejected = $onRejected;
66
  if ($queue) {
67
+ // array_values included for BC
68
+ $this->append(...\array_values($queue));
69
  }
70
  }
71
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
72
  {
73
  if (!$this->queue) {
74
  throw new \OutOfBoundsException('Mock queue is empty');
75
  }
76
  if (isset($options['delay']) && \is_numeric($options['delay'])) {
77
+ \usleep((int) $options['delay'] * 1000);
78
  }
79
  $this->lastRequest = $request;
80
  $this->lastOptions = $options;
91
  }
92
  }
93
  if (\is_callable($response)) {
94
+ $response = $response($request, $options);
95
  }
96
+ $response = $response instanceof \Throwable ? \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($response) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::promiseFor($response);
97
+ return $response->then(function (?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $value) use($request, $options) {
98
  $this->invokeStats($request, $options, $value);
99
  if ($this->onFulfilled) {
100
+ ($this->onFulfilled)($value);
101
  }
102
+ if ($value !== null && isset($options['sink'])) {
103
  $contents = (string) $value->getBody();
104
  $sink = $options['sink'];
105
  if (\is_resource($sink)) {
114
  }, function ($reason) use($request, $options) {
115
  $this->invokeStats($request, $options, null, $reason);
116
  if ($this->onRejected) {
117
+ ($this->onRejected)($reason);
118
  }
119
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
120
  });
121
  }
122
  /**
123
  * Adds one or more variadic requests, exceptions, callables, or promises
124
  * to the queue.
125
+ *
126
+ * @param mixed ...$values
127
  */
128
+ public function append(...$values) : void
129
  {
130
+ foreach ($values as $value) {
131
+ if ($value instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface || $value instanceof \Throwable || $value instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface || \is_callable($value)) {
132
  $this->queue[] = $value;
133
  } else {
134
+ throw new \TypeError('Expected a Response, Promise, Throwable or callable. Found ' . \PYS_PRO_GLOBAL\GuzzleHttp\Utils::describeType($value));
135
  }
136
  }
137
  }
138
  /**
139
  * Get the last received request.
 
 
140
  */
141
+ public function getLastRequest() : ?\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
142
  {
143
  return $this->lastRequest;
144
  }
145
  /**
146
  * Get the last received request options.
 
 
147
  */
148
+ public function getLastOptions() : array
149
  {
150
  return $this->lastOptions;
151
  }
152
  /**
153
  * Returns the number of remaining items in the queue.
 
 
154
  */
155
+ public function count() : int
156
  {
157
  return \count($this->queue);
158
  }
159
+ public function reset() : void
160
  {
161
  $this->queue = [];
162
  }
163
+ /**
164
+ * @param mixed $reason Promise or reason.
165
+ */
166
+ private function invokeStats(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $reason = null) : void
167
  {
168
  if (isset($options['on_stats'])) {
169
+ $transferTime = $options['transfer_time'] ?? 0;
170
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, $transferTime, $reason);
171
+ $options['on_stats']($stats);
172
  }
173
  }
174
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php CHANGED
@@ -2,10 +2,13 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * Provides basic proxies for handlers.
 
 
9
  */
10
  class Proxy
11
  {
@@ -13,14 +16,14 @@ class Proxy
13
  * Sends synchronous requests to a specific handler while sending all other
14
  * requests to another handler.
15
  *
16
- * @param callable $default Handler used for normal responses
17
- * @param callable $sync Handler used for synchronous responses.
18
  *
19
- * @return callable Returns the composed handler.
20
  */
21
- public static function wrapSync(callable $default, callable $sync)
22
  {
23
- return function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $sync) {
24
  return empty($options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS]) ? $default($request, $options) : $sync($request, $options);
25
  };
26
  }
@@ -32,14 +35,14 @@ class Proxy
32
  * performance benefits of curl while still supporting true streaming
33
  * through the StreamHandler.
34
  *
35
- * @param callable $default Handler used for non-streaming responses
36
- * @param callable $streaming Handler used for streaming responses
37
  *
38
- * @return callable Returns the composed handler.
39
  */
40
- public static function wrapStreaming(callable $default, callable $streaming)
41
  {
42
- return function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $streaming) {
43
  return empty($options['stream']) ? $default($request, $options) : $streaming($request, $options);
44
  };
45
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  /**
9
  * Provides basic proxies for handlers.
10
+ *
11
+ * @final
12
  */
13
  class Proxy
14
  {
16
  * Sends synchronous requests to a specific handler while sending all other
17
  * requests to another handler.
18
  *
19
+ * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for normal responses
20
+ * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $sync Handler used for synchronous responses.
21
  *
22
+ * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
23
  */
24
+ public static function wrapSync(callable $default, callable $sync) : callable
25
  {
26
+ return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $sync) : PromiseInterface {
27
  return empty($options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS]) ? $default($request, $options) : $sync($request, $options);
28
  };
29
  }
35
  * performance benefits of curl while still supporting true streaming
36
  * through the StreamHandler.
37
  *
38
+ * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for non-streaming responses
39
+ * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $streaming Handler used for streaming responses
40
  *
41
+ * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
42
  */
43
+ public static function wrapStreaming(callable $default, callable $streaming) : callable
44
  {
45
+ return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $streaming) : PromiseInterface {
46
  return empty($options['stream']) ? $default($request, $options) : $streaming($request, $options);
47
  };
48
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php CHANGED
@@ -4,6 +4,7 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
@@ -12,21 +13,25 @@ use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
12
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
13
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
14
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
 
15
  /**
16
  * HTTP handler that uses PHP's HTTP stream wrapper.
 
 
17
  */
18
  class StreamHandler
19
  {
 
 
 
20
  private $lastHeaders = [];
21
  /**
22
  * Sends an HTTP request.
23
  *
24
  * @param RequestInterface $request Request to send.
25
  * @param array $options Request transfer options.
26
- *
27
- * @return PromiseInterface
28
  */
29
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
30
  {
31
  // Sleep if there is a delay specified.
32
  if (isset($options['delay'])) {
@@ -48,32 +53,36 @@ class StreamHandler
48
  // Determine if the error was a networking error.
49
  $message = $e->getMessage();
50
  // This list can probably get more comprehensive.
51
- if (\strpos($message, 'getaddrinfo') || \strpos($message, 'Connection refused') || \strpos($message, "couldn't connect to host") || \strpos($message, "connection attempt failed")) {
52
  $e = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($e->getMessage(), $request, $e);
 
 
53
  }
54
- $e = \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::wrapException($request, $e);
55
  $this->invokeStats($options, $request, $startTime, null, $e);
56
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($e);
57
  }
58
  }
59
- private function invokeStats(array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, $startTime, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $error = null)
60
  {
61
  if (isset($options['on_stats'])) {
62
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime() - $startTime, $error, []);
63
- \call_user_func($options['on_stats'], $stats);
64
  }
65
  }
66
- private function createResponse(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, $stream, $startTime)
 
 
 
67
  {
68
  $hdrs = $this->lastHeaders;
69
  $this->lastHeaders = [];
70
  $parts = \explode(' ', \array_shift($hdrs), 3);
71
  $ver = \explode('/', $parts[0])[1];
72
- $status = $parts[1];
73
- $reason = isset($parts[2]) ? $parts[2] : null;
74
- $headers = \PYS_PRO_GLOBAL\GuzzleHttp\headers_from_lines($hdrs);
75
- list($stream, $headers) = $this->checkDecode($options, $headers, $stream);
76
- $stream = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($stream);
77
  $sink = $stream;
78
  if (\strcasecmp('HEAD', $request->getMethod())) {
79
  $sink = $this->createSink($stream, $options);
@@ -85,7 +94,7 @@ class StreamHandler
85
  } catch (\Exception $e) {
86
  $msg = 'An error was encountered during the on_headers event';
87
  $ex = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($msg, $request, $response, $e);
88
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($ex);
89
  }
90
  }
91
  // Do not drain when the request is a HEAD request because they have
@@ -96,23 +105,26 @@ class StreamHandler
96
  $this->invokeStats($options, $request, $startTime, $response, null);
97
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($response);
98
  }
99
- private function createSink(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $stream, array $options)
100
  {
101
  if (!empty($options['stream'])) {
102
  return $stream;
103
  }
104
- $sink = isset($options['sink']) ? $options['sink'] : \fopen('php://temp', 'r+');
105
- return \is_string($sink) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+') : \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($sink);
106
  }
107
- private function checkDecode(array $options, array $headers, $stream)
 
 
 
108
  {
109
  // Automatically decode responses when instructed.
110
  if (!empty($options['decode_content'])) {
111
- $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\normalize_header_keys($headers);
112
  if (isset($normalizedKeys['content-encoding'])) {
113
  $encoding = $headers[$normalizedKeys['content-encoding']];
114
  if ($encoding[0] === 'gzip' || $encoding[0] === 'deflate') {
115
- $stream = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\InflateStream(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($stream));
116
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
117
  // Remove content-encoding header
118
  unset($headers[$normalizedKeys['content-encoding']]);
@@ -134,21 +146,18 @@ class StreamHandler
134
  /**
135
  * Drains the source stream into the "sink" client option.
136
  *
137
- * @param StreamInterface $source
138
- * @param StreamInterface $sink
139
- * @param string $contentLength Header specifying the amount of
140
- * data to read.
141
  *
142
- * @return StreamInterface
143
  * @throws \RuntimeException when the sink option is invalid.
144
  */
145
- private function drain(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $source, \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $sink, $contentLength)
146
  {
147
  // If a content-length header is provided, then stop reading once
148
  // that number of bytes has been read. This can prevent infinitely
149
  // reading from a stream when dealing with servers that do not honor
150
  // Connection: Close headers.
151
- \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\copy_to_stream($source, $sink, \strlen($contentLength) > 0 && (int) $contentLength > 0 ? (int) $contentLength : -1);
152
  $sink->seek(0);
153
  $source->close();
154
  return $sink;
@@ -159,12 +168,13 @@ class StreamHandler
159
  * @param callable $callback Callable that returns stream resource
160
  *
161
  * @return resource
 
162
  * @throws \RuntimeException on error
163
  */
164
  private function createResource(callable $callback)
165
  {
166
- $errors = null;
167
- \set_error_handler(function ($_, $msg, $file, $line) use(&$errors) {
168
  $errors[] = ['message' => $msg, 'file' => $file, 'line' => $line];
169
  return \true;
170
  });
@@ -181,6 +191,9 @@ class StreamHandler
181
  }
182
  return $resource;
183
  }
 
 
 
184
  private function createStream(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
185
  {
186
  static $methods;
@@ -216,16 +229,19 @@ class StreamHandler
216
  $context = \array_replace_recursive($context, $options['stream_context']);
217
  }
218
  // Microsoft NTLM authentication only supported with curl handler
219
- if (isset($options['auth']) && \is_array($options['auth']) && isset($options['auth'][2]) && 'ntlm' == $options['auth'][2]) {
220
  throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler');
221
  }
222
  $uri = $this->resolveHost($request, $options);
223
- $context = $this->createResource(function () use($context, $params) {
224
  return \stream_context_create($context, $params);
225
  });
226
- return $this->createResource(function () use($uri, &$http_response_header, $context, $options) {
227
- $resource = \fopen((string) $uri, 'r', null, $context);
228
  $this->lastHeaders = $http_response_header;
 
 
 
229
  if (isset($options['read_timeout'])) {
230
  $readTimeout = $options['read_timeout'];
231
  $sec = (int) $readTimeout;
@@ -235,27 +251,28 @@ class StreamHandler
235
  return $resource;
236
  });
237
  }
238
- private function resolveHost(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
239
  {
240
  $uri = $request->getUri();
241
  if (isset($options['force_ip_resolve']) && !\filter_var($uri->getHost(), \FILTER_VALIDATE_IP)) {
242
  if ('v4' === $options['force_ip_resolve']) {
243
  $records = \dns_get_record($uri->getHost(), \DNS_A);
244
- if (!isset($records[0]['ip'])) {
245
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request);
246
  }
247
- $uri = $uri->withHost($records[0]['ip']);
248
- } elseif ('v6' === $options['force_ip_resolve']) {
 
249
  $records = \dns_get_record($uri->getHost(), \DNS_AAAA);
250
- if (!isset($records[0]['ipv6'])) {
251
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request);
252
  }
253
- $uri = $uri->withHost('[' . $records[0]['ipv6'] . ']');
254
  }
255
  }
256
  return $uri;
257
  }
258
- private function getDefaultContext(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request)
259
  {
260
  $headers = '';
261
  foreach ($request->getHeaders() as $name => $value) {
@@ -275,50 +292,57 @@ class StreamHandler
275
  $context['http']['header'] = \rtrim($context['http']['header']);
276
  return $context;
277
  }
278
- private function add_proxy(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
279
  {
280
  if (!\is_array($value)) {
281
  $options['http']['proxy'] = $value;
282
  } else {
283
  $scheme = $request->getUri()->getScheme();
284
  if (isset($value[$scheme])) {
285
- if (!isset($value['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\is_host_in_noproxy($request->getUri()->getHost(), $value['no'])) {
286
  $options['http']['proxy'] = $value[$scheme];
287
  }
288
  }
289
  }
290
  }
291
- private function add_timeout(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
292
  {
293
  if ($value > 0) {
294
  $options['http']['timeout'] = $value;
295
  }
296
  }
297
- private function add_verify(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
298
  {
299
- if ($value === \true) {
300
- // PHP 5.6 or greater will find the system cert by default. When
301
- // < 5.6, use the Guzzle bundled cacert.
302
- if (\PHP_VERSION_ID < 50600) {
303
- $options['ssl']['cafile'] = \PYS_PRO_GLOBAL\GuzzleHttp\default_ca_bundle();
304
- }
305
- } elseif (\is_string($value)) {
306
  $options['ssl']['cafile'] = $value;
307
  if (!\file_exists($value)) {
308
  throw new \RuntimeException("SSL CA bundle not found: {$value}");
309
  }
310
- } elseif ($value === \false) {
311
- $options['ssl']['verify_peer'] = \false;
312
- $options['ssl']['verify_peer_name'] = \false;
313
- return;
314
- } else {
315
  throw new \InvalidArgumentException('Invalid verify request option');
316
  }
317
  $options['ssl']['verify_peer'] = \true;
318
  $options['ssl']['verify_peer_name'] = \true;
319
  $options['ssl']['allow_self_signed'] = \false;
320
  }
321
- private function add_cert(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
322
  {
323
  if (\is_array($value)) {
324
  $options['ssl']['passphrase'] = $value[1];
@@ -329,26 +353,30 @@ class StreamHandler
329
  }
330
  $options['ssl']['local_cert'] = $value;
331
  }
332
- private function add_progress(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
333
  {
334
- $this->addNotification($params, function ($code, $a, $b, $c, $transferred, $total) use($value) {
335
  if ($code == \STREAM_NOTIFY_PROGRESS) {
336
  $value($total, $transferred, null, null);
337
  }
338
  });
339
  }
340
- private function add_debug(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
341
  {
342
  if ($value === \false) {
343
  return;
344
  }
345
  static $map = [\STREAM_NOTIFY_CONNECT => 'CONNECT', \STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', \STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', \STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', \STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', \STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', \STREAM_NOTIFY_PROGRESS => 'PROGRESS', \STREAM_NOTIFY_FAILURE => 'FAILURE', \STREAM_NOTIFY_COMPLETED => 'COMPLETED', \STREAM_NOTIFY_RESOLVE => 'RESOLVE'];
346
  static $args = ['severity', 'message', 'message_code', 'bytes_transferred', 'bytes_max'];
347
- $value = \PYS_PRO_GLOBAL\GuzzleHttp\debug_resource($value);
348
  $ident = $request->getMethod() . ' ' . $request->getUri()->withFragment('');
349
- $this->addNotification($params, function () use($ident, $value, $map, $args) {
350
- $passed = \func_get_args();
351
- $code = \array_shift($passed);
352
  \fprintf($value, '<%s> [%s] ', $ident, $map[$code]);
353
  foreach (\array_filter($passed) as $i => $v) {
354
  \fwrite($value, $args[$i] . ': "' . $v . '" ');
@@ -356,21 +384,20 @@ class StreamHandler
356
  \fwrite($value, "\n");
357
  });
358
  }
359
- private function addNotification(array &$params, callable $notify)
360
  {
361
  // Wrap the existing function if needed.
362
  if (!isset($params['notification'])) {
363
  $params['notification'] = $notify;
364
  } else {
365
- $params['notification'] = $this->callArray([$params['notification'], $notify]);
366
  }
367
  }
368
- private function callArray(array $functions)
369
  {
370
- return function () use($functions) {
371
- $args = \func_get_args();
372
  foreach ($functions as $fn) {
373
- \call_user_func_array($fn, $args);
374
  }
375
  };
376
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
10
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
13
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
14
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
15
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
16
+ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
17
  /**
18
  * HTTP handler that uses PHP's HTTP stream wrapper.
19
+ *
20
+ * @final
21
  */
22
  class StreamHandler
23
  {
24
+ /**
25
+ * @var array
26
+ */
27
  private $lastHeaders = [];
28
  /**
29
  * Sends an HTTP request.
30
  *
31
  * @param RequestInterface $request Request to send.
32
  * @param array $options Request transfer options.
 
 
33
  */
34
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
35
  {
36
  // Sleep if there is a delay specified.
37
  if (isset($options['delay'])) {
53
  // Determine if the error was a networking error.
54
  $message = $e->getMessage();
55
  // This list can probably get more comprehensive.
56
+ if (\false !== \strpos($message, 'getaddrinfo') || \false !== \strpos($message, 'Connection refused') || \false !== \strpos($message, "couldn't connect to host") || \false !== \strpos($message, "connection attempt failed")) {
57
  $e = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($e->getMessage(), $request, $e);
58
+ } else {
59
+ $e = \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::wrapException($request, $e);
60
  }
 
61
  $this->invokeStats($options, $request, $startTime, null, $e);
62
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($e);
63
  }
64
  }
65
+ private function invokeStats(array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?float $startTime, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Throwable $error = null) : void
66
  {
67
  if (isset($options['on_stats'])) {
68
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime() - $startTime, $error, []);
69
+ $options['on_stats']($stats);
70
  }
71
  }
72
+ /**
73
+ * @param resource $stream
74
+ */
75
+ private function createResponse(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, $stream, ?float $startTime) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
76
  {
77
  $hdrs = $this->lastHeaders;
78
  $this->lastHeaders = [];
79
  $parts = \explode(' ', \array_shift($hdrs), 3);
80
  $ver = \explode('/', $parts[0])[1];
81
+ $status = (int) $parts[1];
82
+ $reason = $parts[2] ?? null;
83
+ $headers = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::headersFromLines($hdrs);
84
+ [$stream, $headers] = $this->checkDecode($options, $headers, $stream);
85
+ $stream = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($stream);
86
  $sink = $stream;
87
  if (\strcasecmp('HEAD', $request->getMethod())) {
88
  $sink = $this->createSink($stream, $options);
94
  } catch (\Exception $e) {
95
  $msg = 'An error was encountered during the on_headers event';
96
  $ex = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($msg, $request, $response, $e);
97
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($ex);
98
  }
99
  }
100
  // Do not drain when the request is a HEAD request because they have
105
  $this->invokeStats($options, $request, $startTime, $response, null);
106
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($response);
107
  }
108
+ private function createSink(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $stream, array $options) : \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface
109
  {
110
  if (!empty($options['stream'])) {
111
  return $stream;
112
  }
113
+ $sink = $options['sink'] ?? \fopen('php://temp', 'r+');
114
+ return \is_string($sink) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+') : \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($sink);
115
  }
116
+ /**
117
+ * @param resource $stream
118
+ */
119
+ private function checkDecode(array $options, array $headers, $stream) : array
120
  {
121
  // Automatically decode responses when instructed.
122
  if (!empty($options['decode_content'])) {
123
+ $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::normalizeHeaderKeys($headers);
124
  if (isset($normalizedKeys['content-encoding'])) {
125
  $encoding = $headers[$normalizedKeys['content-encoding']];
126
  if ($encoding[0] === 'gzip' || $encoding[0] === 'deflate') {
127
+ $stream = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\InflateStream(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($stream));
128
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
129
  // Remove content-encoding header
130
  unset($headers[$normalizedKeys['content-encoding']]);
146
  /**
147
  * Drains the source stream into the "sink" client option.
148
  *
149
+ * @param string $contentLength Header specifying the amount of
150
+ * data to read.
 
 
151
  *
 
152
  * @throws \RuntimeException when the sink option is invalid.
153
  */
154
+ private function drain(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $source, \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $sink, string $contentLength) : \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface
155
  {
156
  // If a content-length header is provided, then stop reading once
157
  // that number of bytes has been read. This can prevent infinitely
158
  // reading from a stream when dealing with servers that do not honor
159
  // Connection: Close headers.
160
+ \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::copyToStream($source, $sink, \strlen($contentLength) > 0 && (int) $contentLength > 0 ? (int) $contentLength : -1);
161
  $sink->seek(0);
162
  $source->close();
163
  return $sink;
168
  * @param callable $callback Callable that returns stream resource
169
  *
170
  * @return resource
171
+ *
172
  * @throws \RuntimeException on error
173
  */
174
  private function createResource(callable $callback)
175
  {
176
+ $errors = [];
177
+ \set_error_handler(static function ($_, $msg, $file, $line) use(&$errors) : bool {
178
  $errors[] = ['message' => $msg, 'file' => $file, 'line' => $line];
179
  return \true;
180
  });
191
  }
192
  return $resource;
193
  }
194
+ /**
195
+ * @return resource
196
+ */
197
  private function createStream(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
198
  {
199
  static $methods;
229
  $context = \array_replace_recursive($context, $options['stream_context']);
230
  }
231
  // Microsoft NTLM authentication only supported with curl handler
232
+ if (isset($options['auth'][2]) && 'ntlm' === $options['auth'][2]) {
233
  throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler');
234
  }
235
  $uri = $this->resolveHost($request, $options);
236
+ $contextResource = $this->createResource(static function () use($context, $params) {
237
  return \stream_context_create($context, $params);
238
  });
239
+ return $this->createResource(function () use($uri, &$http_response_header, $contextResource, $context, $options, $request) {
240
+ $resource = \fopen((string) $uri, 'r', \false, $contextResource);
241
  $this->lastHeaders = $http_response_header;
242
+ if (\false === $resource) {
243
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf('Connection refused for URI %s', $uri), $request, null, $context);
244
+ }
245
  if (isset($options['read_timeout'])) {
246
  $readTimeout = $options['read_timeout'];
247
  $sec = (int) $readTimeout;
251
  return $resource;
252
  });
253
  }
254
+ private function resolveHost(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
255
  {
256
  $uri = $request->getUri();
257
  if (isset($options['force_ip_resolve']) && !\filter_var($uri->getHost(), \FILTER_VALIDATE_IP)) {
258
  if ('v4' === $options['force_ip_resolve']) {
259
  $records = \dns_get_record($uri->getHost(), \DNS_A);
260
+ if (\false === $records || !isset($records[0]['ip'])) {
261
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request);
262
  }
263
+ return $uri->withHost($records[0]['ip']);
264
+ }
265
+ if ('v6' === $options['force_ip_resolve']) {
266
  $records = \dns_get_record($uri->getHost(), \DNS_AAAA);
267
+ if (\false === $records || !isset($records[0]['ipv6'])) {
268
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request);
269
  }
270
+ return $uri->withHost('[' . $records[0]['ipv6'] . ']');
271
  }
272
  }
273
  return $uri;
274
  }
275
+ private function getDefaultContext(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : array
276
  {
277
  $headers = '';
278
  foreach ($request->getHeaders() as $name => $value) {
292
  $context['http']['header'] = \rtrim($context['http']['header']);
293
  return $context;
294
  }
295
+ /**
296
+ * @param mixed $value as passed via Request transfer options.
297
+ */
298
+ private function add_proxy(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
299
  {
300
  if (!\is_array($value)) {
301
  $options['http']['proxy'] = $value;
302
  } else {
303
  $scheme = $request->getUri()->getScheme();
304
  if (isset($value[$scheme])) {
305
+ if (!isset($value['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\Utils::isHostInNoProxy($request->getUri()->getHost(), $value['no'])) {
306
  $options['http']['proxy'] = $value[$scheme];
307
  }
308
  }
309
  }
310
  }
311
+ /**
312
+ * @param mixed $value as passed via Request transfer options.
313
+ */
314
+ private function add_timeout(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
315
  {
316
  if ($value > 0) {
317
  $options['http']['timeout'] = $value;
318
  }
319
  }
320
+ /**
321
+ * @param mixed $value as passed via Request transfer options.
322
+ */
323
+ private function add_verify(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
324
  {
325
+ if ($value === \false) {
326
+ $options['ssl']['verify_peer'] = \false;
327
+ $options['ssl']['verify_peer_name'] = \false;
328
+ return;
329
+ }
330
+ if (\is_string($value)) {
 
331
  $options['ssl']['cafile'] = $value;
332
  if (!\file_exists($value)) {
333
  throw new \RuntimeException("SSL CA bundle not found: {$value}");
334
  }
335
+ } elseif ($value !== \true) {
 
 
 
 
336
  throw new \InvalidArgumentException('Invalid verify request option');
337
  }
338
  $options['ssl']['verify_peer'] = \true;
339
  $options['ssl']['verify_peer_name'] = \true;
340
  $options['ssl']['allow_self_signed'] = \false;
341
  }
342
+ /**
343
+ * @param mixed $value as passed via Request transfer options.
344
+ */
345
+ private function add_cert(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
346
  {
347
  if (\is_array($value)) {
348
  $options['ssl']['passphrase'] = $value[1];
353
  }
354
  $options['ssl']['local_cert'] = $value;
355
  }
356
+ /**
357
+ * @param mixed $value as passed via Request transfer options.
358
+ */
359
+ private function add_progress(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
360
  {
361
+ self::addNotification($params, static function ($code, $a, $b, $c, $transferred, $total) use($value) {
362
  if ($code == \STREAM_NOTIFY_PROGRESS) {
363
  $value($total, $transferred, null, null);
364
  }
365
  });
366
  }
367
+ /**
368
+ * @param mixed $value as passed via Request transfer options.
369
+ */
370
+ private function add_debug(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
371
  {
372
  if ($value === \false) {
373
  return;
374
  }
375
  static $map = [\STREAM_NOTIFY_CONNECT => 'CONNECT', \STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', \STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', \STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', \STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', \STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', \STREAM_NOTIFY_PROGRESS => 'PROGRESS', \STREAM_NOTIFY_FAILURE => 'FAILURE', \STREAM_NOTIFY_COMPLETED => 'COMPLETED', \STREAM_NOTIFY_RESOLVE => 'RESOLVE'];
376
  static $args = ['severity', 'message', 'message_code', 'bytes_transferred', 'bytes_max'];
377
+ $value = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::debugResource($value);
378
  $ident = $request->getMethod() . ' ' . $request->getUri()->withFragment('');
379
+ self::addNotification($params, static function (int $code, ...$passed) use($ident, $value, $map, $args) : void {
 
 
380
  \fprintf($value, '<%s> [%s] ', $ident, $map[$code]);
381
  foreach (\array_filter($passed) as $i => $v) {
382
  \fwrite($value, $args[$i] . ': "' . $v . '" ');
384
  \fwrite($value, "\n");
385
  });
386
  }
387
+ private static function addNotification(array &$params, callable $notify) : void
388
  {
389
  // Wrap the existing function if needed.
390
  if (!isset($params['notification'])) {
391
  $params['notification'] = $notify;
392
  } else {
393
+ $params['notification'] = self::callArray([$params['notification'], $notify]);
394
  }
395
  }
396
+ private static function callArray(array $functions) : callable
397
  {
398
+ return static function (...$args) use($functions) {
 
399
  foreach ($functions as $fn) {
400
+ $fn(...$args);
401
  }
402
  };
403
  }
vendor_prefix/guzzlehttp/guzzle/src/HandlerStack.php CHANGED
@@ -8,14 +8,22 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
  /**
9
  * Creates a composed Guzzle handler function by stacking middlewares on top of
10
  * an HTTP handler function.
 
 
11
  */
12
  class HandlerStack
13
  {
14
- /** @var callable|null */
 
 
15
  private $handler;
16
- /** @var array */
 
 
17
  private $stack = [];
18
- /** @var callable|null */
 
 
19
  private $cached;
20
  /**
21
  * Creates a default handler stack that can be used by clients.
@@ -28,15 +36,13 @@ class HandlerStack
28
  * The returned handler stack can be passed to a client in the "handler"
29
  * option.
30
  *
31
- * @param callable $handler HTTP handler function to use with the stack. If no
32
- * handler is provided, the best handler for your
33
- * system will be utilized.
34
- *
35
- * @return HandlerStack
36
  */
37
- public static function create(callable $handler = null)
38
  {
39
- $stack = new self($handler ?: choose_handler());
40
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::httpErrors(), 'http_errors');
41
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::redirect(), 'allow_redirects');
42
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::cookies(), 'cookies');
@@ -44,7 +50,7 @@ class HandlerStack
44
  return $stack;
45
  }
46
  /**
47
- * @param callable $handler Underlying HTTP handler.
48
  */
49
  public function __construct(callable $handler = null)
50
  {
@@ -53,9 +59,6 @@ class HandlerStack
53
  /**
54
  * Invokes the handler stack as a composed handler
55
  *
56
- * @param RequestInterface $request
57
- * @param array $options
58
- *
59
  * @return ResponseInterface|PromiseInterface
60
  */
61
  public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
@@ -72,7 +75,7 @@ class HandlerStack
72
  {
73
  $depth = 0;
74
  $stack = [];
75
- if ($this->handler) {
76
  $stack[] = "0) Handler: " . $this->debugCallable($this->handler);
77
  }
78
  $result = '';
@@ -91,30 +94,28 @@ class HandlerStack
91
  /**
92
  * Set the HTTP handler that actually returns a promise.
93
  *
94
- * @param callable $handler Accepts a request and array of options and
95
- * returns a Promise.
96
  */
97
- public function setHandler(callable $handler)
98
  {
99
  $this->handler = $handler;
100
  $this->cached = null;
101
  }
102
  /**
103
  * Returns true if the builder has a handler.
104
- *
105
- * @return bool
106
  */
107
- public function hasHandler()
108
  {
109
- return (bool) $this->handler;
110
  }
111
  /**
112
  * Unshift a middleware to the bottom of the stack.
113
  *
114
- * @param callable $middleware Middleware function
115
- * @param string $name Name to register for this middleware.
116
  */
117
- public function unshift(callable $middleware, $name = null)
118
  {
119
  \array_unshift($this->stack, [$middleware, $name]);
120
  $this->cached = null;
@@ -122,10 +123,10 @@ class HandlerStack
122
  /**
123
  * Push a middleware to the top of the stack.
124
  *
125
- * @param callable $middleware Middleware function
126
- * @param string $name Name to register for this middleware.
127
  */
128
- public function push(callable $middleware, $name = '')
129
  {
130
  $this->stack[] = [$middleware, $name];
131
  $this->cached = null;
@@ -133,22 +134,22 @@ class HandlerStack
133
  /**
134
  * Add a middleware before another middleware by name.
135
  *
136
- * @param string $findName Middleware to find
137
- * @param callable $middleware Middleware function
138
- * @param string $withName Name to register for this middleware.
139
  */
140
- public function before($findName, callable $middleware, $withName = '')
141
  {
142
  $this->splice($findName, $withName, $middleware, \true);
143
  }
144
  /**
145
  * Add a middleware after another middleware by name.
146
  *
147
- * @param string $findName Middleware to find
148
- * @param callable $middleware Middleware function
149
- * @param string $withName Name to register for this middleware.
150
  */
151
- public function after($findName, callable $middleware, $withName = '')
152
  {
153
  $this->splice($findName, $withName, $middleware, \false);
154
  }
@@ -157,37 +158,34 @@ class HandlerStack
157
  *
158
  * @param callable|string $remove Middleware to remove by instance or name.
159
  */
160
- public function remove($remove)
161
  {
162
  $this->cached = null;
163
  $idx = \is_callable($remove) ? 0 : 1;
164
- $this->stack = \array_values(\array_filter($this->stack, function ($tuple) use($idx, $remove) {
165
  return $tuple[$idx] !== $remove;
166
  }));
167
  }
168
  /**
169
  * Compose the middleware and handler into a single callable function.
170
  *
171
- * @return callable
172
  */
173
- public function resolve()
174
  {
175
- if (!$this->cached) {
176
- if (!($prev = $this->handler)) {
177
  throw new \LogicException('No handler has been specified');
178
  }
179
  foreach (\array_reverse($this->stack) as $fn) {
 
180
  $prev = $fn[0]($prev);
181
  }
182
  $this->cached = $prev;
183
  }
184
  return $this->cached;
185
  }
186
- /**
187
- * @param string $name
188
- * @return int
189
- */
190
- private function findByName($name)
191
  {
192
  foreach ($this->stack as $k => $v) {
193
  if ($v[1] === $name) {
@@ -198,13 +196,8 @@ class HandlerStack
198
  }
199
  /**
200
  * Splices a function into the middleware list at a specific position.
201
- *
202
- * @param string $findName
203
- * @param string $withName
204
- * @param callable $middleware
205
- * @param bool $before
206
  */
207
- private function splice($findName, $withName, callable $middleware, $before)
208
  {
209
  $this->cached = null;
210
  $idx = $this->findByName($findName);
@@ -226,11 +219,9 @@ class HandlerStack
226
  /**
227
  * Provides a debug string for a given callable.
228
  *
229
- * @param array|callable $fn Function to write as a string.
230
- *
231
- * @return string
232
  */
233
- private function debugCallable($fn)
234
  {
235
  if (\is_string($fn)) {
236
  return "callable({$fn})";
@@ -238,6 +229,7 @@ class HandlerStack
238
  if (\is_array($fn)) {
239
  return \is_string($fn[0]) ? "callable({$fn[0]}::{$fn[1]})" : "callable(['" . \get_class($fn[0]) . "', '{$fn[1]}'])";
240
  }
 
241
  return 'callable(' . \spl_object_hash($fn) . ')';
242
  }
243
  }
8
  /**
9
  * Creates a composed Guzzle handler function by stacking middlewares on top of
10
  * an HTTP handler function.
11
+ *
12
+ * @final
13
  */
14
  class HandlerStack
15
  {
16
+ /**
17
+ * @var null|callable(RequestInterface, array): PromiseInterface
18
+ */
19
  private $handler;
20
+ /**
21
+ * @var array{(callable(callable(RequestInterface, array): PromiseInterface): callable), (string|null)}[]
22
+ */
23
  private $stack = [];
24
+ /**
25
+ * @var null|callable(RequestInterface, array): PromiseInterface
26
+ */
27
  private $cached;
28
  /**
29
  * Creates a default handler stack that can be used by clients.
36
  * The returned handler stack can be passed to a client in the "handler"
37
  * option.
38
  *
39
+ * @param null|callable(RequestInterface, array): PromiseInterface $handler HTTP handler function to use with the stack. If no
40
+ * handler is provided, the best handler for your
41
+ * system will be utilized.
 
 
42
  */
43
+ public static function create(?callable $handler = null) : self
44
  {
45
+ $stack = new self($handler ?: \PYS_PRO_GLOBAL\GuzzleHttp\Utils::chooseHandler());
46
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::httpErrors(), 'http_errors');
47
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::redirect(), 'allow_redirects');
48
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::cookies(), 'cookies');
50
  return $stack;
51
  }
52
  /**
53
+ * @param null|callable(RequestInterface, array): PromiseInterface $handler Underlying HTTP handler.
54
  */
55
  public function __construct(callable $handler = null)
56
  {
59
  /**
60
  * Invokes the handler stack as a composed handler
61
  *
 
 
 
62
  * @return ResponseInterface|PromiseInterface
63
  */
64
  public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
75
  {
76
  $depth = 0;
77
  $stack = [];
78
+ if ($this->handler !== null) {
79
  $stack[] = "0) Handler: " . $this->debugCallable($this->handler);
80
  }
81
  $result = '';
94
  /**
95
  * Set the HTTP handler that actually returns a promise.
96
  *
97
+ * @param callable(RequestInterface, array): PromiseInterface $handler Accepts a request and array of options and
98
+ * returns a Promise.
99
  */
100
+ public function setHandler(callable $handler) : void
101
  {
102
  $this->handler = $handler;
103
  $this->cached = null;
104
  }
105
  /**
106
  * Returns true if the builder has a handler.
 
 
107
  */
108
+ public function hasHandler() : bool
109
  {
110
+ return $this->handler !== null;
111
  }
112
  /**
113
  * Unshift a middleware to the bottom of the stack.
114
  *
115
+ * @param callable(callable): callable $middleware Middleware function
116
+ * @param string $name Name to register for this middleware.
117
  */
118
+ public function unshift(callable $middleware, ?string $name = null) : void
119
  {
120
  \array_unshift($this->stack, [$middleware, $name]);
121
  $this->cached = null;
123
  /**
124
  * Push a middleware to the top of the stack.
125
  *
126
+ * @param callable(callable): callable $middleware Middleware function
127
+ * @param string $name Name to register for this middleware.
128
  */
129
+ public function push(callable $middleware, string $name = '') : void
130
  {
131
  $this->stack[] = [$middleware, $name];
132
  $this->cached = null;
134
  /**
135
  * Add a middleware before another middleware by name.
136
  *
137
+ * @param string $findName Middleware to find
138
+ * @param callable(callable): callable $middleware Middleware function
139
+ * @param string $withName Name to register for this middleware.
140
  */
141
+ public function before(string $findName, callable $middleware, string $withName = '') : void
142
  {
143
  $this->splice($findName, $withName, $middleware, \true);
144
  }
145
  /**
146
  * Add a middleware after another middleware by name.
147
  *
148
+ * @param string $findName Middleware to find
149
+ * @param callable(callable): callable $middleware Middleware function
150
+ * @param string $withName Name to register for this middleware.
151
  */
152
+ public function after(string $findName, callable $middleware, string $withName = '') : void
153
  {
154
  $this->splice($findName, $withName, $middleware, \false);
155
  }
158
  *
159
  * @param callable|string $remove Middleware to remove by instance or name.
160
  */
161
+ public function remove($remove) : void
162
  {
163
  $this->cached = null;
164
  $idx = \is_callable($remove) ? 0 : 1;
165
+ $this->stack = \array_values(\array_filter($this->stack, static function ($tuple) use($idx, $remove) {
166
  return $tuple[$idx] !== $remove;
167
  }));
168
  }
169
  /**
170
  * Compose the middleware and handler into a single callable function.
171
  *
172
+ * @return callable(RequestInterface, array): PromiseInterface
173
  */
174
+ public function resolve() : callable
175
  {
176
+ if ($this->cached === null) {
177
+ if (($prev = $this->handler) === null) {
178
  throw new \LogicException('No handler has been specified');
179
  }
180
  foreach (\array_reverse($this->stack) as $fn) {
181
+ /** @var callable(RequestInterface, array): PromiseInterface $prev */
182
  $prev = $fn[0]($prev);
183
  }
184
  $this->cached = $prev;
185
  }
186
  return $this->cached;
187
  }
188
+ private function findByName(string $name) : int
 
 
 
 
189
  {
190
  foreach ($this->stack as $k => $v) {
191
  if ($v[1] === $name) {
196
  }
197
  /**
198
  * Splices a function into the middleware list at a specific position.
 
 
 
 
 
199
  */
200
+ private function splice(string $findName, string $withName, callable $middleware, bool $before) : void
201
  {
202
  $this->cached = null;
203
  $idx = $this->findByName($findName);
219
  /**
220
  * Provides a debug string for a given callable.
221
  *
222
+ * @param callable $fn Function to write as a string.
 
 
223
  */
224
+ private function debugCallable($fn) : string
225
  {
226
  if (\is_string($fn)) {
227
  return "callable({$fn})";
229
  if (\is_array($fn)) {
230
  return \is_string($fn[0]) ? "callable({$fn[0]}::{$fn[1]})" : "callable(['" . \get_class($fn[0]) . "', '{$fn[1]}'])";
231
  }
232
+ /** @var object $fn */
233
  return 'callable(' . \spl_object_hash($fn) . ')';
234
  }
235
  }
vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php CHANGED
@@ -31,38 +31,43 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
31
  * - {res_headers}: Response headers
32
  * - {req_body}: Request body
33
  * - {res_body}: Response body
 
 
34
  */
35
- class MessageFormatter
36
  {
37
  /**
38
  * Apache Common Log Format.
39
- * @link http://httpd.apache.org/docs/2.4/logs.html#common
 
 
40
  * @var string
41
  */
42
- const CLF = "{hostname} {req_header_User-Agent} - [{date_common_log}] \"{method} {target} HTTP/{version}\" {code} {res_header_Content-Length}";
43
- const DEBUG = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}";
44
- const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}';
45
- /** @var string Template used to format log messages */
 
 
46
  private $template;
47
  /**
48
  * @param string $template Log message template
49
  */
50
- public function __construct($template = self::CLF)
51
  {
52
  $this->template = $template ?: self::CLF;
53
  }
54
  /**
55
  * Returns a formatted message string.
56
  *
57
- * @param RequestInterface $request Request that was sent
58
- * @param ResponseInterface $response Response that was received
59
- * @param \Exception $error Exception that was received
60
- *
61
- * @return string
62
  */
63
- public function format(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $error = null)
64
  {
65
  $cache = [];
 
66
  return \preg_replace_callback('/{\\s*([A-Za-z_\\-\\.0-9]+)\\s*}/', function (array $matches) use($request, $response, $error, &$cache) {
67
  if (isset($cache[$matches[1]])) {
68
  return $cache[$matches[1]];
@@ -70,10 +75,10 @@ class MessageFormatter
70
  $result = '';
71
  switch ($matches[1]) {
72
  case 'request':
73
- $result = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\str($request);
74
  break;
75
  case 'response':
76
- $result = $response ? \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\str($response) : '';
77
  break;
78
  case 'req_headers':
79
  $result = \trim($request->getMethod() . ' ' . $request->getRequestTarget()) . ' HTTP/' . $request->getProtocolVersion() . "\r\n" . $this->headers($request);
@@ -82,10 +87,19 @@ class MessageFormatter
82
  $result = $response ? \sprintf('HTTP/%s %d %s', $response->getProtocolVersion(), $response->getStatusCode(), $response->getReasonPhrase()) . "\r\n" . $this->headers($response) : 'NULL';
83
  break;
84
  case 'req_body':
85
- $result = $request->getBody();
86
  break;
87
  case 'res_body':
88
- $result = $response ? $response->getBody() : 'NULL';
 
 
 
 
 
 
 
 
 
89
  break;
90
  case 'ts':
91
  case 'date_iso_8601':
@@ -142,10 +156,8 @@ class MessageFormatter
142
  }
143
  /**
144
  * Get headers from message as string
145
- *
146
- * @return string
147
  */
148
- private function headers(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message)
149
  {
150
  $result = '';
151
  foreach ($message->getHeaders() as $name => $values) {
31
  * - {res_headers}: Response headers
32
  * - {req_body}: Request body
33
  * - {res_body}: Response body
34
+ *
35
+ * @final
36
  */
37
+ class MessageFormatter implements \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInterface
38
  {
39
  /**
40
  * Apache Common Log Format.
41
+ *
42
+ * @link https://httpd.apache.org/docs/2.4/logs.html#common
43
+ *
44
  * @var string
45
  */
46
+ public const CLF = "{hostname} {req_header_User-Agent} - [{date_common_log}] \"{method} {target} HTTP/{version}\" {code} {res_header_Content-Length}";
47
+ public const DEBUG = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}";
48
+ public const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}';
49
+ /**
50
+ * @var string Template used to format log messages
51
+ */
52
  private $template;
53
  /**
54
  * @param string $template Log message template
55
  */
56
+ public function __construct(?string $template = self::CLF)
57
  {
58
  $this->template = $template ?: self::CLF;
59
  }
60
  /**
61
  * Returns a formatted message string.
62
  *
63
+ * @param RequestInterface $request Request that was sent
64
+ * @param ResponseInterface|null $response Response that was received
65
+ * @param \Throwable|null $error Exception that was received
 
 
66
  */
67
+ public function format(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $error = null) : string
68
  {
69
  $cache = [];
70
+ /** @var string */
71
  return \preg_replace_callback('/{\\s*([A-Za-z_\\-\\.0-9]+)\\s*}/', function (array $matches) use($request, $response, $error, &$cache) {
72
  if (isset($cache[$matches[1]])) {
73
  return $cache[$matches[1]];
75
  $result = '';
76
  switch ($matches[1]) {
77
  case 'request':
78
+ $result = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::toString($request);
79
  break;
80
  case 'response':
81
+ $result = $response ? \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::toString($response) : '';
82
  break;
83
  case 'req_headers':
84
  $result = \trim($request->getMethod() . ' ' . $request->getRequestTarget()) . ' HTTP/' . $request->getProtocolVersion() . "\r\n" . $this->headers($request);
87
  $result = $response ? \sprintf('HTTP/%s %d %s', $response->getProtocolVersion(), $response->getStatusCode(), $response->getReasonPhrase()) . "\r\n" . $this->headers($response) : 'NULL';
88
  break;
89
  case 'req_body':
90
+ $result = $request->getBody()->__toString();
91
  break;
92
  case 'res_body':
93
+ if (!$response instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface) {
94
+ $result = 'NULL';
95
+ break;
96
+ }
97
+ $body = $response->getBody();
98
+ if (!$body->isSeekable()) {
99
+ $result = 'RESPONSE_NOT_LOGGEABLE';
100
+ break;
101
+ }
102
+ $result = $response->getBody()->__toString();
103
  break;
104
  case 'ts':
105
  case 'date_iso_8601':
156
  }
157
  /**
158
  * Get headers from message as string
 
 
159
  */
160
+ private function headers(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message) : string
161
  {
162
  $result = '';
163
  foreach ($message->getHeaders() as $name => $values) {
vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
+
5
+ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
+ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
7
+ interface MessageFormatterInterface
8
+ {
9
+ /**
10
+ * Returns a formatted message string.
11
+ *
12
+ * @param RequestInterface $request Request that was sent
13
+ * @param ResponseInterface|null $response Response that was received
14
+ * @param \Throwable|null $error Exception that was received
15
+ */
16
+ public function format(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $error = null) : string;
17
+ }
vendor_prefix/guzzlehttp/guzzle/src/Middleware.php CHANGED
@@ -4,8 +4,9 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\RejectedPromise;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
 
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Log\LoggerInterface;
11
  /**
@@ -21,10 +22,10 @@ final class Middleware
21
  *
22
  * @return callable Returns a function that accepts the next handler.
23
  */
24
- public static function cookies()
25
  {
26
- return function (callable $handler) {
27
- return function ($request, array $options) use($handler) {
28
  if (empty($options['cookies'])) {
29
  return $handler($request, $options);
30
  } elseif (!$options['cookies'] instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface) {
@@ -32,7 +33,7 @@ final class Middleware
32
  }
33
  $cookieJar = $options['cookies'];
34
  $request = $cookieJar->withCookieHeader($request);
35
- return $handler($request, $options)->then(function ($response) use($cookieJar, $request) {
36
  $cookieJar->extractCookies($request, $response);
37
  return $response;
38
  });
@@ -43,21 +44,23 @@ final class Middleware
43
  * Middleware that throws exceptions for 4xx or 5xx responses when the
44
  * "http_error" request option is set to true.
45
  *
46
- * @return callable Returns a function that accepts the next handler.
 
 
47
  */
48
- public static function httpErrors()
49
  {
50
- return function (callable $handler) {
51
- return function ($request, array $options) use($handler) {
52
  if (empty($options['http_errors'])) {
53
  return $handler($request, $options);
54
  }
55
- return $handler($request, $options)->then(function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($request) {
56
  $code = $response->getStatusCode();
57
  if ($code < 400) {
58
  return $response;
59
  }
60
- throw \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::create($request, $response);
61
  });
62
  };
63
  };
@@ -65,24 +68,25 @@ final class Middleware
65
  /**
66
  * Middleware that pushes history data to an ArrayAccess container.
67
  *
68
- * @param array|\ArrayAccess $container Container to hold the history (by reference).
 
 
69
  *
70
- * @return callable Returns a function that accepts the next handler.
71
  * @throws \InvalidArgumentException if container is not an array or ArrayAccess.
72
  */
73
- public static function history(&$container)
74
  {
75
  if (!\is_array($container) && !$container instanceof \ArrayAccess) {
76
  throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess');
77
  }
78
- return function (callable $handler) use(&$container) {
79
- return function ($request, array $options) use($handler, &$container) {
80
- return $handler($request, $options)->then(function ($value) use($request, &$container, $options) {
81
  $container[] = ['request' => $request, 'response' => $value, 'error' => null, 'options' => $options];
82
  return $value;
83
- }, function ($reason) use($request, &$container, $options) {
84
  $container[] = ['request' => $request, 'response' => null, 'error' => $reason, 'options' => $options];
85
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
86
  });
87
  };
88
  };
@@ -100,10 +104,10 @@ final class Middleware
100
  *
101
  * @return callable Returns a function that accepts the next handler.
102
  */
103
- public static function tap(callable $before = null, callable $after = null)
104
  {
105
- return function (callable $handler) use($before, $after) {
106
- return function ($request, array $options) use($handler, $before, $after) {
107
  if ($before) {
108
  $before($request, $options);
109
  }
@@ -120,9 +124,9 @@ final class Middleware
120
  *
121
  * @return callable Returns a function that accepts the next handler.
122
  */
123
- public static function redirect()
124
  {
125
- return function (callable $handler) {
126
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware($handler);
127
  };
128
  }
@@ -141,9 +145,9 @@ final class Middleware
141
  *
142
  * @return callable Returns a function that accepts the next handler.
143
  */
144
- public static function retry(callable $decider, callable $delay = null)
145
  {
146
- return function (callable $handler) use($decider, $delay) {
147
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RetryMiddleware($decider, $handler, $delay);
148
  };
149
  }
@@ -151,25 +155,31 @@ final class Middleware
151
  * Middleware that logs requests, responses, and errors using a message
152
  * formatter.
153
  *
154
- * @param LoggerInterface $logger Logs messages.
155
- * @param MessageFormatter $formatter Formatter used to create message strings.
156
- * @param string $logLevel Level at which to log requests.
 
 
157
  *
158
  * @return callable Returns a function that accepts the next handler.
159
  */
160
- public static function log(\PYS_PRO_GLOBAL\Psr\Log\LoggerInterface $logger, \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatter $formatter, $logLevel = 'info')
161
  {
162
- return function (callable $handler) use($logger, $formatter, $logLevel) {
163
- return function ($request, array $options) use($handler, $logger, $formatter, $logLevel) {
164
- return $handler($request, $options)->then(function ($response) use($logger, $request, $formatter, $logLevel) {
 
 
 
 
165
  $message = $formatter->format($request, $response);
166
  $logger->log($logLevel, $message);
167
  return $response;
168
- }, function ($reason) use($logger, $request, $formatter) {
169
  $response = $reason instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $reason->getResponse() : null;
170
- $message = $formatter->format($request, $response, $reason);
171
- $logger->notice($message);
172
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
173
  });
174
  };
175
  };
@@ -177,12 +187,10 @@ final class Middleware
177
  /**
178
  * This middleware adds a default content-type if possible, a default
179
  * content-length or transfer-encoding header, and the expect header.
180
- *
181
- * @return callable
182
  */
183
- public static function prepareBody()
184
  {
185
- return function (callable $handler) {
186
  return new \PYS_PRO_GLOBAL\GuzzleHttp\PrepareBodyMiddleware($handler);
187
  };
188
  }
@@ -192,12 +200,11 @@ final class Middleware
192
  *
193
  * @param callable $fn Function that accepts a RequestInterface and returns
194
  * a RequestInterface.
195
- * @return callable
196
  */
197
- public static function mapRequest(callable $fn)
198
  {
199
- return function (callable $handler) use($fn) {
200
- return function ($request, array $options) use($handler, $fn) {
201
  return $handler($fn($request), $options);
202
  };
203
  };
@@ -208,12 +215,11 @@ final class Middleware
208
  *
209
  * @param callable $fn Function that accepts a ResponseInterface and
210
  * returns a ResponseInterface.
211
- * @return callable
212
  */
213
- public static function mapResponse(callable $fn)
214
  {
215
- return function (callable $handler) use($fn) {
216
- return function ($request, array $options) use($handler, $fn) {
217
  return $handler($request, $options)->then($fn);
218
  };
219
  };
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
9
+ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
11
  use PYS_PRO_GLOBAL\Psr\Log\LoggerInterface;
12
  /**
22
  *
23
  * @return callable Returns a function that accepts the next handler.
24
  */
25
+ public static function cookies() : callable
26
  {
27
+ return static function (callable $handler) : callable {
28
+ return static function ($request, array $options) use($handler) {
29
  if (empty($options['cookies'])) {
30
  return $handler($request, $options);
31
  } elseif (!$options['cookies'] instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface) {
33
  }
34
  $cookieJar = $options['cookies'];
35
  $request = $cookieJar->withCookieHeader($request);
36
+ return $handler($request, $options)->then(static function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($cookieJar, $request) : ResponseInterface {
37
  $cookieJar->extractCookies($request, $response);
38
  return $response;
39
  });
44
  * Middleware that throws exceptions for 4xx or 5xx responses when the
45
  * "http_error" request option is set to true.
46
  *
47
+ * @param BodySummarizerInterface|null $bodySummarizer The body summarizer to use in exception messages.
48
+ *
49
+ * @return callable(callable): callable Returns a function that accepts the next handler.
50
  */
51
+ public static function httpErrors(\PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface $bodySummarizer = null) : callable
52
  {
53
+ return static function (callable $handler) use($bodySummarizer) : callable {
54
+ return static function ($request, array $options) use($handler, $bodySummarizer) {
55
  if (empty($options['http_errors'])) {
56
  return $handler($request, $options);
57
  }
58
+ return $handler($request, $options)->then(static function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($request, $bodySummarizer) {
59
  $code = $response->getStatusCode();
60
  if ($code < 400) {
61
  return $response;
62
  }
63
+ throw \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::create($request, $response, null, [], $bodySummarizer);
64
  });
65
  };
66
  };
68
  /**
69
  * Middleware that pushes history data to an ArrayAccess container.
70
  *
71
+ * @param array|\ArrayAccess<int, array> $container Container to hold the history (by reference).
72
+ *
73
+ * @return callable(callable): callable Returns a function that accepts the next handler.
74
  *
 
75
  * @throws \InvalidArgumentException if container is not an array or ArrayAccess.
76
  */
77
+ public static function history(&$container) : callable
78
  {
79
  if (!\is_array($container) && !$container instanceof \ArrayAccess) {
80
  throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess');
81
  }
82
+ return static function (callable $handler) use(&$container) : callable {
83
+ return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, &$container) {
84
+ return $handler($request, $options)->then(static function ($value) use($request, &$container, $options) {
85
  $container[] = ['request' => $request, 'response' => $value, 'error' => null, 'options' => $options];
86
  return $value;
87
+ }, static function ($reason) use($request, &$container, $options) {
88
  $container[] = ['request' => $request, 'response' => null, 'error' => $reason, 'options' => $options];
89
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
90
  });
91
  };
92
  };
104
  *
105
  * @return callable Returns a function that accepts the next handler.
106
  */
107
+ public static function tap(callable $before = null, callable $after = null) : callable
108
  {
109
+ return static function (callable $handler) use($before, $after) : callable {
110
+ return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, $before, $after) {
111
  if ($before) {
112
  $before($request, $options);
113
  }
124
  *
125
  * @return callable Returns a function that accepts the next handler.
126
  */
127
+ public static function redirect() : callable
128
  {
129
+ return static function (callable $handler) : RedirectMiddleware {
130
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware($handler);
131
  };
132
  }
145
  *
146
  * @return callable Returns a function that accepts the next handler.
147
  */
148
+ public static function retry(callable $decider, callable $delay = null) : callable
149
  {
150
+ return static function (callable $handler) use($decider, $delay) : RetryMiddleware {
151
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RetryMiddleware($decider, $handler, $delay);
152
  };
153
  }
155
  * Middleware that logs requests, responses, and errors using a message
156
  * formatter.
157
  *
158
+ * @phpstan-param \Psr\Log\LogLevel::* $logLevel Level at which to log requests.
159
+ *
160
+ * @param LoggerInterface $logger Logs messages.
161
+ * @param MessageFormatterInterface|MessageFormatter $formatter Formatter used to create message strings.
162
+ * @param string $logLevel Level at which to log requests.
163
  *
164
  * @return callable Returns a function that accepts the next handler.
165
  */
166
+ public static function log(\PYS_PRO_GLOBAL\Psr\Log\LoggerInterface $logger, $formatter, string $logLevel = 'info') : callable
167
  {
168
+ // To be compatible with Guzzle 7.1.x we need to allow users to pass a MessageFormatter
169
+ if (!$formatter instanceof \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatter && !$formatter instanceof \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInterface) {
170
+ throw new \LogicException(\sprintf('Argument 2 to %s::log() must be of type %s', self::class, \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInterface::class));
171
+ }
172
+ return static function (callable $handler) use($logger, $formatter, $logLevel) : callable {
173
+ return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) use($handler, $logger, $formatter, $logLevel) {
174
+ return $handler($request, $options)->then(static function ($response) use($logger, $request, $formatter, $logLevel) : ResponseInterface {
175
  $message = $formatter->format($request, $response);
176
  $logger->log($logLevel, $message);
177
  return $response;
178
+ }, static function ($reason) use($logger, $request, $formatter) : PromiseInterface {
179
  $response = $reason instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $reason->getResponse() : null;
180
+ $message = $formatter->format($request, $response, \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::exceptionFor($reason));
181
+ $logger->error($message);
182
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
183
  });
184
  };
185
  };
187
  /**
188
  * This middleware adds a default content-type if possible, a default
189
  * content-length or transfer-encoding header, and the expect header.
 
 
190
  */
191
+ public static function prepareBody() : callable
192
  {
193
+ return static function (callable $handler) : PrepareBodyMiddleware {
194
  return new \PYS_PRO_GLOBAL\GuzzleHttp\PrepareBodyMiddleware($handler);
195
  };
196
  }
200
  *
201
  * @param callable $fn Function that accepts a RequestInterface and returns
202
  * a RequestInterface.
 
203
  */
204
+ public static function mapRequest(callable $fn) : callable
205
  {
206
+ return static function (callable $handler) use($fn) : callable {
207
+ return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, $fn) {
208
  return $handler($fn($request), $options);
209
  };
210
  };
215
  *
216
  * @param callable $fn Function that accepts a ResponseInterface and
217
  * returns a ResponseInterface.
 
218
  */
219
+ public static function mapResponse(callable $fn) : callable
220
  {
221
+ return static function (callable $handler) use($fn) : callable {
222
+ return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, $fn) {
223
  return $handler($request, $options)->then($fn);
224
  };
225
  };
vendor_prefix/guzzlehttp/guzzle/src/Pool.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\EachPromise;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface;
@@ -16,27 +17,28 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
16
  * When a function is yielded by the iterator, the function is provided the
17
  * "request_options" array that should be merged on top of any existing
18
  * options, and the function MUST then return a wait-able promise.
 
 
19
  */
20
  class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
21
  {
22
- /** @var EachPromise */
 
 
23
  private $each;
24
  /**
25
  * @param ClientInterface $client Client used to send the requests.
26
  * @param array|\Iterator $requests Requests or functions that return
27
  * requests to send concurrently.
28
  * @param array $config Associative array of options
29
- * - concurrency: (int) Maximum number of requests to send concurrently
30
- * - options: Array of request options to apply to each request.
31
- * - fulfilled: (callable) Function to invoke when a request completes.
32
- * - rejected: (callable) Function to invoke when a request is rejected.
33
  */
34
  public function __construct(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $config = [])
35
  {
36
- // Backwards compatibility.
37
- if (isset($config['pool_size'])) {
38
- $config['concurrency'] = $config['pool_size'];
39
- } elseif (!isset($config['concurrency'])) {
40
  $config['concurrency'] = 25;
41
  }
42
  if (isset($config['options'])) {
@@ -45,15 +47,15 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
45
  } else {
46
  $opts = [];
47
  }
48
- $iterable = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\iter_for($requests);
49
- $requests = function () use($iterable, $client, $opts) {
50
  foreach ($iterable as $key => $rfn) {
51
  if ($rfn instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface) {
52
  (yield $key => $client->sendAsync($rfn, $opts));
53
  } elseif (\is_callable($rfn)) {
54
  (yield $key => $rfn($opts));
55
  } else {
56
- throw new \InvalidArgumentException('Each value yielded by ' . 'the iterator must be a Psr7\\Http\\Message\\RequestInterface ' . 'or a callable that returns a promise that fulfills ' . 'with a Psr7\\Message\\Http\\ResponseInterface object.');
57
  }
58
  }
59
  };
@@ -61,10 +63,8 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
61
  }
62
  /**
63
  * Get promise
64
- *
65
- * @return PromiseInterface
66
  */
67
- public function promise()
68
  {
69
  return $this->each->promise();
70
  }
@@ -79,13 +79,14 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
79
  * @param ClientInterface $client Client used to send the requests
80
  * @param array|\Iterator $requests Requests to send concurrently.
81
  * @param array $options Passes through the options available in
82
- * {@see GuzzleHttp\Pool::__construct}
83
  *
84
  * @return array Returns an array containing the response or an exception
85
  * in the same order that the requests were sent.
 
86
  * @throws \InvalidArgumentException if the event format is incorrect.
87
  */
88
- public static function batch(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $options = [])
89
  {
90
  $res = [];
91
  self::cmpCallback($options, 'fulfilled', $res);
@@ -97,18 +98,16 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
97
  }
98
  /**
99
  * Execute callback(s)
100
- *
101
- * @return void
102
  */
103
- private static function cmpCallback(array &$options, $name, array &$results)
104
  {
105
  if (!isset($options[$name])) {
106
- $options[$name] = function ($v, $k) use(&$results) {
107
  $results[$k] = $v;
108
  };
109
  } else {
110
  $currentFn = $options[$name];
111
- $options[$name] = function ($v, $k) use(&$results, $currentFn) {
112
  $currentFn($v, $k);
113
  $results[$k] = $v;
114
  };
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\EachPromise;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface;
17
  * When a function is yielded by the iterator, the function is provided the
18
  * "request_options" array that should be merged on top of any existing
19
  * options, and the function MUST then return a wait-able promise.
20
+ *
21
+ * @final
22
  */
23
  class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
24
  {
25
+ /**
26
+ * @var EachPromise
27
+ */
28
  private $each;
29
  /**
30
  * @param ClientInterface $client Client used to send the requests.
31
  * @param array|\Iterator $requests Requests or functions that return
32
  * requests to send concurrently.
33
  * @param array $config Associative array of options
34
+ * - concurrency: (int) Maximum number of requests to send concurrently
35
+ * - options: Array of request options to apply to each request.
36
+ * - fulfilled: (callable) Function to invoke when a request completes.
37
+ * - rejected: (callable) Function to invoke when a request is rejected.
38
  */
39
  public function __construct(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $config = [])
40
  {
41
+ if (!isset($config['concurrency'])) {
 
 
 
42
  $config['concurrency'] = 25;
43
  }
44
  if (isset($config['options'])) {
47
  } else {
48
  $opts = [];
49
  }
50
+ $iterable = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::iterFor($requests);
51
+ $requests = static function () use($iterable, $client, $opts) {
52
  foreach ($iterable as $key => $rfn) {
53
  if ($rfn instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface) {
54
  (yield $key => $client->sendAsync($rfn, $opts));
55
  } elseif (\is_callable($rfn)) {
56
  (yield $key => $rfn($opts));
57
  } else {
58
+ throw new \InvalidArgumentException('Each value yielded by the iterator must be a Psr7\\Http\\Message\\RequestInterface or a callable that returns a promise that fulfills with a Psr7\\Message\\Http\\ResponseInterface object.');
59
  }
60
  }
61
  };
63
  }
64
  /**
65
  * Get promise
 
 
66
  */
67
+ public function promise() : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
68
  {
69
  return $this->each->promise();
70
  }
79
  * @param ClientInterface $client Client used to send the requests
80
  * @param array|\Iterator $requests Requests to send concurrently.
81
  * @param array $options Passes through the options available in
82
+ * {@see \GuzzleHttp\Pool::__construct}
83
  *
84
  * @return array Returns an array containing the response or an exception
85
  * in the same order that the requests were sent.
86
+ *
87
  * @throws \InvalidArgumentException if the event format is incorrect.
88
  */
89
+ public static function batch(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $options = []) : array
90
  {
91
  $res = [];
92
  self::cmpCallback($options, 'fulfilled', $res);
98
  }
99
  /**
100
  * Execute callback(s)
 
 
101
  */
102
+ private static function cmpCallback(array &$options, string $name, array &$results) : void
103
  {
104
  if (!isset($options[$name])) {
105
+ $options[$name] = static function ($v, $k) use(&$results) {
106
  $results[$k] = $v;
107
  };
108
  } else {
109
  $currentFn = $options[$name];
110
+ $options[$name] = static function ($v, $k) use(&$results, $currentFn) {
111
  $currentFn($v, $k);
112
  $results[$k] = $v;
113
  };
vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php CHANGED
@@ -3,30 +3,27 @@
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
- use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  /**
9
  * Prepares requests that contain a body, adding the Content-Length,
10
  * Content-Type, and Expect headers.
 
 
11
  */
12
  class PrepareBodyMiddleware
13
  {
14
- /** @var callable */
 
 
15
  private $nextHandler;
16
  /**
17
- * @param callable $nextHandler Next handler to invoke.
18
  */
19
  public function __construct(callable $nextHandler)
20
  {
21
  $this->nextHandler = $nextHandler;
22
  }
23
- /**
24
- * @param RequestInterface $request
25
- * @param array $options
26
- *
27
- * @return PromiseInterface
28
- */
29
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
30
  {
31
  $fn = $this->nextHandler;
32
  // Don't do anything if the request has no body.
@@ -37,7 +34,7 @@ class PrepareBodyMiddleware
37
  // Add a default content-type if possible.
38
  if (!$request->hasHeader('Content-Type')) {
39
  if ($uri = $request->getBody()->getMetadata('uri')) {
40
- if ($type = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\mimetype_from_filename($uri)) {
41
  $modify['set_headers']['Content-Type'] = $type;
42
  }
43
  }
@@ -53,20 +50,18 @@ class PrepareBodyMiddleware
53
  }
54
  // Add the expect header if needed.
55
  $this->addExpectHeader($request, $options, $modify);
56
- return $fn(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify), $options);
57
  }
58
  /**
59
  * Add expect header
60
- *
61
- * @return void
62
  */
63
- private function addExpectHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$modify)
64
  {
65
  // Determine if the Expect header should be used
66
  if ($request->hasHeader('Expect')) {
67
  return;
68
  }
69
- $expect = isset($options['expect']) ? $options['expect'] : null;
70
  // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0
71
  if ($expect === \false || $request->getProtocolVersion() < 1.1) {
72
  return;
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * Prepares requests that contain a body, adding the Content-Length,
9
  * Content-Type, and Expect headers.
10
+ *
11
+ * @final
12
  */
13
  class PrepareBodyMiddleware
14
  {
15
+ /**
16
+ * @var callable(RequestInterface, array): PromiseInterface
17
+ */
18
  private $nextHandler;
19
  /**
20
+ * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke.
21
  */
22
  public function __construct(callable $nextHandler)
23
  {
24
  $this->nextHandler = $nextHandler;
25
  }
26
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
 
 
 
27
  {
28
  $fn = $this->nextHandler;
29
  // Don't do anything if the request has no body.
34
  // Add a default content-type if possible.
35
  if (!$request->hasHeader('Content-Type')) {
36
  if ($uri = $request->getBody()->getMetadata('uri')) {
37
+ if (\is_string($uri) && ($type = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\MimeType::fromFilename($uri))) {
38
  $modify['set_headers']['Content-Type'] = $type;
39
  }
40
  }
50
  }
51
  // Add the expect header if needed.
52
  $this->addExpectHeader($request, $options, $modify);
53
+ return $fn(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify), $options);
54
  }
55
  /**
56
  * Add expect header
 
 
57
  */
58
+ private function addExpectHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$modify) : void
59
  {
60
  // Determine if the Expect header should be used
61
  if ($request->hasHeader('Expect')) {
62
  return;
63
  }
64
+ $expect = $options['expect'] ?? null;
65
  // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0
66
  if ($expect === \false || $request->getProtocolVersion() < 1.1) {
67
  return;
vendor_prefix/guzzlehttp/guzzle/src/RedirectMiddleware.php CHANGED
@@ -5,7 +5,6 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp;
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\BadResponseException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
@@ -14,28 +13,29 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
14
  *
15
  * Apply this middleware like other middleware using
16
  * {@see \GuzzleHttp\Middleware::redirect()}.
 
 
17
  */
18
  class RedirectMiddleware
19
  {
20
- const HISTORY_HEADER = 'X-Guzzle-Redirect-History';
21
- const STATUS_HISTORY_HEADER = 'X-Guzzle-Redirect-Status-History';
 
 
 
22
  public static $defaultSettings = ['max' => 5, 'protocols' => ['http', 'https'], 'strict' => \false, 'referer' => \false, 'track_redirects' => \false];
23
- /** @var callable */
 
 
24
  private $nextHandler;
25
  /**
26
- * @param callable $nextHandler Next handler to invoke.
27
  */
28
  public function __construct(callable $nextHandler)
29
  {
30
  $this->nextHandler = $nextHandler;
31
  }
32
- /**
33
- * @param RequestInterface $request
34
- * @param array $options
35
- *
36
- * @return PromiseInterface
37
- */
38
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
39
  {
40
  $fn = $this->nextHandler;
41
  if (empty($options['allow_redirects'])) {
@@ -57,23 +57,18 @@ class RedirectMiddleware
57
  });
58
  }
59
  /**
60
- * @param RequestInterface $request
61
- * @param array $options
62
- * @param ResponseInterface $response
63
- *
64
  * @return ResponseInterface|PromiseInterface
65
  */
66
  public function checkRedirect(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
67
  {
68
- if (\substr($response->getStatusCode(), 0, 1) != '3' || !$response->hasHeader('Location')) {
69
  return $response;
70
  }
71
- $this->guardMax($request, $options);
72
  $nextRequest = $this->modifyRequest($request, $options, $response);
73
  if (isset($options['allow_redirects']['on_redirect'])) {
74
- \call_user_func($options['allow_redirects']['on_redirect'], $request, $response, $nextRequest->getUri());
75
  }
76
- /** @var PromiseInterface|ResponseInterface $promise */
77
  $promise = $this($nextRequest, $options);
78
  // Add headers to be able to track history of redirects.
79
  if (!empty($options['allow_redirects']['track_redirects'])) {
@@ -83,46 +78,35 @@ class RedirectMiddleware
83
  }
84
  /**
85
  * Enable tracking on promise.
86
- *
87
- * @return PromiseInterface
88
  */
89
- private function withTracking(\PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface $promise, $uri, $statusCode)
90
  {
91
- return $promise->then(function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($uri, $statusCode) {
92
  // Note that we are pushing to the front of the list as this
93
  // would be an earlier response than what is currently present
94
  // in the history header.
95
  $historyHeader = $response->getHeader(self::HISTORY_HEADER);
96
  $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER);
97
  \array_unshift($historyHeader, $uri);
98
- \array_unshift($statusHeader, $statusCode);
99
  return $response->withHeader(self::HISTORY_HEADER, $historyHeader)->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader);
100
  });
101
  }
102
  /**
103
  * Check for too many redirects
104
  *
105
- * @return void
106
- *
107
  * @throws TooManyRedirectsException Too many redirects.
108
  */
109
- private function guardMax(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options)
110
  {
111
- $current = isset($options['__redirect_count']) ? $options['__redirect_count'] : 0;
112
  $options['__redirect_count'] = $current + 1;
113
  $max = $options['allow_redirects']['max'];
114
  if ($options['__redirect_count'] > $max) {
115
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException("Will not follow more than {$max} redirects", $request);
116
  }
117
  }
118
- /**
119
- * @param RequestInterface $request
120
- * @param array $options
121
- * @param ResponseInterface $response
122
- *
123
- * @return RequestInterface
124
- */
125
- public function modifyRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
126
  {
127
  // Request modifications to apply.
128
  $modify = [];
@@ -132,7 +116,9 @@ class RedirectMiddleware
132
  // would do.
133
  $statusCode = $response->getStatusCode();
134
  if ($statusCode == 303 || $statusCode <= 302 && !$options['allow_redirects']['strict']) {
135
- $modify['method'] = 'GET';
 
 
136
  $modify['body'] = '';
137
  }
138
  $uri = $this->redirectUri($request, $response, $protocols);
@@ -141,7 +127,7 @@ class RedirectMiddleware
141
  $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::idnUriConvert($uri, $idnOptions);
142
  }
143
  $modify['uri'] = $uri;
144
- \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\rewind_body($request);
145
  // Add the Referer header if it is told to do so and only
146
  // add the header if we are not redirecting from https to http.
147
  if ($options['allow_redirects']['referer'] && $modify['uri']->getScheme() === $request->getUri()->getScheme()) {
@@ -154,18 +140,12 @@ class RedirectMiddleware
154
  if ($request->getUri()->getHost() !== $modify['uri']->getHost()) {
155
  $modify['remove_headers'][] = 'Authorization';
156
  }
157
- return \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify);
158
  }
159
  /**
160
  * Set the appropriate URL on the request based on the location header
161
- *
162
- * @param RequestInterface $request
163
- * @param ResponseInterface $response
164
- * @param array $protocols
165
- *
166
- * @return UriInterface
167
  */
168
- private function redirectUri(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, array $protocols)
169
  {
170
  $location = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve($request->getUri(), new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Uri($response->getHeaderLine('Location')));
171
  // Ensure that the redirect URI is allowed based on the protocols.
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\BadResponseException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
13
  *
14
  * Apply this middleware like other middleware using
15
  * {@see \GuzzleHttp\Middleware::redirect()}.
16
+ *
17
+ * @final
18
  */
19
  class RedirectMiddleware
20
  {
21
+ public const HISTORY_HEADER = 'X-Guzzle-Redirect-History';
22
+ public const STATUS_HISTORY_HEADER = 'X-Guzzle-Redirect-Status-History';
23
+ /**
24
+ * @var array
25
+ */
26
  public static $defaultSettings = ['max' => 5, 'protocols' => ['http', 'https'], 'strict' => \false, 'referer' => \false, 'track_redirects' => \false];
27
+ /**
28
+ * @var callable(RequestInterface, array): PromiseInterface
29
+ */
30
  private $nextHandler;
31
  /**
32
+ * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke.
33
  */
34
  public function __construct(callable $nextHandler)
35
  {
36
  $this->nextHandler = $nextHandler;
37
  }
38
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
 
 
 
39
  {
40
  $fn = $this->nextHandler;
41
  if (empty($options['allow_redirects'])) {
57
  });
58
  }
59
  /**
 
 
 
 
60
  * @return ResponseInterface|PromiseInterface
61
  */
62
  public function checkRedirect(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
63
  {
64
+ if (\strpos((string) $response->getStatusCode(), '3') !== 0 || !$response->hasHeader('Location')) {
65
  return $response;
66
  }
67
+ $this->guardMax($request, $response, $options);
68
  $nextRequest = $this->modifyRequest($request, $options, $response);
69
  if (isset($options['allow_redirects']['on_redirect'])) {
70
+ $options['allow_redirects']['on_redirect']($request, $response, $nextRequest->getUri());
71
  }
 
72
  $promise = $this($nextRequest, $options);
73
  // Add headers to be able to track history of redirects.
74
  if (!empty($options['allow_redirects']['track_redirects'])) {
78
  }
79
  /**
80
  * Enable tracking on promise.
 
 
81
  */
82
+ private function withTracking(\PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface $promise, string $uri, int $statusCode) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
83
  {
84
+ return $promise->then(static function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($uri, $statusCode) {
85
  // Note that we are pushing to the front of the list as this
86
  // would be an earlier response than what is currently present
87
  // in the history header.
88
  $historyHeader = $response->getHeader(self::HISTORY_HEADER);
89
  $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER);
90
  \array_unshift($historyHeader, $uri);
91
+ \array_unshift($statusHeader, (string) $statusCode);
92
  return $response->withHeader(self::HISTORY_HEADER, $historyHeader)->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader);
93
  });
94
  }
95
  /**
96
  * Check for too many redirects
97
  *
 
 
98
  * @throws TooManyRedirectsException Too many redirects.
99
  */
100
+ private function guardMax(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, array &$options) : void
101
  {
102
+ $current = $options['__redirect_count'] ?? 0;
103
  $options['__redirect_count'] = $current + 1;
104
  $max = $options['allow_redirects']['max'];
105
  if ($options['__redirect_count'] > $max) {
106
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException("Will not follow more than {$max} redirects", $request, $response);
107
  }
108
  }
109
+ public function modifyRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
 
 
 
 
 
 
 
110
  {
111
  // Request modifications to apply.
112
  $modify = [];
116
  // would do.
117
  $statusCode = $response->getStatusCode();
118
  if ($statusCode == 303 || $statusCode <= 302 && !$options['allow_redirects']['strict']) {
119
+ $safeMethods = ['GET', 'HEAD', 'OPTIONS'];
120
+ $requestMethod = $request->getMethod();
121
+ $modify['method'] = \in_array($requestMethod, $safeMethods) ? $requestMethod : 'GET';
122
  $modify['body'] = '';
123
  }
124
  $uri = $this->redirectUri($request, $response, $protocols);
127
  $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::idnUriConvert($uri, $idnOptions);
128
  }
129
  $modify['uri'] = $uri;
130
+ \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::rewindBody($request);
131
  // Add the Referer header if it is told to do so and only
132
  // add the header if we are not redirecting from https to http.
133
  if ($options['allow_redirects']['referer'] && $modify['uri']->getScheme() === $request->getUri()->getScheme()) {
140
  if ($request->getUri()->getHost() !== $modify['uri']->getHost()) {
141
  $modify['remove_headers'][] = 'Authorization';
142
  }
143
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify);
144
  }
145
  /**
146
  * Set the appropriate URL on the request based on the location header
 
 
 
 
 
 
147
  */
148
+ private function redirectUri(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, array $protocols) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
149
  {
150
  $location = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve($request->getUri(), new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Uri($response->getHeaderLine('Location')));
151
  // Ensure that the redirect URI is allowed based on the protocols.
vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php CHANGED
@@ -32,7 +32,7 @@ final class RequestOptions
32
  * response that was received, and the effective URI. Any return value
33
  * from the on_redirect function is ignored.
34
  */
35
- const ALLOW_REDIRECTS = 'allow_redirects';
36
  /**
37
  * auth: (array) Pass an array of HTTP authentication parameters to use
38
  * with the request. The array must contain the username in index [0],
@@ -40,12 +40,12 @@ final class RequestOptions
40
  * authentication type in index [2]. Pass null to disable authentication
41
  * for a request.
42
  */
43
- const AUTH = 'auth';
44
  /**
45
  * body: (resource|string|null|int|float|StreamInterface|callable|\Iterator)
46
  * Body to send in the request.
47
  */
48
- const BODY = 'body';
49
  /**
50
  * cert: (string|array) Set to a string to specify the path to a file
51
  * containing a PEM formatted SSL client side certificate. If a password
@@ -53,37 +53,37 @@ final class RequestOptions
53
  * file in the first array element followed by the certificate password
54
  * in the second array element.
55
  */
56
- const CERT = 'cert';
57
  /**
58
  * cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface, default=false)
59
  * Specifies whether or not cookies are used in a request or what cookie
60
  * jar to use or what cookies to send. This option only works if your
61
  * handler has the `cookie` middleware. Valid values are `false` and
62
- * an instance of {@see GuzzleHttp\Cookie\CookieJarInterface}.
63
  */
64
- const COOKIES = 'cookies';
65
  /**
66
  * connect_timeout: (float, default=0) Float describing the number of
67
  * seconds to wait while trying to connect to a server. Use 0 to wait
68
  * indefinitely (the default behavior).
69
  */
70
- const CONNECT_TIMEOUT = 'connect_timeout';
71
  /**
72
  * debug: (bool|resource) Set to true or set to a PHP stream returned by
73
  * fopen() enable debug output with the HTTP handler used to send a
74
  * request.
75
  */
76
- const DEBUG = 'debug';
77
  /**
78
  * decode_content: (bool, default=true) Specify whether or not
79
  * Content-Encoding responses (gzip, deflate, etc.) are automatically
80
  * decoded.
81
  */
82
- const DECODE_CONTENT = 'decode_content';
83
  /**
84
  * delay: (int) The amount of time to delay before sending in milliseconds.
85
  */
86
- const DELAY = 'delay';
87
  /**
88
  * expect: (bool|integer) Controls the behavior of the
89
  * "Expect: 100-Continue" header.
@@ -100,39 +100,39 @@ final class RequestOptions
100
  * size of the body of a request is greater than 1 MB and a request is
101
  * using HTTP/1.1.
102
  */
103
- const EXPECT = 'expect';
104
  /**
105
  * form_params: (array) Associative array of form field names to values
106
  * where each value is a string or array of strings. Sets the Content-Type
107
  * header to application/x-www-form-urlencoded when no Content-Type header
108
  * is already present.
109
  */
110
- const FORM_PARAMS = 'form_params';
111
  /**
112
  * headers: (array) Associative array of HTTP headers. Each value MUST be
113
  * a string or array of strings.
114
  */
115
- const HEADERS = 'headers';
116
  /**
117
  * http_errors: (bool, default=true) Set to false to disable exceptions
118
  * when a non- successful HTTP response is received. By default,
119
  * exceptions will be thrown for 4xx and 5xx responses. This option only
120
  * works if your handler has the `httpErrors` middleware.
121
  */
122
- const HTTP_ERRORS = 'http_errors';
123
  /**
124
  * idn: (bool|int, default=true) A combination of IDNA_* constants for
125
  * idn_to_ascii() PHP's function (see "options" parameter). Set to false to
126
  * disable IDN support completely, or to true to use the default
127
  * configuration (IDNA_DEFAULT constant).
128
  */
129
- const IDN_CONVERSION = 'idn_conversion';
130
  /**
131
  * json: (mixed) Adds JSON data to a request. The provided value is JSON
132
  * encoded and a Content-Type header of application/json will be added to
133
  * the request if no Content-Type header is already present.
134
  */
135
- const JSON = 'json';
136
  /**
137
  * multipart: (array) Array of associative arrays, each containing a
138
  * required "name" key mapping to the form field, name, a required
@@ -142,13 +142,13 @@ final class RequestOptions
142
  * the part. If no "filename" key is present, then no "filename" attribute
143
  * will be added to the part.
144
  */
145
- const MULTIPART = 'multipart';
146
  /**
147
  * on_headers: (callable) A callable that is invoked when the HTTP headers
148
  * of the response have been received but the body has not yet begun to
149
  * download.
150
  */
151
- const ON_HEADERS = 'on_headers';
152
  /**
153
  * on_stats: (callable) allows you to get access to transfer statistics of
154
  * a request and access the lower level transfer details of the handler
@@ -158,7 +158,7 @@ final class RequestOptions
158
  * the error encountered. Included in the data is the total amount of time
159
  * taken to send the request.
160
  */
161
- const ON_STATS = 'on_stats';
162
  /**
163
  * progress: (callable) Defines a function to invoke when transfer
164
  * progress is made. The function accepts the following positional
@@ -166,45 +166,45 @@ final class RequestOptions
166
  * number of bytes downloaded so far, the number of bytes expected to be
167
  * uploaded, the number of bytes uploaded so far.
168
  */
169
- const PROGRESS = 'progress';
170
  /**
171
  * proxy: (string|array) Pass a string to specify an HTTP proxy, or an
172
  * array to specify different proxies for different protocols (where the
173
  * key is the protocol and the value is a proxy string).
174
  */
175
- const PROXY = 'proxy';
176
  /**
177
  * query: (array|string) Associative array of query string values to add
178
  * to the request. This option uses PHP's http_build_query() to create
179
  * the string representation. Pass a string value if you need more
180
  * control than what this method provides
181
  */
182
- const QUERY = 'query';
183
  /**
184
  * sink: (resource|string|StreamInterface) Where the data of the
185
  * response is written to. Defaults to a PHP temp stream. Providing a
186
  * string will write data to a file by the given name.
187
  */
188
- const SINK = 'sink';
189
  /**
190
  * synchronous: (bool) Set to true to inform HTTP handlers that you intend
191
  * on waiting on the response. This can be useful for optimizations. Note
192
  * that a promise is still returned if you are using one of the async
193
  * client methods.
194
  */
195
- const SYNCHRONOUS = 'synchronous';
196
  /**
197
  * ssl_key: (array|string) Specify the path to a file containing a private
198
  * SSL key in PEM format. If a password is required, then set to an array
199
  * containing the path to the SSL key in the first array element followed
200
  * by the password required for the certificate in the second element.
201
  */
202
- const SSL_KEY = 'ssl_key';
203
  /**
204
  * stream: Set to true to attempt to stream a response rather than
205
  * download it all up-front.
206
  */
207
- const STREAM = 'stream';
208
  /**
209
  * verify: (bool|string, default=true) Describes the SSL certificate
210
  * verification behavior of a request. Set to true to enable SSL
@@ -213,23 +213,23 @@ final class RequestOptions
213
  * is insecure!). Set to a string to provide the path to a CA bundle on
214
  * disk to enable verification using a custom certificate.
215
  */
216
- const VERIFY = 'verify';
217
  /**
218
  * timeout: (float, default=0) Float describing the timeout of the
219
  * request in seconds. Use 0 to wait indefinitely (the default behavior).
220
  */
221
- const TIMEOUT = 'timeout';
222
  /**
223
  * read_timeout: (float, default=default_socket_timeout ini setting) Float describing
224
  * the body read timeout, for stream requests.
225
  */
226
- const READ_TIMEOUT = 'read_timeout';
227
  /**
228
  * version: (float) Specifies the HTTP protocol version to attempt to use.
229
  */
230
- const VERSION = 'version';
231
  /**
232
  * force_ip_resolve: (bool) Force client to use only ipv4 or ipv6 protocol
233
  */
234
- const FORCE_IP_RESOLVE = 'force_ip_resolve';
235
  }
32
  * response that was received, and the effective URI. Any return value
33
  * from the on_redirect function is ignored.
34
  */
35
+ public const ALLOW_REDIRECTS = 'allow_redirects';
36
  /**
37
  * auth: (array) Pass an array of HTTP authentication parameters to use
38
  * with the request. The array must contain the username in index [0],
40
  * authentication type in index [2]. Pass null to disable authentication
41
  * for a request.
42
  */
43
+ public const AUTH = 'auth';
44
  /**
45
  * body: (resource|string|null|int|float|StreamInterface|callable|\Iterator)
46
  * Body to send in the request.
47
  */
48
+ public const BODY = 'body';
49
  /**
50
  * cert: (string|array) Set to a string to specify the path to a file
51
  * containing a PEM formatted SSL client side certificate. If a password
53
  * file in the first array element followed by the certificate password
54
  * in the second array element.
55
  */
56
+ public const CERT = 'cert';
57
  /**
58
  * cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface, default=false)
59
  * Specifies whether or not cookies are used in a request or what cookie
60
  * jar to use or what cookies to send. This option only works if your
61
  * handler has the `cookie` middleware. Valid values are `false` and
62
+ * an instance of {@see \GuzzleHttp\Cookie\CookieJarInterface}.
63
  */
64
+ public const COOKIES = 'cookies';
65
  /**
66
  * connect_timeout: (float, default=0) Float describing the number of
67
  * seconds to wait while trying to connect to a server. Use 0 to wait
68
  * indefinitely (the default behavior).
69
  */
70
+ public const CONNECT_TIMEOUT = 'connect_timeout';
71
  /**
72
  * debug: (bool|resource) Set to true or set to a PHP stream returned by
73
  * fopen() enable debug output with the HTTP handler used to send a
74
  * request.
75
  */
76
+ public const DEBUG = 'debug';
77
  /**
78
  * decode_content: (bool, default=true) Specify whether or not
79
  * Content-Encoding responses (gzip, deflate, etc.) are automatically
80
  * decoded.
81
  */
82
+ public const DECODE_CONTENT = 'decode_content';
83
  /**
84
  * delay: (int) The amount of time to delay before sending in milliseconds.
85
  */
86
+ public const DELAY = 'delay';
87
  /**
88
  * expect: (bool|integer) Controls the behavior of the
89
  * "Expect: 100-Continue" header.
100
  * size of the body of a request is greater than 1 MB and a request is
101
  * using HTTP/1.1.
102
  */
103
+ public const EXPECT = 'expect';
104
  /**
105
  * form_params: (array) Associative array of form field names to values
106
  * where each value is a string or array of strings. Sets the Content-Type
107
  * header to application/x-www-form-urlencoded when no Content-Type header
108
  * is already present.
109
  */
110
+ public const FORM_PARAMS = 'form_params';
111
  /**
112
  * headers: (array) Associative array of HTTP headers. Each value MUST be
113
  * a string or array of strings.
114
  */
115
+ public const HEADERS = 'headers';
116
  /**
117
  * http_errors: (bool, default=true) Set to false to disable exceptions
118
  * when a non- successful HTTP response is received. By default,
119
  * exceptions will be thrown for 4xx and 5xx responses. This option only
120
  * works if your handler has the `httpErrors` middleware.
121
  */
122
+ public const HTTP_ERRORS = 'http_errors';
123
  /**
124
  * idn: (bool|int, default=true) A combination of IDNA_* constants for
125
  * idn_to_ascii() PHP's function (see "options" parameter). Set to false to
126
  * disable IDN support completely, or to true to use the default
127
  * configuration (IDNA_DEFAULT constant).
128
  */
129
+ public const IDN_CONVERSION = 'idn_conversion';
130
  /**
131
  * json: (mixed) Adds JSON data to a request. The provided value is JSON
132
  * encoded and a Content-Type header of application/json will be added to
133
  * the request if no Content-Type header is already present.
134
  */
135
+ public const JSON = 'json';
136
  /**
137
  * multipart: (array) Array of associative arrays, each containing a
138
  * required "name" key mapping to the form field, name, a required
142
  * the part. If no "filename" key is present, then no "filename" attribute
143
  * will be added to the part.
144
  */
145
+ public const MULTIPART = 'multipart';
146
  /**
147
  * on_headers: (callable) A callable that is invoked when the HTTP headers
148
  * of the response have been received but the body has not yet begun to
149
  * download.
150
  */
151
+ public const ON_HEADERS = 'on_headers';
152
  /**
153
  * on_stats: (callable) allows you to get access to transfer statistics of
154
  * a request and access the lower level transfer details of the handler
158
  * the error encountered. Included in the data is the total amount of time
159
  * taken to send the request.
160
  */
161
+ public const ON_STATS = 'on_stats';
162
  /**
163
  * progress: (callable) Defines a function to invoke when transfer
164
  * progress is made. The function accepts the following positional
166
  * number of bytes downloaded so far, the number of bytes expected to be
167
  * uploaded, the number of bytes uploaded so far.
168
  */
169
+ public const PROGRESS = 'progress';
170
  /**
171
  * proxy: (string|array) Pass a string to specify an HTTP proxy, or an
172
  * array to specify different proxies for different protocols (where the
173
  * key is the protocol and the value is a proxy string).
174
  */
175
+ public const PROXY = 'proxy';
176
  /**
177
  * query: (array|string) Associative array of query string values to add
178
  * to the request. This option uses PHP's http_build_query() to create
179
  * the string representation. Pass a string value if you need more
180
  * control than what this method provides
181
  */
182
+ public const QUERY = 'query';
183
  /**
184
  * sink: (resource|string|StreamInterface) Where the data of the
185
  * response is written to. Defaults to a PHP temp stream. Providing a
186
  * string will write data to a file by the given name.
187
  */
188
+ public const SINK = 'sink';
189
  /**
190
  * synchronous: (bool) Set to true to inform HTTP handlers that you intend
191
  * on waiting on the response. This can be useful for optimizations. Note
192
  * that a promise is still returned if you are using one of the async
193
  * client methods.
194
  */
195
+ public const SYNCHRONOUS = 'synchronous';
196
  /**
197
  * ssl_key: (array|string) Specify the path to a file containing a private
198
  * SSL key in PEM format. If a password is required, then set to an array
199
  * containing the path to the SSL key in the first array element followed
200
  * by the password required for the certificate in the second element.
201
  */
202
+ public const SSL_KEY = 'ssl_key';
203
  /**
204
  * stream: Set to true to attempt to stream a response rather than
205
  * download it all up-front.
206
  */
207
+ public const STREAM = 'stream';
208
  /**
209
  * verify: (bool|string, default=true) Describes the SSL certificate
210
  * verification behavior of a request. Set to true to enable SSL
213
  * is insecure!). Set to a string to provide the path to a CA bundle on
214
  * disk to enable verification using a custom certificate.
215
  */
216
+ public const VERIFY = 'verify';
217
  /**
218
  * timeout: (float, default=0) Float describing the timeout of the
219
  * request in seconds. Use 0 to wait indefinitely (the default behavior).
220
  */
221
+ public const TIMEOUT = 'timeout';
222
  /**
223
  * read_timeout: (float, default=default_socket_timeout ini setting) Float describing
224
  * the body read timeout, for stream requests.
225
  */
226
+ public const READ_TIMEOUT = 'read_timeout';
227
  /**
228
  * version: (float) Specifies the HTTP protocol version to attempt to use.
229
  */
230
+ public const VERSION = 'version';
231
  /**
232
  * force_ip_resolve: (bool) Force client to use only ipv4 or ipv6 protocol
233
  */
234
+ public const FORCE_IP_RESOLVE = 'force_ip_resolve';
235
  }
vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php CHANGED
@@ -2,32 +2,39 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\RejectedPromise;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  /**
11
  * Middleware that retries requests based on the boolean result of
12
  * invoking the provided "decider" function.
 
 
13
  */
14
  class RetryMiddleware
15
  {
16
- /** @var callable */
 
 
17
  private $nextHandler;
18
- /** @var callable */
 
 
19
  private $decider;
20
- /** @var callable */
 
 
21
  private $delay;
22
  /**
23
- * @param callable $decider Function that accepts the number of retries,
24
- * a request, [response], and [exception] and
25
- * returns true if the request is to be
26
- * retried.
27
- * @param callable $nextHandler Next handler to invoke.
28
- * @param callable $delay Function that accepts the number of retries
29
- * and [response] and returns the number of
30
- * milliseconds to delay.
31
  */
32
  public function __construct(callable $decider, callable $nextHandler, callable $delay = null)
33
  {
@@ -38,21 +45,13 @@ class RetryMiddleware
38
  /**
39
  * Default exponential backoff delay function.
40
  *
41
- * @param int $retries
42
- *
43
  * @return int milliseconds.
44
  */
45
- public static function exponentialDelay($retries)
46
  {
47
  return (int) \pow(2, $retries - 1) * 1000;
48
  }
49
- /**
50
- * @param RequestInterface $request
51
- * @param array $options
52
- *
53
- * @return PromiseInterface
54
- */
55
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
56
  {
57
  if (!isset($options['retries'])) {
58
  $options['retries'] = 0;
@@ -62,38 +61,31 @@ class RetryMiddleware
62
  }
63
  /**
64
  * Execute fulfilled closure
65
- *
66
- * @return mixed
67
  */
68
- private function onFulfilled(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $req, array $options)
69
  {
70
- return function ($value) use($req, $options) {
71
- if (!\call_user_func($this->decider, $options['retries'], $req, $value, null)) {
72
  return $value;
73
  }
74
- return $this->doRetry($req, $options, $value);
75
  };
76
  }
77
  /**
78
  * Execute rejected closure
79
- *
80
- * @return callable
81
  */
82
- private function onRejected(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $req, array $options)
83
  {
84
  return function ($reason) use($req, $options) {
85
- if (!\call_user_func($this->decider, $options['retries'], $req, null, $reason)) {
86
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
87
  }
88
  return $this->doRetry($req, $options);
89
  };
90
  }
91
- /**
92
- * @return self
93
- */
94
- private function doRetry(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null)
95
  {
96
- $options['delay'] = \call_user_func($this->delay, ++$options['retries'], $response);
97
  return $this($request, $options);
98
  }
99
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
 
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  /**
10
  * Middleware that retries requests based on the boolean result of
11
  * invoking the provided "decider" function.
12
+ *
13
+ * @final
14
  */
15
  class RetryMiddleware
16
  {
17
+ /**
18
+ * @var callable(RequestInterface, array): PromiseInterface
19
+ */
20
  private $nextHandler;
21
+ /**
22
+ * @var callable
23
+ */
24
  private $decider;
25
+ /**
26
+ * @var callable(int)
27
+ */
28
  private $delay;
29
  /**
30
+ * @param callable $decider Function that accepts the number of retries,
31
+ * a request, [response], and [exception] and
32
+ * returns true if the request is to be
33
+ * retried.
34
+ * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke.
35
+ * @param null|callable(int): int $delay Function that accepts the number of retries
36
+ * and returns the number of
37
+ * milliseconds to delay.
38
  */
39
  public function __construct(callable $decider, callable $nextHandler, callable $delay = null)
40
  {
45
  /**
46
  * Default exponential backoff delay function.
47
  *
 
 
48
  * @return int milliseconds.
49
  */
50
+ public static function exponentialDelay(int $retries) : int
51
  {
52
  return (int) \pow(2, $retries - 1) * 1000;
53
  }
54
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
 
 
 
55
  {
56
  if (!isset($options['retries'])) {
57
  $options['retries'] = 0;
61
  }
62
  /**
63
  * Execute fulfilled closure
 
 
64
  */
65
+ private function onFulfilled(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : callable
66
  {
67
+ return function ($value) use($request, $options) {
68
+ if (!($this->decider)($options['retries'], $request, $value, null)) {
69
  return $value;
70
  }
71
+ return $this->doRetry($request, $options, $value);
72
  };
73
  }
74
  /**
75
  * Execute rejected closure
 
 
76
  */
77
+ private function onRejected(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $req, array $options) : callable
78
  {
79
  return function ($reason) use($req, $options) {
80
+ if (!($this->decider)($options['retries'], $req, null, $reason)) {
81
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
82
  }
83
  return $this->doRetry($req, $options);
84
  };
85
  }
86
+ private function doRetry(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
87
  {
88
+ $options['delay'] = ($this->delay)(++$options['retries'], $response);
89
  return $this($request, $options);
90
  }
91
  }
vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php CHANGED
@@ -11,10 +11,25 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
11
  */
12
  final class TransferStats
13
  {
 
 
 
14
  private $request;
 
 
 
15
  private $response;
 
 
 
16
  private $transferTime;
 
 
 
17
  private $handlerStats;
 
 
 
18
  private $handlerErrorData;
19
  /**
20
  * @param RequestInterface $request Request that was sent.
@@ -23,7 +38,7 @@ final class TransferStats
23
  * @param mixed $handlerErrorData Handler error data.
24
  * @param array $handlerStats Handler specific stats.
25
  */
26
- public function __construct(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $transferTime = null, $handlerErrorData = null, $handlerStats = [])
27
  {
28
  $this->request = $request;
29
  $this->response = $response;
@@ -31,28 +46,21 @@ final class TransferStats
31
  $this->handlerErrorData = $handlerErrorData;
32
  $this->handlerStats = $handlerStats;
33
  }
34
- /**
35
- * @return RequestInterface
36
- */
37
- public function getRequest()
38
  {
39
  return $this->request;
40
  }
41
  /**
42
  * Returns the response that was received (if any).
43
- *
44
- * @return ResponseInterface|null
45
  */
46
- public function getResponse()
47
  {
48
  return $this->response;
49
  }
50
  /**
51
  * Returns true if a response was received.
52
- *
53
- * @return bool
54
  */
55
- public function hasResponse()
56
  {
57
  return $this->response !== null;
58
  }
@@ -71,10 +79,8 @@ final class TransferStats
71
  }
72
  /**
73
  * Get the effective URI the request was sent to.
74
- *
75
- * @return UriInterface
76
  */
77
- public function getEffectiveUri()
78
  {
79
  return $this->request->getUri();
80
  }
@@ -83,16 +89,14 @@ final class TransferStats
83
  *
84
  * @return float|null Time in seconds.
85
  */
86
- public function getTransferTime()
87
  {
88
  return $this->transferTime;
89
  }
90
  /**
91
  * Gets an array of all of the handler specific transfer data.
92
- *
93
- * @return array
94
  */
95
- public function getHandlerStats()
96
  {
97
  return $this->handlerStats;
98
  }
@@ -103,7 +107,7 @@ final class TransferStats
103
  *
104
  * @return mixed|null
105
  */
106
- public function getHandlerStat($stat)
107
  {
108
  return isset($this->handlerStats[$stat]) ? $this->handlerStats[$stat] : null;
109
  }
11
  */
12
  final class TransferStats
13
  {
14
+ /**
15
+ * @var RequestInterface
16
+ */
17
  private $request;
18
+ /**
19
+ * @var ResponseInterface|null
20
+ */
21
  private $response;
22
+ /**
23
+ * @var float|null
24
+ */
25
  private $transferTime;
26
+ /**
27
+ * @var array
28
+ */
29
  private $handlerStats;
30
+ /**
31
+ * @var mixed|null
32
+ */
33
  private $handlerErrorData;
34
  /**
35
  * @param RequestInterface $request Request that was sent.
38
  * @param mixed $handlerErrorData Handler error data.
39
  * @param array $handlerStats Handler specific stats.
40
  */
41
+ public function __construct(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, ?float $transferTime = null, $handlerErrorData = null, array $handlerStats = [])
42
  {
43
  $this->request = $request;
44
  $this->response = $response;
46
  $this->handlerErrorData = $handlerErrorData;
47
  $this->handlerStats = $handlerStats;
48
  }
49
+ public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
 
 
 
50
  {
51
  return $this->request;
52
  }
53
  /**
54
  * Returns the response that was received (if any).
 
 
55
  */
56
+ public function getResponse() : ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
57
  {
58
  return $this->response;
59
  }
60
  /**
61
  * Returns true if a response was received.
 
 
62
  */
63
+ public function hasResponse() : bool
64
  {
65
  return $this->response !== null;
66
  }
79
  }
80
  /**
81
  * Get the effective URI the request was sent to.
 
 
82
  */
83
+ public function getEffectiveUri() : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
84
  {
85
  return $this->request->getUri();
86
  }
89
  *
90
  * @return float|null Time in seconds.
91
  */
92
+ public function getTransferTime() : ?float
93
  {
94
  return $this->transferTime;
95
  }
96
  /**
97
  * Gets an array of all of the handler specific transfer data.
 
 
98
  */
99
+ public function getHandlerStats() : array
100
  {
101
  return $this->handlerStats;
102
  }
107
  *
108
  * @return mixed|null
109
  */
110
+ public function getHandlerStat(string $stat)
111
  {
112
  return isset($this->handlerStats[$stat]) ? $this->handlerStats[$stat] : null;
113
  }
vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php DELETED
@@ -1,191 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
-
5
- /**
6
- * Expands URI templates. Userland implementation of PECL uri_template.
7
- *
8
- * @link http://tools.ietf.org/html/rfc6570
9
- */
10
- class UriTemplate
11
- {
12
- /** @var string URI template */
13
- private $template;
14
- /** @var array Variables to use in the template expansion */
15
- private $variables;
16
- /** @var array Hash for quick operator lookups */
17
- private static $operatorHash = ['' => ['prefix' => '', 'joiner' => ',', 'query' => \false], '+' => ['prefix' => '', 'joiner' => ',', 'query' => \false], '#' => ['prefix' => '#', 'joiner' => ',', 'query' => \false], '.' => ['prefix' => '.', 'joiner' => '.', 'query' => \false], '/' => ['prefix' => '/', 'joiner' => '/', 'query' => \false], ';' => ['prefix' => ';', 'joiner' => ';', 'query' => \true], '?' => ['prefix' => '?', 'joiner' => '&', 'query' => \true], '&' => ['prefix' => '&', 'joiner' => '&', 'query' => \true]];
18
- /** @var array Delimiters */
19
- private static $delims = [':', '/', '?', '#', '[', ']', '@', '!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '='];
20
- /** @var array Percent encoded delimiters */
21
- private static $delimsPct = ['%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', '%3B', '%3D'];
22
- public function expand($template, array $variables)
23
- {
24
- if (\false === \strpos($template, '{')) {
25
- return $template;
26
- }
27
- $this->template = $template;
28
- $this->variables = $variables;
29
- return \preg_replace_callback('/\\{([^\\}]+)\\}/', [$this, 'expandMatch'], $this->template);
30
- }
31
- /**
32
- * Parse an expression into parts
33
- *
34
- * @param string $expression Expression to parse
35
- *
36
- * @return array Returns an associative array of parts
37
- */
38
- private function parseExpression($expression)
39
- {
40
- $result = [];
41
- if (isset(self::$operatorHash[$expression[0]])) {
42
- $result['operator'] = $expression[0];
43
- $expression = \substr($expression, 1);
44
- } else {
45
- $result['operator'] = '';
46
- }
47
- foreach (\explode(',', $expression) as $value) {
48
- $value = \trim($value);
49
- $varspec = [];
50
- if ($colonPos = \strpos($value, ':')) {
51
- $varspec['value'] = \substr($value, 0, $colonPos);
52
- $varspec['modifier'] = ':';
53
- $varspec['position'] = (int) \substr($value, $colonPos + 1);
54
- } elseif (\substr($value, -1) === '*') {
55
- $varspec['modifier'] = '*';
56
- $varspec['value'] = \substr($value, 0, -1);
57
- } else {
58
- $varspec['value'] = (string) $value;
59
- $varspec['modifier'] = '';
60
- }
61
- $result['values'][] = $varspec;
62
- }
63
- return $result;
64
- }
65
- /**
66
- * Process an expansion
67
- *
68
- * @param array $matches Matches met in the preg_replace_callback
69
- *
70
- * @return string Returns the replacement string
71
- */
72
- private function expandMatch(array $matches)
73
- {
74
- static $rfc1738to3986 = ['+' => '%20', '%7e' => '~'];
75
- $replacements = [];
76
- $parsed = self::parseExpression($matches[1]);
77
- $prefix = self::$operatorHash[$parsed['operator']]['prefix'];
78
- $joiner = self::$operatorHash[$parsed['operator']]['joiner'];
79
- $useQuery = self::$operatorHash[$parsed['operator']]['query'];
80
- foreach ($parsed['values'] as $value) {
81
- if (!isset($this->variables[$value['value']])) {
82
- continue;
83
- }
84
- $variable = $this->variables[$value['value']];
85
- $actuallyUseQuery = $useQuery;
86
- $expanded = '';
87
- if (\is_array($variable)) {
88
- $isAssoc = $this->isAssoc($variable);
89
- $kvp = [];
90
- foreach ($variable as $key => $var) {
91
- if ($isAssoc) {
92
- $key = \rawurlencode($key);
93
- $isNestedArray = \is_array($var);
94
- } else {
95
- $isNestedArray = \false;
96
- }
97
- if (!$isNestedArray) {
98
- $var = \rawurlencode($var);
99
- if ($parsed['operator'] === '+' || $parsed['operator'] === '#') {
100
- $var = $this->decodeReserved($var);
101
- }
102
- }
103
- if ($value['modifier'] === '*') {
104
- if ($isAssoc) {
105
- if ($isNestedArray) {
106
- // Nested arrays must allow for deeply nested
107
- // structures.
108
- $var = \strtr(\http_build_query([$key => $var]), $rfc1738to3986);
109
- } else {
110
- $var = $key . '=' . $var;
111
- }
112
- } elseif ($key > 0 && $actuallyUseQuery) {
113
- $var = $value['value'] . '=' . $var;
114
- }
115
- }
116
- $kvp[$key] = $var;
117
- }
118
- if (empty($variable)) {
119
- $actuallyUseQuery = \false;
120
- } elseif ($value['modifier'] === '*') {
121
- $expanded = \implode($joiner, $kvp);
122
- if ($isAssoc) {
123
- // Don't prepend the value name when using the explode
124
- // modifier with an associative array.
125
- $actuallyUseQuery = \false;
126
- }
127
- } else {
128
- if ($isAssoc) {
129
- // When an associative array is encountered and the
130
- // explode modifier is not set, then the result must be
131
- // a comma separated list of keys followed by their
132
- // respective values.
133
- foreach ($kvp as $k => &$v) {
134
- $v = $k . ',' . $v;
135
- }
136
- }
137
- $expanded = \implode(',', $kvp);
138
- }
139
- } else {
140
- if ($value['modifier'] === ':') {
141
- $variable = \substr($variable, 0, $value['position']);
142
- }
143
- $expanded = \rawurlencode($variable);
144
- if ($parsed['operator'] === '+' || $parsed['operator'] === '#') {
145
- $expanded = $this->decodeReserved($expanded);
146
- }
147
- }
148
- if ($actuallyUseQuery) {
149
- if (!$expanded && $joiner !== '&') {
150
- $expanded = $value['value'];
151
- } else {
152
- $expanded = $value['value'] . '=' . $expanded;
153
- }
154
- }
155
- $replacements[] = $expanded;
156
- }
157
- $ret = \implode($joiner, $replacements);
158
- if ($ret && $prefix) {
159
- return $prefix . $ret;
160
- }
161
- return $ret;
162
- }
163
- /**
164
- * Determines if an array is associative.
165
- *
166
- * This makes the assumption that input arrays are sequences or hashes.
167
- * This assumption is a tradeoff for accuracy in favor of speed, but it
168
- * should work in almost every case where input is supplied for a URI
169
- * template.
170
- *
171
- * @param array $array Array to check
172
- *
173
- * @return bool
174
- */
175
- private function isAssoc(array $array)
176
- {
177
- return $array && \array_keys($array)[0] !== 0;
178
- }
179
- /**
180
- * Removes percent encoding on reserved characters (used with + and #
181
- * modifiers).
182
- *
183
- * @param string $string String to fix
184
- *
185
- * @return string
186
- */
187
- private function decodeReserved($string)
188
- {
189
- return \str_replace(self::$delimsPct, self::$delims, $string);
190
- }
191
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/guzzlehttp/guzzle/src/Utils.php CHANGED
@@ -3,37 +3,300 @@
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException;
 
 
 
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
7
- use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn;
8
  final class Utils
9
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  /**
11
  * Wrapper for the hrtime() or microtime() functions
12
  * (depending on the PHP version, one of the two is used)
13
  *
14
- * @return float|mixed UNIX timestamp
15
  *
16
  * @internal
17
  */
18
- public static function currentTime()
19
  {
20
- return \function_exists('hrtime') ? \hrtime(\true) / 1000000000.0 : \microtime(\true);
21
  }
22
  /**
23
- * @param int $options
24
- *
25
- * @return UriInterface
26
  * @throws InvalidArgumentException
27
  *
28
  * @internal
29
  */
30
- public static function idnUriConvert(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri, $options = 0)
31
  {
32
  if ($uri->getHost()) {
33
  $asciiHost = self::idnToAsci($uri->getHost(), $options, $info);
34
  if ($asciiHost === \false) {
35
- $errorBitSet = isset($info['errors']) ? $info['errors'] : 0;
36
- $errorConstants = \array_filter(\array_keys(\get_defined_constants()), function ($name) {
37
  return \substr($name, 0, 11) === 'IDNA_ERROR_';
38
  });
39
  $errors = [];
@@ -47,36 +310,35 @@ final class Utils
47
  $errorMessage .= ' (errors: ' . \implode(', ', $errors) . ')';
48
  }
49
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException($errorMessage);
50
- } else {
51
- if ($uri->getHost() !== $asciiHost) {
52
- // Replace URI only if the ASCII version is different
53
- $uri = $uri->withHost($asciiHost);
54
- }
55
  }
56
  }
57
  return $uri;
58
  }
59
  /**
60
- * @param string $domain
61
- * @param int $options
62
- * @param array $info
63
- *
64
- * @return string|false
65
  */
66
- private static function idnToAsci($domain, $options, &$info = [])
67
  {
68
- if (\preg_match('%^[ -~]+$%', $domain) === 1) {
69
- return $domain;
70
  }
71
- if (\extension_loaded('intl') && \defined('INTL_IDNA_VARIANT_UTS46')) {
72
- return \idn_to_ascii($domain, $options, \INTL_IDNA_VARIANT_UTS46, $info);
73
  }
74
- /*
75
- * The Idn class is marked as @internal. Verify that class and method exists.
76
- */
77
- if (\method_exists(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::class, 'idn_to_ascii')) {
78
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::idn_to_ascii($domain, $options, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::INTL_IDNA_VARIANT_UTS46, $info);
 
 
 
 
79
  }
80
- throw new \RuntimeException('ext-intl or symfony/polyfill-intl-idn not loaded or too old');
81
  }
82
  }
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException;
6
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy;
9
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
 
11
  final class Utils
12
  {
13
+ /**
14
+ * Debug function used to describe the provided value type and class.
15
+ *
16
+ * @param mixed $input
17
+ *
18
+ * @return string Returns a string containing the type of the variable and
19
+ * if a class is provided, the class name.
20
+ */
21
+ public static function describeType($input) : string
22
+ {
23
+ switch (\gettype($input)) {
24
+ case 'object':
25
+ return 'object(' . \get_class($input) . ')';
26
+ case 'array':
27
+ return 'array(' . \count($input) . ')';
28
+ default:
29
+ \ob_start();
30
+ \var_dump($input);
31
+ // normalize float vs double
32
+ /** @var string $varDumpContent */
33
+ $varDumpContent = \ob_get_clean();
34
+ return \str_replace('double(', 'float(', \rtrim($varDumpContent));
35
+ }
36
+ }
37
+ /**
38
+ * Parses an array of header lines into an associative array of headers.
39
+ *
40
+ * @param iterable $lines Header lines array of strings in the following
41
+ * format: "Name: Value"
42
+ */
43
+ public static function headersFromLines(iterable $lines) : array
44
+ {
45
+ $headers = [];
46
+ foreach ($lines as $line) {
47
+ $parts = \explode(':', $line, 2);
48
+ $headers[\trim($parts[0])][] = isset($parts[1]) ? \trim($parts[1]) : null;
49
+ }
50
+ return $headers;
51
+ }
52
+ /**
53
+ * Returns a debug stream based on the provided variable.
54
+ *
55
+ * @param mixed $value Optional value
56
+ *
57
+ * @return resource
58
+ */
59
+ public static function debugResource($value = null)
60
+ {
61
+ if (\is_resource($value)) {
62
+ return $value;
63
+ }
64
+ if (\defined('STDOUT')) {
65
+ return \STDOUT;
66
+ }
67
+ $resource = \fopen('php://output', 'w');
68
+ if (\false === $resource) {
69
+ throw new \RuntimeException('Can not open php output for writing to debug the resource.');
70
+ }
71
+ return $resource;
72
+ }
73
+ /**
74
+ * Chooses and creates a default handler to use based on the environment.
75
+ *
76
+ * The returned handler is not wrapped by any default middlewares.
77
+ *
78
+ * @throws \RuntimeException if no viable Handler is available.
79
+ *
80
+ * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
81
+ */
82
+ public static function chooseHandler() : callable
83
+ {
84
+ $handler = null;
85
+ if (\function_exists('curl_multi_exec') && \function_exists('curl_exec')) {
86
+ $handler = \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapSync(new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler(), new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler());
87
+ } elseif (\function_exists('curl_exec')) {
88
+ $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler();
89
+ } elseif (\function_exists('curl_multi_exec')) {
90
+ $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler();
91
+ }
92
+ if (\ini_get('allow_url_fopen')) {
93
+ $handler = $handler ? \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapStreaming($handler, new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler()) : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler();
94
+ } elseif (!$handler) {
95
+ throw new \RuntimeException('GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler.');
96
+ }
97
+ return $handler;
98
+ }
99
+ /**
100
+ * Get the default User-Agent string to use with Guzzle.
101
+ */
102
+ public static function defaultUserAgent() : string
103
+ {
104
+ return \sprintf('GuzzleHttp/%d', \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface::MAJOR_VERSION);
105
+ }
106
+ /**
107
+ * Returns the default cacert bundle for the current system.
108
+ *
109
+ * First, the openssl.cafile and curl.cainfo php.ini settings are checked.
110
+ * If those settings are not configured, then the common locations for
111
+ * bundles found on Red Hat, CentOS, Fedora, Ubuntu, Debian, FreeBSD, OS X
112
+ * and Windows are checked. If any of these file locations are found on
113
+ * disk, they will be utilized.
114
+ *
115
+ * Note: the result of this function is cached for subsequent calls.
116
+ *
117
+ * @throws \RuntimeException if no bundle can be found.
118
+ *
119
+ * @deprecated Utils::defaultCaBundle will be removed in guzzlehttp/guzzle:8.0. This method is not needed in PHP 5.6+.
120
+ */
121
+ public static function defaultCaBundle() : string
122
+ {
123
+ static $cached = null;
124
+ static $cafiles = [
125
+ // Red Hat, CentOS, Fedora (provided by the ca-certificates package)
126
+ '/etc/pki/tls/certs/ca-bundle.crt',
127
+ // Ubuntu, Debian (provided by the ca-certificates package)
128
+ '/etc/ssl/certs/ca-certificates.crt',
129
+ // FreeBSD (provided by the ca_root_nss package)
130
+ '/usr/local/share/certs/ca-root-nss.crt',
131
+ // SLES 12 (provided by the ca-certificates package)
132
+ '/var/lib/ca-certificates/ca-bundle.pem',
133
+ // OS X provided by homebrew (using the default path)
134
+ '/usr/local/etc/openssl/cert.pem',
135
+ // Google app engine
136
+ '/etc/ca-certificates.crt',
137
+ // Windows?
138
+ 'C:\\windows\\system32\\curl-ca-bundle.crt',
139
+ 'C:\\windows\\curl-ca-bundle.crt',
140
+ ];
141
+ if ($cached) {
142
+ return $cached;
143
+ }
144
+ if ($ca = \ini_get('openssl.cafile')) {
145
+ return $cached = $ca;
146
+ }
147
+ if ($ca = \ini_get('curl.cainfo')) {
148
+ return $cached = $ca;
149
+ }
150
+ foreach ($cafiles as $filename) {
151
+ if (\file_exists($filename)) {
152
+ return $cached = $filename;
153
+ }
154
+ }
155
+ throw new \RuntimeException(<<<EOT
156
+ No system CA bundle could be found in any of the the common system locations.
157
+ PHP versions earlier than 5.6 are not properly configured to use the system's
158
+ CA bundle by default. In order to verify peer certificates, you will need to
159
+ supply the path on disk to a certificate bundle to the 'verify' request
160
+ option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not
161
+ need a specific certificate bundle, then Mozilla provides a commonly used CA
162
+ bundle which can be downloaded here (provided by the maintainer of cURL):
163
+ https://curl.haxx.se/ca/cacert.pem. Once
164
+ you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP
165
+ ini setting to point to the path to the file, allowing you to omit the 'verify'
166
+ request option. See https://curl.haxx.se/docs/sslcerts.html for more
167
+ information.
168
+ EOT
169
+ );
170
+ }
171
+ /**
172
+ * Creates an associative array of lowercase header names to the actual
173
+ * header casing.
174
+ */
175
+ public static function normalizeHeaderKeys(array $headers) : array
176
+ {
177
+ $result = [];
178
+ foreach (\array_keys($headers) as $key) {
179
+ $result[\strtolower($key)] = $key;
180
+ }
181
+ return $result;
182
+ }
183
+ /**
184
+ * Returns true if the provided host matches any of the no proxy areas.
185
+ *
186
+ * This method will strip a port from the host if it is present. Each pattern
187
+ * can be matched with an exact match (e.g., "foo.com" == "foo.com") or a
188
+ * partial match: (e.g., "foo.com" == "baz.foo.com" and ".foo.com" ==
189
+ * "baz.foo.com", but ".foo.com" != "foo.com").
190
+ *
191
+ * Areas are matched in the following cases:
192
+ * 1. "*" (without quotes) always matches any hosts.
193
+ * 2. An exact match.
194
+ * 3. The area starts with "." and the area is the last part of the host. e.g.
195
+ * '.mit.edu' will match any host that ends with '.mit.edu'.
196
+ *
197
+ * @param string $host Host to check against the patterns.
198
+ * @param string[] $noProxyArray An array of host patterns.
199
+ *
200
+ * @throws InvalidArgumentException
201
+ */
202
+ public static function isHostInNoProxy(string $host, array $noProxyArray) : bool
203
+ {
204
+ if (\strlen($host) === 0) {
205
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('Empty host provided');
206
+ }
207
+ // Strip port if present.
208
+ if (\strpos($host, ':')) {
209
+ /** @var string[] $hostParts will never be false because of the checks above */
210
+ $hostParts = \explode($host, ':', 2);
211
+ $host = $hostParts[0];
212
+ }
213
+ foreach ($noProxyArray as $area) {
214
+ // Always match on wildcards.
215
+ if ($area === '*') {
216
+ return \true;
217
+ } elseif (empty($area)) {
218
+ // Don't match on empty values.
219
+ continue;
220
+ } elseif ($area === $host) {
221
+ // Exact matches.
222
+ return \true;
223
+ }
224
+ // Special match if the area when prefixed with ".". Remove any
225
+ // existing leading "." and add a new leading ".".
226
+ $area = '.' . \ltrim($area, '.');
227
+ if (\substr($host, -\strlen($area)) === $area) {
228
+ return \true;
229
+ }
230
+ }
231
+ return \false;
232
+ }
233
+ /**
234
+ * Wrapper for json_decode that throws when an error occurs.
235
+ *
236
+ * @param string $json JSON data to parse
237
+ * @param bool $assoc When true, returned objects will be converted
238
+ * into associative arrays.
239
+ * @param int $depth User specified recursion depth.
240
+ * @param int $options Bitmask of JSON decode options.
241
+ *
242
+ * @return object|array|string|int|float|bool|null
243
+ *
244
+ * @throws InvalidArgumentException if the JSON cannot be decoded.
245
+ *
246
+ * @link https://www.php.net/manual/en/function.json-decode.php
247
+ */
248
+ public static function jsonDecode(string $json, bool $assoc = \false, int $depth = 512, int $options = 0)
249
+ {
250
+ $data = \json_decode($json, $assoc, $depth, $options);
251
+ if (\JSON_ERROR_NONE !== \json_last_error()) {
252
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_decode error: ' . \json_last_error_msg());
253
+ }
254
+ return $data;
255
+ }
256
+ /**
257
+ * Wrapper for JSON encoding that throws when an error occurs.
258
+ *
259
+ * @param mixed $value The value being encoded
260
+ * @param int $options JSON encode option bitmask
261
+ * @param int $depth Set the maximum depth. Must be greater than zero.
262
+ *
263
+ * @throws InvalidArgumentException if the JSON cannot be encoded.
264
+ *
265
+ * @link https://www.php.net/manual/en/function.json-encode.php
266
+ */
267
+ public static function jsonEncode($value, int $options = 0, int $depth = 512) : string
268
+ {
269
+ $json = \json_encode($value, $options, $depth);
270
+ if (\JSON_ERROR_NONE !== \json_last_error()) {
271
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_encode error: ' . \json_last_error_msg());
272
+ }
273
+ /** @var string */
274
+ return $json;
275
+ }
276
  /**
277
  * Wrapper for the hrtime() or microtime() functions
278
  * (depending on the PHP version, one of the two is used)
279
  *
280
+ * @return float UNIX timestamp
281
  *
282
  * @internal
283
  */
284
+ public static function currentTime() : float
285
  {
286
+ return (float) \function_exists('hrtime') ? \hrtime(\true) / 1000000000.0 : \microtime(\true);
287
  }
288
  /**
 
 
 
289
  * @throws InvalidArgumentException
290
  *
291
  * @internal
292
  */
293
+ public static function idnUriConvert(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri, int $options = 0) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
294
  {
295
  if ($uri->getHost()) {
296
  $asciiHost = self::idnToAsci($uri->getHost(), $options, $info);
297
  if ($asciiHost === \false) {
298
+ $errorBitSet = $info['errors'] ?? 0;
299
+ $errorConstants = \array_filter(\array_keys(\get_defined_constants()), static function ($name) {
300
  return \substr($name, 0, 11) === 'IDNA_ERROR_';
301
  });
302
  $errors = [];
310
  $errorMessage .= ' (errors: ' . \implode(', ', $errors) . ')';
311
  }
312
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException($errorMessage);
313
+ }
314
+ if ($uri->getHost() !== $asciiHost) {
315
+ // Replace URI only if the ASCII version is different
316
+ $uri = $uri->withHost($asciiHost);
 
317
  }
318
  }
319
  return $uri;
320
  }
321
  /**
322
+ * @internal
 
 
 
 
323
  */
324
+ public static function getenv(string $name) : ?string
325
  {
326
+ if (isset($_SERVER[$name])) {
327
+ return (string) $_SERVER[$name];
328
  }
329
+ if (\PHP_SAPI === 'cli' && ($value = \getenv($name)) !== \false && $value !== null) {
330
+ return (string) $value;
331
  }
332
+ return null;
333
+ }
334
+ /**
335
+ * @return string|false
336
+ */
337
+ private static function idnToAsci(string $domain, int $options, ?array &$info = [])
338
+ {
339
+ if (\function_exists('idn_to_ascii') && \defined('INTL_IDNA_VARIANT_UTS46')) {
340
+ return \idn_to_ascii($domain, $options, \INTL_IDNA_VARIANT_UTS46, $info);
341
  }
342
+ throw new \Error('ext-idn or symfony/polyfill-intl-idn not loaded or too old');
343
  }
344
  }
vendor_prefix/guzzlehttp/guzzle/src/functions.php CHANGED
@@ -2,68 +2,32 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler;
6
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler;
9
- /**
10
- * Expands a URI template
11
- *
12
- * @param string $template URI template
13
- * @param array $variables Template variables
14
- *
15
- * @return string
16
- */
17
- function uri_template($template, array $variables)
18
- {
19
- if (\extension_loaded('uri_template')) {
20
- // @codeCoverageIgnoreStart
21
- return \PYS_PRO_GLOBAL\uri_template($template, $variables);
22
- // @codeCoverageIgnoreEnd
23
- }
24
- static $uriTemplate;
25
- if (!$uriTemplate) {
26
- $uriTemplate = new \PYS_PRO_GLOBAL\GuzzleHttp\UriTemplate();
27
- }
28
- return $uriTemplate->expand($template, $variables);
29
- }
30
  /**
31
  * Debug function used to describe the provided value type and class.
32
  *
33
- * @param mixed $input
 
34
  *
35
  * @return string Returns a string containing the type of the variable and
36
  * if a class is provided, the class name.
 
 
37
  */
38
- function describe_type($input)
39
  {
40
- switch (\gettype($input)) {
41
- case 'object':
42
- return 'object(' . \get_class($input) . ')';
43
- case 'array':
44
- return 'array(' . \count($input) . ')';
45
- default:
46
- \ob_start();
47
- \var_dump($input);
48
- // normalize float vs double
49
- return \str_replace('double(', 'float(', \rtrim(\ob_get_clean()));
50
- }
51
  }
52
  /**
53
  * Parses an array of header lines into an associative array of headers.
54
  *
55
  * @param iterable $lines Header lines array of strings in the following
56
- * format: "Name: Value"
57
- * @return array
 
58
  */
59
- function headers_from_lines($lines)
60
  {
61
- $headers = [];
62
- foreach ($lines as $line) {
63
- $parts = \explode(':', $line, 2);
64
- $headers[\trim($parts[0])][] = isset($parts[1]) ? \trim($parts[1]) : null;
65
- }
66
- return $headers;
67
  }
68
  /**
69
  * Returns a debug stream based on the provided variable.
@@ -71,57 +35,36 @@ function headers_from_lines($lines)
71
  * @param mixed $value Optional value
72
  *
73
  * @return resource
 
 
74
  */
75
  function debug_resource($value = null)
76
  {
77
- if (\is_resource($value)) {
78
- return $value;
79
- } elseif (\defined('STDOUT')) {
80
- return \STDOUT;
81
- }
82
- return \fopen('php://output', 'w');
83
  }
84
  /**
85
  * Chooses and creates a default handler to use based on the environment.
86
  *
87
  * The returned handler is not wrapped by any default middlewares.
88
  *
89
- * @return callable Returns the best handler for the given system.
90
  * @throws \RuntimeException if no viable Handler is available.
 
 
 
 
91
  */
92
- function choose_handler()
93
  {
94
- $handler = null;
95
- if (\function_exists('curl_multi_exec') && \function_exists('curl_exec')) {
96
- $handler = \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapSync(new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler(), new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler());
97
- } elseif (\function_exists('curl_exec')) {
98
- $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler();
99
- } elseif (\function_exists('curl_multi_exec')) {
100
- $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler();
101
- }
102
- if (\ini_get('allow_url_fopen')) {
103
- $handler = $handler ? \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapStreaming($handler, new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler()) : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler();
104
- } elseif (!$handler) {
105
- throw new \RuntimeException('GuzzleHttp requires cURL, the ' . 'allow_url_fopen ini setting, or a custom HTTP handler.');
106
- }
107
- return $handler;
108
  }
109
  /**
110
- * Get the default User-Agent string to use with Guzzle
111
  *
112
- * @return string
113
  */
114
- function default_user_agent()
115
  {
116
- static $defaultAgent = '';
117
- if (!$defaultAgent) {
118
- $defaultAgent = 'GuzzleHttp/' . \PYS_PRO_GLOBAL\GuzzleHttp\Client::VERSION;
119
- if (\extension_loaded('curl') && \function_exists('curl_version')) {
120
- $defaultAgent .= ' curl/' . \curl_version()['version'];
121
- }
122
- $defaultAgent .= ' PHP/' . \PHP_VERSION;
123
- }
124
- return $defaultAgent;
125
  }
126
  /**
127
  * Returns the default cacert bundle for the current system.
@@ -134,74 +77,23 @@ function default_user_agent()
134
  *
135
  * Note: the result of this function is cached for subsequent calls.
136
  *
137
- * @return string
138
  * @throws \RuntimeException if no bundle can be found.
 
 
139
  */
140
- function default_ca_bundle()
141
  {
142
- static $cached = null;
143
- static $cafiles = [
144
- // Red Hat, CentOS, Fedora (provided by the ca-certificates package)
145
- '/etc/pki/tls/certs/ca-bundle.crt',
146
- // Ubuntu, Debian (provided by the ca-certificates package)
147
- '/etc/ssl/certs/ca-certificates.crt',
148
- // FreeBSD (provided by the ca_root_nss package)
149
- '/usr/local/share/certs/ca-root-nss.crt',
150
- // SLES 12 (provided by the ca-certificates package)
151
- '/var/lib/ca-certificates/ca-bundle.pem',
152
- // OS X provided by homebrew (using the default path)
153
- '/usr/local/etc/openssl/cert.pem',
154
- // Google app engine
155
- '/etc/ca-certificates.crt',
156
- // Windows?
157
- 'C:\\windows\\system32\\curl-ca-bundle.crt',
158
- 'C:\\windows\\curl-ca-bundle.crt',
159
- ];
160
- if ($cached) {
161
- return $cached;
162
- }
163
- if ($ca = \ini_get('openssl.cafile')) {
164
- return $cached = $ca;
165
- }
166
- if ($ca = \ini_get('curl.cainfo')) {
167
- return $cached = $ca;
168
- }
169
- foreach ($cafiles as $filename) {
170
- if (\file_exists($filename)) {
171
- return $cached = $filename;
172
- }
173
- }
174
- throw new \RuntimeException(<<<EOT
175
- No system CA bundle could be found in any of the the common system locations.
176
- PHP versions earlier than 5.6 are not properly configured to use the system's
177
- CA bundle by default. In order to verify peer certificates, you will need to
178
- supply the path on disk to a certificate bundle to the 'verify' request
179
- option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not
180
- need a specific certificate bundle, then Mozilla provides a commonly used CA
181
- bundle which can be downloaded here (provided by the maintainer of cURL):
182
- https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once
183
- you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP
184
- ini setting to point to the path to the file, allowing you to omit the 'verify'
185
- request option. See http://curl.haxx.se/docs/sslcerts.html for more
186
- information.
187
- EOT
188
- );
189
  }
190
  /**
191
  * Creates an associative array of lowercase header names to the actual
192
  * header casing.
193
  *
194
- * @param array $headers
195
- *
196
- * @return array
197
  */
198
- function normalize_header_keys(array $headers)
199
  {
200
- $result = [];
201
- foreach (\array_keys($headers) as $key) {
202
- $result[\strtolower($key)] = $key;
203
- }
204
- return $result;
205
  }
206
  /**
207
  * Returns true if the provided host matches any of the no proxy areas.
@@ -217,78 +109,50 @@ function normalize_header_keys(array $headers)
217
  * 3. The area starts with "." and the area is the last part of the host. e.g.
218
  * '.mit.edu' will match any host that ends with '.mit.edu'.
219
  *
220
- * @param string $host Host to check against the patterns.
221
- * @param array $noProxyArray An array of host patterns.
222
  *
223
- * @return bool
 
 
224
  */
225
- function is_host_in_noproxy($host, array $noProxyArray)
226
  {
227
- if (\strlen($host) === 0) {
228
- throw new \InvalidArgumentException('Empty host provided');
229
- }
230
- // Strip port if present.
231
- if (\strpos($host, ':')) {
232
- $host = \explode($host, ':', 2)[0];
233
- }
234
- foreach ($noProxyArray as $area) {
235
- // Always match on wildcards.
236
- if ($area === '*') {
237
- return \true;
238
- } elseif (empty($area)) {
239
- // Don't match on empty values.
240
- continue;
241
- } elseif ($area === $host) {
242
- // Exact matches.
243
- return \true;
244
- } else {
245
- // Special match if the area when prefixed with ".". Remove any
246
- // existing leading "." and add a new leading ".".
247
- $area = '.' . \ltrim($area, '.');
248
- if (\substr($host, -\strlen($area)) === $area) {
249
- return \true;
250
- }
251
- }
252
- }
253
- return \false;
254
  }
255
  /**
256
  * Wrapper for json_decode that throws when an error occurs.
257
  *
258
  * @param string $json JSON data to parse
259
- * @param bool $assoc When true, returned objects will be converted
260
  * into associative arrays.
261
  * @param int $depth User specified recursion depth.
262
  * @param int $options Bitmask of JSON decode options.
263
  *
264
- * @return mixed
 
265
  * @throws Exception\InvalidArgumentException if the JSON cannot be decoded.
266
- * @link http://www.php.net/manual/en/function.json-decode.php
 
 
267
  */
268
- function json_decode($json, $assoc = \false, $depth = 512, $options = 0)
269
  {
270
- $data = \json_decode($json, $assoc, $depth, $options);
271
- if (\JSON_ERROR_NONE !== \json_last_error()) {
272
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_decode error: ' . \json_last_error_msg());
273
- }
274
- return $data;
275
  }
276
  /**
277
  * Wrapper for JSON encoding that throws when an error occurs.
278
  *
279
  * @param mixed $value The value being encoded
280
- * @param int $options JSON encode option bitmask
281
- * @param int $depth Set the maximum depth. Must be greater than zero.
282
  *
283
- * @return string
284
  * @throws Exception\InvalidArgumentException if the JSON cannot be encoded.
285
- * @link http://www.php.net/manual/en/function.json-encode.php
 
 
286
  */
287
- function json_encode($value, $options = 0, $depth = 512)
288
  {
289
- $json = \json_encode($value, $options, $depth);
290
- if (\JSON_ERROR_NONE !== \json_last_error()) {
291
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_encode error: ' . \json_last_error_msg());
292
- }
293
- return $json;
294
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  /**
6
  * Debug function used to describe the provided value type and class.
7
  *
8
+ * @param mixed $input Any type of variable to describe the type of. This
9
+ * parameter misses a typehint because of that.
10
  *
11
  * @return string Returns a string containing the type of the variable and
12
  * if a class is provided, the class name.
13
+ *
14
+ * @deprecated describe_type will be removed in guzzlehttp/guzzle:8.0. Use Utils::describeType instead.
15
  */
16
+ function describe_type($input) : string
17
  {
18
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::describeType($input);
 
 
 
 
 
 
 
 
 
 
19
  }
20
  /**
21
  * Parses an array of header lines into an associative array of headers.
22
  *
23
  * @param iterable $lines Header lines array of strings in the following
24
+ * format: "Name: Value"
25
+ *
26
+ * @deprecated headers_from_lines will be removed in guzzlehttp/guzzle:8.0. Use Utils::headersFromLines instead.
27
  */
28
+ function headers_from_lines(iterable $lines) : array
29
  {
30
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::headersFromLines($lines);
 
 
 
 
 
31
  }
32
  /**
33
  * Returns a debug stream based on the provided variable.
35
  * @param mixed $value Optional value
36
  *
37
  * @return resource
38
+ *
39
+ * @deprecated debug_resource will be removed in guzzlehttp/guzzle:8.0. Use Utils::debugResource instead.
40
  */
41
  function debug_resource($value = null)
42
  {
43
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::debugResource($value);
 
 
 
 
 
44
  }
45
  /**
46
  * Chooses and creates a default handler to use based on the environment.
47
  *
48
  * The returned handler is not wrapped by any default middlewares.
49
  *
 
50
  * @throws \RuntimeException if no viable Handler is available.
51
+ *
52
+ * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
53
+ *
54
+ * @deprecated choose_handler will be removed in guzzlehttp/guzzle:8.0. Use Utils::chooseHandler instead.
55
  */
56
+ function choose_handler() : callable
57
  {
58
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::chooseHandler();
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
60
  /**
61
+ * Get the default User-Agent string to use with Guzzle.
62
  *
63
+ * @deprecated default_user_agent will be removed in guzzlehttp/guzzle:8.0. Use Utils::defaultUserAgent instead.
64
  */
65
+ function default_user_agent() : string
66
  {
67
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultUserAgent();
 
 
 
 
 
 
 
 
68
  }
69
  /**
70
  * Returns the default cacert bundle for the current system.
77
  *
78
  * Note: the result of this function is cached for subsequent calls.
79
  *
 
80
  * @throws \RuntimeException if no bundle can be found.
81
+ *
82
+ * @deprecated default_ca_bundle will be removed in guzzlehttp/guzzle:8.0. This function is not needed in PHP 5.6+.
83
  */
84
+ function default_ca_bundle() : string
85
  {
86
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultCaBundle();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  }
88
  /**
89
  * Creates an associative array of lowercase header names to the actual
90
  * header casing.
91
  *
92
+ * @deprecated normalize_header_keys will be removed in guzzlehttp/guzzle:8.0. Use Utils::normalizeHeaderKeys instead.
 
 
93
  */
94
+ function normalize_header_keys(array $headers) : array
95
  {
96
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::normalizeHeaderKeys($headers);
 
 
 
 
97
  }
98
  /**
99
  * Returns true if the provided host matches any of the no proxy areas.
109
  * 3. The area starts with "." and the area is the last part of the host. e.g.
110
  * '.mit.edu' will match any host that ends with '.mit.edu'.
111
  *
112
+ * @param string $host Host to check against the patterns.
113
+ * @param string[] $noProxyArray An array of host patterns.
114
  *
115
+ * @throws Exception\InvalidArgumentException
116
+ *
117
+ * @deprecated is_host_in_noproxy will be removed in guzzlehttp/guzzle:8.0. Use Utils::isHostInNoProxy instead.
118
  */
119
+ function is_host_in_noproxy(string $host, array $noProxyArray) : bool
120
  {
121
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::isHostInNoProxy($host, $noProxyArray);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  }
123
  /**
124
  * Wrapper for json_decode that throws when an error occurs.
125
  *
126
  * @param string $json JSON data to parse
127
+ * @param bool $assoc When true, returned objects will be converted
128
  * into associative arrays.
129
  * @param int $depth User specified recursion depth.
130
  * @param int $options Bitmask of JSON decode options.
131
  *
132
+ * @return object|array|string|int|float|bool|null
133
+ *
134
  * @throws Exception\InvalidArgumentException if the JSON cannot be decoded.
135
+ *
136
+ * @link https://www.php.net/manual/en/function.json-decode.php
137
+ * @deprecated json_decode will be removed in guzzlehttp/guzzle:8.0. Use Utils::jsonDecode instead.
138
  */
139
+ function json_decode(string $json, bool $assoc = \false, int $depth = 512, int $options = 0)
140
  {
141
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonDecode($json, $assoc, $depth, $options);
 
 
 
 
142
  }
143
  /**
144
  * Wrapper for JSON encoding that throws when an error occurs.
145
  *
146
  * @param mixed $value The value being encoded
147
+ * @param int $options JSON encode option bitmask
148
+ * @param int $depth Set the maximum depth. Must be greater than zero.
149
  *
 
150
  * @throws Exception\InvalidArgumentException if the JSON cannot be encoded.
151
+ *
152
+ * @link https://www.php.net/manual/en/function.json-encode.php
153
+ * @deprecated json_encode will be removed in guzzlehttp/guzzle:8.0. Use Utils::jsonEncode instead.
154
  */
155
+ function json_encode($value, int $options = 0, int $depth = 512) : string
156
  {
157
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonEncode($value, $options, $depth);
 
 
 
 
158
  }
vendor_prefix/guzzlehttp/guzzle/src/functions_include.php CHANGED
@@ -3,6 +3,6 @@
3
  namespace PYS_PRO_GLOBAL;
4
 
5
  // Don't redefine the functions if included multiple times.
6
- if (!\function_exists('PYS_PRO_GLOBAL\\GuzzleHttp\\uri_template')) {
7
  require __DIR__ . '/functions.php';
8
  }
3
  namespace PYS_PRO_GLOBAL;
4
 
5
  // Don't redefine the functions if included multiple times.
6
+ if (!\function_exists('PYS_PRO_GLOBAL\\GuzzleHttp\\describe_type')) {
7
  require __DIR__ . '/functions.php';
8
  }
vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey DELETED
@@ -1,5 +0,0 @@
1
- -----BEGIN PUBLIC KEY-----
2
- MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEd+wCqJDrx5B4OldM0dQE0ZMX+lx1ZWm
3
- pui0SUqD4G29L3NGsz9UhJ/0HjBdbnkhIK5xviT0X5vtjacF6ajgcCArbTB+ds+p
4
- +h7Q084NuSuIpNb6YPfoUFgC/CL9kAoc
5
- -----END PUBLIC KEY-----
 
 
 
 
 
vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey.asc DELETED
@@ -1,11 +0,0 @@
1
- -----BEGIN PGP SIGNATURE-----
2
- Version: GnuPG v2.0.22 (MingW32)
3
-
4
- iQEcBAABAgAGBQJWtW1hAAoJEGuXocKCZATaJf0H+wbZGgskK1dcRTsuVJl9IWip
5
- QwGw/qIKI280SD6/ckoUMxKDCJiFuPR14zmqnS36k7N5UNPnpdTJTS8T11jttSpg
6
- 1LCmgpbEIpgaTah+cELDqFCav99fS+bEiAL5lWDAHBTE/XPjGVCqeehyPYref4IW
7
- NDBIEsvnHPHPLsn6X5jq4+Yj5oUixgxaMPiR+bcO4Sh+RzOVB6i2D0upWfRXBFXA
8
- NNnsg9/zjvoC7ZW73y9uSH+dPJTt/Vgfeiv52/v41XliyzbUyLalf02GNPY+9goV
9
- JHG1ulEEBJOCiUD9cE1PUIJwHA/HqyhHIvV350YoEFiHl8iSwm7SiZu5kPjaq74=
10
- =B6+8
11
- -----END PGP SIGNATURE-----
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/byte_safe_strings.php DELETED
@@ -1,147 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\is_callable('RandomCompat_strlen')) {
32
- if (\defined('MB_OVERLOAD_STRING') && (int) \ini_get('mbstring.func_overload') & \MB_OVERLOAD_STRING) {
33
- /**
34
- * strlen() implementation that isn't brittle to mbstring.func_overload
35
- *
36
- * This version uses mb_strlen() in '8bit' mode to treat strings as raw
37
- * binary rather than UTF-8, ISO-8859-1, etc
38
- *
39
- * @param string $binary_string
40
- *
41
- * @throws TypeError
42
- *
43
- * @return int
44
- */
45
- function RandomCompat_strlen($binary_string)
46
- {
47
- if (!\is_string($binary_string)) {
48
- throw new \TypeError('RandomCompat_strlen() expects a string');
49
- }
50
- return (int) \mb_strlen($binary_string, '8bit');
51
- }
52
- } else {
53
- /**
54
- * strlen() implementation that isn't brittle to mbstring.func_overload
55
- *
56
- * This version just used the default strlen()
57
- *
58
- * @param string $binary_string
59
- *
60
- * @throws TypeError
61
- *
62
- * @return int
63
- */
64
- function RandomCompat_strlen($binary_string)
65
- {
66
- if (!\is_string($binary_string)) {
67
- throw new \TypeError('RandomCompat_strlen() expects a string');
68
- }
69
- return (int) \strlen($binary_string);
70
- }
71
- }
72
- }
73
- if (!\is_callable('RandomCompat_substr')) {
74
- if (\defined('MB_OVERLOAD_STRING') && (int) \ini_get('mbstring.func_overload') & \MB_OVERLOAD_STRING) {
75
- /**
76
- * substr() implementation that isn't brittle to mbstring.func_overload
77
- *
78
- * This version uses mb_substr() in '8bit' mode to treat strings as raw
79
- * binary rather than UTF-8, ISO-8859-1, etc
80
- *
81
- * @param string $binary_string
82
- * @param int $start
83
- * @param int|null $length (optional)
84
- *
85
- * @throws TypeError
86
- *
87
- * @return string
88
- */
89
- function RandomCompat_substr($binary_string, $start, $length = null)
90
- {
91
- if (!\is_string($binary_string)) {
92
- throw new \TypeError('RandomCompat_substr(): First argument should be a string');
93
- }
94
- if (!\is_int($start)) {
95
- throw new \TypeError('RandomCompat_substr(): Second argument should be an integer');
96
- }
97
- if ($length === null) {
98
- /**
99
- * mb_substr($str, 0, NULL, '8bit') returns an empty string on
100
- * PHP 5.3, so we have to find the length ourselves.
101
- */
102
- /** @var int $length */
103
- $length = \PYS_PRO_GLOBAL\RandomCompat_strlen($binary_string) - $start;
104
- } elseif (!\is_int($length)) {
105
- throw new \TypeError('RandomCompat_substr(): Third argument should be an integer, or omitted');
106
- }
107
- // Consistency with PHP's behavior
108
- if ($start === \PYS_PRO_GLOBAL\RandomCompat_strlen($binary_string) && $length === 0) {
109
- return '';
110
- }
111
- if ($start > \PYS_PRO_GLOBAL\RandomCompat_strlen($binary_string)) {
112
- return '';
113
- }
114
- return (string) \mb_substr((string) $binary_string, (int) $start, (int) $length, '8bit');
115
- }
116
- } else {
117
- /**
118
- * substr() implementation that isn't brittle to mbstring.func_overload
119
- *
120
- * This version just uses the default substr()
121
- *
122
- * @param string $binary_string
123
- * @param int $start
124
- * @param int|null $length (optional)
125
- *
126
- * @throws TypeError
127
- *
128
- * @return string
129
- */
130
- function RandomCompat_substr($binary_string, $start, $length = null)
131
- {
132
- if (!\is_string($binary_string)) {
133
- throw new \TypeError('RandomCompat_substr(): First argument should be a string');
134
- }
135
- if (!\is_int($start)) {
136
- throw new \TypeError('RandomCompat_substr(): Second argument should be an integer');
137
- }
138
- if ($length !== null) {
139
- if (!\is_int($length)) {
140
- throw new \TypeError('RandomCompat_substr(): Third argument should be an integer, or omitted');
141
- }
142
- return (string) \substr((string) $binary_string, (int) $start, (int) $length);
143
- }
144
- return (string) \substr((string) $binary_string, (int) $start);
145
- }
146
- }
147
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/cast_to_int.php DELETED
@@ -1,68 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\is_callable('RandomCompat_intval')) {
32
- /**
33
- * Cast to an integer if we can, safely.
34
- *
35
- * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
36
- * (non-inclusive), it will sanely cast it to an int. If you it's equal to
37
- * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
38
- * lose precision, so the <= and => operators might accidentally let a float
39
- * through.
40
- *
41
- * @param int|float $number The number we want to convert to an int
42
- * @param bool $fail_open Set to true to not throw an exception
43
- *
44
- * @return float|int
45
- * @psalm-suppress InvalidReturnType
46
- *
47
- * @throws TypeError
48
- */
49
- function RandomCompat_intval($number, $fail_open = \false)
50
- {
51
- if (\is_int($number) || \is_float($number)) {
52
- $number += 0;
53
- } elseif (\is_numeric($number)) {
54
- /** @psalm-suppress InvalidOperand */
55
- $number += 0;
56
- }
57
- /** @var int|float $number */
58
- if (\is_float($number) && $number > ~\PHP_INT_MAX && $number < \PHP_INT_MAX) {
59
- $number = (int) $number;
60
- }
61
- if (\is_int($number)) {
62
- return (int) $number;
63
- } elseif (!$fail_open) {
64
- throw new \TypeError('Expected an integer.');
65
- }
66
- return $number;
67
- }
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/error_polyfill.php DELETED
@@ -1,47 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\class_exists('Error', \false)) {
32
- // We can't really avoid making this extend Exception in PHP 5.
33
- class Error extends \Exception
34
- {
35
- }
36
- }
37
- if (!\class_exists('TypeError', \false)) {
38
- if (\is_subclass_of('Error', 'Exception')) {
39
- class TypeError extends \Error
40
- {
41
- }
42
- } else {
43
- class TypeError extends \Exception
44
- {
45
- }
46
- }
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/random.php DELETED
@@ -1,171 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * @version 2.0.17
10
- * @released 2018-07-04
11
- *
12
- * The MIT License (MIT)
13
- *
14
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
15
- *
16
- * Permission is hereby granted, free of charge, to any person obtaining a copy
17
- * of this software and associated documentation files (the "Software"), to deal
18
- * in the Software without restriction, including without limitation the rights
19
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20
- * copies of the Software, and to permit persons to whom the Software is
21
- * furnished to do so, subject to the following conditions:
22
- *
23
- * The above copyright notice and this permission notice shall be included in
24
- * all copies or substantial portions of the Software.
25
- *
26
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32
- * SOFTWARE.
33
- */
34
- if (!\defined('PHP_VERSION_ID')) {
35
- // This constant was introduced in PHP 5.2.7
36
- $RandomCompatversion = \array_map('intval', \explode('.', \PHP_VERSION));
37
- \define('PHP_VERSION_ID', $RandomCompatversion[0] * 10000 + $RandomCompatversion[1] * 100 + $RandomCompatversion[2]);
38
- $RandomCompatversion = null;
39
- }
40
- /**
41
- * PHP 7.0.0 and newer have these functions natively.
42
- */
43
- if (\PHP_VERSION_ID >= 70000) {
44
- return;
45
- }
46
- if (!\defined('RANDOM_COMPAT_READ_BUFFER')) {
47
- \define('RANDOM_COMPAT_READ_BUFFER', 8);
48
- }
49
- $RandomCompatDIR = \dirname(__FILE__);
50
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'byte_safe_strings.php';
51
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'cast_to_int.php';
52
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'error_polyfill.php';
53
- if (!\is_callable('random_bytes')) {
54
- /**
55
- * PHP 5.2.0 - 5.6.x way to implement random_bytes()
56
- *
57
- * We use conditional statements here to define the function in accordance
58
- * to the operating environment. It's a micro-optimization.
59
- *
60
- * In order of preference:
61
- * 1. Use libsodium if available.
62
- * 2. fread() /dev/urandom if available (never on Windows)
63
- * 3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM)
64
- * 4. COM('CAPICOM.Utilities.1')->GetRandom()
65
- *
66
- * See RATIONALE.md for our reasoning behind this particular order
67
- */
68
- if (\extension_loaded('libsodium')) {
69
- // See random_bytes_libsodium.php
70
- if (\PHP_VERSION_ID >= 50300 && \is_callable('PYS_PRO_GLOBAL\\Sodium\\randombytes_buf')) {
71
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_libsodium.php';
72
- } elseif (\method_exists('Sodium', 'randombytes_buf')) {
73
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_libsodium_legacy.php';
74
- }
75
- }
76
- /**
77
- * Reading directly from /dev/urandom:
78
- */
79
- if (\DIRECTORY_SEPARATOR === '/') {
80
- // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast
81
- // way to exclude Windows.
82
- $RandomCompatUrandom = \true;
83
- $RandomCompat_basedir = \ini_get('open_basedir');
84
- if (!empty($RandomCompat_basedir)) {
85
- $RandomCompat_open_basedir = \explode(\PATH_SEPARATOR, \strtolower($RandomCompat_basedir));
86
- $RandomCompatUrandom = array() !== \array_intersect(array('/dev', '/dev/', '/dev/urandom'), $RandomCompat_open_basedir);
87
- $RandomCompat_open_basedir = null;
88
- }
89
- if (!\is_callable('random_bytes') && $RandomCompatUrandom && @\is_readable('/dev/urandom')) {
90
- // Error suppression on is_readable() in case of an open_basedir
91
- // or safe_mode failure. All we care about is whether or not we
92
- // can read it at this point. If the PHP environment is going to
93
- // panic over trying to see if the file can be read in the first
94
- // place, that is not helpful to us here.
95
- // See random_bytes_dev_urandom.php
96
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_dev_urandom.php';
97
- }
98
- // Unset variables after use
99
- $RandomCompat_basedir = null;
100
- } else {
101
- $RandomCompatUrandom = \false;
102
- }
103
- /**
104
- * mcrypt_create_iv()
105
- *
106
- * We only want to use mcypt_create_iv() if:
107
- *
108
- * - random_bytes() hasn't already been defined
109
- * - the mcrypt extensions is loaded
110
- * - One of these two conditions is true:
111
- * - We're on Windows (DIRECTORY_SEPARATOR !== '/')
112
- * - We're not on Windows and /dev/urandom is readabale
113
- * (i.e. we're not in a chroot jail)
114
- * - Special case:
115
- * - If we're not on Windows, but the PHP version is between
116
- * 5.6.10 and 5.6.12, we don't want to use mcrypt. It will
117
- * hang indefinitely. This is bad.
118
- * - If we're on Windows, we want to use PHP >= 5.3.7 or else
119
- * we get insufficient entropy errors.
120
- */
121
- if (!\is_callable('random_bytes') && (\DIRECTORY_SEPARATOR === '/' || \PHP_VERSION_ID >= 50307) && (\DIRECTORY_SEPARATOR !== '/' || (\PHP_VERSION_ID <= 50609 || \PHP_VERSION_ID >= 50613)) && \extension_loaded('mcrypt')) {
122
- // See random_bytes_mcrypt.php
123
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_mcrypt.php';
124
- }
125
- $RandomCompatUrandom = null;
126
- /**
127
- * This is a Windows-specific fallback, for when the mcrypt extension
128
- * isn't loaded.
129
- */
130
- if (!\is_callable('random_bytes') && \extension_loaded('com_dotnet') && \class_exists('COM')) {
131
- $RandomCompat_disabled_classes = \preg_split('#\\s*,\\s*#', \strtolower(\ini_get('disable_classes')));
132
- if (!\in_array('com', $RandomCompat_disabled_classes)) {
133
- try {
134
- $RandomCompatCOMtest = new \COM('CAPICOM.Utilities.1');
135
- if (\method_exists($RandomCompatCOMtest, 'GetRandom')) {
136
- // See random_bytes_com_dotnet.php
137
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_com_dotnet.php';
138
- }
139
- } catch (\com_exception $e) {
140
- // Don't try to use it.
141
- }
142
- }
143
- $RandomCompat_disabled_classes = null;
144
- $RandomCompatCOMtest = null;
145
- }
146
- /**
147
- * throw new Exception
148
- */
149
- if (!\is_callable('random_bytes')) {
150
- /**
151
- * We don't have any more options, so let's throw an exception right now
152
- * and hope the developer won't let it fail silently.
153
- *
154
- * @param mixed $length
155
- * @psalm-suppress InvalidReturnType
156
- * @throws Exception
157
- * @return string
158
- */
159
- function random_bytes($length)
160
- {
161
- unset($length);
162
- // Suppress "variable not used" warnings.
163
- throw new \Exception('There is no suitable CSPRNG installed on your system');
164
- return '';
165
- }
166
- }
167
- }
168
- if (!\is_callable('random_int')) {
169
- require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_int.php';
170
- }
171
- $RandomCompatDIR = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/random_bytes_com_dotnet.php DELETED
@@ -1,81 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\is_callable('random_bytes')) {
32
- /**
33
- * Windows with PHP < 5.3.0 will not have the function
34
- * openssl_random_pseudo_bytes() available, so let's use
35
- * CAPICOM to work around this deficiency.
36
- *
37
- * @param int $bytes
38
- *
39
- * @throws Exception
40
- *
41
- * @return string
42
- */
43
- function random_bytes($bytes)
44
- {
45
- try {
46
- /** @var int $bytes */
47
- $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
48
- } catch (\TypeError $ex) {
49
- throw new \TypeError('random_bytes(): $bytes must be an integer');
50
- }
51
- if ($bytes < 1) {
52
- throw new \Error('Length must be greater than 0');
53
- }
54
- /** @var string $buf */
55
- $buf = '';
56
- if (!\class_exists('COM')) {
57
- throw new \Error('COM does not exist');
58
- }
59
- /** @var COM $util */
60
- $util = new \COM('CAPICOM.Utilities.1');
61
- $execCount = 0;
62
- /**
63
- * Let's not let it loop forever. If we run N times and fail to
64
- * get N bytes of random data, then CAPICOM has failed us.
65
- */
66
- do {
67
- $buf .= \base64_decode((string) $util->GetRandom($bytes, 0));
68
- if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) >= $bytes) {
69
- /**
70
- * Return our random entropy buffer here:
71
- */
72
- return (string) \PYS_PRO_GLOBAL\RandomCompat_substr($buf, 0, $bytes);
73
- }
74
- ++$execCount;
75
- } while ($execCount < $bytes);
76
- /**
77
- * If we reach here, PHP has failed us.
78
- */
79
- throw new \Exception('Could not gather sufficient random data');
80
- }
81
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/random_bytes_dev_urandom.php DELETED
@@ -1,173 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\defined('RANDOM_COMPAT_READ_BUFFER')) {
32
- \define('RANDOM_COMPAT_READ_BUFFER', 8);
33
- }
34
- if (!\is_callable('random_bytes')) {
35
- /**
36
- * Unless open_basedir is enabled, use /dev/urandom for
37
- * random numbers in accordance with best practices
38
- *
39
- * Why we use /dev/urandom and not /dev/random
40
- * @ref https://www.2uo.de/myths-about-urandom
41
- * @ref http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers
42
- *
43
- * @param int $bytes
44
- *
45
- * @throws Exception
46
- *
47
- * @return string
48
- */
49
- function random_bytes($bytes)
50
- {
51
- /** @var resource $fp */
52
- static $fp = null;
53
- /**
54
- * This block should only be run once
55
- */
56
- if (empty($fp)) {
57
- /**
58
- * We don't want to ever read C:\dev\random, only /dev/urandom on
59
- * Unix-like operating systems. While we guard against this
60
- * condition in random.php, it doesn't hurt to be defensive in depth
61
- * here.
62
- *
63
- * To that end, we only try to open /dev/urandom if we're on a Unix-
64
- * like operating system (which means the directory separator is set
65
- * to "/" not "\".
66
- */
67
- if (\DIRECTORY_SEPARATOR === '/') {
68
- if (!\is_readable('/dev/urandom')) {
69
- throw new \Exception('Environment misconfiguration: ' . '/dev/urandom cannot be read.');
70
- }
71
- /**
72
- * We use /dev/urandom if it is a char device.
73
- * We never fall back to /dev/random
74
- */
75
- /** @var resource|bool $fp */
76
- $fp = \fopen('/dev/urandom', 'rb');
77
- if (\is_resource($fp)) {
78
- /** @var array<string, int> $st */
79
- $st = \fstat($fp);
80
- if (($st['mode'] & 0170000) !== 020000) {
81
- \fclose($fp);
82
- $fp = \false;
83
- }
84
- }
85
- }
86
- if (\is_resource($fp)) {
87
- /**
88
- * stream_set_read_buffer() does not exist in HHVM
89
- *
90
- * If we don't set the stream's read buffer to 0, PHP will
91
- * internally buffer 8192 bytes, which can waste entropy
92
- *
93
- * stream_set_read_buffer returns 0 on success
94
- */
95
- if (\is_callable('stream_set_read_buffer')) {
96
- \stream_set_read_buffer($fp, \RANDOM_COMPAT_READ_BUFFER);
97
- }
98
- if (\is_callable('stream_set_chunk_size')) {
99
- \stream_set_chunk_size($fp, \RANDOM_COMPAT_READ_BUFFER);
100
- }
101
- }
102
- }
103
- try {
104
- /** @var int $bytes */
105
- $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
106
- } catch (\TypeError $ex) {
107
- throw new \TypeError('random_bytes(): $bytes must be an integer');
108
- }
109
- if ($bytes < 1) {
110
- throw new \Error('Length must be greater than 0');
111
- }
112
- /**
113
- * This if() block only runs if we managed to open a file handle
114
- *
115
- * It does not belong in an else {} block, because the above
116
- * if (empty($fp)) line is logic that should only be run once per
117
- * page load.
118
- */
119
- if (\is_resource($fp)) {
120
- /**
121
- * @var int
122
- */
123
- $remaining = $bytes;
124
- /**
125
- * @var string|bool
126
- */
127
- $buf = '';
128
- /**
129
- * We use fread() in a loop to protect against partial reads
130
- */
131
- do {
132
- /**
133
- * @var string|bool
134
- */
135
- $read = \fread($fp, $remaining);
136
- if (!\is_string($read)) {
137
- /**
138
- * We cannot safely read from the file. Exit the
139
- * do-while loop and trigger the exception condition
140
- *
141
- * @var string|bool
142
- */
143
- $buf = \false;
144
- break;
145
- }
146
- /**
147
- * Decrease the number of bytes returned from remaining
148
- */
149
- $remaining -= \PYS_PRO_GLOBAL\RandomCompat_strlen($read);
150
- /**
151
- * @var string $buf
152
- */
153
- $buf .= $read;
154
- } while ($remaining > 0);
155
- /**
156
- * Is our result valid?
157
- * @var string|bool $buf
158
- */
159
- if (\is_string($buf)) {
160
- if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
161
- /**
162
- * Return our random entropy buffer here:
163
- */
164
- return $buf;
165
- }
166
- }
167
- }
168
- /**
169
- * If we reach here, PHP has failed us.
170
- */
171
- throw new \Exception('Error reading from source device');
172
- }
173
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium.php DELETED
@@ -1,81 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\is_callable('random_bytes')) {
32
- /**
33
- * If the libsodium PHP extension is loaded, we'll use it above any other
34
- * solution.
35
- *
36
- * libsodium-php project:
37
- * @ref https://github.com/jedisct1/libsodium-php
38
- *
39
- * @param int $bytes
40
- *
41
- * @throws Exception
42
- *
43
- * @return string
44
- */
45
- function random_bytes($bytes)
46
- {
47
- try {
48
- /** @var int $bytes */
49
- $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
50
- } catch (\TypeError $ex) {
51
- throw new \TypeError('random_bytes(): $bytes must be an integer');
52
- }
53
- if ($bytes < 1) {
54
- throw new \Error('Length must be greater than 0');
55
- }
56
- /**
57
- * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
58
- * generated in one invocation.
59
- */
60
- /** @var string|bool $buf */
61
- if ($bytes > 2147483647) {
62
- $buf = '';
63
- for ($i = 0; $i < $bytes; $i += 1073741824) {
64
- $n = $bytes - $i > 1073741824 ? 1073741824 : $bytes - $i;
65
- $buf .= \PYS_PRO_GLOBAL\Sodium\randombytes_buf($n);
66
- }
67
- } else {
68
- /** @var string|bool $buf */
69
- $buf = \PYS_PRO_GLOBAL\Sodium\randombytes_buf($bytes);
70
- }
71
- if (\is_string($buf)) {
72
- if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
73
- return $buf;
74
- }
75
- }
76
- /**
77
- * If we reach here, PHP has failed us.
78
- */
79
- throw new \Exception('Could not gather sufficient random data');
80
- }
81
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php DELETED
@@ -1,82 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\is_callable('random_bytes')) {
32
- /**
33
- * If the libsodium PHP extension is loaded, we'll use it above any other
34
- * solution.
35
- *
36
- * libsodium-php project:
37
- * @ref https://github.com/jedisct1/libsodium-php
38
- *
39
- * @param int $bytes
40
- *
41
- * @throws Exception
42
- *
43
- * @return string
44
- */
45
- function random_bytes($bytes)
46
- {
47
- try {
48
- /** @var int $bytes */
49
- $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
50
- } catch (\TypeError $ex) {
51
- throw new \TypeError('random_bytes(): $bytes must be an integer');
52
- }
53
- if ($bytes < 1) {
54
- throw new \Error('Length must be greater than 0');
55
- }
56
- /**
57
- * @var string
58
- */
59
- $buf = '';
60
- /**
61
- * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
62
- * generated in one invocation.
63
- */
64
- if ($bytes > 2147483647) {
65
- for ($i = 0; $i < $bytes; $i += 1073741824) {
66
- $n = $bytes - $i > 1073741824 ? 1073741824 : $bytes - $i;
67
- $buf .= \PYS_PRO_GLOBAL\Sodium::randombytes_buf((int) $n);
68
- }
69
- } else {
70
- $buf .= \PYS_PRO_GLOBAL\Sodium::randombytes_buf((int) $bytes);
71
- }
72
- if (\is_string($buf)) {
73
- if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
74
- return $buf;
75
- }
76
- }
77
- /**
78
- * If we reach here, PHP has failed us.
79
- */
80
- throw new \Exception('Could not gather sufficient random data');
81
- }
82
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/random_bytes_mcrypt.php DELETED
@@ -1,68 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /**
6
- * Random_* Compatibility Library
7
- * for using the new PHP 7 random_* API in PHP 5 projects
8
- *
9
- * The MIT License (MIT)
10
- *
11
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in
21
- * all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- if (!\is_callable('random_bytes')) {
32
- /**
33
- * Powered by ext/mcrypt (and thankfully NOT libmcrypt)
34
- *
35
- * @ref https://bugs.php.net/bug.php?id=55169
36
- * @ref https://github.com/php/php-src/blob/c568ffe5171d942161fc8dda066bce844bdef676/ext/mcrypt/mcrypt.c#L1321-L1386
37
- *
38
- * @param int $bytes
39
- *
40
- * @throws Exception
41
- *
42
- * @return string
43
- */
44
- function random_bytes($bytes)
45
- {
46
- try {
47
- /** @var int $bytes */
48
- $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
49
- } catch (\TypeError $ex) {
50
- throw new \TypeError('random_bytes(): $bytes must be an integer');
51
- }
52
- if ($bytes < 1) {
53
- throw new \Error('Length must be greater than 0');
54
- }
55
- /** @var string|bool $buf */
56
- $buf = @\mcrypt_create_iv((int) $bytes, (int) \MCRYPT_DEV_URANDOM);
57
- if (\is_string($buf) && \PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
58
- /**
59
- * Return our random entropy buffer here:
60
- */
61
- return $buf;
62
- }
63
- /**
64
- * If we reach here, PHP has failed us.
65
- */
66
- throw new \Exception('Could not gather sufficient random data');
67
- }
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/lib/random_int.php DELETED
@@ -1,181 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- if (!\is_callable('random_int')) {
6
- /**
7
- * Random_* Compatibility Library
8
- * for using the new PHP 7 random_* API in PHP 5 projects
9
- *
10
- * The MIT License (MIT)
11
- *
12
- * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
13
- *
14
- * Permission is hereby granted, free of charge, to any person obtaining a copy
15
- * of this software and associated documentation files (the "Software"), to deal
16
- * in the Software without restriction, including without limitation the rights
17
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
- * copies of the Software, and to permit persons to whom the Software is
19
- * furnished to do so, subject to the following conditions:
20
- *
21
- * The above copyright notice and this permission notice shall be included in
22
- * all copies or substantial portions of the Software.
23
- *
24
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
- * SOFTWARE.
31
- */
32
- /**
33
- * Fetch a random integer between $min and $max inclusive
34
- *
35
- * @param int $min
36
- * @param int $max
37
- *
38
- * @throws Exception
39
- *
40
- * @return int
41
- */
42
- function random_int($min, $max)
43
- {
44
- /**
45
- * Type and input logic checks
46
- *
47
- * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
48
- * (non-inclusive), it will sanely cast it to an int. If you it's equal to
49
- * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
50
- * lose precision, so the <= and => operators might accidentally let a float
51
- * through.
52
- */
53
- try {
54
- /** @var int $min */
55
- $min = \PYS_PRO_GLOBAL\RandomCompat_intval($min);
56
- } catch (\TypeError $ex) {
57
- throw new \TypeError('random_int(): $min must be an integer');
58
- }
59
- try {
60
- /** @var int $max */
61
- $max = \PYS_PRO_GLOBAL\RandomCompat_intval($max);
62
- } catch (\TypeError $ex) {
63
- throw new \TypeError('random_int(): $max must be an integer');
64
- }
65
- /**
66
- * Now that we've verified our weak typing system has given us an integer,
67
- * let's validate the logic then we can move forward with generating random
68
- * integers along a given range.
69
- */
70
- if ($min > $max) {
71
- throw new \Error('Minimum value must be less than or equal to the maximum value');
72
- }
73
- if ($max === $min) {
74
- return (int) $min;
75
- }
76
- /**
77
- * Initialize variables to 0
78
- *
79
- * We want to store:
80
- * $bytes => the number of random bytes we need
81
- * $mask => an integer bitmask (for use with the &) operator
82
- * so we can minimize the number of discards
83
- */
84
- $attempts = $bits = $bytes = $mask = $valueShift = 0;
85
- /** @var int $attempts */
86
- /** @var int $bits */
87
- /** @var int $bytes */
88
- /** @var int $mask */
89
- /** @var int $valueShift */
90
- /**
91
- * At this point, $range is a positive number greater than 0. It might
92
- * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to
93
- * a float and we will lose some precision.
94
- *
95
- * @var int|float $range
96
- */
97
- $range = $max - $min;
98
- /**
99
- * Test for integer overflow:
100
- */
101
- if (!\is_int($range)) {
102
- /**
103
- * Still safely calculate wider ranges.
104
- * Provided by @CodesInChaos, @oittaa
105
- *
106
- * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435
107
- *
108
- * We use ~0 as a mask in this case because it generates all 1s
109
- *
110
- * @ref https://eval.in/400356 (32-bit)
111
- * @ref http://3v4l.org/XX9r5 (64-bit)
112
- */
113
- $bytes = \PHP_INT_SIZE;
114
- /** @var int $mask */
115
- $mask = ~0;
116
- } else {
117
- /**
118
- * $bits is effectively ceil(log($range, 2)) without dealing with
119
- * type juggling
120
- */
121
- while ($range > 0) {
122
- if ($bits % 8 === 0) {
123
- ++$bytes;
124
- }
125
- ++$bits;
126
- $range >>= 1;
127
- /** @var int $mask */
128
- $mask = $mask << 1 | 1;
129
- }
130
- $valueShift = $min;
131
- }
132
- /** @var int $val */
133
- $val = 0;
134
- /**
135
- * Now that we have our parameters set up, let's begin generating
136
- * random integers until one falls between $min and $max
137
- */
138
- /** @psalm-suppress RedundantCondition */
139
- do {
140
- /**
141
- * The rejection probability is at most 0.5, so this corresponds
142
- * to a failure probability of 2^-128 for a working RNG
143
- */
144
- if ($attempts > 128) {
145
- throw new \Exception('random_int: RNG is broken - too many rejections');
146
- }
147
- /**
148
- * Let's grab the necessary number of random bytes
149
- */
150
- $randomByteString = \random_bytes($bytes);
151
- /**
152
- * Let's turn $randomByteString into an integer
153
- *
154
- * This uses bitwise operators (<< and |) to build an integer
155
- * out of the values extracted from ord()
156
- *
157
- * Example: [9F] | [6D] | [32] | [0C] =>
158
- * 159 + 27904 + 3276800 + 201326592 =>
159
- * 204631455
160
- */
161
- $val &= 0;
162
- for ($i = 0; $i < $bytes; ++$i) {
163
- $val |= \ord($randomByteString[$i]) << $i * 8;
164
- }
165
- /** @var int $val */
166
- /**
167
- * Apply mask
168
- */
169
- $val &= $mask;
170
- $val += $valueShift;
171
- ++$attempts;
172
- /**
173
- * If $val overflows to a floating point number,
174
- * ... or is larger than $max,
175
- * ... or smaller than $min,
176
- * then try again.
177
- */
178
- } while (!\is_int($val) || $val > $max || $val < $min);
179
- return (int) $val;
180
- }
181
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/paragonie/random_compat/phpunit-autoload.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- require_once __DIR__ . '/psalm-autoload.php';
6
- /**
7
- * This is necessary for PHPUnit on PHP >= 5.3
8
- *
9
- * Class PHPUnit_Framework_TestCase
10
- */
11
- if (\PHP_VERSION_ID >= 50300) {
12
- if (!\class_exists('PYS_PRO_GLOBAL\\PHPUnit_Framework_TestCase')) {
13
- require_once __DIR__ . '/other/phpunit-shim.php';
14
- }
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/psr/http-client/src/ClientExceptionInterface.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
+
5
+ /**
6
+ * Every HTTP client related exception MUST implement this interface.
7
+ */
8
+ interface ClientExceptionInterface extends \Throwable
9
+ {
10
+ }
vendor_prefix/psr/http-client/src/ClientInterface.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
+
5
+ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
+ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
7
+ interface ClientInterface
8
+ {
9
+ /**
10
+ * Sends a PSR-7 request and returns a PSR-7 response.
11
+ *
12
+ * @param RequestInterface $request
13
+ *
14
+ * @return ResponseInterface
15
+ *
16
+ * @throws \Psr\Http\Client\ClientExceptionInterface If an error happens while processing the request.
17
+ */
18
+ public function sendRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
19
+ }
vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
+
5
+ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
+ /**
7
+ * Thrown when the request cannot be completed because of network issues.
8
+ *
9
+ * There is no response object as this exception is thrown when no response has been received.
10
+ *
11
+ * Example: the target host name can not be resolved or the connection failed.
12
+ */
13
+ interface NetworkExceptionInterface extends \PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface
14
+ {
15
+ /**
16
+ * Returns the request.
17
+ *
18
+ * The request object MAY be a different object from the one passed to ClientInterface::sendRequest()
19
+ *
20
+ * @return RequestInterface
21
+ */
22
+ public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
23
+ }
vendor_prefix/psr/http-client/src/RequestExceptionInterface.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
+
5
+ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
+ /**
7
+ * Exception for when a request failed.
8
+ *
9
+ * Examples:
10
+ * - Request is invalid (e.g. method is missing)
11
+ * - Runtime request errors (e.g. the body stream is not seekable)
12
+ */
13
+ interface RequestExceptionInterface extends \PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface
14
+ {
15
+ /**
16
+ * Returns the request.
17
+ *
18
+ * The request object MAY be a different object from the one passed to ClientInterface::sendRequest()
19
+ *
20
+ * @return RequestInterface
21
+ */
22
+ public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
23
+ }
vendor_prefix/symfony/polyfill-intl-idn/Idn.php DELETED
@@ -1,716 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com> and Trevor Rowbotham <trevor.rowbotham@pm.me>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
- namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn;
12
-
13
- use Exception;
14
- use Normalizer;
15
- use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges;
16
- use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex;
17
- /**
18
- * @see https://www.unicode.org/reports/tr46/
19
- *
20
- * @internal
21
- */
22
- final class Idn
23
- {
24
- const ERROR_EMPTY_LABEL = 1;
25
- const ERROR_LABEL_TOO_LONG = 2;
26
- const ERROR_DOMAIN_NAME_TOO_LONG = 4;
27
- const ERROR_LEADING_HYPHEN = 8;
28
- const ERROR_TRAILING_HYPHEN = 0x10;
29
- const ERROR_HYPHEN_3_4 = 0x20;
30
- const ERROR_LEADING_COMBINING_MARK = 0x40;
31
- const ERROR_DISALLOWED = 0x80;
32
- const ERROR_PUNYCODE = 0x100;
33
- const ERROR_LABEL_HAS_DOT = 0x200;
34
- const ERROR_INVALID_ACE_LABEL = 0x400;
35
- const ERROR_BIDI = 0x800;
36
- const ERROR_CONTEXTJ = 0x1000;
37
- const ERROR_CONTEXTO_PUNCTUATION = 0x2000;
38
- const ERROR_CONTEXTO_DIGITS = 0x4000;
39
- const INTL_IDNA_VARIANT_2003 = 0;
40
- const INTL_IDNA_VARIANT_UTS46 = 1;
41
- const IDNA_DEFAULT = 0;
42
- const IDNA_ALLOW_UNASSIGNED = 1;
43
- const IDNA_USE_STD3_RULES = 2;
44
- const IDNA_CHECK_BIDI = 4;
45
- const IDNA_CHECK_CONTEXTJ = 8;
46
- const IDNA_NONTRANSITIONAL_TO_ASCII = 16;
47
- const IDNA_NONTRANSITIONAL_TO_UNICODE = 32;
48
- const MAX_DOMAIN_SIZE = 253;
49
- const MAX_LABEL_SIZE = 63;
50
- const BASE = 36;
51
- const TMIN = 1;
52
- const TMAX = 26;
53
- const SKEW = 38;
54
- const DAMP = 700;
55
- const INITIAL_BIAS = 72;
56
- const INITIAL_N = 128;
57
- const DELIMITER = '-';
58
- const MAX_INT = 2147483647;
59
- /**
60
- * Contains the numeric value of a basic code point (for use in representing integers) in the
61
- * range 0 to BASE-1, or -1 if b is does not represent a value.
62
- *
63
- * @var array<int, int>
64
- */
65
- private static $basicToDigit = array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
66
- /**
67
- * @var array<int, int>
68
- */
69
- private static $virama;
70
- /**
71
- * @var array<int, string>
72
- */
73
- private static $mapped;
74
- /**
75
- * @var array<int, bool>
76
- */
77
- private static $ignored;
78
- /**
79
- * @var array<int, string>
80
- */
81
- private static $deviation;
82
- /**
83
- * @var array<int, bool>
84
- */
85
- private static $disallowed;
86
- /**
87
- * @var array<int, string>
88
- */
89
- private static $disallowed_STD3_mapped;
90
- /**
91
- * @var array<int, bool>
92
- */
93
- private static $disallowed_STD3_valid;
94
- /**
95
- * @var bool
96
- */
97
- private static $mappingTableLoaded = \false;
98
- /**
99
- * @see https://www.unicode.org/reports/tr46/#ToASCII
100
- *
101
- * @param string $domainName
102
- * @param int $options
103
- * @param int $variant
104
- * @param array $idna_info
105
- *
106
- * @return string|false
107
- */
108
- public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
109
- {
110
- if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
111
- @\trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
112
- }
113
- $options = array('CheckHyphens' => \true, 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI), 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ), 'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES), 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_ASCII), 'VerifyDnsLength' => \true);
114
- $info = new \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info();
115
- $labels = self::process((string) $domainName, $options, $info);
116
- foreach ($labels as $i => $label) {
117
- // Only convert labels to punycode that contain non-ASCII code points
118
- if (1 === \preg_match('/[^\\x00-\\x7F]/', $label)) {
119
- try {
120
- $label = 'xn--' . self::punycodeEncode($label);
121
- } catch (\Exception $e) {
122
- $info->errors |= self::ERROR_PUNYCODE;
123
- }
124
- $labels[$i] = $label;
125
- }
126
- }
127
- if ($options['VerifyDnsLength']) {
128
- self::validateDomainAndLabelLength($labels, $info);
129
- }
130
- $idna_info = array('result' => \implode('.', $labels), 'isTransitionalDifferent' => $info->transitionalDifferent, 'errors' => $info->errors);
131
- return 0 === $info->errors ? $idna_info['result'] : \false;
132
- }
133
- /**
134
- * @see https://www.unicode.org/reports/tr46/#ToUnicode
135
- *
136
- * @param string $domainName
137
- * @param int $options
138
- * @param int $variant
139
- * @param array $idna_info
140
- *
141
- * @return string|false
142
- */
143
- public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
144
- {
145
- if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
146
- @\trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
147
- }
148
- $info = new \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info();
149
- $labels = self::process((string) $domainName, array('CheckHyphens' => \true, 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI), 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ), 'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES), 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_UNICODE)), $info);
150
- $idna_info = array('result' => \implode('.', $labels), 'isTransitionalDifferent' => $info->transitionalDifferent, 'errors' => $info->errors);
151
- return 0 === $info->errors ? $idna_info['result'] : \false;
152
- }
153
- /**
154
- * @param string $label
155
- *
156
- * @return bool
157
- */
158
- private static function isValidContextJ(array $codePoints, $label)
159
- {
160
- if (!isset(self::$virama)) {
161
- self::$virama = (require __DIR__ . \DIRECTORY_SEPARATOR . 'Resources' . \DIRECTORY_SEPARATOR . 'unidata' . \DIRECTORY_SEPARATOR . 'virama.php');
162
- }
163
- $offset = 0;
164
- foreach ($codePoints as $i => $codePoint) {
165
- if (0x200c !== $codePoint && 0x200d !== $codePoint) {
166
- continue;
167
- }
168
- if (!isset($codePoints[$i - 1])) {
169
- return \false;
170
- }
171
- // If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True;
172
- if (isset(self::$virama[$codePoints[$i - 1]])) {
173
- continue;
174
- }
175
- // If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C(Joining_Type:T)*(Joining_Type:{R,D})) Then
176
- // True;
177
- // Generated RegExp = ([Joining_Type:{L,D}][Joining_Type:T]*\u200C[Joining_Type:T]*)[Joining_Type:{R,D}]
178
- if (0x200c === $codePoint && 1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::ZWNJ, $label, $matches, \PREG_OFFSET_CAPTURE, $offset)) {
179
- $offset += \strlen($matches[1][0]);
180
- continue;
181
- }
182
- return \false;
183
- }
184
- return \true;
185
- }
186
- /**
187
- * @see https://www.unicode.org/reports/tr46/#ProcessingStepMap
188
- *
189
- * @param string $input
190
- * @param array<string, bool> $options
191
- *
192
- * @return string
193
- */
194
- private static function mapCodePoints($input, array $options, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
195
- {
196
- $str = '';
197
- $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
198
- $transitional = $options['Transitional_Processing'];
199
- foreach (self::utf8Decode($input) as $codePoint) {
200
- $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
201
- switch ($data['status']) {
202
- case 'disallowed':
203
- $info->errors |= self::ERROR_DISALLOWED;
204
- // no break.
205
- case 'valid':
206
- $str .= \mb_chr($codePoint, 'utf-8');
207
- break;
208
- case 'ignored':
209
- // Do nothing.
210
- break;
211
- case 'mapped':
212
- $str .= $data['mapping'];
213
- break;
214
- case 'deviation':
215
- $info->transitionalDifferent = \true;
216
- $str .= $transitional ? $data['mapping'] : \mb_chr($codePoint, 'utf-8');
217
- break;
218
- }
219
- }
220
- return $str;
221
- }
222
- /**
223
- * @see https://www.unicode.org/reports/tr46/#Processing
224
- *
225
- * @param string $domain
226
- * @param array<string, bool> $options
227
- *
228
- * @return array<int, string>
229
- */
230
- private static function process($domain, array $options, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
231
- {
232
- // If VerifyDnsLength is not set, we are doing ToUnicode otherwise we are doing ToASCII and
233
- // we need to respect the VerifyDnsLength option.
234
- $checkForEmptyLabels = !isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'];
235
- if ($checkForEmptyLabels && '' === $domain) {
236
- $info->errors |= self::ERROR_EMPTY_LABEL;
237
- return array($domain);
238
- }
239
- // Step 1. Map each code point in the domain name string
240
- $domain = self::mapCodePoints($domain, $options, $info);
241
- // Step 2. Normalize the domain name string to Unicode Normalization Form C.
242
- if (!\Normalizer::isNormalized($domain, \Normalizer::FORM_C)) {
243
- $domain = \Normalizer::normalize($domain, \Normalizer::FORM_C);
244
- }
245
- // Step 3. Break the string into labels at U+002E (.) FULL STOP.
246
- $labels = \explode('.', $domain);
247
- $lastLabelIndex = \count($labels) - 1;
248
- // Step 4. Convert and validate each label in the domain name string.
249
- foreach ($labels as $i => $label) {
250
- $validationOptions = $options;
251
- if ('xn--' === \substr($label, 0, 4)) {
252
- try {
253
- $label = self::punycodeDecode(\substr($label, 4));
254
- } catch (\Exception $e) {
255
- $info->errors |= self::ERROR_PUNYCODE;
256
- continue;
257
- }
258
- $validationOptions['Transitional_Processing'] = \false;
259
- $labels[$i] = $label;
260
- }
261
- self::validateLabel($label, $info, $validationOptions, $i > 0 && $i === $lastLabelIndex);
262
- }
263
- if ($info->bidiDomain && !$info->validBidiDomain) {
264
- $info->errors |= self::ERROR_BIDI;
265
- }
266
- // Any input domain name string that does not record an error has been successfully
267
- // processed according to this specification. Conversely, if an input domain_name string
268
- // causes an error, then the processing of the input domain_name string fails. Determining
269
- // what to do with error input is up to the caller, and not in the scope of this document.
270
- return $labels;
271
- }
272
- /**
273
- * @see https://tools.ietf.org/html/rfc5893#section-2
274
- *
275
- * @param string $label
276
- */
277
- private static function validateBidiLabel($label, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
278
- {
279
- if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::RTL_LABEL, $label)) {
280
- $info->bidiDomain = \true;
281
- // Step 1. The first character must be a character with Bidi property L, R, or AL.
282
- // If it has the R or AL property, it is an RTL label
283
- if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_1_RTL, $label)) {
284
- $info->validBidiDomain = \false;
285
- return;
286
- }
287
- // Step 2. In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES,
288
- // CS, ET, ON, BN, or NSM are allowed.
289
- if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_2, $label)) {
290
- $info->validBidiDomain = \false;
291
- return;
292
- }
293
- // Step 3. In an RTL label, the end of the label must be a character with Bidi property
294
- // R, AL, EN, or AN, followed by zero or more characters with Bidi property NSM.
295
- if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_3, $label)) {
296
- $info->validBidiDomain = \false;
297
- return;
298
- }
299
- // Step 4. In an RTL label, if an EN is present, no AN may be present, and vice versa.
300
- if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_4_AN, $label) && 1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_4_EN, $label)) {
301
- $info->validBidiDomain = \false;
302
- return;
303
- }
304
- return;
305
- }
306
- // We are a LTR label
307
- // Step 1. The first character must be a character with Bidi property L, R, or AL.
308
- // If it has the L property, it is an LTR label.
309
- if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_1_LTR, $label)) {
310
- $info->validBidiDomain = \false;
311
- return;
312
- }
313
- // Step 5. In an LTR label, only characters with the Bidi properties L, EN,
314
- // ES, CS, ET, ON, BN, or NSM are allowed.
315
- if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_5, $label)) {
316
- $info->validBidiDomain = \false;
317
- return;
318
- }
319
- // Step 6.In an LTR label, the end of the label must be a character with Bidi property L or
320
- // EN, followed by zero or more characters with Bidi property NSM.
321
- if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_6, $label)) {
322
- $info->validBidiDomain = \false;
323
- return;
324
- }
325
- }
326
- /**
327
- * @param array<int, string> $labels
328
- */
329
- private static function validateDomainAndLabelLength(array $labels, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
330
- {
331
- $maxDomainSize = self::MAX_DOMAIN_SIZE;
332
- $length = \count($labels);
333
- // Number of "." delimiters.
334
- $domainLength = $length - 1;
335
- // If the last label is empty and it is not the first label, then it is the root label.
336
- // Increase the max size by 1, making it 254, to account for the root label's "."
337
- // delimiter. This also means we don't need to check the last label's length for being too
338
- // long.
339
- if ($length > 1 && '' === $labels[$length - 1]) {
340
- ++$maxDomainSize;
341
- --$length;
342
- }
343
- for ($i = 0; $i < $length; ++$i) {
344
- $bytes = \strlen($labels[$i]);
345
- $domainLength += $bytes;
346
- if ($bytes > self::MAX_LABEL_SIZE) {
347
- $info->errors |= self::ERROR_LABEL_TOO_LONG;
348
- }
349
- }
350
- if ($domainLength > $maxDomainSize) {
351
- $info->errors |= self::ERROR_DOMAIN_NAME_TOO_LONG;
352
- }
353
- }
354
- /**
355
- * @see https://www.unicode.org/reports/tr46/#Validity_Criteria
356
- *
357
- * @param string $label
358
- * @param array<string, bool> $options
359
- * @param bool $canBeEmpty
360
- */
361
- private static function validateLabel($label, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info, array $options, $canBeEmpty)
362
- {
363
- if ('' === $label) {
364
- if (!$canBeEmpty && (!isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'])) {
365
- $info->errors |= self::ERROR_EMPTY_LABEL;
366
- }
367
- return;
368
- }
369
- // Step 1. The label must be in Unicode Normalization Form C.
370
- if (!\Normalizer::isNormalized($label, \Normalizer::FORM_C)) {
371
- $info->errors |= self::ERROR_INVALID_ACE_LABEL;
372
- }
373
- $codePoints = self::utf8Decode($label);
374
- if ($options['CheckHyphens']) {
375
- // Step 2. If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character
376
- // in both the thrid and fourth positions.
377
- if (isset($codePoints[2], $codePoints[3]) && 0x2d === $codePoints[2] && 0x2d === $codePoints[3]) {
378
- $info->errors |= self::ERROR_HYPHEN_3_4;
379
- }
380
- // Step 3. If CheckHyphens, the label must neither begin nor end with a U+002D
381
- // HYPHEN-MINUS character.
382
- if ('-' === \substr($label, 0, 1)) {
383
- $info->errors |= self::ERROR_LEADING_HYPHEN;
384
- }
385
- if ('-' === \substr($label, -1, 1)) {
386
- $info->errors |= self::ERROR_TRAILING_HYPHEN;
387
- }
388
- }
389
- // Step 4. The label must not contain a U+002E (.) FULL STOP.
390
- if (\false !== \strpos($label, '.')) {
391
- $info->errors |= self::ERROR_LABEL_HAS_DOT;
392
- }
393
- // Step 5. The label must not begin with a combining mark, that is: General_Category=Mark.
394
- if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::COMBINING_MARK, $label)) {
395
- $info->errors |= self::ERROR_LEADING_COMBINING_MARK;
396
- }
397
- // Step 6. Each code point in the label must only have certain status values according to
398
- // Section 5, IDNA Mapping Table:
399
- $transitional = $options['Transitional_Processing'];
400
- $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
401
- foreach ($codePoints as $codePoint) {
402
- $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
403
- $status = $data['status'];
404
- if ('valid' === $status || !$transitional && 'deviation' === $status) {
405
- continue;
406
- }
407
- $info->errors |= self::ERROR_DISALLOWED;
408
- break;
409
- }
410
- // Step 7. If CheckJoiners, the label must satisify the ContextJ rules from Appendix A, in
411
- // The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)
412
- // [IDNA2008].
413
- if ($options['CheckJoiners'] && !self::isValidContextJ($codePoints, $label)) {
414
- $info->errors |= self::ERROR_CONTEXTJ;
415
- }
416
- // Step 8. If CheckBidi, and if the domain name is a Bidi domain name, then the label must
417
- // satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
418
- if ($options['CheckBidi'] && (!$info->bidiDomain || $info->validBidiDomain)) {
419
- self::validateBidiLabel($label, $info);
420
- }
421
- }
422
- /**
423
- * @see https://tools.ietf.org/html/rfc3492#section-6.2
424
- *
425
- * @param string $input
426
- *
427
- * @return string
428
- */
429
- private static function punycodeDecode($input)
430
- {
431
- $n = self::INITIAL_N;
432
- $out = 0;
433
- $i = 0;
434
- $bias = self::INITIAL_BIAS;
435
- $lastDelimIndex = \strrpos($input, self::DELIMITER);
436
- $b = \false === $lastDelimIndex ? 0 : $lastDelimIndex;
437
- $inputLength = \strlen($input);
438
- $output = array();
439
- $bytes = \array_map('ord', \str_split($input));
440
- for ($j = 0; $j < $b; ++$j) {
441
- if ($bytes[$j] > 0x7f) {
442
- throw new \Exception('Invalid input');
443
- }
444
- $output[$out++] = $input[$j];
445
- }
446
- if ($b > 0) {
447
- ++$b;
448
- }
449
- for ($in = $b; $in < $inputLength; ++$out) {
450
- $oldi = $i;
451
- $w = 1;
452
- for ($k = self::BASE;; $k += self::BASE) {
453
- if ($in >= $inputLength) {
454
- throw new \Exception('Invalid input');
455
- }
456
- $digit = self::$basicToDigit[$bytes[$in++] & 0xff];
457
- if ($digit < 0) {
458
- throw new \Exception('Invalid input');
459
- }
460
- if ($digit > \intdiv(self::MAX_INT - $i, $w)) {
461
- throw new \Exception('Integer overflow');
462
- }
463
- $i += $digit * $w;
464
- if ($k <= $bias) {
465
- $t = self::TMIN;
466
- } elseif ($k >= $bias + self::TMAX) {
467
- $t = self::TMAX;
468
- } else {
469
- $t = $k - $bias;
470
- }
471
- if ($digit < $t) {
472
- break;
473
- }
474
- $baseMinusT = self::BASE - $t;
475
- if ($w > \intdiv(self::MAX_INT, $baseMinusT)) {
476
- throw new \Exception('Integer overflow');
477
- }
478
- $w *= $baseMinusT;
479
- }
480
- $outPlusOne = $out + 1;
481
- $bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi);
482
- if (\intdiv($i, $outPlusOne) > self::MAX_INT - $n) {
483
- throw new \Exception('Integer overflow');
484
- }
485
- $n += \intdiv($i, $outPlusOne);
486
- $i %= $outPlusOne;
487
- \array_splice($output, $i++, 0, array(\mb_chr($n, 'utf-8')));
488
- }
489
- return \implode('', $output);
490
- }
491
- /**
492
- * @see https://tools.ietf.org/html/rfc3492#section-6.3
493
- *
494
- * @param string $input
495
- *
496
- * @return string
497
- */
498
- private static function punycodeEncode($input)
499
- {
500
- $n = self::INITIAL_N;
501
- $delta = 0;
502
- $out = 0;
503
- $bias = self::INITIAL_BIAS;
504
- $inputLength = 0;
505
- $output = '';
506
- $iter = self::utf8Decode($input);
507
- foreach ($iter as $codePoint) {
508
- ++$inputLength;
509
- if ($codePoint < 0x80) {
510
- $output .= \chr($codePoint);
511
- ++$out;
512
- }
513
- }
514
- $h = $out;
515
- $b = $out;
516
- if ($b > 0) {
517
- $output .= self::DELIMITER;
518
- ++$out;
519
- }
520
- while ($h < $inputLength) {
521
- $m = self::MAX_INT;
522
- foreach ($iter as $codePoint) {
523
- if ($codePoint >= $n && $codePoint < $m) {
524
- $m = $codePoint;
525
- }
526
- }
527
- if ($m - $n > \intdiv(self::MAX_INT - $delta, $h + 1)) {
528
- throw new \Exception('Integer overflow');
529
- }
530
- $delta += ($m - $n) * ($h + 1);
531
- $n = $m;
532
- foreach ($iter as $codePoint) {
533
- if ($codePoint < $n && 0 === ++$delta) {
534
- throw new \Exception('Integer overflow');
535
- } elseif ($codePoint === $n) {
536
- $q = $delta;
537
- for ($k = self::BASE;; $k += self::BASE) {
538
- if ($k <= $bias) {
539
- $t = self::TMIN;
540
- } elseif ($k >= $bias + self::TMAX) {
541
- $t = self::TMAX;
542
- } else {
543
- $t = $k - $bias;
544
- }
545
- if ($q < $t) {
546
- break;
547
- }
548
- $qMinusT = $q - $t;
549
- $baseMinusT = self::BASE - $t;
550
- $output .= self::encodeDigit($t + $qMinusT % $baseMinusT, \false);
551
- ++$out;
552
- $q = \intdiv($qMinusT, $baseMinusT);
553
- }
554
- $output .= self::encodeDigit($q, \false);
555
- ++$out;
556
- $bias = self::adaptBias($delta, $h + 1, $h === $b);
557
- $delta = 0;
558
- ++$h;
559
- }
560
- }
561
- ++$delta;
562
- ++$n;
563
- }
564
- return $output;
565
- }
566
- /**
567
- * @see https://tools.ietf.org/html/rfc3492#section-6.1
568
- *
569
- * @param int $delta
570
- * @param int $numPoints
571
- * @param bool $firstTime
572
- *
573
- * @return int
574
- */
575
- private static function adaptBias($delta, $numPoints, $firstTime)
576
- {
577
- // xxx >> 1 is a faster way of doing intdiv(xxx, 2)
578
- $delta = $firstTime ? \intdiv($delta, self::DAMP) : $delta >> 1;
579
- $delta += \intdiv($delta, $numPoints);
580
- $k = 0;
581
- while ($delta > (self::BASE - self::TMIN) * self::TMAX >> 1) {
582
- $delta = \intdiv($delta, self::BASE - self::TMIN);
583
- $k += self::BASE;
584
- }
585
- return $k + \intdiv((self::BASE - self::TMIN + 1) * $delta, $delta + self::SKEW);
586
- }
587
- /**
588
- * @param int $d
589
- * @param bool $flag
590
- *
591
- * @return string
592
- */
593
- private static function encodeDigit($d, $flag)
594
- {
595
- return \chr($d + 22 + 75 * ($d < 26 ? 1 : 0) - (($flag ? 1 : 0) << 5));
596
- }
597
- /**
598
- * Takes a UTF-8 encoded string and converts it into a series of integer code points. Any
599
- * invalid byte sequences will be replaced by a U+FFFD replacement code point.
600
- *
601
- * @see https://encoding.spec.whatwg.org/#utf-8-decoder
602
- *
603
- * @param string $input
604
- *
605
- * @return array<int, int>
606
- */
607
- private static function utf8Decode($input)
608
- {
609
- $bytesSeen = 0;
610
- $bytesNeeded = 0;
611
- $lowerBoundary = 0x80;
612
- $upperBoundary = 0xbf;
613
- $codePoint = 0;
614
- $codePoints = array();
615
- $length = \strlen($input);
616
- for ($i = 0; $i < $length; ++$i) {
617
- $byte = \ord($input[$i]);
618
- if (0 === $bytesNeeded) {
619
- if ($byte >= 0x0 && $byte <= 0x7f) {
620
- $codePoints[] = $byte;
621
- continue;
622
- }
623
- if ($byte >= 0xc2 && $byte <= 0xdf) {
624
- $bytesNeeded = 1;
625
- $codePoint = $byte & 0x1f;
626
- } elseif ($byte >= 0xe0 && $byte <= 0xef) {
627
- if (0xe0 === $byte) {
628
- $lowerBoundary = 0xa0;
629
- } elseif (0xed === $byte) {
630
- $upperBoundary = 0x9f;
631
- }
632
- $bytesNeeded = 2;
633
- $codePoint = $byte & 0xf;
634
- } elseif ($byte >= 0xf0 && $byte <= 0xf4) {
635
- if (0xf0 === $byte) {
636
- $lowerBoundary = 0x90;
637
- } elseif (0xf4 === $byte) {
638
- $upperBoundary = 0x8f;
639
- }
640
- $bytesNeeded = 3;
641
- $codePoint = $byte & 0x7;
642
- } else {
643
- $codePoints[] = 0xfffd;
644
- }
645
- continue;
646
- }
647
- if ($byte < $lowerBoundary || $byte > $upperBoundary) {
648
- $codePoint = 0;
649
- $bytesNeeded = 0;
650
- $bytesSeen = 0;
651
- $lowerBoundary = 0x80;
652
- $upperBoundary = 0xbf;
653
- --$i;
654
- $codePoints[] = 0xfffd;
655
- continue;
656
- }
657
- $lowerBoundary = 0x80;
658
- $upperBoundary = 0xbf;
659
- $codePoint = $codePoint << 6 | $byte & 0x3f;
660
- if (++$bytesSeen !== $bytesNeeded) {
661
- continue;
662
- }
663
- $codePoints[] = $codePoint;
664
- $codePoint = 0;
665
- $bytesNeeded = 0;
666
- $bytesSeen = 0;
667
- }
668
- // String unexpectedly ended, so append a U+FFFD code point.
669
- if (0 !== $bytesNeeded) {
670
- $codePoints[] = 0xfffd;
671
- }
672
- return $codePoints;
673
- }
674
- /**
675
- * @param int $codePoint
676
- * @param bool $useSTD3ASCIIRules
677
- *
678
- * @return array{status: string, mapping?: string}
679
- */
680
- private static function lookupCodePointStatus($codePoint, $useSTD3ASCIIRules)
681
- {
682
- if (!self::$mappingTableLoaded) {
683
- self::$mappingTableLoaded = \true;
684
- self::$mapped = (require __DIR__ . '/Resources/unidata/mapped.php');
685
- self::$ignored = (require __DIR__ . '/Resources/unidata/ignored.php');
686
- self::$deviation = (require __DIR__ . '/Resources/unidata/deviation.php');
687
- self::$disallowed = (require __DIR__ . '/Resources/unidata/disallowed.php');
688
- self::$disallowed_STD3_mapped = (require __DIR__ . '/Resources/unidata/disallowed_STD3_mapped.php');
689
- self::$disallowed_STD3_valid = (require __DIR__ . '/Resources/unidata/disallowed_STD3_valid.php');
690
- }
691
- if (isset(self::$mapped[$codePoint])) {
692
- return array('status' => 'mapped', 'mapping' => self::$mapped[$codePoint]);
693
- }
694
- if (isset(self::$ignored[$codePoint])) {
695
- return array('status' => 'ignored');
696
- }
697
- if (isset(self::$deviation[$codePoint])) {
698
- return array('status' => 'deviation', 'mapping' => self::$deviation[$codePoint]);
699
- }
700
- if (isset(self::$disallowed[$codePoint]) || \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges::inRange($codePoint)) {
701
- return array('status' => 'disallowed');
702
- }
703
- $isDisallowedMapped = isset(self::$disallowed_STD3_mapped[$codePoint]);
704
- if ($isDisallowedMapped || isset(self::$disallowed_STD3_valid[$codePoint])) {
705
- $status = 'disallowed';
706
- if (!$useSTD3ASCIIRules) {
707
- $status = $isDisallowedMapped ? 'mapped' : 'valid';
708
- }
709
- if ($isDisallowedMapped) {
710
- return array('status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]);
711
- }
712
- return array('status' => $status);
713
- }
714
- return array('status' => 'valid');
715
- }
716
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Info.php DELETED
@@ -1,22 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com> and Trevor Rowbotham <trevor.rowbotham@pm.me>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
- namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn;
12
-
13
- /**
14
- * @internal
15
- */
16
- class Info
17
- {
18
- public $bidiDomain = \false;
19
- public $errors = 0;
20
- public $validBidiDomain = \true;
21
- public $transitionalDifferent = \false;
22
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php DELETED
@@ -1,286 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata;
4
-
5
- /**
6
- * @internal
7
- */
8
- final class DisallowedRanges
9
- {
10
- /**
11
- * @param int $codePoint
12
- *
13
- * @return bool
14
- */
15
- public static function inRange($codePoint)
16
- {
17
- if ($codePoint >= 128 && $codePoint <= 159) {
18
- return \true;
19
- }
20
- if ($codePoint >= 2155 && $codePoint <= 2207) {
21
- return \true;
22
- }
23
- if ($codePoint >= 3676 && $codePoint <= 3712) {
24
- return \true;
25
- }
26
- if ($codePoint >= 3808 && $codePoint <= 3839) {
27
- return \true;
28
- }
29
- if ($codePoint >= 4059 && $codePoint <= 4095) {
30
- return \true;
31
- }
32
- if ($codePoint >= 4256 && $codePoint <= 4293) {
33
- return \true;
34
- }
35
- if ($codePoint >= 6849 && $codePoint <= 6911) {
36
- return \true;
37
- }
38
- if ($codePoint >= 11859 && $codePoint <= 11903) {
39
- return \true;
40
- }
41
- if ($codePoint >= 42955 && $codePoint <= 42996) {
42
- return \true;
43
- }
44
- if ($codePoint >= 55296 && $codePoint <= 57343) {
45
- return \true;
46
- }
47
- if ($codePoint >= 57344 && $codePoint <= 63743) {
48
- return \true;
49
- }
50
- if ($codePoint >= 64218 && $codePoint <= 64255) {
51
- return \true;
52
- }
53
- if ($codePoint >= 64976 && $codePoint <= 65007) {
54
- return \true;
55
- }
56
- if ($codePoint >= 65630 && $codePoint <= 65663) {
57
- return \true;
58
- }
59
- if ($codePoint >= 65953 && $codePoint <= 65999) {
60
- return \true;
61
- }
62
- if ($codePoint >= 66046 && $codePoint <= 66175) {
63
- return \true;
64
- }
65
- if ($codePoint >= 66518 && $codePoint <= 66559) {
66
- return \true;
67
- }
68
- if ($codePoint >= 66928 && $codePoint <= 67071) {
69
- return \true;
70
- }
71
- if ($codePoint >= 67432 && $codePoint <= 67583) {
72
- return \true;
73
- }
74
- if ($codePoint >= 67760 && $codePoint <= 67807) {
75
- return \true;
76
- }
77
- if ($codePoint >= 67904 && $codePoint <= 67967) {
78
- return \true;
79
- }
80
- if ($codePoint >= 68256 && $codePoint <= 68287) {
81
- return \true;
82
- }
83
- if ($codePoint >= 68528 && $codePoint <= 68607) {
84
- return \true;
85
- }
86
- if ($codePoint >= 68681 && $codePoint <= 68735) {
87
- return \true;
88
- }
89
- if ($codePoint >= 68922 && $codePoint <= 69215) {
90
- return \true;
91
- }
92
- if ($codePoint >= 69298 && $codePoint <= 69375) {
93
- return \true;
94
- }
95
- if ($codePoint >= 69466 && $codePoint <= 69551) {
96
- return \true;
97
- }
98
- if ($codePoint >= 70207 && $codePoint <= 70271) {
99
- return \true;
100
- }
101
- if ($codePoint >= 70517 && $codePoint <= 70655) {
102
- return \true;
103
- }
104
- if ($codePoint >= 70874 && $codePoint <= 71039) {
105
- return \true;
106
- }
107
- if ($codePoint >= 71134 && $codePoint <= 71167) {
108
- return \true;
109
- }
110
- if ($codePoint >= 71370 && $codePoint <= 71423) {
111
- return \true;
112
- }
113
- if ($codePoint >= 71488 && $codePoint <= 71679) {
114
- return \true;
115
- }
116
- if ($codePoint >= 71740 && $codePoint <= 71839) {
117
- return \true;
118
- }
119
- if ($codePoint >= 72026 && $codePoint <= 72095) {
120
- return \true;
121
- }
122
- if ($codePoint >= 72441 && $codePoint <= 72703) {
123
- return \true;
124
- }
125
- if ($codePoint >= 72887 && $codePoint <= 72959) {
126
- return \true;
127
- }
128
- if ($codePoint >= 73130 && $codePoint <= 73439) {
129
- return \true;
130
- }
131
- if ($codePoint >= 73465 && $codePoint <= 73647) {
132
- return \true;
133
- }
134
- if ($codePoint >= 74650 && $codePoint <= 74751) {
135
- return \true;
136
- }
137
- if ($codePoint >= 75076 && $codePoint <= 77823) {
138
- return \true;
139
- }
140
- if ($codePoint >= 78905 && $codePoint <= 82943) {
141
- return \true;
142
- }
143
- if ($codePoint >= 83527 && $codePoint <= 92159) {
144
- return \true;
145
- }
146
- if ($codePoint >= 92784 && $codePoint <= 92879) {
147
- return \true;
148
- }
149
- if ($codePoint >= 93072 && $codePoint <= 93759) {
150
- return \true;
151
- }
152
- if ($codePoint >= 93851 && $codePoint <= 93951) {
153
- return \true;
154
- }
155
- if ($codePoint >= 94112 && $codePoint <= 94175) {
156
- return \true;
157
- }
158
- if ($codePoint >= 101590 && $codePoint <= 101631) {
159
- return \true;
160
- }
161
- if ($codePoint >= 101641 && $codePoint <= 110591) {
162
- return \true;
163
- }
164
- if ($codePoint >= 110879 && $codePoint <= 110927) {
165
- return \true;
166
- }
167
- if ($codePoint >= 111356 && $codePoint <= 113663) {
168
- return \true;
169
- }
170
- if ($codePoint >= 113828 && $codePoint <= 118783) {
171
- return \true;
172
- }
173
- if ($codePoint >= 119366 && $codePoint <= 119519) {
174
- return \true;
175
- }
176
- if ($codePoint >= 119673 && $codePoint <= 119807) {
177
- return \true;
178
- }
179
- if ($codePoint >= 121520 && $codePoint <= 122879) {
180
- return \true;
181
- }
182
- if ($codePoint >= 122923 && $codePoint <= 123135) {
183
- return \true;
184
- }
185
- if ($codePoint >= 123216 && $codePoint <= 123583) {
186
- return \true;
187
- }
188
- if ($codePoint >= 123648 && $codePoint <= 124927) {
189
- return \true;
190
- }
191
- if ($codePoint >= 125143 && $codePoint <= 125183) {
192
- return \true;
193
- }
194
- if ($codePoint >= 125280 && $codePoint <= 126064) {
195
- return \true;
196
- }
197
- if ($codePoint >= 126133 && $codePoint <= 126208) {
198
- return \true;
199
- }
200
- if ($codePoint >= 126270 && $codePoint <= 126463) {
201
- return \true;
202
- }
203
- if ($codePoint >= 126652 && $codePoint <= 126703) {
204
- return \true;
205
- }
206
- if ($codePoint >= 126706 && $codePoint <= 126975) {
207
- return \true;
208
- }
209
- if ($codePoint >= 127406 && $codePoint <= 127461) {
210
- return \true;
211
- }
212
- if ($codePoint >= 127590 && $codePoint <= 127743) {
213
- return \true;
214
- }
215
- if ($codePoint >= 129202 && $codePoint <= 129279) {
216
- return \true;
217
- }
218
- if ($codePoint >= 129751 && $codePoint <= 129791) {
219
- return \true;
220
- }
221
- if ($codePoint >= 129995 && $codePoint <= 130031) {
222
- return \true;
223
- }
224
- if ($codePoint >= 130042 && $codePoint <= 131069) {
225
- return \true;
226
- }
227
- if ($codePoint >= 173790 && $codePoint <= 173823) {
228
- return \true;
229
- }
230
- if ($codePoint >= 191457 && $codePoint <= 194559) {
231
- return \true;
232
- }
233
- if ($codePoint >= 195102 && $codePoint <= 196605) {
234
- return \true;
235
- }
236
- if ($codePoint >= 201547 && $codePoint <= 262141) {
237
- return \true;
238
- }
239
- if ($codePoint >= 262144 && $codePoint <= 327677) {
240
- return \true;
241
- }
242
- if ($codePoint >= 327680 && $codePoint <= 393213) {
243
- return \true;
244
- }
245
- if ($codePoint >= 393216 && $codePoint <= 458749) {
246
- return \true;
247
- }
248
- if ($codePoint >= 458752 && $codePoint <= 524285) {
249
- return \true;
250
- }
251
- if ($codePoint >= 524288 && $codePoint <= 589821) {
252
- return \true;
253
- }
254
- if ($codePoint >= 589824 && $codePoint <= 655357) {
255
- return \true;
256
- }
257
- if ($codePoint >= 655360 && $codePoint <= 720893) {
258
- return \true;
259
- }
260
- if ($codePoint >= 720896 && $codePoint <= 786429) {
261
- return \true;
262
- }
263
- if ($codePoint >= 786432 && $codePoint <= 851965) {
264
- return \true;
265
- }
266
- if ($codePoint >= 851968 && $codePoint <= 917501) {
267
- return \true;
268
- }
269
- if ($codePoint >= 917536 && $codePoint <= 917631) {
270
- return \true;
271
- }
272
- if ($codePoint >= 917632 && $codePoint <= 917759) {
273
- return \true;
274
- }
275
- if ($codePoint >= 918000 && $codePoint <= 983037) {
276
- return \true;
277
- }
278
- if ($codePoint >= 983040 && $codePoint <= 1048573) {
279
- return \true;
280
- }
281
- if ($codePoint >= 1048576 && $codePoint <= 1114109) {
282
- return \true;
283
- }
284
- return \false;
285
- }
286
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata;
4
-
5
- /**
6
- * @internal
7
- */
8
- final class Regex
9
- {
10
- const COMBINING_MARK = '/^[\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{0903}\\x{093A}\\x{093B}\\x{093C}\\x{093E}-\\x{0940}\\x{0941}-\\x{0948}\\x{0949}-\\x{094C}\\x{094D}\\x{094E}-\\x{094F}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{0982}-\\x{0983}\\x{09BC}\\x{09BE}-\\x{09C0}\\x{09C1}-\\x{09C4}\\x{09C7}-\\x{09C8}\\x{09CB}-\\x{09CC}\\x{09CD}\\x{09D7}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A03}\\x{0A3C}\\x{0A3E}-\\x{0A40}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0A83}\\x{0ABC}\\x{0ABE}-\\x{0AC0}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0AC9}\\x{0ACB}-\\x{0ACC}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B02}-\\x{0B03}\\x{0B3C}\\x{0B3E}\\x{0B3F}\\x{0B40}\\x{0B41}-\\x{0B44}\\x{0B47}-\\x{0B48}\\x{0B4B}-\\x{0B4C}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B57}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BBE}-\\x{0BBF}\\x{0BC0}\\x{0BC1}-\\x{0BC2}\\x{0BC6}-\\x{0BC8}\\x{0BCA}-\\x{0BCC}\\x{0BCD}\\x{0BD7}\\x{0C00}\\x{0C01}-\\x{0C03}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C41}-\\x{0C44}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0C82}-\\x{0C83}\\x{0CBC}\\x{0CBE}\\x{0CBF}\\x{0CC0}-\\x{0CC4}\\x{0CC6}\\x{0CC7}-\\x{0CC8}\\x{0CCA}-\\x{0CCB}\\x{0CCC}-\\x{0CCD}\\x{0CD5}-\\x{0CD6}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D02}-\\x{0D03}\\x{0D3B}-\\x{0D3C}\\x{0D3E}-\\x{0D40}\\x{0D41}-\\x{0D44}\\x{0D46}-\\x{0D48}\\x{0D4A}-\\x{0D4C}\\x{0D4D}\\x{0D57}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0D82}-\\x{0D83}\\x{0DCA}\\x{0DCF}-\\x{0DD1}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0DD8}-\\x{0DDF}\\x{0DF2}-\\x{0DF3}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3E}-\\x{0F3F}\\x{0F71}-\\x{0F7E}\\x{0F7F}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102B}-\\x{102C}\\x{102D}-\\x{1030}\\x{1031}\\x{1032}-\\x{1037}\\x{1038}\\x{1039}-\\x{103A}\\x{103B}-\\x{103C}\\x{103D}-\\x{103E}\\x{1056}-\\x{1057}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1062}-\\x{1064}\\x{1067}-\\x{106D}\\x{1071}-\\x{1074}\\x{1082}\\x{1083}-\\x{1084}\\x{1085}-\\x{1086}\\x{1087}-\\x{108C}\\x{108D}\\x{108F}\\x{109A}-\\x{109C}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B6}\\x{17B7}-\\x{17BD}\\x{17BE}-\\x{17C5}\\x{17C6}\\x{17C7}-\\x{17C8}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1923}-\\x{1926}\\x{1927}-\\x{1928}\\x{1929}-\\x{192B}\\x{1930}-\\x{1931}\\x{1932}\\x{1933}-\\x{1938}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A19}-\\x{1A1A}\\x{1A1B}\\x{1A55}\\x{1A56}\\x{1A57}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A61}\\x{1A62}\\x{1A63}-\\x{1A64}\\x{1A65}-\\x{1A6C}\\x{1A6D}-\\x{1A72}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B04}\\x{1B34}\\x{1B35}\\x{1B36}-\\x{1B3A}\\x{1B3B}\\x{1B3C}\\x{1B3D}-\\x{1B41}\\x{1B42}\\x{1B43}-\\x{1B44}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1B82}\\x{1BA1}\\x{1BA2}-\\x{1BA5}\\x{1BA6}-\\x{1BA7}\\x{1BA8}-\\x{1BA9}\\x{1BAA}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE7}\\x{1BE8}-\\x{1BE9}\\x{1BEA}-\\x{1BEC}\\x{1BED}\\x{1BEE}\\x{1BEF}-\\x{1BF1}\\x{1BF2}-\\x{1BF3}\\x{1C24}-\\x{1C2B}\\x{1C2C}-\\x{1C33}\\x{1C34}-\\x{1C35}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE1}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF7}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{302E}-\\x{302F}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A823}-\\x{A824}\\x{A825}-\\x{A826}\\x{A827}\\x{A82C}\\x{A880}-\\x{A881}\\x{A8B4}-\\x{A8C3}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A952}-\\x{A953}\\x{A980}-\\x{A982}\\x{A983}\\x{A9B3}\\x{A9B4}-\\x{A9B5}\\x{A9B6}-\\x{A9B9}\\x{A9BA}-\\x{A9BB}\\x{A9BC}-\\x{A9BD}\\x{A9BE}-\\x{A9C0}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA2F}-\\x{AA30}\\x{AA31}-\\x{AA32}\\x{AA33}-\\x{AA34}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA4D}\\x{AA7B}\\x{AA7C}\\x{AA7D}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEB}\\x{AAEC}-\\x{AAED}\\x{AAEE}-\\x{AAEF}\\x{AAF5}\\x{AAF6}\\x{ABE3}-\\x{ABE4}\\x{ABE5}\\x{ABE6}-\\x{ABE7}\\x{ABE8}\\x{ABE9}-\\x{ABEA}\\x{ABEC}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11000}\\x{11001}\\x{11002}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{11082}\\x{110B0}-\\x{110B2}\\x{110B3}-\\x{110B6}\\x{110B7}-\\x{110B8}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112C}\\x{1112D}-\\x{11134}\\x{11145}-\\x{11146}\\x{11173}\\x{11180}-\\x{11181}\\x{11182}\\x{111B3}-\\x{111B5}\\x{111B6}-\\x{111BE}\\x{111BF}-\\x{111C0}\\x{111C9}-\\x{111CC}\\x{111CE}\\x{111CF}\\x{1122C}-\\x{1122E}\\x{1122F}-\\x{11231}\\x{11232}-\\x{11233}\\x{11234}\\x{11235}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E0}-\\x{112E2}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{11302}-\\x{11303}\\x{1133B}-\\x{1133C}\\x{1133E}-\\x{1133F}\\x{11340}\\x{11341}-\\x{11344}\\x{11347}-\\x{11348}\\x{1134B}-\\x{1134D}\\x{11357}\\x{11362}-\\x{11363}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11435}-\\x{11437}\\x{11438}-\\x{1143F}\\x{11440}-\\x{11441}\\x{11442}-\\x{11444}\\x{11445}\\x{11446}\\x{1145E}\\x{114B0}-\\x{114B2}\\x{114B3}-\\x{114B8}\\x{114B9}\\x{114BA}\\x{114BB}-\\x{114BE}\\x{114BF}-\\x{114C0}\\x{114C1}\\x{114C2}-\\x{114C3}\\x{115AF}-\\x{115B1}\\x{115B2}-\\x{115B5}\\x{115B8}-\\x{115BB}\\x{115BC}-\\x{115BD}\\x{115BE}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11630}-\\x{11632}\\x{11633}-\\x{1163A}\\x{1163B}-\\x{1163C}\\x{1163D}\\x{1163E}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AC}\\x{116AD}\\x{116AE}-\\x{116AF}\\x{116B0}-\\x{116B5}\\x{116B6}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11720}-\\x{11721}\\x{11722}-\\x{11725}\\x{11726}\\x{11727}-\\x{1172B}\\x{1182C}-\\x{1182E}\\x{1182F}-\\x{11837}\\x{11838}\\x{11839}-\\x{1183A}\\x{11930}-\\x{11935}\\x{11937}-\\x{11938}\\x{1193B}-\\x{1193C}\\x{1193D}\\x{1193E}\\x{11940}\\x{11942}\\x{11943}\\x{119D1}-\\x{119D3}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119DC}-\\x{119DF}\\x{119E0}\\x{119E4}\\x{11A01}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A39}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A57}-\\x{11A58}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A97}\\x{11A98}-\\x{11A99}\\x{11C2F}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C3E}\\x{11C3F}\\x{11C92}-\\x{11CA7}\\x{11CA9}\\x{11CAA}-\\x{11CB0}\\x{11CB1}\\x{11CB2}-\\x{11CB3}\\x{11CB4}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D8A}-\\x{11D8E}\\x{11D90}-\\x{11D91}\\x{11D93}-\\x{11D94}\\x{11D95}\\x{11D96}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11EF5}-\\x{11EF6}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F51}-\\x{16F87}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{16FF0}-\\x{16FF1}\\x{1BC9D}-\\x{1BC9E}\\x{1D165}-\\x{1D166}\\x{1D167}-\\x{1D169}\\x{1D16D}-\\x{1D172}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{E0100}-\\x{E01EF}]/u';
11
- const RTL_LABEL = '/[\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06DD}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08E2}\\x{200F}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}]/u';
12
- const BIDI_STEP_1_LTR = '/^[^\\x{0000}-\\x{0008}\\x{0009}\\x{000A}\\x{000B}\\x{000C}\\x{000D}\\x{000E}-\\x{001B}\\x{001C}-\\x{001E}\\x{001F}\\x{0020}\\x{0021}-\\x{0022}\\x{0023}\\x{0024}\\x{0025}\\x{0026}-\\x{0027}\\x{0028}\\x{0029}\\x{002A}\\x{002B}\\x{002C}\\x{002D}\\x{002E}-\\x{002F}\\x{0030}-\\x{0039}\\x{003A}\\x{003B}\\x{003C}-\\x{003E}\\x{003F}-\\x{0040}\\x{005B}\\x{005C}\\x{005D}\\x{005E}\\x{005F}\\x{0060}\\x{007B}\\x{007C}\\x{007D}\\x{007E}\\x{007F}-\\x{0084}\\x{0085}\\x{0086}-\\x{009F}\\x{00A0}\\x{00A1}\\x{00A2}-\\x{00A5}\\x{00A6}\\x{00A7}\\x{00A8}\\x{00A9}\\x{00AB}\\x{00AC}\\x{00AD}\\x{00AE}\\x{00AF}\\x{00B0}\\x{00B1}\\x{00B2}-\\x{00B3}\\x{00B4}\\x{00B6}-\\x{00B7}\\x{00B8}\\x{00B9}\\x{00BB}\\x{00BC}-\\x{00BE}\\x{00BF}\\x{00D7}\\x{00F7}\\x{02B9}-\\x{02BA}\\x{02C2}-\\x{02C5}\\x{02C6}-\\x{02CF}\\x{02D2}-\\x{02DF}\\x{02E5}-\\x{02EB}\\x{02EC}\\x{02ED}\\x{02EF}-\\x{02FF}\\x{0300}-\\x{036F}\\x{0374}\\x{0375}\\x{037E}\\x{0384}-\\x{0385}\\x{0387}\\x{03F6}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{058A}\\x{058D}-\\x{058E}\\x{058F}\\x{0590}\\x{0591}-\\x{05BD}\\x{05BE}\\x{05BF}\\x{05C0}\\x{05C1}-\\x{05C2}\\x{05C3}\\x{05C4}-\\x{05C5}\\x{05C6}\\x{05C7}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0606}-\\x{0607}\\x{0608}\\x{0609}-\\x{060A}\\x{060B}\\x{060C}\\x{060D}\\x{060E}-\\x{060F}\\x{0610}-\\x{061A}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{064B}-\\x{065F}\\x{0660}-\\x{0669}\\x{066A}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0670}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06D6}-\\x{06DC}\\x{06DD}\\x{06DE}\\x{06DF}-\\x{06E4}\\x{06E5}-\\x{06E6}\\x{06E7}-\\x{06E8}\\x{06E9}\\x{06EA}-\\x{06ED}\\x{06EE}-\\x{06EF}\\x{06F0}-\\x{06F9}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0711}\\x{0712}-\\x{072F}\\x{0730}-\\x{074A}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07A6}-\\x{07B0}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07EB}-\\x{07F3}\\x{07F4}-\\x{07F5}\\x{07F6}\\x{07F7}-\\x{07F9}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FD}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{0816}-\\x{0819}\\x{081A}\\x{081B}-\\x{0823}\\x{0824}\\x{0825}-\\x{0827}\\x{0828}\\x{0829}-\\x{082D}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{0859}-\\x{085B}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08D3}-\\x{08E1}\\x{08E2}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09F2}-\\x{09F3}\\x{09FB}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AF1}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0BF3}-\\x{0BF8}\\x{0BF9}\\x{0BFA}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C78}-\\x{0C7E}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E3F}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3A}\\x{0F3B}\\x{0F3C}\\x{0F3D}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1390}-\\x{1399}\\x{1400}\\x{1680}\\x{169B}\\x{169C}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DB}\\x{17DD}\\x{17F0}-\\x{17F9}\\x{1800}-\\x{1805}\\x{1806}\\x{1807}-\\x{180A}\\x{180B}-\\x{180D}\\x{180E}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1940}\\x{1944}-\\x{1945}\\x{19DE}-\\x{19FF}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{1FBD}\\x{1FBF}-\\x{1FC1}\\x{1FCD}-\\x{1FCF}\\x{1FDD}-\\x{1FDF}\\x{1FED}-\\x{1FEF}\\x{1FFD}-\\x{1FFE}\\x{2000}-\\x{200A}\\x{200B}-\\x{200D}\\x{200F}\\x{2010}-\\x{2015}\\x{2016}-\\x{2017}\\x{2018}\\x{2019}\\x{201A}\\x{201B}-\\x{201C}\\x{201D}\\x{201E}\\x{201F}\\x{2020}-\\x{2027}\\x{2028}\\x{2029}\\x{202A}\\x{202B}\\x{202C}\\x{202D}\\x{202E}\\x{202F}\\x{2030}-\\x{2034}\\x{2035}-\\x{2038}\\x{2039}\\x{203A}\\x{203B}-\\x{203E}\\x{203F}-\\x{2040}\\x{2041}-\\x{2043}\\x{2044}\\x{2045}\\x{2046}\\x{2047}-\\x{2051}\\x{2052}\\x{2053}\\x{2054}\\x{2055}-\\x{205E}\\x{205F}\\x{2060}-\\x{2064}\\x{2065}\\x{2066}\\x{2067}\\x{2068}\\x{2069}\\x{206A}-\\x{206F}\\x{2070}\\x{2074}-\\x{2079}\\x{207A}-\\x{207B}\\x{207C}\\x{207D}\\x{207E}\\x{2080}-\\x{2089}\\x{208A}-\\x{208B}\\x{208C}\\x{208D}\\x{208E}\\x{20A0}-\\x{20BF}\\x{20C0}-\\x{20CF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2100}-\\x{2101}\\x{2103}-\\x{2106}\\x{2108}-\\x{2109}\\x{2114}\\x{2116}-\\x{2117}\\x{2118}\\x{211E}-\\x{2123}\\x{2125}\\x{2127}\\x{2129}\\x{212E}\\x{213A}-\\x{213B}\\x{2140}-\\x{2144}\\x{214A}\\x{214B}\\x{214C}-\\x{214D}\\x{2150}-\\x{215F}\\x{2189}\\x{218A}-\\x{218B}\\x{2190}-\\x{2194}\\x{2195}-\\x{2199}\\x{219A}-\\x{219B}\\x{219C}-\\x{219F}\\x{21A0}\\x{21A1}-\\x{21A2}\\x{21A3}\\x{21A4}-\\x{21A5}\\x{21A6}\\x{21A7}-\\x{21AD}\\x{21AE}\\x{21AF}-\\x{21CD}\\x{21CE}-\\x{21CF}\\x{21D0}-\\x{21D1}\\x{21D2}\\x{21D3}\\x{21D4}\\x{21D5}-\\x{21F3}\\x{21F4}-\\x{2211}\\x{2212}\\x{2213}\\x{2214}-\\x{22FF}\\x{2300}-\\x{2307}\\x{2308}\\x{2309}\\x{230A}\\x{230B}\\x{230C}-\\x{231F}\\x{2320}-\\x{2321}\\x{2322}-\\x{2328}\\x{2329}\\x{232A}\\x{232B}-\\x{2335}\\x{237B}\\x{237C}\\x{237D}-\\x{2394}\\x{2396}-\\x{239A}\\x{239B}-\\x{23B3}\\x{23B4}-\\x{23DB}\\x{23DC}-\\x{23E1}\\x{23E2}-\\x{2426}\\x{2440}-\\x{244A}\\x{2460}-\\x{2487}\\x{2488}-\\x{249B}\\x{24EA}-\\x{24FF}\\x{2500}-\\x{25B6}\\x{25B7}\\x{25B8}-\\x{25C0}\\x{25C1}\\x{25C2}-\\x{25F7}\\x{25F8}-\\x{25FF}\\x{2600}-\\x{266E}\\x{266F}\\x{2670}-\\x{26AB}\\x{26AD}-\\x{2767}\\x{2768}\\x{2769}\\x{276A}\\x{276B}\\x{276C}\\x{276D}\\x{276E}\\x{276F}\\x{2770}\\x{2771}\\x{2772}\\x{2773}\\x{2774}\\x{2775}\\x{2776}-\\x{2793}\\x{2794}-\\x{27BF}\\x{27C0}-\\x{27C4}\\x{27C5}\\x{27C6}\\x{27C7}-\\x{27E5}\\x{27E6}\\x{27E7}\\x{27E8}\\x{27E9}\\x{27EA}\\x{27EB}\\x{27EC}\\x{27ED}\\x{27EE}\\x{27EF}\\x{27F0}-\\x{27FF}\\x{2900}-\\x{2982}\\x{2983}\\x{2984}\\x{2985}\\x{2986}\\x{2987}\\x{2988}\\x{2989}\\x{298A}\\x{298B}\\x{298C}\\x{298D}\\x{298E}\\x{298F}\\x{2990}\\x{2991}\\x{2992}\\x{2993}\\x{2994}\\x{2995}\\x{2996}\\x{2997}\\x{2998}\\x{2999}-\\x{29D7}\\x{29D8}\\x{29D9}\\x{29DA}\\x{29DB}\\x{29DC}-\\x{29FB}\\x{29FC}\\x{29FD}\\x{29FE}-\\x{2AFF}\\x{2B00}-\\x{2B2F}\\x{2B30}-\\x{2B44}\\x{2B45}-\\x{2B46}\\x{2B47}-\\x{2B4C}\\x{2B4D}-\\x{2B73}\\x{2B76}-\\x{2B95}\\x{2B97}-\\x{2BFF}\\x{2CE5}-\\x{2CEA}\\x{2CEF}-\\x{2CF1}\\x{2CF9}-\\x{2CFC}\\x{2CFD}\\x{2CFE}-\\x{2CFF}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{2E00}-\\x{2E01}\\x{2E02}\\x{2E03}\\x{2E04}\\x{2E05}\\x{2E06}-\\x{2E08}\\x{2E09}\\x{2E0A}\\x{2E0B}\\x{2E0C}\\x{2E0D}\\x{2E0E}-\\x{2E16}\\x{2E17}\\x{2E18}-\\x{2E19}\\x{2E1A}\\x{2E1B}\\x{2E1C}\\x{2E1D}\\x{2E1E}-\\x{2E1F}\\x{2E20}\\x{2E21}\\x{2E22}\\x{2E23}\\x{2E24}\\x{2E25}\\x{2E26}\\x{2E27}\\x{2E28}\\x{2E29}\\x{2E2A}-\\x{2E2E}\\x{2E2F}\\x{2E30}-\\x{2E39}\\x{2E3A}-\\x{2E3B}\\x{2E3C}-\\x{2E3F}\\x{2E40}\\x{2E41}\\x{2E42}\\x{2E43}-\\x{2E4F}\\x{2E50}-\\x{2E51}\\x{2E52}\\x{2E80}-\\x{2E99}\\x{2E9B}-\\x{2EF3}\\x{2F00}-\\x{2FD5}\\x{2FF0}-\\x{2FFB}\\x{3000}\\x{3001}-\\x{3003}\\x{3004}\\x{3008}\\x{3009}\\x{300A}\\x{300B}\\x{300C}\\x{300D}\\x{300E}\\x{300F}\\x{3010}\\x{3011}\\x{3012}-\\x{3013}\\x{3014}\\x{3015}\\x{3016}\\x{3017}\\x{3018}\\x{3019}\\x{301A}\\x{301B}\\x{301C}\\x{301D}\\x{301E}-\\x{301F}\\x{3020}\\x{302A}-\\x{302D}\\x{3030}\\x{3036}-\\x{3037}\\x{303D}\\x{303E}-\\x{303F}\\x{3099}-\\x{309A}\\x{309B}-\\x{309C}\\x{30A0}\\x{30FB}\\x{31C0}-\\x{31E3}\\x{321D}-\\x{321E}\\x{3250}\\x{3251}-\\x{325F}\\x{327C}-\\x{327E}\\x{32B1}-\\x{32BF}\\x{32CC}-\\x{32CF}\\x{3377}-\\x{337A}\\x{33DE}-\\x{33DF}\\x{33FF}\\x{4DC0}-\\x{4DFF}\\x{A490}-\\x{A4C6}\\x{A60D}-\\x{A60F}\\x{A66F}\\x{A670}-\\x{A672}\\x{A673}\\x{A674}-\\x{A67D}\\x{A67E}\\x{A67F}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A700}-\\x{A716}\\x{A717}-\\x{A71F}\\x{A720}-\\x{A721}\\x{A788}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A828}-\\x{A82B}\\x{A82C}\\x{A838}\\x{A839}\\x{A874}-\\x{A877}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{AB6A}-\\x{AB6B}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1D}\\x{FB1E}\\x{FB1F}-\\x{FB28}\\x{FB29}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD3E}\\x{FD3F}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDD0}-\\x{FDEF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFD}\\x{FDFE}-\\x{FDFF}\\x{FE00}-\\x{FE0F}\\x{FE10}-\\x{FE16}\\x{FE17}\\x{FE18}\\x{FE19}\\x{FE20}-\\x{FE2F}\\x{FE30}\\x{FE31}-\\x{FE32}\\x{FE33}-\\x{FE34}\\x{FE35}\\x{FE36}\\x{FE37}\\x{FE38}\\x{FE39}\\x{FE3A}\\x{FE3B}\\x{FE3C}\\x{FE3D}\\x{FE3E}\\x{FE3F}\\x{FE40}\\x{FE41}\\x{FE42}\\x{FE43}\\x{FE44}\\x{FE45}-\\x{FE46}\\x{FE47}\\x{FE48}\\x{FE49}-\\x{FE4C}\\x{FE4D}-\\x{FE4F}\\x{FE50}\\x{FE51}\\x{FE52}\\x{FE54}\\x{FE55}\\x{FE56}-\\x{FE57}\\x{FE58}\\x{FE59}\\x{FE5A}\\x{FE5B}\\x{FE5C}\\x{FE5D}\\x{FE5E}\\x{FE5F}\\x{FE60}-\\x{FE61}\\x{FE62}\\x{FE63}\\x{FE64}-\\x{FE66}\\x{FE68}\\x{FE69}\\x{FE6A}\\x{FE6B}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FEFF}\\x{FF01}-\\x{FF02}\\x{FF03}\\x{FF04}\\x{FF05}\\x{FF06}-\\x{FF07}\\x{FF08}\\x{FF09}\\x{FF0A}\\x{FF0B}\\x{FF0C}\\x{FF0D}\\x{FF0E}-\\x{FF0F}\\x{FF10}-\\x{FF19}\\x{FF1A}\\x{FF1B}\\x{FF1C}-\\x{FF1E}\\x{FF1F}-\\x{FF20}\\x{FF3B}\\x{FF3C}\\x{FF3D}\\x{FF3E}\\x{FF3F}\\x{FF40}\\x{FF5B}\\x{FF5C}\\x{FF5D}\\x{FF5E}\\x{FF5F}\\x{FF60}\\x{FF61}\\x{FF62}\\x{FF63}\\x{FF64}-\\x{FF65}\\x{FFE0}-\\x{FFE1}\\x{FFE2}\\x{FFE3}\\x{FFE4}\\x{FFE5}-\\x{FFE6}\\x{FFE8}\\x{FFE9}-\\x{FFEC}\\x{FFED}-\\x{FFEE}\\x{FFF0}-\\x{FFF8}\\x{FFF9}-\\x{FFFB}\\x{FFFC}-\\x{FFFD}\\x{FFFE}-\\x{FFFF}\\x{10101}\\x{10140}-\\x{10174}\\x{10175}-\\x{10178}\\x{10179}-\\x{10189}\\x{1018A}-\\x{1018B}\\x{1018C}\\x{10190}-\\x{1019C}\\x{101A0}\\x{101FD}\\x{102E0}\\x{102E1}-\\x{102FB}\\x{10376}-\\x{1037A}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{1091F}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A01}-\\x{10A03}\\x{10A04}\\x{10A05}-\\x{10A06}\\x{10A07}-\\x{10A0B}\\x{10A0C}-\\x{10A0F}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A38}-\\x{10A3A}\\x{10A3B}-\\x{10A3E}\\x{10A3F}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE5}-\\x{10AE6}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B39}-\\x{10B3F}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D24}-\\x{10D27}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAB}-\\x{10EAC}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F46}-\\x{10F50}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{11001}\\x{11038}-\\x{11046}\\x{11052}-\\x{11065}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{11660}-\\x{1166C}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11FD5}-\\x{11FDC}\\x{11FDD}-\\x{11FE0}\\x{11FE1}-\\x{11FF1}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE2}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D200}-\\x{1D241}\\x{1D242}-\\x{1D244}\\x{1D245}\\x{1D300}-\\x{1D356}\\x{1D6DB}\\x{1D715}\\x{1D74F}\\x{1D789}\\x{1D7C3}\\x{1D7CE}-\\x{1D7FF}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E2FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D0}-\\x{1E8D6}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF0}-\\x{1EEF1}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F000}-\\x{1F02B}\\x{1F030}-\\x{1F093}\\x{1F0A0}-\\x{1F0AE}\\x{1F0B1}-\\x{1F0BF}\\x{1F0C1}-\\x{1F0CF}\\x{1F0D1}-\\x{1F0F5}\\x{1F100}-\\x{1F10A}\\x{1F10B}-\\x{1F10C}\\x{1F10D}-\\x{1F10F}\\x{1F12F}\\x{1F16A}-\\x{1F16F}\\x{1F1AD}\\x{1F260}-\\x{1F265}\\x{1F300}-\\x{1F3FA}\\x{1F3FB}-\\x{1F3FF}\\x{1F400}-\\x{1F6D7}\\x{1F6E0}-\\x{1F6EC}\\x{1F6F0}-\\x{1F6FC}\\x{1F700}-\\x{1F773}\\x{1F780}-\\x{1F7D8}\\x{1F7E0}-\\x{1F7EB}\\x{1F800}-\\x{1F80B}\\x{1F810}-\\x{1F847}\\x{1F850}-\\x{1F859}\\x{1F860}-\\x{1F887}\\x{1F890}-\\x{1F8AD}\\x{1F8B0}-\\x{1F8B1}\\x{1F900}-\\x{1F978}\\x{1F97A}-\\x{1F9CB}\\x{1F9CD}-\\x{1FA53}\\x{1FA60}-\\x{1FA6D}\\x{1FA70}-\\x{1FA74}\\x{1FA78}-\\x{1FA7A}\\x{1FA80}-\\x{1FA86}\\x{1FA90}-\\x{1FAA8}\\x{1FAB0}-\\x{1FAB6}\\x{1FAC0}-\\x{1FAC2}\\x{1FAD0}-\\x{1FAD6}\\x{1FB00}-\\x{1FB92}\\x{1FB94}-\\x{1FBCA}\\x{1FBF0}-\\x{1FBF9}\\x{1FFFE}-\\x{1FFFF}\\x{2FFFE}-\\x{2FFFF}\\x{3FFFE}-\\x{3FFFF}\\x{4FFFE}-\\x{4FFFF}\\x{5FFFE}-\\x{5FFFF}\\x{6FFFE}-\\x{6FFFF}\\x{7FFFE}-\\x{7FFFF}\\x{8FFFE}-\\x{8FFFF}\\x{9FFFE}-\\x{9FFFF}\\x{AFFFE}-\\x{AFFFF}\\x{BFFFE}-\\x{BFFFF}\\x{CFFFE}-\\x{CFFFF}\\x{DFFFE}-\\x{E0000}\\x{E0001}\\x{E0002}-\\x{E001F}\\x{E0020}-\\x{E007F}\\x{E0080}-\\x{E00FF}\\x{E0100}-\\x{E01EF}\\x{E01F0}-\\x{E0FFF}\\x{EFFFE}-\\x{EFFFF}\\x{FFFFE}-\\x{FFFFF}\\x{10FFFE}-\\x{10FFFF}]/u';
13
- const BIDI_STEP_1_RTL = '/^[\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{200F}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}]/u';
14
- const BIDI_STEP_2 = '/[^\\x{0000}-\\x{0008}\\x{000E}-\\x{001B}\\x{0021}-\\x{0022}\\x{0023}\\x{0024}\\x{0025}\\x{0026}-\\x{0027}\\x{0028}\\x{0029}\\x{002A}\\x{002B}\\x{002C}\\x{002D}\\x{002E}-\\x{002F}\\x{0030}-\\x{0039}\\x{003A}\\x{003B}\\x{003C}-\\x{003E}\\x{003F}-\\x{0040}\\x{005B}\\x{005C}\\x{005D}\\x{005E}\\x{005F}\\x{0060}\\x{007B}\\x{007C}\\x{007D}\\x{007E}\\x{007F}-\\x{0084}\\x{0086}-\\x{009F}\\x{00A0}\\x{00A1}\\x{00A2}-\\x{00A5}\\x{00A6}\\x{00A7}\\x{00A8}\\x{00A9}\\x{00AB}\\x{00AC}\\x{00AD}\\x{00AE}\\x{00AF}\\x{00B0}\\x{00B1}\\x{00B2}-\\x{00B3}\\x{00B4}\\x{00B6}-\\x{00B7}\\x{00B8}\\x{00B9}\\x{00BB}\\x{00BC}-\\x{00BE}\\x{00BF}\\x{00D7}\\x{00F7}\\x{02B9}-\\x{02BA}\\x{02C2}-\\x{02C5}\\x{02C6}-\\x{02CF}\\x{02D2}-\\x{02DF}\\x{02E5}-\\x{02EB}\\x{02EC}\\x{02ED}\\x{02EF}-\\x{02FF}\\x{0300}-\\x{036F}\\x{0374}\\x{0375}\\x{037E}\\x{0384}-\\x{0385}\\x{0387}\\x{03F6}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{058A}\\x{058D}-\\x{058E}\\x{058F}\\x{0590}\\x{0591}-\\x{05BD}\\x{05BE}\\x{05BF}\\x{05C0}\\x{05C1}-\\x{05C2}\\x{05C3}\\x{05C4}-\\x{05C5}\\x{05C6}\\x{05C7}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0606}-\\x{0607}\\x{0608}\\x{0609}-\\x{060A}\\x{060B}\\x{060C}\\x{060D}\\x{060E}-\\x{060F}\\x{0610}-\\x{061A}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{064B}-\\x{065F}\\x{0660}-\\x{0669}\\x{066A}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0670}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06D6}-\\x{06DC}\\x{06DD}\\x{06DE}\\x{06DF}-\\x{06E4}\\x{06E5}-\\x{06E6}\\x{06E7}-\\x{06E8}\\x{06E9}\\x{06EA}-\\x{06ED}\\x{06EE}-\\x{06EF}\\x{06F0}-\\x{06F9}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0711}\\x{0712}-\\x{072F}\\x{0730}-\\x{074A}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07A6}-\\x{07B0}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07EB}-\\x{07F3}\\x{07F4}-\\x{07F5}\\x{07F6}\\x{07F7}-\\x{07F9}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FD}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{0816}-\\x{0819}\\x{081A}\\x{081B}-\\x{0823}\\x{0824}\\x{0825}-\\x{0827}\\x{0828}\\x{0829}-\\x{082D}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{0859}-\\x{085B}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08D3}-\\x{08E1}\\x{08E2}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09F2}-\\x{09F3}\\x{09FB}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AF1}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0BF3}-\\x{0BF8}\\x{0BF9}\\x{0BFA}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C78}-\\x{0C7E}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E3F}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3A}\\x{0F3B}\\x{0F3C}\\x{0F3D}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1390}-\\x{1399}\\x{1400}\\x{169B}\\x{169C}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DB}\\x{17DD}\\x{17F0}-\\x{17F9}\\x{1800}-\\x{1805}\\x{1806}\\x{1807}-\\x{180A}\\x{180B}-\\x{180D}\\x{180E}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1940}\\x{1944}-\\x{1945}\\x{19DE}-\\x{19FF}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{1FBD}\\x{1FBF}-\\x{1FC1}\\x{1FCD}-\\x{1FCF}\\x{1FDD}-\\x{1FDF}\\x{1FED}-\\x{1FEF}\\x{1FFD}-\\x{1FFE}\\x{200B}-\\x{200D}\\x{200F}\\x{2010}-\\x{2015}\\x{2016}-\\x{2017}\\x{2018}\\x{2019}\\x{201A}\\x{201B}-\\x{201C}\\x{201D}\\x{201E}\\x{201F}\\x{2020}-\\x{2027}\\x{202F}\\x{2030}-\\x{2034}\\x{2035}-\\x{2038}\\x{2039}\\x{203A}\\x{203B}-\\x{203E}\\x{203F}-\\x{2040}\\x{2041}-\\x{2043}\\x{2044}\\x{2045}\\x{2046}\\x{2047}-\\x{2051}\\x{2052}\\x{2053}\\x{2054}\\x{2055}-\\x{205E}\\x{2060}-\\x{2064}\\x{2065}\\x{206A}-\\x{206F}\\x{2070}\\x{2074}-\\x{2079}\\x{207A}-\\x{207B}\\x{207C}\\x{207D}\\x{207E}\\x{2080}-\\x{2089}\\x{208A}-\\x{208B}\\x{208C}\\x{208D}\\x{208E}\\x{20A0}-\\x{20BF}\\x{20C0}-\\x{20CF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2100}-\\x{2101}\\x{2103}-\\x{2106}\\x{2108}-\\x{2109}\\x{2114}\\x{2116}-\\x{2117}\\x{2118}\\x{211E}-\\x{2123}\\x{2125}\\x{2127}\\x{2129}\\x{212E}\\x{213A}-\\x{213B}\\x{2140}-\\x{2144}\\x{214A}\\x{214B}\\x{214C}-\\x{214D}\\x{2150}-\\x{215F}\\x{2189}\\x{218A}-\\x{218B}\\x{2190}-\\x{2194}\\x{2195}-\\x{2199}\\x{219A}-\\x{219B}\\x{219C}-\\x{219F}\\x{21A0}\\x{21A1}-\\x{21A2}\\x{21A3}\\x{21A4}-\\x{21A5}\\x{21A6}\\x{21A7}-\\x{21AD}\\x{21AE}\\x{21AF}-\\x{21CD}\\x{21CE}-\\x{21CF}\\x{21D0}-\\x{21D1}\\x{21D2}\\x{21D3}\\x{21D4}\\x{21D5}-\\x{21F3}\\x{21F4}-\\x{2211}\\x{2212}\\x{2213}\\x{2214}-\\x{22FF}\\x{2300}-\\x{2307}\\x{2308}\\x{2309}\\x{230A}\\x{230B}\\x{230C}-\\x{231F}\\x{2320}-\\x{2321}\\x{2322}-\\x{2328}\\x{2329}\\x{232A}\\x{232B}-\\x{2335}\\x{237B}\\x{237C}\\x{237D}-\\x{2394}\\x{2396}-\\x{239A}\\x{239B}-\\x{23B3}\\x{23B4}-\\x{23DB}\\x{23DC}-\\x{23E1}\\x{23E2}-\\x{2426}\\x{2440}-\\x{244A}\\x{2460}-\\x{2487}\\x{2488}-\\x{249B}\\x{24EA}-\\x{24FF}\\x{2500}-\\x{25B6}\\x{25B7}\\x{25B8}-\\x{25C0}\\x{25C1}\\x{25C2}-\\x{25F7}\\x{25F8}-\\x{25FF}\\x{2600}-\\x{266E}\\x{266F}\\x{2670}-\\x{26AB}\\x{26AD}-\\x{2767}\\x{2768}\\x{2769}\\x{276A}\\x{276B}\\x{276C}\\x{276D}\\x{276E}\\x{276F}\\x{2770}\\x{2771}\\x{2772}\\x{2773}\\x{2774}\\x{2775}\\x{2776}-\\x{2793}\\x{2794}-\\x{27BF}\\x{27C0}-\\x{27C4}\\x{27C5}\\x{27C6}\\x{27C7}-\\x{27E5}\\x{27E6}\\x{27E7}\\x{27E8}\\x{27E9}\\x{27EA}\\x{27EB}\\x{27EC}\\x{27ED}\\x{27EE}\\x{27EF}\\x{27F0}-\\x{27FF}\\x{2900}-\\x{2982}\\x{2983}\\x{2984}\\x{2985}\\x{2986}\\x{2987}\\x{2988}\\x{2989}\\x{298A}\\x{298B}\\x{298C}\\x{298D}\\x{298E}\\x{298F}\\x{2990}\\x{2991}\\x{2992}\\x{2993}\\x{2994}\\x{2995}\\x{2996}\\x{2997}\\x{2998}\\x{2999}-\\x{29D7}\\x{29D8}\\x{29D9}\\x{29DA}\\x{29DB}\\x{29DC}-\\x{29FB}\\x{29FC}\\x{29FD}\\x{29FE}-\\x{2AFF}\\x{2B00}-\\x{2B2F}\\x{2B30}-\\x{2B44}\\x{2B45}-\\x{2B46}\\x{2B47}-\\x{2B4C}\\x{2B4D}-\\x{2B73}\\x{2B76}-\\x{2B95}\\x{2B97}-\\x{2BFF}\\x{2CE5}-\\x{2CEA}\\x{2CEF}-\\x{2CF1}\\x{2CF9}-\\x{2CFC}\\x{2CFD}\\x{2CFE}-\\x{2CFF}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{2E00}-\\x{2E01}\\x{2E02}\\x{2E03}\\x{2E04}\\x{2E05}\\x{2E06}-\\x{2E08}\\x{2E09}\\x{2E0A}\\x{2E0B}\\x{2E0C}\\x{2E0D}\\x{2E0E}-\\x{2E16}\\x{2E17}\\x{2E18}-\\x{2E19}\\x{2E1A}\\x{2E1B}\\x{2E1C}\\x{2E1D}\\x{2E1E}-\\x{2E1F}\\x{2E20}\\x{2E21}\\x{2E22}\\x{2E23}\\x{2E24}\\x{2E25}\\x{2E26}\\x{2E27}\\x{2E28}\\x{2E29}\\x{2E2A}-\\x{2E2E}\\x{2E2F}\\x{2E30}-\\x{2E39}\\x{2E3A}-\\x{2E3B}\\x{2E3C}-\\x{2E3F}\\x{2E40}\\x{2E41}\\x{2E42}\\x{2E43}-\\x{2E4F}\\x{2E50}-\\x{2E51}\\x{2E52}\\x{2E80}-\\x{2E99}\\x{2E9B}-\\x{2EF3}\\x{2F00}-\\x{2FD5}\\x{2FF0}-\\x{2FFB}\\x{3001}-\\x{3003}\\x{3004}\\x{3008}\\x{3009}\\x{300A}\\x{300B}\\x{300C}\\x{300D}\\x{300E}\\x{300F}\\x{3010}\\x{3011}\\x{3012}-\\x{3013}\\x{3014}\\x{3015}\\x{3016}\\x{3017}\\x{3018}\\x{3019}\\x{301A}\\x{301B}\\x{301C}\\x{301D}\\x{301E}-\\x{301F}\\x{3020}\\x{302A}-\\x{302D}\\x{3030}\\x{3036}-\\x{3037}\\x{303D}\\x{303E}-\\x{303F}\\x{3099}-\\x{309A}\\x{309B}-\\x{309C}\\x{30A0}\\x{30FB}\\x{31C0}-\\x{31E3}\\x{321D}-\\x{321E}\\x{3250}\\x{3251}-\\x{325F}\\x{327C}-\\x{327E}\\x{32B1}-\\x{32BF}\\x{32CC}-\\x{32CF}\\x{3377}-\\x{337A}\\x{33DE}-\\x{33DF}\\x{33FF}\\x{4DC0}-\\x{4DFF}\\x{A490}-\\x{A4C6}\\x{A60D}-\\x{A60F}\\x{A66F}\\x{A670}-\\x{A672}\\x{A673}\\x{A674}-\\x{A67D}\\x{A67E}\\x{A67F}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A700}-\\x{A716}\\x{A717}-\\x{A71F}\\x{A720}-\\x{A721}\\x{A788}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A828}-\\x{A82B}\\x{A82C}\\x{A838}\\x{A839}\\x{A874}-\\x{A877}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{AB6A}-\\x{AB6B}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1D}\\x{FB1E}\\x{FB1F}-\\x{FB28}\\x{FB29}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD3E}\\x{FD3F}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDD0}-\\x{FDEF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFD}\\x{FDFE}-\\x{FDFF}\\x{FE00}-\\x{FE0F}\\x{FE10}-\\x{FE16}\\x{FE17}\\x{FE18}\\x{FE19}\\x{FE20}-\\x{FE2F}\\x{FE30}\\x{FE31}-\\x{FE32}\\x{FE33}-\\x{FE34}\\x{FE35}\\x{FE36}\\x{FE37}\\x{FE38}\\x{FE39}\\x{FE3A}\\x{FE3B}\\x{FE3C}\\x{FE3D}\\x{FE3E}\\x{FE3F}\\x{FE40}\\x{FE41}\\x{FE42}\\x{FE43}\\x{FE44}\\x{FE45}-\\x{FE46}\\x{FE47}\\x{FE48}\\x{FE49}-\\x{FE4C}\\x{FE4D}-\\x{FE4F}\\x{FE50}\\x{FE51}\\x{FE52}\\x{FE54}\\x{FE55}\\x{FE56}-\\x{FE57}\\x{FE58}\\x{FE59}\\x{FE5A}\\x{FE5B}\\x{FE5C}\\x{FE5D}\\x{FE5E}\\x{FE5F}\\x{FE60}-\\x{FE61}\\x{FE62}\\x{FE63}\\x{FE64}-\\x{FE66}\\x{FE68}\\x{FE69}\\x{FE6A}\\x{FE6B}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FEFF}\\x{FF01}-\\x{FF02}\\x{FF03}\\x{FF04}\\x{FF05}\\x{FF06}-\\x{FF07}\\x{FF08}\\x{FF09}\\x{FF0A}\\x{FF0B}\\x{FF0C}\\x{FF0D}\\x{FF0E}-\\x{FF0F}\\x{FF10}-\\x{FF19}\\x{FF1A}\\x{FF1B}\\x{FF1C}-\\x{FF1E}\\x{FF1F}-\\x{FF20}\\x{FF3B}\\x{FF3C}\\x{FF3D}\\x{FF3E}\\x{FF3F}\\x{FF40}\\x{FF5B}\\x{FF5C}\\x{FF5D}\\x{FF5E}\\x{FF5F}\\x{FF60}\\x{FF61}\\x{FF62}\\x{FF63}\\x{FF64}-\\x{FF65}\\x{FFE0}-\\x{FFE1}\\x{FFE2}\\x{FFE3}\\x{FFE4}\\x{FFE5}-\\x{FFE6}\\x{FFE8}\\x{FFE9}-\\x{FFEC}\\x{FFED}-\\x{FFEE}\\x{FFF0}-\\x{FFF8}\\x{FFF9}-\\x{FFFB}\\x{FFFC}-\\x{FFFD}\\x{FFFE}-\\x{FFFF}\\x{10101}\\x{10140}-\\x{10174}\\x{10175}-\\x{10178}\\x{10179}-\\x{10189}\\x{1018A}-\\x{1018B}\\x{1018C}\\x{10190}-\\x{1019C}\\x{101A0}\\x{101FD}\\x{102E0}\\x{102E1}-\\x{102FB}\\x{10376}-\\x{1037A}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{1091F}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A01}-\\x{10A03}\\x{10A04}\\x{10A05}-\\x{10A06}\\x{10A07}-\\x{10A0B}\\x{10A0C}-\\x{10A0F}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A38}-\\x{10A3A}\\x{10A3B}-\\x{10A3E}\\x{10A3F}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE5}-\\x{10AE6}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B39}-\\x{10B3F}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D24}-\\x{10D27}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAB}-\\x{10EAC}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F46}-\\x{10F50}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{11001}\\x{11038}-\\x{11046}\\x{11052}-\\x{11065}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{11660}-\\x{1166C}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11FD5}-\\x{11FDC}\\x{11FDD}-\\x{11FE0}\\x{11FE1}-\\x{11FF1}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE2}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D200}-\\x{1D241}\\x{1D242}-\\x{1D244}\\x{1D245}\\x{1D300}-\\x{1D356}\\x{1D6DB}\\x{1D715}\\x{1D74F}\\x{1D789}\\x{1D7C3}\\x{1D7CE}-\\x{1D7FF}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E2FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D0}-\\x{1E8D6}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF0}-\\x{1EEF1}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F000}-\\x{1F02B}\\x{1F030}-\\x{1F093}\\x{1F0A0}-\\x{1F0AE}\\x{1F0B1}-\\x{1F0BF}\\x{1F0C1}-\\x{1F0CF}\\x{1F0D1}-\\x{1F0F5}\\x{1F100}-\\x{1F10A}\\x{1F10B}-\\x{1F10C}\\x{1F10D}-\\x{1F10F}\\x{1F12F}\\x{1F16A}-\\x{1F16F}\\x{1F1AD}\\x{1F260}-\\x{1F265}\\x{1F300}-\\x{1F3FA}\\x{1F3FB}-\\x{1F3FF}\\x{1F400}-\\x{1F6D7}\\x{1F6E0}-\\x{1F6EC}\\x{1F6F0}-\\x{1F6FC}\\x{1F700}-\\x{1F773}\\x{1F780}-\\x{1F7D8}\\x{1F7E0}-\\x{1F7EB}\\x{1F800}-\\x{1F80B}\\x{1F810}-\\x{1F847}\\x{1F850}-\\x{1F859}\\x{1F860}-\\x{1F887}\\x{1F890}-\\x{1F8AD}\\x{1F8B0}-\\x{1F8B1}\\x{1F900}-\\x{1F978}\\x{1F97A}-\\x{1F9CB}\\x{1F9CD}-\\x{1FA53}\\x{1FA60}-\\x{1FA6D}\\x{1FA70}-\\x{1FA74}\\x{1FA78}-\\x{1FA7A}\\x{1FA80}-\\x{1FA86}\\x{1FA90}-\\x{1FAA8}\\x{1FAB0}-\\x{1FAB6}\\x{1FAC0}-\\x{1FAC2}\\x{1FAD0}-\\x{1FAD6}\\x{1FB00}-\\x{1FB92}\\x{1FB94}-\\x{1FBCA}\\x{1FBF0}-\\x{1FBF9}\\x{1FFFE}-\\x{1FFFF}\\x{2FFFE}-\\x{2FFFF}\\x{3FFFE}-\\x{3FFFF}\\x{4FFFE}-\\x{4FFFF}\\x{5FFFE}-\\x{5FFFF}\\x{6FFFE}-\\x{6FFFF}\\x{7FFFE}-\\x{7FFFF}\\x{8FFFE}-\\x{8FFFF}\\x{9FFFE}-\\x{9FFFF}\\x{AFFFE}-\\x{AFFFF}\\x{BFFFE}-\\x{BFFFF}\\x{CFFFE}-\\x{CFFFF}\\x{DFFFE}-\\x{E0000}\\x{E0001}\\x{E0002}-\\x{E001F}\\x{E0020}-\\x{E007F}\\x{E0080}-\\x{E00FF}\\x{E0100}-\\x{E01EF}\\x{E01F0}-\\x{E0FFF}\\x{EFFFE}-\\x{EFFFF}\\x{FFFFE}-\\x{FFFFF}\\x{10FFFE}-\\x{10FFFF}]/u';
15
- const BIDI_STEP_3 = '/[\\x{0030}-\\x{0039}\\x{00B2}-\\x{00B3}\\x{00B9}\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06DD}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06F0}-\\x{06F9}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08E2}\\x{200F}\\x{2070}\\x{2074}-\\x{2079}\\x{2080}-\\x{2089}\\x{2488}-\\x{249B}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FF10}-\\x{FF19}\\x{102E1}-\\x{102FB}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1D7CE}-\\x{1D7FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F100}-\\x{1F10A}\\x{1FBF0}-\\x{1FBF9}][\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A82C}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1D167}-\\x{1D169}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{E0100}-\\x{E01EF}]*$/u';
16
- const BIDI_STEP_4_AN = '/[\\x{0600}-\\x{0605}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{06DD}\\x{08E2}\\x{10D30}-\\x{10D39}\\x{10E60}-\\x{10E7E}]/u';
17
- const BIDI_STEP_4_EN = '/[\\x{0030}-\\x{0039}\\x{00B2}-\\x{00B3}\\x{00B9}\\x{06F0}-\\x{06F9}\\x{2070}\\x{2074}-\\x{2079}\\x{2080}-\\x{2089}\\x{2488}-\\x{249B}\\x{FF10}-\\x{FF19}\\x{102E1}-\\x{102FB}\\x{1D7CE}-\\x{1D7FF}\\x{1F100}-\\x{1F10A}\\x{1FBF0}-\\x{1FBF9}]/u';
18
- const BIDI_STEP_5 = '/[\\x{0009}\\x{000A}\\x{000B}\\x{000C}\\x{000D}\\x{001C}-\\x{001E}\\x{001F}\\x{0020}\\x{0085}\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06DD}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08E2}\\x{1680}\\x{2000}-\\x{200A}\\x{200F}\\x{2028}\\x{2029}\\x{202A}\\x{202B}\\x{202C}\\x{202D}\\x{202E}\\x{205F}\\x{2066}\\x{2067}\\x{2068}\\x{2069}\\x{3000}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}]/u';
19
- const BIDI_STEP_6 = '/[^\\x{0000}-\\x{0008}\\x{0009}\\x{000A}\\x{000B}\\x{000C}\\x{000D}\\x{000E}-\\x{001B}\\x{001C}-\\x{001E}\\x{001F}\\x{0020}\\x{0021}-\\x{0022}\\x{0023}\\x{0024}\\x{0025}\\x{0026}-\\x{0027}\\x{0028}\\x{0029}\\x{002A}\\x{002B}\\x{002C}\\x{002D}\\x{002E}-\\x{002F}\\x{003A}\\x{003B}\\x{003C}-\\x{003E}\\x{003F}-\\x{0040}\\x{005B}\\x{005C}\\x{005D}\\x{005E}\\x{005F}\\x{0060}\\x{007B}\\x{007C}\\x{007D}\\x{007E}\\x{007F}-\\x{0084}\\x{0085}\\x{0086}-\\x{009F}\\x{00A0}\\x{00A1}\\x{00A2}-\\x{00A5}\\x{00A6}\\x{00A7}\\x{00A8}\\x{00A9}\\x{00AB}\\x{00AC}\\x{00AD}\\x{00AE}\\x{00AF}\\x{00B0}\\x{00B1}\\x{00B4}\\x{00B6}-\\x{00B7}\\x{00B8}\\x{00BB}\\x{00BC}-\\x{00BE}\\x{00BF}\\x{00D7}\\x{00F7}\\x{02B9}-\\x{02BA}\\x{02C2}-\\x{02C5}\\x{02C6}-\\x{02CF}\\x{02D2}-\\x{02DF}\\x{02E5}-\\x{02EB}\\x{02EC}\\x{02ED}\\x{02EF}-\\x{02FF}\\x{0300}-\\x{036F}\\x{0374}\\x{0375}\\x{037E}\\x{0384}-\\x{0385}\\x{0387}\\x{03F6}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{058A}\\x{058D}-\\x{058E}\\x{058F}\\x{0590}\\x{0591}-\\x{05BD}\\x{05BE}\\x{05BF}\\x{05C0}\\x{05C1}-\\x{05C2}\\x{05C3}\\x{05C4}-\\x{05C5}\\x{05C6}\\x{05C7}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0606}-\\x{0607}\\x{0608}\\x{0609}-\\x{060A}\\x{060B}\\x{060C}\\x{060D}\\x{060E}-\\x{060F}\\x{0610}-\\x{061A}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{064B}-\\x{065F}\\x{0660}-\\x{0669}\\x{066A}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0670}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06D6}-\\x{06DC}\\x{06DD}\\x{06DE}\\x{06DF}-\\x{06E4}\\x{06E5}-\\x{06E6}\\x{06E7}-\\x{06E8}\\x{06E9}\\x{06EA}-\\x{06ED}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0711}\\x{0712}-\\x{072F}\\x{0730}-\\x{074A}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07A6}-\\x{07B0}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07EB}-\\x{07F3}\\x{07F4}-\\x{07F5}\\x{07F6}\\x{07F7}-\\x{07F9}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FD}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{0816}-\\x{0819}\\x{081A}\\x{081B}-\\x{0823}\\x{0824}\\x{0825}-\\x{0827}\\x{0828}\\x{0829}-\\x{082D}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{0859}-\\x{085B}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08D3}-\\x{08E1}\\x{08E2}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09F2}-\\x{09F3}\\x{09FB}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AF1}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0BF3}-\\x{0BF8}\\x{0BF9}\\x{0BFA}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C78}-\\x{0C7E}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E3F}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3A}\\x{0F3B}\\x{0F3C}\\x{0F3D}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1390}-\\x{1399}\\x{1400}\\x{1680}\\x{169B}\\x{169C}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DB}\\x{17DD}\\x{17F0}-\\x{17F9}\\x{1800}-\\x{1805}\\x{1806}\\x{1807}-\\x{180A}\\x{180B}-\\x{180D}\\x{180E}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1940}\\x{1944}-\\x{1945}\\x{19DE}-\\x{19FF}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{1FBD}\\x{1FBF}-\\x{1FC1}\\x{1FCD}-\\x{1FCF}\\x{1FDD}-\\x{1FDF}\\x{1FED}-\\x{1FEF}\\x{1FFD}-\\x{1FFE}\\x{2000}-\\x{200A}\\x{200B}-\\x{200D}\\x{200F}\\x{2010}-\\x{2015}\\x{2016}-\\x{2017}\\x{2018}\\x{2019}\\x{201A}\\x{201B}-\\x{201C}\\x{201D}\\x{201E}\\x{201F}\\x{2020}-\\x{2027}\\x{2028}\\x{2029}\\x{202A}\\x{202B}\\x{202C}\\x{202D}\\x{202E}\\x{202F}\\x{2030}-\\x{2034}\\x{2035}-\\x{2038}\\x{2039}\\x{203A}\\x{203B}-\\x{203E}\\x{203F}-\\x{2040}\\x{2041}-\\x{2043}\\x{2044}\\x{2045}\\x{2046}\\x{2047}-\\x{2051}\\x{2052}\\x{2053}\\x{2054}\\x{2055}-\\x{205E}\\x{205F}\\x{2060}-\\x{2064}\\x{2065}\\x{2066}\\x{2067}\\x{2068}\\x{2069}\\x{206A}-\\x{206F}\\x{207A}-\\x{207B}\\x{207C}\\x{207D}\\x{207E}\\x{208A}-\\x{208B}\\x{208C}\\x{208D}\\x{208E}\\x{20A0}-\\x{20BF}\\x{20C0}-\\x{20CF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2100}-\\x{2101}\\x{2103}-\\x{2106}\\x{2108}-\\x{2109}\\x{2114}\\x{2116}-\\x{2117}\\x{2118}\\x{211E}-\\x{2123}\\x{2125}\\x{2127}\\x{2129}\\x{212E}\\x{213A}-\\x{213B}\\x{2140}-\\x{2144}\\x{214A}\\x{214B}\\x{214C}-\\x{214D}\\x{2150}-\\x{215F}\\x{2189}\\x{218A}-\\x{218B}\\x{2190}-\\x{2194}\\x{2195}-\\x{2199}\\x{219A}-\\x{219B}\\x{219C}-\\x{219F}\\x{21A0}\\x{21A1}-\\x{21A2}\\x{21A3}\\x{21A4}-\\x{21A5}\\x{21A6}\\x{21A7}-\\x{21AD}\\x{21AE}\\x{21AF}-\\x{21CD}\\x{21CE}-\\x{21CF}\\x{21D0}-\\x{21D1}\\x{21D2}\\x{21D3}\\x{21D4}\\x{21D5}-\\x{21F3}\\x{21F4}-\\x{2211}\\x{2212}\\x{2213}\\x{2214}-\\x{22FF}\\x{2300}-\\x{2307}\\x{2308}\\x{2309}\\x{230A}\\x{230B}\\x{230C}-\\x{231F}\\x{2320}-\\x{2321}\\x{2322}-\\x{2328}\\x{2329}\\x{232A}\\x{232B}-\\x{2335}\\x{237B}\\x{237C}\\x{237D}-\\x{2394}\\x{2396}-\\x{239A}\\x{239B}-\\x{23B3}\\x{23B4}-\\x{23DB}\\x{23DC}-\\x{23E1}\\x{23E2}-\\x{2426}\\x{2440}-\\x{244A}\\x{2460}-\\x{2487}\\x{24EA}-\\x{24FF}\\x{2500}-\\x{25B6}\\x{25B7}\\x{25B8}-\\x{25C0}\\x{25C1}\\x{25C2}-\\x{25F7}\\x{25F8}-\\x{25FF}\\x{2600}-\\x{266E}\\x{266F}\\x{2670}-\\x{26AB}\\x{26AD}-\\x{2767}\\x{2768}\\x{2769}\\x{276A}\\x{276B}\\x{276C}\\x{276D}\\x{276E}\\x{276F}\\x{2770}\\x{2771}\\x{2772}\\x{2773}\\x{2774}\\x{2775}\\x{2776}-\\x{2793}\\x{2794}-\\x{27BF}\\x{27C0}-\\x{27C4}\\x{27C5}\\x{27C6}\\x{27C7}-\\x{27E5}\\x{27E6}\\x{27E7}\\x{27E8}\\x{27E9}\\x{27EA}\\x{27EB}\\x{27EC}\\x{27ED}\\x{27EE}\\x{27EF}\\x{27F0}-\\x{27FF}\\x{2900}-\\x{2982}\\x{2983}\\x{2984}\\x{2985}\\x{2986}\\x{2987}\\x{2988}\\x{2989}\\x{298A}\\x{298B}\\x{298C}\\x{298D}\\x{298E}\\x{298F}\\x{2990}\\x{2991}\\x{2992}\\x{2993}\\x{2994}\\x{2995}\\x{2996}\\x{2997}\\x{2998}\\x{2999}-\\x{29D7}\\x{29D8}\\x{29D9}\\x{29DA}\\x{29DB}\\x{29DC}-\\x{29FB}\\x{29FC}\\x{29FD}\\x{29FE}-\\x{2AFF}\\x{2B00}-\\x{2B2F}\\x{2B30}-\\x{2B44}\\x{2B45}-\\x{2B46}\\x{2B47}-\\x{2B4C}\\x{2B4D}-\\x{2B73}\\x{2B76}-\\x{2B95}\\x{2B97}-\\x{2BFF}\\x{2CE5}-\\x{2CEA}\\x{2CEF}-\\x{2CF1}\\x{2CF9}-\\x{2CFC}\\x{2CFD}\\x{2CFE}-\\x{2CFF}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{2E00}-\\x{2E01}\\x{2E02}\\x{2E03}\\x{2E04}\\x{2E05}\\x{2E06}-\\x{2E08}\\x{2E09}\\x{2E0A}\\x{2E0B}\\x{2E0C}\\x{2E0D}\\x{2E0E}-\\x{2E16}\\x{2E17}\\x{2E18}-\\x{2E19}\\x{2E1A}\\x{2E1B}\\x{2E1C}\\x{2E1D}\\x{2E1E}-\\x{2E1F}\\x{2E20}\\x{2E21}\\x{2E22}\\x{2E23}\\x{2E24}\\x{2E25}\\x{2E26}\\x{2E27}\\x{2E28}\\x{2E29}\\x{2E2A}-\\x{2E2E}\\x{2E2F}\\x{2E30}-\\x{2E39}\\x{2E3A}-\\x{2E3B}\\x{2E3C}-\\x{2E3F}\\x{2E40}\\x{2E41}\\x{2E42}\\x{2E43}-\\x{2E4F}\\x{2E50}-\\x{2E51}\\x{2E52}\\x{2E80}-\\x{2E99}\\x{2E9B}-\\x{2EF3}\\x{2F00}-\\x{2FD5}\\x{2FF0}-\\x{2FFB}\\x{3000}\\x{3001}-\\x{3003}\\x{3004}\\x{3008}\\x{3009}\\x{300A}\\x{300B}\\x{300C}\\x{300D}\\x{300E}\\x{300F}\\x{3010}\\x{3011}\\x{3012}-\\x{3013}\\x{3014}\\x{3015}\\x{3016}\\x{3017}\\x{3018}\\x{3019}\\x{301A}\\x{301B}\\x{301C}\\x{301D}\\x{301E}-\\x{301F}\\x{3020}\\x{302A}-\\x{302D}\\x{3030}\\x{3036}-\\x{3037}\\x{303D}\\x{303E}-\\x{303F}\\x{3099}-\\x{309A}\\x{309B}-\\x{309C}\\x{30A0}\\x{30FB}\\x{31C0}-\\x{31E3}\\x{321D}-\\x{321E}\\x{3250}\\x{3251}-\\x{325F}\\x{327C}-\\x{327E}\\x{32B1}-\\x{32BF}\\x{32CC}-\\x{32CF}\\x{3377}-\\x{337A}\\x{33DE}-\\x{33DF}\\x{33FF}\\x{4DC0}-\\x{4DFF}\\x{A490}-\\x{A4C6}\\x{A60D}-\\x{A60F}\\x{A66F}\\x{A670}-\\x{A672}\\x{A673}\\x{A674}-\\x{A67D}\\x{A67E}\\x{A67F}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A700}-\\x{A716}\\x{A717}-\\x{A71F}\\x{A720}-\\x{A721}\\x{A788}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A828}-\\x{A82B}\\x{A82C}\\x{A838}\\x{A839}\\x{A874}-\\x{A877}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{AB6A}-\\x{AB6B}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1D}\\x{FB1E}\\x{FB1F}-\\x{FB28}\\x{FB29}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD3E}\\x{FD3F}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDD0}-\\x{FDEF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFD}\\x{FDFE}-\\x{FDFF}\\x{FE00}-\\x{FE0F}\\x{FE10}-\\x{FE16}\\x{FE17}\\x{FE18}\\x{FE19}\\x{FE20}-\\x{FE2F}\\x{FE30}\\x{FE31}-\\x{FE32}\\x{FE33}-\\x{FE34}\\x{FE35}\\x{FE36}\\x{FE37}\\x{FE38}\\x{FE39}\\x{FE3A}\\x{FE3B}\\x{FE3C}\\x{FE3D}\\x{FE3E}\\x{FE3F}\\x{FE40}\\x{FE41}\\x{FE42}\\x{FE43}\\x{FE44}\\x{FE45}-\\x{FE46}\\x{FE47}\\x{FE48}\\x{FE49}-\\x{FE4C}\\x{FE4D}-\\x{FE4F}\\x{FE50}\\x{FE51}\\x{FE52}\\x{FE54}\\x{FE55}\\x{FE56}-\\x{FE57}\\x{FE58}\\x{FE59}\\x{FE5A}\\x{FE5B}\\x{FE5C}\\x{FE5D}\\x{FE5E}\\x{FE5F}\\x{FE60}-\\x{FE61}\\x{FE62}\\x{FE63}\\x{FE64}-\\x{FE66}\\x{FE68}\\x{FE69}\\x{FE6A}\\x{FE6B}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FEFF}\\x{FF01}-\\x{FF02}\\x{FF03}\\x{FF04}\\x{FF05}\\x{FF06}-\\x{FF07}\\x{FF08}\\x{FF09}\\x{FF0A}\\x{FF0B}\\x{FF0C}\\x{FF0D}\\x{FF0E}-\\x{FF0F}\\x{FF1A}\\x{FF1B}\\x{FF1C}-\\x{FF1E}\\x{FF1F}-\\x{FF20}\\x{FF3B}\\x{FF3C}\\x{FF3D}\\x{FF3E}\\x{FF3F}\\x{FF40}\\x{FF5B}\\x{FF5C}\\x{FF5D}\\x{FF5E}\\x{FF5F}\\x{FF60}\\x{FF61}\\x{FF62}\\x{FF63}\\x{FF64}-\\x{FF65}\\x{FFE0}-\\x{FFE1}\\x{FFE2}\\x{FFE3}\\x{FFE4}\\x{FFE5}-\\x{FFE6}\\x{FFE8}\\x{FFE9}-\\x{FFEC}\\x{FFED}-\\x{FFEE}\\x{FFF0}-\\x{FFF8}\\x{FFF9}-\\x{FFFB}\\x{FFFC}-\\x{FFFD}\\x{FFFE}-\\x{FFFF}\\x{10101}\\x{10140}-\\x{10174}\\x{10175}-\\x{10178}\\x{10179}-\\x{10189}\\x{1018A}-\\x{1018B}\\x{1018C}\\x{10190}-\\x{1019C}\\x{101A0}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{1091F}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A01}-\\x{10A03}\\x{10A04}\\x{10A05}-\\x{10A06}\\x{10A07}-\\x{10A0B}\\x{10A0C}-\\x{10A0F}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A38}-\\x{10A3A}\\x{10A3B}-\\x{10A3E}\\x{10A3F}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE5}-\\x{10AE6}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B39}-\\x{10B3F}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D24}-\\x{10D27}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAB}-\\x{10EAC}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F46}-\\x{10F50}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{11001}\\x{11038}-\\x{11046}\\x{11052}-\\x{11065}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{11660}-\\x{1166C}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11FD5}-\\x{11FDC}\\x{11FDD}-\\x{11FE0}\\x{11FE1}-\\x{11FF1}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE2}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D200}-\\x{1D241}\\x{1D242}-\\x{1D244}\\x{1D245}\\x{1D300}-\\x{1D356}\\x{1D6DB}\\x{1D715}\\x{1D74F}\\x{1D789}\\x{1D7C3}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E2FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D0}-\\x{1E8D6}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF0}-\\x{1EEF1}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F000}-\\x{1F02B}\\x{1F030}-\\x{1F093}\\x{1F0A0}-\\x{1F0AE}\\x{1F0B1}-\\x{1F0BF}\\x{1F0C1}-\\x{1F0CF}\\x{1F0D1}-\\x{1F0F5}\\x{1F10B}-\\x{1F10C}\\x{1F10D}-\\x{1F10F}\\x{1F12F}\\x{1F16A}-\\x{1F16F}\\x{1F1AD}\\x{1F260}-\\x{1F265}\\x{1F300}-\\x{1F3FA}\\x{1F3FB}-\\x{1F3FF}\\x{1F400}-\\x{1F6D7}\\x{1F6E0}-\\x{1F6EC}\\x{1F6F0}-\\x{1F6FC}\\x{1F700}-\\x{1F773}\\x{1F780}-\\x{1F7D8}\\x{1F7E0}-\\x{1F7EB}\\x{1F800}-\\x{1F80B}\\x{1F810}-\\x{1F847}\\x{1F850}-\\x{1F859}\\x{1F860}-\\x{1F887}\\x{1F890}-\\x{1F8AD}\\x{1F8B0}-\\x{1F8B1}\\x{1F900}-\\x{1F978}\\x{1F97A}-\\x{1F9CB}\\x{1F9CD}-\\x{1FA53}\\x{1FA60}-\\x{1FA6D}\\x{1FA70}-\\x{1FA74}\\x{1FA78}-\\x{1FA7A}\\x{1FA80}-\\x{1FA86}\\x{1FA90}-\\x{1FAA8}\\x{1FAB0}-\\x{1FAB6}\\x{1FAC0}-\\x{1FAC2}\\x{1FAD0}-\\x{1FAD6}\\x{1FB00}-\\x{1FB92}\\x{1FB94}-\\x{1FBCA}\\x{1FFFE}-\\x{1FFFF}\\x{2FFFE}-\\x{2FFFF}\\x{3FFFE}-\\x{3FFFF}\\x{4FFFE}-\\x{4FFFF}\\x{5FFFE}-\\x{5FFFF}\\x{6FFFE}-\\x{6FFFF}\\x{7FFFE}-\\x{7FFFF}\\x{8FFFE}-\\x{8FFFF}\\x{9FFFE}-\\x{9FFFF}\\x{AFFFE}-\\x{AFFFF}\\x{BFFFE}-\\x{BFFFF}\\x{CFFFE}-\\x{CFFFF}\\x{DFFFE}-\\x{E0000}\\x{E0001}\\x{E0002}-\\x{E001F}\\x{E0020}-\\x{E007F}\\x{E0080}-\\x{E00FF}\\x{E0100}-\\x{E01EF}\\x{E01F0}-\\x{E0FFF}\\x{EFFFE}-\\x{EFFFF}\\x{FFFFE}-\\x{FFFFF}\\x{10FFFE}-\\x{10FFFF}][\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A82C}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1D167}-\\x{1D169}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{E0100}-\\x{E01EF}]*$/u';
20
- const ZWNJ = '/([\\x{A872}\\x{10ACD}\\x{10AD7}\\x{10D00}\\x{10FCB}\\x{0620}\\x{0626}\\x{0628}\\x{062A}-\\x{062E}\\x{0633}-\\x{063F}\\x{0641}-\\x{0647}\\x{0649}-\\x{064A}\\x{066E}-\\x{066F}\\x{0678}-\\x{0687}\\x{069A}-\\x{06BF}\\x{06C1}-\\x{06C2}\\x{06CC}\\x{06CE}\\x{06D0}-\\x{06D1}\\x{06FA}-\\x{06FC}\\x{06FF}\\x{0712}-\\x{0714}\\x{071A}-\\x{071D}\\x{071F}-\\x{0727}\\x{0729}\\x{072B}\\x{072D}-\\x{072E}\\x{074E}-\\x{0758}\\x{075C}-\\x{076A}\\x{076D}-\\x{0770}\\x{0772}\\x{0775}-\\x{0777}\\x{077A}-\\x{077F}\\x{07CA}-\\x{07EA}\\x{0841}-\\x{0845}\\x{0848}\\x{084A}-\\x{0853}\\x{0855}\\x{0860}\\x{0862}-\\x{0865}\\x{0868}\\x{08A0}-\\x{08A9}\\x{08AF}-\\x{08B0}\\x{08B3}-\\x{08B4}\\x{08B6}-\\x{08B8}\\x{08BA}-\\x{08C7}\\x{1807}\\x{1820}-\\x{1842}\\x{1843}\\x{1844}-\\x{1878}\\x{1887}-\\x{18A8}\\x{18AA}\\x{A840}-\\x{A871}\\x{10AC0}-\\x{10AC4}\\x{10AD3}-\\x{10AD6}\\x{10AD8}-\\x{10ADC}\\x{10ADE}-\\x{10AE0}\\x{10AEB}-\\x{10AEE}\\x{10B80}\\x{10B82}\\x{10B86}-\\x{10B88}\\x{10B8A}-\\x{10B8B}\\x{10B8D}\\x{10B90}\\x{10BAD}-\\x{10BAE}\\x{10D01}-\\x{10D21}\\x{10D23}\\x{10F30}-\\x{10F32}\\x{10F34}-\\x{10F44}\\x{10F51}-\\x{10F53}\\x{10FB0}\\x{10FB2}-\\x{10FB3}\\x{10FB8}\\x{10FBB}-\\x{10FBC}\\x{10FBE}-\\x{10FBF}\\x{10FC1}\\x{10FC4}\\x{10FCA}\\x{1E900}-\\x{1E943}][\\x{00AD}\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{061C}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{070F}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CBF}\\x{0CC6}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{200B}\\x{200E}-\\x{200F}\\x{202A}-\\x{202E}\\x{2060}-\\x{2064}\\x{206A}-\\x{206F}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A82C}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{FEFF}\\x{FFF9}-\\x{FFFB}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C3F}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{13430}-\\x{13438}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{E0001}\\x{E0020}-\\x{E007F}\\x{E0100}-\\x{E01EF}]*\\x{200C}[\\x{00AD}\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{061C}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{070F}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CBF}\\x{0CC6}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{200B}\\x{200E}-\\x{200F}\\x{202A}-\\x{202E}\\x{2060}-\\x{2064}\\x{206A}-\\x{206F}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A82C}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{FEFF}\\x{FFF9}-\\x{FFFB}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C3F}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{13430}-\\x{13438}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{E0001}\\x{E0020}-\\x{E007F}\\x{E0100}-\\x{E01EF}]*)[\\x{0622}-\\x{0625}\\x{0627}\\x{0629}\\x{062F}-\\x{0632}\\x{0648}\\x{0671}-\\x{0673}\\x{0675}-\\x{0677}\\x{0688}-\\x{0699}\\x{06C0}\\x{06C3}-\\x{06CB}\\x{06CD}\\x{06CF}\\x{06D2}-\\x{06D3}\\x{06D5}\\x{06EE}-\\x{06EF}\\x{0710}\\x{0715}-\\x{0719}\\x{071E}\\x{0728}\\x{072A}\\x{072C}\\x{072F}\\x{074D}\\x{0759}-\\x{075B}\\x{076B}-\\x{076C}\\x{0771}\\x{0773}-\\x{0774}\\x{0778}-\\x{0779}\\x{0840}\\x{0846}-\\x{0847}\\x{0849}\\x{0854}\\x{0856}-\\x{0858}\\x{0867}\\x{0869}-\\x{086A}\\x{08AA}-\\x{08AC}\\x{08AE}\\x{08B1}-\\x{08B2}\\x{08B9}\\x{10AC5}\\x{10AC7}\\x{10AC9}-\\x{10ACA}\\x{10ACE}-\\x{10AD2}\\x{10ADD}\\x{10AE1}\\x{10AE4}\\x{10AEF}\\x{10B81}\\x{10B83}-\\x{10B85}\\x{10B89}\\x{10B8C}\\x{10B8E}-\\x{10B8F}\\x{10B91}\\x{10BA9}-\\x{10BAC}\\x{10D22}\\x{10F33}\\x{10F54}\\x{10FB4}-\\x{10FB6}\\x{10FB9}-\\x{10FBA}\\x{10FBD}\\x{10FC2}-\\x{10FC3}\\x{10FC9}\\x{0620}\\x{0626}\\x{0628}\\x{062A}-\\x{062E}\\x{0633}-\\x{063F}\\x{0641}-\\x{0647}\\x{0649}-\\x{064A}\\x{066E}-\\x{066F}\\x{0678}-\\x{0687}\\x{069A}-\\x{06BF}\\x{06C1}-\\x{06C2}\\x{06CC}\\x{06CE}\\x{06D0}-\\x{06D1}\\x{06FA}-\\x{06FC}\\x{06FF}\\x{0712}-\\x{0714}\\x{071A}-\\x{071D}\\x{071F}-\\x{0727}\\x{0729}\\x{072B}\\x{072D}-\\x{072E}\\x{074E}-\\x{0758}\\x{075C}-\\x{076A}\\x{076D}-\\x{0770}\\x{0772}\\x{0775}-\\x{0777}\\x{077A}-\\x{077F}\\x{07CA}-\\x{07EA}\\x{0841}-\\x{0845}\\x{0848}\\x{084A}-\\x{0853}\\x{0855}\\x{0860}\\x{0862}-\\x{0865}\\x{0868}\\x{08A0}-\\x{08A9}\\x{08AF}-\\x{08B0}\\x{08B3}-\\x{08B4}\\x{08B6}-\\x{08B8}\\x{08BA}-\\x{08C7}\\x{1807}\\x{1820}-\\x{1842}\\x{1843}\\x{1844}-\\x{1878}\\x{1887}-\\x{18A8}\\x{18AA}\\x{A840}-\\x{A871}\\x{10AC0}-\\x{10AC4}\\x{10AD3}-\\x{10AD6}\\x{10AD8}-\\x{10ADC}\\x{10ADE}-\\x{10AE0}\\x{10AEB}-\\x{10AEE}\\x{10B80}\\x{10B82}\\x{10B86}-\\x{10B88}\\x{10B8A}-\\x{10B8B}\\x{10B8D}\\x{10B90}\\x{10BAD}-\\x{10BAE}\\x{10D01}-\\x{10D21}\\x{10D23}\\x{10F30}-\\x{10F32}\\x{10F34}-\\x{10F44}\\x{10F51}-\\x{10F53}\\x{10FB0}\\x{10FB2}-\\x{10FB3}\\x{10FB8}\\x{10FBB}-\\x{10FBC}\\x{10FBE}-\\x{10FBF}\\x{10FC1}\\x{10FC4}\\x{10FCA}\\x{1E900}-\\x{1E943}]/u';
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/deviation.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(223 => 'ss', 962 => 'σ', 8204 => '', 8205 => '');
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(888 => \true, 889 => \true, 896 => \true, 897 => \true, 898 => \true, 899 => \true, 907 => \true, 909 => \true, 930 => \true, 1216 => \true, 1328 => \true, 1367 => \true, 1368 => \true, 1419 => \true, 1420 => \true, 1424 => \true, 1480 => \true, 1481 => \true, 1482 => \true, 1483 => \true, 1484 => \true, 1485 => \true, 1486 => \true, 1487 => \true, 1515 => \true, 1516 => \true, 1517 => \true, 1518 => \true, 1525 => \true, 1526 => \true, 1527 => \true, 1528 => \true, 1529 => \true, 1530 => \true, 1531 => \true, 1532 => \true, 1533 => \true, 1534 => \true, 1535 => \true, 1536 => \true, 1537 => \true, 1538 => \true, 1539 => \true, 1540 => \true, 1541 => \true, 1564 => \true, 1565 => \true, 1757 => \true, 1806 => \true, 1807 => \true, 1867 => \true, 1868 => \true, 1970 => \true, 1971 => \true, 1972 => \true, 1973 => \true, 1974 => \true, 1975 => \true, 1976 => \true, 1977 => \true, 1978 => \true, 1979 => \true, 1980 => \true, 1981 => \true, 1982 => \true, 1983 => \true, 2043 => \true, 2044 => \true, 2094 => \true, 2095 => \true, 2111 => \true, 2140 => \true, 2141 => \true, 2143 => \true, 2229 => \true, 2248 => \true, 2249 => \true, 2250 => \true, 2251 => \true, 2252 => \true, 2253 => \true, 2254 => \true, 2255 => \true, 2256 => \true, 2257 => \true, 2258 => \true, 2274 => \true, 2436 => \true, 2445 => \true, 2446 => \true, 2449 => \true, 2450 => \true, 2473 => \true, 2481 => \true, 2483 => \true, 2484 => \true, 2485 => \true, 2490 => \true, 2491 => \true, 2501 => \true, 2502 => \true, 2505 => \true, 2506 => \true, 2511 => \true, 2512 => \true, 2513 => \true, 2514 => \true, 2515 => \true, 2516 => \true, 2517 => \true, 2518 => \true, 2520 => \true, 2521 => \true, 2522 => \true, 2523 => \true, 2526 => \true, 2532 => \true, 2533 => \true, 2559 => \true, 2560 => \true, 2564 => \true, 2571 => \true, 2572 => \true, 2573 => \true, 2574 => \true, 2577 => \true, 2578 => \true, 2601 => \true, 2609 => \true, 2612 => \true, 2615 => \true, 2618 => \true, 2619 => \true, 2621 => \true, 2627 => \true, 2628 => \true, 2629 => \true, 2630 => \true, 2633 => \true, 2634 => \true, 2638 => \true, 2639 => \true, 2640 => \true, 2642 => \true, 2643 => \true, 2644 => \true, 2645 => \true, 2646 => \true, 2647 => \true, 2648 => \true, 2653 => \true, 2655 => \true, 2656 => \true, 2657 => \true, 2658 => \true, 2659 => \true, 2660 => \true, 2661 => \true, 2679 => \true, 2680 => \true, 2681 => \true, 2682 => \true, 2683 => \true, 2684 => \true, 2685 => \true, 2686 => \true, 2687 => \true, 2688 => \true, 2692 => \true, 2702 => \true, 2706 => \true, 2729 => \true, 2737 => \true, 2740 => \true, 2746 => \true, 2747 => \true, 2758 => \true, 2762 => \true, 2766 => \true, 2767 => \true, 2769 => \true, 2770 => \true, 2771 => \true, 2772 => \true, 2773 => \true, 2774 => \true, 2775 => \true, 2776 => \true, 2777 => \true, 2778 => \true, 2779 => \true, 2780 => \true, 2781 => \true, 2782 => \true, 2783 => \true, 2788 => \true, 2789 => \true, 2802 => \true, 2803 => \true, 2804 => \true, 2805 => \true, 2806 => \true, 2807 => \true, 2808 => \true, 2816 => \true, 2820 => \true, 2829 => \true, 2830 => \true, 2833 => \true, 2834 => \true, 2857 => \true, 2865 => \true, 2868 => \true, 2874 => \true, 2875 => \true, 2885 => \true, 2886 => \true, 2889 => \true, 2890 => \true, 2894 => \true, 2895 => \true, 2896 => \true, 2897 => \true, 2898 => \true, 2899 => \true, 2900 => \true, 2904 => \true, 2905 => \true, 2906 => \true, 2907 => \true, 2910 => \true, 2916 => \true, 2917 => \true, 2936 => \true, 2937 => \true, 2938 => \true, 2939 => \true, 2940 => \true, 2941 => \true, 2942 => \true, 2943 => \true, 2944 => \true, 2945 => \true, 2948 => \true, 2955 => \true, 2956 => \true, 2957 => \true, 2961 => \true, 2966 => \true, 2967 => \true, 2968 => \true, 2971 => \true, 2973 => \true, 2976 => \true, 2977 => \true, 2978 => \true, 2981 => \true, 2982 => \true, 2983 => \true, 2987 => \true, 2988 => \true, 2989 => \true, 3002 => \true, 3003 => \true, 3004 => \true, 3005 => \true, 3011 => \true, 3012 => \true, 3013 => \true, 3017 => \true, 3022 => \true, 3023 => \true, 3025 => \true, 3026 => \true, 3027 => \true, 3028 => \true, 3029 => \true, 3030 => \true, 3032 => \true, 3033 => \true, 3034 => \true, 3035 => \true, 3036 => \true, 3037 => \true, 3038 => \true, 3039 => \true, 3040 => \true, 3041 => \true, 3042 => \true, 3043 => \true, 3044 => \true, 3045 => \true, 3067 => \true, 3068 => \true, 3069 => \true, 3070 => \true, 3071 => \true, 3085 => \true, 3089 => \true, 3113 => \true, 3130 => \true, 3131 => \true, 3132 => \true, 3141 => \true, 3145 => \true, 3150 => \true, 3151 => \true, 3152 => \true, 3153 => \true, 3154 => \true, 3155 => \true, 3156 => \true, 3159 => \true, 3163 => \true, 3164 => \true, 3165 => \true, 3166 => \true, 3167 => \true, 3172 => \true, 3173 => \true, 3184 => \true, 3185 => \true, 3186 => \true, 3187 => \true, 3188 => \true, 3189 => \true, 3190 => \true, 3213 => \true, 3217 => \true, 3241 => \true, 3252 => \true, 3258 => \true, 3259 => \true, 3269 => \true, 3273 => \true, 3278 => \true, 3279 => \true, 3280 => \true, 3281 => \true, 3282 => \true, 3283 => \true, 3284 => \true, 3287 => \true, 3288 => \true, 3289 => \true, 3290 => \true, 3291 => \true, 3292 => \true, 3293 => \true, 3295 => \true, 3300 => \true, 3301 => \true, 3312 => \true, 3315 => \true, 3316 => \true, 3317 => \true, 3318 => \true, 3319 => \true, 3320 => \true, 3321 => \true, 3322 => \true, 3323 => \true, 3324 => \true, 3325 => \true, 3326 => \true, 3327 => \true, 3341 => \true, 3345 => \true, 3397 => \true, 3401 => \true, 3408 => \true, 3409 => \true, 3410 => \true, 3411 => \true, 3428 => \true, 3429 => \true, 3456 => \true, 3460 => \true, 3479 => \true, 3480 => \true, 3481 => \true, 3506 => \true, 3516 => \true, 3518 => \true, 3519 => \true, 3527 => \true, 3528 => \true, 3529 => \true, 3531 => \true, 3532 => \true, 3533 => \true, 3534 => \true, 3541 => \true, 3543 => \true, 3552 => \true, 3553 => \true, 3554 => \true, 3555 => \true, 3556 => \true, 3557 => \true, 3568 => \true, 3569 => \true, 3573 => \true, 3574 => \true, 3575 => \true, 3576 => \true, 3577 => \true, 3578 => \true, 3579 => \true, 3580 => \true, 3581 => \true, 3582 => \true, 3583 => \true, 3584 => \true, 3643 => \true, 3644 => \true, 3645 => \true, 3646 => \true, 3715 => \true, 3717 => \true, 3723 => \true, 3748 => \true, 3750 => \true, 3774 => \true, 3775 => \true, 3781 => \true, 3783 => \true, 3790 => \true, 3791 => \true, 3802 => \true, 3803 => \true, 3912 => \true, 3949 => \true, 3950 => \true, 3951 => \true, 3952 => \true, 3992 => \true, 4029 => \true, 4045 => \true, 4294 => \true, 4296 => \true, 4297 => \true, 4298 => \true, 4299 => \true, 4300 => \true, 4302 => \true, 4303 => \true, 4447 => \true, 4448 => \true, 4681 => \true, 4686 => \true, 4687 => \true, 4695 => \true, 4697 => \true, 4702 => \true, 4703 => \true, 4745 => \true, 4750 => \true, 4751 => \true, 4785 => \true, 4790 => \true, 4791 => \true, 4799 => \true, 4801 => \true, 4806 => \true, 4807 => \true, 4823 => \true, 4881 => \true, 4886 => \true, 4887 => \true, 4955 => \true, 4956 => \true, 4989 => \true, 4990 => \true, 4991 => \true, 5018 => \true, 5019 => \true, 5020 => \true, 5021 => \true, 5022 => \true, 5023 => \true, 5110 => \true, 5111 => \true, 5118 => \true, 5119 => \true, 5760 => \true, 5789 => \true, 5790 => \true, 5791 => \true, 5881 => \true, 5882 => \true, 5883 => \true, 5884 => \true, 5885 => \true, 5886 => \true, 5887 => \true, 5901 => \true, 5909 => \true, 5910 => \true, 5911 => \true, 5912 => \true, 5913 => \true, 5914 => \true, 5915 => \true, 5916 => \true, 5917 => \true, 5918 => \true, 5919 => \true, 5943 => \true, 5944 => \true, 5945 => \true, 5946 => \true, 5947 => \true, 5948 => \true, 5949 => \true, 5950 => \true, 5951 => \true, 5972 => \true, 5973 => \true, 5974 => \true, 5975 => \true, 5976 => \true, 5977 => \true, 5978 => \true, 5979 => \true, 5980 => \true, 5981 => \true, 5982 => \true, 5983 => \true, 5997 => \true, 6001 => \true, 6004 => \true, 6005 => \true, 6006 => \true, 6007 => \true, 6008 => \true, 6009 => \true, 6010 => \true, 6011 => \true, 6012 => \true, 6013 => \true, 6014 => \true, 6015 => \true, 6068 => \true, 6069 => \true, 6110 => \true, 6111 => \true, 6122 => \true, 6123 => \true, 6124 => \true, 6125 => \true, 6126 => \true, 6127 => \true, 6138 => \true, 6139 => \true, 6140 => \true, 6141 => \true, 6142 => \true, 6143 => \true, 6150 => \true, 6158 => \true, 6159 => \true, 6170 => \true, 6171 => \true, 6172 => \true, 6173 => \true, 6174 => \true, 6175 => \true, 6265 => \true, 6266 => \true, 6267 => \true, 6268 => \true, 6269 => \true, 6270 => \true, 6271 => \true, 6315 => \true, 6316 => \true, 6317 => \true, 6318 => \true, 6319 => \true, 6390 => \true, 6391 => \true, 6392 => \true, 6393 => \true, 6394 => \true, 6395 => \true, 6396 => \true, 6397 => \true, 6398 => \true, 6399 => \true, 6431 => \true, 6444 => \true, 6445 => \true, 6446 => \true, 6447 => \true, 6460 => \true, 6461 => \true, 6462 => \true, 6463 => \true, 6465 => \true, 6466 => \true, 6467 => \true, 6510 => \true, 6511 => \true, 6517 => \true, 6518 => \true, 6519 => \true, 6520 => \true, 6521 => \true, 6522 => \true, 6523 => \true, 6524 => \true, 6525 => \true, 6526 => \true, 6527 => \true, 6572 => \true, 6573 => \true, 6574 => \true, 6575 => \true, 6602 => \true, 6603 => \true, 6604 => \true, 6605 => \true, 6606 => \true, 6607 => \true, 6619 => \true, 6620 => \true, 6621 => \true, 6684 => \true, 6685 => \true, 6751 => \true, 6781 => \true, 6782 => \true, 6794 => \true, 6795 => \true, 6796 => \true, 6797 => \true, 6798 => \true, 6799 => \true, 6810 => \true, 6811 => \true, 6812 => \true, 6813 => \true, 6814 => \true, 6815 => \true, 6830 => \true, 6831 => \true, 6988 => \true, 6989 => \true, 6990 => \true, 6991 => \true, 7037 => \true, 7038 => \true, 7039 => \true, 7156 => \true, 7157 => \true, 7158 => \true, 7159 => \true, 7160 => \true, 7161 => \true, 7162 => \true, 7163 => \true, 7224 => \true, 7225 => \true, 7226 => \true, 7242 => \true, 7243 => \true, 7244 => \true, 7305 => \true, 7306 => \true, 7307 => \true, 7308 => \true, 7309 => \true, 7310 => \true, 7311 => \true, 7355 => \true, 7356 => \true, 7368 => \true, 7369 => \true, 7370 => \true, 7371 => \true, 7372 => \true, 7373 => \true, 7374 => \true, 7375 => \true, 7419 => \true, 7420 => \true, 7421 => \true, 7422 => \true, 7423 => \true, 7674 => \true, 7958 => \true, 7959 => \true, 7966 => \true, 7967 => \true, 8006 => \true, 8007 => \true, 8014 => \true, 8015 => \true, 8024 => \true, 8026 => \true, 8028 => \true, 8030 => \true, 8062 => \true, 8063 => \true, 8117 => \true, 8133 => \true, 8148 => \true, 8149 => \true, 8156 => \true, 8176 => \true, 8177 => \true, 8181 => \true, 8191 => \true, 8206 => \true, 8207 => \true, 8228 => \true, 8229 => \true, 8230 => \true, 8232 => \true, 8233 => \true, 8234 => \true, 8235 => \true, 8236 => \true, 8237 => \true, 8238 => \true, 8289 => \true, 8290 => \true, 8291 => \true, 8293 => \true, 8294 => \true, 8295 => \true, 8296 => \true, 8297 => \true, 8298 => \true, 8299 => \true, 8300 => \true, 8301 => \true, 8302 => \true, 8303 => \true, 8306 => \true, 8307 => \true, 8335 => \true, 8349 => \true, 8350 => \true, 8351 => \true, 8384 => \true, 8385 => \true, 8386 => \true, 8387 => \true, 8388 => \true, 8389 => \true, 8390 => \true, 8391 => \true, 8392 => \true, 8393 => \true, 8394 => \true, 8395 => \true, 8396 => \true, 8397 => \true, 8398 => \true, 8399 => \true, 8433 => \true, 8434 => \true, 8435 => \true, 8436 => \true, 8437 => \true, 8438 => \true, 8439 => \true, 8440 => \true, 8441 => \true, 8442 => \true, 8443 => \true, 8444 => \true, 8445 => \true, 8446 => \true, 8447 => \true, 8498 => \true, 8579 => \true, 8588 => \true, 8589 => \true, 8590 => \true, 8591 => \true, 9255 => \true, 9256 => \true, 9257 => \true, 9258 => \true, 9259 => \true, 9260 => \true, 9261 => \true, 9262 => \true, 9263 => \true, 9264 => \true, 9265 => \true, 9266 => \true, 9267 => \true, 9268 => \true, 9269 => \true, 9270 => \true, 9271 => \true, 9272 => \true, 9273 => \true, 9274 => \true, 9275 => \true, 9276 => \true, 9277 => \true, 9278 => \true, 9279 => \true, 9291 => \true, 9292 => \true, 9293 => \true, 9294 => \true, 9295 => \true, 9296 => \true, 9297 => \true, 9298 => \true, 9299 => \true, 9300 => \true, 9301 => \true, 9302 => \true, 9303 => \true, 9304 => \true, 9305 => \true, 9306 => \true, 9307 => \true, 9308 => \true, 9309 => \true, 9310 => \true, 9311 => \true, 9352 => \true, 9353 => \true, 9354 => \true, 9355 => \true, 9356 => \true, 9357 => \true, 9358 => \true, 9359 => \true, 9360 => \true, 9361 => \true, 9362 => \true, 9363 => \true, 9364 => \true, 9365 => \true, 9366 => \true, 9367 => \true, 9368 => \true, 9369 => \true, 9370 => \true, 9371 => \true, 11124 => \true, 11125 => \true, 11158 => \true, 11311 => \true, 11359 => \true, 11508 => \true, 11509 => \true, 11510 => \true, 11511 => \true, 11512 => \true, 11558 => \true, 11560 => \true, 11561 => \true, 11562 => \true, 11563 => \true, 11564 => \true, 11566 => \true, 11567 => \true, 11624 => \true, 11625 => \true, 11626 => \true, 11627 => \true, 11628 => \true, 11629 => \true, 11630 => \true, 11633 => \true, 11634 => \true, 11635 => \true, 11636 => \true, 11637 => \true, 11638 => \true, 11639 => \true, 11640 => \true, 11641 => \true, 11642 => \true, 11643 => \true, 11644 => \true, 11645 => \true, 11646 => \true, 11671 => \true, 11672 => \true, 11673 => \true, 11674 => \true, 11675 => \true, 11676 => \true, 11677 => \true, 11678 => \true, 11679 => \true, 11687 => \true, 11695 => \true, 11703 => \true, 11711 => \true, 11719 => \true, 11727 => \true, 11735 => \true, 11743 => \true, 11930 => \true, 12020 => \true, 12021 => \true, 12022 => \true, 12023 => \true, 12024 => \true, 12025 => \true, 12026 => \true, 12027 => \true, 12028 => \true, 12029 => \true, 12030 => \true, 12031 => \true, 12246 => \true, 12247 => \true, 12248 => \true, 12249 => \true, 12250 => \true, 12251 => \true, 12252 => \true, 12253 => \true, 12254 => \true, 12255 => \true, 12256 => \true, 12257 => \true, 12258 => \true, 12259 => \true, 12260 => \true, 12261 => \true, 12262 => \true, 12263 => \true, 12264 => \true, 12265 => \true, 12266 => \true, 12267 => \true, 12268 => \true, 12269 => \true, 12270 => \true, 12271 => \true, 12272 => \true, 12273 => \true, 12274 => \true, 12275 => \true, 12276 => \true, 12277 => \true, 12278 => \true, 12279 => \true, 12280 => \true, 12281 => \true, 12282 => \true, 12283 => \true, 12284 => \true, 12285 => \true, 12286 => \true, 12287 => \true, 12352 => \true, 12439 => \true, 12440 => \true, 12544 => \true, 12545 => \true, 12546 => \true, 12547 => \true, 12548 => \true, 12592 => \true, 12644 => \true, 12687 => \true, 12772 => \true, 12773 => \true, 12774 => \true, 12775 => \true, 12776 => \true, 12777 => \true, 12778 => \true, 12779 => \true, 12780 => \true, 12781 => \true, 12782 => \true, 12783 => \true, 12831 => \true, 13250 => \true, 13255 => \true, 13272 => \true, 40957 => \true, 40958 => \true, 40959 => \true, 42125 => \true, 42126 => \true, 42127 => \true, 42183 => \true, 42184 => \true, 42185 => \true, 42186 => \true, 42187 => \true, 42188 => \true, 42189 => \true, 42190 => \true, 42191 => \true, 42540 => \true, 42541 => \true, 42542 => \true, 42543 => \true, 42544 => \true, 42545 => \true, 42546 => \true, 42547 => \true, 42548 => \true, 42549 => \true, 42550 => \true, 42551 => \true, 42552 => \true, 42553 => \true, 42554 => \true, 42555 => \true, 42556 => \true, 42557 => \true, 42558 => \true, 42559 => \true, 42744 => \true, 42745 => \true, 42746 => \true, 42747 => \true, 42748 => \true, 42749 => \true, 42750 => \true, 42751 => \true, 42944 => \true, 42945 => \true, 43053 => \true, 43054 => \true, 43055 => \true, 43066 => \true, 43067 => \true, 43068 => \true, 43069 => \true, 43070 => \true, 43071 => \true, 43128 => \true, 43129 => \true, 43130 => \true, 43131 => \true, 43132 => \true, 43133 => \true, 43134 => \true, 43135 => \true, 43206 => \true, 43207 => \true, 43208 => \true, 43209 => \true, 43210 => \true, 43211 => \true, 43212 => \true, 43213 => \true, 43226 => \true, 43227 => \true, 43228 => \true, 43229 => \true, 43230 => \true, 43231 => \true, 43348 => \true, 43349 => \true, 43350 => \true, 43351 => \true, 43352 => \true, 43353 => \true, 43354 => \true, 43355 => \true, 43356 => \true, 43357 => \true, 43358 => \true, 43389 => \true, 43390 => \true, 43391 => \true, 43470 => \true, 43482 => \true, 43483 => \true, 43484 => \true, 43485 => \true, 43519 => \true, 43575 => \true, 43576 => \true, 43577 => \true, 43578 => \true, 43579 => \true, 43580 => \true, 43581 => \true, 43582 => \true, 43583 => \true, 43598 => \true, 43599 => \true, 43610 => \true, 43611 => \true, 43715 => \true, 43716 => \true, 43717 => \true, 43718 => \true, 43719 => \true, 43720 => \true, 43721 => \true, 43722 => \true, 43723 => \true, 43724 => \true, 43725 => \true, 43726 => \true, 43727 => \true, 43728 => \true, 43729 => \true, 43730 => \true, 43731 => \true, 43732 => \true, 43733 => \true, 43734 => \true, 43735 => \true, 43736 => \true, 43737 => \true, 43738 => \true, 43767 => \true, 43768 => \true, 43769 => \true, 43770 => \true, 43771 => \true, 43772 => \true, 43773 => \true, 43774 => \true, 43775 => \true, 43776 => \true, 43783 => \true, 43784 => \true, 43791 => \true, 43792 => \true, 43799 => \true, 43800 => \true, 43801 => \true, 43802 => \true, 43803 => \true, 43804 => \true, 43805 => \true, 43806 => \true, 43807 => \true, 43815 => \true, 43823 => \true, 43884 => \true, 43885 => \true, 43886 => \true, 43887 => \true, 44014 => \true, 44015 => \true, 44026 => \true, 44027 => \true, 44028 => \true, 44029 => \true, 44030 => \true, 44031 => \true, 55204 => \true, 55205 => \true, 55206 => \true, 55207 => \true, 55208 => \true, 55209 => \true, 55210 => \true, 55211 => \true, 55212 => \true, 55213 => \true, 55214 => \true, 55215 => \true, 55239 => \true, 55240 => \true, 55241 => \true, 55242 => \true, 55292 => \true, 55293 => \true, 55294 => \true, 55295 => \true, 64110 => \true, 64111 => \true, 64263 => \true, 64264 => \true, 64265 => \true, 64266 => \true, 64267 => \true, 64268 => \true, 64269 => \true, 64270 => \true, 64271 => \true, 64272 => \true, 64273 => \true, 64274 => \true, 64280 => \true, 64281 => \true, 64282 => \true, 64283 => \true, 64284 => \true, 64311 => \true, 64317 => \true, 64319 => \true, 64322 => \true, 64325 => \true, 64450 => \true, 64451 => \true, 64452 => \true, 64453 => \true, 64454 => \true, 64455 => \true, 64456 => \true, 64457 => \true, 64458 => \true, 64459 => \true, 64460 => \true, 64461 => \true, 64462 => \true, 64463 => \true, 64464 => \true, 64465 => \true, 64466 => \true, 64832 => \true, 64833 => \true, 64834 => \true, 64835 => \true, 64836 => \true, 64837 => \true, 64838 => \true, 64839 => \true, 64840 => \true, 64841 => \true, 64842 => \true, 64843 => \true, 64844 => \true, 64845 => \true, 64846 => \true, 64847 => \true, 64912 => \true, 64913 => \true, 64968 => \true, 64969 => \true, 64970 => \true, 64971 => \true, 64972 => \true, 64973 => \true, 64974 => \true, 64975 => \true, 65022 => \true, 65023 => \true, 65042 => \true, 65049 => \true, 65050 => \true, 65051 => \true, 65052 => \true, 65053 => \true, 65054 => \true, 65055 => \true, 65072 => \true, 65106 => \true, 65107 => \true, 65127 => \true, 65132 => \true, 65133 => \true, 65134 => \true, 65135 => \true, 65141 => \true, 65277 => \true, 65278 => \true, 65280 => \true, 65440 => \true, 65471 => \true, 65472 => \true, 65473 => \true, 65480 => \true, 65481 => \true, 65488 => \true, 65489 => \true, 65496 => \true, 65497 => \true, 65501 => \true, 65502 => \true, 65503 => \true, 65511 => \true, 65519 => \true, 65520 => \true, 65521 => \true, 65522 => \true, 65523 => \true, 65524 => \true, 65525 => \true, 65526 => \true, 65527 => \true, 65528 => \true, 65529 => \true, 65530 => \true, 65531 => \true, 65532 => \true, 65533 => \true, 65534 => \true, 65535 => \true, 65548 => \true, 65575 => \true, 65595 => \true, 65598 => \true, 65614 => \true, 65615 => \true, 65787 => \true, 65788 => \true, 65789 => \true, 65790 => \true, 65791 => \true, 65795 => \true, 65796 => \true, 65797 => \true, 65798 => \true, 65844 => \true, 65845 => \true, 65846 => \true, 65935 => \true, 65949 => \true, 65950 => \true, 65951 => \true, 66205 => \true, 66206 => \true, 66207 => \true, 66257 => \true, 66258 => \true, 66259 => \true, 66260 => \true, 66261 => \true, 66262 => \true, 66263 => \true, 66264 => \true, 66265 => \true, 66266 => \true, 66267 => \true, 66268 => \true, 66269 => \true, 66270 => \true, 66271 => \true, 66300 => \true, 66301 => \true, 66302 => \true, 66303 => \true, 66340 => \true, 66341 => \true, 66342 => \true, 66343 => \true, 66344 => \true, 66345 => \true, 66346 => \true, 66347 => \true, 66348 => \true, 66379 => \true, 66380 => \true, 66381 => \true, 66382 => \true, 66383 => \true, 66427 => \true, 66428 => \true, 66429 => \true, 66430 => \true, 66431 => \true, 66462 => \true, 66500 => \true, 66501 => \true, 66502 => \true, 66503 => \true, 66718 => \true, 66719 => \true, 66730 => \true, 66731 => \true, 66732 => \true, 66733 => \true, 66734 => \true, 66735 => \true, 66772 => \true, 66773 => \true, 66774 => \true, 66775 => \true, 66812 => \true, 66813 => \true, 66814 => \true, 66815 => \true, 66856 => \true, 66857 => \true, 66858 => \true, 66859 => \true, 66860 => \true, 66861 => \true, 66862 => \true, 66863 => \true, 66916 => \true, 66917 => \true, 66918 => \true, 66919 => \true, 66920 => \true, 66921 => \true, 66922 => \true, 66923 => \true, 66924 => \true, 66925 => \true, 66926 => \true, 67383 => \true, 67384 => \true, 67385 => \true, 67386 => \true, 67387 => \true, 67388 => \true, 67389 => \true, 67390 => \true, 67391 => \true, 67414 => \true, 67415 => \true, 67416 => \true, 67417 => \true, 67418 => \true, 67419 => \true, 67420 => \true, 67421 => \true, 67422 => \true, 67423 => \true, 67590 => \true, 67591 => \true, 67593 => \true, 67638 => \true, 67641 => \true, 67642 => \true, 67643 => \true, 67645 => \true, 67646 => \true, 67670 => \true, 67743 => \true, 67744 => \true, 67745 => \true, 67746 => \true, 67747 => \true, 67748 => \true, 67749 => \true, 67750 => \true, 67827 => \true, 67830 => \true, 67831 => \true, 67832 => \true, 67833 => \true, 67834 => \true, 67868 => \true, 67869 => \true, 67870 => \true, 67898 => \true, 67899 => \true, 67900 => \true, 67901 => \true, 67902 => \true, 68024 => \true, 68025 => \true, 68026 => \true, 68027 => \true, 68048 => \true, 68049 => \true, 68100 => \true, 68103 => \true, 68104 => \true, 68105 => \true, 68106 => \true, 68107 => \true, 68116 => \true, 68120 => \true, 68150 => \true, 68151 => \true, 68155 => \true, 68156 => \true, 68157 => \true, 68158 => \true, 68169 => \true, 68170 => \true, 68171 => \true, 68172 => \true, 68173 => \true, 68174 => \true, 68175 => \true, 68185 => \true, 68186 => \true, 68187 => \true, 68188 => \true, 68189 => \true, 68190 => \true, 68191 => \true, 68327 => \true, 68328 => \true, 68329 => \true, 68330 => \true, 68343 => \true, 68344 => \true, 68345 => \true, 68346 => \true, 68347 => \true, 68348 => \true, 68349 => \true, 68350 => \true, 68351 => \true, 68406 => \true, 68407 => \true, 68408 => \true, 68438 => \true, 68439 => \true, 68467 => \true, 68468 => \true, 68469 => \true, 68470 => \true, 68471 => \true, 68498 => \true, 68499 => \true, 68500 => \true, 68501 => \true, 68502 => \true, 68503 => \true, 68504 => \true, 68509 => \true, 68510 => \true, 68511 => \true, 68512 => \true, 68513 => \true, 68514 => \true, 68515 => \true, 68516 => \true, 68517 => \true, 68518 => \true, 68519 => \true, 68520 => \true, 68787 => \true, 68788 => \true, 68789 => \true, 68790 => \true, 68791 => \true, 68792 => \true, 68793 => \true, 68794 => \true, 68795 => \true, 68796 => \true, 68797 => \true, 68798 => \true, 68799 => \true, 68851 => \true, 68852 => \true, 68853 => \true, 68854 => \true, 68855 => \true, 68856 => \true, 68857 => \true, 68904 => \true, 68905 => \true, 68906 => \true, 68907 => \true, 68908 => \true, 68909 => \true, 68910 => \true, 68911 => \true, 69247 => \true, 69290 => \true, 69294 => \true, 69295 => \true, 69416 => \true, 69417 => \true, 69418 => \true, 69419 => \true, 69420 => \true, 69421 => \true, 69422 => \true, 69423 => \true, 69580 => \true, 69581 => \true, 69582 => \true, 69583 => \true, 69584 => \true, 69585 => \true, 69586 => \true, 69587 => \true, 69588 => \true, 69589 => \true, 69590 => \true, 69591 => \true, 69592 => \true, 69593 => \true, 69594 => \true, 69595 => \true, 69596 => \true, 69597 => \true, 69598 => \true, 69599 => \true, 69623 => \true, 69624 => \true, 69625 => \true, 69626 => \true, 69627 => \true, 69628 => \true, 69629 => \true, 69630 => \true, 69631 => \true, 69710 => \true, 69711 => \true, 69712 => \true, 69713 => \true, 69744 => \true, 69745 => \true, 69746 => \true, 69747 => \true, 69748 => \true, 69749 => \true, 69750 => \true, 69751 => \true, 69752 => \true, 69753 => \true, 69754 => \true, 69755 => \true, 69756 => \true, 69757 => \true, 69758 => \true, 69821 => \true, 69826 => \true, 69827 => \true, 69828 => \true, 69829 => \true, 69830 => \true, 69831 => \true, 69832 => \true, 69833 => \true, 69834 => \true, 69835 => \true, 69836 => \true, 69837 => \true, 69838 => \true, 69839 => \true, 69865 => \true, 69866 => \true, 69867 => \true, 69868 => \true, 69869 => \true, 69870 => \true, 69871 => \true, 69882 => \true, 69883 => \true, 69884 => \true, 69885 => \true, 69886 => \true, 69887 => \true, 69941 => \true, 69960 => \true, 69961 => \true, 69962 => \true, 69963 => \true, 69964 => \true, 69965 => \true, 69966 => \true, 69967 => \true, 70007 => \true, 70008 => \true, 70009 => \true, 70010 => \true, 70011 => \true, 70012 => \true, 70013 => \true, 70014 => \true, 70015 => \true, 70112 => \true, 70133 => \true, 70134 => \true, 70135 => \true, 70136 => \true, 70137 => \true, 70138 => \true, 70139 => \true, 70140 => \true, 70141 => \true, 70142 => \true, 70143 => \true, 70162 => \true, 70279 => \true, 70281 => \true, 70286 => \true, 70302 => \true, 70314 => \true, 70315 => \true, 70316 => \true, 70317 => \true, 70318 => \true, 70319 => \true, 70379 => \true, 70380 => \true, 70381 => \true, 70382 => \true, 70383 => \true, 70394 => \true, 70395 => \true, 70396 => \true, 70397 => \true, 70398 => \true, 70399 => \true, 70404 => \true, 70413 => \true, 70414 => \true, 70417 => \true, 70418 => \true, 70441 => \true, 70449 => \true, 70452 => \true, 70458 => \true, 70469 => \true, 70470 => \true, 70473 => \true, 70474 => \true, 70478 => \true, 70479 => \true, 70481 => \true, 70482 => \true, 70483 => \true, 70484 => \true, 70485 => \true, 70486 => \true, 70488 => \true, 70489 => \true, 70490 => \true, 70491 => \true, 70492 => \true, 70500 => \true, 70501 => \true, 70509 => \true, 70510 => \true, 70511 => \true, 70748 => \true, 70754 => \true, 70755 => \true, 70756 => \true, 70757 => \true, 70758 => \true, 70759 => \true, 70760 => \true, 70761 => \true, 70762 => \true, 70763 => \true, 70764 => \true, 70765 => \true, 70766 => \true, 70767 => \true, 70768 => \true, 70769 => \true, 70770 => \true, 70771 => \true, 70772 => \true, 70773 => \true, 70774 => \true, 70775 => \true, 70776 => \true, 70777 => \true, 70778 => \true, 70779 => \true, 70780 => \true, 70781 => \true, 70782 => \true, 70783 => \true, 70856 => \true, 70857 => \true, 70858 => \true, 70859 => \true, 70860 => \true, 70861 => \true, 70862 => \true, 70863 => \true, 71094 => \true, 71095 => \true, 71237 => \true, 71238 => \true, 71239 => \true, 71240 => \true, 71241 => \true, 71242 => \true, 71243 => \true, 71244 => \true, 71245 => \true, 71246 => \true, 71247 => \true, 71258 => \true, 71259 => \true, 71260 => \true, 71261 => \true, 71262 => \true, 71263 => \true, 71277 => \true, 71278 => \true, 71279 => \true, 71280 => \true, 71281 => \true, 71282 => \true, 71283 => \true, 71284 => \true, 71285 => \true, 71286 => \true, 71287 => \true, 71288 => \true, 71289 => \true, 71290 => \true, 71291 => \true, 71292 => \true, 71293 => \true, 71294 => \true, 71295 => \true, 71353 => \true, 71354 => \true, 71355 => \true, 71356 => \true, 71357 => \true, 71358 => \true, 71359 => \true, 71451 => \true, 71452 => \true, 71468 => \true, 71469 => \true, 71470 => \true, 71471 => \true, 71923 => \true, 71924 => \true, 71925 => \true, 71926 => \true, 71927 => \true, 71928 => \true, 71929 => \true, 71930 => \true, 71931 => \true, 71932 => \true, 71933 => \true, 71934 => \true, 71943 => \true, 71944 => \true, 71946 => \true, 71947 => \true, 71956 => \true, 71959 => \true, 71990 => \true, 71993 => \true, 71994 => \true, 72007 => \true, 72008 => \true, 72009 => \true, 72010 => \true, 72011 => \true, 72012 => \true, 72013 => \true, 72014 => \true, 72015 => \true, 72104 => \true, 72105 => \true, 72152 => \true, 72153 => \true, 72165 => \true, 72166 => \true, 72167 => \true, 72168 => \true, 72169 => \true, 72170 => \true, 72171 => \true, 72172 => \true, 72173 => \true, 72174 => \true, 72175 => \true, 72176 => \true, 72177 => \true, 72178 => \true, 72179 => \true, 72180 => \true, 72181 => \true, 72182 => \true, 72183 => \true, 72184 => \true, 72185 => \true, 72186 => \true, 72187 => \true, 72188 => \true, 72189 => \true, 72190 => \true, 72191 => \true, 72264 => \true, 72265 => \true, 72266 => \true, 72267 => \true, 72268 => \true, 72269 => \true, 72270 => \true, 72271 => \true, 72355 => \true, 72356 => \true, 72357 => \true, 72358 => \true, 72359 => \true, 72360 => \true, 72361 => \true, 72362 => \true, 72363 => \true, 72364 => \true, 72365 => \true, 72366 => \true, 72367 => \true, 72368 => \true, 72369 => \true, 72370 => \true, 72371 => \true, 72372 => \true, 72373 => \true, 72374 => \true, 72375 => \true, 72376 => \true, 72377 => \true, 72378 => \true, 72379 => \true, 72380 => \true, 72381 => \true, 72382 => \true, 72383 => \true, 72713 => \true, 72759 => \true, 72774 => \true, 72775 => \true, 72776 => \true, 72777 => \true, 72778 => \true, 72779 => \true, 72780 => \true, 72781 => \true, 72782 => \true, 72783 => \true, 72813 => \true, 72814 => \true, 72815 => \true, 72848 => \true, 72849 => \true, 72872 => \true, 72967 => \true, 72970 => \true, 73015 => \true, 73016 => \true, 73017 => \true, 73019 => \true, 73022 => \true, 73032 => \true, 73033 => \true, 73034 => \true, 73035 => \true, 73036 => \true, 73037 => \true, 73038 => \true, 73039 => \true, 73050 => \true, 73051 => \true, 73052 => \true, 73053 => \true, 73054 => \true, 73055 => \true, 73062 => \true, 73065 => \true, 73103 => \true, 73106 => \true, 73113 => \true, 73114 => \true, 73115 => \true, 73116 => \true, 73117 => \true, 73118 => \true, 73119 => \true, 73649 => \true, 73650 => \true, 73651 => \true, 73652 => \true, 73653 => \true, 73654 => \true, 73655 => \true, 73656 => \true, 73657 => \true, 73658 => \true, 73659 => \true, 73660 => \true, 73661 => \true, 73662 => \true, 73663 => \true, 73714 => \true, 73715 => \true, 73716 => \true, 73717 => \true, 73718 => \true, 73719 => \true, 73720 => \true, 73721 => \true, 73722 => \true, 73723 => \true, 73724 => \true, 73725 => \true, 73726 => \true, 74863 => \true, 74869 => \true, 74870 => \true, 74871 => \true, 74872 => \true, 74873 => \true, 74874 => \true, 74875 => \true, 74876 => \true, 74877 => \true, 74878 => \true, 74879 => \true, 78895 => \true, 78896 => \true, 78897 => \true, 78898 => \true, 78899 => \true, 78900 => \true, 78901 => \true, 78902 => \true, 78903 => \true, 78904 => \true, 92729 => \true, 92730 => \true, 92731 => \true, 92732 => \true, 92733 => \true, 92734 => \true, 92735 => \true, 92767 => \true, 92778 => \true, 92779 => \true, 92780 => \true, 92781 => \true, 92910 => \true, 92911 => \true, 92918 => \true, 92919 => \true, 92920 => \true, 92921 => \true, 92922 => \true, 92923 => \true, 92924 => \true, 92925 => \true, 92926 => \true, 92927 => \true, 92998 => \true, 92999 => \true, 93000 => \true, 93001 => \true, 93002 => \true, 93003 => \true, 93004 => \true, 93005 => \true, 93006 => \true, 93007 => \true, 93018 => \true, 93026 => \true, 93048 => \true, 93049 => \true, 93050 => \true, 93051 => \true, 93052 => \true, 94027 => \true, 94028 => \true, 94029 => \true, 94030 => \true, 94088 => \true, 94089 => \true, 94090 => \true, 94091 => \true, 94092 => \true, 94093 => \true, 94094 => \true, 94181 => \true, 94182 => \true, 94183 => \true, 94184 => \true, 94185 => \true, 94186 => \true, 94187 => \true, 94188 => \true, 94189 => \true, 94190 => \true, 94191 => \true, 94194 => \true, 94195 => \true, 94196 => \true, 94197 => \true, 94198 => \true, 94199 => \true, 94200 => \true, 94201 => \true, 94202 => \true, 94203 => \true, 94204 => \true, 94205 => \true, 94206 => \true, 94207 => \true, 100344 => \true, 100345 => \true, 100346 => \true, 100347 => \true, 100348 => \true, 100349 => \true, 100350 => \true, 100351 => \true, 110931 => \true, 110932 => \true, 110933 => \true, 110934 => \true, 110935 => \true, 110936 => \true, 110937 => \true, 110938 => \true, 110939 => \true, 110940 => \true, 110941 => \true, 110942 => \true, 110943 => \true, 110944 => \true, 110945 => \true, 110946 => \true, 110947 => \true, 110952 => \true, 110953 => \true, 110954 => \true, 110955 => \true, 110956 => \true, 110957 => \true, 110958 => \true, 110959 => \true, 113771 => \true, 113772 => \true, 113773 => \true, 113774 => \true, 113775 => \true, 113789 => \true, 113790 => \true, 113791 => \true, 113801 => \true, 113802 => \true, 113803 => \true, 113804 => \true, 113805 => \true, 113806 => \true, 113807 => \true, 113818 => \true, 113819 => \true, 119030 => \true, 119031 => \true, 119032 => \true, 119033 => \true, 119034 => \true, 119035 => \true, 119036 => \true, 119037 => \true, 119038 => \true, 119039 => \true, 119079 => \true, 119080 => \true, 119155 => \true, 119156 => \true, 119157 => \true, 119158 => \true, 119159 => \true, 119160 => \true, 119161 => \true, 119162 => \true, 119273 => \true, 119274 => \true, 119275 => \true, 119276 => \true, 119277 => \true, 119278 => \true, 119279 => \true, 119280 => \true, 119281 => \true, 119282 => \true, 119283 => \true, 119284 => \true, 119285 => \true, 119286 => \true, 119287 => \true, 119288 => \true, 119289 => \true, 119290 => \true, 119291 => \true, 119292 => \true, 119293 => \true, 119294 => \true, 119295 => \true, 119540 => \true, 119541 => \true, 119542 => \true, 119543 => \true, 119544 => \true, 119545 => \true, 119546 => \true, 119547 => \true, 119548 => \true, 119549 => \true, 119550 => \true, 119551 => \true, 119639 => \true, 119640 => \true, 119641 => \true, 119642 => \true, 119643 => \true, 119644 => \true, 119645 => \true, 119646 => \true, 119647 => \true, 119893 => \true, 119965 => \true, 119968 => \true, 119969 => \true, 119971 => \true, 119972 => \true, 119975 => \true, 119976 => \true, 119981 => \true, 119994 => \true, 119996 => \true, 120004 => \true, 120070 => \true, 120075 => \true, 120076 => \true, 120085 => \true, 120093 => \true, 120122 => \true, 120127 => \true, 120133 => \true, 120135 => \true, 120136 => \true, 120137 => \true, 120145 => \true, 120486 => \true, 120487 => \true, 120780 => \true, 120781 => \true, 121484 => \true, 121485 => \true, 121486 => \true, 121487 => \true, 121488 => \true, 121489 => \true, 121490 => \true, 121491 => \true, 121492 => \true, 121493 => \true, 121494 => \true, 121495 => \true, 121496 => \true, 121497 => \true, 121498 => \true, 121504 => \true, 122887 => \true, 122905 => \true, 122906 => \true, 122914 => \true, 122917 => \true, 123181 => \true, 123182 => \true, 123183 => \true, 123198 => \true, 123199 => \true, 123210 => \true, 123211 => \true, 123212 => \true, 123213 => \true, 123642 => \true, 123643 => \true, 123644 => \true, 123645 => \true, 123646 => \true, 125125 => \true, 125126 => \true, 125260 => \true, 125261 => \true, 125262 => \true, 125263 => \true, 125274 => \true, 125275 => \true, 125276 => \true, 125277 => \true, 126468 => \true, 126496 => \true, 126499 => \true, 126501 => \true, 126502 => \true, 126504 => \true, 126515 => \true, 126520 => \true, 126522 => \true, 126524 => \true, 126525 => \true, 126526 => \true, 126527 => \true, 126528 => \true, 126529 => \true, 126531 => \true, 126532 => \true, 126533 => \true, 126534 => \true, 126536 => \true, 126538 => \true, 126540 => \true, 126544 => \true, 126547 => \true, 126549 => \true, 126550 => \true, 126552 => \true, 126554 => \true, 126556 => \true, 126558 => \true, 126560 => \true, 126563 => \true, 126565 => \true, 126566 => \true, 126571 => \true, 126579 => \true, 126584 => \true, 126589 => \true, 126591 => \true, 126602 => \true, 126620 => \true, 126621 => \true, 126622 => \true, 126623 => \true, 126624 => \true, 126628 => \true, 126634 => \true, 127020 => \true, 127021 => \true, 127022 => \true, 127023 => \true, 127124 => \true, 127125 => \true, 127126 => \true, 127127 => \true, 127128 => \true, 127129 => \true, 127130 => \true, 127131 => \true, 127132 => \true, 127133 => \true, 127134 => \true, 127135 => \true, 127151 => \true, 127152 => \true, 127168 => \true, 127184 => \true, 127222 => \true, 127223 => \true, 127224 => \true, 127225 => \true, 127226 => \true, 127227 => \true, 127228 => \true, 127229 => \true, 127230 => \true, 127231 => \true, 127232 => \true, 127491 => \true, 127492 => \true, 127493 => \true, 127494 => \true, 127495 => \true, 127496 => \true, 127497 => \true, 127498 => \true, 127499 => \true, 127500 => \true, 127501 => \true, 127502 => \true, 127503 => \true, 127548 => \true, 127549 => \true, 127550 => \true, 127551 => \true, 127561 => \true, 127562 => \true, 127563 => \true, 127564 => \true, 127565 => \true, 127566 => \true, 127567 => \true, 127570 => \true, 127571 => \true, 127572 => \true, 127573 => \true, 127574 => \true, 127575 => \true, 127576 => \true, 127577 => \true, 127578 => \true, 127579 => \true, 127580 => \true, 127581 => \true, 127582 => \true, 127583 => \true, 128728 => \true, 128729 => \true, 128730 => \true, 128731 => \true, 128732 => \true, 128733 => \true, 128734 => \true, 128735 => \true, 128749 => \true, 128750 => \true, 128751 => \true, 128765 => \true, 128766 => \true, 128767 => \true, 128884 => \true, 128885 => \true, 128886 => \true, 128887 => \true, 128888 => \true, 128889 => \true, 128890 => \true, 128891 => \true, 128892 => \true, 128893 => \true, 128894 => \true, 128895 => \true, 128985 => \true, 128986 => \true, 128987 => \true, 128988 => \true, 128989 => \true, 128990 => \true, 128991 => \true, 129004 => \true, 129005 => \true, 129006 => \true, 129007 => \true, 129008 => \true, 129009 => \true, 129010 => \true, 129011 => \true, 129012 => \true, 129013 => \true, 129014 => \true, 129015 => \true, 129016 => \true, 129017 => \true, 129018 => \true, 129019 => \true, 129020 => \true, 129021 => \true, 129022 => \true, 129023 => \true, 129036 => \true, 129037 => \true, 129038 => \true, 129039 => \true, 129096 => \true, 129097 => \true, 129098 => \true, 129099 => \true, 129100 => \true, 129101 => \true, 129102 => \true, 129103 => \true, 129114 => \true, 129115 => \true, 129116 => \true, 129117 => \true, 129118 => \true, 129119 => \true, 129160 => \true, 129161 => \true, 129162 => \true, 129163 => \true, 129164 => \true, 129165 => \true, 129166 => \true, 129167 => \true, 129198 => \true, 129199 => \true, 129401 => \true, 129484 => \true, 129620 => \true, 129621 => \true, 129622 => \true, 129623 => \true, 129624 => \true, 129625 => \true, 129626 => \true, 129627 => \true, 129628 => \true, 129629 => \true, 129630 => \true, 129631 => \true, 129646 => \true, 129647 => \true, 129653 => \true, 129654 => \true, 129655 => \true, 129659 => \true, 129660 => \true, 129661 => \true, 129662 => \true, 129663 => \true, 129671 => \true, 129672 => \true, 129673 => \true, 129674 => \true, 129675 => \true, 129676 => \true, 129677 => \true, 129678 => \true, 129679 => \true, 129705 => \true, 129706 => \true, 129707 => \true, 129708 => \true, 129709 => \true, 129710 => \true, 129711 => \true, 129719 => \true, 129720 => \true, 129721 => \true, 129722 => \true, 129723 => \true, 129724 => \true, 129725 => \true, 129726 => \true, 129727 => \true, 129731 => \true, 129732 => \true, 129733 => \true, 129734 => \true, 129735 => \true, 129736 => \true, 129737 => \true, 129738 => \true, 129739 => \true, 129740 => \true, 129741 => \true, 129742 => \true, 129743 => \true, 129939 => \true, 131070 => \true, 131071 => \true, 177973 => \true, 177974 => \true, 177975 => \true, 177976 => \true, 177977 => \true, 177978 => \true, 177979 => \true, 177980 => \true, 177981 => \true, 177982 => \true, 177983 => \true, 178206 => \true, 178207 => \true, 183970 => \true, 183971 => \true, 183972 => \true, 183973 => \true, 183974 => \true, 183975 => \true, 183976 => \true, 183977 => \true, 183978 => \true, 183979 => \true, 183980 => \true, 183981 => \true, 183982 => \true, 183983 => \true, 194664 => \true, 194676 => \true, 194847 => \true, 194911 => \true, 195007 => \true, 196606 => \true, 196607 => \true, 262142 => \true, 262143 => \true, 327678 => \true, 327679 => \true, 393214 => \true, 393215 => \true, 458750 => \true, 458751 => \true, 524286 => \true, 524287 => \true, 589822 => \true, 589823 => \true, 655358 => \true, 655359 => \true, 720894 => \true, 720895 => \true, 786430 => \true, 786431 => \true, 851966 => \true, 851967 => \true, 917502 => \true, 917503 => \true, 917504 => \true, 917505 => \true, 917506 => \true, 917507 => \true, 917508 => \true, 917509 => \true, 917510 => \true, 917511 => \true, 917512 => \true, 917513 => \true, 917514 => \true, 917515 => \true, 917516 => \true, 917517 => \true, 917518 => \true, 917519 => \true, 917520 => \true, 917521 => \true, 917522 => \true, 917523 => \true, 917524 => \true, 917525 => \true, 917526 => \true, 917527 => \true, 917528 => \true, 917529 => \true, 917530 => \true, 917531 => \true, 917532 => \true, 917533 => \true, 917534 => \true, 917535 => \true, 983038 => \true, 983039 => \true, 1048574 => \true, 1048575 => \true, 1114110 => \true, 1114111 => \true);
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(160 => ' ', 168 => ' ̈', 175 => ' ̄', 180 => ' ́', 184 => ' ̧', 728 => ' ̆', 729 => ' ̇', 730 => ' ̊', 731 => ' ̨', 732 => ' ̃', 733 => ' ̋', 890 => ' ι', 894 => ';', 900 => ' ́', 901 => ' ̈́', 8125 => ' ̓', 8127 => ' ̓', 8128 => ' ͂', 8129 => ' ̈͂', 8141 => ' ̓̀', 8142 => ' ̓́', 8143 => ' ̓͂', 8157 => ' ̔̀', 8158 => ' ̔́', 8159 => ' ̔͂', 8173 => ' ̈̀', 8174 => ' ̈́', 8175 => '`', 8189 => ' ́', 8190 => ' ̔', 8192 => ' ', 8193 => ' ', 8194 => ' ', 8195 => ' ', 8196 => ' ', 8197 => ' ', 8198 => ' ', 8199 => ' ', 8200 => ' ', 8201 => ' ', 8202 => ' ', 8215 => ' ̳', 8239 => ' ', 8252 => '!!', 8254 => ' ̅', 8263 => '??', 8264 => '?!', 8265 => '!?', 8287 => ' ', 8314 => '+', 8316 => '=', 8317 => '(', 8318 => ')', 8330 => '+', 8332 => '=', 8333 => '(', 8334 => ')', 8448 => 'a/c', 8449 => 'a/s', 8453 => 'c/o', 8454 => 'c/u', 9332 => '(1)', 9333 => '(2)', 9334 => '(3)', 9335 => '(4)', 9336 => '(5)', 9337 => '(6)', 9338 => '(7)', 9339 => '(8)', 9340 => '(9)', 9341 => '(10)', 9342 => '(11)', 9343 => '(12)', 9344 => '(13)', 9345 => '(14)', 9346 => '(15)', 9347 => '(16)', 9348 => '(17)', 9349 => '(18)', 9350 => '(19)', 9351 => '(20)', 9372 => '(a)', 9373 => '(b)', 9374 => '(c)', 9375 => '(d)', 9376 => '(e)', 9377 => '(f)', 9378 => '(g)', 9379 => '(h)', 9380 => '(i)', 9381 => '(j)', 9382 => '(k)', 9383 => '(l)', 9384 => '(m)', 9385 => '(n)', 9386 => '(o)', 9387 => '(p)', 9388 => '(q)', 9389 => '(r)', 9390 => '(s)', 9391 => '(t)', 9392 => '(u)', 9393 => '(v)', 9394 => '(w)', 9395 => '(x)', 9396 => '(y)', 9397 => '(z)', 10868 => '::=', 10869 => '==', 10870 => '===', 12288 => ' ', 12443 => ' ゙', 12444 => ' ゚', 12800 => '(ᄀ)', 12801 => '(ᄂ)', 12802 => '(ᄃ)', 12803 => '(ᄅ)', 12804 => '(ᄆ)', 12805 => '(ᄇ)', 12806 => '(ᄉ)', 12807 => '(ᄋ)', 12808 => '(ᄌ)', 12809 => '(ᄎ)', 12810 => '(ᄏ)', 12811 => '(ᄐ)', 12812 => '(ᄑ)', 12813 => '(ᄒ)', 12814 => '(가)', 12815 => '(나)', 12816 => '(다)', 12817 => '(라)', 12818 => '(마)', 12819 => '(바)', 12820 => '(사)', 12821 => '(아)', 12822 => '(자)', 12823 => '(차)', 12824 => '(카)', 12825 => '(타)', 12826 => '(파)', 12827 => '(하)', 12828 => '(주)', 12829 => '(오전)', 12830 => '(오후)', 12832 => '(一)', 12833 => '(二)', 12834 => '(三)', 12835 => '(四)', 12836 => '(五)', 12837 => '(六)', 12838 => '(七)', 12839 => '(八)', 12840 => '(九)', 12841 => '(十)', 12842 => '(月)', 12843 => '(火)', 12844 => '(水)', 12845 => '(木)', 12846 => '(金)', 12847 => '(土)', 12848 => '(日)', 12849 => '(株)', 12850 => '(有)', 12851 => '(社)', 12852 => '(名)', 12853 => '(特)', 12854 => '(財)', 12855 => '(祝)', 12856 => '(労)', 12857 => '(代)', 12858 => '(呼)', 12859 => '(学)', 12860 => '(監)', 12861 => '(企)', 12862 => '(資)', 12863 => '(協)', 12864 => '(祭)', 12865 => '(休)', 12866 => '(自)', 12867 => '(至)', 64297 => '+', 64606 => ' ٌّ', 64607 => ' ٍّ', 64608 => ' َّ', 64609 => ' ُّ', 64610 => ' ِّ', 64611 => ' ّٰ', 65018 => 'صلى الله عليه وسلم', 65019 => 'جل جلاله', 65040 => ',', 65043 => ':', 65044 => ';', 65045 => '!', 65046 => '?', 65075 => '_', 65076 => '_', 65077 => '(', 65078 => ')', 65079 => '{', 65080 => '}', 65095 => '[', 65096 => ']', 65097 => ' ̅', 65098 => ' ̅', 65099 => ' ̅', 65100 => ' ̅', 65101 => '_', 65102 => '_', 65103 => '_', 65104 => ',', 65108 => ';', 65109 => ':', 65110 => '?', 65111 => '!', 65113 => '(', 65114 => ')', 65115 => '{', 65116 => '}', 65119 => '#', 65120 => '&', 65121 => '*', 65122 => '+', 65124 => '<', 65125 => '>', 65126 => '=', 65128 => '\\', 65129 => '$', 65130 => '%', 65131 => '@', 65136 => ' ً', 65138 => ' ٌ', 65140 => ' ٍ', 65142 => ' َ', 65144 => ' ُ', 65146 => ' ِ', 65148 => ' ّ', 65150 => ' ْ', 65281 => '!', 65282 => '"', 65283 => '#', 65284 => '$', 65285 => '%', 65286 => '&', 65287 => '\'', 65288 => '(', 65289 => ')', 65290 => '*', 65291 => '+', 65292 => ',', 65295 => '/', 65306 => ':', 65307 => ';', 65308 => '<', 65309 => '=', 65310 => '>', 65311 => '?', 65312 => '@', 65339 => '[', 65340 => '\\', 65341 => ']', 65342 => '^', 65343 => '_', 65344 => '`', 65371 => '{', 65372 => '|', 65373 => '}', 65374 => '~', 65507 => ' ̄', 127233 => '0,', 127234 => '1,', 127235 => '2,', 127236 => '3,', 127237 => '4,', 127238 => '5,', 127239 => '6,', 127240 => '7,', 127241 => '8,', 127242 => '9,', 127248 => '(a)', 127249 => '(b)', 127250 => '(c)', 127251 => '(d)', 127252 => '(e)', 127253 => '(f)', 127254 => '(g)', 127255 => '(h)', 127256 => '(i)', 127257 => '(j)', 127258 => '(k)', 127259 => '(l)', 127260 => '(m)', 127261 => '(n)', 127262 => '(o)', 127263 => '(p)', 127264 => '(q)', 127265 => '(r)', 127266 => '(s)', 127267 => '(t)', 127268 => '(u)', 127269 => '(v)', 127270 => '(w)', 127271 => '(x)', 127272 => '(y)', 127273 => '(z)');
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(0 => \true, 1 => \true, 2 => \true, 3 => \true, 4 => \true, 5 => \true, 6 => \true, 7 => \true, 8 => \true, 9 => \true, 10 => \true, 11 => \true, 12 => \true, 13 => \true, 14 => \true, 15 => \true, 16 => \true, 17 => \true, 18 => \true, 19 => \true, 20 => \true, 21 => \true, 22 => \true, 23 => \true, 24 => \true, 25 => \true, 26 => \true, 27 => \true, 28 => \true, 29 => \true, 30 => \true, 31 => \true, 32 => \true, 33 => \true, 34 => \true, 35 => \true, 36 => \true, 37 => \true, 38 => \true, 39 => \true, 40 => \true, 41 => \true, 42 => \true, 43 => \true, 44 => \true, 47 => \true, 58 => \true, 59 => \true, 60 => \true, 61 => \true, 62 => \true, 63 => \true, 64 => \true, 91 => \true, 92 => \true, 93 => \true, 94 => \true, 95 => \true, 96 => \true, 123 => \true, 124 => \true, 125 => \true, 126 => \true, 127 => \true, 8800 => \true, 8814 => \true, 8815 => \true);
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/ignored.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(173 => \true, 847 => \true, 6155 => \true, 6156 => \true, 6157 => \true, 8203 => \true, 8288 => \true, 8292 => \true, 65024 => \true, 65025 => \true, 65026 => \true, 65027 => \true, 65028 => \true, 65029 => \true, 65030 => \true, 65031 => \true, 65032 => \true, 65033 => \true, 65034 => \true, 65035 => \true, 65036 => \true, 65037 => \true, 65038 => \true, 65039 => \true, 65279 => \true, 113824 => \true, 113825 => \true, 113826 => \true, 113827 => \true, 917760 => \true, 917761 => \true, 917762 => \true, 917763 => \true, 917764 => \true, 917765 => \true, 917766 => \true, 917767 => \true, 917768 => \true, 917769 => \true, 917770 => \true, 917771 => \true, 917772 => \true, 917773 => \true, 917774 => \true, 917775 => \true, 917776 => \true, 917777 => \true, 917778 => \true, 917779 => \true, 917780 => \true, 917781 => \true, 917782 => \true, 917783 => \true, 917784 => \true, 917785 => \true, 917786 => \true, 917787 => \true, 917788 => \true, 917789 => \true, 917790 => \true, 917791 => \true, 917792 => \true, 917793 => \true, 917794 => \true, 917795 => \true, 917796 => \true, 917797 => \true, 917798 => \true, 917799 => \true, 917800 => \true, 917801 => \true, 917802 => \true, 917803 => \true, 917804 => \true, 917805 => \true, 917806 => \true, 917807 => \true, 917808 => \true, 917809 => \true, 917810 => \true, 917811 => \true, 917812 => \true, 917813 => \true, 917814 => \true, 917815 => \true, 917816 => \true, 917817 => \true, 917818 => \true, 917819 => \true, 917820 => \true, 917821 => \true, 917822 => \true, 917823 => \true, 917824 => \true, 917825 => \true, 917826 => \true, 917827 => \true, 917828 => \true, 917829 => \true, 917830 => \true, 917831 => \true, 917832 => \true, 917833 => \true, 917834 => \true, 917835 => \true, 917836 => \true, 917837 => \true, 917838 => \true, 917839 => \true, 917840 => \true, 917841 => \true, 917842 => \true, 917843 => \true, 917844 => \true, 917845 => \true, 917846 => \true, 917847 => \true, 917848 => \true, 917849 => \true, 917850 => \true, 917851 => \true, 917852 => \true, 917853 => \true, 917854 => \true, 917855 => \true, 917856 => \true, 917857 => \true, 917858 => \true, 917859 => \true, 917860 => \true, 917861 => \true, 917862 => \true, 917863 => \true, 917864 => \true, 917865 => \true, 917866 => \true, 917867 => \true, 917868 => \true, 917869 => \true, 917870 => \true, 917871 => \true, 917872 => \true, 917873 => \true, 917874 => \true, 917875 => \true, 917876 => \true, 917877 => \true, 917878 => \true, 917879 => \true, 917880 => \true, 917881 => \true, 917882 => \true, 917883 => \true, 917884 => \true, 917885 => \true, 917886 => \true, 917887 => \true, 917888 => \true, 917889 => \true, 917890 => \true, 917891 => \true, 917892 => \true, 917893 => \true, 917894 => \true, 917895 => \true, 917896 => \true, 917897 => \true, 917898 => \true, 917899 => \true, 917900 => \true, 917901 => \true, 917902 => \true, 917903 => \true, 917904 => \true, 917905 => \true, 917906 => \true, 917907 => \true, 917908 => \true, 917909 => \true, 917910 => \true, 917911 => \true, 917912 => \true, 917913 => \true, 917914 => \true, 917915 => \true, 917916 => \true, 917917 => \true, 917918 => \true, 917919 => \true, 917920 => \true, 917921 => \true, 917922 => \true, 917923 => \true, 917924 => \true, 917925 => \true, 917926 => \true, 917927 => \true, 917928 => \true, 917929 => \true, 917930 => \true, 917931 => \true, 917932 => \true, 917933 => \true, 917934 => \true, 917935 => \true, 917936 => \true, 917937 => \true, 917938 => \true, 917939 => \true, 917940 => \true, 917941 => \true, 917942 => \true, 917943 => \true, 917944 => \true, 917945 => \true, 917946 => \true, 917947 => \true, 917948 => \true, 917949 => \true, 917950 => \true, 917951 => \true, 917952 => \true, 917953 => \true, 917954 => \true, 917955 => \true, 917956 => \true, 917957 => \true, 917958 => \true, 917959 => \true, 917960 => \true, 917961 => \true, 917962 => \true, 917963 => \true, 917964 => \true, 917965 => \true, 917966 => \true, 917967 => \true, 917968 => \true, 917969 => \true, 917970 => \true, 917971 => \true, 917972 => \true, 917973 => \true, 917974 => \true, 917975 => \true, 917976 => \true, 917977 => \true, 917978 => \true, 917979 => \true, 917980 => \true, 917981 => \true, 917982 => \true, 917983 => \true, 917984 => \true, 917985 => \true, 917986 => \true, 917987 => \true, 917988 => \true, 917989 => \true, 917990 => \true, 917991 => \true, 917992 => \true, 917993 => \true, 917994 => \true, 917995 => \true, 917996 => \true, 917997 => \true, 917998 => \true, 917999 => \true);
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/mapped.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(65 => 'a', 66 => 'b', 67 => 'c', 68 => 'd', 69 => 'e', 70 => 'f', 71 => 'g', 72 => 'h', 73 => 'i', 74 => 'j', 75 => 'k', 76 => 'l', 77 => 'm', 78 => 'n', 79 => 'o', 80 => 'p', 81 => 'q', 82 => 'r', 83 => 's', 84 => 't', 85 => 'u', 86 => 'v', 87 => 'w', 88 => 'x', 89 => 'y', 90 => 'z', 170 => 'a', 178 => '2', 179 => '3', 181 => 'μ', 185 => '1', 186 => 'o', 188 => '1⁄4', 189 => '1⁄2', 190 => '3⁄4', 192 => 'à', 193 => 'á', 194 => 'â', 195 => 'ã', 196 => 'ä', 197 => 'å', 198 => 'æ', 199 => 'ç', 200 => 'è', 201 => 'é', 202 => 'ê', 203 => 'ë', 204 => 'ì', 205 => 'í', 206 => 'î', 207 => 'ï', 208 => 'ð', 209 => 'ñ', 210 => 'ò', 211 => 'ó', 212 => 'ô', 213 => 'õ', 214 => 'ö', 216 => 'ø', 217 => 'ù', 218 => 'ú', 219 => 'û', 220 => 'ü', 221 => 'ý', 222 => 'þ', 256 => 'ā', 258 => 'ă', 260 => 'ą', 262 => 'ć', 264 => 'ĉ', 266 => 'ċ', 268 => 'č', 270 => 'ď', 272 => 'đ', 274 => 'ē', 276 => 'ĕ', 278 => 'ė', 280 => 'ę', 282 => 'ě', 284 => 'ĝ', 286 => 'ğ', 288 => 'ġ', 290 => 'ģ', 292 => 'ĥ', 294 => 'ħ', 296 => 'ĩ', 298 => 'ī', 300 => 'ĭ', 302 => 'į', 304 => 'i̇', 306 => 'ij', 307 => 'ij', 308 => 'ĵ', 310 => 'ķ', 313 => 'ĺ', 315 => 'ļ', 317 => 'ľ', 319 => 'l·', 320 => 'l·', 321 => 'ł', 323 => 'ń', 325 => 'ņ', 327 => 'ň', 329 => 'ʼn', 330 => 'ŋ', 332 => 'ō', 334 => 'ŏ', 336 => 'ő', 338 => 'œ', 340 => 'ŕ', 342 => 'ŗ', 344 => 'ř', 346 => 'ś', 348 => 'ŝ', 350 => 'ş', 352 => 'š', 354 => 'ţ', 356 => 'ť', 358 => 'ŧ', 360 => 'ũ', 362 => 'ū', 364 => 'ŭ', 366 => 'ů', 368 => 'ű', 370 => 'ų', 372 => 'ŵ', 374 => 'ŷ', 376 => 'ÿ', 377 => 'ź', 379 => 'ż', 381 => 'ž', 383 => 's', 385 => 'ɓ', 386 => 'ƃ', 388 => 'ƅ', 390 => 'ɔ', 391 => 'ƈ', 393 => 'ɖ', 394 => 'ɗ', 395 => 'ƌ', 398 => 'ǝ', 399 => 'ə', 400 => 'ɛ', 401 => 'ƒ', 403 => 'ɠ', 404 => 'ɣ', 406 => 'ɩ', 407 => 'ɨ', 408 => 'ƙ', 412 => 'ɯ', 413 => 'ɲ', 415 => 'ɵ', 416 => 'ơ', 418 => 'ƣ', 420 => 'ƥ', 422 => 'ʀ', 423 => 'ƨ', 425 => 'ʃ', 428 => 'ƭ', 430 => 'ʈ', 431 => 'ư', 433 => 'ʊ', 434 => 'ʋ', 435 => 'ƴ', 437 => 'ƶ', 439 => 'ʒ', 440 => 'ƹ', 444 => 'ƽ', 452 => 'dž', 453 => 'dž', 454 => 'dž', 455 => 'lj', 456 => 'lj', 457 => 'lj', 458 => 'nj', 459 => 'nj', 460 => 'nj', 461 => 'ǎ', 463 => 'ǐ', 465 => 'ǒ', 467 => 'ǔ', 469 => 'ǖ', 471 => 'ǘ', 473 => 'ǚ', 475 => 'ǜ', 478 => 'ǟ', 480 => 'ǡ', 482 => 'ǣ', 484 => 'ǥ', 486 => 'ǧ', 488 => 'ǩ', 490 => 'ǫ', 492 => 'ǭ', 494 => 'ǯ', 497 => 'dz', 498 => 'dz', 499 => 'dz', 500 => 'ǵ', 502 => 'ƕ', 503 => 'ƿ', 504 => 'ǹ', 506 => 'ǻ', 508 => 'ǽ', 510 => 'ǿ', 512 => 'ȁ', 514 => 'ȃ', 516 => 'ȅ', 518 => 'ȇ', 520 => 'ȉ', 522 => 'ȋ', 524 => 'ȍ', 526 => 'ȏ', 528 => 'ȑ', 530 => 'ȓ', 532 => 'ȕ', 534 => 'ȗ', 536 => 'ș', 538 => 'ț', 540 => 'ȝ', 542 => 'ȟ', 544 => 'ƞ', 546 => 'ȣ', 548 => 'ȥ', 550 => 'ȧ', 552 => 'ȩ', 554 => 'ȫ', 556 => 'ȭ', 558 => 'ȯ', 560 => 'ȱ', 562 => 'ȳ', 570 => 'ⱥ', 571 => 'ȼ', 573 => 'ƚ', 574 => 'ⱦ', 577 => 'ɂ', 579 => 'ƀ', 580 => 'ʉ', 581 => 'ʌ', 582 => 'ɇ', 584 => 'ɉ', 586 => 'ɋ', 588 => 'ɍ', 590 => 'ɏ', 688 => 'h', 689 => 'ɦ', 690 => 'j', 691 => 'r', 692 => 'ɹ', 693 => 'ɻ', 694 => 'ʁ', 695 => 'w', 696 => 'y', 736 => 'ɣ', 737 => 'l', 738 => 's', 739 => 'x', 740 => 'ʕ', 832 => '̀', 833 => '́', 835 => '̓', 836 => '̈́', 837 => 'ι', 880 => 'ͱ', 882 => 'ͳ', 884 => 'ʹ', 886 => 'ͷ', 895 => 'ϳ', 902 => 'ά', 903 => '·', 904 => 'έ', 905 => 'ή', 906 => 'ί', 908 => 'ό', 910 => 'ύ', 911 => 'ώ', 913 => 'α', 914 => 'β', 915 => 'γ', 916 => 'δ', 917 => 'ε', 918 => 'ζ', 919 => 'η', 920 => 'θ', 921 => 'ι', 922 => 'κ', 923 => 'λ', 924 => 'μ', 925 => 'ν', 926 => 'ξ', 927 => 'ο', 928 => 'π', 929 => 'ρ', 931 => 'σ', 932 => 'τ', 933 => 'υ', 934 => 'φ', 935 => 'χ', 936 => 'ψ', 937 => 'ω', 938 => 'ϊ', 939 => 'ϋ', 975 => 'ϗ', 976 => 'β', 977 => 'θ', 978 => 'υ', 979 => 'ύ', 980 => 'ϋ', 981 => 'φ', 982 => 'π', 984 => 'ϙ', 986 => 'ϛ', 988 => 'ϝ', 990 => 'ϟ', 992 => 'ϡ', 994 => 'ϣ', 996 => 'ϥ', 998 => 'ϧ', 1000 => 'ϩ', 1002 => 'ϫ', 1004 => 'ϭ', 1006 => 'ϯ', 1008 => 'κ', 1009 => 'ρ', 1010 => 'σ', 1012 => 'θ', 1013 => 'ε', 1015 => 'ϸ', 1017 => 'σ', 1018 => 'ϻ', 1021 => 'ͻ', 1022 => 'ͼ', 1023 => 'ͽ', 1024 => 'ѐ', 1025 => 'ё', 1026 => 'ђ', 1027 => 'ѓ', 1028 => 'є', 1029 => 'ѕ', 1030 => 'і', 1031 => 'ї', 1032 => 'ј', 1033 => 'љ', 1034 => 'њ', 1035 => 'ћ', 1036 => 'ќ', 1037 => 'ѝ', 1038 => 'ў', 1039 => 'џ', 1040 => 'а', 1041 => 'б', 1042 => 'в', 1043 => 'г', 1044 => 'д', 1045 => 'е', 1046 => 'ж', 1047 => 'з', 1048 => 'и', 1049 => 'й', 1050 => 'к', 1051 => 'л', 1052 => 'м', 1053 => 'н', 1054 => 'о', 1055 => 'п', 1056 => 'р', 1057 => 'с', 1058 => 'т', 1059 => 'у', 1060 => 'ф', 1061 => 'х', 1062 => 'ц', 1063 => 'ч', 1064 => 'ш', 1065 => 'щ', 1066 => 'ъ', 1067 => 'ы', 1068 => 'ь', 1069 => 'э', 1070 => 'ю', 1071 => 'я', 1120 => 'ѡ', 1122 => 'ѣ', 1124 => 'ѥ', 1126 => 'ѧ', 1128 => 'ѩ', 1130 => 'ѫ', 1132 => 'ѭ', 1134 => 'ѯ', 1136 => 'ѱ', 1138 => 'ѳ', 1140 => 'ѵ', 1142 => 'ѷ', 1144 => 'ѹ', 1146 => 'ѻ', 1148 => 'ѽ', 1150 => 'ѿ', 1152 => 'ҁ', 1162 => 'ҋ', 1164 => 'ҍ', 1166 => 'ҏ', 1168 => 'ґ', 1170 => 'ғ', 1172 => 'ҕ', 1174 => 'җ', 1176 => 'ҙ', 1178 => 'қ', 1180 => 'ҝ', 1182 => 'ҟ', 1184 => 'ҡ', 1186 => 'ң', 1188 => 'ҥ', 1190 => 'ҧ', 1192 => 'ҩ', 1194 => 'ҫ', 1196 => 'ҭ', 1198 => 'ү', 1200 => 'ұ', 1202 => 'ҳ', 1204 => 'ҵ', 1206 => 'ҷ', 1208 => 'ҹ', 1210 => 'һ', 1212 => 'ҽ', 1214 => 'ҿ', 1217 => 'ӂ', 1219 => 'ӄ', 1221 => 'ӆ', 1223 => 'ӈ', 1225 => 'ӊ', 1227 => 'ӌ', 1229 => 'ӎ', 1232 => 'ӑ', 1234 => 'ӓ', 1236 => 'ӕ', 1238 => 'ӗ', 1240 => 'ә', 1242 => 'ӛ', 1244 => 'ӝ', 1246 => 'ӟ', 1248 => 'ӡ', 1250 => 'ӣ', 1252 => 'ӥ', 1254 => 'ӧ', 1256 => 'ө', 1258 => 'ӫ', 1260 => 'ӭ', 1262 => 'ӯ', 1264 => 'ӱ', 1266 => 'ӳ', 1268 => 'ӵ', 1270 => 'ӷ', 1272 => 'ӹ', 1274 => 'ӻ', 1276 => 'ӽ', 1278 => 'ӿ', 1280 => 'ԁ', 1282 => 'ԃ', 1284 => 'ԅ', 1286 => 'ԇ', 1288 => 'ԉ', 1290 => 'ԋ', 1292 => 'ԍ', 1294 => 'ԏ', 1296 => 'ԑ', 1298 => 'ԓ', 1300 => 'ԕ', 1302 => 'ԗ', 1304 => 'ԙ', 1306 => 'ԛ', 1308 => 'ԝ', 1310 => 'ԟ', 1312 => 'ԡ', 1314 => 'ԣ', 1316 => 'ԥ', 1318 => 'ԧ', 1320 => 'ԩ', 1322 => 'ԫ', 1324 => 'ԭ', 1326 => 'ԯ', 1329 => 'ա', 1330 => 'բ', 1331 => 'գ', 1332 => 'դ', 1333 => 'ե', 1334 => 'զ', 1335 => 'է', 1336 => 'ը', 1337 => 'թ', 1338 => 'ժ', 1339 => 'ի', 1340 => 'լ', 1341 => 'խ', 1342 => 'ծ', 1343 => 'կ', 1344 => 'հ', 1345 => 'ձ', 1346 => 'ղ', 1347 => 'ճ', 1348 => 'մ', 1349 => 'յ', 1350 => 'ն', 1351 => 'շ', 1352 => 'ո', 1353 => 'չ', 1354 => 'պ', 1355 => 'ջ', 1356 => 'ռ', 1357 => 'ս', 1358 => 'վ', 1359 => 'տ', 1360 => 'ր', 1361 => 'ց', 1362 => 'ւ', 1363 => 'փ', 1364 => 'ք', 1365 => 'օ', 1366 => 'ֆ', 1415 => 'եւ', 1653 => 'اٴ', 1654 => 'وٴ', 1655 => 'ۇٴ', 1656 => 'يٴ', 2392 => 'क़', 2393 => 'ख़', 2394 => 'ग़', 2395 => 'ज़', 2396 => 'ड़', 2397 => 'ढ़', 2398 => 'फ़', 2399 => 'य़', 2524 => 'ড়', 2525 => 'ঢ়', 2527 => 'য়', 2611 => 'ਲ਼', 2614 => 'ਸ਼', 2649 => 'ਖ਼', 2650 => 'ਗ਼', 2651 => 'ਜ਼', 2654 => 'ਫ਼', 2908 => 'ଡ଼', 2909 => 'ଢ଼', 3635 => 'ํา', 3763 => 'ໍາ', 3804 => 'ຫນ', 3805 => 'ຫມ', 3852 => '་', 3907 => 'གྷ', 3917 => 'ཌྷ', 3922 => 'དྷ', 3927 => 'བྷ', 3932 => 'ཛྷ', 3945 => 'ཀྵ', 3955 => 'ཱི', 3957 => 'ཱུ', 3958 => 'ྲྀ', 3959 => 'ྲཱྀ', 3960 => 'ླྀ', 3961 => 'ླཱྀ', 3969 => 'ཱྀ', 3987 => 'ྒྷ', 3997 => 'ྜྷ', 4002 => 'ྡྷ', 4007 => 'ྦྷ', 4012 => 'ྫྷ', 4025 => 'ྐྵ', 4295 => 'ⴧ', 4301 => 'ⴭ', 4348 => 'ნ', 5112 => 'Ᏸ', 5113 => 'Ᏹ', 5114 => 'Ᏺ', 5115 => 'Ᏻ', 5116 => 'Ᏼ', 5117 => 'Ᏽ', 7296 => 'в', 7297 => 'д', 7298 => 'о', 7299 => 'с', 7300 => 'т', 7301 => 'т', 7302 => 'ъ', 7303 => 'ѣ', 7304 => 'ꙋ', 7312 => 'ა', 7313 => 'ბ', 7314 => 'გ', 7315 => 'დ', 7316 => 'ე', 7317 => 'ვ', 7318 => 'ზ', 7319 => 'თ', 7320 => 'ი', 7321 => 'კ', 7322 => 'ლ', 7323 => 'მ', 7324 => 'ნ', 7325 => 'ო', 7326 => 'პ', 7327 => 'ჟ', 7328 => 'რ', 7329 => 'ს', 7330 => 'ტ', 7331 => 'უ', 7332 => 'ფ', 7333 => 'ქ', 7334 => 'ღ', 7335 => 'ყ', 7336 => 'შ', 7337 => 'ჩ', 7338 => 'ც', 7339 => 'ძ', 7340 => 'წ', 7341 => 'ჭ', 7342 => 'ხ', 7343 => 'ჯ', 7344 => 'ჰ', 7345 => 'ჱ', 7346 => 'ჲ', 7347 => 'ჳ', 7348 => 'ჴ', 7349 => 'ჵ', 7350 => 'ჶ', 7351 => 'ჷ', 7352 => 'ჸ', 7353 => 'ჹ', 7354 => 'ჺ', 7357 => 'ჽ', 7358 => 'ჾ', 7359 => 'ჿ', 7468 => 'a', 7469 => 'æ', 7470 => 'b', 7472 => 'd', 7473 => 'e', 7474 => 'ǝ', 7475 => 'g', 7476 => 'h', 7477 => 'i', 7478 => 'j', 7479 => 'k', 7480 => 'l', 7481 => 'm', 7482 => 'n', 7484 => 'o', 7485 => 'ȣ', 7486 => 'p', 7487 => 'r', 7488 => 't', 7489 => 'u', 7490 => 'w', 7491 => 'a', 7492 => 'ɐ', 7493 => 'ɑ', 7494 => 'ᴂ', 7495 => 'b', 7496 => 'd', 7497 => 'e', 7498 => 'ə', 7499 => 'ɛ', 7500 => 'ɜ', 7501 => 'g', 7503 => 'k', 7504 => 'm', 7505 => 'ŋ', 7506 => 'o', 7507 => 'ɔ', 7508 => 'ᴖ', 7509 => 'ᴗ', 7510 => 'p', 7511 => 't', 7512 => 'u', 7513 => 'ᴝ', 7514 => 'ɯ', 7515 => 'v', 7516 => 'ᴥ', 7517 => 'β', 7518 => 'γ', 7519 => 'δ', 7520 => 'φ', 7521 => 'χ', 7522 => 'i', 7523 => 'r', 7524 => 'u', 7525 => 'v', 7526 => 'β', 7527 => 'γ', 7528 => 'ρ', 7529 => 'φ', 7530 => 'χ', 7544 => 'н', 7579 => 'ɒ', 7580 => 'c', 7581 => 'ɕ', 7582 => 'ð', 7583 => 'ɜ', 7584 => 'f', 7585 => 'ɟ', 7586 => 'ɡ', 7587 => 'ɥ', 7588 => 'ɨ', 7589 => 'ɩ', 7590 => 'ɪ', 7591 => 'ᵻ', 7592 => 'ʝ', 7593 => 'ɭ', 7594 => 'ᶅ', 7595 => 'ʟ', 7596 => 'ɱ', 7597 => 'ɰ', 7598 => 'ɲ', 7599 => 'ɳ', 7600 => 'ɴ', 7601 => 'ɵ', 7602 => 'ɸ', 7603 => 'ʂ', 7604 => 'ʃ', 7605 => 'ƫ', 7606 => 'ʉ', 7607 => 'ʊ', 7608 => 'ᴜ', 7609 => 'ʋ', 7610 => 'ʌ', 7611 => 'z', 7612 => 'ʐ', 7613 => 'ʑ', 7614 => 'ʒ', 7615 => 'θ', 7680 => 'ḁ', 7682 => 'ḃ', 7684 => 'ḅ', 7686 => 'ḇ', 7688 => 'ḉ', 7690 => 'ḋ', 7692 => 'ḍ', 7694 => 'ḏ', 7696 => 'ḑ', 7698 => 'ḓ', 7700 => 'ḕ', 7702 => 'ḗ', 7704 => 'ḙ', 7706 => 'ḛ', 7708 => 'ḝ', 7710 => 'ḟ', 7712 => 'ḡ', 7714 => 'ḣ', 7716 => 'ḥ', 7718 => 'ḧ', 7720 => 'ḩ', 7722 => 'ḫ', 7724 => 'ḭ', 7726 => 'ḯ', 7728 => 'ḱ', 7730 => 'ḳ', 7732 => 'ḵ', 7734 => 'ḷ', 7736 => 'ḹ', 7738 => 'ḻ', 7740 => 'ḽ', 7742 => 'ḿ', 7744 => 'ṁ', 7746 => 'ṃ', 7748 => 'ṅ', 7750 => 'ṇ', 7752 => 'ṉ', 7754 => 'ṋ', 7756 => 'ṍ', 7758 => 'ṏ', 7760 => 'ṑ', 7762 => 'ṓ', 7764 => 'ṕ', 7766 => 'ṗ', 7768 => 'ṙ', 7770 => 'ṛ', 7772 => 'ṝ', 7774 => 'ṟ', 7776 => 'ṡ', 7778 => 'ṣ', 7780 => 'ṥ', 7782 => 'ṧ', 7784 => 'ṩ', 7786 => 'ṫ', 7788 => 'ṭ', 7790 => 'ṯ', 7792 => 'ṱ', 7794 => 'ṳ', 7796 => 'ṵ', 7798 => 'ṷ', 7800 => 'ṹ', 7802 => 'ṻ', 7804 => 'ṽ', 7806 => 'ṿ', 7808 => 'ẁ', 7810 => 'ẃ', 7812 => 'ẅ', 7814 => 'ẇ', 7816 => 'ẉ', 7818 => 'ẋ', 7820 => 'ẍ', 7822 => 'ẏ', 7824 => 'ẑ', 7826 => 'ẓ', 7828 => 'ẕ', 7834 => 'aʾ', 7835 => 'ṡ', 7838 => 'ss', 7840 => 'ạ', 7842 => 'ả', 7844 => 'ấ', 7846 => 'ầ', 7848 => 'ẩ', 7850 => 'ẫ', 7852 => 'ậ', 7854 => 'ắ', 7856 => 'ằ', 7858 => 'ẳ', 7860 => 'ẵ', 7862 => 'ặ', 7864 => 'ẹ', 7866 => 'ẻ', 7868 => 'ẽ', 7870 => 'ế', 7872 => 'ề', 7874 => 'ể', 7876 => 'ễ', 7878 => 'ệ', 7880 => 'ỉ', 7882 => 'ị', 7884 => 'ọ', 7886 => 'ỏ', 7888 => 'ố', 7890 => 'ồ', 7892 => 'ổ', 7894 => 'ỗ', 7896 => 'ộ', 7898 => 'ớ', 7900 => 'ờ', 7902 => 'ở', 7904 => 'ỡ', 7906 => 'ợ', 7908 => 'ụ', 7910 => 'ủ', 7912 => 'ứ', 7914 => 'ừ', 7916 => 'ử', 7918 => 'ữ', 7920 => 'ự', 7922 => 'ỳ', 7924 => 'ỵ', 7926 => 'ỷ', 7928 => 'ỹ', 7930 => 'ỻ', 7932 => 'ỽ', 7934 => 'ỿ', 7944 => 'ἀ', 7945 => 'ἁ', 7946 => 'ἂ', 7947 => 'ἃ', 7948 => 'ἄ', 7949 => 'ἅ', 7950 => 'ἆ', 7951 => 'ἇ', 7960 => 'ἐ', 7961 => 'ἑ', 7962 => 'ἒ', 7963 => 'ἓ', 7964 => 'ἔ', 7965 => 'ἕ', 7976 => 'ἠ', 7977 => 'ἡ', 7978 => 'ἢ', 7979 => 'ἣ', 7980 => 'ἤ', 7981 => 'ἥ', 7982 => 'ἦ', 7983 => 'ἧ', 7992 => 'ἰ', 7993 => 'ἱ', 7994 => 'ἲ', 7995 => 'ἳ', 7996 => 'ἴ', 7997 => 'ἵ', 7998 => 'ἶ', 7999 => 'ἷ', 8008 => 'ὀ', 8009 => 'ὁ', 8010 => 'ὂ', 8011 => 'ὃ', 8012 => 'ὄ', 8013 => 'ὅ', 8025 => 'ὑ', 8027 => 'ὓ', 8029 => 'ὕ', 8031 => 'ὗ', 8040 => 'ὠ', 8041 => 'ὡ', 8042 => 'ὢ', 8043 => 'ὣ', 8044 => 'ὤ', 8045 => 'ὥ', 8046 => 'ὦ', 8047 => 'ὧ', 8049 => 'ά', 8051 => 'έ', 8053 => 'ή', 8055 => 'ί', 8057 => 'ό', 8059 => 'ύ', 8061 => 'ώ', 8064 => 'ἀι', 8065 => 'ἁι', 8066 => 'ἂι', 8067 => 'ἃι', 8068 => 'ἄι', 8069 => 'ἅι', 8070 => 'ἆι', 8071 => 'ἇι', 8072 => 'ἀι', 8073 => 'ἁι', 8074 => 'ἂι', 8075 => 'ἃι', 8076 => 'ἄι', 8077 => 'ἅι', 8078 => 'ἆι', 8079 => 'ἇι', 8080 => 'ἠι', 8081 => 'ἡι', 8082 => 'ἢι', 8083 => 'ἣι', 8084 => 'ἤι', 8085 => 'ἥι', 8086 => 'ἦι', 8087 => 'ἧι', 8088 => 'ἠι', 8089 => 'ἡι', 8090 => 'ἢι', 8091 => 'ἣι', 8092 => 'ἤι', 8093 => 'ἥι', 8094 => 'ἦι', 8095 => 'ἧι', 8096 => 'ὠι', 8097 => 'ὡι', 8098 => 'ὢι', 8099 => 'ὣι', 8100 => 'ὤι', 8101 => 'ὥι', 8102 => 'ὦι', 8103 => 'ὧι', 8104 => 'ὠι', 8105 => 'ὡι', 8106 => 'ὢι', 8107 => 'ὣι', 8108 => 'ὤι', 8109 => 'ὥι', 8110 => 'ὦι', 8111 => 'ὧι', 8114 => 'ὰι', 8115 => 'αι', 8116 => 'άι', 8119 => 'ᾶι', 8120 => 'ᾰ', 8121 => 'ᾱ', 8122 => 'ὰ', 8123 => 'ά', 8124 => 'αι', 8126 => 'ι', 8130 => 'ὴι', 8131 => 'ηι', 8132 => 'ήι', 8135 => 'ῆι', 8136 => 'ὲ', 8137 => 'έ', 8138 => 'ὴ', 8139 => 'ή', 8140 => 'ηι', 8147 => 'ΐ', 8152 => 'ῐ', 8153 => 'ῑ', 8154 => 'ὶ', 8155 => 'ί', 8163 => 'ΰ', 8168 => 'ῠ', 8169 => 'ῡ', 8170 => 'ὺ', 8171 => 'ύ', 8172 => 'ῥ', 8178 => 'ὼι', 8179 => 'ωι', 8180 => 'ώι', 8183 => 'ῶι', 8184 => 'ὸ', 8185 => 'ό', 8186 => 'ὼ', 8187 => 'ώ', 8188 => 'ωι', 8209 => '‐', 8243 => '′′', 8244 => '′′′', 8246 => '‵‵', 8247 => '‵‵‵', 8279 => '′′′′', 8304 => '0', 8305 => 'i', 8308 => '4', 8309 => '5', 8310 => '6', 8311 => '7', 8312 => '8', 8313 => '9', 8315 => '−', 8319 => 'n', 8320 => '0', 8321 => '1', 8322 => '2', 8323 => '3', 8324 => '4', 8325 => '5', 8326 => '6', 8327 => '7', 8328 => '8', 8329 => '9', 8331 => '−', 8336 => 'a', 8337 => 'e', 8338 => 'o', 8339 => 'x', 8340 => 'ə', 8341 => 'h', 8342 => 'k', 8343 => 'l', 8344 => 'm', 8345 => 'n', 8346 => 'p', 8347 => 's', 8348 => 't', 8360 => 'rs', 8450 => 'c', 8451 => '°c', 8455 => 'ɛ', 8457 => '°f', 8458 => 'g', 8459 => 'h', 8460 => 'h', 8461 => 'h', 8462 => 'h', 8463 => 'ħ', 8464 => 'i', 8465 => 'i', 8466 => 'l', 8467 => 'l', 8469 => 'n', 8470 => 'no', 8473 => 'p', 8474 => 'q', 8475 => 'r', 8476 => 'r', 8477 => 'r', 8480 => 'sm', 8481 => 'tel', 8482 => 'tm', 8484 => 'z', 8486 => 'ω', 8488 => 'z', 8490 => 'k', 8491 => 'å', 8492 => 'b', 8493 => 'c', 8495 => 'e', 8496 => 'e', 8497 => 'f', 8499 => 'm', 8500 => 'o', 8501 => 'א', 8502 => 'ב', 8503 => 'ג', 8504 => 'ד', 8505 => 'i', 8507 => 'fax', 8508 => 'π', 8509 => 'γ', 8510 => 'γ', 8511 => 'π', 8512 => '∑', 8517 => 'd', 8518 => 'd', 8519 => 'e', 8520 => 'i', 8521 => 'j', 8528 => '1⁄7', 8529 => '1⁄9', 8530 => '1⁄10', 8531 => '1⁄3', 8532 => '2⁄3', 8533 => '1⁄5', 8534 => '2⁄5', 8535 => '3⁄5', 8536 => '4⁄5', 8537 => '1⁄6', 8538 => '5⁄6', 8539 => '1⁄8', 8540 => '3⁄8', 8541 => '5⁄8', 8542 => '7⁄8', 8543 => '1⁄', 8544 => 'i', 8545 => 'ii', 8546 => 'iii', 8547 => 'iv', 8548 => 'v', 8549 => 'vi', 8550 => 'vii', 8551 => 'viii', 8552 => 'ix', 8553 => 'x', 8554 => 'xi', 8555 => 'xii', 8556 => 'l', 8557 => 'c', 8558 => 'd', 8559 => 'm', 8560 => 'i', 8561 => 'ii', 8562 => 'iii', 8563 => 'iv', 8564 => 'v', 8565 => 'vi', 8566 => 'vii', 8567 => 'viii', 8568 => 'ix', 8569 => 'x', 8570 => 'xi', 8571 => 'xii', 8572 => 'l', 8573 => 'c', 8574 => 'd', 8575 => 'm', 8585 => '0⁄3', 8748 => '∫∫', 8749 => '∫∫∫', 8751 => '∮∮', 8752 => '∮∮∮', 9001 => '〈', 9002 => '〉', 9312 => '1', 9313 => '2', 9314 => '3', 9315 => '4', 9316 => '5', 9317 => '6', 9318 => '7', 9319 => '8', 9320 => '9', 9321 => '10', 9322 => '11', 9323 => '12', 9324 => '13', 9325 => '14', 9326 => '15', 9327 => '16', 9328 => '17', 9329 => '18', 9330 => '19', 9331 => '20', 9398 => 'a', 9399 => 'b', 9400 => 'c', 9401 => 'd', 9402 => 'e', 9403 => 'f', 9404 => 'g', 9405 => 'h', 9406 => 'i', 9407 => 'j', 9408 => 'k', 9409 => 'l', 9410 => 'm', 9411 => 'n', 9412 => 'o', 9413 => 'p', 9414 => 'q', 9415 => 'r', 9416 => 's', 9417 => 't', 9418 => 'u', 9419 => 'v', 9420 => 'w', 9421 => 'x', 9422 => 'y', 9423 => 'z', 9424 => 'a', 9425 => 'b', 9426 => 'c', 9427 => 'd', 9428 => 'e', 9429 => 'f', 9430 => 'g', 9431 => 'h', 9432 => 'i', 9433 => 'j', 9434 => 'k', 9435 => 'l', 9436 => 'm', 9437 => 'n', 9438 => 'o', 9439 => 'p', 9440 => 'q', 9441 => 'r', 9442 => 's', 9443 => 't', 9444 => 'u', 9445 => 'v', 9446 => 'w', 9447 => 'x', 9448 => 'y', 9449 => 'z', 9450 => '0', 10764 => '∫∫∫∫', 10972 => '⫝̸', 11264 => 'ⰰ', 11265 => 'ⰱ', 11266 => 'ⰲ', 11267 => 'ⰳ', 11268 => 'ⰴ', 11269 => 'ⰵ', 11270 => 'ⰶ', 11271 => 'ⰷ', 11272 => 'ⰸ', 11273 => 'ⰹ', 11274 => 'ⰺ', 11275 => 'ⰻ', 11276 => 'ⰼ', 11277 => 'ⰽ', 11278 => 'ⰾ', 11279 => 'ⰿ', 11280 => 'ⱀ', 11281 => 'ⱁ', 11282 => 'ⱂ', 11283 => 'ⱃ', 11284 => 'ⱄ', 11285 => 'ⱅ', 11286 => 'ⱆ', 11287 => 'ⱇ', 11288 => 'ⱈ', 11289 => 'ⱉ', 11290 => 'ⱊ', 11291 => 'ⱋ', 11292 => 'ⱌ', 11293 => 'ⱍ', 11294 => 'ⱎ', 11295 => 'ⱏ', 11296 => 'ⱐ', 11297 => 'ⱑ', 11298 => 'ⱒ', 11299 => 'ⱓ', 11300 => 'ⱔ', 11301 => 'ⱕ', 11302 => 'ⱖ', 11303 => 'ⱗ', 11304 => 'ⱘ', 11305 => 'ⱙ', 11306 => 'ⱚ', 11307 => 'ⱛ', 11308 => 'ⱜ', 11309 => 'ⱝ', 11310 => 'ⱞ', 11360 => 'ⱡ', 11362 => 'ɫ', 11363 => 'ᵽ', 11364 => 'ɽ', 11367 => 'ⱨ', 11369 => 'ⱪ', 11371 => 'ⱬ', 11373 => 'ɑ', 11374 => 'ɱ', 11375 => 'ɐ', 11376 => 'ɒ', 11378 => 'ⱳ', 11381 => 'ⱶ', 11388 => 'j', 11389 => 'v', 11390 => 'ȿ', 11391 => 'ɀ', 11392 => 'ⲁ', 11394 => 'ⲃ', 11396 => 'ⲅ', 11398 => 'ⲇ', 11400 => 'ⲉ', 11402 => 'ⲋ', 11404 => 'ⲍ', 11406 => 'ⲏ', 11408 => 'ⲑ', 11410 => 'ⲓ', 11412 => 'ⲕ', 11414 => 'ⲗ', 11416 => 'ⲙ', 11418 => 'ⲛ', 11420 => 'ⲝ', 11422 => 'ⲟ', 11424 => 'ⲡ', 11426 => 'ⲣ', 11428 => 'ⲥ', 11430 => 'ⲧ', 11432 => 'ⲩ', 11434 => 'ⲫ', 11436 => 'ⲭ', 11438 => 'ⲯ', 11440 => 'ⲱ', 11442 => 'ⲳ', 11444 => 'ⲵ', 11446 => 'ⲷ', 11448 => 'ⲹ', 11450 => 'ⲻ', 11452 => 'ⲽ', 11454 => 'ⲿ', 11456 => 'ⳁ', 11458 => 'ⳃ', 11460 => 'ⳅ', 11462 => 'ⳇ', 11464 => 'ⳉ', 11466 => 'ⳋ', 11468 => 'ⳍ', 11470 => 'ⳏ', 11472 => 'ⳑ', 11474 => 'ⳓ', 11476 => 'ⳕ', 11478 => 'ⳗ', 11480 => 'ⳙ', 11482 => 'ⳛ', 11484 => 'ⳝ', 11486 => 'ⳟ', 11488 => 'ⳡ', 11490 => 'ⳣ', 11499 => 'ⳬ', 11501 => 'ⳮ', 11506 => 'ⳳ', 11631 => 'ⵡ', 11935 => '母', 12019 => '龟', 12032 => '一', 12033 => '丨', 12034 => '丶', 12035 => '丿', 12036 => '乙', 12037 => '亅', 12038 => '二', 12039 => '亠', 12040 => '人', 12041 => '儿', 12042 => '入', 12043 => '八', 12044 => '冂', 12045 => '冖', 12046 => '冫', 12047 => '几', 12048 => '凵', 12049 => '刀', 12050 => '力', 12051 => '勹', 12052 => '匕', 12053 => '匚', 12054 => '匸', 12055 => '十', 12056 => '卜', 12057 => '卩', 12058 => '厂', 12059 => '厶', 12060 => '又', 12061 => '口', 12062 => '囗', 12063 => '土', 12064 => '士', 12065 => '夂', 12066 => '夊', 12067 => '夕', 12068 => '大', 12069 => '女', 12070 => '子', 12071 => '宀', 12072 => '寸', 12073 => '小', 12074 => '尢', 12075 => '尸', 12076 => '屮', 12077 => '山', 12078 => '巛', 12079 => '工', 12080 => '己', 12081 => '巾', 12082 => '干', 12083 => '幺', 12084 => '广', 12085 => '廴', 12086 => '廾', 12087 => '弋', 12088 => '弓', 12089 => '彐', 12090 => '彡', 12091 => '彳', 12092 => '心', 12093 => '戈', 12094 => '戶', 12095 => '手', 12096 => '支', 12097 => '攴', 12098 => '文', 12099 => '斗', 12100 => '斤', 12101 => '方', 12102 => '无', 12103 => '日', 12104 => '曰', 12105 => '月', 12106 => '木', 12107 => '欠', 12108 => '止', 12109 => '歹', 12110 => '殳', 12111 => '毋', 12112 => '比', 12113 => '毛', 12114 => '氏', 12115 => '气', 12116 => '水', 12117 => '火', 12118 => '爪', 12119 => '父', 12120 => '爻', 12121 => '爿', 12122 => '片', 12123 => '牙', 12124 => '牛', 12125 => '犬', 12126 => '玄', 12127 => '玉', 12128 => '瓜', 12129 => '瓦', 12130 => '甘', 12131 => '生', 12132 => '用', 12133 => '田', 12134 => '疋', 12135 => '疒', 12136 => '癶', 12137 => '白', 12138 => '皮', 12139 => '皿', 12140 => '目', 12141 => '矛', 12142 => '矢', 12143 => '石', 12144 => '示', 12145 => '禸', 12146 => '禾', 12147 => '穴', 12148 => '立', 12149 => '竹', 12150 => '米', 12151 => '糸', 12152 => '缶', 12153 => '网', 12154 => '羊', 12155 => '羽', 12156 => '老', 12157 => '而', 12158 => '耒', 12159 => '耳', 12160 => '聿', 12161 => '肉', 12162 => '臣', 12163 => '自', 12164 => '至', 12165 => '臼', 12166 => '舌', 12167 => '舛', 12168 => '舟', 12169 => '艮', 12170 => '色', 12171 => '艸', 12172 => '虍', 12173 => '虫', 12174 => '血', 12175 => '行', 12176 => '衣', 12177 => '襾', 12178 => '見', 12179 => '角', 12180 => '言', 12181 => '谷', 12182 => '豆', 12183 => '豕', 12184 => '豸', 12185 => '貝', 12186 => '赤', 12187 => '走', 12188 => '足', 12189 => '身', 12190 => '車', 12191 => '辛', 12192 => '辰', 12193 => '辵', 12194 => '邑', 12195 => '酉', 12196 => '釆', 12197 => '里', 12198 => '金', 12199 => '長', 12200 => '門', 12201 => '阜', 12202 => '隶', 12203 => '隹', 12204 => '雨', 12205 => '靑', 12206 => '非', 12207 => '面', 12208 => '革', 12209 => '韋', 12210 => '韭', 12211 => '音', 12212 => '頁', 12213 => '風', 12214 => '飛', 12215 => '食', 12216 => '首', 12217 => '香', 12218 => '馬', 12219 => '骨', 12220 => '高', 12221 => '髟', 12222 => '鬥', 12223 => '鬯', 12224 => '鬲', 12225 => '鬼', 12226 => '魚', 12227 => '鳥', 12228 => '鹵', 12229 => '鹿', 12230 => '麥', 12231 => '麻', 12232 => '黃', 12233 => '黍', 12234 => '黑', 12235 => '黹', 12236 => '黽', 12237 => '鼎', 12238 => '鼓', 12239 => '鼠', 12240 => '鼻', 12241 => '齊', 12242 => '齒', 12243 => '龍', 12244 => '龜', 12245 => '龠', 12290 => '.', 12342 => '〒', 12344 => '十', 12345 => '卄', 12346 => '卅', 12447 => 'より', 12543 => 'コト', 12593 => 'ᄀ', 12594 => 'ᄁ', 12595 => 'ᆪ', 12596 => 'ᄂ', 12597 => 'ᆬ', 12598 => 'ᆭ', 12599 => 'ᄃ', 12600 => 'ᄄ', 12601 => 'ᄅ', 12602 => 'ᆰ', 12603 => 'ᆱ', 12604 => 'ᆲ', 12605 => 'ᆳ', 12606 => 'ᆴ', 12607 => 'ᆵ', 12608 => 'ᄚ', 12609 => 'ᄆ', 12610 => 'ᄇ', 12611 => 'ᄈ', 12612 => 'ᄡ', 12613 => 'ᄉ', 12614 => 'ᄊ', 12615 => 'ᄋ', 12616 => 'ᄌ', 12617 => 'ᄍ', 12618 => 'ᄎ', 12619 => 'ᄏ', 12620 => 'ᄐ', 12621 => 'ᄑ', 12622 => 'ᄒ', 12623 => 'ᅡ', 12624 => 'ᅢ', 12625 => 'ᅣ', 12626 => 'ᅤ', 12627 => 'ᅥ', 12628 => 'ᅦ', 12629 => 'ᅧ', 12630 => 'ᅨ', 12631 => 'ᅩ', 12632 => 'ᅪ', 12633 => 'ᅫ', 12634 => 'ᅬ', 12635 => 'ᅭ', 12636 => 'ᅮ', 12637 => 'ᅯ', 12638 => 'ᅰ', 12639 => 'ᅱ', 12640 => 'ᅲ', 12641 => 'ᅳ', 12642 => 'ᅴ', 12643 => 'ᅵ', 12645 => 'ᄔ', 12646 => 'ᄕ', 12647 => 'ᇇ', 12648 => 'ᇈ', 12649 => 'ᇌ', 12650 => 'ᇎ', 12651 => 'ᇓ', 12652 => 'ᇗ', 12653 => 'ᇙ', 12654 => 'ᄜ', 12655 => 'ᇝ', 12656 => 'ᇟ', 12657 => 'ᄝ', 12658 => 'ᄞ', 12659 => 'ᄠ', 12660 => 'ᄢ', 12661 => 'ᄣ', 12662 => 'ᄧ', 12663 => 'ᄩ', 12664 => 'ᄫ', 12665 => 'ᄬ', 12666 => 'ᄭ', 12667 => 'ᄮ', 12668 => 'ᄯ', 12669 => 'ᄲ', 12670 => 'ᄶ', 12671 => 'ᅀ', 12672 => 'ᅇ', 12673 => 'ᅌ', 12674 => 'ᇱ', 12675 => 'ᇲ', 12676 => 'ᅗ', 12677 => 'ᅘ', 12678 => 'ᅙ', 12679 => 'ᆄ', 12680 => 'ᆅ', 12681 => 'ᆈ', 12682 => 'ᆑ', 12683 => 'ᆒ', 12684 => 'ᆔ', 12685 => 'ᆞ', 12686 => 'ᆡ', 12690 => '一', 12691 => '二', 12692 => '三', 12693 => '四', 12694 => '上', 12695 => '中', 12696 => '下', 12697 => '甲', 12698 => '乙', 12699 => '丙', 12700 => '丁', 12701 => '天', 12702 => '地', 12703 => '人', 12868 => '問', 12869 => '幼', 12870 => '文', 12871 => '箏', 12880 => 'pte', 12881 => '21', 12882 => '22', 12883 => '23', 12884 => '24', 12885 => '25', 12886 => '26', 12887 => '27', 12888 => '28', 12889 => '29', 12890 => '30', 12891 => '31', 12892 => '32', 12893 => '33', 12894 => '34', 12895 => '35', 12896 => 'ᄀ', 12897 => 'ᄂ', 12898 => 'ᄃ', 12899 => 'ᄅ', 12900 => 'ᄆ', 12901 => 'ᄇ', 12902 => 'ᄉ', 12903 => 'ᄋ', 12904 => 'ᄌ', 12905 => 'ᄎ', 12906 => 'ᄏ', 12907 => 'ᄐ', 12908 => 'ᄑ', 12909 => 'ᄒ', 12910 => '가', 12911 => '나', 12912 => '다', 12913 => '라', 12914 => '마', 12915 => '바', 12916 => '사', 12917 => '아', 12918 => '자', 12919 => '차', 12920 => '카', 12921 => '타', 12922 => '파', 12923 => '하', 12924 => '참고', 12925 => '주의', 12926 => '우', 12928 => '一', 12929 => '二', 12930 => '三', 12931 => '四', 12932 => '五', 12933 => '六', 12934 => '七', 12935 => '八', 12936 => '九', 12937 => '十', 12938 => '月', 12939 => '火', 12940 => '水', 12941 => '木', 12942 => '金', 12943 => '土', 12944 => '日', 12945 => '株', 12946 => '有', 12947 => '社', 12948 => '名', 12949 => '特', 12950 => '財', 12951 => '祝', 12952 => '労', 12953 => '秘', 12954 => '男', 12955 => '女', 12956 => '適', 12957 => '優', 12958 => '印', 12959 => '注', 12960 => '項', 12961 => '休', 12962 => '写', 12963 => '正', 12964 => '上', 12965 => '中', 12966 => '下', 12967 => '左', 12968 => '右', 12969 => '医', 12970 => '宗', 12971 => '学', 12972 => '監', 12973 => '企', 12974 => '資', 12975 => '協', 12976 => '夜', 12977 => '36', 12978 => '37', 12979 => '38', 12980 => '39', 12981 => '40', 12982 => '41', 12983 => '42', 12984 => '43', 12985 => '44', 12986 => '45', 12987 => '46', 12988 => '47', 12989 => '48', 12990 => '49', 12991 => '50', 12992 => '1月', 12993 => '2月', 12994 => '3月', 12995 => '4月', 12996 => '5月', 12997 => '6月', 12998 => '7月', 12999 => '8月', 13000 => '9月', 13001 => '10月', 13002 => '11月', 13003 => '12月', 13004 => 'hg', 13005 => 'erg', 13006 => 'ev', 13007 => 'ltd', 13008 => 'ア', 13009 => 'イ', 13010 => 'ウ', 13011 => 'エ', 13012 => 'オ', 13013 => 'カ', 13014 => 'キ', 13015 => 'ク', 13016 => 'ケ', 13017 => 'コ', 13018 => 'サ', 13019 => 'シ', 13020 => 'ス', 13021 => 'セ', 13022 => 'ソ', 13023 => 'タ', 13024 => 'チ', 13025 => 'ツ', 13026 => 'テ', 13027 => 'ト', 13028 => 'ナ', 13029 => 'ニ', 13030 => 'ヌ', 13031 => 'ネ', 13032 => 'ノ', 13033 => 'ハ', 13034 => 'ヒ', 13035 => 'フ', 13036 => 'ヘ', 13037 => 'ホ', 13038 => 'マ', 13039 => 'ミ', 13040 => 'ム', 13041 => 'メ', 13042 => 'モ', 13043 => 'ヤ', 13044 => 'ユ', 13045 => 'ヨ', 13046 => 'ラ', 13047 => 'リ', 13048 => 'ル', 13049 => 'レ', 13050 => 'ロ', 13051 => 'ワ', 13052 => 'ヰ', 13053 => 'ヱ', 13054 => 'ヲ', 13055 => '令和', 13056 => 'アパート', 13057 => 'アルファ', 13058 => 'アンペア', 13059 => 'アール', 13060 => 'イニング', 13061 => 'インチ', 13062 => 'ウォン', 13063 => 'エスクード', 13064 => 'エーカー', 13065 => 'オンス', 13066 => 'オーム', 13067 => 'カイリ', 13068 => 'カラット', 13069 => 'カロリー', 13070 => 'ガロン', 13071 => 'ガンマ', 13072 => 'ギガ', 13073 => 'ギニー', 13074 => 'キュリー', 13075 => 'ギルダー', 13076 => 'キロ', 13077 => 'キログラム', 13078 => 'キロメートル', 13079 => 'キロワット', 13080 => 'グラム', 13081 => 'グラムトン', 13082 => 'クルゼイロ', 13083 => 'クローネ', 13084 => 'ケース', 13085 => 'コルナ', 13086 => 'コーポ', 13087 => 'サイクル', 13088 => 'サンチーム', 13089 => 'シリング', 13090 => 'センチ', 13091 => 'セント', 13092 => 'ダース', 13093 => 'デシ', 13094 => 'ドル', 13095 => 'トン', 13096 => 'ナノ', 13097 => 'ノット', 13098 => 'ハイツ', 13099 => 'パーセント', 13100 => 'パーツ', 13101 => 'バーレル', 13102 => 'ピアストル', 13103 => 'ピクル', 13104 => 'ピコ', 13105 => 'ビル', 13106 => 'ファラッド', 13107 => 'フィート', 13108 => 'ブッシェル', 13109 => 'フラン', 13110 => 'ヘクタール', 13111 => 'ペソ', 13112 => 'ペニヒ', 13113 => 'ヘルツ', 13114 => 'ペンス', 13115 => 'ページ', 13116 => 'ベータ', 13117 => 'ポイント', 13118 => 'ボルト', 13119 => 'ホン', 13120 => 'ポンド', 13121 => 'ホール', 13122 => 'ホーン', 13123 => 'マイクロ', 13124 => 'マイル', 13125 => 'マッハ', 13126 => 'マルク', 13127 => 'マンション', 13128 => 'ミクロン', 13129 => 'ミリ', 13130 => 'ミリバール', 13131 => 'メガ', 13132 => 'メガトン', 13133 => 'メートル', 13134 => 'ヤード', 13135 => 'ヤール', 13136 => 'ユアン', 13137 => 'リットル', 13138 => 'リラ', 13139 => 'ルピー', 13140 => 'ルーブル', 13141 => 'レム', 13142 => 'レントゲン', 13143 => 'ワット', 13144 => '0点', 13145 => '1点', 13146 => '2点', 13147 => '3点', 13148 => '4点', 13149 => '5点', 13150 => '6点', 13151 => '7点', 13152 => '8点', 13153 => '9点', 13154 => '10点', 13155 => '11点', 13156 => '12点', 13157 => '13点', 13158 => '14点', 13159 => '15点', 13160 => '16点', 13161 => '17点', 13162 => '18点', 13163 => '19点', 13164 => '20点', 13165 => '21点', 13166 => '22点', 13167 => '23点', 13168 => '24点', 13169 => 'hpa', 13170 => 'da', 13171 => 'au', 13172 => 'bar', 13173 => 'ov', 13174 => 'pc', 13175 => 'dm', 13176 => 'dm2', 13177 => 'dm3', 13178 => 'iu', 13179 => '平成', 13180 => '昭和', 13181 => '大正', 13182 => '明治', 13183 => '株式会社', 13184 => 'pa', 13185 => 'na', 13186 => 'μa', 13187 => 'ma', 13188 => 'ka', 13189 => 'kb', 13190 => 'mb', 13191 => 'gb', 13192 => 'cal', 13193 => 'kcal', 13194 => 'pf', 13195 => 'nf', 13196 => 'μf', 13197 => 'μg', 13198 => 'mg', 13199 => 'kg', 13200 => 'hz', 13201 => 'khz', 13202 => 'mhz', 13203 => 'ghz', 13204 => 'thz', 13205 => 'μl', 13206 => 'ml', 13207 => 'dl', 13208 => 'kl', 13209 => 'fm', 13210 => 'nm', 13211 => 'μm', 13212 => 'mm', 13213 => 'cm', 13214 => 'km', 13215 => 'mm2', 13216 => 'cm2', 13217 => 'm2', 13218 => 'km2', 13219 => 'mm3', 13220 => 'cm3', 13221 => 'm3', 13222 => 'km3', 13223 => 'm∕s', 13224 => 'm∕s2', 13225 => 'pa', 13226 => 'kpa', 13227 => 'mpa', 13228 => 'gpa', 13229 => 'rad', 13230 => 'rad∕s', 13231 => 'rad∕s2', 13232 => 'ps', 13233 => 'ns', 13234 => 'μs', 13235 => 'ms', 13236 => 'pv', 13237 => 'nv', 13238 => 'μv', 13239 => 'mv', 13240 => 'kv', 13241 => 'mv', 13242 => 'pw', 13243 => 'nw', 13244 => 'μw', 13245 => 'mw', 13246 => 'kw', 13247 => 'mw', 13248 => 'kω', 13249 => 'mω', 13251 => 'bq', 13252 => 'cc', 13253 => 'cd', 13254 => 'c∕kg', 13256 => 'db', 13257 => 'gy', 13258 => 'ha', 13259 => 'hp', 13260 => 'in', 13261 => 'kk', 13262 => 'km', 13263 => 'kt', 13264 => 'lm', 13265 => 'ln', 13266 => 'log', 13267 => 'lx', 13268 => 'mb', 13269 => 'mil', 13270 => 'mol', 13271 => 'ph', 13273 => 'ppm', 13274 => 'pr', 13275 => 'sr', 13276 => 'sv', 13277 => 'wb', 13278 => 'v∕m', 13279 => 'a∕m', 13280 => '1日', 13281 => '2日', 13282 => '3日', 13283 => '4日', 13284 => '5日', 13285 => '6日', 13286 => '7日', 13287 => '8日', 13288 => '9日', 13289 => '10日', 13290 => '11日', 13291 => '12日', 13292 => '13日', 13293 => '14日', 13294 => '15日', 13295 => '16日', 13296 => '17日', 13297 => '18日', 13298 => '19日', 13299 => '20日', 13300 => '21日', 13301 => '22日', 13302 => '23日', 13303 => '24日', 13304 => '25日', 13305 => '26日', 13306 => '27日', 13307 => '28日', 13308 => '29日', 13309 => '30日', 13310 => '31日', 13311 => 'gal', 42560 => 'ꙁ', 42562 => 'ꙃ', 42564 => 'ꙅ', 42566 => 'ꙇ', 42568 => 'ꙉ', 42570 => 'ꙋ', 42572 => 'ꙍ', 42574 => 'ꙏ', 42576 => 'ꙑ', 42578 => 'ꙓ', 42580 => 'ꙕ', 42582 => 'ꙗ', 42584 => 'ꙙ', 42586 => 'ꙛ', 42588 => 'ꙝ', 42590 => 'ꙟ', 42592 => 'ꙡ', 42594 => 'ꙣ', 42596 => 'ꙥ', 42598 => 'ꙧ', 42600 => 'ꙩ', 42602 => 'ꙫ', 42604 => 'ꙭ', 42624 => 'ꚁ', 42626 => 'ꚃ', 42628 => 'ꚅ', 42630 => 'ꚇ', 42632 => 'ꚉ', 42634 => 'ꚋ', 42636 => 'ꚍ', 42638 => 'ꚏ', 42640 => 'ꚑ', 42642 => 'ꚓ', 42644 => 'ꚕ', 42646 => 'ꚗ', 42648 => 'ꚙ', 42650 => 'ꚛ', 42652 => 'ъ', 42653 => 'ь', 42786 => 'ꜣ', 42788 => 'ꜥ', 42790 => 'ꜧ', 42792 => 'ꜩ', 42794 => 'ꜫ', 42796 => 'ꜭ', 42798 => 'ꜯ', 42802 => 'ꜳ', 42804 => 'ꜵ', 42806 => 'ꜷ', 42808 => 'ꜹ', 42810 => 'ꜻ', 42812 => 'ꜽ', 42814 => 'ꜿ', 42816 => 'ꝁ', 42818 => 'ꝃ', 42820 => 'ꝅ', 42822 => 'ꝇ', 42824 => 'ꝉ', 42826 => 'ꝋ', 42828 => 'ꝍ', 42830 => 'ꝏ', 42832 => 'ꝑ', 42834 => 'ꝓ', 42836 => 'ꝕ', 42838 => 'ꝗ', 42840 => 'ꝙ', 42842 => 'ꝛ', 42844 => 'ꝝ', 42846 => 'ꝟ', 42848 => 'ꝡ', 42850 => 'ꝣ', 42852 => 'ꝥ', 42854 => 'ꝧ', 42856 => 'ꝩ', 42858 => 'ꝫ', 42860 => 'ꝭ', 42862 => 'ꝯ', 42864 => 'ꝯ', 42873 => 'ꝺ', 42875 => 'ꝼ', 42877 => 'ᵹ', 42878 => 'ꝿ', 42880 => 'ꞁ', 42882 => 'ꞃ', 42884 => 'ꞅ', 42886 => 'ꞇ', 42891 => 'ꞌ', 42893 => 'ɥ', 42896 => 'ꞑ', 42898 => 'ꞓ', 42902 => 'ꞗ', 42904 => 'ꞙ', 42906 => 'ꞛ', 42908 => 'ꞝ', 42910 => 'ꞟ', 42912 => 'ꞡ', 42914 => 'ꞣ', 42916 => 'ꞥ', 42918 => 'ꞧ', 42920 => 'ꞩ', 42922 => 'ɦ', 42923 => 'ɜ', 42924 => 'ɡ', 42925 => 'ɬ', 42926 => 'ɪ', 42928 => 'ʞ', 42929 => 'ʇ', 42930 => 'ʝ', 42931 => 'ꭓ', 42932 => 'ꞵ', 42934 => 'ꞷ', 42936 => 'ꞹ', 42938 => 'ꞻ', 42940 => 'ꞽ', 42942 => 'ꞿ', 42946 => 'ꟃ', 42948 => 'ꞔ', 42949 => 'ʂ', 42950 => 'ᶎ', 42951 => 'ꟈ', 42953 => 'ꟊ', 42997 => 'ꟶ', 43000 => 'ħ', 43001 => 'œ', 43868 => 'ꜧ', 43869 => 'ꬷ', 43870 => 'ɫ', 43871 => 'ꭒ', 43881 => 'ʍ', 43888 => 'Ꭰ', 43889 => 'Ꭱ', 43890 => 'Ꭲ', 43891 => 'Ꭳ', 43892 => 'Ꭴ', 43893 => 'Ꭵ', 43894 => 'Ꭶ', 43895 => 'Ꭷ', 43896 => 'Ꭸ', 43897 => 'Ꭹ', 43898 => 'Ꭺ', 43899 => 'Ꭻ', 43900 => 'Ꭼ', 43901 => 'Ꭽ', 43902 => 'Ꭾ', 43903 => 'Ꭿ', 43904 => 'Ꮀ', 43905 => 'Ꮁ', 43906 => 'Ꮂ', 43907 => 'Ꮃ', 43908 => 'Ꮄ', 43909 => 'Ꮅ', 43910 => 'Ꮆ', 43911 => 'Ꮇ', 43912 => 'Ꮈ', 43913 => 'Ꮉ', 43914 => 'Ꮊ', 43915 => 'Ꮋ', 43916 => 'Ꮌ', 43917 => 'Ꮍ', 43918 => 'Ꮎ', 43919 => 'Ꮏ', 43920 => 'Ꮐ', 43921 => 'Ꮑ', 43922 => 'Ꮒ', 43923 => 'Ꮓ', 43924 => 'Ꮔ', 43925 => 'Ꮕ', 43926 => 'Ꮖ', 43927 => 'Ꮗ', 43928 => 'Ꮘ', 43929 => 'Ꮙ', 43930 => 'Ꮚ', 43931 => 'Ꮛ', 43932 => 'Ꮜ', 43933 => 'Ꮝ', 43934 => 'Ꮞ', 43935 => 'Ꮟ', 43936 => 'Ꮠ', 43937 => 'Ꮡ', 43938 => 'Ꮢ', 43939 => 'Ꮣ', 43940 => 'Ꮤ', 43941 => 'Ꮥ', 43942 => 'Ꮦ', 43943 => 'Ꮧ', 43944 => 'Ꮨ', 43945 => 'Ꮩ', 43946 => 'Ꮪ', 43947 => 'Ꮫ', 43948 => 'Ꮬ', 43949 => 'Ꮭ', 43950 => 'Ꮮ', 43951 => 'Ꮯ', 43952 => 'Ꮰ', 43953 => 'Ꮱ', 43954 => 'Ꮲ', 43955 => 'Ꮳ', 43956 => 'Ꮴ', 43957 => 'Ꮵ', 43958 => 'Ꮶ', 43959 => 'Ꮷ', 43960 => 'Ꮸ', 43961 => 'Ꮹ', 43962 => 'Ꮺ', 43963 => 'Ꮻ', 43964 => 'Ꮼ', 43965 => 'Ꮽ', 43966 => 'Ꮾ', 43967 => 'Ꮿ', 63744 => '豈', 63745 => '更', 63746 => '車', 63747 => '賈', 63748 => '滑', 63749 => '串', 63750 => '句', 63751 => '龜', 63752 => '龜', 63753 => '契', 63754 => '金', 63755 => '喇', 63756 => '奈', 63757 => '懶', 63758 => '癩', 63759 => '羅', 63760 => '蘿', 63761 => '螺', 63762 => '裸', 63763 => '邏', 63764 => '樂', 63765 => '洛', 63766 => '烙', 63767 => '珞', 63768 => '落', 63769 => '酪', 63770 => '駱', 63771 => '亂', 63772 => '卵', 63773 => '欄', 63774 => '爛', 63775 => '蘭', 63776 => '鸞', 63777 => '嵐', 63778 => '濫', 63779 => '藍', 63780 => '襤', 63781 => '拉', 63782 => '臘', 63783 => '蠟', 63784 => '廊', 63785 => '朗', 63786 => '浪', 63787 => '狼', 63788 => '郎', 63789 => '來', 63790 => '冷', 63791 => '勞', 63792 => '擄', 63793 => '櫓', 63794 => '爐', 63795 => '盧', 63796 => '老', 63797 => '蘆', 63798 => '虜', 63799 => '路', 63800 => '露', 63801 => '魯', 63802 => '鷺', 63803 => '碌', 63804 => '祿', 63805 => '綠', 63806 => '菉', 63807 => '錄', 63808 => '鹿', 63809 => '論', 63810 => '壟', 63811 => '弄', 63812 => '籠', 63813 => '聾', 63814 => '牢', 63815 => '磊', 63816 => '賂', 63817 => '雷', 63818 => '壘', 63819 => '屢', 63820 => '樓', 63821 => '淚', 63822 => '漏', 63823 => '累', 63824 => '縷', 63825 => '陋', 63826 => '勒', 63827 => '肋', 63828 => '凜', 63829 => '凌', 63830 => '稜', 63831 => '綾', 63832 => '菱', 63833 => '陵', 63834 => '讀', 63835 => '拏', 63836 => '樂', 63837 => '諾', 63838 => '丹', 63839 => '寧', 63840 => '怒', 63841 => '率', 63842 => '異', 63843 => '北', 63844 => '磻', 63845 => '便', 63846 => '復', 63847 => '不', 63848 => '泌', 63849 => '數', 63850 => '索', 63851 => '參', 63852 => '塞', 63853 => '省', 63854 => '葉', 63855 => '說', 63856 => '殺', 63857 => '辰', 63858 => '沈', 63859 => '拾', 63860 => '若', 63861 => '掠', 63862 => '略', 63863 => '亮', 63864 => '兩', 63865 => '凉', 63866 => '梁', 63867 => '糧', 63868 => '良', 63869 => '諒', 63870 => '量', 63871 => '勵', 63872 => '呂', 63873 => '女', 63874 => '廬', 63875 => '旅', 63876 => '濾', 63877 => '礪', 63878 => '閭', 63879 => '驪', 63880 => '麗', 63881 => '黎', 63882 => '力', 63883 => '曆', 63884 => '歷', 63885 => '轢', 63886 => '年', 63887 => '憐', 63888 => '戀', 63889 => '撚', 63890 => '漣', 63891 => '煉', 63892 => '璉', 63893 => '秊', 63894 => '練', 63895 => '聯', 63896 => '輦', 63897 => '蓮', 63898 => '連', 63899 => '鍊', 63900 => '列', 63901 => '劣', 63902 => '咽', 63903 => '烈', 63904 => '裂', 63905 => '說', 63906 => '廉', 63907 => '念', 63908 => '捻', 63909 => '殮', 63910 => '簾', 63911 => '獵', 63912 => '令', 63913 => '囹', 63914 => '寧', 63915 => '嶺', 63916 => '怜', 63917 => '玲', 63918 => '瑩', 63919 => '羚', 63920 => '聆', 63921 => '鈴', 63922 => '零', 63923 => '靈', 63924 => '領', 63925 => '例', 63926 => '禮', 63927 => '醴', 63928 => '隸', 63929 => '惡', 63930 => '了', 63931 => '僚', 63932 => '寮', 63933 => '尿', 63934 => '料', 63935 => '樂', 63936 => '燎', 63937 => '療', 63938 => '蓼', 63939 => '遼', 63940 => '龍', 63941 => '暈', 63942 => '阮', 63943 => '劉', 63944 => '杻', 63945 => '柳', 63946 => '流', 63947 => '溜', 63948 => '琉', 63949 => '留', 63950 => '硫', 63951 => '紐', 63952 => '類', 63953 => '六', 63954 => '戮', 63955 => '陸', 63956 => '倫', 63957 => '崙', 63958 => '淪', 63959 => '輪', 63960 => '律', 63961 => '慄', 63962 => '栗', 63963 => '率', 63964 => '隆', 63965 => '利', 63966 => '吏', 63967 => '履', 63968 => '易', 63969 => '李', 63970 => '梨', 63971 => '泥', 63972 => '理', 63973 => '痢', 63974 => '罹', 63975 => '裏', 63976 => '裡', 63977 => '里', 63978 => '離', 63979 => '匿', 63980 => '溺', 63981 => '吝', 63982 => '燐', 63983 => '璘', 63984 => '藺', 63985 => '隣', 63986 => '鱗', 63987 => '麟', 63988 => '林', 63989 => '淋', 63990 => '臨', 63991 => '立', 63992 => '笠', 63993 => '粒', 63994 => '狀', 63995 => '炙', 63996 => '識', 63997 => '什', 63998 => '茶', 63999 => '刺', 64000 => '切', 64001 => '度', 64002 => '拓', 64003 => '糖', 64004 => '宅', 64005 => '洞', 64006 => '暴', 64007 => '輻', 64008 => '行', 64009 => '降', 64010 => '見', 64011 => '廓', 64012 => '兀', 64013 => '嗀', 64016 => '塚', 64018 => '晴', 64021 => '凞', 64022 => '猪', 64023 => '益', 64024 => '礼', 64025 => '神', 64026 => '祥', 64027 => '福', 64028 => '靖', 64029 => '精', 64030 => '羽', 64032 => '蘒', 64034 => '諸', 64037 => '逸', 64038 => '都', 64042 => '飯', 64043 => '飼', 64044 => '館', 64045 => '鶴', 64046 => '郞', 64047 => '隷', 64048 => '侮', 64049 => '僧', 64050 => '免', 64051 => '勉', 64052 => '勤', 64053 => '卑', 64054 => '喝', 64055 => '嘆', 64056 => '器', 64057 => '塀', 64058 => '墨', 64059 => '層', 64060 => '屮', 64061 => '悔', 64062 => '慨', 64063 => '憎', 64064 => '懲', 64065 => '敏', 64066 => '既', 64067 => '暑', 64068 => '梅', 64069 => '海', 64070 => '渚', 64071 => '漢', 64072 => '煮', 64073 => '爫', 64074 => '琢', 64075 => '碑', 64076 => '社', 64077 => '祉', 64078 => '祈', 64079 => '祐', 64080 => '祖', 64081 => '祝', 64082 => '禍', 64083 => '禎', 64084 => '穀', 64085 => '突', 64086 => '節', 64087 => '練', 64088 => '縉', 64089 => '繁', 64090 => '署', 64091 => '者', 64092 => '臭', 64093 => '艹', 64094 => '艹', 64095 => '著', 64096 => '褐', 64097 => '視', 64098 => '謁', 64099 => '謹', 64100 => '賓', 64101 => '贈', 64102 => '辶', 64103 => '逸', 64104 => '難', 64105 => '響', 64106 => '頻', 64107 => '恵', 64108 => '𤋮', 64109 => '舘', 64112 => '並', 64113 => '况', 64114 => '全', 64115 => '侀', 64116 => '充', 64117 => '冀', 64118 => '勇', 64119 => '勺', 64120 => '喝', 64121 => '啕', 64122 => '喙', 64123 => '嗢', 64124 => '塚', 64125 => '墳', 64126 => '奄', 64127 => '奔', 64128 => '婢', 64129 => '嬨', 64130 => '廒', 64131 => '廙', 64132 => '彩', 64133 => '徭', 64134 => '惘', 64135 => '慎', 64136 => '愈', 64137 => '憎', 64138 => '慠', 64139 => '懲', 64140 => '戴', 64141 => '揄', 64142 => '搜', 64143 => '摒', 64144 => '敖', 64145 => '晴', 64146 => '朗', 64147 => '望', 64148 => '杖', 64149 => '歹', 64150 => '殺', 64151 => '流', 64152 => '滛', 64153 => '滋', 64154 => '漢', 64155 => '瀞', 64156 => '煮', 64157 => '瞧', 64158 => '爵', 64159 => '犯', 64160 => '猪', 64161 => '瑱', 64162 => '甆', 64163 => '画', 64164 => '瘝', 64165 => '瘟', 64166 => '益', 64167 => '盛', 64168 => '直', 64169 => '睊', 64170 => '着', 64171 => '磌', 64172 => '窱', 64173 => '節', 64174 => '类', 64175 => '絛', 64176 => '練', 64177 => '缾', 64178 => '者', 64179 => '荒', 64180 => '華', 64181 => '蝹', 64182 => '襁', 64183 => '覆', 64184 => '視', 64185 => '調', 64186 => '諸', 64187 => '請', 64188 => '謁', 64189 => '諾', 64190 => '諭', 64191 => '謹', 64192 => '變', 64193 => '贈', 64194 => '輸', 64195 => '遲', 64196 => '醙', 64197 => '鉶', 64198 => '陼', 64199 => '難', 64200 => '靖', 64201 => '韛', 64202 => '響', 64203 => '頋', 64204 => '頻', 64205 => '鬒', 64206 => '龜', 64207 => '𢡊', 64208 => '𢡄', 64209 => '𣏕', 64210 => '㮝', 64211 => '䀘', 64212 => '䀹', 64213 => '𥉉', 64214 => '𥳐', 64215 => '𧻓', 64216 => '齃', 64217 => '龎', 64256 => 'ff', 64257 => 'fi', 64258 => 'fl', 64259 => 'ffi', 64260 => 'ffl', 64261 => 'st', 64262 => 'st', 64275 => 'մն', 64276 => 'մե', 64277 => 'մի', 64278 => 'վն', 64279 => 'մխ', 64285 => 'יִ', 64287 => 'ײַ', 64288 => 'ע', 64289 => 'א', 64290 => 'ד', 64291 => 'ה', 64292 => 'כ', 64293 => 'ל', 64294 => 'ם', 64295 => 'ר', 64296 => 'ת', 64298 => 'שׁ', 64299 => 'שׂ', 64300 => 'שּׁ', 64301 => 'שּׂ', 64302 => 'אַ', 64303 => 'אָ', 64304 => 'אּ', 64305 => 'בּ', 64306 => 'גּ', 64307 => 'דּ', 64308 => 'הּ', 64309 => 'וּ', 64310 => 'זּ', 64312 => 'טּ', 64313 => 'יּ', 64314 => 'ךּ', 64315 => 'כּ', 64316 => 'לּ', 64318 => 'מּ', 64320 => 'נּ', 64321 => 'סּ', 64323 => 'ףּ', 64324 => 'פּ', 64326 => 'צּ', 64327 => 'קּ', 64328 => 'רּ', 64329 => 'שּ', 64330 => 'תּ', 64331 => 'וֹ', 64332 => 'בֿ', 64333 => 'כֿ', 64334 => 'פֿ', 64335 => 'אל', 64336 => 'ٱ', 64337 => 'ٱ', 64338 => 'ٻ', 64339 => 'ٻ', 64340 => 'ٻ', 64341 => 'ٻ', 64342 => 'پ', 64343 => 'پ', 64344 => 'پ', 64345 => 'پ', 64346 => 'ڀ', 64347 => 'ڀ', 64348 => 'ڀ', 64349 => 'ڀ', 64350 => 'ٺ', 64351 => 'ٺ', 64352 => 'ٺ', 64353 => 'ٺ', 64354 => 'ٿ', 64355 => 'ٿ', 64356 => 'ٿ', 64357 => 'ٿ', 64358 => 'ٹ', 64359 => 'ٹ', 64360 => 'ٹ', 64361 => 'ٹ', 64362 => 'ڤ', 64363 => 'ڤ', 64364 => 'ڤ', 64365 => 'ڤ', 64366 => 'ڦ', 64367 => 'ڦ', 64368 => 'ڦ', 64369 => 'ڦ', 64370 => 'ڄ', 64371 => 'ڄ', 64372 => 'ڄ', 64373 => 'ڄ', 64374 => 'ڃ', 64375 => 'ڃ', 64376 => 'ڃ', 64377 => 'ڃ', 64378 => 'چ', 64379 => 'چ', 64380 => 'چ', 64381 => 'چ', 64382 => 'ڇ', 64383 => 'ڇ', 64384 => 'ڇ', 64385 => 'ڇ', 64386 => 'ڍ', 64387 => 'ڍ', 64388 => 'ڌ', 64389 => 'ڌ', 64390 => 'ڎ', 64391 => 'ڎ', 64392 => 'ڈ', 64393 => 'ڈ', 64394 => 'ژ', 64395 => 'ژ', 64396 => 'ڑ', 64397 => 'ڑ', 64398 => 'ک', 64399 => 'ک', 64400 => 'ک', 64401 => 'ک', 64402 => 'گ', 64403 => 'گ', 64404 => 'گ', 64405 => 'گ', 64406 => 'ڳ', 64407 => 'ڳ', 64408 => 'ڳ', 64409 => 'ڳ', 64410 => 'ڱ', 64411 => 'ڱ', 64412 => 'ڱ', 64413 => 'ڱ', 64414 => 'ں', 64415 => 'ں', 64416 => 'ڻ', 64417 => 'ڻ', 64418 => 'ڻ', 64419 => 'ڻ', 64420 => 'ۀ', 64421 => 'ۀ', 64422 => 'ہ', 64423 => 'ہ', 64424 => 'ہ', 64425 => 'ہ', 64426 => 'ھ', 64427 => 'ھ', 64428 => 'ھ', 64429 => 'ھ', 64430 => 'ے', 64431 => 'ے', 64432 => 'ۓ', 64433 => 'ۓ', 64467 => 'ڭ', 64468 => 'ڭ', 64469 => 'ڭ', 64470 => 'ڭ', 64471 => 'ۇ', 64472 => 'ۇ', 64473 => 'ۆ', 64474 => 'ۆ', 64475 => 'ۈ', 64476 => 'ۈ', 64477 => 'ۇٴ', 64478 => 'ۋ', 64479 => 'ۋ', 64480 => 'ۅ', 64481 => 'ۅ', 64482 => 'ۉ', 64483 => 'ۉ', 64484 => 'ې', 64485 => 'ې', 64486 => 'ې', 64487 => 'ې', 64488 => 'ى', 64489 => 'ى', 64490 => 'ئا', 64491 => 'ئا', 64492 => 'ئە', 64493 => 'ئە', 64494 => 'ئو', 64495 => 'ئو', 64496 => 'ئۇ', 64497 => 'ئۇ', 64498 => 'ئۆ', 64499 => 'ئۆ', 64500 => 'ئۈ', 64501 => 'ئۈ', 64502 => 'ئې', 64503 => 'ئې', 64504 => 'ئې', 64505 => 'ئى', 64506 => 'ئى', 64507 => 'ئى', 64508 => 'ی', 64509 => 'ی', 64510 => 'ی', 64511 => 'ی', 64512 => 'ئج', 64513 => 'ئح', 64514 => 'ئم', 64515 => 'ئى', 64516 => 'ئي', 64517 => 'بج', 64518 => 'بح', 64519 => 'بخ', 64520 => 'بم', 64521 => 'بى', 64522 => 'بي', 64523 => 'تج', 64524 => 'تح', 64525 => 'تخ', 64526 => 'تم', 64527 => 'تى', 64528 => 'تي', 64529 => 'ثج', 64530 => 'ثم', 64531 => 'ثى', 64532 => 'ثي', 64533 => 'جح', 64534 => 'جم', 64535 => 'حج', 64536 => 'حم', 64537 => 'خج', 64538 => 'خح', 64539 => 'خم', 64540 => 'سج', 64541 => 'سح', 64542 => 'سخ', 64543 => 'سم', 64544 => 'صح', 64545 => 'صم', 64546 => 'ضج', 64547 => 'ضح', 64548 => 'ضخ', 64549 => 'ضم', 64550 => 'طح', 64551 => 'طم', 64552 => 'ظم', 64553 => 'عج', 64554 => 'عم', 64555 => 'غج', 64556 => 'غم', 64557 => 'فج', 64558 => 'فح', 64559 => 'فخ', 64560 => 'فم', 64561 => 'فى', 64562 => 'في', 64563 => 'قح', 64564 => 'قم', 64565 => 'قى', 64566 => 'قي', 64567 => 'كا', 64568 => 'كج', 64569 => 'كح', 64570 => 'كخ', 64571 => 'كل', 64572 => 'كم', 64573 => 'كى', 64574 => 'كي', 64575 => 'لج', 64576 => 'لح', 64577 => 'لخ', 64578 => 'لم', 64579 => 'لى', 64580 => 'لي', 64581 => 'مج', 64582 => 'مح', 64583 => 'مخ', 64584 => 'مم', 64585 => 'مى', 64586 => 'مي', 64587 => 'نج', 64588 => 'نح', 64589 => 'نخ', 64590 => 'نم', 64591 => 'نى', 64592 => 'ني', 64593 => 'هج', 64594 => 'هم', 64595 => 'هى', 64596 => 'هي', 64597 => 'يج', 64598 => 'يح', 64599 => 'يخ', 64600 => 'يم', 64601 => 'يى', 64602 => 'يي', 64603 => 'ذٰ', 64604 => 'رٰ', 64605 => 'ىٰ', 64612 => 'ئر', 64613 => 'ئز', 64614 => 'ئم', 64615 => 'ئن', 64616 => 'ئى', 64617 => 'ئي', 64618 => 'بر', 64619 => 'بز', 64620 => 'بم', 64621 => 'بن', 64622 => 'بى', 64623 => 'بي', 64624 => 'تر', 64625 => 'تز', 64626 => 'تم', 64627 => 'تن', 64628 => 'تى', 64629 => 'تي', 64630 => 'ثر', 64631 => 'ثز', 64632 => 'ثم', 64633 => 'ثن', 64634 => 'ثى', 64635 => 'ثي', 64636 => 'فى', 64637 => 'في', 64638 => 'قى', 64639 => 'قي', 64640 => 'كا', 64641 => 'كل', 64642 => 'كم', 64643 => 'كى', 64644 => 'كي', 64645 => 'لم', 64646 => 'لى', 64647 => 'لي', 64648 => 'ما', 64649 => 'مم', 64650 => 'نر', 64651 => 'نز', 64652 => 'نم', 64653 => 'نن', 64654 => 'نى', 64655 => 'ني', 64656 => 'ىٰ', 64657 => 'ير', 64658 => 'يز', 64659 => 'يم', 64660 => 'ين', 64661 => 'يى', 64662 => 'يي', 64663 => 'ئج', 64664 => 'ئح', 64665 => 'ئخ', 64666 => 'ئم', 64667 => 'ئه', 64668 => 'بج', 64669 => 'بح', 64670 => 'بخ', 64671 => 'بم', 64672 => 'به', 64673 => 'تج', 64674 => 'تح', 64675 => 'تخ', 64676 => 'تم', 64677 => 'ته', 64678 => 'ثم', 64679 => 'جح', 64680 => 'جم', 64681 => 'حج', 64682 => 'حم', 64683 => 'خج', 64684 => 'خم', 64685 => 'سج', 64686 => 'سح', 64687 => 'سخ', 64688 => 'سم', 64689 => 'صح', 64690 => 'صخ', 64691 => 'صم', 64692 => 'ضج', 64693 => 'ضح', 64694 => 'ضخ', 64695 => 'ضم', 64696 => 'طح', 64697 => 'ظم', 64698 => 'عج', 64699 => 'عم', 64700 => 'غج', 64701 => 'غم', 64702 => 'فج', 64703 => 'فح', 64704 => 'فخ', 64705 => 'فم', 64706 => 'قح', 64707 => 'قم', 64708 => 'كج', 64709 => 'كح', 64710 => 'كخ', 64711 => 'كل', 64712 => 'كم', 64713 => 'لج', 64714 => 'لح', 64715 => 'لخ', 64716 => 'لم', 64717 => 'له', 64718 => 'مج', 64719 => 'مح', 64720 => 'مخ', 64721 => 'مم', 64722 => 'نج', 64723 => 'نح', 64724 => 'نخ', 64725 => 'نم', 64726 => 'نه', 64727 => 'هج', 64728 => 'هم', 64729 => 'هٰ', 64730 => 'يج', 64731 => 'يح', 64732 => 'يخ', 64733 => 'يم', 64734 => 'يه', 64735 => 'ئم', 64736 => 'ئه', 64737 => 'بم', 64738 => 'به', 64739 => 'تم', 64740 => 'ته', 64741 => 'ثم', 64742 => 'ثه', 64743 => 'سم', 64744 => 'سه', 64745 => 'شم', 64746 => 'شه', 64747 => 'كل', 64748 => 'كم', 64749 => 'لم', 64750 => 'نم', 64751 => 'نه', 64752 => 'يم', 64753 => 'يه', 64754 => 'ـَّ', 64755 => 'ـُّ', 64756 => 'ـِّ', 64757 => 'طى', 64758 => 'طي', 64759 => 'عى', 64760 => 'عي', 64761 => 'غى', 64762 => 'غي', 64763 => 'سى', 64764 => 'سي', 64765 => 'شى', 64766 => 'شي', 64767 => 'حى', 64768 => 'حي', 64769 => 'جى', 64770 => 'جي', 64771 => 'خى', 64772 => 'خي', 64773 => 'صى', 64774 => 'صي', 64775 => 'ضى', 64776 => 'ضي', 64777 => 'شج', 64778 => 'شح', 64779 => 'شخ', 64780 => 'شم', 64781 => 'شر', 64782 => 'سر', 64783 => 'صر', 64784 => 'ضر', 64785 => 'طى', 64786 => 'طي', 64787 => 'عى', 64788 => 'عي', 64789 => 'غى', 64790 => 'غي', 64791 => 'سى', 64792 => 'سي', 64793 => 'شى', 64794 => 'شي', 64795 => 'حى', 64796 => 'حي', 64797 => 'جى', 64798 => 'جي', 64799 => 'خى', 64800 => 'خي', 64801 => 'صى', 64802 => 'صي', 64803 => 'ضى', 64804 => 'ضي', 64805 => 'شج', 64806 => 'شح', 64807 => 'شخ', 64808 => 'شم', 64809 => 'شر', 64810 => 'سر', 64811 => 'صر', 64812 => 'ضر', 64813 => 'شج', 64814 => 'شح', 64815 => 'شخ', 64816 => 'شم', 64817 => 'سه', 64818 => 'شه', 64819 => 'طم', 64820 => 'سج', 64821 => 'سح', 64822 => 'سخ', 64823 => 'شج', 64824 => 'شح', 64825 => 'شخ', 64826 => 'طم', 64827 => 'ظم', 64828 => 'اً', 64829 => 'اً', 64848 => 'تجم', 64849 => 'تحج', 64850 => 'تحج', 64851 => 'تحم', 64852 => 'تخم', 64853 => 'تمج', 64854 => 'تمح', 64855 => 'تمخ', 64856 => 'جمح', 64857 => 'جمح', 64858 => 'حمي', 64859 => 'حمى', 64860 => 'سحج', 64861 => 'سجح', 64862 => 'سجى', 64863 => 'سمح', 64864 => 'سمح', 64865 => 'سمج', 64866 => 'سمم', 64867 => 'سمم', 64868 => 'صحح', 64869 => 'صحح', 64870 => 'صمم', 64871 => 'شحم', 64872 => 'شحم', 64873 => 'شجي', 64874 => 'شمخ', 64875 => 'شمخ', 64876 => 'شمم', 64877 => 'شمم', 64878 => 'ضحى', 64879 => 'ضخم', 64880 => 'ضخم', 64881 => 'طمح', 64882 => 'طمح', 64883 => 'طمم', 64884 => 'طمي', 64885 => 'عجم', 64886 => 'عمم', 64887 => 'عمم', 64888 => 'عمى', 64889 => 'غمم', 64890 => 'غمي', 64891 => 'غمى', 64892 => 'فخم', 64893 => 'فخم', 64894 => 'قمح', 64895 => 'قمم', 64896 => 'لحم', 64897 => 'لحي', 64898 => 'لحى', 64899 => 'لجج', 64900 => 'لجج', 64901 => 'لخم', 64902 => 'لخم', 64903 => 'لمح', 64904 => 'لمح', 64905 => 'محج', 64906 => 'محم', 64907 => 'محي', 64908 => 'مجح', 64909 => 'مجم', 64910 => 'مخج', 64911 => 'مخم', 64914 => 'مجخ', 64915 => 'همج', 64916 => 'همم', 64917 => 'نحم', 64918 => 'نحى', 64919 => 'نجم', 64920 => 'نجم', 64921 => 'نجى', 64922 => 'نمي', 64923 => 'نمى', 64924 => 'يمم', 64925 => 'يمم', 64926 => 'بخي', 64927 => 'تجي', 64928 => 'تجى', 64929 => 'تخي', 64930 => 'تخى', 64931 => 'تمي', 64932 => 'تمى', 64933 => 'جمي', 64934 => 'جحى', 64935 => 'جمى', 64936 => 'سخى', 64937 => 'صحي', 64938 => 'شحي', 64939 => 'ضحي', 64940 => 'لجي', 64941 => 'لمي', 64942 => 'يحي', 64943 => 'يجي', 64944 => 'يمي', 64945 => 'ممي', 64946 => 'قمي', 64947 => 'نحي', 64948 => 'قمح', 64949 => 'لحم', 64950 => 'عمي', 64951 => 'كمي', 64952 => 'نجح', 64953 => 'مخي', 64954 => 'لجم', 64955 => 'كمم', 64956 => 'لجم', 64957 => 'نجح', 64958 => 'جحي', 64959 => 'حجي', 64960 => 'مجي', 64961 => 'فمي', 64962 => 'بحي', 64963 => 'كمم', 64964 => 'عجم', 64965 => 'صمم', 64966 => 'سخي', 64967 => 'نجي', 65008 => 'صلے', 65009 => 'قلے', 65010 => 'الله', 65011 => 'اكبر', 65012 => 'محمد', 65013 => 'صلعم', 65014 => 'رسول', 65015 => 'عليه', 65016 => 'وسلم', 65017 => 'صلى', 65020 => 'ریال', 65041 => '、', 65047 => '〖', 65048 => '〗', 65073 => '—', 65074 => '–', 65081 => '〔', 65082 => '〕', 65083 => '【', 65084 => '】', 65085 => '《', 65086 => '》', 65087 => '〈', 65088 => '〉', 65089 => '「', 65090 => '」', 65091 => '『', 65092 => '』', 65105 => '、', 65112 => '—', 65117 => '〔', 65118 => '〕', 65123 => '-', 65137 => 'ـً', 65143 => 'ـَ', 65145 => 'ـُ', 65147 => 'ـِ', 65149 => 'ـّ', 65151 => 'ـْ', 65152 => 'ء', 65153 => 'آ', 65154 => 'آ', 65155 => 'أ', 65156 => 'أ', 65157 => 'ؤ', 65158 => 'ؤ', 65159 => 'إ', 65160 => 'إ', 65161 => 'ئ', 65162 => 'ئ', 65163 => 'ئ', 65164 => 'ئ', 65165 => 'ا', 65166 => 'ا', 65167 => 'ب', 65168 => 'ب', 65169 => 'ب', 65170 => 'ب', 65171 => 'ة', 65172 => 'ة', 65173 => 'ت', 65174 => 'ت', 65175 => 'ت', 65176 => 'ت', 65177 => 'ث', 65178 => 'ث', 65179 => 'ث', 65180 => 'ث', 65181 => 'ج', 65182 => 'ج', 65183 => 'ج', 65184 => 'ج', 65185 => 'ح', 65186 => 'ح', 65187 => 'ح', 65188 => 'ح', 65189 => 'خ', 65190 => 'خ', 65191 => 'خ', 65192 => 'خ', 65193 => 'د', 65194 => 'د', 65195 => 'ذ', 65196 => 'ذ', 65197 => 'ر', 65198 => 'ر', 65199 => 'ز', 65200 => 'ز', 65201 => 'س', 65202 => 'س', 65203 => 'س', 65204 => 'س', 65205 => 'ش', 65206 => 'ش', 65207 => 'ش', 65208 => 'ش', 65209 => 'ص', 65210 => 'ص', 65211 => 'ص', 65212 => 'ص', 65213 => 'ض', 65214 => 'ض', 65215 => 'ض', 65216 => 'ض', 65217 => 'ط', 65218 => 'ط', 65219 => 'ط', 65220 => 'ط', 65221 => 'ظ', 65222 => 'ظ', 65223 => 'ظ', 65224 => 'ظ', 65225 => 'ع', 65226 => 'ع', 65227 => 'ع', 65228 => 'ع', 65229 => 'غ', 65230 => 'غ', 65231 => 'غ', 65232 => 'غ', 65233 => 'ف', 65234 => 'ف', 65235 => 'ف', 65236 => 'ف', 65237 => 'ق', 65238 => 'ق', 65239 => 'ق', 65240 => 'ق', 65241 => 'ك', 65242 => 'ك', 65243 => 'ك', 65244 => 'ك', 65245 => 'ل', 65246 => 'ل', 65247 => 'ل', 65248 => 'ل', 65249 => 'م', 65250 => 'م', 65251 => 'م', 65252 => 'م', 65253 => 'ن', 65254 => 'ن', 65255 => 'ن', 65256 => 'ن', 65257 => 'ه', 65258 => 'ه', 65259 => 'ه', 65260 => 'ه', 65261 => 'و', 65262 => 'و', 65263 => 'ى', 65264 => 'ى', 65265 => 'ي', 65266 => 'ي', 65267 => 'ي', 65268 => 'ي', 65269 => 'لآ', 65270 => 'لآ', 65271 => 'لأ', 65272 => 'لأ', 65273 => 'لإ', 65274 => 'لإ', 65275 => 'لا', 65276 => 'لا', 65293 => '-', 65294 => '.', 65296 => '0', 65297 => '1', 65298 => '2', 65299 => '3', 65300 => '4', 65301 => '5', 65302 => '6', 65303 => '7', 65304 => '8', 65305 => '9', 65313 => 'a', 65314 => 'b', 65315 => 'c', 65316 => 'd', 65317 => 'e', 65318 => 'f', 65319 => 'g', 65320 => 'h', 65321 => 'i', 65322 => 'j', 65323 => 'k', 65324 => 'l', 65325 => 'm', 65326 => 'n', 65327 => 'o', 65328 => 'p', 65329 => 'q', 65330 => 'r', 65331 => 's', 65332 => 't', 65333 => 'u', 65334 => 'v', 65335 => 'w', 65336 => 'x', 65337 => 'y', 65338 => 'z', 65345 => 'a', 65346 => 'b', 65347 => 'c', 65348 => 'd', 65349 => 'e', 65350 => 'f', 65351 => 'g', 65352 => 'h', 65353 => 'i', 65354 => 'j', 65355 => 'k', 65356 => 'l', 65357 => 'm', 65358 => 'n', 65359 => 'o', 65360 => 'p', 65361 => 'q', 65362 => 'r', 65363 => 's', 65364 => 't', 65365 => 'u', 65366 => 'v', 65367 => 'w', 65368 => 'x', 65369 => 'y', 65370 => 'z', 65375 => '⦅', 65376 => '⦆', 65377 => '.', 65378 => '「', 65379 => '」', 65380 => '、', 65381 => '・', 65382 => 'ヲ', 65383 => 'ァ', 65384 => 'ィ', 65385 => 'ゥ', 65386 => 'ェ', 65387 => 'ォ', 65388 => 'ャ', 65389 => 'ュ', 65390 => 'ョ', 65391 => 'ッ', 65392 => 'ー', 65393 => 'ア', 65394 => 'イ', 65395 => 'ウ', 65396 => 'エ', 65397 => 'オ', 65398 => 'カ', 65399 => 'キ', 65400 => 'ク', 65401 => 'ケ', 65402 => 'コ', 65403 => 'サ', 65404 => 'シ', 65405 => 'ス', 65406 => 'セ', 65407 => 'ソ', 65408 => 'タ', 65409 => 'チ', 65410 => 'ツ', 65411 => 'テ', 65412 => 'ト', 65413 => 'ナ', 65414 => 'ニ', 65415 => 'ヌ', 65416 => 'ネ', 65417 => 'ノ', 65418 => 'ハ', 65419 => 'ヒ', 65420 => 'フ', 65421 => 'ヘ', 65422 => 'ホ', 65423 => 'マ', 65424 => 'ミ', 65425 => 'ム', 65426 => 'メ', 65427 => 'モ', 65428 => 'ヤ', 65429 => 'ユ', 65430 => 'ヨ', 65431 => 'ラ', 65432 => 'リ', 65433 => 'ル', 65434 => 'レ', 65435 => 'ロ', 65436 => 'ワ', 65437 => 'ン', 65438 => '゙', 65439 => '゚', 65441 => 'ᄀ', 65442 => 'ᄁ', 65443 => 'ᆪ', 65444 => 'ᄂ', 65445 => 'ᆬ', 65446 => 'ᆭ', 65447 => 'ᄃ', 65448 => 'ᄄ', 65449 => 'ᄅ', 65450 => 'ᆰ', 65451 => 'ᆱ', 65452 => 'ᆲ', 65453 => 'ᆳ', 65454 => 'ᆴ', 65455 => 'ᆵ', 65456 => 'ᄚ', 65457 => 'ᄆ', 65458 => 'ᄇ', 65459 => 'ᄈ', 65460 => 'ᄡ', 65461 => 'ᄉ', 65462 => 'ᄊ', 65463 => 'ᄋ', 65464 => 'ᄌ', 65465 => 'ᄍ', 65466 => 'ᄎ', 65467 => 'ᄏ', 65468 => 'ᄐ', 65469 => 'ᄑ', 65470 => 'ᄒ', 65474 => 'ᅡ', 65475 => 'ᅢ', 65476 => 'ᅣ', 65477 => 'ᅤ', 65478 => 'ᅥ', 65479 => 'ᅦ', 65482 => 'ᅧ', 65483 => 'ᅨ', 65484 => 'ᅩ', 65485 => 'ᅪ', 65486 => 'ᅫ', 65487 => 'ᅬ', 65490 => 'ᅭ', 65491 => 'ᅮ', 65492 => 'ᅯ', 65493 => 'ᅰ', 65494 => 'ᅱ', 65495 => 'ᅲ', 65498 => 'ᅳ', 65499 => 'ᅴ', 65500 => 'ᅵ', 65504 => '¢', 65505 => '£', 65506 => '¬', 65508 => '¦', 65509 => '¥', 65510 => '₩', 65512 => '│', 65513 => '←', 65514 => '↑', 65515 => '→', 65516 => '↓', 65517 => '■', 65518 => '○', 66560 => '𐐨', 66561 => '𐐩', 66562 => '𐐪', 66563 => '𐐫', 66564 => '𐐬', 66565 => '𐐭', 66566 => '𐐮', 66567 => '𐐯', 66568 => '𐐰', 66569 => '𐐱', 66570 => '𐐲', 66571 => '𐐳', 66572 => '𐐴', 66573 => '𐐵', 66574 => '𐐶', 66575 => '𐐷', 66576 => '𐐸', 66577 => '𐐹', 66578 => '𐐺', 66579 => '𐐻', 66580 => '𐐼', 66581 => '𐐽', 66582 => '𐐾', 66583 => '𐐿', 66584 => '𐑀', 66585 => '𐑁', 66586 => '𐑂', 66587 => '𐑃', 66588 => '𐑄', 66589 => '𐑅', 66590 => '𐑆', 66591 => '𐑇', 66592 => '𐑈', 66593 => '𐑉', 66594 => '𐑊', 66595 => '𐑋', 66596 => '𐑌', 66597 => '𐑍', 66598 => '𐑎', 66599 => '𐑏', 66736 => '𐓘', 66737 => '𐓙', 66738 => '𐓚', 66739 => '𐓛', 66740 => '𐓜', 66741 => '𐓝', 66742 => '𐓞', 66743 => '𐓟', 66744 => '𐓠', 66745 => '𐓡', 66746 => '𐓢', 66747 => '𐓣', 66748 => '𐓤', 66749 => '𐓥', 66750 => '𐓦', 66751 => '𐓧', 66752 => '𐓨', 66753 => '𐓩', 66754 => '𐓪', 66755 => '𐓫', 66756 => '𐓬', 66757 => '𐓭', 66758 => '𐓮', 66759 => '𐓯', 66760 => '𐓰', 66761 => '𐓱', 66762 => '𐓲', 66763 => '𐓳', 66764 => '𐓴', 66765 => '𐓵', 66766 => '𐓶', 66767 => '𐓷', 66768 => '𐓸', 66769 => '𐓹', 66770 => '𐓺', 66771 => '𐓻', 68736 => '𐳀', 68737 => '𐳁', 68738 => '𐳂', 68739 => '𐳃', 68740 => '𐳄', 68741 => '𐳅', 68742 => '𐳆', 68743 => '𐳇', 68744 => '𐳈', 68745 => '𐳉', 68746 => '𐳊', 68747 => '𐳋', 68748 => '𐳌', 68749 => '𐳍', 68750 => '𐳎', 68751 => '𐳏', 68752 => '𐳐', 68753 => '𐳑', 68754 => '𐳒', 68755 => '𐳓', 68756 => '𐳔', 68757 => '𐳕', 68758 => '𐳖', 68759 => '𐳗', 68760 => '𐳘', 68761 => '𐳙', 68762 => '𐳚', 68763 => '𐳛', 68764 => '𐳜', 68765 => '𐳝', 68766 => '𐳞', 68767 => '𐳟', 68768 => '𐳠', 68769 => '𐳡', 68770 => '𐳢', 68771 => '𐳣', 68772 => '𐳤', 68773 => '𐳥', 68774 => '𐳦', 68775 => '𐳧', 68776 => '𐳨', 68777 => '𐳩', 68778 => '𐳪', 68779 => '𐳫', 68780 => '𐳬', 68781 => '𐳭', 68782 => '𐳮', 68783 => '𐳯', 68784 => '𐳰', 68785 => '𐳱', 68786 => '𐳲', 71840 => '𑣀', 71841 => '𑣁', 71842 => '𑣂', 71843 => '𑣃', 71844 => '𑣄', 71845 => '𑣅', 71846 => '𑣆', 71847 => '𑣇', 71848 => '𑣈', 71849 => '𑣉', 71850 => '𑣊', 71851 => '𑣋', 71852 => '𑣌', 71853 => '𑣍', 71854 => '𑣎', 71855 => '𑣏', 71856 => '𑣐', 71857 => '𑣑', 71858 => '𑣒', 71859 => '𑣓', 71860 => '𑣔', 71861 => '𑣕', 71862 => '𑣖', 71863 => '𑣗', 71864 => '𑣘', 71865 => '𑣙', 71866 => '𑣚', 71867 => '𑣛', 71868 => '𑣜', 71869 => '𑣝', 71870 => '𑣞', 71871 => '𑣟', 93760 => '𖹠', 93761 => '𖹡', 93762 => '𖹢', 93763 => '𖹣', 93764 => '𖹤', 93765 => '𖹥', 93766 => '𖹦', 93767 => '𖹧', 93768 => '𖹨', 93769 => '𖹩', 93770 => '𖹪', 93771 => '𖹫', 93772 => '𖹬', 93773 => '𖹭', 93774 => '𖹮', 93775 => '𖹯', 93776 => '𖹰', 93777 => '𖹱', 93778 => '𖹲', 93779 => '𖹳', 93780 => '𖹴', 93781 => '𖹵', 93782 => '𖹶', 93783 => '𖹷', 93784 => '𖹸', 93785 => '𖹹', 93786 => '𖹺', 93787 => '𖹻', 93788 => '𖹼', 93789 => '𖹽', 93790 => '𖹾', 93791 => '𖹿', 119134 => '𝅗𝅥', 119135 => '𝅘𝅥', 119136 => '𝅘𝅥𝅮', 119137 => '𝅘𝅥𝅯', 119138 => '𝅘𝅥𝅰', 119139 => '𝅘𝅥𝅱', 119140 => '𝅘𝅥𝅲', 119227 => '𝆹𝅥', 119228 => '𝆺𝅥', 119229 => '𝆹𝅥𝅮', 119230 => '𝆺𝅥𝅮', 119231 => '𝆹𝅥𝅯', 119232 => '𝆺𝅥𝅯', 119808 => 'a', 119809 => 'b', 119810 => 'c', 119811 => 'd', 119812 => 'e', 119813 => 'f', 119814 => 'g', 119815 => 'h', 119816 => 'i', 119817 => 'j', 119818 => 'k', 119819 => 'l', 119820 => 'm', 119821 => 'n', 119822 => 'o', 119823 => 'p', 119824 => 'q', 119825 => 'r', 119826 => 's', 119827 => 't', 119828 => 'u', 119829 => 'v', 119830 => 'w', 119831 => 'x', 119832 => 'y', 119833 => 'z', 119834 => 'a', 119835 => 'b', 119836 => 'c', 119837 => 'd', 119838 => 'e', 119839 => 'f', 119840 => 'g', 119841 => 'h', 119842 => 'i', 119843 => 'j', 119844 => 'k', 119845 => 'l', 119846 => 'm', 119847 => 'n', 119848 => 'o', 119849 => 'p', 119850 => 'q', 119851 => 'r', 119852 => 's', 119853 => 't', 119854 => 'u', 119855 => 'v', 119856 => 'w', 119857 => 'x', 119858 => 'y', 119859 => 'z', 119860 => 'a', 119861 => 'b', 119862 => 'c', 119863 => 'd', 119864 => 'e', 119865 => 'f', 119866 => 'g', 119867 => 'h', 119868 => 'i', 119869 => 'j', 119870 => 'k', 119871 => 'l', 119872 => 'm', 119873 => 'n', 119874 => 'o', 119875 => 'p', 119876 => 'q', 119877 => 'r', 119878 => 's', 119879 => 't', 119880 => 'u', 119881 => 'v', 119882 => 'w', 119883 => 'x', 119884 => 'y', 119885 => 'z', 119886 => 'a', 119887 => 'b', 119888 => 'c', 119889 => 'd', 119890 => 'e', 119891 => 'f', 119892 => 'g', 119894 => 'i', 119895 => 'j', 119896 => 'k', 119897 => 'l', 119898 => 'm', 119899 => 'n', 119900 => 'o', 119901 => 'p', 119902 => 'q', 119903 => 'r', 119904 => 's', 119905 => 't', 119906 => 'u', 119907 => 'v', 119908 => 'w', 119909 => 'x', 119910 => 'y', 119911 => 'z', 119912 => 'a', 119913 => 'b', 119914 => 'c', 119915 => 'd', 119916 => 'e', 119917 => 'f', 119918 => 'g', 119919 => 'h', 119920 => 'i', 119921 => 'j', 119922 => 'k', 119923 => 'l', 119924 => 'm', 119925 => 'n', 119926 => 'o', 119927 => 'p', 119928 => 'q', 119929 => 'r', 119930 => 's', 119931 => 't', 119932 => 'u', 119933 => 'v', 119934 => 'w', 119935 => 'x', 119936 => 'y', 119937 => 'z', 119938 => 'a', 119939 => 'b', 119940 => 'c', 119941 => 'd', 119942 => 'e', 119943 => 'f', 119944 => 'g', 119945 => 'h', 119946 => 'i', 119947 => 'j', 119948 => 'k', 119949 => 'l', 119950 => 'm', 119951 => 'n', 119952 => 'o', 119953 => 'p', 119954 => 'q', 119955 => 'r', 119956 => 's', 119957 => 't', 119958 => 'u', 119959 => 'v', 119960 => 'w', 119961 => 'x', 119962 => 'y', 119963 => 'z', 119964 => 'a', 119966 => 'c', 119967 => 'd', 119970 => 'g', 119973 => 'j', 119974 => 'k', 119977 => 'n', 119978 => 'o', 119979 => 'p', 119980 => 'q', 119982 => 's', 119983 => 't', 119984 => 'u', 119985 => 'v', 119986 => 'w', 119987 => 'x', 119988 => 'y', 119989 => 'z', 119990 => 'a', 119991 => 'b', 119992 => 'c', 119993 => 'd', 119995 => 'f', 119997 => 'h', 119998 => 'i', 119999 => 'j', 120000 => 'k', 120001 => 'l', 120002 => 'm', 120003 => 'n', 120005 => 'p', 120006 => 'q', 120007 => 'r', 120008 => 's', 120009 => 't', 120010 => 'u', 120011 => 'v', 120012 => 'w', 120013 => 'x', 120014 => 'y', 120015 => 'z', 120016 => 'a', 120017 => 'b', 120018 => 'c', 120019 => 'd', 120020 => 'e', 120021 => 'f', 120022 => 'g', 120023 => 'h', 120024 => 'i', 120025 => 'j', 120026 => 'k', 120027 => 'l', 120028 => 'm', 120029 => 'n', 120030 => 'o', 120031 => 'p', 120032 => 'q', 120033 => 'r', 120034 => 's', 120035 => 't', 120036 => 'u', 120037 => 'v', 120038 => 'w', 120039 => 'x', 120040 => 'y', 120041 => 'z', 120042 => 'a', 120043 => 'b', 120044 => 'c', 120045 => 'd', 120046 => 'e', 120047 => 'f', 120048 => 'g', 120049 => 'h', 120050 => 'i', 120051 => 'j', 120052 => 'k', 120053 => 'l', 120054 => 'm', 120055 => 'n', 120056 => 'o', 120057 => 'p', 120058 => 'q', 120059 => 'r', 120060 => 's', 120061 => 't', 120062 => 'u', 120063 => 'v', 120064 => 'w', 120065 => 'x', 120066 => 'y', 120067 => 'z', 120068 => 'a', 120069 => 'b', 120071 => 'd', 120072 => 'e', 120073 => 'f', 120074 => 'g', 120077 => 'j', 120078 => 'k', 120079 => 'l', 120080 => 'm', 120081 => 'n', 120082 => 'o', 120083 => 'p', 120084 => 'q', 120086 => 's', 120087 => 't', 120088 => 'u', 120089 => 'v', 120090 => 'w', 120091 => 'x', 120092 => 'y', 120094 => 'a', 120095 => 'b', 120096 => 'c', 120097 => 'd', 120098 => 'e', 120099 => 'f', 120100 => 'g', 120101 => 'h', 120102 => 'i', 120103 => 'j', 120104 => 'k', 120105 => 'l', 120106 => 'm', 120107 => 'n', 120108 => 'o', 120109 => 'p', 120110 => 'q', 120111 => 'r', 120112 => 's', 120113 => 't', 120114 => 'u', 120115 => 'v', 120116 => 'w', 120117 => 'x', 120118 => 'y', 120119 => 'z', 120120 => 'a', 120121 => 'b', 120123 => 'd', 120124 => 'e', 120125 => 'f', 120126 => 'g', 120128 => 'i', 120129 => 'j', 120130 => 'k', 120131 => 'l', 120132 => 'm', 120134 => 'o', 120138 => 's', 120139 => 't', 120140 => 'u', 120141 => 'v', 120142 => 'w', 120143 => 'x', 120144 => 'y', 120146 => 'a', 120147 => 'b', 120148 => 'c', 120149 => 'd', 120150 => 'e', 120151 => 'f', 120152 => 'g', 120153 => 'h', 120154 => 'i', 120155 => 'j', 120156 => 'k', 120157 => 'l', 120158 => 'm', 120159 => 'n', 120160 => 'o', 120161 => 'p', 120162 => 'q', 120163 => 'r', 120164 => 's', 120165 => 't', 120166 => 'u', 120167 => 'v', 120168 => 'w', 120169 => 'x', 120170 => 'y', 120171 => 'z', 120172 => 'a', 120173 => 'b', 120174 => 'c', 120175 => 'd', 120176 => 'e', 120177 => 'f', 120178 => 'g', 120179 => 'h', 120180 => 'i', 120181 => 'j', 120182 => 'k', 120183 => 'l', 120184 => 'm', 120185 => 'n', 120186 => 'o', 120187 => 'p', 120188 => 'q', 120189 => 'r', 120190 => 's', 120191 => 't', 120192 => 'u', 120193 => 'v', 120194 => 'w', 120195 => 'x', 120196 => 'y', 120197 => 'z', 120198 => 'a', 120199 => 'b', 120200 => 'c', 120201 => 'd', 120202 => 'e', 120203 => 'f', 120204 => 'g', 120205 => 'h', 120206 => 'i', 120207 => 'j', 120208 => 'k', 120209 => 'l', 120210 => 'm', 120211 => 'n', 120212 => 'o', 120213 => 'p', 120214 => 'q', 120215 => 'r', 120216 => 's', 120217 => 't', 120218 => 'u', 120219 => 'v', 120220 => 'w', 120221 => 'x', 120222 => 'y', 120223 => 'z', 120224 => 'a', 120225 => 'b', 120226 => 'c', 120227 => 'd', 120228 => 'e', 120229 => 'f', 120230 => 'g', 120231 => 'h', 120232 => 'i', 120233 => 'j', 120234 => 'k', 120235 => 'l', 120236 => 'm', 120237 => 'n', 120238 => 'o', 120239 => 'p', 120240 => 'q', 120241 => 'r', 120242 => 's', 120243 => 't', 120244 => 'u', 120245 => 'v', 120246 => 'w', 120247 => 'x', 120248 => 'y', 120249 => 'z', 120250 => 'a', 120251 => 'b', 120252 => 'c', 120253 => 'd', 120254 => 'e', 120255 => 'f', 120256 => 'g', 120257 => 'h', 120258 => 'i', 120259 => 'j', 120260 => 'k', 120261 => 'l', 120262 => 'm', 120263 => 'n', 120264 => 'o', 120265 => 'p', 120266 => 'q', 120267 => 'r', 120268 => 's', 120269 => 't', 120270 => 'u', 120271 => 'v', 120272 => 'w', 120273 => 'x', 120274 => 'y', 120275 => 'z', 120276 => 'a', 120277 => 'b', 120278 => 'c', 120279 => 'd', 120280 => 'e', 120281 => 'f', 120282 => 'g', 120283 => 'h', 120284 => 'i', 120285 => 'j', 120286 => 'k', 120287 => 'l', 120288 => 'm', 120289 => 'n', 120290 => 'o', 120291 => 'p', 120292 => 'q', 120293 => 'r', 120294 => 's', 120295 => 't', 120296 => 'u', 120297 => 'v', 120298 => 'w', 120299 => 'x', 120300 => 'y', 120301 => 'z', 120302 => 'a', 120303 => 'b', 120304 => 'c', 120305 => 'd', 120306 => 'e', 120307 => 'f', 120308 => 'g', 120309 => 'h', 120310 => 'i', 120311 => 'j', 120312 => 'k', 120313 => 'l', 120314 => 'm', 120315 => 'n', 120316 => 'o', 120317 => 'p', 120318 => 'q', 120319 => 'r', 120320 => 's', 120321 => 't', 120322 => 'u', 120323 => 'v', 120324 => 'w', 120325 => 'x', 120326 => 'y', 120327 => 'z', 120328 => 'a', 120329 => 'b', 120330 => 'c', 120331 => 'd', 120332 => 'e', 120333 => 'f', 120334 => 'g', 120335 => 'h', 120336 => 'i', 120337 => 'j', 120338 => 'k', 120339 => 'l', 120340 => 'm', 120341 => 'n', 120342 => 'o', 120343 => 'p', 120344 => 'q', 120345 => 'r', 120346 => 's', 120347 => 't', 120348 => 'u', 120349 => 'v', 120350 => 'w', 120351 => 'x', 120352 => 'y', 120353 => 'z', 120354 => 'a', 120355 => 'b', 120356 => 'c', 120357 => 'd', 120358 => 'e', 120359 => 'f', 120360 => 'g', 120361 => 'h', 120362 => 'i', 120363 => 'j', 120364 => 'k', 120365 => 'l', 120366 => 'm', 120367 => 'n', 120368 => 'o', 120369 => 'p', 120370 => 'q', 120371 => 'r', 120372 => 's', 120373 => 't', 120374 => 'u', 120375 => 'v', 120376 => 'w', 120377 => 'x', 120378 => 'y', 120379 => 'z', 120380 => 'a', 120381 => 'b', 120382 => 'c', 120383 => 'd', 120384 => 'e', 120385 => 'f', 120386 => 'g', 120387 => 'h', 120388 => 'i', 120389 => 'j', 120390 => 'k', 120391 => 'l', 120392 => 'm', 120393 => 'n', 120394 => 'o', 120395 => 'p', 120396 => 'q', 120397 => 'r', 120398 => 's', 120399 => 't', 120400 => 'u', 120401 => 'v', 120402 => 'w', 120403 => 'x', 120404 => 'y', 120405 => 'z', 120406 => 'a', 120407 => 'b', 120408 => 'c', 120409 => 'd', 120410 => 'e', 120411 => 'f', 120412 => 'g', 120413 => 'h', 120414 => 'i', 120415 => 'j', 120416 => 'k', 120417 => 'l', 120418 => 'm', 120419 => 'n', 120420 => 'o', 120421 => 'p', 120422 => 'q', 120423 => 'r', 120424 => 's', 120425 => 't', 120426 => 'u', 120427 => 'v', 120428 => 'w', 120429 => 'x', 120430 => 'y', 120431 => 'z', 120432 => 'a', 120433 => 'b', 120434 => 'c', 120435 => 'd', 120436 => 'e', 120437 => 'f', 120438 => 'g', 120439 => 'h', 120440 => 'i', 120441 => 'j', 120442 => 'k', 120443 => 'l', 120444 => 'm', 120445 => 'n', 120446 => 'o', 120447 => 'p', 120448 => 'q', 120449 => 'r', 120450 => 's', 120451 => 't', 120452 => 'u', 120453 => 'v', 120454 => 'w', 120455 => 'x', 120456 => 'y', 120457 => 'z', 120458 => 'a', 120459 => 'b', 120460 => 'c', 120461 => 'd', 120462 => 'e', 120463 => 'f', 120464 => 'g', 120465 => 'h', 120466 => 'i', 120467 => 'j', 120468 => 'k', 120469 => 'l', 120470 => 'm', 120471 => 'n', 120472 => 'o', 120473 => 'p', 120474 => 'q', 120475 => 'r', 120476 => 's', 120477 => 't', 120478 => 'u', 120479 => 'v', 120480 => 'w', 120481 => 'x', 120482 => 'y', 120483 => 'z', 120484 => 'ı', 120485 => 'ȷ', 120488 => 'α', 120489 => 'β', 120490 => 'γ', 120491 => 'δ', 120492 => 'ε', 120493 => 'ζ', 120494 => 'η', 120495 => 'θ', 120496 => 'ι', 120497 => 'κ', 120498 => 'λ', 120499 => 'μ', 120500 => 'ν', 120501 => 'ξ', 120502 => 'ο', 120503 => 'π', 120504 => 'ρ', 120505 => 'θ', 120506 => 'σ', 120507 => 'τ', 120508 => 'υ', 120509 => 'φ', 120510 => 'χ', 120511 => 'ψ', 120512 => 'ω', 120513 => '∇', 120514 => 'α', 120515 => 'β', 120516 => 'γ', 120517 => 'δ', 120518 => 'ε', 120519 => 'ζ', 120520 => 'η', 120521 => 'θ', 120522 => 'ι', 120523 => 'κ', 120524 => 'λ', 120525 => 'μ', 120526 => 'ν', 120527 => 'ξ', 120528 => 'ο', 120529 => 'π', 120530 => 'ρ', 120531 => 'σ', 120532 => 'σ', 120533 => 'τ', 120534 => 'υ', 120535 => 'φ', 120536 => 'χ', 120537 => 'ψ', 120538 => 'ω', 120539 => '∂', 120540 => 'ε', 120541 => 'θ', 120542 => 'κ', 120543 => 'φ', 120544 => 'ρ', 120545 => 'π', 120546 => 'α', 120547 => 'β', 120548 => 'γ', 120549 => 'δ', 120550 => 'ε', 120551 => 'ζ', 120552 => 'η', 120553 => 'θ', 120554 => 'ι', 120555 => 'κ', 120556 => 'λ', 120557 => 'μ', 120558 => 'ν', 120559 => 'ξ', 120560 => 'ο', 120561 => 'π', 120562 => 'ρ', 120563 => 'θ', 120564 => 'σ', 120565 => 'τ', 120566 => 'υ', 120567 => 'φ', 120568 => 'χ', 120569 => 'ψ', 120570 => 'ω', 120571 => '∇', 120572 => 'α', 120573 => 'β', 120574 => 'γ', 120575 => 'δ', 120576 => 'ε', 120577 => 'ζ', 120578 => 'η', 120579 => 'θ', 120580 => 'ι', 120581 => 'κ', 120582 => 'λ', 120583 => 'μ', 120584 => 'ν', 120585 => 'ξ', 120586 => 'ο', 120587 => 'π', 120588 => 'ρ', 120589 => 'σ', 120590 => 'σ', 120591 => 'τ', 120592 => 'υ', 120593 => 'φ', 120594 => 'χ', 120595 => 'ψ', 120596 => 'ω', 120597 => '∂', 120598 => 'ε', 120599 => 'θ', 120600 => 'κ', 120601 => 'φ', 120602 => 'ρ', 120603 => 'π', 120604 => 'α', 120605 => 'β', 120606 => 'γ', 120607 => 'δ', 120608 => 'ε', 120609 => 'ζ', 120610 => 'η', 120611 => 'θ', 120612 => 'ι', 120613 => 'κ', 120614 => 'λ', 120615 => 'μ', 120616 => 'ν', 120617 => 'ξ', 120618 => 'ο', 120619 => 'π', 120620 => 'ρ', 120621 => 'θ', 120622 => 'σ', 120623 => 'τ', 120624 => 'υ', 120625 => 'φ', 120626 => 'χ', 120627 => 'ψ', 120628 => 'ω', 120629 => '∇', 120630 => 'α', 120631 => 'β', 120632 => 'γ', 120633 => 'δ', 120634 => 'ε', 120635 => 'ζ', 120636 => 'η', 120637 => 'θ', 120638 => 'ι', 120639 => 'κ', 120640 => 'λ', 120641 => 'μ', 120642 => 'ν', 120643 => 'ξ', 120644 => 'ο', 120645 => 'π', 120646 => 'ρ', 120647 => 'σ', 120648 => 'σ', 120649 => 'τ', 120650 => 'υ', 120651 => 'φ', 120652 => 'χ', 120653 => 'ψ', 120654 => 'ω', 120655 => '∂', 120656 => 'ε', 120657 => 'θ', 120658 => 'κ', 120659 => 'φ', 120660 => 'ρ', 120661 => 'π', 120662 => 'α', 120663 => 'β', 120664 => 'γ', 120665 => 'δ', 120666 => 'ε', 120667 => 'ζ', 120668 => 'η', 120669 => 'θ', 120670 => 'ι', 120671 => 'κ', 120672 => 'λ', 120673 => 'μ', 120674 => 'ν', 120675 => 'ξ', 120676 => 'ο', 120677 => 'π', 120678 => 'ρ', 120679 => 'θ', 120680 => 'σ', 120681 => 'τ', 120682 => 'υ', 120683 => 'φ', 120684 => 'χ', 120685 => 'ψ', 120686 => 'ω', 120687 => '∇', 120688 => 'α', 120689 => 'β', 120690 => 'γ', 120691 => 'δ', 120692 => 'ε', 120693 => 'ζ', 120694 => 'η', 120695 => 'θ', 120696 => 'ι', 120697 => 'κ', 120698 => 'λ', 120699 => 'μ', 120700 => 'ν', 120701 => 'ξ', 120702 => 'ο', 120703 => 'π', 120704 => 'ρ', 120705 => 'σ', 120706 => 'σ', 120707 => 'τ', 120708 => 'υ', 120709 => 'φ', 120710 => 'χ', 120711 => 'ψ', 120712 => 'ω', 120713 => '∂', 120714 => 'ε', 120715 => 'θ', 120716 => 'κ', 120717 => 'φ', 120718 => 'ρ', 120719 => 'π', 120720 => 'α', 120721 => 'β', 120722 => 'γ', 120723 => 'δ', 120724 => 'ε', 120725 => 'ζ', 120726 => 'η', 120727 => 'θ', 120728 => 'ι', 120729 => 'κ', 120730 => 'λ', 120731 => 'μ', 120732 => 'ν', 120733 => 'ξ', 120734 => 'ο', 120735 => 'π', 120736 => 'ρ', 120737 => 'θ', 120738 => 'σ', 120739 => 'τ', 120740 => 'υ', 120741 => 'φ', 120742 => 'χ', 120743 => 'ψ', 120744 => 'ω', 120745 => '∇', 120746 => 'α', 120747 => 'β', 120748 => 'γ', 120749 => 'δ', 120750 => 'ε', 120751 => 'ζ', 120752 => 'η', 120753 => 'θ', 120754 => 'ι', 120755 => 'κ', 120756 => 'λ', 120757 => 'μ', 120758 => 'ν', 120759 => 'ξ', 120760 => 'ο', 120761 => 'π', 120762 => 'ρ', 120763 => 'σ', 120764 => 'σ', 120765 => 'τ', 120766 => 'υ', 120767 => 'φ', 120768 => 'χ', 120769 => 'ψ', 120770 => 'ω', 120771 => '∂', 120772 => 'ε', 120773 => 'θ', 120774 => 'κ', 120775 => 'φ', 120776 => 'ρ', 120777 => 'π', 120778 => 'ϝ', 120779 => 'ϝ', 120782 => '0', 120783 => '1', 120784 => '2', 120785 => '3', 120786 => '4', 120787 => '5', 120788 => '6', 120789 => '7', 120790 => '8', 120791 => '9', 120792 => '0', 120793 => '1', 120794 => '2', 120795 => '3', 120796 => '4', 120797 => '5', 120798 => '6', 120799 => '7', 120800 => '8', 120801 => '9', 120802 => '0', 120803 => '1', 120804 => '2', 120805 => '3', 120806 => '4', 120807 => '5', 120808 => '6', 120809 => '7', 120810 => '8', 120811 => '9', 120812 => '0', 120813 => '1', 120814 => '2', 120815 => '3', 120816 => '4', 120817 => '5', 120818 => '6', 120819 => '7', 120820 => '8', 120821 => '9', 120822 => '0', 120823 => '1', 120824 => '2', 120825 => '3', 120826 => '4', 120827 => '5', 120828 => '6', 120829 => '7', 120830 => '8', 120831 => '9', 125184 => '𞤢', 125185 => '𞤣', 125186 => '𞤤', 125187 => '𞤥', 125188 => '𞤦', 125189 => '𞤧', 125190 => '𞤨', 125191 => '𞤩', 125192 => '𞤪', 125193 => '𞤫', 125194 => '𞤬', 125195 => '𞤭', 125196 => '𞤮', 125197 => '𞤯', 125198 => '𞤰', 125199 => '𞤱', 125200 => '𞤲', 125201 => '𞤳', 125202 => '𞤴', 125203 => '𞤵', 125204 => '𞤶', 125205 => '𞤷', 125206 => '𞤸', 125207 => '𞤹', 125208 => '𞤺', 125209 => '𞤻', 125210 => '𞤼', 125211 => '𞤽', 125212 => '𞤾', 125213 => '𞤿', 125214 => '𞥀', 125215 => '𞥁', 125216 => '𞥂', 125217 => '𞥃', 126464 => 'ا', 126465 => 'ب', 126466 => 'ج', 126467 => 'د', 126469 => 'و', 126470 => 'ز', 126471 => 'ح', 126472 => 'ط', 126473 => 'ي', 126474 => 'ك', 126475 => 'ل', 126476 => 'م', 126477 => 'ن', 126478 => 'س', 126479 => 'ع', 126480 => 'ف', 126481 => 'ص', 126482 => 'ق', 126483 => 'ر', 126484 => 'ش', 126485 => 'ت', 126486 => 'ث', 126487 => 'خ', 126488 => 'ذ', 126489 => 'ض', 126490 => 'ظ', 126491 => 'غ', 126492 => 'ٮ', 126493 => 'ں', 126494 => 'ڡ', 126495 => 'ٯ', 126497 => 'ب', 126498 => 'ج', 126500 => 'ه', 126503 => 'ح', 126505 => 'ي', 126506 => 'ك', 126507 => 'ل', 126508 => 'م', 126509 => 'ن', 126510 => 'س', 126511 => 'ع', 126512 => 'ف', 126513 => 'ص', 126514 => 'ق', 126516 => 'ش', 126517 => 'ت', 126518 => 'ث', 126519 => 'خ', 126521 => 'ض', 126523 => 'غ', 126530 => 'ج', 126535 => 'ح', 126537 => 'ي', 126539 => 'ل', 126541 => 'ن', 126542 => 'س', 126543 => 'ع', 126545 => 'ص', 126546 => 'ق', 126548 => 'ش', 126551 => 'خ', 126553 => 'ض', 126555 => 'غ', 126557 => 'ں', 126559 => 'ٯ', 126561 => 'ب', 126562 => 'ج', 126564 => 'ه', 126567 => 'ح', 126568 => 'ط', 126569 => 'ي', 126570 => 'ك', 126572 => 'م', 126573 => 'ن', 126574 => 'س', 126575 => 'ع', 126576 => 'ف', 126577 => 'ص', 126578 => 'ق', 126580 => 'ش', 126581 => 'ت', 126582 => 'ث', 126583 => 'خ', 126585 => 'ض', 126586 => 'ظ', 126587 => 'غ', 126588 => 'ٮ', 126590 => 'ڡ', 126592 => 'ا', 126593 => 'ب', 126594 => 'ج', 126595 => 'د', 126596 => 'ه', 126597 => 'و', 126598 => 'ز', 126599 => 'ح', 126600 => 'ط', 126601 => 'ي', 126603 => 'ل', 126604 => 'م', 126605 => 'ن', 126606 => 'س', 126607 => 'ع', 126608 => 'ف', 126609 => 'ص', 126610 => 'ق', 126611 => 'ر', 126612 => 'ش', 126613 => 'ت', 126614 => 'ث', 126615 => 'خ', 126616 => 'ذ', 126617 => 'ض', 126618 => 'ظ', 126619 => 'غ', 126625 => 'ب', 126626 => 'ج', 126627 => 'د', 126629 => 'و', 126630 => 'ز', 126631 => 'ح', 126632 => 'ط', 126633 => 'ي', 126635 => 'ل', 126636 => 'م', 126637 => 'ن', 126638 => 'س', 126639 => 'ع', 126640 => 'ف', 126641 => 'ص', 126642 => 'ق', 126643 => 'ر', 126644 => 'ش', 126645 => 'ت', 126646 => 'ث', 126647 => 'خ', 126648 => 'ذ', 126649 => 'ض', 126650 => 'ظ', 126651 => 'غ', 127274 => '〔s〕', 127275 => 'c', 127276 => 'r', 127277 => 'cd', 127278 => 'wz', 127280 => 'a', 127281 => 'b', 127282 => 'c', 127283 => 'd', 127284 => 'e', 127285 => 'f', 127286 => 'g', 127287 => 'h', 127288 => 'i', 127289 => 'j', 127290 => 'k', 127291 => 'l', 127292 => 'm', 127293 => 'n', 127294 => 'o', 127295 => 'p', 127296 => 'q', 127297 => 'r', 127298 => 's', 127299 => 't', 127300 => 'u', 127301 => 'v', 127302 => 'w', 127303 => 'x', 127304 => 'y', 127305 => 'z', 127306 => 'hv', 127307 => 'mv', 127308 => 'sd', 127309 => 'ss', 127310 => 'ppv', 127311 => 'wc', 127338 => 'mc', 127339 => 'md', 127340 => 'mr', 127376 => 'dj', 127488 => 'ほか', 127489 => 'ココ', 127490 => 'サ', 127504 => '手', 127505 => '字', 127506 => '双', 127507 => 'デ', 127508 => '二', 127509 => '多', 127510 => '解', 127511 => '天', 127512 => '交', 127513 => '映', 127514 => '無', 127515 => '料', 127516 => '前', 127517 => '後', 127518 => '再', 127519 => '新', 127520 => '初', 127521 => '終', 127522 => '生', 127523 => '販', 127524 => '声', 127525 => '吹', 127526 => '演', 127527 => '投', 127528 => '捕', 127529 => '一', 127530 => '三', 127531 => '遊', 127532 => '左', 127533 => '中', 127534 => '右', 127535 => '指', 127536 => '走', 127537 => '打', 127538 => '禁', 127539 => '空', 127540 => '合', 127541 => '満', 127542 => '有', 127543 => '月', 127544 => '申', 127545 => '割', 127546 => '営', 127547 => '配', 127552 => '〔本〕', 127553 => '〔三〕', 127554 => '〔二〕', 127555 => '〔安〕', 127556 => '〔点〕', 127557 => '〔打〕', 127558 => '〔盗〕', 127559 => '〔勝〕', 127560 => '〔敗〕', 127568 => '得', 127569 => '可', 130032 => '0', 130033 => '1', 130034 => '2', 130035 => '3', 130036 => '4', 130037 => '5', 130038 => '6', 130039 => '7', 130040 => '8', 130041 => '9', 194560 => '丽', 194561 => '丸', 194562 => '乁', 194563 => '𠄢', 194564 => '你', 194565 => '侮', 194566 => '侻', 194567 => '倂', 194568 => '偺', 194569 => '備', 194570 => '僧', 194571 => '像', 194572 => '㒞', 194573 => '𠘺', 194574 => '免', 194575 => '兔', 194576 => '兤', 194577 => '具', 194578 => '𠔜', 194579 => '㒹', 194580 => '內', 194581 => '再', 194582 => '𠕋', 194583 => '冗', 194584 => '冤', 194585 => '仌', 194586 => '冬', 194587 => '况', 194588 => '𩇟', 194589 => '凵', 194590 => '刃', 194591 => '㓟', 194592 => '刻', 194593 => '剆', 194594 => '割', 194595 => '剷', 194596 => '㔕', 194597 => '勇', 194598 => '勉', 194599 => '勤', 194600 => '勺', 194601 => '包', 194602 => '匆', 194603 => '北', 194604 => '卉', 194605 => '卑', 194606 => '博', 194607 => '即', 194608 => '卽', 194609 => '卿', 194610 => '卿', 194611 => '卿', 194612 => '𠨬', 194613 => '灰', 194614 => '及', 194615 => '叟', 194616 => '𠭣', 194617 => '叫', 194618 => '叱', 194619 => '吆', 194620 => '咞', 194621 => '吸', 194622 => '呈', 194623 => '周', 194624 => '咢', 194625 => '哶', 194626 => '唐', 194627 => '啓', 194628 => '啣', 194629 => '善', 194630 => '善', 194631 => '喙', 194632 => '喫', 194633 => '喳', 194634 => '嗂', 194635 => '圖', 194636 => '嘆', 194637 => '圗', 194638 => '噑', 194639 => '噴', 194640 => '切', 194641 => '壮', 194642 => '城', 194643 => '埴', 194644 => '堍', 194645 => '型', 194646 => '堲', 194647 => '報', 194648 => '墬', 194649 => '𡓤', 194650 => '売', 194651 => '壷', 194652 => '夆', 194653 => '多', 194654 => '夢', 194655 => '奢', 194656 => '𡚨', 194657 => '𡛪', 194658 => '姬', 194659 => '娛', 194660 => '娧', 194661 => '姘', 194662 => '婦', 194663 => '㛮', 194665 => '嬈', 194666 => '嬾', 194667 => '嬾', 194668 => '𡧈', 194669 => '寃', 194670 => '寘', 194671 => '寧', 194672 => '寳', 194673 => '𡬘', 194674 => '寿', 194675 => '将', 194677 => '尢', 194678 => '㞁', 194679 => '屠', 194680 => '屮', 194681 => '峀', 194682 => '岍', 194683 => '𡷤', 194684 => '嵃', 194685 => '𡷦', 194686 => '嵮', 194687 => '嵫', 194688 => '嵼', 194689 => '巡', 194690 => '巢', 194691 => '㠯', 194692 => '巽', 194693 => '帨', 194694 => '帽', 194695 => '幩', 194696 => '㡢', 194697 => '𢆃', 194698 => '㡼', 194699 => '庰', 194700 => '庳', 194701 => '庶', 194702 => '廊', 194703 => '𪎒', 194704 => '廾', 194705 => '𢌱', 194706 => '𢌱', 194707 => '舁', 194708 => '弢', 194709 => '弢', 194710 => '㣇', 194711 => '𣊸', 194712 => '𦇚', 194713 => '形', 194714 => '彫', 194715 => '㣣', 194716 => '徚', 194717 => '忍', 194718 => '志', 194719 => '忹', 194720 => '悁', 194721 => '㤺', 194722 => '㤜', 194723 => '悔', 194724 => '𢛔', 194725 => '惇', 194726 => '慈', 194727 => '慌', 194728 => '慎', 194729 => '慌', 194730 => '慺', 194731 => '憎', 194732 => '憲', 194733 => '憤', 194734 => '憯', 194735 => '懞', 194736 => '懲', 194737 => '懶', 194738 => '成', 194739 => '戛', 194740 => '扝', 194741 => '抱', 194742 => '拔', 194743 => '捐', 194744 => '𢬌', 194745 => '挽', 194746 => '拼', 194747 => '捨', 194748 => '掃', 194749 => '揤', 194750 => '𢯱', 194751 => '搢', 194752 => '揅', 194753 => '掩', 194754 => '㨮', 194755 => '摩', 194756 => '摾', 194757 => '撝', 194758 => '摷', 194759 => '㩬', 194760 => '敏', 194761 => '敬', 194762 => '𣀊', 194763 => '旣', 194764 => '書', 194765 => '晉', 194766 => '㬙', 194767 => '暑', 194768 => '㬈', 194769 => '㫤', 194770 => '冒', 194771 => '冕', 194772 => '最', 194773 => '暜', 194774 => '肭', 194775 => '䏙', 194776 => '朗', 194777 => '望', 194778 => '朡', 194779 => '杞', 194780 => '杓', 194781 => '𣏃', 194782 => '㭉', 194783 => '柺', 194784 => '枅', 194785 => '桒', 194786 => '梅', 194787 => '𣑭', 194788 => '梎', 194789 => '栟', 194790 => '椔', 194791 => '㮝', 194792 => '楂', 194793 => '榣', 194794 => '槪', 194795 => '檨', 194796 => '𣚣', 194797 => '櫛', 194798 => '㰘', 194799 => '次', 194800 => '𣢧', 194801 => '歔', 194802 => '㱎', 194803 => '歲', 194804 => '殟', 194805 => '殺', 194806 => '殻', 194807 => '𣪍', 194808 => '𡴋', 194809 => '𣫺', 194810 => '汎', 194811 => '𣲼', 194812 => '沿', 194813 => '泍', 194814 => '汧', 194815 => '洖', 194816 => '派', 194817 => '海', 194818 => '流', 194819 => '浩', 194820 => '浸', 194821 => '涅', 194822 => '𣴞', 194823 => '洴', 194824 => '港', 194825 => '湮', 194826 => '㴳', 194827 => '滋', 194828 => '滇', 194829 => '𣻑', 194830 => '淹', 194831 => '潮', 194832 => '𣽞', 194833 => '𣾎', 194834 => '濆', 194835 => '瀹', 194836 => '瀞', 194837 => '瀛', 194838 => '㶖', 194839 => '灊', 194840 => '災', 194841 => '灷', 194842 => '炭', 194843 => '𠔥', 194844 => '煅', 194845 => '𤉣', 194846 => '熜', 194848 => '爨', 194849 => '爵', 194850 => '牐', 194851 => '𤘈', 194852 => '犀', 194853 => '犕', 194854 => '𤜵', 194855 => '𤠔', 194856 => '獺', 194857 => '王', 194858 => '㺬', 194859 => '玥', 194860 => '㺸', 194861 => '㺸', 194862 => '瑇', 194863 => '瑜', 194864 => '瑱', 194865 => '璅', 194866 => '瓊', 194867 => '㼛', 194868 => '甤', 194869 => '𤰶', 194870 => '甾', 194871 => '𤲒', 194872 => '異', 194873 => '𢆟', 194874 => '瘐', 194875 => '𤾡', 194876 => '𤾸', 194877 => '𥁄', 194878 => '㿼', 194879 => '䀈', 194880 => '直', 194881 => '𥃳', 194882 => '𥃲', 194883 => '𥄙', 194884 => '𥄳', 194885 => '眞', 194886 => '真', 194887 => '真', 194888 => '睊', 194889 => '䀹', 194890 => '瞋', 194891 => '䁆', 194892 => '䂖', 194893 => '𥐝', 194894 => '硎', 194895 => '碌', 194896 => '磌', 194897 => '䃣', 194898 => '𥘦', 194899 => '祖', 194900 => '𥚚', 194901 => '𥛅', 194902 => '福', 194903 => '秫', 194904 => '䄯', 194905 => '穀', 194906 => '穊', 194907 => '穏', 194908 => '𥥼', 194909 => '𥪧', 194910 => '𥪧', 194912 => '䈂', 194913 => '𥮫', 194914 => '篆', 194915 => '築', 194916 => '䈧', 194917 => '𥲀', 194918 => '糒', 194919 => '䊠', 194920 => '糨', 194921 => '糣', 194922 => '紀', 194923 => '𥾆', 194924 => '絣', 194925 => '䌁', 194926 => '緇', 194927 => '縂', 194928 => '繅', 194929 => '䌴', 194930 => '𦈨', 194931 => '𦉇', 194932 => '䍙', 194933 => '𦋙', 194934 => '罺', 194935 => '𦌾', 194936 => '羕', 194937 => '翺', 194938 => '者', 194939 => '𦓚', 194940 => '𦔣', 194941 => '聠', 194942 => '𦖨', 194943 => '聰', 194944 => '𣍟', 194945 => '䏕', 194946 => '育', 194947 => '脃', 194948 => '䐋', 194949 => '脾', 194950 => '媵', 194951 => '𦞧', 194952 => '𦞵', 194953 => '𣎓', 194954 => '𣎜', 194955 => '舁', 194956 => '舄', 194957 => '辞', 194958 => '䑫', 194959 => '芑', 194960 => '芋', 194961 => '芝', 194962 => '劳', 194963 => '花', 194964 => '芳', 194965 => '芽', 194966 => '苦', 194967 => '𦬼', 194968 => '若', 194969 => '茝', 194970 => '荣', 194971 => '莭', 194972 => '茣', 194973 => '莽', 194974 => '菧', 194975 => '著', 194976 => '荓', 194977 => '菊', 194978 => '菌', 194979 => '菜', 194980 => '𦰶', 194981 => '𦵫', 194982 => '𦳕', 194983 => '䔫', 194984 => '蓱', 194985 => '蓳', 194986 => '蔖', 194987 => '𧏊', 194988 => '蕤', 194989 => '𦼬', 194990 => '䕝', 194991 => '䕡', 194992 => '𦾱', 194993 => '𧃒', 194994 => '䕫', 194995 => '虐', 194996 => '虜', 194997 => '虧', 194998 => '虩', 194999 => '蚩', 195000 => '蚈', 195001 => '蜎', 195002 => '蛢', 195003 => '蝹', 195004 => '蜨', 195005 => '蝫', 195006 => '螆', 195008 => '蟡', 195009 => '蠁', 195010 => '䗹', 195011 => '衠', 195012 => '衣', 195013 => '𧙧', 195014 => '裗', 195015 => '裞', 195016 => '䘵', 195017 => '裺', 195018 => '㒻', 195019 => '𧢮', 195020 => '𧥦', 195021 => '䚾', 195022 => '䛇', 195023 => '誠', 195024 => '諭', 195025 => '變', 195026 => '豕', 195027 => '𧲨', 195028 => '貫', 195029 => '賁', 195030 => '贛', 195031 => '起', 195032 => '𧼯', 195033 => '𠠄', 195034 => '跋', 195035 => '趼', 195036 => '跰', 195037 => '𠣞', 195038 => '軔', 195039 => '輸', 195040 => '𨗒', 195041 => '𨗭', 195042 => '邔', 195043 => '郱', 195044 => '鄑', 195045 => '𨜮', 195046 => '鄛', 195047 => '鈸', 195048 => '鋗', 195049 => '鋘', 195050 => '鉼', 195051 => '鏹', 195052 => '鐕', 195053 => '𨯺', 195054 => '開', 195055 => '䦕', 195056 => '閷', 195057 => '𨵷', 195058 => '䧦', 195059 => '雃', 195060 => '嶲', 195061 => '霣', 195062 => '𩅅', 195063 => '𩈚', 195064 => '䩮', 195065 => '䩶', 195066 => '韠', 195067 => '𩐊', 195068 => '䪲', 195069 => '𩒖', 195070 => '頋', 195071 => '頋', 195072 => '頩', 195073 => '𩖶', 195074 => '飢', 195075 => '䬳', 195076 => '餩', 195077 => '馧', 195078 => '駂', 195079 => '駾', 195080 => '䯎', 195081 => '𩬰', 195082 => '鬒', 195083 => '鱀', 195084 => '鳽', 195085 => '䳎', 195086 => '䳭', 195087 => '鵧', 195088 => '𪃎', 195089 => '䳸', 195090 => '𪄅', 195091 => '𪈎', 195092 => '𪊑', 195093 => '麻', 195094 => '䵖', 195095 => '黹', 195096 => '黾', 195097 => '鼅', 195098 => '鼏', 195099 => '鼖', 195100 => '鼻', 195101 => '𪘀');
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/virama.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(2381 => 9, 2509 => 9, 2637 => 9, 2765 => 9, 2893 => 9, 3021 => 9, 3149 => 9, 3277 => 9, 3387 => 9, 3388 => 9, 3405 => 9, 3530 => 9, 3642 => 9, 3770 => 9, 3972 => 9, 4153 => 9, 4154 => 9, 5908 => 9, 5940 => 9, 6098 => 9, 6752 => 9, 6980 => 9, 7082 => 9, 7083 => 9, 7154 => 9, 7155 => 9, 11647 => 9, 43014 => 9, 43052 => 9, 43204 => 9, 43347 => 9, 43456 => 9, 43766 => 9, 44013 => 9, 68159 => 9, 69702 => 9, 69759 => 9, 69817 => 9, 69939 => 9, 69940 => 9, 70080 => 9, 70197 => 9, 70378 => 9, 70477 => 9, 70722 => 9, 70850 => 9, 71103 => 9, 71231 => 9, 71350 => 9, 71467 => 9, 71737 => 9, 71997 => 9, 71998 => 9, 72160 => 9, 72244 => 9, 72263 => 9, 72345 => 9, 72767 => 9, 73028 => 9, 73029 => 9, 73111 => 9);
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/bootstrap.php DELETED
@@ -1,151 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /*
6
- * This file is part of the Symfony package.
7
- *
8
- * (c) Fabien Potencier <fabien@symfony.com>
9
- *
10
- * For the full copyright and license information, please view the LICENSE
11
- * file that was distributed with this source code.
12
- */
13
- use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn as p;
14
- if (\extension_loaded('intl')) {
15
- return;
16
- }
17
- if (!\defined('U_IDNA_PROHIBITED_ERROR')) {
18
- \define('U_IDNA_PROHIBITED_ERROR', 66560);
19
- }
20
- if (!\defined('U_IDNA_ERROR_START')) {
21
- \define('U_IDNA_ERROR_START', 66560);
22
- }
23
- if (!\defined('U_IDNA_UNASSIGNED_ERROR')) {
24
- \define('U_IDNA_UNASSIGNED_ERROR', 66561);
25
- }
26
- if (!\defined('U_IDNA_CHECK_BIDI_ERROR')) {
27
- \define('U_IDNA_CHECK_BIDI_ERROR', 66562);
28
- }
29
- if (!\defined('U_IDNA_STD3_ASCII_RULES_ERROR')) {
30
- \define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);
31
- }
32
- if (!\defined('U_IDNA_ACE_PREFIX_ERROR')) {
33
- \define('U_IDNA_ACE_PREFIX_ERROR', 66564);
34
- }
35
- if (!\defined('U_IDNA_VERIFICATION_ERROR')) {
36
- \define('U_IDNA_VERIFICATION_ERROR', 66565);
37
- }
38
- if (!\defined('U_IDNA_LABEL_TOO_LONG_ERROR')) {
39
- \define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);
40
- }
41
- if (!\defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) {
42
- \define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);
43
- }
44
- if (!\defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) {
45
- \define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);
46
- }
47
- if (!\defined('U_IDNA_ERROR_LIMIT')) {
48
- \define('U_IDNA_ERROR_LIMIT', 66569);
49
- }
50
- if (!\defined('U_STRINGPREP_PROHIBITED_ERROR')) {
51
- \define('U_STRINGPREP_PROHIBITED_ERROR', 66560);
52
- }
53
- if (!\defined('U_STRINGPREP_UNASSIGNED_ERROR')) {
54
- \define('U_STRINGPREP_UNASSIGNED_ERROR', 66561);
55
- }
56
- if (!\defined('U_STRINGPREP_CHECK_BIDI_ERROR')) {
57
- \define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);
58
- }
59
- if (!\defined('IDNA_DEFAULT')) {
60
- \define('IDNA_DEFAULT', 0);
61
- }
62
- if (!\defined('IDNA_ALLOW_UNASSIGNED')) {
63
- \define('IDNA_ALLOW_UNASSIGNED', 1);
64
- }
65
- if (!\defined('IDNA_USE_STD3_RULES')) {
66
- \define('IDNA_USE_STD3_RULES', 2);
67
- }
68
- if (!\defined('IDNA_CHECK_BIDI')) {
69
- \define('IDNA_CHECK_BIDI', 4);
70
- }
71
- if (!\defined('IDNA_CHECK_CONTEXTJ')) {
72
- \define('IDNA_CHECK_CONTEXTJ', 8);
73
- }
74
- if (!\defined('IDNA_NONTRANSITIONAL_TO_ASCII')) {
75
- \define('IDNA_NONTRANSITIONAL_TO_ASCII', 16);
76
- }
77
- if (!\defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) {
78
- \define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);
79
- }
80
- if (!\defined('INTL_IDNA_VARIANT_2003')) {
81
- \define('INTL_IDNA_VARIANT_2003', 0);
82
- }
83
- if (!\defined('INTL_IDNA_VARIANT_UTS46')) {
84
- \define('INTL_IDNA_VARIANT_UTS46', 1);
85
- }
86
- if (!\defined('IDNA_ERROR_EMPTY_LABEL')) {
87
- \define('IDNA_ERROR_EMPTY_LABEL', 1);
88
- }
89
- if (!\defined('IDNA_ERROR_LABEL_TOO_LONG')) {
90
- \define('IDNA_ERROR_LABEL_TOO_LONG', 2);
91
- }
92
- if (!\defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) {
93
- \define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);
94
- }
95
- if (!\defined('IDNA_ERROR_LEADING_HYPHEN')) {
96
- \define('IDNA_ERROR_LEADING_HYPHEN', 8);
97
- }
98
- if (!\defined('IDNA_ERROR_TRAILING_HYPHEN')) {
99
- \define('IDNA_ERROR_TRAILING_HYPHEN', 16);
100
- }
101
- if (!\defined('IDNA_ERROR_HYPHEN_3_4')) {
102
- \define('IDNA_ERROR_HYPHEN_3_4', 32);
103
- }
104
- if (!\defined('IDNA_ERROR_LEADING_COMBINING_MARK')) {
105
- \define('IDNA_ERROR_LEADING_COMBINING_MARK', 64);
106
- }
107
- if (!\defined('IDNA_ERROR_DISALLOWED')) {
108
- \define('IDNA_ERROR_DISALLOWED', 128);
109
- }
110
- if (!\defined('IDNA_ERROR_PUNYCODE')) {
111
- \define('IDNA_ERROR_PUNYCODE', 256);
112
- }
113
- if (!\defined('IDNA_ERROR_LABEL_HAS_DOT')) {
114
- \define('IDNA_ERROR_LABEL_HAS_DOT', 512);
115
- }
116
- if (!\defined('IDNA_ERROR_INVALID_ACE_LABEL')) {
117
- \define('IDNA_ERROR_INVALID_ACE_LABEL', 1024);
118
- }
119
- if (!\defined('IDNA_ERROR_BIDI')) {
120
- \define('IDNA_ERROR_BIDI', 2048);
121
- }
122
- if (!\defined('IDNA_ERROR_CONTEXTJ')) {
123
- \define('IDNA_ERROR_CONTEXTJ', 4096);
124
- }
125
- if (\PHP_VERSION_ID < 70400) {
126
- if (!\function_exists('idn_to_ascii')) {
127
- function idn_to_ascii($domain, $options = \IDNA_DEFAULT, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = array())
128
- {
129
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::idn_to_ascii($domain, $options, $variant, $idna_info);
130
- }
131
- }
132
- if (!\function_exists('idn_to_utf8')) {
133
- function idn_to_utf8($domain, $options = \IDNA_DEFAULT, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = array())
134
- {
135
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::idn_to_utf8($domain, $options, $variant, $idna_info);
136
- }
137
- }
138
- } else {
139
- if (!\function_exists('idn_to_ascii')) {
140
- function idn_to_ascii($domain, $options = \IDNA_DEFAULT, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
141
- {
142
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::idn_to_ascii($domain, $options, $variant, $idna_info);
143
- }
144
- }
145
- if (!\function_exists('idn_to_utf8')) {
146
- function idn_to_utf8($domain, $options = \IDNA_DEFAULT, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
147
- {
148
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::idn_to_utf8($domain, $options, $variant, $idna_info);
149
- }
150
- }
151
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-normalizer/Normalizer.php DELETED
@@ -1,257 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
- namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Normalizer;
12
-
13
- /**
14
- * Normalizer is a PHP fallback implementation of the Normalizer class provided by the intl extension.
15
- *
16
- * It has been validated with Unicode 6.3 Normalization Conformance Test.
17
- * See http://www.unicode.org/reports/tr15/ for detailed info about Unicode normalizations.
18
- *
19
- * @author Nicolas Grekas <p@tchwork.com>
20
- *
21
- * @internal
22
- */
23
- class Normalizer
24
- {
25
- const FORM_D = \Normalizer::FORM_D;
26
- const FORM_KD = \Normalizer::FORM_KD;
27
- const FORM_C = \Normalizer::FORM_C;
28
- const FORM_KC = \Normalizer::FORM_KC;
29
- const NFD = \Normalizer::NFD;
30
- const NFKD = \Normalizer::NFKD;
31
- const NFC = \Normalizer::NFC;
32
- const NFKC = \Normalizer::NFKC;
33
- private static $C;
34
- private static $D;
35
- private static $KD;
36
- private static $cC;
37
- private static $ulenMask = array("�" => 2, "�" => 2, "�" => 3, "�" => 4);
38
- private static $ASCII = " eiasntrolud][cmp'\ng|hv.fb,:=-q10C2*yx)(L9AS/P\"EjMIk3>5T<D4}B{8FwR67UGN;JzV#HOW_&!K?XQ%Y\\\tZ+~^\$@`\0\1\2\3\4\5\6\7\10\v\f\r\16\17\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37";
39
- public static function isNormalized($s, $form = self::NFC)
40
- {
41
- if (!\in_array($form, array(self::NFD, self::NFKD, self::NFC, self::NFKC))) {
42
- return \false;
43
- }
44
- $s = (string) $s;
45
- if (!isset($s[\strspn($s, self::$ASCII)])) {
46
- return \true;
47
- }
48
- if (self::NFC == $form && \preg_match('//u', $s) && !\preg_match('/[^\\x00-\\x{2FF}]/u', $s)) {
49
- return \true;
50
- }
51
- return self::normalize($s, $form) === $s;
52
- }
53
- public static function normalize($s, $form = self::NFC)
54
- {
55
- $s = (string) $s;
56
- if (!\preg_match('//u', $s)) {
57
- return \false;
58
- }
59
- switch ($form) {
60
- case self::NFC:
61
- $C = \true;
62
- $K = \false;
63
- break;
64
- case self::NFD:
65
- $C = \false;
66
- $K = \false;
67
- break;
68
- case self::NFKC:
69
- $C = \true;
70
- $K = \true;
71
- break;
72
- case self::NFKD:
73
- $C = \false;
74
- $K = \true;
75
- break;
76
- default:
77
- if (\defined('Normalizer::NONE') && \Normalizer::NONE == $form) {
78
- return $s;
79
- }
80
- return \false;
81
- }
82
- if ('' === $s) {
83
- return '';
84
- }
85
- if ($K && null === self::$KD) {
86
- self::$KD = self::getData('compatibilityDecomposition');
87
- }
88
- if (null === self::$D) {
89
- self::$D = self::getData('canonicalDecomposition');
90
- self::$cC = self::getData('combiningClass');
91
- }
92
- if (null !== ($mbEncoding = 2 & (int) \ini_get('mbstring.func_overload') ? \mb_internal_encoding() : null)) {
93
- \mb_internal_encoding('8bit');
94
- }
95
- $r = self::decompose($s, $K);
96
- if ($C) {
97
- if (null === self::$C) {
98
- self::$C = self::getData('canonicalComposition');
99
- }
100
- $r = self::recompose($r);
101
- }
102
- if (null !== $mbEncoding) {
103
- \mb_internal_encoding($mbEncoding);
104
- }
105
- return $r;
106
- }
107
- private static function recompose($s)
108
- {
109
- $ASCII = self::$ASCII;
110
- $compMap = self::$C;
111
- $combClass = self::$cC;
112
- $ulenMask = self::$ulenMask;
113
- $result = $tail = '';
114
- $i = $s[0] < "�" ? 1 : $ulenMask[$s[0] & "�"];
115
- $len = \strlen($s);
116
- $lastUchr = \substr($s, 0, $i);
117
- $lastUcls = isset($combClass[$lastUchr]) ? 256 : 0;
118
- while ($i < $len) {
119
- if ($s[$i] < "�") {
120
- // ASCII chars
121
- if ($tail) {
122
- $lastUchr .= $tail;
123
- $tail = '';
124
- }
125
- if ($j = \strspn($s, $ASCII, $i + 1)) {
126
- $lastUchr .= \substr($s, $i, $j);
127
- $i += $j;
128
- }
129
- $result .= $lastUchr;
130
- $lastUchr = $s[$i];
131
- $lastUcls = 0;
132
- ++$i;
133
- continue;
134
- }
135
- $ulen = $ulenMask[$s[$i] & "�"];
136
- $uchr = \substr($s, $i, $ulen);
137
- if ($lastUchr < "ᄀ" || "ᄒ" < $lastUchr || $uchr < "ᅡ" || "ᅵ" < $uchr || $lastUcls) {
138
- // Table lookup and combining chars composition
139
- $ucls = isset($combClass[$uchr]) ? $combClass[$uchr] : 0;
140
- if (isset($compMap[$lastUchr . $uchr]) && (!$lastUcls || $lastUcls < $ucls)) {
141
- $lastUchr = $compMap[$lastUchr . $uchr];
142
- } elseif ($lastUcls = $ucls) {
143
- $tail .= $uchr;
144
- } else {
145
- if ($tail) {
146
- $lastUchr .= $tail;
147
- $tail = '';
148
- }
149
- $result .= $lastUchr;
150
- $lastUchr = $uchr;
151
- }
152
- } else {
153
- // Hangul chars
154
- $L = \ord($lastUchr[2]) - 0x80;
155
- $V = \ord($uchr[2]) - 0xa1;
156
- $T = 0;
157
- $uchr = \substr($s, $i + $ulen, 3);
158
- if ("ᆧ" <= $uchr && $uchr <= "ᇂ") {
159
- $T = \ord($uchr[2]) - 0xa7;
160
- 0 > $T && ($T += 0x40);
161
- $ulen += 3;
162
- }
163
- $L = 0xac00 + ($L * 21 + $V) * 28 + $T;
164
- $lastUchr = \chr(0xe0 | $L >> 12) . \chr(0x80 | $L >> 6 & 0x3f) . \chr(0x80 | $L & 0x3f);
165
- }
166
- $i += $ulen;
167
- }
168
- return $result . $lastUchr . $tail;
169
- }
170
- private static function decompose($s, $c)
171
- {
172
- $result = '';
173
- $ASCII = self::$ASCII;
174
- $decompMap = self::$D;
175
- $combClass = self::$cC;
176
- $ulenMask = self::$ulenMask;
177
- if ($c) {
178
- $compatMap = self::$KD;
179
- }
180
- $c = array();
181
- $i = 0;
182
- $len = \strlen($s);
183
- while ($i < $len) {
184
- if ($s[$i] < "�") {
185
- // ASCII chars
186
- if ($c) {
187
- \ksort($c);
188
- $result .= \implode('', $c);
189
- $c = array();
190
- }
191
- $j = 1 + \strspn($s, $ASCII, $i + 1);
192
- $result .= \substr($s, $i, $j);
193
- $i += $j;
194
- continue;
195
- }
196
- $ulen = $ulenMask[$s[$i] & "�"];
197
- $uchr = \substr($s, $i, $ulen);
198
- $i += $ulen;
199
- if ($uchr < "가" || "힣" < $uchr) {
200
- // Table lookup
201
- if ($uchr !== ($j = isset($compatMap[$uchr]) ? $compatMap[$uchr] : (isset($decompMap[$uchr]) ? $decompMap[$uchr] : $uchr))) {
202
- $uchr = $j;
203
- $j = \strlen($uchr);
204
- $ulen = $uchr[0] < "�" ? 1 : $ulenMask[$uchr[0] & "�"];
205
- if ($ulen != $j) {
206
- // Put trailing chars in $s
207
- $j -= $ulen;
208
- $i -= $j;
209
- if (0 > $i) {
210
- $s = \str_repeat(' ', -$i) . $s;
211
- $len -= $i;
212
- $i = 0;
213
- }
214
- while ($j--) {
215
- $s[$i + $j] = $uchr[$ulen + $j];
216
- }
217
- $uchr = \substr($uchr, 0, $ulen);
218
- }
219
- }
220
- if (isset($combClass[$uchr])) {
221
- // Combining chars, for sorting
222
- if (!isset($c[$combClass[$uchr]])) {
223
- $c[$combClass[$uchr]] = '';
224
- }
225
- $c[$combClass[$uchr]] .= $uchr;
226
- continue;
227
- }
228
- } else {
229
- // Hangul chars
230
- $uchr = \unpack('C*', $uchr);
231
- $j = ($uchr[1] - 224 << 12) + ($uchr[2] - 128 << 6) + $uchr[3] - 0xac80;
232
- $uchr = "�" . \chr(0x80 + (int) ($j / 588)) . "�" . \chr(0xa1 + (int) ($j % 588 / 28));
233
- if ($j %= 28) {
234
- $uchr .= $j < 25 ? "�" . \chr(0xa7 + $j) : "�" . \chr(0x67 + $j);
235
- }
236
- }
237
- if ($c) {
238
- \ksort($c);
239
- $result .= \implode('', $c);
240
- $c = array();
241
- }
242
- $result .= $uchr;
243
- }
244
- if ($c) {
245
- \ksort($c);
246
- $result .= \implode('', $c);
247
- }
248
- return $result;
249
- }
250
- private static function getData($file)
251
- {
252
- if (\file_exists($file = __DIR__ . '/Resources/unidata/' . $file . '.php')) {
253
- return require $file;
254
- }
255
- return \false;
256
- }
257
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php DELETED
@@ -1,20 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- class Normalizer extends \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Normalizer\Normalizer
6
- {
7
- /**
8
- * @deprecated since ICU 56 and removed in PHP 8
9
- */
10
- const NONE = 1;
11
- const FORM_D = 2;
12
- const FORM_KD = 3;
13
- const FORM_C = 4;
14
- const FORM_KC = 5;
15
- const NFD = 2;
16
- const NFKD = 3;
17
- const NFC = 4;
18
- const NFKC = 5;
19
- }
20
- \class_alias('PYS_PRO_GLOBAL\\Normalizer', 'Normalizer', \false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalComposition.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array('À' => 'À', 'Á' => 'Á', 'Â' => 'Â', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Å' => 'Å', 'Ç' => 'Ç', 'È' => 'È', 'É' => 'É', 'Ê' => 'Ê', 'Ë' => 'Ë', 'Ì' => 'Ì', 'Í' => 'Í', 'Î' => 'Î', 'Ï' => 'Ï', 'Ñ' => 'Ñ', 'Ò' => 'Ò', 'Ó' => 'Ó', 'Ô' => 'Ô', 'Õ' => 'Õ', 'Ö' => 'Ö', 'Ù' => 'Ù', 'Ú' => 'Ú', 'Û' => 'Û', 'Ü' => 'Ü', 'Ý' => 'Ý', 'à' => 'à', 'á' => 'á', 'â' => 'â', 'ã' => 'ã', 'ä' => 'ä', 'å' => 'å', 'ç' => 'ç', 'è' => 'è', 'é' => 'é', 'ê' => 'ê', 'ë' => 'ë', 'ì' => 'ì', 'í' => 'í', 'î' => 'î', 'ï' => 'ï', 'ñ' => 'ñ', 'ò' => 'ò', 'ó' => 'ó', 'ô' => 'ô', 'õ' => 'õ', 'ö' => 'ö', 'ù' => 'ù', 'ú' => 'ú', 'û' => 'û', 'ü' => 'ü', 'ý' => 'ý', 'ÿ' => 'ÿ', 'Ā' => 'Ā', 'ā' => 'ā', 'Ă' => 'Ă', 'ă' => 'ă', 'Ą' => 'Ą', 'ą' => 'ą', 'Ć' => 'Ć', 'ć' => 'ć', 'Ĉ' => 'Ĉ', 'ĉ' => 'ĉ', 'Ċ' => 'Ċ', 'ċ' => 'ċ', 'Č' => 'Č', 'č' => 'č', 'Ď' => 'Ď', 'ď' => 'ď', 'Ē' => 'Ē', 'ē' => 'ē', 'Ĕ' => 'Ĕ', 'ĕ' => 'ĕ', 'Ė' => 'Ė', 'ė' => 'ė', 'Ę' => 'Ę', 'ę' => 'ę', 'Ě' => 'Ě', 'ě' => 'ě', 'Ĝ' => 'Ĝ', 'ĝ' => 'ĝ', 'Ğ' => 'Ğ', 'ğ' => 'ğ', 'Ġ' => 'Ġ', 'ġ' => 'ġ', 'Ģ' => 'Ģ', 'ģ' => 'ģ', 'Ĥ' => 'Ĥ', 'ĥ' => 'ĥ', 'Ĩ' => 'Ĩ', 'ĩ' => 'ĩ', 'Ī' => 'Ī', 'ī' => 'ī', 'Ĭ' => 'Ĭ', 'ĭ' => 'ĭ', 'Į' => 'Į', 'į' => 'į', 'İ' => 'İ', 'Ĵ' => 'Ĵ', 'ĵ' => 'ĵ', 'Ķ' => 'Ķ', 'ķ' => 'ķ', 'Ĺ' => 'Ĺ', 'ĺ' => 'ĺ', 'Ļ' => 'Ļ', 'ļ' => 'ļ', 'Ľ' => 'Ľ', 'ľ' => 'ľ', 'Ń' => 'Ń', 'ń' => 'ń', 'Ņ' => 'Ņ', 'ņ' => 'ņ', 'Ň' => 'Ň', 'ň' => 'ň', 'Ō' => 'Ō', 'ō' => 'ō', 'Ŏ' => 'Ŏ', 'ŏ' => 'ŏ', 'Ő' => 'Ő', 'ő' => 'ő', 'Ŕ' => 'Ŕ', 'ŕ' => 'ŕ', 'Ŗ' => 'Ŗ', 'ŗ' => 'ŗ', 'Ř' => 'Ř', 'ř' => 'ř', 'Ś' => 'Ś', 'ś' => 'ś', 'Ŝ' => 'Ŝ', 'ŝ' => 'ŝ', 'Ş' => 'Ş', 'ş' => 'ş', 'Š' => 'Š', 'š' => 'š', 'Ţ' => 'Ţ', 'ţ' => 'ţ', 'Ť' => 'Ť', 'ť' => 'ť', 'Ũ' => 'Ũ', 'ũ' => 'ũ', 'Ū' => 'Ū', 'ū' => 'ū', 'Ŭ' => 'Ŭ', 'ŭ' => 'ŭ', 'Ů' => 'Ů', 'ů' => 'ů', 'Ű' => 'Ű', 'ű' => 'ű', 'Ų' => 'Ų', 'ų' => 'ų', 'Ŵ' => 'Ŵ', 'ŵ' => 'ŵ', 'Ŷ' => 'Ŷ', 'ŷ' => 'ŷ', 'Ÿ' => 'Ÿ', 'Ź' => 'Ź', 'ź' => 'ź', 'Ż' => 'Ż', 'ż' => 'ż', 'Ž' => 'Ž', 'ž' => 'ž', 'Ơ' => 'Ơ', 'ơ' => 'ơ', 'Ư' => 'Ư', 'ư' => 'ư', 'Ǎ' => 'Ǎ', 'ǎ' => 'ǎ', 'Ǐ' => 'Ǐ', 'ǐ' => 'ǐ', 'Ǒ' => 'Ǒ', 'ǒ' => 'ǒ', 'Ǔ' => 'Ǔ', 'ǔ' => 'ǔ', 'Ǖ' => 'Ǖ', 'ǖ' => 'ǖ', 'Ǘ' => 'Ǘ', 'ǘ' => 'ǘ', 'Ǚ' => 'Ǚ', 'ǚ' => 'ǚ', 'Ǜ' => 'Ǜ', 'ǜ' => 'ǜ', 'Ǟ' => 'Ǟ', 'ǟ' => 'ǟ', 'Ǡ' => 'Ǡ', 'ǡ' => 'ǡ', 'Ǣ' => 'Ǣ', 'ǣ' => 'ǣ', 'Ǧ' => 'Ǧ', 'ǧ' => 'ǧ', 'Ǩ' => 'Ǩ', 'ǩ' => 'ǩ', 'Ǫ' => 'Ǫ', 'ǫ' => 'ǫ', 'Ǭ' => 'Ǭ', 'ǭ' => 'ǭ', 'Ǯ' => 'Ǯ', 'ǯ' => 'ǯ', 'ǰ' => 'ǰ', 'Ǵ' => 'Ǵ', 'ǵ' => 'ǵ', 'Ǹ' => 'Ǹ', 'ǹ' => 'ǹ', 'Ǻ' => 'Ǻ', 'ǻ' => 'ǻ', 'Ǽ' => 'Ǽ', 'ǽ' => 'ǽ', 'Ǿ' => 'Ǿ', 'ǿ' => 'ǿ', 'Ȁ' => 'Ȁ', 'ȁ' => 'ȁ', 'Ȃ' => 'Ȃ', 'ȃ' => 'ȃ', 'Ȅ' => 'Ȅ', 'ȅ' => 'ȅ', 'Ȇ' => 'Ȇ', 'ȇ' => 'ȇ', 'Ȉ' => 'Ȉ', 'ȉ' => 'ȉ', 'Ȋ' => 'Ȋ', 'ȋ' => 'ȋ', 'Ȍ' => 'Ȍ', 'ȍ' => 'ȍ', 'Ȏ' => 'Ȏ', 'ȏ' => 'ȏ', 'Ȑ' => 'Ȑ', 'ȑ' => 'ȑ', 'Ȓ' => 'Ȓ', 'ȓ' => 'ȓ', 'Ȕ' => 'Ȕ', 'ȕ' => 'ȕ', 'Ȗ' => 'Ȗ', 'ȗ' => 'ȗ', 'Ș' => 'Ș', 'ș' => 'ș', 'Ț' => 'Ț', 'ț' => 'ț', 'Ȟ' => 'Ȟ', 'ȟ' => 'ȟ', 'Ȧ' => 'Ȧ', 'ȧ' => 'ȧ', 'Ȩ' => 'Ȩ', 'ȩ' => 'ȩ', 'Ȫ' => 'Ȫ', 'ȫ' => 'ȫ', 'Ȭ' => 'Ȭ', 'ȭ' => 'ȭ', 'Ȯ' => 'Ȯ', 'ȯ' => 'ȯ', 'Ȱ' => 'Ȱ', 'ȱ' => 'ȱ', 'Ȳ' => 'Ȳ', 'ȳ' => 'ȳ', '΅' => '΅', 'Ά' => 'Ά', 'Έ' => 'Έ', 'Ή' => 'Ή', 'Ί' => 'Ί', 'Ό' => 'Ό', 'Ύ' => 'Ύ', 'Ώ' => 'Ώ', 'ΐ' => 'ΐ', 'Ϊ' => 'Ϊ', 'Ϋ' => 'Ϋ', 'ά' => 'ά', 'έ' => 'έ', 'ή' => 'ή', 'ί' => 'ί', 'ΰ' => 'ΰ', 'ϊ' => 'ϊ', 'ϋ' => 'ϋ', 'ό' => 'ό', 'ύ' => 'ύ', 'ώ' => 'ώ', 'ϓ' => 'ϓ', 'ϔ' => 'ϔ', 'Ѐ' => 'Ѐ', 'Ё' => 'Ё', 'Ѓ' => 'Ѓ', 'Ї' => 'Ї', 'Ќ' => 'Ќ', 'Ѝ' => 'Ѝ', 'Ў' => 'Ў', 'Й' => 'Й', 'й' => 'й', 'ѐ' => 'ѐ', 'ё' => 'ё', 'ѓ' => 'ѓ', 'ї' => 'ї', 'ќ' => 'ќ', 'ѝ' => 'ѝ', 'ў' => 'ў', 'Ѷ' => 'Ѷ', 'ѷ' => 'ѷ', 'Ӂ' => 'Ӂ', 'ӂ' => 'ӂ', 'Ӑ' => 'Ӑ', 'ӑ' => 'ӑ', 'Ӓ' => 'Ӓ', 'ӓ' => 'ӓ', 'Ӗ' => 'Ӗ', 'ӗ' => 'ӗ', 'Ӛ' => 'Ӛ', 'ӛ' => 'ӛ', 'Ӝ' => 'Ӝ', 'ӝ' => 'ӝ', 'Ӟ' => 'Ӟ', 'ӟ' => 'ӟ', 'Ӣ' => 'Ӣ', 'ӣ' => 'ӣ', 'Ӥ' => 'Ӥ', 'ӥ' => 'ӥ', 'Ӧ' => 'Ӧ', 'ӧ' => 'ӧ', 'Ӫ' => 'Ӫ', 'ӫ' => 'ӫ', 'Ӭ' => 'Ӭ', 'ӭ' => 'ӭ', 'Ӯ' => 'Ӯ', 'ӯ' => 'ӯ', 'Ӱ' => 'Ӱ', 'ӱ' => 'ӱ', 'Ӳ' => 'Ӳ', 'ӳ' => 'ӳ', 'Ӵ' => 'Ӵ', 'ӵ' => 'ӵ', 'Ӹ' => 'Ӹ', 'ӹ' => 'ӹ', 'آ' => 'آ', 'أ' => 'أ', 'ؤ' => 'ؤ', 'إ' => 'إ', 'ئ' => 'ئ', 'ۀ' => 'ۀ', 'ۂ' => 'ۂ', 'ۓ' => 'ۓ', 'ऩ' => 'ऩ', 'ऱ' => 'ऱ', 'ऴ' => 'ऴ', 'ো' => 'ো', 'ৌ' => 'ৌ', 'ୈ' => 'ୈ', 'ୋ' => 'ୋ', 'ୌ' => 'ୌ', 'ஔ' => 'ஔ', 'ொ' => 'ொ', 'ோ' => 'ோ', 'ௌ' => 'ௌ', 'ై' => 'ై', 'ೀ' => 'ೀ', 'ೇ' => 'ೇ', 'ೈ' => 'ೈ', 'ೊ' => 'ೊ', 'ೋ' => 'ೋ', 'ൊ' => 'ൊ', 'ോ' => 'ോ', 'ൌ' => 'ൌ', 'ේ' => 'ේ', 'ො' => 'ො', 'ෝ' => 'ෝ', 'ෞ' => 'ෞ', 'ဦ' => 'ဦ', 'ᬆ' => 'ᬆ', 'ᬈ' => 'ᬈ', 'ᬊ' => 'ᬊ', 'ᬌ' => 'ᬌ', 'ᬎ' => 'ᬎ', 'ᬒ' => 'ᬒ', 'ᬻ' => 'ᬻ', 'ᬽ' => 'ᬽ', 'ᭀ' => 'ᭀ', 'ᭁ' => 'ᭁ', 'ᭃ' => 'ᭃ', 'Ḁ' => 'Ḁ', 'ḁ' => 'ḁ', 'Ḃ' => 'Ḃ', 'ḃ' => 'ḃ', 'Ḅ' => 'Ḅ', 'ḅ' => 'ḅ', 'Ḇ' => 'Ḇ', 'ḇ' => 'ḇ', 'Ḉ' => 'Ḉ', 'ḉ' => 'ḉ', 'Ḋ' => 'Ḋ', 'ḋ' => 'ḋ', 'Ḍ' => 'Ḍ', 'ḍ' => 'ḍ', 'Ḏ' => 'Ḏ', 'ḏ' => 'ḏ', 'Ḑ' => 'Ḑ', 'ḑ' => 'ḑ', 'Ḓ' => 'Ḓ', 'ḓ' => 'ḓ', 'Ḕ' => 'Ḕ', 'ḕ' => 'ḕ', 'Ḗ' => 'Ḗ', 'ḗ' => 'ḗ', 'Ḙ' => 'Ḙ', 'ḙ' => 'ḙ', 'Ḛ' => 'Ḛ', 'ḛ' => 'ḛ', 'Ḝ' => 'Ḝ', 'ḝ' => 'ḝ', 'Ḟ' => 'Ḟ', 'ḟ' => 'ḟ', 'Ḡ' => 'Ḡ', 'ḡ' => 'ḡ', 'Ḣ' => 'Ḣ', 'ḣ' => 'ḣ', 'Ḥ' => 'Ḥ', 'ḥ' => 'ḥ', 'Ḧ' => 'Ḧ', 'ḧ' => 'ḧ', 'Ḩ' => 'Ḩ', 'ḩ' => 'ḩ', 'Ḫ' => 'Ḫ', 'ḫ' => 'ḫ', 'Ḭ' => 'Ḭ', 'ḭ' => 'ḭ', 'Ḯ' => 'Ḯ', 'ḯ' => 'ḯ', 'Ḱ' => 'Ḱ', 'ḱ' => 'ḱ', 'Ḳ' => 'Ḳ', 'ḳ' => 'ḳ', 'Ḵ' => 'Ḵ', 'ḵ' => 'ḵ', 'Ḷ' => 'Ḷ', 'ḷ' => 'ḷ', 'Ḹ' => 'Ḹ', 'ḹ' => 'ḹ', 'Ḻ' => 'Ḻ', 'ḻ' => 'ḻ', 'Ḽ' => 'Ḽ', 'ḽ' => 'ḽ', 'Ḿ' => 'Ḿ', 'ḿ' => 'ḿ', 'Ṁ' => 'Ṁ', 'ṁ' => 'ṁ', 'Ṃ' => 'Ṃ', 'ṃ' => 'ṃ', 'Ṅ' => 'Ṅ', 'ṅ' => 'ṅ', 'Ṇ' => 'Ṇ', 'ṇ' => 'ṇ', 'Ṉ' => 'Ṉ', 'ṉ' => 'ṉ', 'Ṋ' => 'Ṋ', 'ṋ' => 'ṋ', 'Ṍ' => 'Ṍ', 'ṍ' => 'ṍ', 'Ṏ' => 'Ṏ', 'ṏ' => 'ṏ', 'Ṑ' => 'Ṑ', 'ṑ' => 'ṑ', 'Ṓ' => 'Ṓ', 'ṓ' => 'ṓ', 'Ṕ' => 'Ṕ', 'ṕ' => 'ṕ', 'Ṗ' => 'Ṗ', 'ṗ' => 'ṗ', 'Ṙ' => 'Ṙ', 'ṙ' => 'ṙ', 'Ṛ' => 'Ṛ', 'ṛ' => 'ṛ', 'Ṝ' => 'Ṝ', 'ṝ' => 'ṝ', 'Ṟ' => 'Ṟ', 'ṟ' => 'ṟ', 'Ṡ' => 'Ṡ', 'ṡ' => 'ṡ', 'Ṣ' => 'Ṣ', 'ṣ' => 'ṣ', 'Ṥ' => 'Ṥ', 'ṥ' => 'ṥ', 'Ṧ' => 'Ṧ', 'ṧ' => 'ṧ', 'Ṩ' => 'Ṩ', 'ṩ' => 'ṩ', 'Ṫ' => 'Ṫ', 'ṫ' => 'ṫ', 'Ṭ' => 'Ṭ', 'ṭ' => 'ṭ', 'Ṯ' => 'Ṯ', 'ṯ' => 'ṯ', 'Ṱ' => 'Ṱ', 'ṱ' => 'ṱ', 'Ṳ' => 'Ṳ', 'ṳ' => 'ṳ', 'Ṵ' => 'Ṵ', 'ṵ' => 'ṵ', 'Ṷ' => 'Ṷ', 'ṷ' => 'ṷ', 'Ṹ' => 'Ṹ', 'ṹ' => 'ṹ', 'Ṻ' => 'Ṻ', 'ṻ' => 'ṻ', 'Ṽ' => 'Ṽ', 'ṽ' => 'ṽ', 'Ṿ' => 'Ṿ', 'ṿ' => 'ṿ', 'Ẁ' => 'Ẁ', 'ẁ' => 'ẁ', 'Ẃ' => 'Ẃ', 'ẃ' => 'ẃ', 'Ẅ' => 'Ẅ', 'ẅ' => 'ẅ', 'Ẇ' => 'Ẇ', 'ẇ' => 'ẇ', 'Ẉ' => 'Ẉ', 'ẉ' => 'ẉ', 'Ẋ' => 'Ẋ', 'ẋ' => 'ẋ', 'Ẍ' => 'Ẍ', 'ẍ' => 'ẍ', 'Ẏ' => 'Ẏ', 'ẏ' => 'ẏ', 'Ẑ' => 'Ẑ', 'ẑ' => 'ẑ', 'Ẓ' => 'Ẓ', 'ẓ' => 'ẓ', 'Ẕ' => 'Ẕ', 'ẕ' => 'ẕ', 'ẖ' => 'ẖ', 'ẗ' => 'ẗ', 'ẘ' => 'ẘ', 'ẙ' => 'ẙ', 'ẛ' => 'ẛ', 'Ạ' => 'Ạ', 'ạ' => 'ạ', 'Ả' => 'Ả', 'ả' => 'ả', 'Ấ' => 'Ấ', 'ấ' => 'ấ', 'Ầ' => 'Ầ', 'ầ' => 'ầ', 'Ẩ' => 'Ẩ', 'ẩ' => 'ẩ', 'Ẫ' => 'Ẫ', 'ẫ' => 'ẫ', 'Ậ' => 'Ậ', 'ậ' => 'ậ', 'Ắ' => 'Ắ', 'ắ' => 'ắ', 'Ằ' => 'Ằ', 'ằ' => 'ằ', 'Ẳ' => 'Ẳ', 'ẳ' => 'ẳ', 'Ẵ' => 'Ẵ', 'ẵ' => 'ẵ', 'Ặ' => 'Ặ', 'ặ' => 'ặ', 'Ẹ' => 'Ẹ', 'ẹ' => 'ẹ', 'Ẻ' => 'Ẻ', 'ẻ' => 'ẻ', 'Ẽ' => 'Ẽ', 'ẽ' => 'ẽ', 'Ế' => 'Ế', 'ế' => 'ế', 'Ề' => 'Ề', 'ề' => 'ề', 'Ể' => 'Ể', 'ể' => 'ể', 'Ễ' => 'Ễ', 'ễ' => 'ễ', 'Ệ' => 'Ệ', 'ệ' => 'ệ', 'Ỉ' => 'Ỉ', 'ỉ' => 'ỉ', 'Ị' => 'Ị', 'ị' => 'ị', 'Ọ' => 'Ọ', 'ọ' => 'ọ', 'Ỏ' => 'Ỏ', 'ỏ' => 'ỏ', 'Ố' => 'Ố', 'ố' => 'ố', 'Ồ' => 'Ồ', 'ồ' => 'ồ', 'Ổ' => 'Ổ', 'ổ' => 'ổ', 'Ỗ' => 'Ỗ', 'ỗ' => 'ỗ', 'Ộ' => 'Ộ', 'ộ' => 'ộ', 'Ớ' => 'Ớ', 'ớ' => 'ớ', 'Ờ' => 'Ờ', 'ờ' => 'ờ', 'Ở' => 'Ở', 'ở' => 'ở', 'Ỡ' => 'Ỡ', 'ỡ' => 'ỡ', 'Ợ' => 'Ợ', 'ợ' => 'ợ', 'Ụ' => 'Ụ', 'ụ' => 'ụ', 'Ủ' => 'Ủ', 'ủ' => 'ủ', 'Ứ' => 'Ứ', 'ứ' => 'ứ', 'Ừ' => 'Ừ', 'ừ' => 'ừ', 'Ử' => 'Ử', 'ử' => 'ử', 'Ữ' => 'Ữ', 'ữ' => 'ữ', 'Ự' => 'Ự', 'ự' => 'ự', 'Ỳ' => 'Ỳ', 'ỳ' => 'ỳ', 'Ỵ' => 'Ỵ', 'ỵ' => 'ỵ', 'Ỷ' => 'Ỷ', 'ỷ' => 'ỷ', 'Ỹ' => 'Ỹ', 'ỹ' => 'ỹ', 'ἀ' => 'ἀ', 'ἁ' => 'ἁ', 'ἂ' => 'ἂ', 'ἃ' => 'ἃ', 'ἄ' => 'ἄ', 'ἅ' => 'ἅ', 'ἆ' => 'ἆ', 'ἇ' => 'ἇ', 'Ἀ' => 'Ἀ', 'Ἁ' => 'Ἁ', 'Ἂ' => 'Ἂ', 'Ἃ' => 'Ἃ', 'Ἄ' => 'Ἄ', 'Ἅ' => 'Ἅ', 'Ἆ' => 'Ἆ', 'Ἇ' => 'Ἇ', 'ἐ' => 'ἐ', 'ἑ' => 'ἑ', 'ἒ' => 'ἒ', 'ἓ' => 'ἓ', 'ἔ' => 'ἔ', 'ἕ' => 'ἕ', 'Ἐ' => 'Ἐ', 'Ἑ' => 'Ἑ', 'Ἒ' => 'Ἒ', 'Ἓ' => 'Ἓ', 'Ἔ' => 'Ἔ', 'Ἕ' => 'Ἕ', 'ἠ' => 'ἠ', 'ἡ' => 'ἡ', 'ἢ' => 'ἢ', 'ἣ' => 'ἣ', 'ἤ' => 'ἤ', 'ἥ' => 'ἥ', 'ἦ' => 'ἦ', 'ἧ' => 'ἧ', 'Ἠ' => 'Ἠ', 'Ἡ' => 'Ἡ', 'Ἢ' => 'Ἢ', 'Ἣ' => 'Ἣ', 'Ἤ' => 'Ἤ', 'Ἥ' => 'Ἥ', 'Ἦ' => 'Ἦ', 'Ἧ' => 'Ἧ', 'ἰ' => 'ἰ', 'ἱ' => 'ἱ', 'ἲ' => 'ἲ', 'ἳ' => 'ἳ', 'ἴ' => 'ἴ', 'ἵ' => 'ἵ', 'ἶ' => 'ἶ', 'ἷ' => 'ἷ', 'Ἰ' => 'Ἰ', 'Ἱ' => 'Ἱ', 'Ἲ' => 'Ἲ', 'Ἳ' => 'Ἳ', 'Ἴ' => 'Ἴ', 'Ἵ' => 'Ἵ', 'Ἶ' => 'Ἶ', 'Ἷ' => 'Ἷ', 'ὀ' => 'ὀ', 'ὁ' => 'ὁ', 'ὂ' => 'ὂ', 'ὃ' => 'ὃ', 'ὄ' => 'ὄ', 'ὅ' => 'ὅ', 'Ὀ' => 'Ὀ', 'Ὁ' => 'Ὁ', 'Ὂ' => 'Ὂ', 'Ὃ' => 'Ὃ', 'Ὄ' => 'Ὄ', 'Ὅ' => 'Ὅ', 'ὐ' => 'ὐ', 'ὑ' => 'ὑ', 'ὒ' => 'ὒ', 'ὓ' => 'ὓ', 'ὔ' => 'ὔ', 'ὕ' => 'ὕ', 'ὖ' => 'ὖ', 'ὗ' => 'ὗ', 'Ὑ' => 'Ὑ', 'Ὓ' => 'Ὓ', 'Ὕ' => 'Ὕ', 'Ὗ' => 'Ὗ', 'ὠ' => 'ὠ', 'ὡ' => 'ὡ', 'ὢ' => 'ὢ', 'ὣ' => 'ὣ', 'ὤ' => 'ὤ', 'ὥ' => 'ὥ', 'ὦ' => 'ὦ', 'ὧ' => 'ὧ', 'Ὠ' => 'Ὠ', 'Ὡ' => 'Ὡ', 'Ὢ' => 'Ὢ', 'Ὣ' => 'Ὣ', 'Ὤ' => 'Ὤ', 'Ὥ' => 'Ὥ', 'Ὦ' => 'Ὦ', 'Ὧ' => 'Ὧ', 'ὰ' => 'ὰ', 'ὲ' => 'ὲ', 'ὴ' => 'ὴ', 'ὶ' => 'ὶ', 'ὸ' => 'ὸ', 'ὺ' => 'ὺ', 'ὼ' => 'ὼ', 'ᾀ' => 'ᾀ', 'ᾁ' => 'ᾁ', 'ᾂ' => 'ᾂ', 'ᾃ' => 'ᾃ', 'ᾄ' => 'ᾄ', 'ᾅ' => 'ᾅ', 'ᾆ' => 'ᾆ', 'ᾇ' => 'ᾇ', 'ᾈ' => 'ᾈ', 'ᾉ' => 'ᾉ', 'ᾊ' => 'ᾊ', 'ᾋ' => 'ᾋ', 'ᾌ' => 'ᾌ', 'ᾍ' => 'ᾍ', 'ᾎ' => 'ᾎ', 'ᾏ' => 'ᾏ', 'ᾐ' => 'ᾐ', 'ᾑ' => 'ᾑ', 'ᾒ' => 'ᾒ', 'ᾓ' => 'ᾓ', 'ᾔ' => 'ᾔ', 'ᾕ' => 'ᾕ', 'ᾖ' => 'ᾖ', 'ᾗ' => 'ᾗ', 'ᾘ' => 'ᾘ', 'ᾙ' => 'ᾙ', 'ᾚ' => 'ᾚ', 'ᾛ' => 'ᾛ', 'ᾜ' => 'ᾜ', 'ᾝ' => 'ᾝ', 'ᾞ' => 'ᾞ', 'ᾟ' => 'ᾟ', 'ᾠ' => 'ᾠ', 'ᾡ' => 'ᾡ', 'ᾢ' => 'ᾢ', 'ᾣ' => 'ᾣ', 'ᾤ' => 'ᾤ', 'ᾥ' => 'ᾥ', 'ᾦ' => 'ᾦ', 'ᾧ' => 'ᾧ', 'ᾨ' => 'ᾨ', 'ᾩ' => 'ᾩ', 'ᾪ' => 'ᾪ', 'ᾫ' => 'ᾫ', 'ᾬ' => 'ᾬ', 'ᾭ' => 'ᾭ', 'ᾮ' => 'ᾮ', 'ᾯ' => 'ᾯ', 'ᾰ' => 'ᾰ', 'ᾱ' => 'ᾱ', 'ᾲ' => 'ᾲ', 'ᾳ' => 'ᾳ', 'ᾴ' => 'ᾴ', 'ᾶ' => 'ᾶ', 'ᾷ' => 'ᾷ', 'Ᾰ' => 'Ᾰ', 'Ᾱ' => 'Ᾱ', 'Ὰ' => 'Ὰ', 'ᾼ' => 'ᾼ', '῁' => '῁', 'ῂ' => 'ῂ', 'ῃ' => 'ῃ', 'ῄ' => 'ῄ', 'ῆ' => 'ῆ', 'ῇ' => 'ῇ', 'Ὲ' => 'Ὲ', 'Ὴ' => 'Ὴ', 'ῌ' => 'ῌ', '῍' => '῍', '῎' => '῎', '῏' => '῏', 'ῐ' => 'ῐ', 'ῑ' => 'ῑ', 'ῒ' => 'ῒ', 'ῖ' => 'ῖ', 'ῗ' => 'ῗ', 'Ῐ' => 'Ῐ', 'Ῑ' => 'Ῑ', 'Ὶ' => 'Ὶ', '῝' => '῝', '῞' => '῞', '῟' => '῟', 'ῠ' => 'ῠ', 'ῡ' => 'ῡ', 'ῢ' => 'ῢ', 'ῤ' => 'ῤ', 'ῥ' => 'ῥ', 'ῦ' => 'ῦ', 'ῧ' => 'ῧ', 'Ῠ' => 'Ῠ', 'Ῡ' => 'Ῡ', 'Ὺ' => 'Ὺ', 'Ῥ' => 'Ῥ', '῭' => '῭', 'ῲ' => 'ῲ', 'ῳ' => 'ῳ', 'ῴ' => 'ῴ', 'ῶ' => 'ῶ', 'ῷ' => 'ῷ', 'Ὸ' => 'Ὸ', 'Ὼ' => 'Ὼ', 'ῼ' => 'ῼ', '↚' => '↚', '↛' => '↛', '↮' => '↮', '⇍' => '⇍', '⇎' => '⇎', '⇏' => '⇏', '∄' => '∄', '∉' => '∉', '∌' => '∌', '∤' => '∤', '∦' => '∦', '≁' => '≁', '≄' => '≄', '≇' => '≇', '≉' => '≉', '≠' => '≠', '≢' => '≢', '≭' => '≭', '≮' => '≮', '≯' => '≯', '≰' => '≰', '≱' => '≱', '≴' => '≴', '≵' => '≵', '≸' => '≸', '≹' => '≹', '⊀' => '⊀', '⊁' => '⊁', '⊄' => '⊄', '⊅' => '⊅', '⊈' => '⊈', '⊉' => '⊉', '⊬' => '⊬', '⊭' => '⊭', '⊮' => '⊮', '⊯' => '⊯', '⋠' => '⋠', '⋡' => '⋡', '⋢' => '⋢', '⋣' => '⋣', '⋪' => '⋪', '⋫' => '⋫', '⋬' => '⋬', '⋭' => '⋭', 'が' => 'が', 'ぎ' => 'ぎ', 'ぐ' => 'ぐ', 'げ' => 'げ', 'ご' => 'ご', 'ざ' => 'ざ', 'じ' => 'じ', 'ず' => 'ず', 'ぜ' => 'ぜ', 'ぞ' => 'ぞ', 'だ' => 'だ', 'ぢ' => 'ぢ', 'づ' => 'づ', 'で' => 'で', 'ど' => 'ど', 'ば' => 'ば', 'ぱ' => 'ぱ', 'び' => 'び', 'ぴ' => 'ぴ', 'ぶ' => 'ぶ', 'ぷ' => 'ぷ', 'べ' => 'べ', 'ぺ' => 'ぺ', 'ぼ' => 'ぼ', 'ぽ' => 'ぽ', 'ゔ' => 'ゔ', 'ゞ' => 'ゞ', 'ガ' => 'ガ', 'ギ' => 'ギ', 'グ' => 'グ', 'ゲ' => 'ゲ', 'ゴ' => 'ゴ', 'ザ' => 'ザ', 'ジ' => 'ジ', 'ズ' => 'ズ', 'ゼ' => 'ゼ', 'ゾ' => 'ゾ', 'ダ' => 'ダ', 'ヂ' => 'ヂ', 'ヅ' => 'ヅ', 'デ' => 'デ', 'ド' => 'ド', 'バ' => 'バ', 'パ' => 'パ', 'ビ' => 'ビ', 'ピ' => 'ピ', 'ブ' => 'ブ', 'プ' => 'プ', 'ベ' => 'ベ', 'ペ' => 'ペ', 'ボ' => 'ボ', 'ポ' => 'ポ', 'ヴ' => 'ヴ', 'ヷ' => 'ヷ', 'ヸ' => 'ヸ', 'ヹ' => 'ヹ', 'ヺ' => 'ヺ', 'ヾ' => 'ヾ', '𑂚' => '𑂚', '𑂜' => '𑂜', '𑂫' => '𑂫', '𑄮' => '𑄮', '𑄯' => '𑄯', '𑍋' => '𑍋', '𑍌' => '𑍌', '𑒻' => '𑒻', '𑒼' => '𑒼', '𑒾' => '𑒾', '𑖺' => '𑖺', '𑖻' => '𑖻', '𑤸' => '𑤸');
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array('À' => 'À', 'Á' => 'Á', 'Â' => 'Â', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Å' => 'Å', 'Ç' => 'Ç', 'È' => 'È', 'É' => 'É', 'Ê' => 'Ê', 'Ë' => 'Ë', 'Ì' => 'Ì', 'Í' => 'Í', 'Î' => 'Î', 'Ï' => 'Ï', 'Ñ' => 'Ñ', 'Ò' => 'Ò', 'Ó' => 'Ó', 'Ô' => 'Ô', 'Õ' => 'Õ', 'Ö' => 'Ö', 'Ù' => 'Ù', 'Ú' => 'Ú', 'Û' => 'Û', 'Ü' => 'Ü', 'Ý' => 'Ý', 'à' => 'à', 'á' => 'á', 'â' => 'â', 'ã' => 'ã', 'ä' => 'ä', 'å' => 'å', 'ç' => 'ç', 'è' => 'è', 'é' => 'é', 'ê' => 'ê', 'ë' => 'ë', 'ì' => 'ì', 'í' => 'í', 'î' => 'î', 'ï' => 'ï', 'ñ' => 'ñ', 'ò' => 'ò', 'ó' => 'ó', 'ô' => 'ô', 'õ' => 'õ', 'ö' => 'ö', 'ù' => 'ù', 'ú' => 'ú', 'û' => 'û', 'ü' => 'ü', 'ý' => 'ý', 'ÿ' => 'ÿ', 'Ā' => 'Ā', 'ā' => 'ā', 'Ă' => 'Ă', 'ă' => 'ă', 'Ą' => 'Ą', 'ą' => 'ą', 'Ć' => 'Ć', 'ć' => 'ć', 'Ĉ' => 'Ĉ', 'ĉ' => 'ĉ', 'Ċ' => 'Ċ', 'ċ' => 'ċ', 'Č' => 'Č', 'č' => 'č', 'Ď' => 'Ď', 'ď' => 'ď', 'Ē' => 'Ē', 'ē' => 'ē', 'Ĕ' => 'Ĕ', 'ĕ' => 'ĕ', 'Ė' => 'Ė', 'ė' => 'ė', 'Ę' => 'Ę', 'ę' => 'ę', 'Ě' => 'Ě', 'ě' => 'ě', 'Ĝ' => 'Ĝ', 'ĝ' => 'ĝ', 'Ğ' => 'Ğ', 'ğ' => 'ğ', 'Ġ' => 'Ġ', 'ġ' => 'ġ', 'Ģ' => 'Ģ', 'ģ' => 'ģ', 'Ĥ' => 'Ĥ', 'ĥ' => 'ĥ', 'Ĩ' => 'Ĩ', 'ĩ' => 'ĩ', 'Ī' => 'Ī', 'ī' => 'ī', 'Ĭ' => 'Ĭ', 'ĭ' => 'ĭ', 'Į' => 'Į', 'į' => 'į', 'İ' => 'İ', 'Ĵ' => 'Ĵ', 'ĵ' => 'ĵ', 'Ķ' => 'Ķ', 'ķ' => 'ķ', 'Ĺ' => 'Ĺ', 'ĺ' => 'ĺ', 'Ļ' => 'Ļ', 'ļ' => 'ļ', 'Ľ' => 'Ľ', 'ľ' => 'ľ', 'Ń' => 'Ń', 'ń' => 'ń', 'Ņ' => 'Ņ', 'ņ' => 'ņ', 'Ň' => 'Ň', 'ň' => 'ň', 'Ō' => 'Ō', 'ō' => 'ō', 'Ŏ' => 'Ŏ', 'ŏ' => 'ŏ', 'Ő' => 'Ő', 'ő' => 'ő', 'Ŕ' => 'Ŕ', 'ŕ' => 'ŕ', 'Ŗ' => 'Ŗ', 'ŗ' => 'ŗ', 'Ř' => 'Ř', 'ř' => 'ř', 'Ś' => 'Ś', 'ś' => 'ś', 'Ŝ' => 'Ŝ', 'ŝ' => 'ŝ', 'Ş' => 'Ş', 'ş' => 'ş', 'Š' => 'Š', 'š' => 'š', 'Ţ' => 'Ţ', 'ţ' => 'ţ', 'Ť' => 'Ť', 'ť' => 'ť', 'Ũ' => 'Ũ', 'ũ' => 'ũ', 'Ū' => 'Ū', 'ū' => 'ū', 'Ŭ' => 'Ŭ', 'ŭ' => 'ŭ', 'Ů' => 'Ů', 'ů' => 'ů', 'Ű' => 'Ű', 'ű' => 'ű', 'Ų' => 'Ų', 'ų' => 'ų', 'Ŵ' => 'Ŵ', 'ŵ' => 'ŵ', 'Ŷ' => 'Ŷ', 'ŷ' => 'ŷ', 'Ÿ' => 'Ÿ', 'Ź' => 'Ź', 'ź' => 'ź', 'Ż' => 'Ż', 'ż' => 'ż', 'Ž' => 'Ž', 'ž' => 'ž', 'Ơ' => 'Ơ', 'ơ' => 'ơ', 'Ư' => 'Ư', 'ư' => 'ư', 'Ǎ' => 'Ǎ', 'ǎ' => 'ǎ', 'Ǐ' => 'Ǐ', 'ǐ' => 'ǐ', 'Ǒ' => 'Ǒ', 'ǒ' => 'ǒ', 'Ǔ' => 'Ǔ', 'ǔ' => 'ǔ', 'Ǖ' => 'Ǖ', 'ǖ' => 'ǖ', 'Ǘ' => 'Ǘ', 'ǘ' => 'ǘ', 'Ǚ' => 'Ǚ', 'ǚ' => 'ǚ', 'Ǜ' => 'Ǜ', 'ǜ' => 'ǜ', 'Ǟ' => 'Ǟ', 'ǟ' => 'ǟ', 'Ǡ' => 'Ǡ', 'ǡ' => 'ǡ', 'Ǣ' => 'Ǣ', 'ǣ' => 'ǣ', 'Ǧ' => 'Ǧ', 'ǧ' => 'ǧ', 'Ǩ' => 'Ǩ', 'ǩ' => 'ǩ', 'Ǫ' => 'Ǫ', 'ǫ' => 'ǫ', 'Ǭ' => 'Ǭ', 'ǭ' => 'ǭ', 'Ǯ' => 'Ǯ', 'ǯ' => 'ǯ', 'ǰ' => 'ǰ', 'Ǵ' => 'Ǵ', 'ǵ' => 'ǵ', 'Ǹ' => 'Ǹ', 'ǹ' => 'ǹ', 'Ǻ' => 'Ǻ', 'ǻ' => 'ǻ', 'Ǽ' => 'Ǽ', 'ǽ' => 'ǽ', 'Ǿ' => 'Ǿ', 'ǿ' => 'ǿ', 'Ȁ' => 'Ȁ', 'ȁ' => 'ȁ', 'Ȃ' => 'Ȃ', 'ȃ' => 'ȃ', 'Ȅ' => 'Ȅ', 'ȅ' => 'ȅ', 'Ȇ' => 'Ȇ', 'ȇ' => 'ȇ', 'Ȉ' => 'Ȉ', 'ȉ' => 'ȉ', 'Ȋ' => 'Ȋ', 'ȋ' => 'ȋ', 'Ȍ' => 'Ȍ', 'ȍ' => 'ȍ', 'Ȏ' => 'Ȏ', 'ȏ' => 'ȏ', 'Ȑ' => 'Ȑ', 'ȑ' => 'ȑ', 'Ȓ' => 'Ȓ', 'ȓ' => 'ȓ', 'Ȕ' => 'Ȕ', 'ȕ' => 'ȕ', 'Ȗ' => 'Ȗ', 'ȗ' => 'ȗ', 'Ș' => 'Ș', 'ș' => 'ș', 'Ț' => 'Ț', 'ț' => 'ț', 'Ȟ' => 'Ȟ', 'ȟ' => 'ȟ', 'Ȧ' => 'Ȧ', 'ȧ' => 'ȧ', 'Ȩ' => 'Ȩ', 'ȩ' => 'ȩ', 'Ȫ' => 'Ȫ', 'ȫ' => 'ȫ', 'Ȭ' => 'Ȭ', 'ȭ' => 'ȭ', 'Ȯ' => 'Ȯ', 'ȯ' => 'ȯ', 'Ȱ' => 'Ȱ', 'ȱ' => 'ȱ', 'Ȳ' => 'Ȳ', 'ȳ' => 'ȳ', '̀' => '̀', '́' => '́', '̓' => '̓', '̈́' => '̈́', 'ʹ' => 'ʹ', ';' => ';', '΅' => '΅', 'Ά' => 'Ά', '·' => '·', 'Έ' => 'Έ', 'Ή' => 'Ή', 'Ί' => 'Ί', 'Ό' => 'Ό', 'Ύ' => 'Ύ', 'Ώ' => 'Ώ', 'ΐ' => 'ΐ', 'Ϊ' => 'Ϊ', 'Ϋ' => 'Ϋ', 'ά' => 'ά', 'έ' => 'έ', 'ή' => 'ή', 'ί' => 'ί', 'ΰ' => 'ΰ', 'ϊ' => 'ϊ', 'ϋ' => 'ϋ', 'ό' => 'ό', 'ύ' => 'ύ', 'ώ' => 'ώ', 'ϓ' => 'ϓ', 'ϔ' => 'ϔ', 'Ѐ' => 'Ѐ', 'Ё' => 'Ё', 'Ѓ' => 'Ѓ', 'Ї' => 'Ї', 'Ќ' => 'Ќ', 'Ѝ' => 'Ѝ', 'Ў' => 'Ў', 'Й' => 'Й', 'й' => 'й', 'ѐ' => 'ѐ', 'ё' => 'ё', 'ѓ' => 'ѓ', 'ї' => 'ї', 'ќ' => 'ќ', 'ѝ' => 'ѝ', 'ў' => 'ў', 'Ѷ' => 'Ѷ', 'ѷ' => 'ѷ', 'Ӂ' => 'Ӂ', 'ӂ' => 'ӂ', 'Ӑ' => 'Ӑ', 'ӑ' => 'ӑ', 'Ӓ' => 'Ӓ', 'ӓ' => 'ӓ', 'Ӗ' => 'Ӗ', 'ӗ' => 'ӗ', 'Ӛ' => 'Ӛ', 'ӛ' => 'ӛ', 'Ӝ' => 'Ӝ', 'ӝ' => 'ӝ', 'Ӟ' => 'Ӟ', 'ӟ' => 'ӟ', 'Ӣ' => 'Ӣ', 'ӣ' => 'ӣ', 'Ӥ' => 'Ӥ', 'ӥ' => 'ӥ', 'Ӧ' => 'Ӧ', 'ӧ' => 'ӧ', 'Ӫ' => 'Ӫ', 'ӫ' => 'ӫ', 'Ӭ' => 'Ӭ', 'ӭ' => 'ӭ', 'Ӯ' => 'Ӯ', 'ӯ' => 'ӯ', 'Ӱ' => 'Ӱ', 'ӱ' => 'ӱ', 'Ӳ' => 'Ӳ', 'ӳ' => 'ӳ', 'Ӵ' => 'Ӵ', 'ӵ' => 'ӵ', 'Ӹ' => 'Ӹ', 'ӹ' => 'ӹ', 'آ' => 'آ', 'أ' => 'أ', 'ؤ' => 'ؤ', 'إ' => 'إ', 'ئ' => 'ئ', 'ۀ' => 'ۀ', 'ۂ' => 'ۂ', 'ۓ' => 'ۓ', 'ऩ' => 'ऩ', 'ऱ' => 'ऱ', 'ऴ' => 'ऴ', 'क़' => 'क़', 'ख़' => 'ख़', 'ग़' => 'ग़', 'ज़' => 'ज़', 'ड़' => 'ड़', 'ढ़' => 'ढ़', 'फ़' => 'फ़', 'य़' => 'य़', 'ো' => 'ো', 'ৌ' => 'ৌ', 'ড়' => 'ড়', 'ঢ়' => 'ঢ়', 'য়' => 'য়', 'ਲ਼' => 'ਲ਼', 'ਸ਼' => 'ਸ਼', 'ਖ਼' => 'ਖ਼', 'ਗ਼' => 'ਗ਼', 'ਜ਼' => 'ਜ਼', 'ਫ਼' => 'ਫ਼', 'ୈ' => 'ୈ', 'ୋ' => 'ୋ', 'ୌ' => 'ୌ', 'ଡ଼' => 'ଡ଼', 'ଢ଼' => 'ଢ଼', 'ஔ' => 'ஔ', 'ொ' => 'ொ', 'ோ' => 'ோ', 'ௌ' => 'ௌ', 'ై' => 'ై', 'ೀ' => 'ೀ', 'ೇ' => 'ೇ', 'ೈ' => 'ೈ', 'ೊ' => 'ೊ', 'ೋ' => 'ೋ', 'ൊ' => 'ൊ', 'ോ' => 'ോ', 'ൌ' => 'ൌ', 'ේ' => 'ේ', 'ො' => 'ො', 'ෝ' => 'ෝ', 'ෞ' => 'ෞ', 'གྷ' => 'གྷ', 'ཌྷ' => 'ཌྷ', 'དྷ' => 'དྷ', 'བྷ' => 'བྷ', 'ཛྷ' => 'ཛྷ', 'ཀྵ' => 'ཀྵ', 'ཱི' => 'ཱི', 'ཱུ' => 'ཱུ', 'ྲྀ' => 'ྲྀ', 'ླྀ' => 'ླྀ', 'ཱྀ' => 'ཱྀ', 'ྒྷ' => 'ྒྷ', 'ྜྷ' => 'ྜྷ', 'ྡྷ' => 'ྡྷ', 'ྦྷ' => 'ྦྷ', 'ྫྷ' => 'ྫྷ', 'ྐྵ' => 'ྐྵ', 'ဦ' => 'ဦ', 'ᬆ' => 'ᬆ', 'ᬈ' => 'ᬈ', 'ᬊ' => 'ᬊ', 'ᬌ' => 'ᬌ', 'ᬎ' => 'ᬎ', 'ᬒ' => 'ᬒ', 'ᬻ' => 'ᬻ', 'ᬽ' => 'ᬽ', 'ᭀ' => 'ᭀ', 'ᭁ' => 'ᭁ', 'ᭃ' => 'ᭃ', 'Ḁ' => 'Ḁ', 'ḁ' => 'ḁ', 'Ḃ' => 'Ḃ', 'ḃ' => 'ḃ', 'Ḅ' => 'Ḅ', 'ḅ' => 'ḅ', 'Ḇ' => 'Ḇ', 'ḇ' => 'ḇ', 'Ḉ' => 'Ḉ', 'ḉ' => 'ḉ', 'Ḋ' => 'Ḋ', 'ḋ' => 'ḋ', 'Ḍ' => 'Ḍ', 'ḍ' => 'ḍ', 'Ḏ' => 'Ḏ', 'ḏ' => 'ḏ', 'Ḑ' => 'Ḑ', 'ḑ' => 'ḑ', 'Ḓ' => 'Ḓ', 'ḓ' => 'ḓ', 'Ḕ' => 'Ḕ', 'ḕ' => 'ḕ', 'Ḗ' => 'Ḗ', 'ḗ' => 'ḗ', 'Ḙ' => 'Ḙ', 'ḙ' => 'ḙ', 'Ḛ' => 'Ḛ', 'ḛ' => 'ḛ', 'Ḝ' => 'Ḝ', 'ḝ' => 'ḝ', 'Ḟ' => 'Ḟ', 'ḟ' => 'ḟ', 'Ḡ' => 'Ḡ', 'ḡ' => 'ḡ', 'Ḣ' => 'Ḣ', 'ḣ' => 'ḣ', 'Ḥ' => 'Ḥ', 'ḥ' => 'ḥ', 'Ḧ' => 'Ḧ', 'ḧ' => 'ḧ', 'Ḩ' => 'Ḩ', 'ḩ' => 'ḩ', 'Ḫ' => 'Ḫ', 'ḫ' => 'ḫ', 'Ḭ' => 'Ḭ', 'ḭ' => 'ḭ', 'Ḯ' => 'Ḯ', 'ḯ' => 'ḯ', 'Ḱ' => 'Ḱ', 'ḱ' => 'ḱ', 'Ḳ' => 'Ḳ', 'ḳ' => 'ḳ', 'Ḵ' => 'Ḵ', 'ḵ' => 'ḵ', 'Ḷ' => 'Ḷ', 'ḷ' => 'ḷ', 'Ḹ' => 'Ḹ', 'ḹ' => 'ḹ', 'Ḻ' => 'Ḻ', 'ḻ' => 'ḻ', 'Ḽ' => 'Ḽ', 'ḽ' => 'ḽ', 'Ḿ' => 'Ḿ', 'ḿ' => 'ḿ', 'Ṁ' => 'Ṁ', 'ṁ' => 'ṁ', 'Ṃ' => 'Ṃ', 'ṃ' => 'ṃ', 'Ṅ' => 'Ṅ', 'ṅ' => 'ṅ', 'Ṇ' => 'Ṇ', 'ṇ' => 'ṇ', 'Ṉ' => 'Ṉ', 'ṉ' => 'ṉ', 'Ṋ' => 'Ṋ', 'ṋ' => 'ṋ', 'Ṍ' => 'Ṍ', 'ṍ' => 'ṍ', 'Ṏ' => 'Ṏ', 'ṏ' => 'ṏ', 'Ṑ' => 'Ṑ', 'ṑ' => 'ṑ', 'Ṓ' => 'Ṓ', 'ṓ' => 'ṓ', 'Ṕ' => 'Ṕ', 'ṕ' => 'ṕ', 'Ṗ' => 'Ṗ', 'ṗ' => 'ṗ', 'Ṙ' => 'Ṙ', 'ṙ' => 'ṙ', 'Ṛ' => 'Ṛ', 'ṛ' => 'ṛ', 'Ṝ' => 'Ṝ', 'ṝ' => 'ṝ', 'Ṟ' => 'Ṟ', 'ṟ' => 'ṟ', 'Ṡ' => 'Ṡ', 'ṡ' => 'ṡ', 'Ṣ' => 'Ṣ', 'ṣ' => 'ṣ', 'Ṥ' => 'Ṥ', 'ṥ' => 'ṥ', 'Ṧ' => 'Ṧ', 'ṧ' => 'ṧ', 'Ṩ' => 'Ṩ', 'ṩ' => 'ṩ', 'Ṫ' => 'Ṫ', 'ṫ' => 'ṫ', 'Ṭ' => 'Ṭ', 'ṭ' => 'ṭ', 'Ṯ' => 'Ṯ', 'ṯ' => 'ṯ', 'Ṱ' => 'Ṱ', 'ṱ' => 'ṱ', 'Ṳ' => 'Ṳ', 'ṳ' => 'ṳ', 'Ṵ' => 'Ṵ', 'ṵ' => 'ṵ', 'Ṷ' => 'Ṷ', 'ṷ' => 'ṷ', 'Ṹ' => 'Ṹ', 'ṹ' => 'ṹ', 'Ṻ' => 'Ṻ', 'ṻ' => 'ṻ', 'Ṽ' => 'Ṽ', 'ṽ' => 'ṽ', 'Ṿ' => 'Ṿ', 'ṿ' => 'ṿ', 'Ẁ' => 'Ẁ', 'ẁ' => 'ẁ', 'Ẃ' => 'Ẃ', 'ẃ' => 'ẃ', 'Ẅ' => 'Ẅ', 'ẅ' => 'ẅ', 'Ẇ' => 'Ẇ', 'ẇ' => 'ẇ', 'Ẉ' => 'Ẉ', 'ẉ' => 'ẉ', 'Ẋ' => 'Ẋ', 'ẋ' => 'ẋ', 'Ẍ' => 'Ẍ', 'ẍ' => 'ẍ', 'Ẏ' => 'Ẏ', 'ẏ' => 'ẏ', 'Ẑ' => 'Ẑ', 'ẑ' => 'ẑ', 'Ẓ' => 'Ẓ', 'ẓ' => 'ẓ', 'Ẕ' => 'Ẕ', 'ẕ' => 'ẕ', 'ẖ' => 'ẖ', 'ẗ' => 'ẗ', 'ẘ' => 'ẘ', 'ẙ' => 'ẙ', 'ẛ' => 'ẛ', 'Ạ' => 'Ạ', 'ạ' => 'ạ', 'Ả' => 'Ả', 'ả' => 'ả', 'Ấ' => 'Ấ', 'ấ' => 'ấ', 'Ầ' => 'Ầ', 'ầ' => 'ầ', 'Ẩ' => 'Ẩ', 'ẩ' => 'ẩ', 'Ẫ' => 'Ẫ', 'ẫ' => 'ẫ', 'Ậ' => 'Ậ', 'ậ' => 'ậ', 'Ắ' => 'Ắ', 'ắ' => 'ắ', 'Ằ' => 'Ằ', 'ằ' => 'ằ', 'Ẳ' => 'Ẳ', 'ẳ' => 'ẳ', 'Ẵ' => 'Ẵ', 'ẵ' => 'ẵ', 'Ặ' => 'Ặ', 'ặ' => 'ặ', 'Ẹ' => 'Ẹ', 'ẹ' => 'ẹ', 'Ẻ' => 'Ẻ', 'ẻ' => 'ẻ', 'Ẽ' => 'Ẽ', 'ẽ' => 'ẽ', 'Ế' => 'Ế', 'ế' => 'ế', 'Ề' => 'Ề', 'ề' => 'ề', 'Ể' => 'Ể', 'ể' => 'ể', 'Ễ' => 'Ễ', 'ễ' => 'ễ', 'Ệ' => 'Ệ', 'ệ' => 'ệ', 'Ỉ' => 'Ỉ', 'ỉ' => 'ỉ', 'Ị' => 'Ị', 'ị' => 'ị', 'Ọ' => 'Ọ', 'ọ' => 'ọ', 'Ỏ' => 'Ỏ', 'ỏ' => 'ỏ', 'Ố' => 'Ố', 'ố' => 'ố', 'Ồ' => 'Ồ', 'ồ' => 'ồ', 'Ổ' => 'Ổ', 'ổ' => 'ổ', 'Ỗ' => 'Ỗ', 'ỗ' => 'ỗ', 'Ộ' => 'Ộ', 'ộ' => 'ộ', 'Ớ' => 'Ớ', 'ớ' => 'ớ', 'Ờ' => 'Ờ', 'ờ' => 'ờ', 'Ở' => 'Ở', 'ở' => 'ở', 'Ỡ' => 'Ỡ', 'ỡ' => 'ỡ', 'Ợ' => 'Ợ', 'ợ' => 'ợ', 'Ụ' => 'Ụ', 'ụ' => 'ụ', 'Ủ' => 'Ủ', 'ủ' => 'ủ', 'Ứ' => 'Ứ', 'ứ' => 'ứ', 'Ừ' => 'Ừ', 'ừ' => 'ừ', 'Ử' => 'Ử', 'ử' => 'ử', 'Ữ' => 'Ữ', 'ữ' => 'ữ', 'Ự' => 'Ự', 'ự' => 'ự', 'Ỳ' => 'Ỳ', 'ỳ' => 'ỳ', 'Ỵ' => 'Ỵ', 'ỵ' => 'ỵ', 'Ỷ' => 'Ỷ', 'ỷ' => 'ỷ', 'Ỹ' => 'Ỹ', 'ỹ' => 'ỹ', 'ἀ' => 'ἀ', 'ἁ' => 'ἁ', 'ἂ' => 'ἂ', 'ἃ' => 'ἃ', 'ἄ' => 'ἄ', 'ἅ' => 'ἅ', 'ἆ' => 'ἆ', 'ἇ' => 'ἇ', 'Ἀ' => 'Ἀ', 'Ἁ' => 'Ἁ', 'Ἂ' => 'Ἂ', 'Ἃ' => 'Ἃ', 'Ἄ' => 'Ἄ', 'Ἅ' => 'Ἅ', 'Ἆ' => 'Ἆ', 'Ἇ' => 'Ἇ', 'ἐ' => 'ἐ', 'ἑ' => 'ἑ', 'ἒ' => 'ἒ', 'ἓ' => 'ἓ', 'ἔ' => 'ἔ', 'ἕ' => 'ἕ', 'Ἐ' => 'Ἐ', 'Ἑ' => 'Ἑ', 'Ἒ' => 'Ἒ', 'Ἓ' => 'Ἓ', 'Ἔ' => 'Ἔ', 'Ἕ' => 'Ἕ', 'ἠ' => 'ἠ', 'ἡ' => 'ἡ', 'ἢ' => 'ἢ', 'ἣ' => 'ἣ', 'ἤ' => 'ἤ', 'ἥ' => 'ἥ', 'ἦ' => 'ἦ', 'ἧ' => 'ἧ', 'Ἠ' => 'Ἠ', 'Ἡ' => 'Ἡ', 'Ἢ' => 'Ἢ', 'Ἣ' => 'Ἣ', 'Ἤ' => 'Ἤ', 'Ἥ' => 'Ἥ', 'Ἦ' => 'Ἦ', 'Ἧ' => 'Ἧ', 'ἰ' => 'ἰ', 'ἱ' => 'ἱ', 'ἲ' => 'ἲ', 'ἳ' => 'ἳ', 'ἴ' => 'ἴ', 'ἵ' => 'ἵ', 'ἶ' => 'ἶ', 'ἷ' => 'ἷ', 'Ἰ' => 'Ἰ', 'Ἱ' => 'Ἱ', 'Ἲ' => 'Ἲ', 'Ἳ' => 'Ἳ', 'Ἴ' => 'Ἴ', 'Ἵ' => 'Ἵ', 'Ἶ' => 'Ἶ', 'Ἷ' => 'Ἷ', 'ὀ' => 'ὀ', 'ὁ' => 'ὁ', 'ὂ' => 'ὂ', 'ὃ' => 'ὃ', 'ὄ' => 'ὄ', 'ὅ' => 'ὅ', 'Ὀ' => 'Ὀ', 'Ὁ' => 'Ὁ', 'Ὂ' => 'Ὂ', 'Ὃ' => 'Ὃ', 'Ὄ' => 'Ὄ', 'Ὅ' => 'Ὅ', 'ὐ' => 'ὐ', 'ὑ' => 'ὑ', 'ὒ' => 'ὒ', 'ὓ' => 'ὓ', 'ὔ' => 'ὔ', 'ὕ' => 'ὕ', 'ὖ' => 'ὖ', 'ὗ' => 'ὗ', 'Ὑ' => 'Ὑ', 'Ὓ' => 'Ὓ', 'Ὕ' => 'Ὕ', 'Ὗ' => 'Ὗ', 'ὠ' => 'ὠ', 'ὡ' => 'ὡ', 'ὢ' => 'ὢ', 'ὣ' => 'ὣ', 'ὤ' => 'ὤ', 'ὥ' => 'ὥ', 'ὦ' => 'ὦ', 'ὧ' => 'ὧ', 'Ὠ' => 'Ὠ', 'Ὡ' => 'Ὡ', 'Ὢ' => 'Ὢ', 'Ὣ' => 'Ὣ', 'Ὤ' => 'Ὤ', 'Ὥ' => 'Ὥ', 'Ὦ' => 'Ὦ', 'Ὧ' => 'Ὧ', 'ὰ' => 'ὰ', 'ά' => 'ά', 'ὲ' => 'ὲ', 'έ' => 'έ', 'ὴ' => 'ὴ', 'ή' => 'ή', 'ὶ' => 'ὶ', 'ί' => 'ί', 'ὸ' => 'ὸ', 'ό' => 'ό', 'ὺ' => 'ὺ', 'ύ' => 'ύ', 'ὼ' => 'ὼ', 'ώ' => 'ώ', 'ᾀ' => 'ᾀ', 'ᾁ' => 'ᾁ', 'ᾂ' => 'ᾂ', 'ᾃ' => 'ᾃ', 'ᾄ' => 'ᾄ', 'ᾅ' => 'ᾅ', 'ᾆ' => 'ᾆ', 'ᾇ' => 'ᾇ', 'ᾈ' => 'ᾈ', 'ᾉ' => 'ᾉ', 'ᾊ' => 'ᾊ', 'ᾋ' => 'ᾋ', 'ᾌ' => 'ᾌ', 'ᾍ' => 'ᾍ', 'ᾎ' => 'ᾎ', 'ᾏ' => 'ᾏ', 'ᾐ' => 'ᾐ', 'ᾑ' => 'ᾑ', 'ᾒ' => 'ᾒ', 'ᾓ' => 'ᾓ', 'ᾔ' => 'ᾔ', 'ᾕ' => 'ᾕ', 'ᾖ' => 'ᾖ', 'ᾗ' => 'ᾗ', 'ᾘ' => 'ᾘ', 'ᾙ' => 'ᾙ', 'ᾚ' => 'ᾚ', 'ᾛ' => 'ᾛ', 'ᾜ' => 'ᾜ', 'ᾝ' => 'ᾝ', 'ᾞ' => 'ᾞ', 'ᾟ' => 'ᾟ', 'ᾠ' => 'ᾠ', 'ᾡ' => 'ᾡ', 'ᾢ' => 'ᾢ', 'ᾣ' => 'ᾣ', 'ᾤ' => 'ᾤ', 'ᾥ' => 'ᾥ', 'ᾦ' => 'ᾦ', 'ᾧ' => 'ᾧ', 'ᾨ' => 'ᾨ', 'ᾩ' => 'ᾩ', 'ᾪ' => 'ᾪ', 'ᾫ' => 'ᾫ', 'ᾬ' => 'ᾬ', 'ᾭ' => 'ᾭ', 'ᾮ' => 'ᾮ', 'ᾯ' => 'ᾯ', 'ᾰ' => 'ᾰ', 'ᾱ' => 'ᾱ', 'ᾲ' => 'ᾲ', 'ᾳ' => 'ᾳ', 'ᾴ' => 'ᾴ', 'ᾶ' => 'ᾶ', 'ᾷ' => 'ᾷ', 'Ᾰ' => 'Ᾰ', 'Ᾱ' => 'Ᾱ', 'Ὰ' => 'Ὰ', 'Ά' => 'Ά', 'ᾼ' => 'ᾼ', 'ι' => 'ι', '῁' => '῁', 'ῂ' => 'ῂ', 'ῃ' => 'ῃ', 'ῄ' => 'ῄ', 'ῆ' => 'ῆ', 'ῇ' => 'ῇ', 'Ὲ' => 'Ὲ', 'Έ' => 'Έ', 'Ὴ' => 'Ὴ', 'Ή' => 'Ή', 'ῌ' => 'ῌ', '῍' => '῍', '῎' => '῎', '῏' => '῏', 'ῐ' => 'ῐ', 'ῑ' => 'ῑ', 'ῒ' => 'ῒ', 'ΐ' => 'ΐ', 'ῖ' => 'ῖ', 'ῗ' => 'ῗ', 'Ῐ' => 'Ῐ', 'Ῑ' => 'Ῑ', 'Ὶ' => 'Ὶ', 'Ί' => 'Ί', '῝' => '῝', '῞' => '῞', '῟' => '῟', 'ῠ' => 'ῠ', 'ῡ' => 'ῡ', 'ῢ' => 'ῢ', 'ΰ' => 'ΰ', 'ῤ' => 'ῤ', 'ῥ' => 'ῥ', 'ῦ' => 'ῦ', 'ῧ' => 'ῧ', 'Ῠ' => 'Ῠ', 'Ῡ' => 'Ῡ', 'Ὺ' => 'Ὺ', 'Ύ' => 'Ύ', 'Ῥ' => 'Ῥ', '῭' => '῭', '΅' => '΅', '`' => '`', 'ῲ' => 'ῲ', 'ῳ' => 'ῳ', 'ῴ' => 'ῴ', 'ῶ' => 'ῶ', 'ῷ' => 'ῷ', 'Ὸ' => 'Ὸ', 'Ό' => 'Ό', 'Ὼ' => 'Ὼ', 'Ώ' => 'Ώ', 'ῼ' => 'ῼ', '´' => '´', ' ' => ' ', ' ' => ' ', 'Ω' => 'Ω', 'K' => 'K', 'Å' => 'Å', '↚' => '↚', '↛' => '↛', '↮' => '↮', '⇍' => '⇍', '⇎' => '⇎', '⇏' => '⇏', '∄' => '∄', '∉' => '∉', '∌' => '∌', '∤' => '∤', '∦' => '∦', '≁' => '≁', '≄' => '≄', '≇' => '≇', '≉' => '≉', '≠' => '≠', '≢' => '≢', '≭' => '≭', '≮' => '≮', '≯' => '≯', '≰' => '≰', '≱' => '≱', '≴' => '≴', '≵' => '≵', '≸' => '≸', '≹' => '≹', '⊀' => '⊀', '⊁' => '⊁', '⊄' => '⊄', '⊅' => '⊅', '⊈' => '⊈', '⊉' => '⊉', '⊬' => '⊬', '⊭' => '⊭', '⊮' => '⊮', '⊯' => '⊯', '⋠' => '⋠', '⋡' => '⋡', '⋢' => '⋢', '⋣' => '⋣', '⋪' => '⋪', '⋫' => '⋫', '⋬' => '⋬', '⋭' => '⋭', '〈' => '〈', '〉' => '〉', '⫝̸' => '⫝̸', 'が' => 'が', 'ぎ' => 'ぎ', 'ぐ' => 'ぐ', 'げ' => 'げ', 'ご' => 'ご', 'ざ' => 'ざ', 'じ' => 'じ', 'ず' => 'ず', 'ぜ' => 'ぜ', 'ぞ' => 'ぞ', 'だ' => 'だ', 'ぢ' => 'ぢ', 'づ' => 'づ', 'で' => 'で', 'ど' => 'ど', 'ば' => 'ば', 'ぱ' => 'ぱ', 'び' => 'び', 'ぴ' => 'ぴ', 'ぶ' => 'ぶ', 'ぷ' => 'ぷ', 'べ' => 'べ', 'ぺ' => 'ぺ', 'ぼ' => 'ぼ', 'ぽ' => 'ぽ', 'ゔ' => 'ゔ', 'ゞ' => 'ゞ', 'ガ' => 'ガ', 'ギ' => 'ギ', 'グ' => 'グ', 'ゲ' => 'ゲ', 'ゴ' => 'ゴ', 'ザ' => 'ザ', 'ジ' => 'ジ', 'ズ' => 'ズ', 'ゼ' => 'ゼ', 'ゾ' => 'ゾ', 'ダ' => 'ダ', 'ヂ' => 'ヂ', 'ヅ' => 'ヅ', 'デ' => 'デ', 'ド' => 'ド', 'バ' => 'バ', 'パ' => 'パ', 'ビ' => 'ビ', 'ピ' => 'ピ', 'ブ' => 'ブ', 'プ' => 'プ', 'ベ' => 'ベ', 'ペ' => 'ペ', 'ボ' => 'ボ', 'ポ' => 'ポ', 'ヴ' => 'ヴ', 'ヷ' => 'ヷ', 'ヸ' => 'ヸ', 'ヹ' => 'ヹ', 'ヺ' => 'ヺ', 'ヾ' => 'ヾ', '豈' => '豈', '更' => '更', '車' => '車', '賈' => '賈', '滑' => '滑', '串' => '串', '句' => '句', '龜' => '龜', '龜' => '龜', '契' => '契', '金' => '金', '喇' => '喇', '奈' => '奈', '懶' => '懶', '癩' => '癩', '羅' => '羅', '蘿' => '蘿', '螺' => '螺', '裸' => '裸', '邏' => '邏', '樂' => '樂', '洛' => '洛', '烙' => '烙', '珞' => '珞', '落' => '落', '酪' => '酪', '駱' => '駱', '亂' => '亂', '卵' => '卵', '欄' => '欄', '爛' => '爛', '蘭' => '蘭', '鸞' => '鸞', '嵐' => '嵐', '濫' => '濫', '藍' => '藍', '襤' => '襤', '拉' => '拉', '臘' => '臘', '蠟' => '蠟', '廊' => '廊', '朗' => '朗', '浪' => '浪', '狼' => '狼', '郎' => '郎', '來' => '來', '冷' => '冷', '勞' => '勞', '擄' => '擄', '櫓' => '櫓', '爐' => '爐', '盧' => '盧', '老' => '老', '蘆' => '蘆', '虜' => '虜', '路' => '路', '露' => '露', '魯' => '魯', '鷺' => '鷺', '碌' => '碌', '祿' => '祿', '綠' => '綠', '菉' => '菉', '錄' => '錄', '鹿' => '鹿', '論' => '論', '壟' => '壟', '弄' => '弄', '籠' => '籠', '聾' => '聾', '牢' => '牢', '磊' => '磊', '賂' => '賂', '雷' => '雷', '壘' => '壘', '屢' => '屢', '樓' => '樓', '淚' => '淚', '漏' => '漏', '累' => '累', '縷' => '縷', '陋' => '陋', '勒' => '勒', '肋' => '肋', '凜' => '凜', '凌' => '凌', '稜' => '稜', '綾' => '綾', '菱' => '菱', '陵' => '陵', '讀' => '讀', '拏' => '拏', '樂' => '樂', '諾' => '諾', '丹' => '丹', '寧' => '寧', '怒' => '怒', '率' => '率', '異' => '異', '北' => '北', '磻' => '磻', '便' => '便', '復' => '復', '不' => '不', '泌' => '泌', '數' => '數', '索' => '索', '參' => '參', '塞' => '塞', '省' => '省', '葉' => '葉', '說' => '說', '殺' => '殺', '辰' => '辰', '沈' => '沈', '拾' => '拾', '若' => '若', '掠' => '掠', '略' => '略', '亮' => '亮', '兩' => '兩', '凉' => '凉', '梁' => '梁', '糧' => '糧', '良' => '良', '諒' => '諒', '量' => '量', '勵' => '勵', '呂' => '呂', '女' => '女', '廬' => '廬', '旅' => '旅', '濾' => '濾', '礪' => '礪', '閭' => '閭', '驪' => '驪', '麗' => '麗', '黎' => '黎', '力' => '力', '曆' => '曆', '歷' => '歷', '轢' => '轢', '年' => '年', '憐' => '憐', '戀' => '戀', '撚' => '撚', '漣' => '漣', '煉' => '煉', '璉' => '璉', '秊' => '秊', '練' => '練', '聯' => '聯', '輦' => '輦', '蓮' => '蓮', '連' => '連', '鍊' => '鍊', '列' => '列', '劣' => '劣', '咽' => '咽', '烈' => '烈', '裂' => '裂', '說' => '說', '廉' => '廉', '念' => '念', '捻' => '捻', '殮' => '殮', '簾' => '簾', '獵' => '獵', '令' => '令', '囹' => '囹', '寧' => '寧', '嶺' => '嶺', '怜' => '怜', '玲' => '玲', '瑩' => '瑩', '羚' => '羚', '聆' => '聆', '鈴' => '鈴', '零' => '零', '靈' => '靈', '領' => '領', '例' => '例', '禮' => '禮', '醴' => '醴', '隸' => '隸', '惡' => '惡', '了' => '了', '僚' => '僚', '寮' => '寮', '尿' => '尿', '料' => '料', '樂' => '樂', '燎' => '燎', '療' => '療', '蓼' => '蓼', '遼' => '遼', '龍' => '龍', '暈' => '暈', '阮' => '阮', '劉' => '劉', '杻' => '杻', '柳' => '柳', '流' => '流', '溜' => '溜', '琉' => '琉', '留' => '留', '硫' => '硫', '紐' => '紐', '類' => '類', '六' => '六', '戮' => '戮', '陸' => '陸', '倫' => '倫', '崙' => '崙', '淪' => '淪', '輪' => '輪', '律' => '律', '慄' => '慄', '栗' => '栗', '率' => '率', '隆' => '隆', '利' => '利', '吏' => '吏', '履' => '履', '易' => '易', '李' => '李', '梨' => '梨', '泥' => '泥', '理' => '理', '痢' => '痢', '罹' => '罹', '裏' => '裏', '裡' => '裡', '里' => '里', '離' => '離', '匿' => '匿', '溺' => '溺', '吝' => '吝', '燐' => '燐', '璘' => '璘', '藺' => '藺', '隣' => '隣', '鱗' => '鱗', '麟' => '麟', '林' => '林', '淋' => '淋', '臨' => '臨', '立' => '立', '笠' => '笠', '粒' => '粒', '狀' => '狀', '炙' => '炙', '識' => '識', '什' => '什', '茶' => '茶', '刺' => '刺', '切' => '切', '度' => '度', '拓' => '拓', '糖' => '糖', '宅' => '宅', '洞' => '洞', '暴' => '暴', '輻' => '輻', '行' => '行', '降' => '降', '見' => '見', '廓' => '廓', '兀' => '兀', '嗀' => '嗀', '塚' => '塚', '晴' => '晴', '凞' => '凞', '猪' => '猪', '益' => '益', '礼' => '礼', '神' => '神', '祥' => '祥', '福' => '福', '靖' => '靖', '精' => '精', '羽' => '羽', '蘒' => '蘒', '諸' => '諸', '逸' => '逸', '都' => '都', '飯' => '飯', '飼' => '飼', '館' => '館', '鶴' => '鶴', '郞' => '郞', '隷' => '隷', '侮' => '侮', '僧' => '僧', '免' => '免', '勉' => '勉', '勤' => '勤', '卑' => '卑', '喝' => '喝', '嘆' => '嘆', '器' => '器', '塀' => '塀', '墨' => '墨', '層' => '層', '屮' => '屮', '悔' => '悔', '慨' => '慨', '憎' => '憎', '懲' => '懲', '敏' => '敏', '既' => '既', '暑' => '暑', '梅' => '梅', '海' => '海', '渚' => '渚', '漢' => '漢', '煮' => '煮', '爫' => '爫', '琢' => '琢', '碑' => '碑', '社' => '社', '祉' => '祉', '祈' => '祈', '祐' => '祐', '祖' => '祖', '祝' => '祝', '禍' => '禍', '禎' => '禎', '穀' => '穀', '突' => '突', '節' => '節', '練' => '練', '縉' => '縉', '繁' => '繁', '署' => '署', '者' => '者', '臭' => '臭', '艹' => '艹', '艹' => '艹', '著' => '著', '褐' => '褐', '視' => '視', '謁' => '謁', '謹' => '謹', '賓' => '賓', '贈' => '贈', '辶' => '辶', '逸' => '逸', '難' => '難', '響' => '響', '頻' => '頻', '恵' => '恵', '𤋮' => '𤋮', '舘' => '舘', '並' => '並', '况' => '况', '全' => '全', '侀' => '侀', '充' => '充', '冀' => '冀', '勇' => '勇', '勺' => '勺', '喝' => '喝', '啕' => '啕', '喙' => '喙', '嗢' => '嗢', '塚' => '塚', '墳' => '墳', '奄' => '奄', '奔' => '奔', '婢' => '婢', '嬨' => '嬨', '廒' => '廒', '廙' => '廙', '彩' => '彩', '徭' => '徭', '惘' => '惘', '慎' => '慎', '愈' => '愈', '憎' => '憎', '慠' => '慠', '懲' => '懲', '戴' => '戴', '揄' => '揄', '搜' => '搜', '摒' => '摒', '敖' => '敖', '晴' => '晴', '朗' => '朗', '望' => '望', '杖' => '杖', '歹' => '歹', '殺' => '殺', '流' => '流', '滛' => '滛', '滋' => '滋', '漢' => '漢', '瀞' => '瀞', '煮' => '煮', '瞧' => '瞧', '爵' => '爵', '犯' => '犯', '猪' => '猪', '瑱' => '瑱', '甆' => '甆', '画' => '画', '瘝' => '瘝', '瘟' => '瘟', '益' => '益', '盛' => '盛', '直' => '直', '睊' => '睊', '着' => '着', '磌' => '磌', '窱' => '窱', '節' => '節', '类' => '类', '絛' => '絛', '練' => '練', '缾' => '缾', '者' => '者', '荒' => '荒', '華' => '華', '蝹' => '蝹', '襁' => '襁', '覆' => '覆', '視' => '視', '調' => '調', '諸' => '諸', '請' => '請', '謁' => '謁', '諾' => '諾', '諭' => '諭', '謹' => '謹', '變' => '變', '贈' => '贈', '輸' => '輸', '遲' => '遲', '醙' => '醙', '鉶' => '鉶', '陼' => '陼', '難' => '難', '靖' => '靖', '韛' => '韛', '響' => '響', '頋' => '頋', '頻' => '頻', '鬒' => '鬒', '龜' => '龜', '𢡊' => '𢡊', '𢡄' => '𢡄', '𣏕' => '𣏕', '㮝' => '㮝', '䀘' => '䀘', '䀹' => '䀹', '𥉉' => '𥉉', '𥳐' => '𥳐', '𧻓' => '𧻓', '齃' => '齃', '龎' => '龎', 'יִ' => 'יִ', 'ײַ' => 'ײַ', 'שׁ' => 'שׁ', 'שׂ' => 'שׂ', 'שּׁ' => 'שּׁ', 'שּׂ' => 'שּׂ', 'אַ' => 'אַ', 'אָ' => 'אָ', 'אּ' => 'אּ', 'בּ' => 'בּ', 'גּ' => 'גּ', 'דּ' => 'דּ', 'הּ' => 'הּ', 'וּ' => 'וּ', 'זּ' => 'זּ', 'טּ' => 'טּ', 'יּ' => 'יּ', 'ךּ' => 'ךּ', 'כּ' => 'כּ', 'לּ' => 'לּ', 'מּ' => 'מּ', 'נּ' => 'נּ', 'סּ' => 'סּ', 'ףּ' => 'ףּ', 'פּ' => 'פּ', 'צּ' => 'צּ', 'קּ' => 'קּ', 'רּ' => 'רּ', 'שּ' => 'שּ', 'תּ' => 'תּ', 'וֹ' => 'וֹ', 'בֿ' => 'בֿ', 'כֿ' => 'כֿ', 'פֿ' => 'פֿ', '𑂚' => '𑂚', '𑂜' => '𑂜', '𑂫' => '𑂫', '𑄮' => '𑄮', '𑄯' => '𑄯', '𑍋' => '𑍋', '𑍌' => '𑍌', '𑒻' => '𑒻', '𑒼' => '𑒼', '𑒾' => '𑒾', '𑖺' => '𑖺', '𑖻' => '𑖻', '𑤸' => '𑤸', '𝅗𝅥' => '𝅗𝅥', '𝅘𝅥' => '𝅘𝅥', '𝅘𝅥𝅮' => '𝅘𝅥𝅮', '𝅘𝅥𝅯' => '𝅘𝅥𝅯', '𝅘𝅥𝅰' => '𝅘𝅥𝅰', '𝅘𝅥𝅱' => '𝅘𝅥𝅱', '𝅘𝅥𝅲' => '𝅘𝅥𝅲', '𝆹𝅥' => '𝆹𝅥', '𝆺𝅥' => '𝆺𝅥', '𝆹𝅥𝅮' => '𝆹𝅥𝅮', '𝆺𝅥𝅮' => '𝆺𝅥𝅮', '𝆹𝅥𝅯' => '𝆹𝅥𝅯', '𝆺𝅥𝅯' => '𝆺𝅥𝅯', '丽' => '丽', '丸' => '丸', '乁' => '乁', '𠄢' => '𠄢', '你' => '你', '侮' => '侮', '侻' => '侻', '倂' => '倂', '偺' => '偺', '備' => '備', '僧' => '僧', '像' => '像', '㒞' => '㒞', '𠘺' => '𠘺', '免' => '免', '兔' => '兔', '兤' => '兤', '具' => '具', '𠔜' => '𠔜', '㒹' => '㒹', '內' => '內', '再' => '再', '𠕋' => '𠕋', '冗' => '冗', '冤' => '冤', '仌' => '仌', '冬' => '冬', '况' => '况', '𩇟' => '𩇟', '凵' => '凵', '刃' => '刃', '㓟' => '㓟', '刻' => '刻', '剆' => '剆', '割' => '割', '剷' => '剷', '㔕' => '㔕', '勇' => '勇', '勉' => '勉', '勤' => '勤', '勺' => '勺', '包' => '包', '匆' => '匆', '北' => '北', '卉' => '卉', '卑' => '卑', '博' => '博', '即' => '即', '卽' => '卽', '卿' => '卿', '卿' => '卿', '卿' => '卿', '𠨬' => '𠨬', '灰' => '灰', '及' => '及', '叟' => '叟', '𠭣' => '𠭣', '叫' => '叫', '叱' => '叱', '吆' => '吆', '咞' => '咞', '吸' => '吸', '呈' => '呈', '周' => '周', '咢' => '咢', '哶' => '哶', '唐' => '唐', '啓' => '啓', '啣' => '啣', '善' => '善', '善' => '善', '喙' => '喙', '喫' => '喫', '喳' => '喳', '嗂' => '嗂', '圖' => '圖', '嘆' => '嘆', '圗' => '圗', '噑' => '噑', '噴' => '噴', '切' => '切', '壮' => '壮', '城' => '城', '埴' => '埴', '堍' => '堍', '型' => '型', '堲' => '堲', '報' => '報', '墬' => '墬', '𡓤' => '𡓤', '売' => '売', '壷' => '壷', '夆' => '夆', '多' => '多', '夢' => '夢', '奢' => '奢', '𡚨' => '𡚨', '𡛪' => '𡛪', '姬' => '姬', '娛' => '娛', '娧' => '娧', '姘' => '姘', '婦' => '婦', '㛮' => '㛮', '㛼' => '㛼', '嬈' => '嬈', '嬾' => '嬾', '嬾' => '嬾', '𡧈' => '𡧈', '寃' => '寃', '寘' => '寘', '寧' => '寧', '寳' => '寳', '𡬘' => '𡬘', '寿' => '寿', '将' => '将', '当' => '当', '尢' => '尢', '㞁' => '㞁', '屠' => '屠', '屮' => '屮', '峀' => '峀', '岍' => '岍', '𡷤' => '𡷤', '嵃' => '嵃', '𡷦' => '𡷦', '嵮' => '嵮', '嵫' => '嵫', '嵼' => '嵼', '巡' => '巡', '巢' => '巢', '㠯' => '㠯', '巽' => '巽', '帨' => '帨', '帽' => '帽', '幩' => '幩', '㡢' => '㡢', '𢆃' => '𢆃', '㡼' => '㡼', '庰' => '庰', '庳' => '庳', '庶' => '庶', '廊' => '廊', '𪎒' => '𪎒', '廾' => '廾', '𢌱' => '𢌱', '𢌱' => '𢌱', '舁' => '舁', '弢' => '弢', '弢' => '弢', '㣇' => '㣇', '𣊸' => '𣊸', '𦇚' => '𦇚', '形' => '形', '彫' => '彫', '㣣' => '㣣', '徚' => '徚', '忍' => '忍', '志' => '志', '忹' => '忹', '悁' => '悁', '㤺' => '㤺', '㤜' => '㤜', '悔' => '悔', '𢛔' => '𢛔', '惇' => '惇', '慈' => '慈', '慌' => '慌', '慎' => '慎', '慌' => '慌', '慺' => '慺', '憎' => '憎', '憲' => '憲', '憤' => '憤', '憯' => '憯', '懞' => '懞', '懲' => '懲', '懶' => '懶', '成' => '成', '戛' => '戛', '扝' => '扝', '抱' => '抱', '拔' => '拔', '捐' => '捐', '𢬌' => '𢬌', '挽' => '挽', '拼' => '拼', '捨' => '捨', '掃' => '掃', '揤' => '揤', '𢯱' => '𢯱', '搢' => '搢', '揅' => '揅', '掩' => '掩', '㨮' => '㨮', '摩' => '摩', '摾' => '摾', '撝' => '撝', '摷' => '摷', '㩬' => '㩬', '敏' => '敏', '敬' => '敬', '𣀊' => '𣀊', '旣' => '旣', '書' => '書', '晉' => '晉', '㬙' => '㬙', '暑' => '暑', '㬈' => '㬈', '㫤' => '㫤', '冒' => '冒', '冕' => '冕', '最' => '最', '暜' => '暜', '肭' => '肭', '䏙' => '䏙', '朗' => '朗', '望' => '望', '朡' => '朡', '杞' => '杞', '杓' => '杓', '𣏃' => '𣏃', '㭉' => '㭉', '柺' => '柺', '枅' => '枅', '桒' => '桒', '梅' => '梅', '𣑭' => '𣑭', '梎' => '梎', '栟' => '栟', '椔' => '椔', '㮝' => '㮝', '楂' => '楂', '榣' => '榣', '槪' => '槪', '檨' => '檨', '𣚣' => '𣚣', '櫛' => '櫛', '㰘' => '㰘', '次' => '次', '𣢧' => '𣢧', '歔' => '歔', '㱎' => '㱎', '歲' => '歲', '殟' => '殟', '殺' => '殺', '殻' => '殻', '𣪍' => '𣪍', '𡴋' => '𡴋', '𣫺' => '𣫺', '汎' => '汎', '𣲼' => '𣲼', '沿' => '沿', '泍' => '泍', '汧' => '汧', '洖' => '洖', '派' => '派', '海' => '海', '流' => '流', '浩' => '浩', '浸' => '浸', '涅' => '涅', '𣴞' => '𣴞', '洴' => '洴', '港' => '港', '湮' => '湮', '㴳' => '㴳', '滋' => '滋', '滇' => '滇', '𣻑' => '𣻑', '淹' => '淹', '潮' => '潮', '𣽞' => '𣽞', '𣾎' => '𣾎', '濆' => '濆', '瀹' => '瀹', '瀞' => '瀞', '瀛' => '瀛', '㶖' => '㶖', '灊' => '灊', '災' => '災', '灷' => '灷', '炭' => '炭', '𠔥' => '𠔥', '煅' => '煅', '𤉣' => '𤉣', '熜' => '熜', '𤎫' => '𤎫', '爨' => '爨', '爵' => '爵', '牐' => '牐', '𤘈' => '𤘈', '犀' => '犀', '犕' => '犕', '𤜵' => '𤜵', '𤠔' => '𤠔', '獺' => '獺', '王' => '王', '㺬' => '㺬', '玥' => '玥', '㺸' => '㺸', '㺸' => '㺸', '瑇' => '瑇', '瑜' => '瑜', '瑱' => '瑱', '璅' => '璅', '瓊' => '瓊', '㼛' => '㼛', '甤' => '甤', '𤰶' => '𤰶', '甾' => '甾', '𤲒' => '𤲒', '異' => '異', '𢆟' => '𢆟', '瘐' => '瘐', '𤾡' => '𤾡', '𤾸' => '𤾸', '𥁄' => '𥁄', '㿼' => '㿼', '䀈' => '䀈', '直' => '直', '𥃳' => '𥃳', '𥃲' => '𥃲', '𥄙' => '𥄙', '𥄳' => '𥄳', '眞' => '眞', '真' => '真', '真' => '真', '睊' => '睊', '䀹' => '䀹', '瞋' => '瞋', '䁆' => '䁆', '䂖' => '䂖', '𥐝' => '𥐝', '硎' => '硎', '碌' => '碌', '磌' => '磌', '䃣' => '䃣', '𥘦' => '𥘦', '祖' => '祖', '𥚚' => '𥚚', '𥛅' => '𥛅', '福' => '福', '秫' => '秫', '䄯' => '䄯', '穀' => '穀', '穊' => '穊', '穏' => '穏', '𥥼' => '𥥼', '𥪧' => '𥪧', '𥪧' => '𥪧', '竮' => '竮', '䈂' => '䈂', '𥮫' => '𥮫', '篆' => '篆', '築' => '築', '䈧' => '䈧', '𥲀' => '𥲀', '糒' => '糒', '䊠' => '䊠', '糨' => '糨', '糣' => '糣', '紀' => '紀', '𥾆' => '𥾆', '絣' => '絣', '䌁' => '䌁', '緇' => '緇', '縂' => '縂', '繅' => '繅', '䌴' => '䌴', '𦈨' => '𦈨', '𦉇' => '𦉇', '䍙' => '䍙', '𦋙' => '𦋙', '罺' => '罺', '𦌾' => '𦌾', '羕' => '羕', '翺' => '翺', '者' => '者', '𦓚' => '𦓚', '𦔣' => '𦔣', '聠' => '聠', '𦖨' => '𦖨', '聰' => '聰', '𣍟' => '𣍟', '䏕' => '䏕', '育' => '育', '脃' => '脃', '䐋' => '䐋', '脾' => '脾', '媵' => '媵', '𦞧' => '𦞧', '𦞵' => '𦞵', '𣎓' => '𣎓', '𣎜' => '𣎜', '舁' => '舁', '舄' => '舄', '辞' => '辞', '䑫' => '䑫', '芑' => '芑', '芋' => '芋', '芝' => '芝', '劳' => '劳', '花' => '花', '芳' => '芳', '芽' => '芽', '苦' => '苦', '𦬼' => '𦬼', '若' => '若', '茝' => '茝', '荣' => '荣', '莭' => '莭', '茣' => '茣', '莽' => '莽', '菧' => '菧', '著' => '著', '荓' => '荓', '菊' => '菊', '菌' => '菌', '菜' => '菜', '𦰶' => '𦰶', '𦵫' => '𦵫', '𦳕' => '𦳕', '䔫' => '䔫', '蓱' => '蓱', '蓳' => '蓳', '蔖' => '蔖', '𧏊' => '𧏊', '蕤' => '蕤', '𦼬' => '𦼬', '䕝' => '䕝', '䕡' => '䕡', '𦾱' => '𦾱', '𧃒' => '𧃒', '䕫' => '䕫', '虐' => '虐', '虜' => '虜', '虧' => '虧', '虩' => '虩', '蚩' => '蚩', '蚈' => '蚈', '蜎' => '蜎', '蛢' => '蛢', '蝹' => '蝹', '蜨' => '蜨', '蝫' => '蝫', '螆' => '螆', '䗗' => '䗗', '蟡' => '蟡', '蠁' => '蠁', '䗹' => '䗹', '衠' => '衠', '衣' => '衣', '𧙧' => '𧙧', '裗' => '裗', '裞' => '裞', '䘵' => '䘵', '裺' => '裺', '㒻' => '㒻', '𧢮' => '𧢮', '𧥦' => '𧥦', '䚾' => '䚾', '䛇' => '䛇', '誠' => '誠', '諭' => '諭', '變' => '變', '豕' => '豕', '𧲨' => '𧲨', '貫' => '貫', '賁' => '賁', '贛' => '贛', '起' => '起', '𧼯' => '𧼯', '𠠄' => '𠠄', '跋' => '跋', '趼' => '趼', '跰' => '跰', '𠣞' => '𠣞', '軔' => '軔', '輸' => '輸', '𨗒' => '𨗒', '𨗭' => '𨗭', '邔' => '邔', '郱' => '郱', '鄑' => '鄑', '𨜮' => '𨜮', '鄛' => '鄛', '鈸' => '鈸', '鋗' => '鋗', '鋘' => '鋘', '鉼' => '鉼', '鏹' => '鏹', '鐕' => '鐕', '𨯺' => '𨯺', '開' => '開', '䦕' => '䦕', '閷' => '閷', '𨵷' => '𨵷', '䧦' => '䧦', '雃' => '雃', '嶲' => '嶲', '霣' => '霣', '𩅅' => '𩅅', '𩈚' => '𩈚', '䩮' => '䩮', '䩶' => '䩶', '韠' => '韠', '𩐊' => '𩐊', '䪲' => '䪲', '𩒖' => '𩒖', '頋' => '頋', '頋' => '頋', '頩' => '頩', '𩖶' => '𩖶', '飢' => '飢', '䬳' => '䬳', '餩' => '餩', '馧' => '馧', '駂' => '駂', '駾' => '駾', '䯎' => '䯎', '𩬰' => '𩬰', '鬒' => '鬒', '鱀' => '鱀', '鳽' => '鳽', '䳎' => '䳎', '䳭' => '䳭', '鵧' => '鵧', '𪃎' => '𪃎', '䳸' => '䳸', '𪄅' => '𪄅', '𪈎' => '𪈎', '𪊑' => '𪊑', '麻' => '麻', '䵖' => '䵖', '黹' => '黹', '黾' => '黾', '鼅' => '鼅', '鼏' => '鼏', '鼖' => '鼖', '鼻' => '鼻', '𪘀' => '𪘀');
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array('̀' => 230, '́' => 230, '̂' => 230, '̃' => 230, '̄' => 230, '̅' => 230, '̆' => 230, '̇' => 230, '̈' => 230, '̉' => 230, '̊' => 230, '̋' => 230, '̌' => 230, '̍' => 230, '̎' => 230, '̏' => 230, '̐' => 230, '̑' => 230, '̒' => 230, '̓' => 230, '̔' => 230, '̕' => 232, '̖' => 220, '̗' => 220, '̘' => 220, '̙' => 220, '̚' => 232, '̛' => 216, '̜' => 220, '̝' => 220, '̞' => 220, '̟' => 220, '̠' => 220, '̡' => 202, '̢' => 202, '̣' => 220, '̤' => 220, '̥' => 220, '̦' => 220, '̧' => 202, '̨' => 202, '̩' => 220, '̪' => 220, '̫' => 220, '̬' => 220, '̭' => 220, '̮' => 220, '̯' => 220, '̰' => 220, '̱' => 220, '̲' => 220, '̳' => 220, '̴' => 1, '̵' => 1, '̶' => 1, '̷' => 1, '̸' => 1, '̹' => 220, '̺' => 220, '̻' => 220, '̼' => 220, '̽' => 230, '̾' => 230, '̿' => 230, '̀' => 230, '́' => 230, '͂' => 230, '̓' => 230, '̈́' => 230, 'ͅ' => 240, '͆' => 230, '͇' => 220, '͈' => 220, '͉' => 220, '͊' => 230, '͋' => 230, '͌' => 230, '͍' => 220, '͎' => 220, '͐' => 230, '͑' => 230, '͒' => 230, '͓' => 220, '͔' => 220, '͕' => 220, '͖' => 220, '͗' => 230, '͘' => 232, '͙' => 220, '͚' => 220, '͛' => 230, '͜' => 233, '͝' => 234, '͞' => 234, '͟' => 233, '͠' => 234, '͡' => 234, '͢' => 233, 'ͣ' => 230, 'ͤ' => 230, 'ͥ' => 230, 'ͦ' => 230, 'ͧ' => 230, 'ͨ' => 230, 'ͩ' => 230, 'ͪ' => 230, 'ͫ' => 230, 'ͬ' => 230, 'ͭ' => 230, 'ͮ' => 230, 'ͯ' => 230, '҃' => 230, '҄' => 230, '҅' => 230, '҆' => 230, '҇' => 230, '֑' => 220, '֒' => 230, '֓' => 230, '֔' => 230, '֕' => 230, '֖' => 220, '֗' => 230, '֘' => 230, '֙' => 230, '֚' => 222, '֛' => 220, '֜' => 230, '֝' => 230, '֞' => 230, '֟' => 230, '֠' => 230, '֡' => 230, '֢' => 220, '֣' => 220, '֤' => 220, '֥' => 220, '֦' => 220, '֧' => 220, '֨' => 230, '֩' => 230, '֪' => 220, '֫' => 230, '֬' => 230, '֭' => 222, '֮' => 228, '֯' => 230, 'ְ' => 10, 'ֱ' => 11, 'ֲ' => 12, 'ֳ' => 13, 'ִ' => 14, 'ֵ' => 15, 'ֶ' => 16, 'ַ' => 17, 'ָ' => 18, 'ֹ' => 19, 'ֺ' => 19, 'ֻ' => 20, 'ּ' => 21, 'ֽ' => 22, 'ֿ' => 23, 'ׁ' => 24, 'ׂ' => 25, 'ׄ' => 230, 'ׅ' => 220, 'ׇ' => 18, 'ؐ' => 230, 'ؑ' => 230, 'ؒ' => 230, 'ؓ' => 230, 'ؔ' => 230, 'ؕ' => 230, 'ؖ' => 230, 'ؗ' => 230, 'ؘ' => 30, 'ؙ' => 31, 'ؚ' => 32, 'ً' => 27, 'ٌ' => 28, 'ٍ' => 29, 'َ' => 30, 'ُ' => 31, 'ِ' => 32, 'ّ' => 33, 'ْ' => 34, 'ٓ' => 230, 'ٔ' => 230, 'ٕ' => 220, 'ٖ' => 220, 'ٗ' => 230, '٘' => 230, 'ٙ' => 230, 'ٚ' => 230, 'ٛ' => 230, 'ٜ' => 220, 'ٝ' => 230, 'ٞ' => 230, 'ٟ' => 220, 'ٰ' => 35, 'ۖ' => 230, 'ۗ' => 230, 'ۘ' => 230, 'ۙ' => 230, 'ۚ' => 230, 'ۛ' => 230, 'ۜ' => 230, '۟' => 230, '۠' => 230, 'ۡ' => 230, 'ۢ' => 230, 'ۣ' => 220, 'ۤ' => 230, 'ۧ' => 230, 'ۨ' => 230, '۪' => 220, '۫' => 230, '۬' => 230, 'ۭ' => 220, 'ܑ' => 36, 'ܰ' => 230, 'ܱ' => 220, 'ܲ' => 230, 'ܳ' => 230, 'ܴ' => 220, 'ܵ' => 230, 'ܶ' => 230, 'ܷ' => 220, 'ܸ' => 220, 'ܹ' => 220, 'ܺ' => 230, 'ܻ' => 220, 'ܼ' => 220, 'ܽ' => 230, 'ܾ' => 220, 'ܿ' => 230, '݀' => 230, '݁' => 230, '݂' => 220, '݃' => 230, '݄' => 220, '݅' => 230, '݆' => 220, '݇' => 230, '݈' => 220, '݉' => 230, '݊' => 230, '߫' => 230, '߬' => 230, '߭' => 230, '߮' => 230, '߯' => 230, '߰' => 230, '߱' => 230, '߲' => 220, '߳' => 230, '߽' => 220, 'ࠖ' => 230, 'ࠗ' => 230, '࠘' => 230, '࠙' => 230, 'ࠛ' => 230, 'ࠜ' => 230, 'ࠝ' => 230, 'ࠞ' => 230, 'ࠟ' => 230, 'ࠠ' => 230, 'ࠡ' => 230, 'ࠢ' => 230, 'ࠣ' => 230, 'ࠥ' => 230, 'ࠦ' => 230, 'ࠧ' => 230, 'ࠩ' => 230, 'ࠪ' => 230, 'ࠫ' => 230, 'ࠬ' => 230, '࠭' => 230, '࡙' => 220, '࡚' => 220, '࡛' => 220, '࣓' => 220, 'ࣔ' => 230, 'ࣕ' => 230, 'ࣖ' => 230, 'ࣗ' => 230, 'ࣘ' => 230, 'ࣙ' => 230, 'ࣚ' => 230, 'ࣛ' => 230, 'ࣜ' => 230, 'ࣝ' => 230, 'ࣞ' => 230, 'ࣟ' => 230, '࣠' => 230, '࣡' => 230, 'ࣣ' => 220, 'ࣤ' => 230, 'ࣥ' => 230, 'ࣦ' => 220, 'ࣧ' => 230, 'ࣨ' => 230, 'ࣩ' => 220, '࣪' => 230, '࣫' => 230, '࣬' => 230, '࣭' => 220, '࣮' => 220, '࣯' => 220, 'ࣰ' => 27, 'ࣱ' => 28, 'ࣲ' => 29, 'ࣳ' => 230, 'ࣴ' => 230, 'ࣵ' => 230, 'ࣶ' => 220, 'ࣷ' => 230, 'ࣸ' => 230, 'ࣹ' => 220, 'ࣺ' => 220, 'ࣻ' => 230, 'ࣼ' => 230, 'ࣽ' => 230, 'ࣾ' => 230, 'ࣿ' => 230, '़' => 7, '्' => 9, '॑' => 230, '॒' => 220, '॓' => 230, '॔' => 230, '়' => 7, '্' => 9, '৾' => 230, '਼' => 7, '੍' => 9, '઼' => 7, '્' => 9, '଼' => 7, '୍' => 9, '்' => 9, '్' => 9, 'ౕ' => 84, 'ౖ' => 91, '಼' => 7, '್' => 9, '഻' => 9, '഼' => 9, '്' => 9, '්' => 9, 'ุ' => 103, 'ู' => 103, 'ฺ' => 9, '่' => 107, '้' => 107, '๊' => 107, '๋' => 107, 'ຸ' => 118, 'ູ' => 118, '຺' => 9, '່' => 122, '້' => 122, '໊' => 122, '໋' => 122, '༘' => 220, '༙' => 220, '༵' => 220, '༷' => 220, '༹' => 216, 'ཱ' => 129, 'ི' => 130, 'ུ' => 132, 'ེ' => 130, 'ཻ' => 130, 'ོ' => 130, 'ཽ' => 130, 'ྀ' => 130, 'ྂ' => 230, 'ྃ' => 230, '྄' => 9, '྆' => 230, '྇' => 230, '࿆' => 220, '့' => 7, '္' => 9, '်' => 9, 'ႍ' => 220, '፝' => 230, '፞' => 230, '፟' => 230, '᜔' => 9, '᜴' => 9, '្' => 9, '៝' => 230, 'ᢩ' => 228, '᤹' => 222, '᤺' => 230, '᤻' => 220, 'ᨗ' => 230, 'ᨘ' => 220, '᩠' => 9, '᩵' => 230, '᩶' => 230, '᩷' => 230, '᩸' => 230, '᩹' => 230, '᩺' => 230, '᩻' => 230, '᩼' => 230, '᩿' => 220, '᪰' => 230, '᪱' => 230, '᪲' => 230, '᪳' => 230, '᪴' => 230, '᪵' => 220, '᪶' => 220, '᪷' => 220, '᪸' => 220, '᪹' => 220, '᪺' => 220, '᪻' => 230, '᪼' => 230, '᪽' => 220, 'ᪿ' => 220, 'ᫀ' => 220, '᬴' => 7, '᭄' => 9, '᭫' => 230, '᭬' => 220, '᭭' => 230, '᭮' => 230, '᭯' => 230, '᭰' => 230, '᭱' => 230, '᭲' => 230, '᭳' => 230, '᮪' => 9, '᮫' => 9, '᯦' => 7, '᯲' => 9, '᯳' => 9, '᰷' => 7, '᳐' => 230, '᳑' => 230, '᳒' => 230, '᳔' => 1, '᳕' => 220, '᳖' => 220, '᳗' => 220, '᳘' => 220, '᳙' => 220, '᳚' => 230, '᳛' => 230, '᳜' => 220, '᳝' => 220, '᳞' => 220, '᳟' => 220, '᳠' => 230, '᳢' => 1, '᳣' => 1, '᳤' => 1, '᳥' => 1, '᳦' => 1, '᳧' => 1, '᳨' => 1, '᳭' => 220, '᳴' => 230, '᳸' => 230, '᳹' => 230, '᷀' => 230, '᷁' => 230, '᷂' => 220, '᷃' => 230, '᷄' => 230, '᷅' => 230, '᷆' => 230, '᷇' => 230, '᷈' => 230, '᷉' => 230, '᷊' => 220, '᷋' => 230, '᷌' => 230, '᷍' => 234, '᷎' => 214, '᷏' => 220, '᷐' => 202, '᷑' => 230, '᷒' => 230, 'ᷓ' => 230, 'ᷔ' => 230, 'ᷕ' => 230, 'ᷖ' => 230, 'ᷗ' => 230, 'ᷘ' => 230, 'ᷙ' => 230, 'ᷚ' => 230, 'ᷛ' => 230, 'ᷜ' => 230, 'ᷝ' => 230, 'ᷞ' => 230, 'ᷟ' => 230, 'ᷠ' => 230, 'ᷡ' => 230, 'ᷢ' => 230, 'ᷣ' => 230, 'ᷤ' => 230, 'ᷥ' => 230, 'ᷦ' => 230, 'ᷧ' => 230, 'ᷨ' => 230, 'ᷩ' => 230, 'ᷪ' => 230, 'ᷫ' => 230, 'ᷬ' => 230, 'ᷭ' => 230, 'ᷮ' => 230, 'ᷯ' => 230, 'ᷰ' => 230, 'ᷱ' => 230, 'ᷲ' => 230, 'ᷳ' => 230, 'ᷴ' => 230, '᷵' => 230, '᷶' => 232, '᷷' => 228, '᷸' => 228, '᷹' => 220, '᷻' => 230, '᷼' => 233, '᷽' => 220, '᷾' => 230, '᷿' => 220, '⃐' => 230, '⃑' => 230, '⃒' => 1, '⃓' => 1, '⃔' => 230, '⃕' => 230, '⃖' => 230, '⃗' => 230, '⃘' => 1, '⃙' => 1, '⃚' => 1, '⃛' => 230, '⃜' => 230, '⃡' => 230, '⃥' => 1, '⃦' => 1, '⃧' => 230, '⃨' => 220, '⃩' => 230, '⃪' => 1, '⃫' => 1, '⃬' => 220, '⃭' => 220, '⃮' => 220, '⃯' => 220, '⃰' => 230, '⳯' => 230, '⳰' => 230, '⳱' => 230, '⵿' => 9, 'ⷠ' => 230, 'ⷡ' => 230, 'ⷢ' => 230, 'ⷣ' => 230, 'ⷤ' => 230, 'ⷥ' => 230, 'ⷦ' => 230, 'ⷧ' => 230, 'ⷨ' => 230, 'ⷩ' => 230, 'ⷪ' => 230, 'ⷫ' => 230, 'ⷬ' => 230, 'ⷭ' => 230, 'ⷮ' => 230, 'ⷯ' => 230, 'ⷰ' => 230, 'ⷱ' => 230, 'ⷲ' => 230, 'ⷳ' => 230, 'ⷴ' => 230, 'ⷵ' => 230, 'ⷶ' => 230, 'ⷷ' => 230, 'ⷸ' => 230, 'ⷹ' => 230, 'ⷺ' => 230, 'ⷻ' => 230, 'ⷼ' => 230, 'ⷽ' => 230, 'ⷾ' => 230, 'ⷿ' => 230, '〪' => 218, '〫' => 228, '〬' => 232, '〭' => 222, '〮' => 224, '〯' => 224, '゙' => 8, '゚' => 8, '꙯' => 230, 'ꙴ' => 230, 'ꙵ' => 230, 'ꙶ' => 230, 'ꙷ' => 230, 'ꙸ' => 230, 'ꙹ' => 230, 'ꙺ' => 230, 'ꙻ' => 230, '꙼' => 230, '꙽' => 230, 'ꚞ' => 230, 'ꚟ' => 230, '꛰' => 230, '꛱' => 230, '꠆' => 9, '꠬' => 9, '꣄' => 9, '꣠' => 230, '꣡' => 230, '꣢' => 230, '꣣' => 230, '꣤' => 230, '꣥' => 230, '꣦' => 230, '꣧' => 230, '꣨' => 230, '꣩' => 230, '꣪' => 230, '꣫' => 230, '꣬' => 230, '꣭' => 230, '꣮' => 230, '꣯' => 230, '꣰' => 230, '꣱' => 230, '꤫' => 220, '꤬' => 220, '꤭' => 220, '꥓' => 9, '꦳' => 7, '꧀' => 9, 'ꪰ' => 230, 'ꪲ' => 230, 'ꪳ' => 230, 'ꪴ' => 220, 'ꪷ' => 230, 'ꪸ' => 230, 'ꪾ' => 230, '꪿' => 230, '꫁' => 230, '꫶' => 9, '꯭' => 9, 'ﬞ' => 26, '︠' => 230, '︡' => 230, '︢' => 230, '︣' => 230, '︤' => 230, '︥' => 230, '︦' => 230, '︧' => 220, '︨' => 220, '︩' => 220, '︪' => 220, '︫' => 220, '︬' => 220, '︭' => 220, '︮' => 230, '︯' => 230, '𐇽' => 220, '𐋠' => 220, '𐍶' => 230, '𐍷' => 230, '𐍸' => 230, '𐍹' => 230, '𐍺' => 230, '𐨍' => 220, '𐨏' => 230, '𐨸' => 230, '𐨹' => 1, '𐨺' => 220, '𐨿' => 9, '𐫥' => 230, '𐫦' => 220, '𐴤' => 230, '𐴥' => 230, '𐴦' => 230, '𐴧' => 230, '𐺫' => 230, '𐺬' => 230, '𐽆' => 220, '𐽇' => 220, '𐽈' => 230, '𐽉' => 230, '𐽊' => 230, '𐽋' => 220, '𐽌' => 230, '𐽍' => 220, '𐽎' => 220, '𐽏' => 220, '𐽐' => 220, '𑁆' => 9, '𑁿' => 9, '𑂹' => 9, '𑂺' => 7, '𑄀' => 230, '𑄁' => 230, '𑄂' => 230, '𑄳' => 9, '𑄴' => 9, '𑅳' => 7, '𑇀' => 9, '𑇊' => 7, '𑈵' => 9, '𑈶' => 7, '𑋩' => 7, '𑋪' => 9, '𑌻' => 7, '𑌼' => 7, '𑍍' => 9, '𑍦' => 230, '𑍧' => 230, '𑍨' => 230, '𑍩' => 230, '𑍪' => 230, '𑍫' => 230, '𑍬' => 230, '𑍰' => 230, '𑍱' => 230, '𑍲' => 230, '𑍳' => 230, '𑍴' => 230, '𑑂' => 9, '𑑆' => 7, '𑑞' => 230, '𑓂' => 9, '𑓃' => 7, '𑖿' => 9, '𑗀' => 7, '𑘿' => 9, '𑚶' => 9, '𑚷' => 7, '𑜫' => 9, '𑠹' => 9, '𑠺' => 7, '𑤽' => 9, '𑤾' => 9, '𑥃' => 7, '𑧠' => 9, '𑨴' => 9, '𑩇' => 9, '𑪙' => 9, '𑰿' => 9, '𑵂' => 7, '𑵄' => 9, '𑵅' => 9, '𑶗' => 9, '𖫰' => 1, '𖫱' => 1, '𖫲' => 1, '𖫳' => 1, '𖫴' => 1, '𖬰' => 230, '𖬱' => 230, '𖬲' => 230, '𖬳' => 230, '𖬴' => 230, '𖬵' => 230, '𖬶' => 230, '𖿰' => 6, '𖿱' => 6, '𛲞' => 1, '𝅥' => 216, '𝅦' => 216, '𝅧' => 1, '𝅨' => 1, '𝅩' => 1, '𝅭' => 226, '𝅮' => 216, '𝅯' => 216, '𝅰' => 216, '𝅱' => 216, '𝅲' => 216, '𝅻' => 220, '𝅼' => 220, '𝅽' => 220, '𝅾' => 220, '𝅿' => 220, '𝆀' => 220, '𝆁' => 220, '𝆂' => 220, '𝆅' => 230, '𝆆' => 230, '𝆇' => 230, '𝆈' => 230, '𝆉' => 230, '𝆊' => 220, '𝆋' => 220, '𝆪' => 230, '𝆫' => 230, '𝆬' => 230, '𝆭' => 230, '𝉂' => 230, '𝉃' => 230, '𝉄' => 230, '𞀀' => 230, '𞀁' => 230, '𞀂' => 230, '𞀃' => 230, '𞀄' => 230, '𞀅' => 230, '𞀆' => 230, '𞀈' => 230, '𞀉' => 230, '𞀊' => 230, '𞀋' => 230, '𞀌' => 230, '𞀍' => 230, '𞀎' => 230, '𞀏' => 230, '𞀐' => 230, '𞀑' => 230, '𞀒' => 230, '𞀓' => 230, '𞀔' => 230, '𞀕' => 230, '𞀖' => 230, '𞀗' => 230, '𞀘' => 230, '𞀛' => 230, '𞀜' => 230, '𞀝' => 230, '𞀞' => 230, '𞀟' => 230, '𞀠' => 230, '𞀡' => 230, '𞀣' => 230, '𞀤' => 230, '𞀦' => 230, '𞀧' => 230, '𞀨' => 230, '𞀩' => 230, '𞀪' => 230, '𞄰' => 230, '𞄱' => 230, '𞄲' => 230, '𞄳' => 230, '𞄴' => 230, '𞄵' => 230, '𞄶' => 230, '𞋬' => 230, '𞋭' => 230, '𞋮' => 230, '𞋯' => 230, '𞣐' => 220, '𞣑' => 220, '𞣒' => 220, '𞣓' => 220, '𞣔' => 220, '𞣕' => 220, '𞣖' => 220, '𞥄' => 230, '𞥅' => 230, '𞥆' => 230, '𞥇' => 230, '𞥈' => 230, '𞥉' => 230, '𞥊' => 7);
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- return array(' ' => ' ', '¨' => ' ̈', 'ª' => 'a', '¯' => ' ̄', '²' => '2', '³' => '3', '´' => ' ́', 'µ' => 'μ', '¸' => ' ̧', '¹' => '1', 'º' => 'o', '¼' => '1⁄4', '½' => '1⁄2', '¾' => '3⁄4', 'IJ' => 'IJ', 'ij' => 'ij', 'Ŀ' => 'L·', 'ŀ' => 'l·', 'ʼn' => 'ʼn', 'ſ' => 's', 'DŽ' => 'DŽ', 'Dž' => 'Dž', 'dž' => 'dž', 'LJ' => 'LJ', 'Lj' => 'Lj', 'lj' => 'lj', 'NJ' => 'NJ', 'Nj' => 'Nj', 'nj' => 'nj', 'DZ' => 'DZ', 'Dz' => 'Dz', 'dz' => 'dz', 'ʰ' => 'h', 'ʱ' => 'ɦ', 'ʲ' => 'j', 'ʳ' => 'r', 'ʴ' => 'ɹ', 'ʵ' => 'ɻ', 'ʶ' => 'ʁ', 'ʷ' => 'w', 'ʸ' => 'y', '˘' => ' ̆', '˙' => ' ̇', '˚' => ' ̊', '˛' => ' ̨', '˜' => ' ̃', '˝' => ' ̋', 'ˠ' => 'ɣ', 'ˡ' => 'l', 'ˢ' => 's', 'ˣ' => 'x', 'ˤ' => 'ʕ', 'ͺ' => ' ͅ', '΄' => ' ́', '΅' => ' ̈́', 'ϐ' => 'β', 'ϑ' => 'θ', 'ϒ' => 'Υ', 'ϓ' => 'Ύ', 'ϔ' => 'Ϋ', 'ϕ' => 'φ', 'ϖ' => 'π', 'ϰ' => 'κ', 'ϱ' => 'ρ', 'ϲ' => 'ς', 'ϴ' => 'Θ', 'ϵ' => 'ε', 'Ϲ' => 'Σ', 'և' => 'եւ', 'ٵ' => 'اٴ', 'ٶ' => 'وٴ', 'ٷ' => 'ۇٴ', 'ٸ' => 'يٴ', 'ำ' => 'ํา', 'ຳ' => 'ໍາ', 'ໜ' => 'ຫນ', 'ໝ' => 'ຫມ', '༌' => '་', 'ཷ' => 'ྲཱྀ', 'ཹ' => 'ླཱྀ', 'ჼ' => 'ნ', 'ᴬ' => 'A', 'ᴭ' => 'Æ', 'ᴮ' => 'B', 'ᴰ' => 'D', 'ᴱ' => 'E', 'ᴲ' => 'Ǝ', 'ᴳ' => 'G', 'ᴴ' => 'H', 'ᴵ' => 'I', 'ᴶ' => 'J', 'ᴷ' => 'K', 'ᴸ' => 'L', 'ᴹ' => 'M', 'ᴺ' => 'N', 'ᴼ' => 'O', 'ᴽ' => 'Ȣ', 'ᴾ' => 'P', 'ᴿ' => 'R', 'ᵀ' => 'T', 'ᵁ' => 'U', 'ᵂ' => 'W', 'ᵃ' => 'a', 'ᵄ' => 'ɐ', 'ᵅ' => 'ɑ', 'ᵆ' => 'ᴂ', 'ᵇ' => 'b', 'ᵈ' => 'd', 'ᵉ' => 'e', 'ᵊ' => 'ə', 'ᵋ' => 'ɛ', 'ᵌ' => 'ɜ', 'ᵍ' => 'g', 'ᵏ' => 'k', 'ᵐ' => 'm', 'ᵑ' => 'ŋ', 'ᵒ' => 'o', 'ᵓ' => 'ɔ', 'ᵔ' => 'ᴖ', 'ᵕ' => 'ᴗ', 'ᵖ' => 'p', 'ᵗ' => 't', 'ᵘ' => 'u', 'ᵙ' => 'ᴝ', 'ᵚ' => 'ɯ', 'ᵛ' => 'v', 'ᵜ' => 'ᴥ', 'ᵝ' => 'β', 'ᵞ' => 'γ', 'ᵟ' => 'δ', 'ᵠ' => 'φ', 'ᵡ' => 'χ', 'ᵢ' => 'i', 'ᵣ' => 'r', 'ᵤ' => 'u', 'ᵥ' => 'v', 'ᵦ' => 'β', 'ᵧ' => 'γ', 'ᵨ' => 'ρ', 'ᵩ' => 'φ', 'ᵪ' => 'χ', 'ᵸ' => 'н', 'ᶛ' => 'ɒ', 'ᶜ' => 'c', 'ᶝ' => 'ɕ', 'ᶞ' => 'ð', 'ᶟ' => 'ɜ', 'ᶠ' => 'f', 'ᶡ' => 'ɟ', 'ᶢ' => 'ɡ', 'ᶣ' => 'ɥ', 'ᶤ' => 'ɨ', 'ᶥ' => 'ɩ', 'ᶦ' => 'ɪ', 'ᶧ' => 'ᵻ', 'ᶨ' => 'ʝ', 'ᶩ' => 'ɭ', 'ᶪ' => 'ᶅ', 'ᶫ' => 'ʟ', 'ᶬ' => 'ɱ', 'ᶭ' => 'ɰ', 'ᶮ' => 'ɲ', 'ᶯ' => 'ɳ', 'ᶰ' => 'ɴ', 'ᶱ' => 'ɵ', 'ᶲ' => 'ɸ', 'ᶳ' => 'ʂ', 'ᶴ' => 'ʃ', 'ᶵ' => 'ƫ', 'ᶶ' => 'ʉ', 'ᶷ' => 'ʊ', 'ᶸ' => 'ᴜ', 'ᶹ' => 'ʋ', 'ᶺ' => 'ʌ', 'ᶻ' => 'z', 'ᶼ' => 'ʐ', 'ᶽ' => 'ʑ', 'ᶾ' => 'ʒ', 'ᶿ' => 'θ', 'ẚ' => 'aʾ', 'ẛ' => 'ṡ', '᾽' => ' ̓', '᾿' => ' ̓', '῀' => ' ͂', '῁' => ' ̈͂', '῍' => ' ̓̀', '῎' => ' ̓́', '῏' => ' ̓͂', '῝' => ' ̔̀', '῞' => ' ̔́', '῟' => ' ̔͂', '῭' => ' ̈̀', '΅' => ' ̈́', '´' => ' ́', '῾' => ' ̔', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', '‑' => '‐', '‗' => ' ̳', '․' => '.', '‥' => '..', '…' => '...', ' ' => ' ', '″' => '′′', '‴' => '′′′', '‶' => '‵‵', '‷' => '‵‵‵', '‼' => '!!', '‾' => ' ̅', '⁇' => '??', '⁈' => '?!', '⁉' => '!?', '⁗' => '′′′′', ' ' => ' ', '⁰' => '0', 'ⁱ' => 'i', '⁴' => '4', '⁵' => '5', '⁶' => '6', '⁷' => '7', '⁸' => '8', '⁹' => '9', '⁺' => '+', '⁻' => '−', '⁼' => '=', '⁽' => '(', '⁾' => ')', 'ⁿ' => 'n', '₀' => '0', '₁' => '1', '₂' => '2', '₃' => '3', '₄' => '4', '₅' => '5', '₆' => '6', '₇' => '7', '₈' => '8', '₉' => '9', '₊' => '+', '₋' => '−', '₌' => '=', '₍' => '(', '₎' => ')', 'ₐ' => 'a', 'ₑ' => 'e', 'ₒ' => 'o', 'ₓ' => 'x', 'ₔ' => 'ə', 'ₕ' => 'h', 'ₖ' => 'k', 'ₗ' => 'l', 'ₘ' => 'm', 'ₙ' => 'n', 'ₚ' => 'p', 'ₛ' => 's', 'ₜ' => 't', '₨' => 'Rs', '℀' => 'a/c', '℁' => 'a/s', 'ℂ' => 'C', '℃' => '°C', '℅' => 'c/o', '℆' => 'c/u', 'ℇ' => 'Ɛ', '℉' => '°F', 'ℊ' => 'g', 'ℋ' => 'H', 'ℌ' => 'H', 'ℍ' => 'H', 'ℎ' => 'h', 'ℏ' => 'ħ', 'ℐ' => 'I', 'ℑ' => 'I', 'ℒ' => 'L', 'ℓ' => 'l', 'ℕ' => 'N', '№' => 'No', 'ℙ' => 'P', 'ℚ' => 'Q', 'ℛ' => 'R', 'ℜ' => 'R', 'ℝ' => 'R', '℠' => 'SM', '℡' => 'TEL', '™' => 'TM', 'ℤ' => 'Z', 'ℨ' => 'Z', 'ℬ' => 'B', 'ℭ' => 'C', 'ℯ' => 'e', 'ℰ' => 'E', 'ℱ' => 'F', 'ℳ' => 'M', 'ℴ' => 'o', 'ℵ' => 'א', 'ℶ' => 'ב', 'ℷ' => 'ג', 'ℸ' => 'ד', 'ℹ' => 'i', '℻' => 'FAX', 'ℼ' => 'π', 'ℽ' => 'γ', 'ℾ' => 'Γ', 'ℿ' => 'Π', '⅀' => '∑', 'ⅅ' => 'D', 'ⅆ' => 'd', 'ⅇ' => 'e', 'ⅈ' => 'i', 'ⅉ' => 'j', '⅐' => '1⁄7', '⅑' => '1⁄9', '⅒' => '1⁄10', '⅓' => '1⁄3', '⅔' => '2⁄3', '⅕' => '1⁄5', '⅖' => '2⁄5', '⅗' => '3⁄5', '⅘' => '4⁄5', '⅙' => '1⁄6', '⅚' => '5⁄6', '⅛' => '1⁄8', '⅜' => '3⁄8', '⅝' => '5⁄8', '⅞' => '7⁄8', '⅟' => '1⁄', 'Ⅰ' => 'I', 'Ⅱ' => 'II', 'Ⅲ' => 'III', 'Ⅳ' => 'IV', 'Ⅴ' => 'V', 'Ⅵ' => 'VI', 'Ⅶ' => 'VII', 'Ⅷ' => 'VIII', 'Ⅸ' => 'IX', 'Ⅹ' => 'X', 'Ⅺ' => 'XI', 'Ⅻ' => 'XII', 'Ⅼ' => 'L', 'Ⅽ' => 'C', 'Ⅾ' => 'D', 'Ⅿ' => 'M', 'ⅰ' => 'i', 'ⅱ' => 'ii', 'ⅲ' => 'iii', 'ⅳ' => 'iv', 'ⅴ' => 'v', 'ⅵ' => 'vi', 'ⅶ' => 'vii', 'ⅷ' => 'viii', 'ⅸ' => 'ix', 'ⅹ' => 'x', 'ⅺ' => 'xi', 'ⅻ' => 'xii', 'ⅼ' => 'l', 'ⅽ' => 'c', 'ⅾ' => 'd', 'ⅿ' => 'm', '↉' => '0⁄3', '∬' => '∫∫', '∭' => '∫∫∫', '∯' => '∮∮', '∰' => '∮∮∮', '①' => '1', '②' => '2', '③' => '3', '④' => '4', '⑤' => '5', '⑥' => '6', '⑦' => '7', '⑧' => '8', '⑨' => '9', '⑩' => '10', '⑪' => '11', '⑫' => '12', '⑬' => '13', '⑭' => '14', '⑮' => '15', '⑯' => '16', '⑰' => '17', '⑱' => '18', '⑲' => '19', '⑳' => '20', '⑴' => '(1)', '⑵' => '(2)', '⑶' => '(3)', '⑷' => '(4)', '⑸' => '(5)', '⑹' => '(6)', '⑺' => '(7)', '⑻' => '(8)', '⑼' => '(9)', '⑽' => '(10)', '⑾' => '(11)', '⑿' => '(12)', '⒀' => '(13)', '⒁' => '(14)', '⒂' => '(15)', '⒃' => '(16)', '⒄' => '(17)', '⒅' => '(18)', '⒆' => '(19)', '⒇' => '(20)', '⒈' => '1.', '⒉' => '2.', '⒊' => '3.', '⒋' => '4.', '⒌' => '5.', '⒍' => '6.', '⒎' => '7.', '⒏' => '8.', '⒐' => '9.', '⒑' => '10.', '⒒' => '11.', '⒓' => '12.', '⒔' => '13.', '⒕' => '14.', '⒖' => '15.', '⒗' => '16.', '⒘' => '17.', '⒙' => '18.', '⒚' => '19.', '⒛' => '20.', '⒜' => '(a)', '⒝' => '(b)', '⒞' => '(c)', '⒟' => '(d)', '⒠' => '(e)', '⒡' => '(f)', '⒢' => '(g)', '⒣' => '(h)', '⒤' => '(i)', '⒥' => '(j)', '⒦' => '(k)', '⒧' => '(l)', '⒨' => '(m)', '⒩' => '(n)', '⒪' => '(o)', '⒫' => '(p)', '⒬' => '(q)', '⒭' => '(r)', '⒮' => '(s)', '⒯' => '(t)', '⒰' => '(u)', '⒱' => '(v)', '⒲' => '(w)', '⒳' => '(x)', '⒴' => '(y)', '⒵' => '(z)', 'Ⓐ' => 'A', 'Ⓑ' => 'B', 'Ⓒ' => 'C', 'Ⓓ' => 'D', 'Ⓔ' => 'E', 'Ⓕ' => 'F', 'Ⓖ' => 'G', 'Ⓗ' => 'H', 'Ⓘ' => 'I', 'Ⓙ' => 'J', 'Ⓚ' => 'K', 'Ⓛ' => 'L', 'Ⓜ' => 'M', 'Ⓝ' => 'N', 'Ⓞ' => 'O', 'Ⓟ' => 'P', 'Ⓠ' => 'Q', 'Ⓡ' => 'R', 'Ⓢ' => 'S', 'Ⓣ' => 'T', 'Ⓤ' => 'U', 'Ⓥ' => 'V', 'Ⓦ' => 'W', 'Ⓧ' => 'X', 'Ⓨ' => 'Y', 'Ⓩ' => 'Z', 'ⓐ' => 'a', 'ⓑ' => 'b', 'ⓒ' => 'c', 'ⓓ' => 'd', 'ⓔ' => 'e', 'ⓕ' => 'f', 'ⓖ' => 'g', 'ⓗ' => 'h', 'ⓘ' => 'i', 'ⓙ' => 'j', 'ⓚ' => 'k', 'ⓛ' => 'l', 'ⓜ' => 'm', 'ⓝ' => 'n', 'ⓞ' => 'o', 'ⓟ' => 'p', 'ⓠ' => 'q', 'ⓡ' => 'r', 'ⓢ' => 's', 'ⓣ' => 't', 'ⓤ' => 'u', 'ⓥ' => 'v', 'ⓦ' => 'w', 'ⓧ' => 'x', 'ⓨ' => 'y', 'ⓩ' => 'z', '⓪' => '0', '⨌' => '∫∫∫∫', '⩴' => '::=', '⩵' => '==', '⩶' => '===', 'ⱼ' => 'j', 'ⱽ' => 'V', 'ⵯ' => 'ⵡ', '⺟' => '母', '⻳' => '龟', '⼀' => '一', '⼁' => '丨', '⼂' => '丶', '⼃' => '丿', '⼄' => '乙', '⼅' => '亅', '⼆' => '二', '⼇' => '亠', '⼈' => '人', '⼉' => '儿', '⼊' => '入', '⼋' => '八', '⼌' => '冂', '⼍' => '冖', '⼎' => '冫', '⼏' => '几', '⼐' => '凵', '⼑' => '刀', '⼒' => '力', '⼓' => '勹', '⼔' => '匕', '⼕' => '匚', '⼖' => '匸', '⼗' => '十', '⼘' => '卜', '⼙' => '卩', '⼚' => '厂', '⼛' => '厶', '⼜' => '又', '⼝' => '口', '⼞' => '囗', '⼟' => '土', '⼠' => '士', '⼡' => '夂', '⼢' => '夊', '⼣' => '夕', '⼤' => '大', '⼥' => '女', '⼦' => '子', '⼧' => '宀', '⼨' => '寸', '⼩' => '小', '⼪' => '尢', '⼫' => '尸', '⼬' => '屮', '⼭' => '山', '⼮' => '巛', '⼯' => '工', '⼰' => '己', '⼱' => '巾', '⼲' => '干', '⼳' => '幺', '⼴' => '广', '⼵' => '廴', '⼶' => '廾', '⼷' => '弋', '⼸' => '弓', '⼹' => '彐', '⼺' => '彡', '⼻' => '彳', '⼼' => '心', '⼽' => '戈', '⼾' => '戶', '⼿' => '手', '⽀' => '支', '⽁' => '攴', '⽂' => '文', '⽃' => '斗', '⽄' => '斤', '⽅' => '方', '⽆' => '无', '⽇' => '日', '⽈' => '曰', '⽉' => '月', '⽊' => '木', '⽋' => '欠', '⽌' => '止', '⽍' => '歹', '⽎' => '殳', '⽏' => '毋', '⽐' => '比', '⽑' => '毛', '⽒' => '氏', '⽓' => '气', '⽔' => '水', '⽕' => '火', '⽖' => '爪', '⽗' => '父', '⽘' => '爻', '⽙' => '爿', '⽚' => '片', '⽛' => '牙', '⽜' => '牛', '⽝' => '犬', '⽞' => '玄', '⽟' => '玉', '⽠' => '瓜', '⽡' => '瓦', '⽢' => '甘', '⽣' => '生', '⽤' => '用', '⽥' => '田', '⽦' => '疋', '⽧' => '疒', '⽨' => '癶', '⽩' => '白', '⽪' => '皮', '⽫' => '皿', '⽬' => '目', '⽭' => '矛', '⽮' => '矢', '⽯' => '石', '⽰' => '示', '⽱' => '禸', '⽲' => '禾', '⽳' => '穴', '⽴' => '立', '⽵' => '竹', '⽶' => '米', '⽷' => '糸', '⽸' => '缶', '⽹' => '网', '⽺' => '羊', '⽻' => '羽', '⽼' => '老', '⽽' => '而', '⽾' => '耒', '⽿' => '耳', '⾀' => '聿', '⾁' => '肉', '⾂' => '臣', '⾃' => '自', '⾄' => '至', '⾅' => '臼', '⾆' => '舌', '⾇' => '舛', '⾈' => '舟', '⾉' => '艮', '⾊' => '色', '⾋' => '艸', '⾌' => '虍', '⾍' => '虫', '⾎' => '血', '⾏' => '行', '⾐' => '衣', '⾑' => '襾', '⾒' => '見', '⾓' => '角', '⾔' => '言', '⾕' => '谷', '⾖' => '豆', '⾗' => '豕', '⾘' => '豸', '⾙' => '貝', '⾚' => '赤', '⾛' => '走', '⾜' => '足', '⾝' => '身', '⾞' => '車', '⾟' => '辛', '⾠' => '辰', '⾡' => '辵', '⾢' => '邑', '⾣' => '酉', '⾤' => '釆', '⾥' => '里', '⾦' => '金', '⾧' => '長', '⾨' => '門', '⾩' => '阜', '⾪' => '隶', '⾫' => '隹', '⾬' => '雨', '⾭' => '靑', '⾮' => '非', '⾯' => '面', '⾰' => '革', '⾱' => '韋', '⾲' => '韭', '⾳' => '音', '⾴' => '頁', '⾵' => '風', '⾶' => '飛', '⾷' => '食', '⾸' => '首', '⾹' => '香', '⾺' => '馬', '⾻' => '骨', '⾼' => '高', '⾽' => '髟', '⾾' => '鬥', '⾿' => '鬯', '⿀' => '鬲', '⿁' => '鬼', '⿂' => '魚', '⿃' => '鳥', '⿄' => '鹵', '⿅' => '鹿', '⿆' => '麥', '⿇' => '麻', '⿈' => '黃', '⿉' => '黍', '⿊' => '黑', '⿋' => '黹', '⿌' => '黽', '⿍' => '鼎', '⿎' => '鼓', '⿏' => '鼠', '⿐' => '鼻', '⿑' => '齊', '⿒' => '齒', '⿓' => '龍', '⿔' => '龜', '⿕' => '龠', ' ' => ' ', '〶' => '〒', '〸' => '十', '〹' => '卄', '〺' => '卅', '゛' => ' ゙', '゜' => ' ゚', 'ゟ' => 'より', 'ヿ' => 'コト', 'ㄱ' => 'ᄀ', 'ㄲ' => 'ᄁ', 'ㄳ' => 'ᆪ', 'ㄴ' => 'ᄂ', 'ㄵ' => 'ᆬ', 'ㄶ' => 'ᆭ', 'ㄷ' => 'ᄃ', 'ㄸ' => 'ᄄ', 'ㄹ' => 'ᄅ', 'ㄺ' => 'ᆰ', 'ㄻ' => 'ᆱ', 'ㄼ' => 'ᆲ', 'ㄽ' => 'ᆳ', 'ㄾ' => 'ᆴ', 'ㄿ' => 'ᆵ', 'ㅀ' => 'ᄚ', 'ㅁ' => 'ᄆ', 'ㅂ' => 'ᄇ', 'ㅃ' => 'ᄈ', 'ㅄ' => 'ᄡ', 'ㅅ' => 'ᄉ', 'ㅆ' => 'ᄊ', 'ㅇ' => 'ᄋ', 'ㅈ' => 'ᄌ', 'ㅉ' => 'ᄍ', 'ㅊ' => 'ᄎ', 'ㅋ' => 'ᄏ', 'ㅌ' => 'ᄐ', 'ㅍ' => 'ᄑ', 'ㅎ' => 'ᄒ', 'ㅏ' => 'ᅡ', 'ㅐ' => 'ᅢ', 'ㅑ' => 'ᅣ', 'ㅒ' => 'ᅤ', 'ㅓ' => 'ᅥ', 'ㅔ' => 'ᅦ', 'ㅕ' => 'ᅧ', 'ㅖ' => 'ᅨ', 'ㅗ' => 'ᅩ', 'ㅘ' => 'ᅪ', 'ㅙ' => 'ᅫ', 'ㅚ' => 'ᅬ', 'ㅛ' => 'ᅭ', 'ㅜ' => 'ᅮ', 'ㅝ' => 'ᅯ', 'ㅞ' => 'ᅰ', 'ㅟ' => 'ᅱ', 'ㅠ' => 'ᅲ', 'ㅡ' => 'ᅳ', 'ㅢ' => 'ᅴ', 'ㅣ' => 'ᅵ', 'ㅤ' => 'ᅠ', 'ㅥ' => 'ᄔ', 'ㅦ' => 'ᄕ', 'ㅧ' => 'ᇇ', 'ㅨ' => 'ᇈ', 'ㅩ' => 'ᇌ', 'ㅪ' => 'ᇎ', 'ㅫ' => 'ᇓ', 'ㅬ' => 'ᇗ', 'ㅭ' => 'ᇙ', 'ㅮ' => 'ᄜ', 'ㅯ' => 'ᇝ', 'ㅰ' => 'ᇟ', 'ㅱ' => 'ᄝ', 'ㅲ' => 'ᄞ', 'ㅳ' => 'ᄠ', 'ㅴ' => 'ᄢ', 'ㅵ' => 'ᄣ', 'ㅶ' => 'ᄧ', 'ㅷ' => 'ᄩ', 'ㅸ' => 'ᄫ', 'ㅹ' => 'ᄬ', 'ㅺ' => 'ᄭ', 'ㅻ' => 'ᄮ', 'ㅼ' => 'ᄯ', 'ㅽ' => 'ᄲ', 'ㅾ' => 'ᄶ', 'ㅿ' => 'ᅀ', 'ㆀ' => 'ᅇ', 'ㆁ' => 'ᅌ', 'ㆂ' => 'ᇱ', 'ㆃ' => 'ᇲ', 'ㆄ' => 'ᅗ', 'ㆅ' => 'ᅘ', 'ㆆ' => 'ᅙ', 'ㆇ' => 'ᆄ', 'ㆈ' => 'ᆅ', 'ㆉ' => 'ᆈ', 'ㆊ' => 'ᆑ', 'ㆋ' => 'ᆒ', 'ㆌ' => 'ᆔ', 'ㆍ' => 'ᆞ', 'ㆎ' => 'ᆡ', '㆒' => '一', '㆓' => '二', '㆔' => '三', '㆕' => '四', '㆖' => '上', '㆗' => '中', '㆘' => '下', '㆙' => '甲', '㆚' => '乙', '㆛' => '丙', '㆜' => '丁', '㆝' => '天', '㆞' => '地', '㆟' => '人', '㈀' => '(ᄀ)', '㈁' => '(ᄂ)', '㈂' => '(ᄃ)', '㈃' => '(ᄅ)', '㈄' => '(ᄆ)', '㈅' => '(ᄇ)', '㈆' => '(ᄉ)', '㈇' => '(ᄋ)', '㈈' => '(ᄌ)', '㈉' => '(ᄎ)', '㈊' => '(ᄏ)', '㈋' => '(ᄐ)', '㈌' => '(ᄑ)', '㈍' => '(ᄒ)', '㈎' => '(가)', '㈏' => '(나)', '㈐' => '(다)', '㈑' => '(라)', '㈒' => '(마)', '㈓' => '(바)', '㈔' => '(사)', '㈕' => '(아)', '㈖' => '(자)', '㈗' => '(차)', '㈘' => '(카)', '㈙' => '(타)', '㈚' => '(파)', '㈛' => '(하)', '㈜' => '(주)', '㈝' => '(오전)', '㈞' => '(오후)', '㈠' => '(一)', '㈡' => '(二)', '㈢' => '(三)', '㈣' => '(四)', '㈤' => '(五)', '㈥' => '(六)', '㈦' => '(七)', '㈧' => '(八)', '㈨' => '(九)', '㈩' => '(十)', '㈪' => '(月)', '㈫' => '(火)', '㈬' => '(水)', '㈭' => '(木)', '㈮' => '(金)', '㈯' => '(土)', '㈰' => '(日)', '㈱' => '(株)', '㈲' => '(有)', '㈳' => '(社)', '㈴' => '(名)', '㈵' => '(特)', '㈶' => '(財)', '㈷' => '(祝)', '㈸' => '(労)', '㈹' => '(代)', '㈺' => '(呼)', '㈻' => '(学)', '㈼' => '(監)', '㈽' => '(企)', '㈾' => '(資)', '㈿' => '(協)', '㉀' => '(祭)', '㉁' => '(休)', '㉂' => '(自)', '㉃' => '(至)', '㉄' => '問', '㉅' => '幼', '㉆' => '文', '㉇' => '箏', '㉐' => 'PTE', '㉑' => '21', '㉒' => '22', '㉓' => '23', '㉔' => '24', '㉕' => '25', '㉖' => '26', '㉗' => '27', '㉘' => '28', '㉙' => '29', '㉚' => '30', '㉛' => '31', '㉜' => '32', '㉝' => '33', '㉞' => '34', '㉟' => '35', '㉠' => 'ᄀ', '㉡' => 'ᄂ', '㉢' => 'ᄃ', '㉣' => 'ᄅ', '㉤' => 'ᄆ', '㉥' => 'ᄇ', '㉦' => 'ᄉ', '㉧' => 'ᄋ', '㉨' => 'ᄌ', '㉩' => 'ᄎ', '㉪' => 'ᄏ', '㉫' => 'ᄐ', '㉬' => 'ᄑ', '㉭' => 'ᄒ', '㉮' => '가', '㉯' => '나', '㉰' => '다', '㉱' => '라', '㉲' => '마', '㉳' => '바', '㉴' => '사', '㉵' => '아', '㉶' => '자', '㉷' => '차', '㉸' => '카', '㉹' => '타', '㉺' => '파', '㉻' => '하', '㉼' => '참고', '㉽' => '주의', '㉾' => '우', '㊀' => '一', '㊁' => '二', '㊂' => '三', '㊃' => '四', '㊄' => '五', '㊅' => '六', '㊆' => '七', '㊇' => '八', '㊈' => '九', '㊉' => '十', '㊊' => '月', '㊋' => '火', '㊌' => '水', '㊍' => '木', '㊎' => '金', '㊏' => '土', '㊐' => '日', '㊑' => '株', '㊒' => '有', '㊓' => '社', '㊔' => '名', '㊕' => '特', '㊖' => '財', '㊗' => '祝', '㊘' => '労', '㊙' => '秘', '㊚' => '男', '㊛' => '女', '㊜' => '適', '㊝' => '優', '㊞' => '印', '㊟' => '注', '㊠' => '項', '㊡' => '休', '㊢' => '写', '㊣' => '正', '㊤' => '上', '㊥' => '中', '㊦' => '下', '㊧' => '左', '㊨' => '右', '㊩' => '医', '㊪' => '宗', '㊫' => '学', '㊬' => '監', '㊭' => '企', '㊮' => '資', '㊯' => '協', '㊰' => '夜', '㊱' => '36', '㊲' => '37', '㊳' => '38', '㊴' => '39', '㊵' => '40', '㊶' => '41', '㊷' => '42', '㊸' => '43', '㊹' => '44', '㊺' => '45', '㊻' => '46', '㊼' => '47', '㊽' => '48', '㊾' => '49', '㊿' => '50', '㋀' => '1月', '㋁' => '2月', '㋂' => '3月', '㋃' => '4月', '㋄' => '5月', '㋅' => '6月', '㋆' => '7月', '㋇' => '8月', '㋈' => '9月', '㋉' => '10月', '㋊' => '11月', '㋋' => '12月', '㋌' => 'Hg', '㋍' => 'erg', '㋎' => 'eV', '㋏' => 'LTD', '㋐' => 'ア', '㋑' => 'イ', '㋒' => 'ウ', '㋓' => 'エ', '㋔' => 'オ', '㋕' => 'カ', '㋖' => 'キ', '㋗' => 'ク', '㋘' => 'ケ', '㋙' => 'コ', '㋚' => 'サ', '㋛' => 'シ', '㋜' => 'ス', '㋝' => 'セ', '㋞' => 'ソ', '㋟' => 'タ', '㋠' => 'チ', '㋡' => 'ツ', '㋢' => 'テ', '㋣' => 'ト', '㋤' => 'ナ', '㋥' => 'ニ', '㋦' => 'ヌ', '㋧' => 'ネ', '㋨' => 'ノ', '㋩' => 'ハ', '㋪' => 'ヒ', '㋫' => 'フ', '㋬' => 'ヘ', '㋭' => 'ホ', '㋮' => 'マ', '㋯' => 'ミ', '㋰' => 'ム', '㋱' => 'メ', '㋲' => 'モ', '㋳' => 'ヤ', '㋴' => 'ユ', '㋵' => 'ヨ', '㋶' => 'ラ', '㋷' => 'リ', '㋸' => 'ル', '㋹' => 'レ', '㋺' => 'ロ', '㋻' => 'ワ', '㋼' => 'ヰ', '㋽' => 'ヱ', '㋾' => 'ヲ', '㋿' => '令和', '㌀' => 'アパート', '㌁' => 'アルファ', '㌂' => 'アンペア', '㌃' => 'アール', '㌄' => 'イニング', '㌅' => 'インチ', '㌆' => 'ウォン', '㌇' => 'エスクード', '㌈' => 'エーカー', '㌉' => 'オンス', '㌊' => 'オーム', '㌋' => 'カイリ', '㌌' => 'カラット', '㌍' => 'カロリー', '㌎' => 'ガロン', '㌏' => 'ガンマ', '㌐' => 'ギガ', '㌑' => 'ギニー', '㌒' => 'キュリー', '㌓' => 'ギルダー', '㌔' => 'キロ', '㌕' => 'キログラム', '㌖' => 'キロメートル', '㌗' => 'キロワット', '㌘' => 'グラム', '㌙' => 'グラムトン', '㌚' => 'クルゼイロ', '㌛' => 'クローネ', '㌜' => 'ケース', '㌝' => 'コルナ', '㌞' => 'コーポ', '㌟' => 'サイクル', '㌠' => 'サンチーム', '㌡' => 'シリング', '㌢' => 'センチ', '㌣' => 'セント', '㌤' => 'ダース', '㌥' => 'デシ', '㌦' => 'ドル', '㌧' => 'トン', '㌨' => 'ナノ', '㌩' => 'ノット', '㌪' => 'ハイツ', '㌫' => 'パーセント', '㌬' => 'パーツ', '㌭' => 'バーレル', '㌮' => 'ピアストル', '㌯' => 'ピクル', '㌰' => 'ピコ', '㌱' => 'ビル', '㌲' => 'ファラッド', '㌳' => 'フィート', '㌴' => 'ブッシェル', '㌵' => 'フラン', '㌶' => 'ヘクタール', '㌷' => 'ペソ', '㌸' => 'ペニヒ', '㌹' => 'ヘルツ', '㌺' => 'ペンス', '㌻' => 'ページ', '㌼' => 'ベータ', '㌽' => 'ポイント', '㌾' => 'ボルト', '㌿' => 'ホン', '㍀' => 'ポンド', '㍁' => 'ホール', '㍂' => 'ホーン', '㍃' => 'マイクロ', '㍄' => 'マイル', '㍅' => 'マッハ', '㍆' => 'マルク', '㍇' => 'マンション', '㍈' => 'ミクロン', '㍉' => 'ミリ', '㍊' => 'ミリバール', '㍋' => 'メガ', '㍌' => 'メガトン', '㍍' => 'メートル', '㍎' => 'ヤード', '㍏' => 'ヤール', '㍐' => 'ユアン', '㍑' => 'リットル', '㍒' => 'リラ', '㍓' => 'ルピー', '㍔' => 'ルーブル', '㍕' => 'レム', '㍖' => 'レントゲン', '㍗' => 'ワット', '㍘' => '0点', '㍙' => '1点', '㍚' => '2点', '㍛' => '3点', '㍜' => '4点', '㍝' => '5点', '㍞' => '6点', '㍟' => '7点', '㍠' => '8点', '㍡' => '9点', '㍢' => '10点', '㍣' => '11点', '㍤' => '12点', '㍥' => '13点', '㍦' => '14点', '㍧' => '15点', '㍨' => '16点', '㍩' => '17点', '㍪' => '18点', '㍫' => '19点', '㍬' => '20点', '㍭' => '21点', '㍮' => '22点', '㍯' => '23点', '㍰' => '24点', '㍱' => 'hPa', '㍲' => 'da', '㍳' => 'AU', '㍴' => 'bar', '㍵' => 'oV', '㍶' => 'pc', '㍷' => 'dm', '㍸' => 'dm2', '㍹' => 'dm3', '㍺' => 'IU', '㍻' => '平成', '㍼' => '昭和', '㍽' => '大正', '㍾' => '明治', '㍿' => '株式会社', '㎀' => 'pA', '㎁' => 'nA', '㎂' => 'μA', '㎃' => 'mA', '㎄' => 'kA', '㎅' => 'KB', '㎆' => 'MB', '㎇' => 'GB', '㎈' => 'cal', '㎉' => 'kcal', '㎊' => 'pF', '㎋' => 'nF', '㎌' => 'μF', '㎍' => 'μg', '㎎' => 'mg', '㎏' => 'kg', '㎐' => 'Hz', '㎑' => 'kHz', '㎒' => 'MHz', '㎓' => 'GHz', '㎔' => 'THz', '㎕' => 'μl', '㎖' => 'ml', '㎗' => 'dl', '㎘' => 'kl', '㎙' => 'fm', '㎚' => 'nm', '㎛' => 'μm', '㎜' => 'mm', '㎝' => 'cm', '㎞' => 'km', '㎟' => 'mm2', '㎠' => 'cm2', '㎡' => 'm2', '㎢' => 'km2', '㎣' => 'mm3', '㎤' => 'cm3', '㎥' => 'm3', '㎦' => 'km3', '㎧' => 'm∕s', '㎨' => 'm∕s2', '㎩' => 'Pa', '㎪' => 'kPa', '㎫' => 'MPa', '㎬' => 'GPa', '㎭' => 'rad', '㎮' => 'rad∕s', '㎯' => 'rad∕s2', '㎰' => 'ps', '㎱' => 'ns', '㎲' => 'μs', '㎳' => 'ms', '㎴' => 'pV', '㎵' => 'nV', '㎶' => 'μV', '㎷' => 'mV', '㎸' => 'kV', '㎹' => 'MV', '㎺' => 'pW', '㎻' => 'nW', '㎼' => 'μW', '㎽' => 'mW', '㎾' => 'kW', '㎿' => 'MW', '㏀' => 'kΩ', '㏁' => 'MΩ', '㏂' => 'a.m.', '㏃' => 'Bq', '㏄' => 'cc', '㏅' => 'cd', '㏆' => 'C∕kg', '㏇' => 'Co.', '㏈' => 'dB', '㏉' => 'Gy', '㏊' => 'ha', '㏋' => 'HP', '㏌' => 'in', '㏍' => 'KK', '㏎' => 'KM', '㏏' => 'kt', '㏐' => 'lm', '㏑' => 'ln', '㏒' => 'log', '㏓' => 'lx', '㏔' => 'mb', '㏕' => 'mil', '㏖' => 'mol', '㏗' => 'PH', '㏘' => 'p.m.', '㏙' => 'PPM', '㏚' => 'PR', '㏛' => 'sr', '㏜' => 'Sv', '㏝' => 'Wb', '㏞' => 'V∕m', '㏟' => 'A∕m', '㏠' => '1日', '㏡' => '2日', '㏢' => '3日', '㏣' => '4日', '㏤' => '5日', '㏥' => '6日', '㏦' => '7日', '㏧' => '8日', '㏨' => '9日', '㏩' => '10日', '㏪' => '11日', '㏫' => '12日', '㏬' => '13日', '㏭' => '14日', '㏮' => '15日', '㏯' => '16日', '㏰' => '17日', '㏱' => '18日', '㏲' => '19日', '㏳' => '20日', '㏴' => '21日', '㏵' => '22日', '㏶' => '23日', '㏷' => '24日', '㏸' => '25日', '㏹' => '26日', '㏺' => '27日', '㏻' => '28日', '㏼' => '29日', '㏽' => '30日', '㏾' => '31日', '㏿' => 'gal', 'ꚜ' => 'ъ', 'ꚝ' => 'ь', 'ꝰ' => 'ꝯ', 'ꟸ' => 'Ħ', 'ꟹ' => 'œ', 'ꭜ' => 'ꜧ', 'ꭝ' => 'ꬷ', 'ꭞ' => 'ɫ', 'ꭟ' => 'ꭒ', 'ꭩ' => 'ʍ', 'ff' => 'ff', 'fi' => 'fi', 'fl' => 'fl', 'ffi' => 'ffi', 'ffl' => 'ffl', 'ſt' => 'st', 'st' => 'st', 'ﬓ' => 'մն', 'ﬔ' => 'մե', 'ﬕ' => 'մի', 'ﬖ' => 'վն', 'ﬗ' => 'մխ', 'ﬠ' => 'ע', 'ﬡ' => 'א', 'ﬢ' => 'ד', 'ﬣ' => 'ה', 'ﬤ' => 'כ', 'ﬥ' => 'ל', 'ﬦ' => 'ם', 'ﬧ' => 'ר', 'ﬨ' => 'ת', '﬩' => '+', 'ﭏ' => 'אל', 'ﭐ' => 'ٱ', 'ﭑ' => 'ٱ', 'ﭒ' => 'ٻ', 'ﭓ' => 'ٻ', 'ﭔ' => 'ٻ', 'ﭕ' => 'ٻ', 'ﭖ' => 'پ', 'ﭗ' => 'پ', 'ﭘ' => 'پ', 'ﭙ' => 'پ', 'ﭚ' => 'ڀ', 'ﭛ' => 'ڀ', 'ﭜ' => 'ڀ', 'ﭝ' => 'ڀ', 'ﭞ' => 'ٺ', 'ﭟ' => 'ٺ', 'ﭠ' => 'ٺ', 'ﭡ' => 'ٺ', 'ﭢ' => 'ٿ', 'ﭣ' => 'ٿ', 'ﭤ' => 'ٿ', 'ﭥ' => 'ٿ', 'ﭦ' => 'ٹ', 'ﭧ' => 'ٹ', 'ﭨ' => 'ٹ', 'ﭩ' => 'ٹ', 'ﭪ' => 'ڤ', 'ﭫ' => 'ڤ', 'ﭬ' => 'ڤ', 'ﭭ' => 'ڤ', 'ﭮ' => 'ڦ', 'ﭯ' => 'ڦ', 'ﭰ' => 'ڦ', 'ﭱ' => 'ڦ', 'ﭲ' => 'ڄ', 'ﭳ' => 'ڄ', 'ﭴ' => 'ڄ', 'ﭵ' => 'ڄ', 'ﭶ' => 'ڃ', 'ﭷ' => 'ڃ', 'ﭸ' => 'ڃ', 'ﭹ' => 'ڃ', 'ﭺ' => 'چ', 'ﭻ' => 'چ', 'ﭼ' => 'چ', 'ﭽ' => 'چ', 'ﭾ' => 'ڇ', 'ﭿ' => 'ڇ', 'ﮀ' => 'ڇ', 'ﮁ' => 'ڇ', 'ﮂ' => 'ڍ', 'ﮃ' => 'ڍ', 'ﮄ' => 'ڌ', 'ﮅ' => 'ڌ', 'ﮆ' => 'ڎ', 'ﮇ' => 'ڎ', 'ﮈ' => 'ڈ', 'ﮉ' => 'ڈ', 'ﮊ' => 'ژ', 'ﮋ' => 'ژ', 'ﮌ' => 'ڑ', 'ﮍ' => 'ڑ', 'ﮎ' => 'ک', 'ﮏ' => 'ک', 'ﮐ' => 'ک', 'ﮑ' => 'ک', 'ﮒ' => 'گ', 'ﮓ' => 'گ', 'ﮔ' => 'گ', 'ﮕ' => 'گ', 'ﮖ' => 'ڳ', 'ﮗ' => 'ڳ', 'ﮘ' => 'ڳ', 'ﮙ' => 'ڳ', 'ﮚ' => 'ڱ', 'ﮛ' => 'ڱ', 'ﮜ' => 'ڱ', 'ﮝ' => 'ڱ', 'ﮞ' => 'ں', 'ﮟ' => 'ں', 'ﮠ' => 'ڻ', 'ﮡ' => 'ڻ', 'ﮢ' => 'ڻ', 'ﮣ' => 'ڻ', 'ﮤ' => 'ۀ', 'ﮥ' => 'ۀ', 'ﮦ' => 'ہ', 'ﮧ' => 'ہ', 'ﮨ' => 'ہ', 'ﮩ' => 'ہ', 'ﮪ' => 'ھ', 'ﮫ' => 'ھ', 'ﮬ' => 'ھ', 'ﮭ' => 'ھ', 'ﮮ' => 'ے', 'ﮯ' => 'ے', 'ﮰ' => 'ۓ', 'ﮱ' => 'ۓ', 'ﯓ' => 'ڭ', 'ﯔ' => 'ڭ', 'ﯕ' => 'ڭ', 'ﯖ' => 'ڭ', 'ﯗ' => 'ۇ', 'ﯘ' => 'ۇ', 'ﯙ' => 'ۆ', 'ﯚ' => 'ۆ', 'ﯛ' => 'ۈ', 'ﯜ' => 'ۈ', 'ﯝ' => 'ۇٴ', 'ﯞ' => 'ۋ', 'ﯟ' => 'ۋ', 'ﯠ' => 'ۅ', 'ﯡ' => 'ۅ', 'ﯢ' => 'ۉ', 'ﯣ' => 'ۉ', 'ﯤ' => 'ې', 'ﯥ' => 'ې', 'ﯦ' => 'ې', 'ﯧ' => 'ې', 'ﯨ' => 'ى', 'ﯩ' => 'ى', 'ﯪ' => 'ئا', 'ﯫ' => 'ئا', 'ﯬ' => 'ئە', 'ﯭ' => 'ئە', 'ﯮ' => 'ئو', 'ﯯ' => 'ئو', 'ﯰ' => 'ئۇ', 'ﯱ' => 'ئۇ', 'ﯲ' => 'ئۆ', 'ﯳ' => 'ئۆ', 'ﯴ' => 'ئۈ', 'ﯵ' => 'ئۈ', 'ﯶ' => 'ئې', 'ﯷ' => 'ئې', 'ﯸ' => 'ئې', 'ﯹ' => 'ئى', 'ﯺ' => 'ئى', 'ﯻ' => 'ئى', 'ﯼ' => 'ی', 'ﯽ' => 'ی', 'ﯾ' => 'ی', 'ﯿ' => 'ی', 'ﰀ' => 'ئج', 'ﰁ' => 'ئح', 'ﰂ' => 'ئم', 'ﰃ' => 'ئى', 'ﰄ' => 'ئي', 'ﰅ' => 'بج', 'ﰆ' => 'بح', 'ﰇ' => 'بخ', 'ﰈ' => 'بم', 'ﰉ' => 'بى', 'ﰊ' => 'بي', 'ﰋ' => 'تج', 'ﰌ' => 'تح', 'ﰍ' => 'تخ', 'ﰎ' => 'تم', 'ﰏ' => 'تى', 'ﰐ' => 'تي', 'ﰑ' => 'ثج', 'ﰒ' => 'ثم', 'ﰓ' => 'ثى', 'ﰔ' => 'ثي', 'ﰕ' => 'جح', 'ﰖ' => 'جم', 'ﰗ' => 'حج', 'ﰘ' => 'حم', 'ﰙ' => 'خج', 'ﰚ' => 'خح', 'ﰛ' => 'خم', 'ﰜ' => 'سج', 'ﰝ' => 'سح', 'ﰞ' => 'سخ', 'ﰟ' => 'سم', 'ﰠ' => 'صح', 'ﰡ' => 'صم', 'ﰢ' => 'ضج', 'ﰣ' => 'ضح', 'ﰤ' => 'ضخ', 'ﰥ' => 'ضم', 'ﰦ' => 'طح', 'ﰧ' => 'طم', 'ﰨ' => 'ظم', 'ﰩ' => 'عج', 'ﰪ' => 'عم', 'ﰫ' => 'غج', 'ﰬ' => 'غم', 'ﰭ' => 'فج', 'ﰮ' => 'فح', 'ﰯ' => 'فخ', 'ﰰ' => 'فم', 'ﰱ' => 'فى', 'ﰲ' => 'في', 'ﰳ' => 'قح', 'ﰴ' => 'قم', 'ﰵ' => 'قى', 'ﰶ' => 'قي', 'ﰷ' => 'كا', 'ﰸ' => 'كج', 'ﰹ' => 'كح', 'ﰺ' => 'كخ', 'ﰻ' => 'كل', 'ﰼ' => 'كم', 'ﰽ' => 'كى', 'ﰾ' => 'كي', 'ﰿ' => 'لج', 'ﱀ' => 'لح', 'ﱁ' => 'لخ', 'ﱂ' => 'لم', 'ﱃ' => 'لى', 'ﱄ' => 'لي', 'ﱅ' => 'مج', 'ﱆ' => 'مح', 'ﱇ' => 'مخ', 'ﱈ' => 'مم', 'ﱉ' => 'مى', 'ﱊ' => 'مي', 'ﱋ' => 'نج', 'ﱌ' => 'نح', 'ﱍ' => 'نخ', 'ﱎ' => 'نم', 'ﱏ' => 'نى', 'ﱐ' => 'ني', 'ﱑ' => 'هج', 'ﱒ' => 'هم', 'ﱓ' => 'هى', 'ﱔ' => 'هي', 'ﱕ' => 'يج', 'ﱖ' => 'يح', 'ﱗ' => 'يخ', 'ﱘ' => 'يم', 'ﱙ' => 'يى', 'ﱚ' => 'يي', 'ﱛ' => 'ذٰ', 'ﱜ' => 'رٰ', 'ﱝ' => 'ىٰ', 'ﱞ' => ' ٌّ', 'ﱟ' => ' ٍّ', 'ﱠ' => ' َّ', 'ﱡ' => ' ُّ', 'ﱢ' => ' ِّ', 'ﱣ' => ' ّٰ', 'ﱤ' => 'ئر', 'ﱥ' => 'ئز', 'ﱦ' => 'ئم', 'ﱧ' => 'ئن', 'ﱨ' => 'ئى', 'ﱩ' => 'ئي', 'ﱪ' => 'بر', 'ﱫ' => 'بز', 'ﱬ' => 'بم', 'ﱭ' => 'بن', 'ﱮ' => 'بى', 'ﱯ' => 'بي', 'ﱰ' => 'تر', 'ﱱ' => 'تز', 'ﱲ' => 'تم', 'ﱳ' => 'تن', 'ﱴ' => 'تى', 'ﱵ' => 'تي', 'ﱶ' => 'ثر', 'ﱷ' => 'ثز', 'ﱸ' => 'ثم', 'ﱹ' => 'ثن', 'ﱺ' => 'ثى', 'ﱻ' => 'ثي', 'ﱼ' => 'فى', 'ﱽ' => 'في', 'ﱾ' => 'قى', 'ﱿ' => 'قي', 'ﲀ' => 'كا', 'ﲁ' => 'كل', 'ﲂ' => 'كم', 'ﲃ' => 'كى', 'ﲄ' => 'كي', 'ﲅ' => 'لم', 'ﲆ' => 'لى', 'ﲇ' => 'لي', 'ﲈ' => 'ما', 'ﲉ' => 'مم', 'ﲊ' => 'نر', 'ﲋ' => 'نز', 'ﲌ' => 'نم', 'ﲍ' => 'نن', 'ﲎ' => 'نى', 'ﲏ' => 'ني', 'ﲐ' => 'ىٰ', 'ﲑ' => 'ير', 'ﲒ' => 'يز', 'ﲓ' => 'يم', 'ﲔ' => 'ين', 'ﲕ' => 'يى', 'ﲖ' => 'يي', 'ﲗ' => 'ئج', 'ﲘ' => 'ئح', 'ﲙ' => 'ئخ', 'ﲚ' => 'ئم', 'ﲛ' => 'ئه', 'ﲜ' => 'بج', 'ﲝ' => 'بح', 'ﲞ' => 'بخ', 'ﲟ' => 'بم', 'ﲠ' => 'به', 'ﲡ' => 'تج', 'ﲢ' => 'تح', 'ﲣ' => 'تخ', 'ﲤ' => 'تم', 'ﲥ' => 'ته', 'ﲦ' => 'ثم', 'ﲧ' => 'جح', 'ﲨ' => 'جم', 'ﲩ' => 'حج', 'ﲪ' => 'حم', 'ﲫ' => 'خج', 'ﲬ' => 'خم', 'ﲭ' => 'سج', 'ﲮ' => 'سح', 'ﲯ' => 'سخ', 'ﲰ' => 'سم', 'ﲱ' => 'صح', 'ﲲ' => 'صخ', 'ﲳ' => 'صم', 'ﲴ' => 'ضج', 'ﲵ' => 'ضح', 'ﲶ' => 'ضخ', 'ﲷ' => 'ضم', 'ﲸ' => 'طح', 'ﲹ' => 'ظم', 'ﲺ' => 'عج', 'ﲻ' => 'عم', 'ﲼ' => 'غج', 'ﲽ' => 'غم', 'ﲾ' => 'فج', 'ﲿ' => 'فح', 'ﳀ' => 'فخ', 'ﳁ' => 'فم', 'ﳂ' => 'قح', 'ﳃ' => 'قم', 'ﳄ' => 'كج', 'ﳅ' => 'كح', 'ﳆ' => 'كخ', 'ﳇ' => 'كل', 'ﳈ' => 'كم', 'ﳉ' => 'لج', 'ﳊ' => 'لح', 'ﳋ' => 'لخ', 'ﳌ' => 'لم', 'ﳍ' => 'له', 'ﳎ' => 'مج', 'ﳏ' => 'مح', 'ﳐ' => 'مخ', 'ﳑ' => 'مم', 'ﳒ' => 'نج', 'ﳓ' => 'نح', 'ﳔ' => 'نخ', 'ﳕ' => 'نم', 'ﳖ' => 'نه', 'ﳗ' => 'هج', 'ﳘ' => 'هم', 'ﳙ' => 'هٰ', 'ﳚ' => 'يج', 'ﳛ' => 'يح', 'ﳜ' => 'يخ', 'ﳝ' => 'يم', 'ﳞ' => 'يه', 'ﳟ' => 'ئم', 'ﳠ' => 'ئه', 'ﳡ' => 'بم', 'ﳢ' => 'به', 'ﳣ' => 'تم', 'ﳤ' => 'ته', 'ﳥ' => 'ثم', 'ﳦ' => 'ثه', 'ﳧ' => 'سم', 'ﳨ' => 'سه', 'ﳩ' => 'شم', 'ﳪ' => 'شه', 'ﳫ' => 'كل', 'ﳬ' => 'كم', 'ﳭ' => 'لم', 'ﳮ' => 'نم', 'ﳯ' => 'نه', 'ﳰ' => 'يم', 'ﳱ' => 'يه', 'ﳲ' => 'ـَّ', 'ﳳ' => 'ـُّ', 'ﳴ' => 'ـِّ', 'ﳵ' => 'طى', 'ﳶ' => 'طي', 'ﳷ' => 'عى', 'ﳸ' => 'عي', 'ﳹ' => 'غى', 'ﳺ' => 'غي', 'ﳻ' => 'سى', 'ﳼ' => 'سي', 'ﳽ' => 'شى', 'ﳾ' => 'شي', 'ﳿ' => 'حى', 'ﴀ' => 'حي', 'ﴁ' => 'جى', 'ﴂ' => 'جي', 'ﴃ' => 'خى', 'ﴄ' => 'خي', 'ﴅ' => 'صى', 'ﴆ' => 'صي', 'ﴇ' => 'ضى', 'ﴈ' => 'ضي', 'ﴉ' => 'شج', 'ﴊ' => 'شح', 'ﴋ' => 'شخ', 'ﴌ' => 'شم', 'ﴍ' => 'شر', 'ﴎ' => 'سر', 'ﴏ' => 'صر', 'ﴐ' => 'ضر', 'ﴑ' => 'طى', 'ﴒ' => 'طي', 'ﴓ' => 'عى', 'ﴔ' => 'عي', 'ﴕ' => 'غى', 'ﴖ' => 'غي', 'ﴗ' => 'سى', 'ﴘ' => 'سي', 'ﴙ' => 'شى', 'ﴚ' => 'شي', 'ﴛ' => 'حى', 'ﴜ' => 'حي', 'ﴝ' => 'جى', 'ﴞ' => 'جي', 'ﴟ' => 'خى', 'ﴠ' => 'خي', 'ﴡ' => 'صى', 'ﴢ' => 'صي', 'ﴣ' => 'ضى', 'ﴤ' => 'ضي', 'ﴥ' => 'شج', 'ﴦ' => 'شح', 'ﴧ' => 'شخ', 'ﴨ' => 'شم', 'ﴩ' => 'شر', 'ﴪ' => 'سر', 'ﴫ' => 'صر', 'ﴬ' => 'ضر', 'ﴭ' => 'شج', 'ﴮ' => 'شح', 'ﴯ' => 'شخ', 'ﴰ' => 'شم', 'ﴱ' => 'سه', 'ﴲ' => 'شه', 'ﴳ' => 'طم', 'ﴴ' => 'سج', 'ﴵ' => 'سح', 'ﴶ' => 'سخ', 'ﴷ' => 'شج', 'ﴸ' => 'شح', 'ﴹ' => 'شخ', 'ﴺ' => 'طم', 'ﴻ' => 'ظم', 'ﴼ' => 'اً', 'ﴽ' => 'اً', 'ﵐ' => 'تجم', 'ﵑ' => 'تحج', 'ﵒ' => 'تحج', 'ﵓ' => 'تحم', 'ﵔ' => 'تخم', 'ﵕ' => 'تمج', 'ﵖ' => 'تمح', 'ﵗ' => 'تمخ', 'ﵘ' => 'جمح', 'ﵙ' => 'جمح', 'ﵚ' => 'حمي', 'ﵛ' => 'حمى', 'ﵜ' => 'سحج', 'ﵝ' => 'سجح', 'ﵞ' => 'سجى', 'ﵟ' => 'سمح', 'ﵠ' => 'سمح', 'ﵡ' => 'سمج', 'ﵢ' => 'سمم', 'ﵣ' => 'سمم', 'ﵤ' => 'صحح', 'ﵥ' => 'صحح', 'ﵦ' => 'صمم', 'ﵧ' => 'شحم', 'ﵨ' => 'شحم', 'ﵩ' => 'شجي', 'ﵪ' => 'شمخ', 'ﵫ' => 'شمخ', 'ﵬ' => 'شمم', 'ﵭ' => 'شمم', 'ﵮ' => 'ضحى', 'ﵯ' => 'ضخم', 'ﵰ' => 'ضخم', 'ﵱ' => 'طمح', 'ﵲ' => 'طمح', 'ﵳ' => 'طمم', 'ﵴ' => 'طمي', 'ﵵ' => 'عجم', 'ﵶ' => 'عمم', 'ﵷ' => 'عمم', 'ﵸ' => 'عمى', 'ﵹ' => 'غمم', 'ﵺ' => 'غمي', 'ﵻ' => 'غمى', 'ﵼ' => 'فخم', 'ﵽ' => 'فخم', 'ﵾ' => 'قمح', 'ﵿ' => 'قمم', 'ﶀ' => 'لحم', 'ﶁ' => 'لحي', 'ﶂ' => 'لحى', 'ﶃ' => 'لجج', 'ﶄ' => 'لجج', 'ﶅ' => 'لخم', 'ﶆ' => 'لخم', 'ﶇ' => 'لمح', 'ﶈ' => 'لمح', 'ﶉ' => 'محج', 'ﶊ' => 'محم', 'ﶋ' => 'محي', 'ﶌ' => 'مجح', 'ﶍ' => 'مجم', 'ﶎ' => 'مخج', 'ﶏ' => 'مخم', 'ﶒ' => 'مجخ', 'ﶓ' => 'همج', 'ﶔ' => 'همم', 'ﶕ' => 'نحم', 'ﶖ' => 'نحى', 'ﶗ' => 'نجم', 'ﶘ' => 'نجم', 'ﶙ' => 'نجى', 'ﶚ' => 'نمي', 'ﶛ' => 'نمى', 'ﶜ' => 'يمم', 'ﶝ' => 'يمم', 'ﶞ' => 'بخي', 'ﶟ' => 'تجي', 'ﶠ' => 'تجى', 'ﶡ' => 'تخي', 'ﶢ' => 'تخى', 'ﶣ' => 'تمي', 'ﶤ' => 'تمى', 'ﶥ' => 'جمي', 'ﶦ' => 'جحى', 'ﶧ' => 'جمى', 'ﶨ' => 'سخى', 'ﶩ' => 'صحي', 'ﶪ' => 'شحي', 'ﶫ' => 'ضحي', 'ﶬ' => 'لجي', 'ﶭ' => 'لمي', 'ﶮ' => 'يحي', 'ﶯ' => 'يجي', 'ﶰ' => 'يمي', 'ﶱ' => 'ممي', 'ﶲ' => 'قمي', 'ﶳ' => 'نحي', 'ﶴ' => 'قمح', 'ﶵ' => 'لحم', 'ﶶ' => 'عمي', 'ﶷ' => 'كمي', 'ﶸ' => 'نجح', 'ﶹ' => 'مخي', 'ﶺ' => 'لجم', 'ﶻ' => 'كمم', 'ﶼ' => 'لجم', 'ﶽ' => 'نجح', 'ﶾ' => 'جحي', 'ﶿ' => 'حجي', 'ﷀ' => 'مجي', 'ﷁ' => 'فمي', 'ﷂ' => 'بحي', 'ﷃ' => 'كمم', 'ﷄ' => 'عجم', 'ﷅ' => 'صمم', 'ﷆ' => 'سخي', 'ﷇ' => 'نجي', 'ﷰ' => 'صلے', 'ﷱ' => 'قلے', 'ﷲ' => 'الله', 'ﷳ' => 'اكبر', 'ﷴ' => 'محمد', 'ﷵ' => 'صلعم', 'ﷶ' => 'رسول', 'ﷷ' => 'عليه', 'ﷸ' => 'وسلم', 'ﷹ' => 'صلى', 'ﷺ' => 'صلى الله عليه وسلم', 'ﷻ' => 'جل جلاله', '﷼' => 'ریال', '︐' => ',', '︑' => '、', '︒' => '。', '︓' => ':', '︔' => ';', '︕' => '!', '︖' => '?', '︗' => '〖', '︘' => '〗', '︙' => '...', '︰' => '..', '︱' => '—', '︲' => '–', '︳' => '_', '︴' => '_', '︵' => '(', '︶' => ')', '︷' => '{', '︸' => '}', '︹' => '〔', '︺' => '〕', '︻' => '【', '︼' => '】', '︽' => '《', '︾' => '》', '︿' => '〈', '﹀' => '〉', '﹁' => '「', '﹂' => '」', '﹃' => '『', '﹄' => '』', '﹇' => '[', '﹈' => ']', '﹉' => ' ̅', '﹊' => ' ̅', '﹋' => ' ̅', '﹌' => ' ̅', '﹍' => '_', '﹎' => '_', '﹏' => '_', '﹐' => ',', '﹑' => '、', '﹒' => '.', '﹔' => ';', '﹕' => ':', '﹖' => '?', '﹗' => '!', '﹘' => '—', '﹙' => '(', '﹚' => ')', '﹛' => '{', '﹜' => '}', '﹝' => '〔', '﹞' => '〕', '﹟' => '#', '﹠' => '&', '﹡' => '*', '﹢' => '+', '﹣' => '-', '﹤' => '<', '﹥' => '>', '﹦' => '=', '﹨' => '\\', '﹩' => '$', '﹪' => '%', '﹫' => '@', 'ﹰ' => ' ً', 'ﹱ' => 'ـً', 'ﹲ' => ' ٌ', 'ﹴ' => ' ٍ', 'ﹶ' => ' َ', 'ﹷ' => 'ـَ', 'ﹸ' => ' ُ', 'ﹹ' => 'ـُ', 'ﹺ' => ' ِ', 'ﹻ' => 'ـِ', 'ﹼ' => ' ّ', 'ﹽ' => 'ـّ', 'ﹾ' => ' ْ', 'ﹿ' => 'ـْ', 'ﺀ' => 'ء', 'ﺁ' => 'آ', 'ﺂ' => 'آ', 'ﺃ' => 'أ', 'ﺄ' => 'أ', 'ﺅ' => 'ؤ', 'ﺆ' => 'ؤ', 'ﺇ' => 'إ', 'ﺈ' => 'إ', 'ﺉ' => 'ئ', 'ﺊ' => 'ئ', 'ﺋ' => 'ئ', 'ﺌ' => 'ئ', 'ﺍ' => 'ا', 'ﺎ' => 'ا', 'ﺏ' => 'ب', 'ﺐ' => 'ب', 'ﺑ' => 'ب', 'ﺒ' => 'ب', 'ﺓ' => 'ة', 'ﺔ' => 'ة', 'ﺕ' => 'ت', 'ﺖ' => 'ت', 'ﺗ' => 'ت', 'ﺘ' => 'ت', 'ﺙ' => 'ث', 'ﺚ' => 'ث', 'ﺛ' => 'ث', 'ﺜ' => 'ث', 'ﺝ' => 'ج', 'ﺞ' => 'ج', 'ﺟ' => 'ج', 'ﺠ' => 'ج', 'ﺡ' => 'ح', 'ﺢ' => 'ح', 'ﺣ' => 'ح', 'ﺤ' => 'ح', 'ﺥ' => 'خ', 'ﺦ' => 'خ', 'ﺧ' => 'خ', 'ﺨ' => 'خ', 'ﺩ' => 'د', 'ﺪ' => 'د', 'ﺫ' => 'ذ', 'ﺬ' => 'ذ', 'ﺭ' => 'ر', 'ﺮ' => 'ر', 'ﺯ' => 'ز', 'ﺰ' => 'ز', 'ﺱ' => 'س', 'ﺲ' => 'س', 'ﺳ' => 'س', 'ﺴ' => 'س', 'ﺵ' => 'ش', 'ﺶ' => 'ش', 'ﺷ' => 'ش', 'ﺸ' => 'ش', 'ﺹ' => 'ص', 'ﺺ' => 'ص', 'ﺻ' => 'ص', 'ﺼ' => 'ص', 'ﺽ' => 'ض', 'ﺾ' => 'ض', 'ﺿ' => 'ض', 'ﻀ' => 'ض', 'ﻁ' => 'ط', 'ﻂ' => 'ط', 'ﻃ' => 'ط', 'ﻄ' => 'ط', 'ﻅ' => 'ظ', 'ﻆ' => 'ظ', 'ﻇ' => 'ظ', 'ﻈ' => 'ظ', 'ﻉ' => 'ع', 'ﻊ' => 'ع', 'ﻋ' => 'ع', 'ﻌ' => 'ع', 'ﻍ' => 'غ', 'ﻎ' => 'غ', 'ﻏ' => 'غ', 'ﻐ' => 'غ', 'ﻑ' => 'ف', 'ﻒ' => 'ف', 'ﻓ' => 'ف', 'ﻔ' => 'ف', 'ﻕ' => 'ق', 'ﻖ' => 'ق', 'ﻗ' => 'ق', 'ﻘ' => 'ق', 'ﻙ' => 'ك', 'ﻚ' => 'ك', 'ﻛ' => 'ك', 'ﻜ' => 'ك', 'ﻝ' => 'ل', 'ﻞ' => 'ل', 'ﻟ' => 'ل', 'ﻠ' => 'ل', 'ﻡ' => 'م', 'ﻢ' => 'م', 'ﻣ' => 'م', 'ﻤ' => 'م', 'ﻥ' => 'ن', 'ﻦ' => 'ن', 'ﻧ' => 'ن', 'ﻨ' => 'ن', 'ﻩ' => 'ه', 'ﻪ' => 'ه', 'ﻫ' => 'ه', 'ﻬ' => 'ه', 'ﻭ' => 'و', 'ﻮ' => 'و', 'ﻯ' => 'ى', 'ﻰ' => 'ى', 'ﻱ' => 'ي', 'ﻲ' => 'ي', 'ﻳ' => 'ي', 'ﻴ' => 'ي', 'ﻵ' => 'لآ', 'ﻶ' => 'لآ', 'ﻷ' => 'لأ', 'ﻸ' => 'لأ', 'ﻹ' => 'لإ', 'ﻺ' => 'لإ', 'ﻻ' => 'لا', 'ﻼ' => 'لا', '!' => '!', '"' => '"', '#' => '#', '$' => '$', '%' => '%', '&' => '&', ''' => '\'', '(' => '(', ')' => ')', '*' => '*', '+' => '+', ',' => ',', '-' => '-', '.' => '.', '/' => '/', '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', ':' => ':', ';' => ';', '<' => '<', '=' => '=', '>' => '>', '?' => '?', '@' => '@', 'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E', 'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J', 'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O', 'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T', 'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y', 'Z' => 'Z', '[' => '[', '\' => '\\', ']' => ']', '^' => '^', '_' => '_', '`' => '`', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', '{' => '{', '|' => '|', '}' => '}', '~' => '~', '⦅' => '⦅', '⦆' => '⦆', '。' => '。', '「' => '「', '」' => '」', '、' => '、', '・' => '・', 'ヲ' => 'ヲ', 'ァ' => 'ァ', 'ィ' => 'ィ', 'ゥ' => 'ゥ', 'ェ' => 'ェ', 'ォ' => 'ォ', 'ャ' => 'ャ', 'ュ' => 'ュ', 'ョ' => 'ョ', 'ッ' => 'ッ', 'ー' => 'ー', 'ア' => 'ア', 'イ' => 'イ', 'ウ' => 'ウ', 'エ' => 'エ', 'オ' => 'オ', 'カ' => 'カ', 'キ' => 'キ', 'ク' => 'ク', 'ケ' => 'ケ', 'コ' => 'コ', 'サ' => 'サ', 'シ' => 'シ', 'ス' => 'ス', 'セ' => 'セ', 'ソ' => 'ソ', 'タ' => 'タ', 'チ' => 'チ', 'ツ' => 'ツ', 'テ' => 'テ', 'ト' => 'ト', 'ナ' => 'ナ', 'ニ' => 'ニ', 'ヌ' => 'ヌ', 'ネ' => 'ネ', 'ノ' => 'ノ', 'ハ' => 'ハ', 'ヒ' => 'ヒ', 'フ' => 'フ', 'ヘ' => 'ヘ', 'ホ' => 'ホ', 'マ' => 'マ', 'ミ' => 'ミ', 'ム' => 'ム', 'メ' => 'メ', 'モ' => 'モ', 'ヤ' => 'ヤ', 'ユ' => 'ユ', 'ヨ' => 'ヨ', 'ラ' => 'ラ', 'リ' => 'リ', 'ル' => 'ル', 'レ' => 'レ', 'ロ' => 'ロ', 'ワ' => 'ワ', 'ン' => 'ン', '゙' => '゙', '゚' => '゚', 'ᅠ' => 'ᅠ', 'ᄀ' => 'ᄀ', 'ᄁ' => 'ᄁ', 'ᆪ' => 'ᆪ', 'ᄂ' => 'ᄂ', 'ᆬ' => 'ᆬ', 'ᆭ' => 'ᆭ', 'ᄃ' => 'ᄃ', 'ᄄ' => 'ᄄ', 'ᄅ' => 'ᄅ', 'ᆰ' => 'ᆰ', 'ᆱ' => 'ᆱ', 'ᆲ' => 'ᆲ', 'ᆳ' => 'ᆳ', 'ᆴ' => 'ᆴ', 'ᆵ' => 'ᆵ', 'ᄚ' => 'ᄚ', 'ᄆ' => 'ᄆ', 'ᄇ' => 'ᄇ', 'ᄈ' => 'ᄈ', 'ᄡ' => 'ᄡ', 'ᄉ' => 'ᄉ', 'ᄊ' => 'ᄊ', 'ᄋ' => 'ᄋ', 'ᄌ' => 'ᄌ', 'ᄍ' => 'ᄍ', 'ᄎ' => 'ᄎ', 'ᄏ' => 'ᄏ', 'ᄐ' => 'ᄐ', 'ᄑ' => 'ᄑ', 'ᄒ' => 'ᄒ', 'ᅡ' => 'ᅡ', 'ᅢ' => 'ᅢ', 'ᅣ' => 'ᅣ', 'ᅤ' => 'ᅤ', 'ᅥ' => 'ᅥ', 'ᅦ' => 'ᅦ', 'ᅧ' => 'ᅧ', 'ᅨ' => 'ᅨ', 'ᅩ' => 'ᅩ', 'ᅪ' => 'ᅪ', 'ᅫ' => 'ᅫ', 'ᅬ' => 'ᅬ', 'ᅭ' => 'ᅭ', 'ᅮ' => 'ᅮ', 'ᅯ' => 'ᅯ', 'ᅰ' => 'ᅰ', 'ᅱ' => 'ᅱ', 'ᅲ' => 'ᅲ', 'ᅳ' => 'ᅳ', 'ᅴ' => 'ᅴ', 'ᅵ' => 'ᅵ', '¢' => '¢', '£' => '£', '¬' => '¬', ' ̄' => ' ̄', '¦' => '¦', '¥' => '¥', '₩' => '₩', '│' => '│', '←' => '←', '↑' => '↑', '→' => '→', '↓' => '↓', '■' => '■', '○' => '○', '𝐀' => 'A', '𝐁' => 'B', '𝐂' => 'C', '𝐃' => 'D', '𝐄' => 'E', '𝐅' => 'F', '𝐆' => 'G', '𝐇' => 'H', '𝐈' => 'I', '𝐉' => 'J', '𝐊' => 'K', '𝐋' => 'L', '𝐌' => 'M', '𝐍' => 'N', '𝐎' => 'O', '𝐏' => 'P', '𝐐' => 'Q', '𝐑' => 'R', '𝐒' => 'S', '𝐓' => 'T', '𝐔' => 'U', '𝐕' => 'V', '𝐖' => 'W', '𝐗' => 'X', '𝐘' => 'Y', '𝐙' => 'Z', '𝐚' => 'a', '𝐛' => 'b', '𝐜' => 'c', '𝐝' => 'd', '𝐞' => 'e', '𝐟' => 'f', '𝐠' => 'g', '𝐡' => 'h', '𝐢' => 'i', '𝐣' => 'j', '𝐤' => 'k', '𝐥' => 'l', '𝐦' => 'm', '𝐧' => 'n', '𝐨' => 'o', '𝐩' => 'p', '𝐪' => 'q', '𝐫' => 'r', '𝐬' => 's', '𝐭' => 't', '𝐮' => 'u', '𝐯' => 'v', '𝐰' => 'w', '𝐱' => 'x', '𝐲' => 'y', '𝐳' => 'z', '𝐴' => 'A', '𝐵' => 'B', '𝐶' => 'C', '𝐷' => 'D', '𝐸' => 'E', '𝐹' => 'F', '𝐺' => 'G', '𝐻' => 'H', '𝐼' => 'I', '𝐽' => 'J', '𝐾' => 'K', '𝐿' => 'L', '𝑀' => 'M', '𝑁' => 'N', '𝑂' => 'O', '𝑃' => 'P', '𝑄' => 'Q', '𝑅' => 'R', '𝑆' => 'S', '𝑇' => 'T', '𝑈' => 'U', '𝑉' => 'V', '𝑊' => 'W', '𝑋' => 'X', '𝑌' => 'Y', '𝑍' => 'Z', '𝑎' => 'a', '𝑏' => 'b', '𝑐' => 'c', '𝑑' => 'd', '𝑒' => 'e', '𝑓' => 'f', '𝑔' => 'g', '𝑖' => 'i', '𝑗' => 'j', '𝑘' => 'k', '𝑙' => 'l', '𝑚' => 'm', '𝑛' => 'n', '𝑜' => 'o', '𝑝' => 'p', '𝑞' => 'q', '𝑟' => 'r', '𝑠' => 's', '𝑡' => 't', '𝑢' => 'u', '𝑣' => 'v', '𝑤' => 'w', '𝑥' => 'x', '𝑦' => 'y', '𝑧' => 'z', '𝑨' => 'A', '𝑩' => 'B', '𝑪' => 'C', '𝑫' => 'D', '𝑬' => 'E', '𝑭' => 'F', '𝑮' => 'G', '𝑯' => 'H', '𝑰' => 'I', '𝑱' => 'J', '𝑲' => 'K', '𝑳' => 'L', '𝑴' => 'M', '𝑵' => 'N', '𝑶' => 'O', '𝑷' => 'P', '𝑸' => 'Q', '𝑹' => 'R', '𝑺' => 'S', '𝑻' => 'T', '𝑼' => 'U', '𝑽' => 'V', '𝑾' => 'W', '𝑿' => 'X', '𝒀' => 'Y', '𝒁' => 'Z', '𝒂' => 'a', '𝒃' => 'b', '𝒄' => 'c', '𝒅' => 'd', '𝒆' => 'e', '𝒇' => 'f', '𝒈' => 'g', '𝒉' => 'h', '𝒊' => 'i', '𝒋' => 'j', '𝒌' => 'k', '𝒍' => 'l', '𝒎' => 'm', '𝒏' => 'n', '𝒐' => 'o', '𝒑' => 'p', '𝒒' => 'q', '𝒓' => 'r', '𝒔' => 's', '𝒕' => 't', '𝒖' => 'u', '𝒗' => 'v', '𝒘' => 'w', '𝒙' => 'x', '𝒚' => 'y', '𝒛' => 'z', '𝒜' => 'A', '𝒞' => 'C', '𝒟' => 'D', '𝒢' => 'G', '𝒥' => 'J', '𝒦' => 'K', '𝒩' => 'N', '𝒪' => 'O', '𝒫' => 'P', '𝒬' => 'Q', '𝒮' => 'S', '𝒯' => 'T', '𝒰' => 'U', '𝒱' => 'V', '𝒲' => 'W', '𝒳' => 'X', '𝒴' => 'Y', '𝒵' => 'Z', '𝒶' => 'a', '𝒷' => 'b', '𝒸' => 'c', '𝒹' => 'd', '𝒻' => 'f', '𝒽' => 'h', '𝒾' => 'i', '𝒿' => 'j', '𝓀' => 'k', '𝓁' => 'l', '𝓂' => 'm', '𝓃' => 'n', '𝓅' => 'p', '𝓆' => 'q', '𝓇' => 'r', '𝓈' => 's', '𝓉' => 't', '𝓊' => 'u', '𝓋' => 'v', '𝓌' => 'w', '𝓍' => 'x', '𝓎' => 'y', '𝓏' => 'z', '𝓐' => 'A', '𝓑' => 'B', '𝓒' => 'C', '𝓓' => 'D', '𝓔' => 'E', '𝓕' => 'F', '𝓖' => 'G', '𝓗' => 'H', '𝓘' => 'I', '𝓙' => 'J', '𝓚' => 'K', '𝓛' => 'L', '𝓜' => 'M', '𝓝' => 'N', '𝓞' => 'O', '𝓟' => 'P', '𝓠' => 'Q', '𝓡' => 'R', '𝓢' => 'S', '𝓣' => 'T', '𝓤' => 'U', '𝓥' => 'V', '𝓦' => 'W', '𝓧' => 'X', '𝓨' => 'Y', '𝓩' => 'Z', '𝓪' => 'a', '𝓫' => 'b', '𝓬' => 'c', '𝓭' => 'd', '𝓮' => 'e', '𝓯' => 'f', '𝓰' => 'g', '𝓱' => 'h', '𝓲' => 'i', '𝓳' => 'j', '𝓴' => 'k', '𝓵' => 'l', '𝓶' => 'm', '𝓷' => 'n', '𝓸' => 'o', '𝓹' => 'p', '𝓺' => 'q', '𝓻' => 'r', '𝓼' => 's', '𝓽' => 't', '𝓾' => 'u', '𝓿' => 'v', '𝔀' => 'w', '𝔁' => 'x', '𝔂' => 'y', '𝔃' => 'z', '𝔄' => 'A', '𝔅' => 'B', '𝔇' => 'D', '𝔈' => 'E', '𝔉' => 'F', '𝔊' => 'G', '𝔍' => 'J', '𝔎' => 'K', '𝔏' => 'L', '𝔐' => 'M', '𝔑' => 'N', '𝔒' => 'O', '𝔓' => 'P', '𝔔' => 'Q', '𝔖' => 'S', '𝔗' => 'T', '𝔘' => 'U', '𝔙' => 'V', '𝔚' => 'W', '𝔛' => 'X', '𝔜' => 'Y', '𝔞' => 'a', '𝔟' => 'b', '𝔠' => 'c', '𝔡' => 'd', '𝔢' => 'e', '𝔣' => 'f', '𝔤' => 'g', '𝔥' => 'h', '𝔦' => 'i', '𝔧' => 'j', '𝔨' => 'k', '𝔩' => 'l', '𝔪' => 'm', '𝔫' => 'n', '𝔬' => 'o', '𝔭' => 'p', '𝔮' => 'q', '𝔯' => 'r', '𝔰' => 's', '𝔱' => 't', '𝔲' => 'u', '𝔳' => 'v', '𝔴' => 'w', '𝔵' => 'x', '𝔶' => 'y', '𝔷' => 'z', '𝔸' => 'A', '𝔹' => 'B', '𝔻' => 'D', '𝔼' => 'E', '𝔽' => 'F', '𝔾' => 'G', '𝕀' => 'I', '𝕁' => 'J', '𝕂' => 'K', '𝕃' => 'L', '𝕄' => 'M', '𝕆' => 'O', '𝕊' => 'S', '𝕋' => 'T', '𝕌' => 'U', '𝕍' => 'V', '𝕎' => 'W', '𝕏' => 'X', '𝕐' => 'Y', '𝕒' => 'a', '𝕓' => 'b', '𝕔' => 'c', '𝕕' => 'd', '𝕖' => 'e', '𝕗' => 'f', '𝕘' => 'g', '𝕙' => 'h', '𝕚' => 'i', '𝕛' => 'j', '𝕜' => 'k', '𝕝' => 'l', '𝕞' => 'm', '𝕟' => 'n', '𝕠' => 'o', '𝕡' => 'p', '𝕢' => 'q', '𝕣' => 'r', '𝕤' => 's', '𝕥' => 't', '𝕦' => 'u', '𝕧' => 'v', '𝕨' => 'w', '𝕩' => 'x', '𝕪' => 'y', '𝕫' => 'z', '𝕬' => 'A', '𝕭' => 'B', '𝕮' => 'C', '𝕯' => 'D', '𝕰' => 'E', '𝕱' => 'F', '𝕲' => 'G', '𝕳' => 'H', '𝕴' => 'I', '𝕵' => 'J', '𝕶' => 'K', '𝕷' => 'L', '𝕸' => 'M', '𝕹' => 'N', '𝕺' => 'O', '𝕻' => 'P', '𝕼' => 'Q', '𝕽' => 'R', '𝕾' => 'S', '𝕿' => 'T', '𝖀' => 'U', '𝖁' => 'V', '𝖂' => 'W', '𝖃' => 'X', '𝖄' => 'Y', '𝖅' => 'Z', '𝖆' => 'a', '𝖇' => 'b', '𝖈' => 'c', '𝖉' => 'd', '𝖊' => 'e', '𝖋' => 'f', '𝖌' => 'g', '𝖍' => 'h', '𝖎' => 'i', '𝖏' => 'j', '𝖐' => 'k', '𝖑' => 'l', '𝖒' => 'm', '𝖓' => 'n', '𝖔' => 'o', '𝖕' => 'p', '𝖖' => 'q', '𝖗' => 'r', '𝖘' => 's', '𝖙' => 't', '𝖚' => 'u', '𝖛' => 'v', '𝖜' => 'w', '𝖝' => 'x', '𝖞' => 'y', '𝖟' => 'z', '𝖠' => 'A', '𝖡' => 'B', '𝖢' => 'C', '𝖣' => 'D', '𝖤' => 'E', '𝖥' => 'F', '𝖦' => 'G', '𝖧' => 'H', '𝖨' => 'I', '𝖩' => 'J', '𝖪' => 'K', '𝖫' => 'L', '𝖬' => 'M', '𝖭' => 'N', '𝖮' => 'O', '𝖯' => 'P', '𝖰' => 'Q', '𝖱' => 'R', '𝖲' => 'S', '𝖳' => 'T', '𝖴' => 'U', '𝖵' => 'V', '𝖶' => 'W', '𝖷' => 'X', '𝖸' => 'Y', '𝖹' => 'Z', '𝖺' => 'a', '𝖻' => 'b', '𝖼' => 'c', '𝖽' => 'd', '𝖾' => 'e', '𝖿' => 'f', '𝗀' => 'g', '𝗁' => 'h', '𝗂' => 'i', '𝗃' => 'j', '𝗄' => 'k', '𝗅' => 'l', '𝗆' => 'm', '𝗇' => 'n', '𝗈' => 'o', '𝗉' => 'p', '𝗊' => 'q', '𝗋' => 'r', '𝗌' => 's', '𝗍' => 't', '𝗎' => 'u', '𝗏' => 'v', '𝗐' => 'w', '𝗑' => 'x', '𝗒' => 'y', '𝗓' => 'z', '𝗔' => 'A', '𝗕' => 'B', '𝗖' => 'C', '𝗗' => 'D', '𝗘' => 'E', '𝗙' => 'F', '𝗚' => 'G', '𝗛' => 'H', '𝗜' => 'I', '𝗝' => 'J', '𝗞' => 'K', '𝗟' => 'L', '𝗠' => 'M', '𝗡' => 'N', '𝗢' => 'O', '𝗣' => 'P', '𝗤' => 'Q', '𝗥' => 'R', '𝗦' => 'S', '𝗧' => 'T', '𝗨' => 'U', '𝗩' => 'V', '𝗪' => 'W', '𝗫' => 'X', '𝗬' => 'Y', '𝗭' => 'Z', '𝗮' => 'a', '𝗯' => 'b', '𝗰' => 'c', '𝗱' => 'd', '𝗲' => 'e', '𝗳' => 'f', '𝗴' => 'g', '𝗵' => 'h', '𝗶' => 'i', '𝗷' => 'j', '𝗸' => 'k', '𝗹' => 'l', '𝗺' => 'm', '𝗻' => 'n', '𝗼' => 'o', '𝗽' => 'p', '𝗾' => 'q', '𝗿' => 'r', '𝘀' => 's', '𝘁' => 't', '𝘂' => 'u', '𝘃' => 'v', '𝘄' => 'w', '𝘅' => 'x', '𝘆' => 'y', '𝘇' => 'z', '𝘈' => 'A', '𝘉' => 'B', '𝘊' => 'C', '𝘋' => 'D', '𝘌' => 'E', '𝘍' => 'F', '𝘎' => 'G', '𝘏' => 'H', '𝘐' => 'I', '𝘑' => 'J', '𝘒' => 'K', '𝘓' => 'L', '𝘔' => 'M', '𝘕' => 'N', '𝘖' => 'O', '𝘗' => 'P', '𝘘' => 'Q', '𝘙' => 'R', '𝘚' => 'S', '𝘛' => 'T', '𝘜' => 'U', '𝘝' => 'V', '𝘞' => 'W', '𝘟' => 'X', '𝘠' => 'Y', '𝘡' => 'Z', '𝘢' => 'a', '𝘣' => 'b', '𝘤' => 'c', '𝘥' => 'd', '𝘦' => 'e', '𝘧' => 'f', '𝘨' => 'g', '𝘩' => 'h', '𝘪' => 'i', '𝘫' => 'j', '𝘬' => 'k', '𝘭' => 'l', '𝘮' => 'm', '𝘯' => 'n', '𝘰' => 'o', '𝘱' => 'p', '𝘲' => 'q', '𝘳' => 'r', '𝘴' => 's', '𝘵' => 't', '𝘶' => 'u', '𝘷' => 'v', '𝘸' => 'w', '𝘹' => 'x', '𝘺' => 'y', '𝘻' => 'z', '𝘼' => 'A', '𝘽' => 'B', '𝘾' => 'C', '𝘿' => 'D', '𝙀' => 'E', '𝙁' => 'F', '𝙂' => 'G', '𝙃' => 'H', '𝙄' => 'I', '𝙅' => 'J', '𝙆' => 'K', '𝙇' => 'L', '𝙈' => 'M', '𝙉' => 'N', '𝙊' => 'O', '𝙋' => 'P', '𝙌' => 'Q', '𝙍' => 'R', '𝙎' => 'S', '𝙏' => 'T', '𝙐' => 'U', '𝙑' => 'V', '𝙒' => 'W', '𝙓' => 'X', '𝙔' => 'Y', '𝙕' => 'Z', '𝙖' => 'a', '𝙗' => 'b', '𝙘' => 'c', '𝙙' => 'd', '𝙚' => 'e', '𝙛' => 'f', '𝙜' => 'g', '𝙝' => 'h', '𝙞' => 'i', '𝙟' => 'j', '𝙠' => 'k', '𝙡' => 'l', '𝙢' => 'm', '𝙣' => 'n', '𝙤' => 'o', '𝙥' => 'p', '𝙦' => 'q', '𝙧' => 'r', '𝙨' => 's', '𝙩' => 't', '𝙪' => 'u', '𝙫' => 'v', '𝙬' => 'w', '𝙭' => 'x', '𝙮' => 'y', '𝙯' => 'z', '𝙰' => 'A', '𝙱' => 'B', '𝙲' => 'C', '𝙳' => 'D', '𝙴' => 'E', '𝙵' => 'F', '𝙶' => 'G', '𝙷' => 'H', '𝙸' => 'I', '𝙹' => 'J', '𝙺' => 'K', '𝙻' => 'L', '𝙼' => 'M', '𝙽' => 'N', '𝙾' => 'O', '𝙿' => 'P', '𝚀' => 'Q', '𝚁' => 'R', '𝚂' => 'S', '𝚃' => 'T', '𝚄' => 'U', '𝚅' => 'V', '𝚆' => 'W', '𝚇' => 'X', '𝚈' => 'Y', '𝚉' => 'Z', '𝚊' => 'a', '𝚋' => 'b', '𝚌' => 'c', '𝚍' => 'd', '𝚎' => 'e', '𝚏' => 'f', '𝚐' => 'g', '𝚑' => 'h', '𝚒' => 'i', '𝚓' => 'j', '𝚔' => 'k', '𝚕' => 'l', '𝚖' => 'm', '𝚗' => 'n', '𝚘' => 'o', '𝚙' => 'p', '𝚚' => 'q', '𝚛' => 'r', '𝚜' => 's', '𝚝' => 't', '𝚞' => 'u', '𝚟' => 'v', '𝚠' => 'w', '𝚡' => 'x', '𝚢' => 'y', '𝚣' => 'z', '𝚤' => 'ı', '𝚥' => 'ȷ', '𝚨' => 'Α', '𝚩' => 'Β', '𝚪' => 'Γ', '𝚫' => 'Δ', '𝚬' => 'Ε', '𝚭' => 'Ζ', '𝚮' => 'Η', '𝚯' => 'Θ', '𝚰' => 'Ι', '𝚱' => 'Κ', '𝚲' => 'Λ', '𝚳' => 'Μ', '𝚴' => 'Ν', '𝚵' => 'Ξ', '𝚶' => 'Ο', '𝚷' => 'Π', '𝚸' => 'Ρ', '𝚹' => 'Θ', '𝚺' => 'Σ', '𝚻' => 'Τ', '𝚼' => 'Υ', '𝚽' => 'Φ', '𝚾' => 'Χ', '𝚿' => 'Ψ', '𝛀' => 'Ω', '𝛁' => '∇', '𝛂' => 'α', '𝛃' => 'β', '𝛄' => 'γ', '𝛅' => 'δ', '𝛆' => 'ε', '𝛇' => 'ζ', '𝛈' => 'η', '𝛉' => 'θ', '𝛊' => 'ι', '𝛋' => 'κ', '𝛌' => 'λ', '𝛍' => 'μ', '𝛎' => 'ν', '𝛏' => 'ξ', '𝛐' => 'ο', '𝛑' => 'π', '𝛒' => 'ρ', '𝛓' => 'ς', '𝛔' => 'σ', '𝛕' => 'τ', '𝛖' => 'υ', '𝛗' => 'φ', '𝛘' => 'χ', '𝛙' => 'ψ', '𝛚' => 'ω', '𝛛' => '∂', '𝛜' => 'ε', '𝛝' => 'θ', '𝛞' => 'κ', '𝛟' => 'φ', '𝛠' => 'ρ', '𝛡' => 'π', '𝛢' => 'Α', '𝛣' => 'Β', '𝛤' => 'Γ', '𝛥' => 'Δ', '𝛦' => 'Ε', '𝛧' => 'Ζ', '𝛨' => 'Η', '𝛩' => 'Θ', '𝛪' => 'Ι', '𝛫' => 'Κ', '𝛬' => 'Λ', '𝛭' => 'Μ', '𝛮' => 'Ν', '𝛯' => 'Ξ', '𝛰' => 'Ο', '𝛱' => 'Π', '𝛲' => 'Ρ', '𝛳' => 'Θ', '𝛴' => 'Σ', '𝛵' => 'Τ', '𝛶' => 'Υ', '𝛷' => 'Φ', '𝛸' => 'Χ', '𝛹' => 'Ψ', '𝛺' => 'Ω', '𝛻' => '∇', '𝛼' => 'α', '𝛽' => 'β', '𝛾' => 'γ', '𝛿' => 'δ', '𝜀' => 'ε', '𝜁' => 'ζ', '𝜂' => 'η', '𝜃' => 'θ', '𝜄' => 'ι', '𝜅' => 'κ', '𝜆' => 'λ', '𝜇' => 'μ', '𝜈' => 'ν', '𝜉' => 'ξ', '𝜊' => 'ο', '𝜋' => 'π', '𝜌' => 'ρ', '𝜍' => 'ς', '𝜎' => 'σ', '𝜏' => 'τ', '𝜐' => 'υ', '𝜑' => 'φ', '𝜒' => 'χ', '𝜓' => 'ψ', '𝜔' => 'ω', '𝜕' => '∂', '𝜖' => 'ε', '𝜗' => 'θ', '𝜘' => 'κ', '𝜙' => 'φ', '𝜚' => 'ρ', '𝜛' => 'π', '𝜜' => 'Α', '𝜝' => 'Β', '𝜞' => 'Γ', '𝜟' => 'Δ', '𝜠' => 'Ε', '𝜡' => 'Ζ', '𝜢' => 'Η', '𝜣' => 'Θ', '𝜤' => 'Ι', '𝜥' => 'Κ', '𝜦' => 'Λ', '𝜧' => 'Μ', '𝜨' => 'Ν', '𝜩' => 'Ξ', '𝜪' => 'Ο', '𝜫' => 'Π', '𝜬' => 'Ρ', '𝜭' => 'Θ', '𝜮' => 'Σ', '𝜯' => 'Τ', '𝜰' => 'Υ', '𝜱' => 'Φ', '𝜲' => 'Χ', '𝜳' => 'Ψ', '𝜴' => 'Ω', '𝜵' => '∇', '𝜶' => 'α', '𝜷' => 'β', '𝜸' => 'γ', '𝜹' => 'δ', '𝜺' => 'ε', '𝜻' => 'ζ', '𝜼' => 'η', '𝜽' => 'θ', '𝜾' => 'ι', '𝜿' => 'κ', '𝝀' => 'λ', '𝝁' => 'μ', '𝝂' => 'ν', '𝝃' => 'ξ', '𝝄' => 'ο', '𝝅' => 'π', '𝝆' => 'ρ', '𝝇' => 'ς', '𝝈' => 'σ', '𝝉' => 'τ', '𝝊' => 'υ', '𝝋' => 'φ', '𝝌' => 'χ', '𝝍' => 'ψ', '𝝎' => 'ω', '𝝏' => '∂', '𝝐' => 'ε', '𝝑' => 'θ', '𝝒' => 'κ', '𝝓' => 'φ', '𝝔' => 'ρ', '𝝕' => 'π', '𝝖' => 'Α', '𝝗' => 'Β', '𝝘' => 'Γ', '𝝙' => 'Δ', '𝝚' => 'Ε', '𝝛' => 'Ζ', '𝝜' => 'Η', '𝝝' => 'Θ', '𝝞' => 'Ι', '𝝟' => 'Κ', '𝝠' => 'Λ', '𝝡' => 'Μ', '𝝢' => 'Ν', '𝝣' => 'Ξ', '𝝤' => 'Ο', '𝝥' => 'Π', '𝝦' => 'Ρ', '𝝧' => 'Θ', '𝝨' => 'Σ', '𝝩' => 'Τ', '𝝪' => 'Υ', '𝝫' => 'Φ', '𝝬' => 'Χ', '𝝭' => 'Ψ', '𝝮' => 'Ω', '𝝯' => '∇', '𝝰' => 'α', '𝝱' => 'β', '𝝲' => 'γ', '𝝳' => 'δ', '𝝴' => 'ε', '𝝵' => 'ζ', '𝝶' => 'η', '𝝷' => 'θ', '𝝸' => 'ι', '𝝹' => 'κ', '𝝺' => 'λ', '𝝻' => 'μ', '𝝼' => 'ν', '𝝽' => 'ξ', '𝝾' => 'ο', '𝝿' => 'π', '𝞀' => 'ρ', '𝞁' => 'ς', '𝞂' => 'σ', '𝞃' => 'τ', '𝞄' => 'υ', '𝞅' => 'φ', '𝞆' => 'χ', '𝞇' => 'ψ', '𝞈' => 'ω', '𝞉' => '∂', '𝞊' => 'ε', '𝞋' => 'θ', '𝞌' => 'κ', '𝞍' => 'φ', '𝞎' => 'ρ', '𝞏' => 'π', '𝞐' => 'Α', '𝞑' => 'Β', '𝞒' => 'Γ', '𝞓' => 'Δ', '𝞔' => 'Ε', '𝞕' => 'Ζ', '𝞖' => 'Η', '𝞗' => 'Θ', '𝞘' => 'Ι', '𝞙' => 'Κ', '𝞚' => 'Λ', '𝞛' => 'Μ', '𝞜' => 'Ν', '𝞝' => 'Ξ', '𝞞' => 'Ο', '𝞟' => 'Π', '𝞠' => 'Ρ', '𝞡' => 'Θ', '𝞢' => 'Σ', '𝞣' => 'Τ', '𝞤' => 'Υ', '𝞥' => 'Φ', '𝞦' => 'Χ', '𝞧' => 'Ψ', '𝞨' => 'Ω', '𝞩' => '∇', '𝞪' => 'α', '𝞫' => 'β', '𝞬' => 'γ', '𝞭' => 'δ', '𝞮' => 'ε', '𝞯' => 'ζ', '𝞰' => 'η', '𝞱' => 'θ', '𝞲' => 'ι', '𝞳' => 'κ', '𝞴' => 'λ', '𝞵' => 'μ', '𝞶' => 'ν', '𝞷' => 'ξ', '𝞸' => 'ο', '𝞹' => 'π', '𝞺' => 'ρ', '𝞻' => 'ς', '𝞼' => 'σ', '𝞽' => 'τ', '𝞾' => 'υ', '𝞿' => 'φ', '𝟀' => 'χ', '𝟁' => 'ψ', '𝟂' => 'ω', '𝟃' => '∂', '𝟄' => 'ε', '𝟅' => 'θ', '𝟆' => 'κ', '𝟇' => 'φ', '𝟈' => 'ρ', '𝟉' => 'π', '𝟊' => 'Ϝ', '𝟋' => 'ϝ', '𝟎' => '0', '𝟏' => '1', '𝟐' => '2', '𝟑' => '3', '𝟒' => '4', '𝟓' => '5', '𝟔' => '6', '𝟕' => '7', '𝟖' => '8', '𝟗' => '9', '𝟘' => '0', '𝟙' => '1', '𝟚' => '2', '𝟛' => '3', '𝟜' => '4', '𝟝' => '5', '𝟞' => '6', '𝟟' => '7', '𝟠' => '8', '𝟡' => '9', '𝟢' => '0', '𝟣' => '1', '𝟤' => '2', '𝟥' => '3', '𝟦' => '4', '𝟧' => '5', '𝟨' => '6', '𝟩' => '7', '𝟪' => '8', '𝟫' => '9', '𝟬' => '0', '𝟭' => '1', '𝟮' => '2', '𝟯' => '3', '𝟰' => '4', '𝟱' => '5', '𝟲' => '6', '𝟳' => '7', '𝟴' => '8', '𝟵' => '9', '𝟶' => '0', '𝟷' => '1', '𝟸' => '2', '𝟹' => '3', '𝟺' => '4', '𝟻' => '5', '𝟼' => '6', '𝟽' => '7', '𝟾' => '8', '𝟿' => '9', '𞸀' => 'ا', '𞸁' => 'ب', '𞸂' => 'ج', '𞸃' => 'د', '𞸅' => 'و', '𞸆' => 'ز', '𞸇' => 'ح', '𞸈' => 'ط', '𞸉' => 'ي', '𞸊' => 'ك', '𞸋' => 'ل', '𞸌' => 'م', '𞸍' => 'ن', '𞸎' => 'س', '𞸏' => 'ع', '𞸐' => 'ف', '𞸑' => 'ص', '𞸒' => 'ق', '𞸓' => 'ر', '𞸔' => 'ش', '𞸕' => 'ت', '𞸖' => 'ث', '𞸗' => 'خ', '𞸘' => 'ذ', '𞸙' => 'ض', '𞸚' => 'ظ', '𞸛' => 'غ', '𞸜' => 'ٮ', '𞸝' => 'ں', '𞸞' => 'ڡ', '𞸟' => 'ٯ', '𞸡' => 'ب', '𞸢' => 'ج', '𞸤' => 'ه', '𞸧' => 'ح', '𞸩' => 'ي', '𞸪' => 'ك', '𞸫' => 'ل', '𞸬' => 'م', '𞸭' => 'ن', '𞸮' => 'س', '𞸯' => 'ع', '𞸰' => 'ف', '𞸱' => 'ص', '𞸲' => 'ق', '𞸴' => 'ش', '𞸵' => 'ت', '𞸶' => 'ث', '𞸷' => 'خ', '𞸹' => 'ض', '𞸻' => 'غ', '𞹂' => 'ج', '𞹇' => 'ح', '𞹉' => 'ي', '𞹋' => 'ل', '𞹍' => 'ن', '𞹎' => 'س', '𞹏' => 'ع', '𞹑' => 'ص', '𞹒' => 'ق', '𞹔' => 'ش', '𞹗' => 'خ', '𞹙' => 'ض', '𞹛' => 'غ', '𞹝' => 'ں', '𞹟' => 'ٯ', '𞹡' => 'ب', '𞹢' => 'ج', '𞹤' => 'ه', '𞹧' => 'ح', '𞹨' => 'ط', '𞹩' => 'ي', '𞹪' => 'ك', '𞹬' => 'م', '𞹭' => 'ن', '𞹮' => 'س', '𞹯' => 'ع', '𞹰' => 'ف', '𞹱' => 'ص', '𞹲' => 'ق', '𞹴' => 'ش', '𞹵' => 'ت', '𞹶' => 'ث', '𞹷' => 'خ', '𞹹' => 'ض', '𞹺' => 'ظ', '𞹻' => 'غ', '𞹼' => 'ٮ', '𞹾' => 'ڡ', '𞺀' => 'ا', '𞺁' => 'ب', '𞺂' => 'ج', '𞺃' => 'د', '𞺄' => 'ه', '𞺅' => 'و', '𞺆' => 'ز', '𞺇' => 'ح', '𞺈' => 'ط', '𞺉' => 'ي', '𞺋' => 'ل', '𞺌' => 'م', '𞺍' => 'ن', '𞺎' => 'س', '𞺏' => 'ع', '𞺐' => 'ف', '𞺑' => 'ص', '𞺒' => 'ق', '𞺓' => 'ر', '𞺔' => 'ش', '𞺕' => 'ت', '𞺖' => 'ث', '𞺗' => 'خ', '𞺘' => 'ذ', '𞺙' => 'ض', '𞺚' => 'ظ', '𞺛' => 'غ', '𞺡' => 'ب', '𞺢' => 'ج', '𞺣' => 'د', '𞺥' => 'و', '𞺦' => 'ز', '𞺧' => 'ح', '𞺨' => 'ط', '𞺩' => 'ي', '𞺫' => 'ل', '𞺬' => 'م', '𞺭' => 'ن', '𞺮' => 'س', '𞺯' => 'ع', '𞺰' => 'ف', '𞺱' => 'ص', '𞺲' => 'ق', '𞺳' => 'ر', '𞺴' => 'ش', '𞺵' => 'ت', '𞺶' => 'ث', '𞺷' => 'خ', '𞺸' => 'ذ', '𞺹' => 'ض', '𞺺' => 'ظ', '𞺻' => 'غ', '🄀' => '0.', '🄁' => '0,', '🄂' => '1,', '🄃' => '2,', '🄄' => '3,', '🄅' => '4,', '🄆' => '5,', '🄇' => '6,', '🄈' => '7,', '🄉' => '8,', '🄊' => '9,', '🄐' => '(A)', '🄑' => '(B)', '🄒' => '(C)', '🄓' => '(D)', '🄔' => '(E)', '🄕' => '(F)', '🄖' => '(G)', '🄗' => '(H)', '🄘' => '(I)', '🄙' => '(J)', '🄚' => '(K)', '🄛' => '(L)', '🄜' => '(M)', '🄝' => '(N)', '🄞' => '(O)', '🄟' => '(P)', '🄠' => '(Q)', '🄡' => '(R)', '🄢' => '(S)', '🄣' => '(T)', '🄤' => '(U)', '🄥' => '(V)', '🄦' => '(W)', '🄧' => '(X)', '🄨' => '(Y)', '🄩' => '(Z)', '🄪' => '〔S〕', '🄫' => 'C', '🄬' => 'R', '🄭' => 'CD', '🄮' => 'WZ', '🄰' => 'A', '🄱' => 'B', '🄲' => 'C', '🄳' => 'D', '🄴' => 'E', '🄵' => 'F', '🄶' => 'G', '🄷' => 'H', '🄸' => 'I', '🄹' => 'J', '🄺' => 'K', '🄻' => 'L', '🄼' => 'M', '🄽' => 'N', '🄾' => 'O', '🄿' => 'P', '🅀' => 'Q', '🅁' => 'R', '🅂' => 'S', '🅃' => 'T', '🅄' => 'U', '🅅' => 'V', '🅆' => 'W', '🅇' => 'X', '🅈' => 'Y', '🅉' => 'Z', '🅊' => 'HV', '🅋' => 'MV', '🅌' => 'SD', '🅍' => 'SS', '🅎' => 'PPV', '🅏' => 'WC', '🅪' => 'MC', '🅫' => 'MD', '🅬' => 'MR', '🆐' => 'DJ', '🈀' => 'ほか', '🈁' => 'ココ', '🈂' => 'サ', '🈐' => '手', '🈑' => '字', '🈒' => '双', '🈓' => 'デ', '🈔' => '二', '🈕' => '多', '🈖' => '解', '🈗' => '天', '🈘' => '交', '🈙' => '映', '🈚' => '無', '🈛' => '料', '🈜' => '前', '🈝' => '後', '🈞' => '再', '🈟' => '新', '🈠' => '初', '🈡' => '終', '🈢' => '生', '🈣' => '販', '🈤' => '声', '🈥' => '吹', '🈦' => '演', '🈧' => '投', '🈨' => '捕', '🈩' => '一', '🈪' => '三', '🈫' => '遊', '🈬' => '左', '🈭' => '中', '🈮' => '右', '🈯' => '指', '🈰' => '走', '🈱' => '打', '🈲' => '禁', '🈳' => '空', '🈴' => '合', '🈵' => '満', '🈶' => '有', '🈷' => '月', '🈸' => '申', '🈹' => '割', '🈺' => '営', '🈻' => '配', '🉀' => '〔本〕', '🉁' => '〔三〕', '🉂' => '〔二〕', '🉃' => '〔安〕', '🉄' => '〔点〕', '🉅' => '〔打〕', '🉆' => '〔盗〕', '🉇' => '〔勝〕', '🉈' => '〔敗〕', '🉐' => '得', '🉑' => '可', '🯰' => '0', '🯱' => '1', '🯲' => '2', '🯳' => '3', '🯴' => '4', '🯵' => '5', '🯶' => '6', '🯷' => '7', '🯸' => '8', '🯹' => '9');
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-normalizer/bootstrap.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /*
6
- * This file is part of the Symfony package.
7
- *
8
- * (c) Fabien Potencier <fabien@symfony.com>
9
- *
10
- * For the full copyright and license information, please view the LICENSE
11
- * file that was distributed with this source code.
12
- */
13
- use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Normalizer as p;
14
- if (!\function_exists('normalizer_is_normalized')) {
15
- function normalizer_is_normalized($input, $form = \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Normalizer\Normalizer::NFC)
16
- {
17
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Normalizer\Normalizer::isNormalized($input, $form);
18
- }
19
- }
20
- if (!\function_exists('normalizer_normalize')) {
21
- function normalizer_normalize($input, $form = \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Normalizer\Normalizer::NFC)
22
- {
23
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Normalizer\Normalizer::normalize($input, $form);
24
- }
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Php70.php DELETED
@@ -1,67 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
- namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Php70;
12
-
13
- /**
14
- * @author Nicolas Grekas <p@tchwork.com>
15
- *
16
- * @internal
17
- */
18
- final class Php70
19
- {
20
- public static function intdiv($dividend, $divisor)
21
- {
22
- $dividend = self::intArg($dividend, __FUNCTION__, 1);
23
- $divisor = self::intArg($divisor, __FUNCTION__, 2);
24
- if (0 === $divisor) {
25
- throw new \DivisionByZeroError('Division by zero');
26
- }
27
- if (-1 === $divisor && ~\PHP_INT_MAX === $dividend) {
28
- throw new \ArithmeticError('Division of PHP_INT_MIN by -1 is not an integer');
29
- }
30
- return ($dividend - $dividend % $divisor) / $divisor;
31
- }
32
- public static function preg_replace_callback_array(array $patterns, $subject, $limit = -1, &$count = 0)
33
- {
34
- $count = 0;
35
- $result = (string) $subject;
36
- if (0 === ($limit = self::intArg($limit, __FUNCTION__, 3))) {
37
- return $result;
38
- }
39
- foreach ($patterns as $pattern => $callback) {
40
- $result = \preg_replace_callback($pattern, $callback, $result, $limit, $c);
41
- $count += $c;
42
- }
43
- return $result;
44
- }
45
- public static function error_clear_last()
46
- {
47
- static $handler;
48
- if (!$handler) {
49
- $handler = function () {
50
- return \false;
51
- };
52
- }
53
- \set_error_handler($handler);
54
- @\trigger_error('');
55
- \restore_error_handler();
56
- }
57
- private static function intArg($value, $caller, $pos)
58
- {
59
- if (\is_int($value)) {
60
- return $value;
61
- }
62
- if (!\is_numeric($value) || \PHP_INT_MAX <= ($value += 0) || ~\PHP_INT_MAX >= $value) {
63
- throw new \TypeError(\sprintf('%s() expects parameter %d to be integer, %s given', $caller, $pos, \gettype($value)));
64
- }
65
- return (int) $value;
66
- }
67
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- class ArithmeticError extends \Error
6
- {
7
- }
8
- \class_alias('PYS_PRO_GLOBAL\\ArithmeticError', 'ArithmeticError', \false);
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Resources/stubs/AssertionError.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- class AssertionError extends \Error
6
- {
7
- }
8
- \class_alias('PYS_PRO_GLOBAL\\AssertionError', 'AssertionError', \false);
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- class DivisionByZeroError extends \Error
6
- {
7
- }
8
- \class_alias('PYS_PRO_GLOBAL\\DivisionByZeroError', 'DivisionByZeroError', \false);
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Resources/stubs/Error.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- class Error extends \Exception
6
- {
7
- }
8
- \class_alias('PYS_PRO_GLOBAL\\Error', 'Error', \false);
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Resources/stubs/ParseError.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- class ParseError extends \Error
6
- {
7
- }
8
- \class_alias('PYS_PRO_GLOBAL\\ParseError', 'ParseError', \false);
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- interface SessionUpdateTimestampHandlerInterface
6
- {
7
- /**
8
- * Checks if a session identifier already exists or not.
9
- *
10
- * @param string $key
11
- *
12
- * @return bool
13
- */
14
- public function validateId($key);
15
- /**
16
- * Updates the timestamp of a session when its data didn't change.
17
- *
18
- * @param string $key
19
- * @param string $val
20
- *
21
- * @return bool
22
- */
23
- public function updateTimestamp($key, $val);
24
- }
25
- \class_alias('PYS_PRO_GLOBAL\\SessionUpdateTimestampHandlerInterface', 'SessionUpdateTimestampHandlerInterface', \false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/Resources/stubs/TypeError.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- class TypeError extends \Error
6
- {
7
- }
8
- \class_alias('PYS_PRO_GLOBAL\\TypeError', 'TypeError', \false);
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php70/bootstrap.php DELETED
@@ -1,37 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /*
6
- * This file is part of the Symfony package.
7
- *
8
- * (c) Fabien Potencier <fabien@symfony.com>
9
- *
10
- * For the full copyright and license information, please view the LICENSE
11
- * file that was distributed with this source code.
12
- */
13
- use PYS_PRO_GLOBAL\Symfony\Polyfill\Php70 as p;
14
- if (\PHP_VERSION_ID >= 70000) {
15
- return;
16
- }
17
- if (!\defined('PHP_INT_MIN')) {
18
- \define('PHP_INT_MIN', ~\PHP_INT_MAX);
19
- }
20
- if (!\function_exists('intdiv')) {
21
- function intdiv($num1, $num2)
22
- {
23
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php70\Php70::intdiv($num1, $num2);
24
- }
25
- }
26
- if (!\function_exists('preg_replace_callback_array')) {
27
- function preg_replace_callback_array(array $pattern, $subject, $limit = -1, &$count = 0, $flags = null)
28
- {
29
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php70\Php70::preg_replace_callback_array($pattern, $subject, $limit, $count);
30
- }
31
- }
32
- if (!\function_exists('error_clear_last')) {
33
- function error_clear_last()
34
- {
35
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php70\Php70::error_clear_last();
36
- }
37
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php72/Php72.php DELETED
@@ -1,176 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
- namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Php72;
12
-
13
- /**
14
- * @author Nicolas Grekas <p@tchwork.com>
15
- * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
16
- *
17
- * @internal
18
- */
19
- final class Php72
20
- {
21
- private static $hashMask;
22
- public static function utf8_encode($s)
23
- {
24
- $s .= $s;
25
- $len = \strlen($s);
26
- for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
27
- switch (\true) {
28
- case $s[$i] < "�":
29
- $s[$j] = $s[$i];
30
- break;
31
- case $s[$i] < "�":
32
- $s[$j] = "�";
33
- $s[++$j] = $s[$i];
34
- break;
35
- default:
36
- $s[$j] = "�";
37
- $s[++$j] = \chr(\ord($s[$i]) - 64);
38
- break;
39
- }
40
- }
41
- return \substr($s, 0, $j);
42
- }
43
- public static function utf8_decode($s)
44
- {
45
- $s = (string) $s;
46
- $len = \strlen($s);
47
- for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) {
48
- switch ($s[$i] & "�") {
49
- case "�":
50
- case "�":
51
- $c = \ord($s[$i] & "\37") << 6 | \ord($s[++$i] & "?");
52
- $s[$j] = $c < 256 ? \chr($c) : '?';
53
- break;
54
- case "�":
55
- ++$i;
56
- // no break
57
- case "�":
58
- $s[$j] = '?';
59
- $i += 2;
60
- break;
61
- default:
62
- $s[$j] = $s[$i];
63
- }
64
- }
65
- return \substr($s, 0, $j);
66
- }
67
- public static function php_os_family()
68
- {
69
- if ('\\' === \DIRECTORY_SEPARATOR) {
70
- return 'Windows';
71
- }
72
- $map = array('Darwin' => 'Darwin', 'DragonFly' => 'BSD', 'FreeBSD' => 'BSD', 'NetBSD' => 'BSD', 'OpenBSD' => 'BSD', 'Linux' => 'Linux', 'SunOS' => 'Solaris');
73
- return isset($map[\PHP_OS]) ? $map[\PHP_OS] : 'Unknown';
74
- }
75
- public static function spl_object_id($object)
76
- {
77
- if (null === self::$hashMask) {
78
- self::initHashMask();
79
- }
80
- if (null === ($hash = \spl_object_hash($object))) {
81
- return;
82
- }
83
- // On 32-bit systems, PHP_INT_SIZE is 4,
84
- return self::$hashMask ^ \hexdec(\substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1));
85
- }
86
- public static function sapi_windows_vt100_support($stream, $enable = null)
87
- {
88
- if (!\is_resource($stream)) {
89
- \trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, ' . \gettype($stream) . ' given', \E_USER_WARNING);
90
- return \false;
91
- }
92
- $meta = \stream_get_meta_data($stream);
93
- if ('STDIO' !== $meta['stream_type']) {
94
- \trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', \E_USER_WARNING);
95
- return \false;
96
- }
97
- // We cannot actually disable vt100 support if it is set
98
- if (\false === $enable || !self::stream_isatty($stream)) {
99
- return \false;
100
- }
101
- // The native function does not apply to stdin
102
- $meta = \array_map('strtolower', $meta);
103
- $stdin = 'php://stdin' === $meta['uri'] || 'php://fd/0' === $meta['uri'];
104
- return !$stdin && (\false !== \getenv('ANSICON') || 'ON' === \getenv('ConEmuANSI') || 'xterm' === \getenv('TERM') || 'Hyper' === \getenv('TERM_PROGRAM'));
105
- }
106
- public static function stream_isatty($stream)
107
- {
108
- if (!\is_resource($stream)) {
109
- \trigger_error('stream_isatty() expects parameter 1 to be resource, ' . \gettype($stream) . ' given', \E_USER_WARNING);
110
- return \false;
111
- }
112
- if ('\\' === \DIRECTORY_SEPARATOR) {
113
- $stat = @\fstat($stream);
114
- // Check if formatted mode is S_IFCHR
115
- return $stat ? 020000 === ($stat['mode'] & 0170000) : \false;
116
- }
117
- return \function_exists('posix_isatty') && @\posix_isatty($stream);
118
- }
119
- private static function initHashMask()
120
- {
121
- $obj = (object) array();
122
- self::$hashMask = -1;
123
- // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below
124
- $obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush');
125
- foreach (\debug_backtrace(\PHP_VERSION_ID >= 50400 ? \DEBUG_BACKTRACE_IGNORE_ARGS : \false) as $frame) {
126
- if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) {
127
- $frame['line'] = 0;
128
- break;
129
- }
130
- }
131
- if (!empty($frame['line'])) {
132
- \ob_start();
133
- \debug_zval_dump($obj);
134
- self::$hashMask = (int) \substr(\ob_get_clean(), 17);
135
- }
136
- self::$hashMask ^= \hexdec(\substr(\spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1));
137
- }
138
- public static function mb_chr($code, $encoding = null)
139
- {
140
- if (0x80 > ($code %= 0x200000)) {
141
- $s = \chr($code);
142
- } elseif (0x800 > $code) {
143
- $s = \chr(0xc0 | $code >> 6) . \chr(0x80 | $code & 0x3f);
144
- } elseif (0x10000 > $code) {
145
- $s = \chr(0xe0 | $code >> 12) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f);
146
- } else {
147
- $s = \chr(0xf0 | $code >> 18) . \chr(0x80 | $code >> 12 & 0x3f) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f);
148
- }
149
- if ('UTF-8' !== $encoding) {
150
- $s = \mb_convert_encoding($s, $encoding, 'UTF-8');
151
- }
152
- return $s;
153
- }
154
- public static function mb_ord($s, $encoding = null)
155
- {
156
- if (null === $encoding) {
157
- $s = \mb_convert_encoding($s, 'UTF-8');
158
- } elseif ('UTF-8' !== $encoding) {
159
- $s = \mb_convert_encoding($s, 'UTF-8', $encoding);
160
- }
161
- if (1 === \strlen($s)) {
162
- return \ord($s);
163
- }
164
- $code = ($s = \unpack('C*', \substr($s, 0, 4))) ? $s[1] : 0;
165
- if (0xf0 <= $code) {
166
- return ($code - 0xf0 << 18) + ($s[2] - 0x80 << 12) + ($s[3] - 0x80 << 6) + $s[4] - 0x80;
167
- }
168
- if (0xe0 <= $code) {
169
- return ($code - 0xe0 << 12) + ($s[2] - 0x80 << 6) + $s[3] - 0x80;
170
- }
171
- if (0xc0 <= $code) {
172
- return ($code - 0xc0 << 6) + $s[2] - 0x80;
173
- }
174
- return $code;
175
- }
176
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-php72/bootstrap.php DELETED
@@ -1,80 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL;
4
-
5
- /*
6
- * This file is part of the Symfony package.
7
- *
8
- * (c) Fabien Potencier <fabien@symfony.com>
9
- *
10
- * For the full copyright and license information, please view the LICENSE
11
- * file that was distributed with this source code.
12
- */
13
- use PYS_PRO_GLOBAL\Symfony\Polyfill\Php72 as p;
14
- if (\PHP_VERSION_ID >= 70200) {
15
- return;
16
- }
17
- if (!\defined('PHP_FLOAT_DIG')) {
18
- \define('PHP_FLOAT_DIG', 15);
19
- }
20
- if (!\defined('PHP_FLOAT_EPSILON')) {
21
- \define('PHP_FLOAT_EPSILON', 2.2204460492503E-16);
22
- }
23
- if (!\defined('PHP_FLOAT_MIN')) {
24
- \define('PHP_FLOAT_MIN', 2.2250738585072E-308);
25
- }
26
- if (!\defined('PHP_FLOAT_MAX')) {
27
- \define('PHP_FLOAT_MAX', 1.7976931348623157E+308);
28
- }
29
- if (!\defined('PHP_OS_FAMILY')) {
30
- \define('PHP_OS_FAMILY', \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::php_os_family());
31
- }
32
- if ('\\' === \DIRECTORY_SEPARATOR && !\function_exists('sapi_windows_vt100_support')) {
33
- function sapi_windows_vt100_support($stream, $enable = null)
34
- {
35
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::sapi_windows_vt100_support($stream, $enable);
36
- }
37
- }
38
- if (!\function_exists('stream_isatty')) {
39
- function stream_isatty($stream)
40
- {
41
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::stream_isatty($stream);
42
- }
43
- }
44
- if (!\function_exists('utf8_encode')) {
45
- function utf8_encode($string)
46
- {
47
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::utf8_encode($string);
48
- }
49
- }
50
- if (!\function_exists('utf8_decode')) {
51
- function utf8_decode($string)
52
- {
53
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::utf8_decode($string);
54
- }
55
- }
56
- if (!\function_exists('spl_object_id')) {
57
- function spl_object_id($object)
58
- {
59
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::spl_object_id($object);
60
- }
61
- }
62
- if (!\function_exists('mb_ord')) {
63
- function mb_ord($string, $encoding = null)
64
- {
65
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::mb_ord($string, $encoding);
66
- }
67
- }
68
- if (!\function_exists('mb_chr')) {
69
- function mb_chr($codepoint, $encoding = null)
70
- {
71
- return \PYS_PRO_GLOBAL\Symfony\Polyfill\Php72\Php72::mb_chr($codepoint, $encoding);
72
- }
73
- }
74
- if (!\function_exists('mb_scrub')) {
75
- function mb_scrub($string, $encoding = null)
76
- {
77
- $encoding = null === $encoding ? \mb_internal_encoding() : $encoding;
78
- return \mb_convert_encoding($string, $encoding, $encoding);
79
- }
80
- }