Cyr-To-Lat - Version 4.2.3

Version Description

(29.08.2019) = * Scoped Symfony polyfill to avoid problems with composer autoloader on some sites.

Download this release

Release Info

Developer mihdan
Plugin Icon 128x128 Cyr-To-Lat
Version 4.2.3
Comparing to
See all releases

Code changes from version 4.2.2 to 4.2.3

Files changed (114) hide show
  1. cyr-to-lat.php +4 -4
  2. includes/class-cyr-to-lat-conversion-tables.php +2 -2
  3. includes/class-cyr-to-lat-main.php +1 -1
  4. lib/polyfill-mbstring/Mbstring.php +830 -0
  5. lib/polyfill-mbstring/Resources/unidata/lowerCase.php +1096 -0
  6. lib/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
  7. lib/polyfill-mbstring/Resources/unidata/upperCase.php +1104 -0
  8. readme.txt +4 -1
  9. vendor/a5hleyrich/wp-background-processing/.gitignore +0 -1
  10. vendor/a5hleyrich/wp-background-processing/README.md +0 -158
  11. vendor/a5hleyrich/wp-background-processing/composer.json +0 -18
  12. vendor/composer/autoload_classmap.php +1 -1
  13. vendor/composer/autoload_files.php +0 -10
  14. vendor/composer/autoload_psr4.php +0 -1
  15. vendor/composer/autoload_real.php +0 -18
  16. vendor/composer/autoload_static.php +1 -13
  17. vendor/composer/installed.json +0 -61
  18. vendor/composer/installers/composer.json +0 -107
  19. vendor/composer/installers/src/Composer/Installers/AglInstaller.php +0 -21
  20. vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php +0 -9
  21. vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php +0 -11
  22. vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php +0 -49
  23. vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php +0 -9
  24. vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +0 -136
  25. vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php +0 -126
  26. vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php +0 -9
  27. vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +0 -82
  28. vendor/composer/installers/src/Composer/Installers/ChefInstaller.php +0 -11
  29. vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php +0 -9
  30. vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php +0 -10
  31. vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php +0 -34
  32. vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php +0 -11
  33. vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php +0 -13
  34. vendor/composer/installers/src/Composer/Installers/CraftInstaller.php +0 -35
  35. vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php +0 -21
  36. vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php +0 -10
  37. vendor/composer/installers/src/Composer/Installers/DframeInstaller.php +0 -10
  38. vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php +0 -50
  39. vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php +0 -16
  40. vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php +0 -20
  41. vendor/composer/installers/src/Composer/Installers/ElggInstaller.php +0 -9
  42. vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php +0 -12
  43. vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php +0 -29
  44. vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php +0 -10
  45. vendor/composer/installers/src/Composer/Installers/FuelInstaller.php +0 -11
  46. vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php +0 -9
  47. vendor/composer/installers/src/Composer/Installers/GravInstaller.php +0 -30
  48. vendor/composer/installers/src/Composer/Installers/HuradInstaller.php +0 -25
  49. vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php +0 -11
  50. vendor/composer/installers/src/Composer/Installers/Installer.php +0 -278
  51. vendor/composer/installers/src/Composer/Installers/ItopInstaller.php +0 -9
  52. vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php +0 -15
  53. vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php +0 -18
  54. vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php +0 -11
  55. vendor/composer/installers/src/Composer/Installers/KnownInstaller.php +0 -11
  56. vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php +0 -10
  57. vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php +0 -9
  58. vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php +0 -27
  59. vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php +0 -9
  60. vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php +0 -10
  61. vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php +0 -10
  62. vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php +0 -9
  63. vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php +0 -16
  64. vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php +0 -11
  65. vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php +0 -37
  66. vendor/composer/installers/src/Composer/Installers/MakoInstaller.php +0 -9
  67. vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +0 -25
  68. vendor/composer/installers/src/Composer/Installers/MayaInstaller.php +0 -33
  69. vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php +0 -51
  70. vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php +0 -119
  71. vendor/composer/installers/src/Composer/Installers/ModxInstaller.php +0 -12
  72. vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php +0 -58
  73. vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +0 -47
  74. vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php +0 -24
  75. vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php +0 -14
  76. vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +0 -59
  77. vendor/composer/installers/src/Composer/Installers/PPIInstaller.php +0 -9
  78. vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php +0 -11
  79. vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php +0 -11
  80. vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php +0 -21
  81. vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php +0 -32
  82. vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php +0 -29
  83. vendor/composer/installers/src/Composer/Installers/Plugin.php +0 -17
  84. vendor/composer/installers/src/Composer/Installers/PortoInstaller.php +0 -9
  85. vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php +0 -10
  86. vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php +0 -11
  87. vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php +0 -63
  88. vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php +0 -24
  89. vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php +0 -10
  90. vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php +0 -10
  91. vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php +0 -10
  92. vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php +0 -22
  93. vendor/composer/installers/src/Composer/Installers/SMFInstaller.php +0 -10
  94. vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php +0 -60
  95. vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php +0 -35
  96. vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php +0 -25
  97. vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php +0 -49
  98. vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php +0 -26
  99. vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php +0 -16
  100. vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php +0 -38
  101. vendor/composer/installers/src/Composer/Installers/TaoInstaller.php +0 -12
  102. vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php +0 -12
  103. vendor/composer/installers/src/Composer/Installers/TuskInstaller.php +0 -14
  104. vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php +0 -9
  105. vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php +0 -10
  106. vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php +0 -49
  107. vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php +0 -21
  108. vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php +0 -9
  109. vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php +0 -12
  110. vendor/composer/installers/src/Composer/Installers/YawikInstaller.php +0 -32
  111. vendor/composer/installers/src/Composer/Installers/ZendInstaller.php +0 -11
  112. vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php +0 -10
  113. vendor/composer/installers/src/bootstrap.php +0 -13
  114. vendor/symfony/polyfill-mbstring +0 -1
cyr-to-lat.php CHANGED
@@ -7,10 +7,10 @@
7
  * Description: Converts Cyrillic characters in post and term slugs to Latin characters. Useful for creating human-readable URLs. Based on the original plugin by Anton Skorobogatov.
8
  * Author: Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
9
  * Author URI: https://profiles.wordpress.org/sergeybiryukov/
10
- * Requires at least: 2.3
11
  * Tested up to: 5.2
12
- * Version: 4.2.2
13
- * Stable tag: 4.2.2
14
  *
15
  * Text Domain: cyr2lat
16
  * Domain Path: /languages/
@@ -28,7 +28,7 @@ if ( ! defined( 'CYR_TO_LAT_VERSION' ) ) {
28
  /**
29
  * Plugin version.
30
  */
31
- define( 'CYR_TO_LAT_VERSION', '4.2.2' );
32
  }
33
 
34
  if ( ! defined( 'CYR_TO_LAT_PATH' ) ) {
7
  * Description: Converts Cyrillic characters in post and term slugs to Latin characters. Useful for creating human-readable URLs. Based on the original plugin by Anton Skorobogatov.
8
  * Author: Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
9
  * Author URI: https://profiles.wordpress.org/sergeybiryukov/
10
+ * Requires at least: 5.1
11
  * Tested up to: 5.2
12
+ * Version: 4.2.3
13
+ * Stable tag: 4.2.3
14
  *
15
  * Text Domain: cyr2lat
16
  * Domain Path: /languages/
28
  /**
29
  * Plugin version.
30
  */
31
+ define( 'CYR_TO_LAT_VERSION', '4.2.3' );
32
  }
33
 
34
  if ( ! defined( 'CYR_TO_LAT_PATH' ) ) {
includes/class-cyr-to-lat-conversion-tables.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package cyr-to-lat
6
  */
7
 
8
- use Symfony\Polyfill\Mbstring\Mbstring;
9
 
10
  /**
11
  * Class Cyr_To_Lat_Conversion_Tables
@@ -398,7 +398,7 @@ class Cyr_To_Lat_Conversion_Tables {
398
  *
399
  * Example of wrong encoding on Mac:
400
  * берЁзовыЙ-белозёрский - original input,
401
- * берЁзовыЙ-белозёрский.png - actual filename created on Mac,
402
  * ber%d0%95%cc%88zovy%d0%98%cc%86-beloz%d0%B5%cc%88rski%d0%B8%cc%86.png - urlencode() of the above,
403
  * berËzovyĬ-belozërskiĭ.png - actual filename passed via standard ISO9 transliteration table,
404
  * berE%CC%88zovyI%CC%86-beloze%CC%88rskii%CC%86.png - urlencode() of the above.
5
  * @package cyr-to-lat
6
  */
7
 
8
+ use Cyr_To_Lat\Symfony\Polyfill\Mbstring\Mbstring;
9
 
10
  /**
11
  * Class Cyr_To_Lat_Conversion_Tables
398
  *
399
  * Example of wrong encoding on Mac:
400
  * берЁзовыЙ-белозёрский - original input,
401
+ * берЁзовыЙ-белозёрский.png - actual filename created on Mac (ЁёЙй are already wrongly encoded),
402
  * ber%d0%95%cc%88zovy%d0%98%cc%86-beloz%d0%B5%cc%88rski%d0%B8%cc%86.png - urlencode() of the above,
403
  * berËzovyĬ-belozërskiĭ.png - actual filename passed via standard ISO9 transliteration table,
404
  * berE%CC%88zovyI%CC%86-beloze%CC%88rskii%CC%86.png - urlencode() of the above.
includes/class-cyr-to-lat-main.php CHANGED
@@ -5,7 +5,7 @@
5
  * @package cyr-to-lat
6
  */
7
 
8
- use Symfony\Polyfill\Mbstring\Mbstring;
9
 
10
  /**
11
  * Class Cyr_To_Lat_Main
5
  * @package cyr-to-lat
6
  */
7
 
8
+ use Cyr_To_Lat\Symfony\Polyfill\Mbstring\Mbstring;
9
 
10
  /**
11
  * Class Cyr_To_Lat_Main
lib/polyfill-mbstring/Mbstring.php ADDED
@@ -0,0 +1,830 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * This file is part of the Symfony package.
4
+ *
5
+ * (c) Fabien Potencier <fabien@symfony.com>
6
+ *
7
+ * For the full copyright and license information, please view the LICENSE
8
+ * file that was distributed with this source code.
9
+ *
10
+ * @package cyr-to-lat
11
+ */
12
+
13
+ namespace Cyr_To_Lat\Symfony\Polyfill\Mbstring;
14
+
15
+ /**
16
+ * Partial mbstring implementation in PHP, iconv based, UTF-8 centric.
17
+ *
18
+ * Implemented:
19
+ * - mb_chr - Returns a specific character from its Unicode code point
20
+ * - mb_convert_encoding - Convert character encoding
21
+ * - mb_convert_variables - Convert character code in variable(s)
22
+ * - mb_decode_mimeheader - Decode string in MIME header field
23
+ * - mb_encode_mimeheader - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED
24
+ * - mb_decode_numericentity - Decode HTML numeric string reference to character
25
+ * - mb_encode_numericentity - Encode character to HTML numeric string reference
26
+ * - mb_convert_case - Perform case folding on a string
27
+ * - mb_detect_encoding - Detect character encoding
28
+ * - mb_get_info - Get internal settings of mbstring
29
+ * - mb_http_input - Detect HTTP input character encoding
30
+ * - mb_http_output - Set/Get HTTP output character encoding
31
+ * - mb_internal_encoding - Set/Get internal character encoding
32
+ * - mb_list_encodings - Returns an array of all supported encodings
33
+ * - mb_ord - Returns the Unicode code point of a character
34
+ * - mb_output_handler - Callback function converts character encoding in output buffer
35
+ * - mb_scrub - Replaces ill-formed byte sequences with substitute characters
36
+ * - mb_strlen - Get string length
37
+ * - mb_strpos - Find position of first occurrence of string in a string
38
+ * - mb_strrpos - Find position of last occurrence of a string in a string
39
+ * - mb_str_split - Convert a string to an array
40
+ * - mb_strtolower - Make a string lowercase
41
+ * - mb_strtoupper - Make a string uppercase
42
+ * - mb_substitute_character - Set/Get substitution character
43
+ * - mb_substr - Get part of string
44
+ * - mb_stripos - Finds position of first occurrence of a string within another, case insensitive
45
+ * - mb_stristr - Finds first occurrence of a string within another, case insensitive
46
+ * - mb_strrchr - Finds the last occurrence of a character in a string within another
47
+ * - mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive
48
+ * - mb_strripos - Finds position of last occurrence of a string within another, case insensitive
49
+ * - mb_strstr - Finds first occurrence of a string within another
50
+ * - mb_strwidth - Return width of string
51
+ * - mb_substr_count - Count the number of substring occurrences
52
+ *
53
+ * Not implemented:
54
+ * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
55
+ * - mb_ereg_* - Regular expression with multibyte support
56
+ * - mb_parse_str - Parse GET/POST/COOKIE data and set global variable
57
+ * - mb_preferred_mime_name - Get MIME charset string
58
+ * - mb_regex_encoding - Returns current encoding for multibyte regex as string
59
+ * - mb_regex_set_options - Set/Get the default options for mbregex functions
60
+ * - mb_send_mail - Send encoded mail
61
+ * - mb_split - Split multibyte string using regular expression
62
+ * - mb_strcut - Get part of string
63
+ * - mb_strimwidth - Get truncated string with specified width
64
+ *
65
+ * @author Nicolas Grekas <p@tchwork.com>
66
+ *
67
+ * @internal
68
+ */
69
+ final class Mbstring
70
+ {
71
+ const MB_CASE_FOLD = PHP_INT_MAX;
72
+
73
+ private static $encodingList = array('ASCII', 'UTF-8');
74
+ private static $language = 'neutral';
75
+ private static $internalEncoding = 'UTF-8';
76
+ private static $caseFold = array(
77
+ array('µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"),
78
+ array('μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'),
79
+ );
80
+
81
+ public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
82
+ {
83
+ if (\is_array($fromEncoding) || false !== strpos($fromEncoding, ',')) {
84
+ $fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
85
+ } else {
86
+ $fromEncoding = self::getEncoding($fromEncoding);
87
+ }
88
+
89
+ $toEncoding = self::getEncoding($toEncoding);
90
+
91
+ if ('BASE64' === $fromEncoding) {
92
+ $s = base64_decode($s);
93
+ $fromEncoding = $toEncoding;
94
+ }
95
+
96
+ if ('BASE64' === $toEncoding) {
97
+ return base64_encode($s);
98
+ }
99
+
100
+ if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) {
101
+ if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) {
102
+ $fromEncoding = 'Windows-1252';
103
+ }
104
+ if ('UTF-8' !== $fromEncoding) {
105
+ $s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);
106
+ }
107
+
108
+ return preg_replace_callback('/[\x80-\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s);
109
+ }
110
+
111
+ if ('HTML-ENTITIES' === $fromEncoding) {
112
+ $s = html_entity_decode($s, ENT_COMPAT, 'UTF-8');
113
+ $fromEncoding = 'UTF-8';
114
+ }
115
+
116
+ return iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
117
+ }
118
+
119
+ public static function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null)
120
+ {
121
+ $vars = array(&$a, &$b, &$c, &$d, &$e, &$f);
122
+
123
+ $ok = true;
124
+ array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {
125
+ if (false === $v = Mbstring::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
126
+ $ok = false;
127
+ }
128
+ });
129
+
130
+ return $ok ? $fromEncoding : false;
131
+ }
132
+
133
+ public static function mb_decode_mimeheader($s)
134
+ {
135
+ return iconv_mime_decode($s, 2, self::$internalEncoding);
136
+ }
137
+
138
+ public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
139
+ {
140
+ trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING);
141
+ }
142
+
143
+ public static function mb_decode_numericentity($s, $convmap, $encoding = null)
144
+ {
145
+ if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
146
+ trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
147
+
148
+ return null;
149
+ }
150
+
151
+ if (!\is_array($convmap) || !$convmap) {
152
+ return false;
153
+ }
154
+
155
+ if (null !== $encoding && !\is_scalar($encoding)) {
156
+ trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
157
+
158
+ return ''; // Instead of null (cf. mb_encode_numericentity).
159
+ }
160
+
161
+ $s = (string) $s;
162
+ if ('' === $s) {
163
+ return '';
164
+ }
165
+
166
+ $encoding = self::getEncoding($encoding);
167
+
168
+ if ('UTF-8' === $encoding) {
169
+ $encoding = null;
170
+ if (!preg_match('//u', $s)) {
171
+ $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
172
+ }
173
+ } else {
174
+ $s = iconv($encoding, 'UTF-8//IGNORE', $s);
175
+ }
176
+
177
+ $cnt = floor(\count($convmap) / 4) * 4;
178
+
179
+ for ($i = 0; $i < $cnt; $i += 4) {
180
+ // collector_decode_htmlnumericentity ignores $convmap[$i + 3]
181
+ $convmap[$i] += $convmap[$i + 2];
182
+ $convmap[$i + 1] += $convmap[$i + 2];
183
+ }
184
+
185
+ $s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) {
186
+ $c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];
187
+ for ($i = 0; $i < $cnt; $i += 4) {
188
+ if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {
189
+ return Mbstring::mb_chr($c - $convmap[$i + 2]);
190
+ }
191
+ }
192
+
193
+ return $m[0];
194
+ }, $s);
195
+
196
+ if (null === $encoding) {
197
+ return $s;
198
+ }
199
+
200
+ return iconv('UTF-8', $encoding.'//IGNORE', $s);
201
+ }
202
+
203
+ public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
204
+ {
205
+ if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) {
206
+ trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING);
207
+
208
+ return null;
209
+ }
210
+
211
+ if (!\is_array($convmap) || !$convmap) {
212
+ return false;
213
+ }
214
+
215
+ if (null !== $encoding && !\is_scalar($encoding)) {
216
+ trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING);
217
+
218
+ return null; // Instead of '' (cf. mb_decode_numericentity).
219
+ }
220
+
221
+ if (null !== $is_hex && !\is_scalar($is_hex)) {
222
+ trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', E_USER_WARNING);
223
+
224
+ return null;
225
+ }
226
+
227
+ $s = (string) $s;
228
+ if ('' === $s) {
229
+ return '';
230
+ }
231
+
232
+ $encoding = self::getEncoding($encoding);
233
+
234
+ if ('UTF-8' === $encoding) {
235
+ $encoding = null;
236
+ if (!preg_match('//u', $s)) {
237
+ $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
238
+ }
239
+ } else {
240
+ $s = iconv($encoding, 'UTF-8//IGNORE', $s);
241
+ }
242
+
243
+ static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
244
+
245
+ $cnt = floor(\count($convmap) / 4) * 4;
246
+ $i = 0;
247
+ $len = \strlen($s);
248
+ $result = '';
249
+
250
+ while ($i < $len) {
251
+ $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
252
+ $uchr = substr($s, $i, $ulen);
253
+ $i += $ulen;
254
+ $c = self::mb_ord($uchr);
255
+
256
+ for ($j = 0; $j < $cnt; $j += 4) {
257
+ if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) {
258
+ $cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3];
259
+ $result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';';
260
+ continue 2;
261
+ }
262
+ }
263
+ $result .= $uchr;
264
+ }
265
+
266
+ if (null === $encoding) {
267
+ return $result;
268
+ }
269
+
270
+ return iconv('UTF-8', $encoding.'//IGNORE', $result);
271
+ }
272
+
273
+ public static function mb_convert_case($s, $mode, $encoding = null)
274
+ {
275
+ $s = (string) $s;
276
+ if ('' === $s) {
277
+ return '';
278
+ }
279
+
280
+ $encoding = self::getEncoding($encoding);
281
+
282
+ if ('UTF-8' === $encoding) {
283
+ $encoding = null;
284
+ if (!preg_match('//u', $s)) {
285
+ $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
286
+ }
287
+ } else {
288
+ $s = iconv($encoding, 'UTF-8//IGNORE', $s);
289
+ }
290
+
291
+ if (MB_CASE_TITLE == $mode) {
292
+ static $titleRegexp = null;
293
+ if (null === $titleRegexp) {
294
+ $titleRegexp = self::getData('titleCaseRegexp');
295
+ }
296
+ $s = preg_replace_callback($titleRegexp, array(__CLASS__, 'title_case'), $s);
297
+ } else {
298
+ if (MB_CASE_UPPER == $mode) {
299
+ static $upper = null;
300
+ if (null === $upper) {
301
+ $upper = self::getData('upperCase');
302
+ }
303
+ $map = $upper;
304
+ } else {
305
+ if (self::MB_CASE_FOLD === $mode) {
306
+ $s = str_replace(self::$caseFold[0], self::$caseFold[1], $s);
307
+ }
308
+
309
+ static $lower = null;
310
+ if (null === $lower) {
311
+ $lower = self::getData('lowerCase');
312
+ }
313
+ $map = $lower;
314
+ }
315
+
316
+ static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
317
+
318
+ $i = 0;
319
+ $len = \strlen($s);
320
+
321
+ while ($i < $len) {
322
+ $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
323
+ $uchr = substr($s, $i, $ulen);
324
+ $i += $ulen;
325
+
326
+ if (isset($map[$uchr])) {
327
+ $uchr = $map[$uchr];
328
+ $nlen = \strlen($uchr);
329
+
330
+ if ($nlen == $ulen) {
331
+ $nlen = $i;
332
+ do {
333
+ $s[--$nlen] = $uchr[--$ulen];
334
+ } while ($ulen);
335
+ } else {
336
+ $s = substr_replace($s, $uchr, $i - $ulen, $ulen);
337
+ $len += $nlen - $ulen;
338
+ $i += $nlen - $ulen;
339
+ }
340
+ }
341
+ }
342
+ }
343
+
344
+ if (null === $encoding) {
345
+ return $s;
346
+ }
347
+
348
+ return iconv('UTF-8', $encoding.'//IGNORE', $s);
349
+ }
350
+
351
+ public static function mb_internal_encoding($encoding = null)
352
+ {
353
+ if (null === $encoding) {
354
+ return self::$internalEncoding;
355
+ }
356
+
357
+ $encoding = self::getEncoding($encoding);
358
+
359
+ if ('UTF-8' === $encoding || false !== @iconv($encoding, $encoding, ' ')) {
360
+ self::$internalEncoding = $encoding;
361
+
362
+ return true;
363
+ }
364
+
365
+ return false;
366
+ }
367
+
368
+ public static function mb_language($lang = null)
369
+ {
370
+ if (null === $lang) {
371
+ return self::$language;
372
+ }
373
+
374
+ switch ($lang = strtolower($lang)) {
375
+ case 'uni':
376
+ case 'neutral':
377
+ self::$language = $lang;
378
+
379
+ return true;
380
+ }
381
+
382
+ return false;
383
+ }
384
+
385
+ public static function mb_list_encodings()
386
+ {
387
+ return array('UTF-8');
388
+ }
389
+
390
+ public static function mb_encoding_aliases($encoding)
391
+ {
392
+ switch (strtoupper($encoding)) {
393
+ case 'UTF8':
394
+ case 'UTF-8':
395
+ return array('utf8');
396
+ }
397
+
398
+ return false;
399
+ }
400
+
401
+ public static function mb_check_encoding($var = null, $encoding = null)
402
+ {
403
+ if (null === $encoding) {
404
+ if (null === $var) {
405
+ return false;
406
+ }
407
+ $encoding = self::$internalEncoding;
408
+ }
409
+
410
+ return self::mb_detect_encoding($var, array($encoding)) || false !== @iconv($encoding, $encoding, $var);
411
+ }
412
+
413
+ public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
414
+ {
415
+ if (null === $encodingList) {
416
+ $encodingList = self::$encodingList;
417
+ } else {
418
+ if (!\is_array($encodingList)) {
419
+ $encodingList = array_map('trim', explode(',', $encodingList));
420
+ }
421
+ $encodingList = array_map('strtoupper', $encodingList);
422
+ }
423
+
424
+ foreach ($encodingList as $enc) {
425
+ switch ($enc) {
426
+ case 'ASCII':
427
+ if (!preg_match('/[\x80-\xFF]/', $str)) {
428
+ return $enc;
429
+ }
430
+ break;
431
+
432
+ case 'UTF8':
433
+ case 'UTF-8':
434
+ if (preg_match('//u', $str)) {
435
+ return 'UTF-8';
436
+ }
437
+ break;
438
+
439
+ default:
440
+ if (0 === strncmp($enc, 'ISO-8859-', 9)) {
441
+ return $enc;
442
+ }
443
+ }
444
+ }
445
+
446
+ return false;
447
+ }
448
+
449
+ public static function mb_detect_order($encodingList = null)
450
+ {
451
+ if (null === $encodingList) {
452
+ return self::$encodingList;
453
+ }
454
+
455
+ if (!\is_array($encodingList)) {
456
+ $encodingList = array_map('trim', explode(',', $encodingList));
457
+ }
458
+ $encodingList = array_map('strtoupper', $encodingList);
459
+
460
+ foreach ($encodingList as $enc) {
461
+ switch ($enc) {
462
+ default:
463
+ if (strncmp($enc, 'ISO-8859-', 9)) {
464
+ return false;
465
+ }
466
+ // no break
467
+ case 'ASCII':
468
+ case 'UTF8':
469
+ case 'UTF-8':
470
+ }
471
+ }
472
+
473
+ self::$encodingList = $encodingList;
474
+
475
+ return true;
476
+ }
477
+
478
+ public static function mb_strlen($s, $encoding = null)
479
+ {
480
+ $encoding = self::getEncoding($encoding);
481
+ if ('CP850' === $encoding || 'ASCII' === $encoding) {
482
+ return \strlen($s);
483
+ }
484
+
485
+ return @iconv_strlen($s, $encoding);
486
+ }
487
+
488
+ public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null)
489
+ {
490
+ $encoding = self::getEncoding($encoding);
491
+ if ('CP850' === $encoding || 'ASCII' === $encoding) {
492
+ return strpos($haystack, $needle, $offset);
493
+ }
494
+
495
+ $needle = (string) $needle;
496
+ if ('' === $needle) {
497
+ trigger_error(__METHOD__.': Empty delimiter', E_USER_WARNING);
498
+
499
+ return false;
500
+ }
501
+
502
+ return iconv_strpos($haystack, $needle, $offset, $encoding);
503
+ }
504
+
505
+ public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null)
506
+ {
507
+ $encoding = self::getEncoding($encoding);
508
+ if ('CP850' === $encoding || 'ASCII' === $encoding) {
509
+ return strrpos($haystack, $needle, $offset);
510
+ }
511
+
512
+ if ($offset != (int) $offset) {
513
+ $offset = 0;
514
+ } elseif ($offset = (int) $offset) {
515
+ if ($offset < 0) {
516
+ $haystack = self::mb_substr($haystack, 0, $offset, $encoding);
517
+ $offset = 0;
518
+ } else {
519
+ $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);
520
+ }
521
+ }
522
+
523
+ $pos = iconv_strrpos($haystack, $needle, $encoding);
524
+
525
+ return false !== $pos ? $offset + $pos : false;
526
+ }
527
+
528
+ public static function mb_str_split($string, $split_length = 1, $encoding = null)
529
+ {
530
+ if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) {
531
+ trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING);
532
+
533
+ return null;
534
+ }
535
+
536
+ if ($split_length < 1) {
537
+ trigger_error('The length of each segment must be greater than zero', E_USER_WARNING);
538
+
539
+ return false;
540
+ }
541
+
542
+ if (null === $encoding) {
543
+ $encoding = mb_internal_encoding();
544
+ }
545
+
546
+ $result = array();
547
+ $length = mb_strlen($string, $encoding);
548
+
549
+ for ($i = 0; $i < $length; $i += $split_length) {
550
+ $result[] = mb_substr($string, $i, $split_length, $encoding);
551
+ }
552
+
553
+ return $result;
554
+ }
555
+
556
+ public static function mb_strtolower($s, $encoding = null)
557
+ {
558
+ return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);
559
+ }
560
+
561
+ public static function mb_strtoupper($s, $encoding = null)
562
+ {
563
+ return self::mb_convert_case($s, MB_CASE_UPPER, $encoding);
564
+ }
565
+
566
+ public static function mb_substitute_character($c = null)
567
+ {
568
+ if (0 === strcasecmp($c, 'none')) {
569
+ return true;
570
+ }
571
+
572
+ return null !== $c ? false : 'none';
573
+ }
574
+
575
+ public static function mb_substr($s, $start, $length = null, $encoding = null)
576
+ {
577
+ $encoding = self::getEncoding($encoding);
578
+ if ('CP850' === $encoding || 'ASCII' === $encoding) {
579
+ return (string) substr($s, $start, null === $length ? 2147483647 : $length);
580
+ }
581
+
582
+ if ($start < 0) {
583
+ $start = iconv_strlen($s, $encoding) + $start;
584
+ if ($start < 0) {
585
+ $start = 0;
586
+ }
587
+ }
588
+
589
+ if (null === $length) {
590
+ $length = 2147483647;
591
+ } elseif ($length < 0) {
592
+ $length = iconv_strlen($s, $encoding) + $length - $start;
593
+ if ($length < 0) {
594
+ return '';
595
+ }
596
+ }
597
+
598
+ return (string) iconv_substr($s, $start, $length, $encoding);
599
+ }
600
+
601
+ public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
602
+ {
603
+ $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
604
+ $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
605
+
606
+ return self::mb_strpos($haystack, $needle, $offset, $encoding);
607
+ }
608
+
609
+ public static function mb_stristr($haystack, $needle, $part = false, $encoding = null)
610
+ {
611
+ $pos = self::mb_stripos($haystack, $needle, 0, $encoding);
612
+
613
+ return self::getSubpart($pos, $part, $haystack, $encoding);
614
+ }
615
+
616
+ public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null)
617
+ {
618
+ $encoding = self::getEncoding($encoding);
619
+ if ('CP850' === $encoding || 'ASCII' === $encoding) {
620
+ return strrchr($haystack, $needle, $part);
621
+ }
622
+ $needle = self::mb_substr($needle, 0, 1, $encoding);
623
+ $pos = iconv_strrpos($haystack, $needle, $encoding);
624
+
625
+ return self::getSubpart($pos, $part, $haystack, $encoding);
626
+ }
627
+
628
+ public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null)
629
+ {
630
+ $needle = self::mb_substr($needle, 0, 1, $encoding);
631
+ $pos = self::mb_strripos($haystack, $needle, $encoding);
632
+
633
+ return self::getSubpart($pos, $part, $haystack, $encoding);
634
+ }
635
+
636
+ public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
637
+ {
638
+ $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
639
+ $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
640
+
641
+ return self::mb_strrpos($haystack, $needle, $offset, $encoding);
642
+ }
643
+
644
+ public static function mb_strstr($haystack, $needle, $part = false, $encoding = null)
645
+ {
646
+ $pos = strpos($haystack, $needle);
647
+ if (false === $pos) {
648
+ return false;
649
+ }
650
+ if ($part) {
651
+ return substr($haystack, 0, $pos);
652
+ }
653
+
654
+ return substr($haystack, $pos);
655
+ }
656
+
657
+ public static function mb_get_info($type = 'all')
658
+ {
659
+ $info = array(
660
+ 'internal_encoding' => self::$internalEncoding,
661
+ 'http_output' => 'pass',
662
+ 'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)',
663
+ 'func_overload' => 0,
664
+ 'func_overload_list' => 'no overload',
665
+ 'mail_charset' => 'UTF-8',
666
+ 'mail_header_encoding' => 'BASE64',
667
+ 'mail_body_encoding' => 'BASE64',
668
+ 'illegal_chars' => 0,
669
+ 'encoding_translation' => 'Off',
670
+ 'language' => self::$language,
671
+ 'detect_order' => self::$encodingList,
672
+ 'substitute_character' => 'none',
673
+ 'strict_detection' => 'Off',
674
+ );
675
+
676
+ if ('all' === $type) {
677
+ return $info;
678
+ }
679
+ if (isset($info[$type])) {
680
+ return $info[$type];
681
+ }
682
+
683
+ return false;
684
+ }
685
+
686
+ public static function mb_http_input($type = '')
687
+ {
688
+ return false;
689
+ }
690
+
691
+ public static function mb_http_output($encoding = null)
692
+ {
693
+ return null !== $encoding ? 'pass' === $encoding : 'pass';
694
+ }
695
+
696
+ public static function mb_strwidth($s, $encoding = null)
697
+ {
698
+ $encoding = self::getEncoding($encoding);
699
+
700
+ if ('UTF-8' !== $encoding) {
701
+ $s = iconv($encoding, 'UTF-8//IGNORE', $s);
702
+ }
703
+
704
+ $s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide);
705
+
706
+ return ($wide << 1) + iconv_strlen($s, 'UTF-8');
707
+ }
708
+
709
+ public static function mb_substr_count($haystack, $needle, $encoding = null)
710
+ {
711
+ return substr_count($haystack, $needle);
712
+ }
713
+
714
+ public static function mb_output_handler($contents, $status)
715
+ {
716
+ return $contents;
717
+ }
718
+
719
+ public static function mb_chr($code, $encoding = null)
720
+ {
721
+ if (0x80 > $code %= 0x200000) {
722
+ $s = \chr($code);
723
+ } elseif (0x800 > $code) {
724
+ $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
725
+ } elseif (0x10000 > $code) {
726
+ $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
727
+ } else {
728
+ $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
729
+ }
730
+
731
+ if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
732
+ $s = mb_convert_encoding($s, $encoding, 'UTF-8');
733
+ }
734
+
735
+ return $s;
736
+ }
737
+
738
+ public static function mb_ord($s, $encoding = null)
739
+ {
740
+ if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
741
+ $s = mb_convert_encoding($s, 'UTF-8', $encoding);
742
+ }
743
+
744
+ if (1 === \strlen($s)) {
745
+ return \ord($s);
746
+ }
747
+
748
+ $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
749
+ if (0xF0 <= $code) {
750
+ return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
751
+ }
752
+ if (0xE0 <= $code) {
753
+ return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
754
+ }
755
+ if (0xC0 <= $code) {
756
+ return (($code - 0xC0) << 6) + $s[2] - 0x80;
757
+ }
758
+
759
+ return $code;
760
+ }
761
+
762
+ private static function getSubpart($pos, $part, $haystack, $encoding)
763
+ {
764
+ if (false === $pos) {
765
+ return false;
766
+ }
767
+ if ($part) {
768
+ return self::mb_substr($haystack, 0, $pos, $encoding);
769
+ }
770
+
771
+ return self::mb_substr($haystack, $pos, null, $encoding);
772
+ }
773
+
774
+ private static function html_encoding_callback(array $m)
775
+ {
776
+ $i = 1;
777
+ $entities = '';
778
+ $m = unpack('C*', htmlentities($m[0], ENT_COMPAT, 'UTF-8'));
779
+
780
+ while (isset($m[$i])) {
781
+ if (0x80 > $m[$i]) {
782
+ $entities .= \chr($m[$i++]);
783
+ continue;
784
+ }
785
+ if (0xF0 <= $m[$i]) {
786
+ $c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
787
+ } elseif (0xE0 <= $m[$i]) {
788
+ $c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
789
+ } else {
790
+ $c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80;
791
+ }
792
+
793
+ $entities .= '&#'.$c.';';
794
+ }
795
+
796
+ return $entities;
797
+ }
798
+
799
+ private static function title_case(array $s)
800
+ {
801
+ return self::mb_convert_case($s[1], MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], MB_CASE_LOWER, 'UTF-8');
802
+ }
803
+
804
+ private static function getData($file)
805
+ {
806
+ if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {
807
+ return require $file;
808
+ }
809
+
810
+ return false;
811
+ }
812
+
813
+ private static function getEncoding($encoding)
814
+ {
815
+ if (null === $encoding) {
816
+ return self::$internalEncoding;
817
+ }
818
+
819
+ $encoding = strtoupper($encoding);
820
+
821
+ if ('8BIT' === $encoding || 'BINARY' === $encoding) {
822
+ return 'CP850';
823
+ }
824
+ if ('UTF8' === $encoding) {
825
+ return 'UTF-8';
826
+ }
827
+
828
+ return $encoding;
829
+ }
830
+ }
lib/polyfill-mbstring/Resources/unidata/lowerCase.php ADDED
@@ -0,0 +1,1096 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ return array(
4
+ 'A' => 'a',
5
+ 'B' => 'b',
6
+ 'C' => 'c',
7
+ 'D' => 'd',
8
+ 'E' => 'e',
9
+ 'F' => 'f',
10
+ 'G' => 'g',
11
+ 'H' => 'h',
12
+ 'I' => 'i',
13
+ 'J' => 'j',
14
+ 'K' => 'k',
15
+ 'L' => 'l',
16
+ 'M' => 'm',
17
+ 'N' => 'n',
18
+ 'O' => 'o',
19
+ 'P' => 'p',
20
+ 'Q' => 'q',
21
+ 'R' => 'r',
22
+ 'S' => 's',
23
+ 'T' => 't',
24
+ 'U' => 'u',
25
+ 'V' => 'v',
26
+ 'W' => 'w',
27
+ 'X' => 'x',
28
+ 'Y' => 'y',
29
+ 'Z' => 'z',
30
+ 'À' => 'à',
31
+ 'Á' => 'á',
32
+ 'Â' => 'â',
33
+ 'Ã' => 'ã',
34
+ 'Ä' => 'ä',
35
+ 'Å' => 'å',
36
+ 'Æ' => 'æ',
37
+ 'Ç' => 'ç',
38
+ 'È' => 'è',
39
+ 'É' => 'é',
40
+ 'Ê' => 'ê',
41
+ 'Ë' => 'ë',
42
+ 'Ì' => 'ì',
43
+ 'Í' => 'í',
44
+ 'Î' => 'î',
45
+ 'Ï' => 'ï',
46
+ 'Ð' => 'ð',
47
+ 'Ñ' => 'ñ',
48
+ 'Ò' => 'ò',
49
+ 'Ó' => 'ó',
50
+ 'Ô' => 'ô',
51
+ 'Õ' => 'õ',
52
+ 'Ö' => 'ö',
53
+ 'Ø' => 'ø',
54
+ 'Ù' => 'ù',
55
+ 'Ú' => 'ú',
56
+ 'Û' => 'û',
57
+ 'Ü' => 'ü',
58
+ 'Ý' => 'ý',
59
+ 'Þ' => 'þ',
60
+ 'Ā' => 'ā',
61
+ 'Ă' => 'ă',
62
+ 'Ą' => 'ą',
63
+ 'Ć' => 'ć',
64
+ 'Ĉ' => 'ĉ',
65
+ 'Ċ' => 'ċ',
66
+ 'Č' => 'č',
67
+ 'Ď' => 'ď',
68
+ 'Đ' => 'đ',
69
+ 'Ē' => 'ē',
70
+ 'Ĕ' => 'ĕ',
71
+ 'Ė' => 'ė',
72
+ 'Ę' => 'ę',
73
+ 'Ě' => 'ě',
74
+ 'Ĝ' => 'ĝ',
75
+ 'Ğ' => 'ğ',
76
+ 'Ġ' => 'ġ',
77
+ 'Ģ' => 'ģ',
78
+ 'Ĥ' => 'ĥ',
79
+ 'Ħ' => 'ħ',
80
+ 'Ĩ' => 'ĩ',
81
+ 'Ī' => 'ī',
82
+ 'Ĭ' => 'ĭ',
83
+ 'Į' => 'į',
84
+ 'İ' => 'i',
85
+ 'IJ' => 'ij',
86
+ 'Ĵ' => 'ĵ',
87
+ 'Ķ' => 'ķ',
88
+ 'Ĺ' => 'ĺ',
89
+ 'Ļ' => 'ļ',
90
+ 'Ľ' => 'ľ',
91
+ 'Ŀ' => 'ŀ',
92
+ 'Ł' => 'ł',
93
+ 'Ń' => 'ń',
94
+ 'Ņ' => 'ņ',
95
+ 'Ň' => 'ň',
96
+ 'Ŋ' => 'ŋ',
97
+ 'Ō' => 'ō',
98
+ 'Ŏ' => 'ŏ',
99
+ 'Ő' => 'ő',
100
+ 'Œ' => 'œ',
101
+ 'Ŕ' => 'ŕ',
102
+ 'Ŗ' => 'ŗ',
103
+ 'Ř' => 'ř',
104
+ 'Ś' => 'ś',
105
+ 'Ŝ' => 'ŝ',
106
+ 'Ş' => 'ş',
107
+ 'Š' => 'š',
108
+ 'Ţ' => 'ţ',
109
+ 'Ť' => 'ť',
110
+ 'Ŧ' => 'ŧ',
111
+ 'Ũ' => 'ũ',
112
+ 'Ū' => 'ū',
113
+ 'Ŭ' => 'ŭ',
114
+ 'Ů' => 'ů',
115
+ 'Ű' => 'ű',
116
+ 'Ų' => 'ų',
117
+ 'Ŵ' => 'ŵ',
118
+ 'Ŷ' => 'ŷ',
119
+ 'Ÿ' => 'ÿ',
120
+ 'Ź' => 'ź',
121
+ 'Ż' => 'ż',
122
+ 'Ž' => 'ž',
123
+ 'Ɓ' => 'ɓ',
124
+ 'Ƃ' => 'ƃ',
125
+ 'Ƅ' => 'ƅ',
126
+ 'Ɔ' => 'ɔ',
127
+ 'Ƈ' => 'ƈ',
128
+ 'Ɖ' => 'ɖ',
129
+ 'Ɗ' => 'ɗ',
130
+ 'Ƌ' => 'ƌ',
131
+ 'Ǝ' => 'ǝ',
132
+ 'Ə' => 'ə',
133
+ 'Ɛ' => 'ɛ',
134
+ 'Ƒ' => 'ƒ',
135
+ 'Ɠ' => 'ɠ',
136
+ 'Ɣ' => 'ɣ',
137
+ 'Ɩ' => 'ɩ',
138
+ 'Ɨ' => 'ɨ',
139
+ 'Ƙ' => 'ƙ',
140
+ 'Ɯ' => 'ɯ',
141
+ 'Ɲ' => 'ɲ',
142
+ 'Ɵ' => 'ɵ',
143
+ 'Ơ' => 'ơ',
144
+ 'Ƣ' => 'ƣ',
145
+ 'Ƥ' => 'ƥ',
146
+ 'Ʀ' => 'ʀ',
147
+ 'Ƨ' => 'ƨ',
148
+ 'Ʃ' => 'ʃ',
149
+ 'Ƭ' => 'ƭ',
150
+ 'Ʈ' => 'ʈ',
151
+ 'Ư' => 'ư',
152
+ 'Ʊ' => 'ʊ',
153
+ 'Ʋ' => 'ʋ',
154
+ 'Ƴ' => 'ƴ',
155
+ 'Ƶ' => 'ƶ',
156
+ 'Ʒ' => 'ʒ',
157
+ 'Ƹ' => 'ƹ',
158
+ 'Ƽ' => 'ƽ',
159
+ 'DŽ' => 'dž',
160
+ 'Dž' => 'dž',
161
+ 'LJ' => 'lj',
162
+ 'Lj' => 'lj',
163
+ 'NJ' => 'nj',
164
+ 'Nj' => 'nj',
165
+ 'Ǎ' => 'ǎ',
166
+ 'Ǐ' => 'ǐ',
167
+ 'Ǒ' => 'ǒ',
168
+ 'Ǔ' => 'ǔ',
169
+ 'Ǖ' => 'ǖ',
170
+ 'Ǘ' => 'ǘ',
171
+ 'Ǚ' => 'ǚ',
172
+ 'Ǜ' => 'ǜ',
173
+ 'Ǟ' => 'ǟ',
174
+ 'Ǡ' => 'ǡ',
175
+ 'Ǣ' => 'ǣ',
176
+ 'Ǥ' => 'ǥ',
177
+ 'Ǧ' => 'ǧ',
178
+ 'Ǩ' => 'ǩ',
179
+ 'Ǫ' => 'ǫ',
180
+ 'Ǭ' => 'ǭ',
181
+ 'Ǯ' => 'ǯ',
182
+ 'DZ' => 'dz',
183
+ 'Dz' => 'dz',
184
+ 'Ǵ' => 'ǵ',
185
+ 'Ƕ' => 'ƕ',
186
+ 'Ƿ' => 'ƿ',
187
+ 'Ǹ' => 'ǹ',
188
+ 'Ǻ' => 'ǻ',
189
+ 'Ǽ' => 'ǽ',
190
+ 'Ǿ' => 'ǿ',
191
+ 'Ȁ' => 'ȁ',
192
+ 'Ȃ' => 'ȃ',
193
+ 'Ȅ' => 'ȅ',
194
+ 'Ȇ' => 'ȇ',
195
+ 'Ȉ' => 'ȉ',
196
+ 'Ȋ' => 'ȋ',
197
+ 'Ȍ' => 'ȍ',
198
+ 'Ȏ' => 'ȏ',
199
+ 'Ȑ' => 'ȑ',
200
+ 'Ȓ' => 'ȓ',
201
+ 'Ȕ' => 'ȕ',
202
+ 'Ȗ' => 'ȗ',
203
+ 'Ș' => 'ș',
204
+ 'Ț' => 'ț',
205
+ 'Ȝ' => 'ȝ',
206
+ 'Ȟ' => 'ȟ',
207
+ 'Ƞ' => 'ƞ',
208
+ 'Ȣ' => 'ȣ',
209
+ 'Ȥ' => 'ȥ',
210
+ 'Ȧ' => 'ȧ',
211
+ 'Ȩ' => 'ȩ',
212
+ 'Ȫ' => 'ȫ',
213
+ 'Ȭ' => 'ȭ',
214
+ 'Ȯ' => 'ȯ',
215
+ 'Ȱ' => 'ȱ',
216
+ 'Ȳ' => 'ȳ',
217
+ 'Ⱥ' => 'ⱥ',
218
+ 'Ȼ' => 'ȼ',
219
+ 'Ƚ' => 'ƚ',
220
+ 'Ⱦ' => 'ⱦ',
221
+ 'Ɂ' => 'ɂ',
222
+ 'Ƀ' => 'ƀ',
223
+ 'Ʉ' => 'ʉ',
224
+ 'Ʌ' => 'ʌ',
225
+ 'Ɇ' => 'ɇ',
226
+ 'Ɉ' => 'ɉ',
227
+ 'Ɋ' => 'ɋ',
228
+ 'Ɍ' => 'ɍ',
229
+ 'Ɏ' => 'ɏ',
230
+ 'Ͱ' => 'ͱ',
231
+ 'Ͳ' => 'ͳ',
232
+ 'Ͷ' => 'ͷ',
233
+ 'Ϳ' => 'ϳ',
234
+ 'Ά' => 'ά',
235
+ 'Έ' => 'έ',
236
+ 'Ή' => 'ή',
237
+ 'Ί' => 'ί',
238
+ 'Ό' => 'ό',
239
+ 'Ύ' => 'ύ',
240
+ 'Ώ' => 'ώ',
241
+ 'Α' => 'α',
242
+ 'Β' => 'β',
243
+ 'Γ' => 'γ',
244
+ 'Δ' => 'δ',
245
+ 'Ε' => 'ε',
246
+ 'Ζ' => 'ζ',
247
+ 'Η' => 'η',
248
+ 'Θ' => 'θ',
249
+ 'Ι' => 'ι',
250
+ 'Κ' => 'κ',
251
+ 'Λ' => 'λ',
252
+ 'Μ' => 'μ',
253
+ 'Ν' => 'ν',
254
+ 'Ξ' => 'ξ',
255
+ 'Ο' => 'ο',
256
+ 'Π' => 'π',
257
+ 'Ρ' => 'ρ',
258
+ 'Σ' => 'σ',
259
+ 'Τ' => 'τ',
260
+ 'Υ' => 'υ',
261
+ 'Φ' => 'φ',
262
+ 'Χ' => 'χ',
263
+ 'Ψ' => 'ψ',
264
+ 'Ω' => 'ω',
265
+ 'Ϊ' => 'ϊ',
266
+ 'Ϋ' => 'ϋ',
267
+ 'Ϗ' => 'ϗ',
268
+ 'Ϙ' => 'ϙ',
269
+ 'Ϛ' => 'ϛ',
270
+ 'Ϝ' => 'ϝ',
271
+ 'Ϟ' => 'ϟ',
272
+ 'Ϡ' => 'ϡ',
273
+ 'Ϣ' => 'ϣ',
274
+ 'Ϥ' => 'ϥ',
275
+ 'Ϧ' => 'ϧ',
276
+ 'Ϩ' => 'ϩ',
277
+ 'Ϫ' => 'ϫ',
278
+ 'Ϭ' => 'ϭ',
279
+ 'Ϯ' => 'ϯ',
280
+ 'ϴ' => 'θ',
281
+ 'Ϸ' => 'ϸ',
282
+ 'Ϲ' => 'ϲ',
283
+ 'Ϻ' => 'ϻ',
284
+ 'Ͻ' => 'ͻ',
285
+ 'Ͼ' => 'ͼ',
286
+ 'Ͽ' => 'ͽ',
287
+ 'Ѐ' => 'ѐ',
288
+ 'Ё' => 'ё',
289
+ 'Ђ' => 'ђ',
290
+ 'Ѓ' => 'ѓ',
291
+ 'Є' => 'є',
292
+ 'Ѕ' => 'ѕ',
293
+ 'І' => 'і',
294
+ 'Ї' => 'ї',
295
+ 'Ј' => 'ј',
296
+ 'Љ' => 'љ',
297
+ 'Њ' => 'њ',
298
+ 'Ћ' => 'ћ',
299
+ 'Ќ' => 'ќ',
300
+ 'Ѝ' => 'ѝ',
301
+ 'Ў' => 'ў',
302
+ 'Џ' => 'џ',
303
+ 'А' => 'а',
304
+ 'Б' => 'б',
305
+ 'В' => 'в',
306
+ 'Г' => 'г',
307
+ 'Д' => 'д',
308
+ 'Е' => 'е',
309
+ 'Ж' => 'ж',
310
+ 'З' => 'з',
311
+ 'И' => 'и',
312
+ 'Й' => 'й',
313
+ 'К' => 'к',
314
+ 'Л' => 'л',
315
+ 'М' => 'м',
316
+ 'Н' => 'н',
317
+ 'О' => 'о',
318
+ 'П' => 'п',
319
+ 'Р' => 'р',
320
+ 'С' => 'с',
321
+ 'Т' => 'т',
322
+ 'У' => 'у',
323
+ 'Ф' => 'ф',
324
+ 'Х' => 'х',
325
+ 'Ц' => 'ц',
326
+ 'Ч' => 'ч',
327
+ 'Ш' => 'ш',
328
+ 'Щ' => 'щ',
329
+ 'Ъ' => 'ъ',
330
+ 'Ы' => 'ы',
331
+ 'Ь' => 'ь',
332
+ 'Э' => 'э',
333
+ 'Ю' => 'ю',
334
+ 'Я' => 'я',
335
+ 'Ѡ' => 'ѡ',
336
+ 'Ѣ' => 'ѣ',
337
+ 'Ѥ' => 'ѥ',
338
+ 'Ѧ' => 'ѧ',
339
+ 'Ѩ' => 'ѩ',
340
+ 'Ѫ' => 'ѫ',
341
+ 'Ѭ' => 'ѭ',
342
+ 'Ѯ' => 'ѯ',
343
+ 'Ѱ' => 'ѱ',
344
+ 'Ѳ' => 'ѳ',
345
+ 'Ѵ' => 'ѵ',
346
+ 'Ѷ' => 'ѷ',
347
+ 'Ѹ' => 'ѹ',
348
+ 'Ѻ' => 'ѻ',
349
+ 'Ѽ' => 'ѽ',
350
+ 'Ѿ' => 'ѿ',
351
+ 'Ҁ' => 'ҁ',
352
+ 'Ҋ' => 'ҋ',
353
+ 'Ҍ' => 'ҍ',
354
+ 'Ҏ' => 'ҏ',
355
+ 'Ґ' => 'ґ',
356
+ 'Ғ' => 'ғ',
357
+ 'Ҕ' => 'ҕ',
358
+ 'Җ' => 'җ',
359
+ 'Ҙ' => 'ҙ',
360
+ 'Қ' => 'қ',
361
+ 'Ҝ' => 'ҝ',
362
+ 'Ҟ' => 'ҟ',
363
+ 'Ҡ' => 'ҡ',
364
+ 'Ң' => 'ң',
365
+ 'Ҥ' => 'ҥ',
366
+ 'Ҧ' => 'ҧ',
367
+ 'Ҩ' => 'ҩ',
368
+ 'Ҫ' => 'ҫ',
369
+ 'Ҭ' => 'ҭ',
370
+ 'Ү' => 'ү',
371
+ 'Ұ' => 'ұ',
372
+ 'Ҳ' => 'ҳ',
373
+ 'Ҵ' => 'ҵ',
374
+ 'Ҷ' => 'ҷ',
375
+ 'Ҹ' => 'ҹ',
376
+ 'Һ' => 'һ',
377
+ 'Ҽ' => 'ҽ',
378
+ 'Ҿ' => 'ҿ',
379
+ 'Ӏ' => 'ӏ',
380
+ 'Ӂ' => 'ӂ',
381
+ 'Ӄ' => 'ӄ',
382
+ 'Ӆ' => 'ӆ',
383
+ 'Ӈ' => 'ӈ',
384
+ 'Ӊ' => 'ӊ',
385
+ 'Ӌ' => 'ӌ',
386
+ 'Ӎ' => 'ӎ',
387
+ 'Ӑ' => 'ӑ',
388
+ 'Ӓ' => 'ӓ',
389
+ 'Ӕ' => 'ӕ',
390
+ 'Ӗ' => 'ӗ',
391
+ 'Ә' => 'ә',
392
+ 'Ӛ' => 'ӛ',
393
+ 'Ӝ' => 'ӝ',
394
+ 'Ӟ' => 'ӟ',
395
+ 'Ӡ' => 'ӡ',
396
+ 'Ӣ' => 'ӣ',
397
+ 'Ӥ' => 'ӥ',
398
+ 'Ӧ' => 'ӧ',
399
+ 'Ө' => 'ө',
400
+ 'Ӫ' => 'ӫ',
401
+ 'Ӭ' => 'ӭ',
402
+ 'Ӯ' => 'ӯ',
403
+ 'Ӱ' => 'ӱ',
404
+ 'Ӳ' => 'ӳ',
405
+ 'Ӵ' => 'ӵ',
406
+ 'Ӷ' => 'ӷ',
407
+ 'Ӹ' => 'ӹ',
408
+ 'Ӻ' => 'ӻ',
409
+ 'Ӽ' => 'ӽ',
410
+ 'Ӿ' => 'ӿ',
411
+ 'Ԁ' => 'ԁ',
412
+ 'Ԃ' => 'ԃ',
413
+ 'Ԅ' => 'ԅ',
414
+ 'Ԇ' => 'ԇ',
415
+ 'Ԉ' => 'ԉ',
416
+ 'Ԋ' => 'ԋ',
417
+ 'Ԍ' => 'ԍ',
418
+ 'Ԏ' => 'ԏ',
419
+ 'Ԑ' => 'ԑ',
420
+ 'Ԓ' => 'ԓ',
421
+ 'Ԕ' => 'ԕ',
422
+ 'Ԗ' => 'ԗ',
423
+ 'Ԙ' => 'ԙ',
424
+ 'Ԛ' => 'ԛ',
425
+ 'Ԝ' => 'ԝ',
426
+ 'Ԟ' => 'ԟ',
427
+ 'Ԡ' => 'ԡ',
428
+ 'Ԣ' => 'ԣ',
429
+ 'Ԥ' => 'ԥ',
430
+ 'Ԧ' => 'ԧ',
431
+ 'Ԩ' => 'ԩ',
432
+ 'Ԫ' => 'ԫ',
433
+ 'Ԭ' => 'ԭ',
434
+ 'Ԯ' => 'ԯ',
435
+ 'Ա' => 'ա',
436
+ 'Բ' => 'բ',
437
+ 'Գ' => 'գ',
438
+ 'Դ' => 'դ',
439
+ 'Ե' => 'ե',
440
+ 'Զ' => 'զ',
441
+ 'Է' => 'է',
442
+ 'Ը' => 'ը',
443
+ 'Թ' => 'թ',
444
+ 'Ժ' => 'ժ',
445
+ 'Ի' => 'ի',
446
+ 'Լ' => 'լ',
447
+ 'Խ' => 'խ',
448
+ 'Ծ' => 'ծ',
449
+ 'Կ' => 'կ',
450
+ 'Հ' => 'հ',
451
+ 'Ձ' => 'ձ',
452
+ 'Ղ' => 'ղ',
453
+ 'Ճ' => 'ճ',
454
+ 'Մ' => 'մ',
455
+ 'Յ' => 'յ',
456
+ 'Ն' => 'ն',
457
+ 'Շ' => 'շ',
458
+ 'Ո' => 'ո',
459
+ 'Չ' => 'չ',
460
+ 'Պ' => 'պ',
461
+ 'Ջ' => 'ջ',
462
+ 'Ռ' => 'ռ',
463
+ 'Ս' => 'ս',
464
+ 'Վ' => 'վ',
465
+ 'Տ' => 'տ',
466
+ 'Ր' => 'ր',
467
+ 'Ց' => 'ց',
468
+ 'Ւ' => 'ւ',
469
+ 'Փ' => 'փ',
470
+ 'Ք' => 'ք',
471
+ 'Օ' => 'օ',
472
+ 'Ֆ' => 'ֆ',
473
+ 'Ⴀ' => 'ⴀ',
474
+ 'Ⴁ' => 'ⴁ',
475
+ 'Ⴂ' => 'ⴂ',
476
+ 'Ⴃ' => 'ⴃ',
477
+ 'Ⴄ' => 'ⴄ',
478
+ 'Ⴅ' => 'ⴅ',
479
+ 'Ⴆ' => 'ⴆ',
480
+ 'Ⴇ' => 'ⴇ',
481
+ 'Ⴈ' => 'ⴈ',
482
+ 'Ⴉ' => 'ⴉ',
483
+ 'Ⴊ' => 'ⴊ',
484
+ 'Ⴋ' => 'ⴋ',
485
+ 'Ⴌ' => 'ⴌ',
486
+ 'Ⴍ' => 'ⴍ',
487
+ 'Ⴎ' => 'ⴎ',
488
+ 'Ⴏ' => 'ⴏ',
489
+ 'Ⴐ' => 'ⴐ',
490
+ 'Ⴑ' => 'ⴑ',
491
+ 'Ⴒ' => 'ⴒ',
492
+ 'Ⴓ' => 'ⴓ',
493
+ 'Ⴔ' => 'ⴔ',
494
+ 'Ⴕ' => 'ⴕ',
495
+ 'Ⴖ' => 'ⴖ',
496
+ 'Ⴗ' => 'ⴗ',
497
+ 'Ⴘ' => 'ⴘ',
498
+ 'Ⴙ' => 'ⴙ',
499
+ 'Ⴚ' => 'ⴚ',
500
+ 'Ⴛ' => 'ⴛ',
501
+ 'Ⴜ' => 'ⴜ',
502
+ 'Ⴝ' => 'ⴝ',
503
+ 'Ⴞ' => 'ⴞ',
504
+ 'Ⴟ' => 'ⴟ',
505
+ 'Ⴠ' => 'ⴠ',
506
+ 'Ⴡ' => 'ⴡ',
507
+ 'Ⴢ' => 'ⴢ',
508
+ 'Ⴣ' => 'ⴣ',
509
+ 'Ⴤ' => 'ⴤ',
510
+ 'Ⴥ' => 'ⴥ',
511
+ 'Ⴧ' => 'ⴧ',
512
+ 'Ⴭ' => 'ⴭ',
513
+ 'Ḁ' => 'ḁ',
514
+ 'Ḃ' => 'ḃ',
515
+ 'Ḅ' => 'ḅ',
516
+ 'Ḇ' => 'ḇ',
517
+ 'Ḉ' => 'ḉ',
518
+ 'Ḋ' => 'ḋ',
519
+ 'Ḍ' => 'ḍ',
520
+ 'Ḏ' => 'ḏ',
521
+ 'Ḑ' => 'ḑ',
522
+ 'Ḓ' => 'ḓ',
523
+ 'Ḕ' => 'ḕ',
524
+ 'Ḗ' => 'ḗ',
525
+ 'Ḙ' => 'ḙ',
526
+ 'Ḛ' => 'ḛ',
527
+ 'Ḝ' => 'ḝ',
528
+ 'Ḟ' => 'ḟ',
529
+ 'Ḡ' => 'ḡ',
530
+ 'Ḣ' => 'ḣ',
531
+ 'Ḥ' => 'ḥ',
532
+ 'Ḧ' => 'ḧ',
533
+ 'Ḩ' => 'ḩ',
534
+ 'Ḫ' => 'ḫ',
535
+ 'Ḭ' => 'ḭ',
536
+ 'Ḯ' => 'ḯ',
537
+ 'Ḱ' => 'ḱ',
538
+ 'Ḳ' => 'ḳ',
539
+ 'Ḵ' => 'ḵ',
540
+ 'Ḷ' => 'ḷ',
541
+ 'Ḹ' => 'ḹ',
542
+ 'Ḻ' => 'ḻ',
543
+ 'Ḽ' => 'ḽ',
544
+ 'Ḿ' => 'ḿ',
545
+ 'Ṁ' => 'ṁ',
546
+ 'Ṃ' => 'ṃ',
547
+ 'Ṅ' => 'ṅ',
548
+ 'Ṇ' => 'ṇ',
549
+ 'Ṉ' => 'ṉ',
550
+ 'Ṋ' => 'ṋ',
551
+ 'Ṍ' => 'ṍ',
552
+ 'Ṏ' => 'ṏ',
553
+ 'Ṑ' => 'ṑ',
554
+ 'Ṓ' => 'ṓ',
555
+ 'Ṕ' => 'ṕ',
556
+ 'Ṗ' => 'ṗ',
557
+ 'Ṙ' => 'ṙ',
558
+ 'Ṛ' => 'ṛ',
559
+ 'Ṝ' => 'ṝ',
560
+ 'Ṟ' => 'ṟ',
561
+ 'Ṡ' => 'ṡ',
562
+ 'Ṣ' => 'ṣ',
563
+ 'Ṥ' => 'ṥ',
564
+ 'Ṧ' => 'ṧ',
565
+ 'Ṩ' => 'ṩ',
566
+ 'Ṫ' => 'ṫ',
567
+ 'Ṭ' => 'ṭ',
568
+ 'Ṯ' => 'ṯ',
569
+ 'Ṱ' => 'ṱ',
570
+ 'Ṳ' => 'ṳ',
571
+ 'Ṵ' => 'ṵ',
572
+ 'Ṷ' => 'ṷ',
573
+ 'Ṹ' => 'ṹ',
574
+ 'Ṻ' => 'ṻ',
575
+ 'Ṽ' => 'ṽ',
576
+ 'Ṿ' => 'ṿ',
577
+ 'Ẁ' => 'ẁ',
578
+ 'Ẃ' => 'ẃ',
579
+ 'Ẅ' => 'ẅ',
580
+ 'Ẇ' => 'ẇ',
581
+ 'Ẉ' => 'ẉ',
582
+ 'Ẋ' => 'ẋ',
583
+ 'Ẍ' => 'ẍ',
584
+ 'Ẏ' => 'ẏ',
585
+ 'Ẑ' => 'ẑ',
586
+ 'Ẓ' => 'ẓ',
587
+ 'Ẕ' => 'ẕ',
588
+ 'ẞ' => 'ß',
589
+ 'Ạ' => 'ạ',
590
+ 'Ả' => 'ả',
591
+ 'Ấ' => 'ấ',
592
+ 'Ầ' => 'ầ',
593
+ 'Ẩ' => 'ẩ',
594
+ 'Ẫ' => 'ẫ',
595
+ 'Ậ' => 'ậ',
596
+ 'Ắ' => 'ắ',
597
+ 'Ằ' => 'ằ',
598
+ 'Ẳ' => 'ẳ',
599
+ 'Ẵ' => 'ẵ',
600
+ 'Ặ' => 'ặ',
601
+ 'Ẹ' => 'ẹ',
602
+ 'Ẻ' => 'ẻ',
603
+ 'Ẽ' => 'ẽ',
604
+ 'Ế' => 'ế',
605
+ 'Ề' => 'ề',
606
+ 'Ể' => 'ể',
607
+ 'Ễ' => 'ễ',
608
+ 'Ệ' => 'ệ',
609
+ 'Ỉ' => 'ỉ',
610
+ 'Ị' => 'ị',
611
+ 'Ọ' => 'ọ',
612
+ 'Ỏ' => 'ỏ',
613
+ 'Ố' => 'ố',
614
+ 'Ồ' => 'ồ',
615
+ 'Ổ' => 'ổ',
616
+ 'Ỗ' => 'ỗ',
617
+ 'Ộ' => 'ộ',
618
+ 'Ớ' => 'ớ',
619
+ 'Ờ' => 'ờ',
620
+ 'Ở' => 'ở',
621
+ 'Ỡ' => 'ỡ',
622
+ 'Ợ' => 'ợ',
623
+ 'Ụ' => 'ụ',
624
+ 'Ủ' => 'ủ',
625
+ 'Ứ' => 'ứ',
626
+ 'Ừ' => 'ừ',
627
+ 'Ử' => 'ử',
628
+ 'Ữ' => 'ữ',
629
+ 'Ự' => 'ự',
630
+ 'Ỳ' => 'ỳ',
631
+ 'Ỵ' => 'ỵ',
632
+ 'Ỷ' => 'ỷ',
633
+ 'Ỹ' => 'ỹ',
634
+ 'Ỻ' => 'ỻ',
635
+ 'Ỽ' => 'ỽ',
636
+ 'Ỿ' => 'ỿ',
637
+ 'Ἀ' => 'ἀ',
638
+ 'Ἁ' => 'ἁ',
639
+ 'Ἂ' => 'ἂ',
640
+ 'Ἃ' => 'ἃ',
641
+ 'Ἄ' => 'ἄ',
642
+ 'Ἅ' => 'ἅ',
643
+ 'Ἆ' => 'ἆ',
644
+ 'Ἇ' => 'ἇ',
645
+ 'Ἐ' => 'ἐ',
646
+ 'Ἑ' => 'ἑ',
647
+ 'Ἒ' => 'ἒ',
648
+ 'Ἓ' => 'ἓ',
649
+ 'Ἔ' => 'ἔ',
650
+ 'Ἕ' => 'ἕ',
651
+ 'Ἠ' => 'ἠ',
652
+ 'Ἡ' => 'ἡ',
653
+ 'Ἢ' => 'ἢ',
654
+ 'Ἣ' => 'ἣ',
655
+ 'Ἤ' => 'ἤ',
656
+ 'Ἥ' => 'ἥ',
657
+ 'Ἦ' => 'ἦ',
658
+ 'Ἧ' => 'ἧ',
659
+ 'Ἰ' => 'ἰ',
660
+ 'Ἱ' => 'ἱ',
661
+ 'Ἲ' => 'ἲ',
662
+ 'Ἳ' => 'ἳ',
663
+ 'Ἴ' => 'ἴ',
664
+ 'Ἵ' => 'ἵ',
665
+ 'Ἶ' => 'ἶ',
666
+ 'Ἷ' => 'ἷ',
667
+ 'Ὀ' => 'ὀ',
668
+ 'Ὁ' => 'ὁ',
669
+ 'Ὂ' => 'ὂ',
670
+ 'Ὃ' => 'ὃ',
671
+ 'Ὄ' => 'ὄ',
672
+ 'Ὅ' => 'ὅ',
673
+ 'Ὑ' => 'ὑ',
674
+ 'Ὓ' => 'ὓ',
675
+ 'Ὕ' => 'ὕ',
676
+ 'Ὗ' => 'ὗ',
677
+ 'Ὠ' => 'ὠ',
678
+ 'Ὡ' => 'ὡ',
679
+ 'Ὢ' => 'ὢ',
680
+ 'Ὣ' => 'ὣ',
681
+ 'Ὤ' => 'ὤ',
682
+ 'Ὥ' => 'ὥ',
683
+ 'Ὦ' => 'ὦ',
684
+ 'Ὧ' => 'ὧ',
685
+ 'ᾈ' => 'ᾀ',
686
+ 'ᾉ' => 'ᾁ',
687
+ 'ᾊ' => 'ᾂ',
688
+ 'ᾋ' => 'ᾃ',
689
+ 'ᾌ' => 'ᾄ',
690
+ 'ᾍ' => 'ᾅ',
691
+ 'ᾎ' => 'ᾆ',
692
+ 'ᾏ' => 'ᾇ',
693
+ 'ᾘ' => 'ᾐ',
694
+ 'ᾙ' => 'ᾑ',
695
+ 'ᾚ' => 'ᾒ',
696
+ 'ᾛ' => 'ᾓ',
697
+ 'ᾜ' => 'ᾔ',
698
+ 'ᾝ' => 'ᾕ',
699
+ 'ᾞ' => 'ᾖ',
700
+ 'ᾟ' => 'ᾗ',
701
+ 'ᾨ' => 'ᾠ',
702
+ 'ᾩ' => 'ᾡ',
703
+ 'ᾪ' => 'ᾢ',
704
+ 'ᾫ' => 'ᾣ',
705
+ 'ᾬ' => 'ᾤ',
706
+ 'ᾭ' => 'ᾥ',
707
+ 'ᾮ' => 'ᾦ',
708
+ 'ᾯ' => 'ᾧ',
709
+ 'Ᾰ' => 'ᾰ',
710
+ 'Ᾱ' => 'ᾱ',
711
+ 'Ὰ' => 'ὰ',
712
+ 'Ά' => 'ά',
713
+ 'ᾼ' => 'ᾳ',
714
+ 'Ὲ' => 'ὲ',
715
+ 'Έ' => 'έ',
716
+ 'Ὴ' => 'ὴ',
717
+ 'Ή' => 'ή',
718
+ 'ῌ' => 'ῃ',
719
+ 'Ῐ' => 'ῐ',
720
+ 'Ῑ' => 'ῑ',
721
+ 'Ὶ' => 'ὶ',
722
+ 'Ί' => 'ί',
723
+ 'Ῠ' => 'ῠ',
724
+ 'Ῡ' => 'ῡ',
725
+ 'Ὺ' => 'ὺ',
726
+ 'Ύ' => 'ύ',
727
+ 'Ῥ' => 'ῥ',
728
+ 'Ὸ' => 'ὸ',
729
+ 'Ό' => 'ό',
730
+ 'Ὼ' => 'ὼ',
731
+ 'Ώ' => 'ώ',
732
+ 'ῼ' => 'ῳ',
733
+ 'Ω' => 'ω',
734
+ 'K' => 'k',
735
+ 'Å' => 'å',
736
+ 'Ⅎ' => 'ⅎ',
737
+ 'Ⅰ' => 'ⅰ',
738
+ 'Ⅱ' => 'ⅱ',
739
+ 'Ⅲ' => 'ⅲ',
740
+ 'Ⅳ' => 'ⅳ',
741
+ 'Ⅴ' => 'ⅴ',
742
+ 'Ⅵ' => 'ⅵ',
743
+ 'Ⅶ' => 'ⅶ',
744
+ 'Ⅷ' => 'ⅷ',
745
+ 'Ⅸ' => 'ⅸ',
746
+ 'Ⅹ' => 'ⅹ',
747
+ 'Ⅺ' => 'ⅺ',
748
+ 'Ⅻ' => 'ⅻ',
749
+ 'Ⅼ' => 'ⅼ',
750
+ 'Ⅽ' => 'ⅽ',
751
+ 'Ⅾ' => 'ⅾ',
752
+ 'Ⅿ' => 'ⅿ',
753
+ 'Ↄ' => 'ↄ',
754
+ 'Ⓐ' => 'ⓐ',
755
+ 'Ⓑ' => 'ⓑ',
756
+ 'Ⓒ' => 'ⓒ',
757
+ 'Ⓓ' => 'ⓓ',
758
+ 'Ⓔ' => 'ⓔ',
759
+ 'Ⓕ' => 'ⓕ',
760
+ 'Ⓖ' => 'ⓖ',
761
+ 'Ⓗ' => 'ⓗ',
762
+ 'Ⓘ' => 'ⓘ',
763
+ 'Ⓙ' => 'ⓙ',
764
+ 'Ⓚ' => 'ⓚ',
765
+ 'Ⓛ' => 'ⓛ',
766
+ 'Ⓜ' => 'ⓜ',
767
+ 'Ⓝ' => 'ⓝ',
768
+ 'Ⓞ' => 'ⓞ',
769
+ 'Ⓟ' => 'ⓟ',
770
+ 'Ⓠ' => 'ⓠ',
771
+ 'Ⓡ' => 'ⓡ',
772
+ 'Ⓢ' => 'ⓢ',
773
+ 'Ⓣ' => 'ⓣ',
774
+ 'Ⓤ' => 'ⓤ',
775
+ 'Ⓥ' => 'ⓥ',
776
+ 'Ⓦ' => 'ⓦ',
777
+ 'Ⓧ' => 'ⓧ',
778
+ 'Ⓨ' => 'ⓨ',
779
+ 'Ⓩ' => 'ⓩ',
780
+ 'Ⰰ' => 'ⰰ',
781
+ 'Ⰱ' => 'ⰱ',
782
+ 'Ⰲ' => 'ⰲ',
783
+ 'Ⰳ' => 'ⰳ',
784
+ 'Ⰴ' => 'ⰴ',
785
+ 'Ⰵ' => 'ⰵ',
786
+ 'Ⰶ' => 'ⰶ',
787
+ 'Ⰷ' => 'ⰷ',
788
+ 'Ⰸ' => 'ⰸ',
789
+ 'Ⰹ' => 'ⰹ',
790
+ 'Ⰺ' => 'ⰺ',
791
+ 'Ⰻ' => 'ⰻ',
792
+ 'Ⰼ' => 'ⰼ',
793
+ 'Ⰽ' => 'ⰽ',
794
+ 'Ⰾ' => 'ⰾ',
795
+ 'Ⰿ' => 'ⰿ',
796
+ 'Ⱀ' => 'ⱀ',
797
+ 'Ⱁ' => 'ⱁ',
798
+ 'Ⱂ' => 'ⱂ',
799
+ 'Ⱃ' => 'ⱃ',
800
+ 'Ⱄ' => 'ⱄ',
801
+ 'Ⱅ' => 'ⱅ',
802
+ 'Ⱆ' => 'ⱆ',
803
+ 'Ⱇ' => 'ⱇ',
804
+ 'Ⱈ' => 'ⱈ',
805
+ 'Ⱉ' => 'ⱉ',
806
+ 'Ⱊ' => 'ⱊ',
807
+ 'Ⱋ' => 'ⱋ',
808
+ 'Ⱌ' => 'ⱌ',
809
+ 'Ⱍ' => 'ⱍ',
810
+ 'Ⱎ' => 'ⱎ',
811
+ 'Ⱏ' => 'ⱏ',
812
+ 'Ⱐ' => 'ⱐ',
813
+ 'Ⱑ' => 'ⱑ',
814
+ 'Ⱒ' => 'ⱒ',
815
+ 'Ⱓ' => 'ⱓ',
816
+ 'Ⱔ' => 'ⱔ',
817
+ 'Ⱕ' => 'ⱕ',
818
+ 'Ⱖ' => 'ⱖ',
819
+ 'Ⱗ' => 'ⱗ',
820
+ 'Ⱘ' => 'ⱘ',
821
+ 'Ⱙ' => 'ⱙ',
822
+ 'Ⱚ' => 'ⱚ',
823
+ 'Ⱛ' => 'ⱛ',
824
+ 'Ⱜ' => 'ⱜ',
825
+ 'Ⱝ' => 'ⱝ',
826
+ 'Ⱞ' => 'ⱞ',
827
+ 'Ⱡ' => 'ⱡ',
828
+ 'Ɫ' => 'ɫ',
829
+ 'Ᵽ' => 'ᵽ',
830
+ 'Ɽ' => 'ɽ',
831
+ 'Ⱨ' => 'ⱨ',
832
+ 'Ⱪ' => 'ⱪ',
833
+ 'Ⱬ' => 'ⱬ',
834
+ 'Ɑ' => 'ɑ',
835
+ 'Ɱ' => 'ɱ',
836
+ 'Ɐ' => 'ɐ',
837
+ 'Ɒ' => 'ɒ',
838
+ 'Ⱳ' => 'ⱳ',
839
+ 'Ⱶ' => 'ⱶ',
840
+ 'Ȿ' => 'ȿ',
841
+ 'Ɀ' => 'ɀ',
842
+ 'Ⲁ' => 'ⲁ',
843
+ 'Ⲃ' => 'ⲃ',
844
+ 'Ⲅ' => 'ⲅ',
845
+ 'Ⲇ' => 'ⲇ',
846
+ 'Ⲉ' => 'ⲉ',
847
+ 'Ⲋ' => 'ⲋ',
848
+ 'Ⲍ' => 'ⲍ',
849
+ 'Ⲏ' => 'ⲏ',
850
+ 'Ⲑ' => 'ⲑ',
851
+ 'Ⲓ' => 'ⲓ',
852
+ 'Ⲕ' => 'ⲕ',
853
+ 'Ⲗ' => 'ⲗ',
854
+ 'Ⲙ' => 'ⲙ',
855
+ 'Ⲛ' => 'ⲛ',
856
+ 'Ⲝ' => 'ⲝ',
857
+ 'Ⲟ' => 'ⲟ',
858
+ 'Ⲡ' => 'ⲡ',
859
+ 'Ⲣ' => 'ⲣ',
860
+ 'Ⲥ' => 'ⲥ',
861
+ 'Ⲧ' => 'ⲧ',
862
+ 'Ⲩ' => 'ⲩ',
863
+ 'Ⲫ' => 'ⲫ',
864
+ 'Ⲭ' => 'ⲭ',
865
+ 'Ⲯ' => 'ⲯ',
866
+ 'Ⲱ' => 'ⲱ',
867
+ 'Ⲳ' => 'ⲳ',
868
+ 'Ⲵ' => 'ⲵ',
869
+ 'Ⲷ' => 'ⲷ',
870
+ 'Ⲹ' => 'ⲹ',
871
+ 'Ⲻ' => 'ⲻ',
872
+ 'Ⲽ' => 'ⲽ',
873
+ 'Ⲿ' => 'ⲿ',
874
+ 'Ⳁ' => 'ⳁ',
875
+ 'Ⳃ' => 'ⳃ',
876
+ 'Ⳅ' => 'ⳅ',
877
+ 'Ⳇ' => 'ⳇ',
878
+ 'Ⳉ' => 'ⳉ',
879
+ 'Ⳋ' => 'ⳋ',
880
+ 'Ⳍ' => 'ⳍ',
881
+ 'Ⳏ' => 'ⳏ',
882
+ 'Ⳑ' => 'ⳑ',
883
+ 'Ⳓ' => 'ⳓ',
884
+ 'Ⳕ' => 'ⳕ',
885
+ 'Ⳗ' => 'ⳗ',
886
+ 'Ⳙ' => 'ⳙ',
887
+ 'Ⳛ' => 'ⳛ',
888
+ 'Ⳝ' => 'ⳝ',
889
+ 'Ⳟ' => 'ⳟ',
890
+ 'Ⳡ' => 'ⳡ',
891
+ 'Ⳣ' => 'ⳣ',
892
+ 'Ⳬ' => 'ⳬ',
893
+ 'Ⳮ' => 'ⳮ',
894
+ 'Ⳳ' => 'ⳳ',
895
+ 'Ꙁ' => 'ꙁ',
896
+ 'Ꙃ' => 'ꙃ',
897
+ 'Ꙅ' => 'ꙅ',
898
+ 'Ꙇ' => 'ꙇ',
899
+ 'Ꙉ' => 'ꙉ',
900
+ 'Ꙋ' => 'ꙋ',
901
+ 'Ꙍ' => 'ꙍ',
902
+ 'Ꙏ' => 'ꙏ',
903
+ 'Ꙑ' => 'ꙑ',
904
+ 'Ꙓ' => 'ꙓ',
905
+ 'Ꙕ' => 'ꙕ',
906
+ 'Ꙗ' => 'ꙗ',
907
+ 'Ꙙ' => 'ꙙ',
908
+ 'Ꙛ' => 'ꙛ',
909
+ 'Ꙝ' => 'ꙝ',
910
+ 'Ꙟ' => 'ꙟ',
911
+ 'Ꙡ' => 'ꙡ',
912
+ 'Ꙣ' => 'ꙣ',
913
+ 'Ꙥ' => 'ꙥ',
914
+ 'Ꙧ' => 'ꙧ',
915
+ 'Ꙩ' => 'ꙩ',
916
+ 'Ꙫ' => 'ꙫ',
917
+ 'Ꙭ' => 'ꙭ',
918
+ 'Ꚁ' => 'ꚁ',
919
+ 'Ꚃ' => 'ꚃ',
920
+ 'Ꚅ' => 'ꚅ',
921
+ 'Ꚇ' => 'ꚇ',
922
+ 'Ꚉ' => 'ꚉ',
923
+ 'Ꚋ' => 'ꚋ',
924
+ 'Ꚍ' => 'ꚍ',
925
+ 'Ꚏ' => 'ꚏ',
926
+ 'Ꚑ' => 'ꚑ',
927
+ 'Ꚓ' => 'ꚓ',
928
+ 'Ꚕ' => 'ꚕ',
929
+ 'Ꚗ' => 'ꚗ',
930
+ 'Ꚙ' => 'ꚙ',
931
+ 'Ꚛ' => 'ꚛ',
932
+ 'Ꜣ' => 'ꜣ',
933
+ 'Ꜥ' => 'ꜥ',
934
+ 'Ꜧ' => 'ꜧ',
935
+ 'Ꜩ' => 'ꜩ',
936
+ 'Ꜫ' => 'ꜫ',
937
+ 'Ꜭ' => 'ꜭ',
938
+ 'Ꜯ' => 'ꜯ',
939
+ 'Ꜳ' => 'ꜳ',
940
+ 'Ꜵ' => 'ꜵ',
941
+ 'Ꜷ' => 'ꜷ',
942
+ 'Ꜹ' => 'ꜹ',
943
+ 'Ꜻ' => 'ꜻ',
944
+ 'Ꜽ' => 'ꜽ',
945
+ 'Ꜿ' => 'ꜿ',
946
+ 'Ꝁ' => 'ꝁ',
947
+ 'Ꝃ' => 'ꝃ',
948
+ 'Ꝅ' => 'ꝅ',
949
+ 'Ꝇ' => 'ꝇ',
950
+ 'Ꝉ' => 'ꝉ',
951
+ 'Ꝋ' => 'ꝋ',
952
+ 'Ꝍ' => 'ꝍ',
953
+ 'Ꝏ' => 'ꝏ',
954
+ 'Ꝑ' => 'ꝑ',
955
+ 'Ꝓ' => 'ꝓ',
956
+ 'Ꝕ' => 'ꝕ',
957
+ 'Ꝗ' => 'ꝗ',
958
+ 'Ꝙ' => 'ꝙ',
959
+ 'Ꝛ' => 'ꝛ',
960
+ 'Ꝝ' => 'ꝝ',
961
+ 'Ꝟ' => 'ꝟ',
962
+ 'Ꝡ' => 'ꝡ',
963
+ 'Ꝣ' => 'ꝣ',
964
+ 'Ꝥ' => 'ꝥ',
965
+ 'Ꝧ' => 'ꝧ',
966
+ 'Ꝩ' => 'ꝩ',
967
+ 'Ꝫ' => 'ꝫ',
968
+ 'Ꝭ' => 'ꝭ',
969
+ 'Ꝯ' => 'ꝯ',
970
+ 'Ꝺ' => 'ꝺ',
971
+ 'Ꝼ' => 'ꝼ',
972
+ 'Ᵹ' => 'ᵹ',
973
+ 'Ꝿ' => 'ꝿ',
974
+ 'Ꞁ' => 'ꞁ',
975
+ 'Ꞃ' => 'ꞃ',
976
+ 'Ꞅ' => 'ꞅ',
977
+ 'Ꞇ' => 'ꞇ',
978
+ 'Ꞌ' => 'ꞌ',
979
+ 'Ɥ' => 'ɥ',
980
+ 'Ꞑ' => 'ꞑ',
981
+ 'Ꞓ' => 'ꞓ',
982
+ 'Ꞗ' => 'ꞗ',
983
+ 'Ꞙ' => 'ꞙ',
984
+ 'Ꞛ' => 'ꞛ',
985
+ 'Ꞝ' => 'ꞝ',
986
+ 'Ꞟ' => 'ꞟ',
987
+ 'Ꞡ' => 'ꞡ',
988
+ 'Ꞣ' => 'ꞣ',
989
+ 'Ꞥ' => 'ꞥ',
990
+ 'Ꞧ' => 'ꞧ',
991
+ 'Ꞩ' => 'ꞩ',
992
+ 'Ɦ' => 'ɦ',
993
+ 'Ɜ' => 'ɜ',
994
+ 'Ɡ' => 'ɡ',
995
+ 'Ɬ' => 'ɬ',
996
+ 'Ʞ' => 'ʞ',
997
+ 'Ʇ' => 'ʇ',
998
+ 'A' => 'a',
999
+ 'B' => 'b',
1000
+ 'C' => 'c',
1001
+ 'D' => 'd',
1002
+ 'E' => 'e',
1003
+ 'F' => 'f',
1004
+ 'G' => 'g',
1005
+ 'H' => 'h',
1006
+ 'I' => 'i',
1007
+ 'J' => 'j',
1008
+ 'K' => 'k',
1009
+ 'L' => 'l',
1010
+ 'M' => 'm',
1011
+ 'N' => 'n',
1012
+ 'O' => 'o',
1013
+ 'P' => 'p',
1014
+ 'Q' => 'q',
1015
+ 'R' => 'r',
1016
+ 'S' => 's',
1017
+ 'T' => 't',
1018
+ 'U' => 'u',
1019
+ 'V' => 'v',
1020
+ 'W' => 'w',
1021
+ 'X' => 'x',
1022
+ 'Y' => 'y',
1023
+ 'Z' => 'z',
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
+ '𑢧' => '𑣇',
1072
+ '𑢨' => '𑣈',
1073
+ '𑢩' => '𑣉',
1074
+ '𑢪' => '𑣊',
1075
+ '𑢫' => '𑣋',
1076
+ '𑢬' => '𑣌',
1077
+ '𑢭' => '𑣍',
1078
+ '𑢮' => '𑣎',
1079
+ '𑢯' => '𑣏',
1080
+ '𑢰' => '𑣐',
1081
+ '𑢱' => '𑣑',
1082
+ '𑢲' => '𑣒',
1083
+ '𑢳' => '𑣓',
1084
+ '𑢴' => '𑣔',
1085
+ '𑢵' => '𑣕',
1086
+ '𑢶' => '𑣖',
1087
+ '𑢷' => '𑣗',
1088
+ '𑢸' => '𑣘',
1089
+ '𑢹' => '𑣙',
1090
+ '𑢺' => '𑣚',
1091
+ '𑢻' => '𑣛',
1092
+ '𑢼' => '𑣜',
1093
+ '𑢽' => '𑣝',
1094
+ '𑢾' => '𑣞',
1095
+ '𑢿' => '𑣟',
1096
+ );
lib/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+
3
+ // from Case_Ignorable in https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
4
+
5
+ return '/(?<![\x{0027}\x{002E}\x{003A}\x{005E}\x{0060}\x{00A8}\x{00AD}\x{00AF}\x{00B4}\x{00B7}\x{00B8}\x{02B0}-\x{02C1}\x{02C2}-\x{02C5}\x{02C6}-\x{02D1}\x{02D2}-\x{02DF}\x{02E0}-\x{02E4}\x{02E5}-\x{02EB}\x{02EC}\x{02ED}\x{02EE}\x{02EF}-\x{02FF}\x{0300}-\x{036F}\x{0374}\x{0375}\x{037A}\x{0384}-\x{0385}\x{0387}\x{0483}-\x{0487}\x{0488}-\x{0489}\x{0559}\x{0591}-\x{05BD}\x{05BF}\x{05C1}-\x{05C2}\x{05C4}-\x{05C5}\x{05C7}\x{05F4}\x{0600}-\x{0605}\x{0610}-\x{061A}\x{061C}\x{0640}\x{064B}-\x{065F}\x{0670}\x{06D6}-\x{06DC}\x{06DD}\x{06DF}-\x{06E4}\x{06E5}-\x{06E6}\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{07F4}-\x{07F5}\x{07FA}\x{07FD}\x{0816}-\x{0819}\x{081A}\x{081B}-\x{0823}\x{0824}\x{0825}-\x{0827}\x{0828}\x{0829}-\x{082D}\x{0859}-\x{085B}\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{0971}\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{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{0DCA}\x{0DD2}-\x{0DD4}\x{0DD6}\x{0E31}\x{0E34}-\x{0E3A}\x{0E46}\x{0E47}-\x{0E4E}\x{0EB1}\x{0EB4}-\x{0EB9}\x{0EBB}-\x{0EBC}\x{0EC6}\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{10FC}\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{17D7}\x{17DD}\x{180B}-\x{180D}\x{180E}\x{1843}\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{1AA7}\x{1AB0}-\x{1ABD}\x{1ABE}\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{1C78}-\x{1C7D}\x{1CD0}-\x{1CD2}\x{1CD4}-\x{1CE0}\x{1CE2}-\x{1CE8}\x{1CED}\x{1CF4}\x{1CF8}-\x{1CF9}\x{1D2C}-\x{1D6A}\x{1D78}\x{1D9B}-\x{1DBF}\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{200F}\x{2018}\x{2019}\x{2024}\x{2027}\x{202A}-\x{202E}\x{2060}-\x{2064}\x{2066}-\x{206F}\x{2071}\x{207F}\x{2090}-\x{209C}\x{20D0}-\x{20DC}\x{20DD}-\x{20E0}\x{20E1}\x{20E2}-\x{20E4}\x{20E5}-\x{20F0}\x{2C7C}-\x{2C7D}\x{2CEF}-\x{2CF1}\x{2D6F}\x{2D7F}\x{2DE0}-\x{2DFF}\x{2E2F}\x{3005}\x{302A}-\x{302D}\x{3031}-\x{3035}\x{303B}\x{3099}-\x{309A}\x{309B}-\x{309C}\x{309D}-\x{309E}\x{30FC}-\x{30FE}\x{A015}\x{A4F8}-\x{A4FD}\x{A60C}\x{A66F}\x{A670}-\x{A672}\x{A674}-\x{A67D}\x{A67F}\x{A69C}-\x{A69D}\x{A69E}-\x{A69F}\x{A6F0}-\x{A6F1}\x{A700}-\x{A716}\x{A717}-\x{A71F}\x{A720}-\x{A721}\x{A770}\x{A788}\x{A789}-\x{A78A}\x{A7F8}-\x{A7F9}\x{A802}\x{A806}\x{A80B}\x{A825}-\x{A826}\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{A9CF}\x{A9E5}\x{A9E6}\x{AA29}-\x{AA2E}\x{AA31}-\x{AA32}\x{AA35}-\x{AA36}\x{AA43}\x{AA4C}\x{AA70}\x{AA7C}\x{AAB0}\x{AAB2}-\x{AAB4}\x{AAB7}-\x{AAB8}\x{AABE}-\x{AABF}\x{AAC1}\x{AADD}\x{AAEC}-\x{AAED}\x{AAF3}-\x{AAF4}\x{AAF6}\x{AB5B}\x{AB5C}-\x{AB5F}\x{ABE5}\x{ABE8}\x{ABED}\x{FB1E}\x{FBB2}-\x{FBC1}\x{FE00}-\x{FE0F}\x{FE13}\x{FE20}-\x{FE2F}\x{FE52}\x{FE55}\x{FEFF}\x{FF07}\x{FF0E}\x{FF1A}\x{FF3E}\x{FF40}\x{FF70}\x{FF9E}-\x{FF9F}\x{FFE3}\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{10F46}-\x{10F50}\x{11001}\x{11038}-\x{11046}\x{1107F}-\x{11081}\x{110B3}-\x{110B6}\x{110B9}-\x{110BA}\x{110BD}\x{110CD}\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{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{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{16AF0}-\x{16AF4}\x{16B30}-\x{16B36}\x{16B40}-\x{16B43}\x{16F8F}-\x{16F92}\x{16F93}-\x{16F9F}\x{16FE0}-\x{16FE1}\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{1E8D0}-\x{1E8D6}\x{1E944}-\x{1E94A}\x{1F3FB}-\x{1F3FF}\x{E0001}\x{E0020}-\x{E007F}\x{E0100}-\x{E01EF}])(\pL)(\pL*+)/u';
lib/polyfill-mbstring/Resources/unidata/upperCase.php ADDED
@@ -0,0 +1,1104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ return array(
4
+ 'a' => 'A',
5
+ 'b' => 'B',
6
+ 'c' => 'C',
7
+ 'd' => 'D',
8
+ 'e' => 'E',
9
+ 'f' => 'F',
10
+ 'g' => 'G',
11
+ 'h' => 'H',
12
+ 'i' => 'I',
13
+ 'j' => 'J',
14
+ 'k' => 'K',
15
+ 'l' => 'L',
16
+ 'm' => 'M',
17
+ 'n' => 'N',
18
+ 'o' => 'O',
19
+ 'p' => 'P',
20
+ 'q' => 'Q',
21
+ 'r' => 'R',
22
+ 's' => 'S',
23
+ 't' => 'T',
24
+ 'u' => 'U',
25
+ 'v' => 'V',
26
+ 'w' => 'W',
27
+ 'x' => 'X',
28
+ 'y' => 'Y',
29
+ 'z' => 'Z',
30
+ 'µ' => 'Μ',
31
+ 'à' => 'À',
32
+ 'á' => 'Á',
33
+ 'â' => 'Â',
34
+ 'ã' => 'Ã',
35
+ 'ä' => 'Ä',
36
+ 'å' => 'Å',
37
+ 'æ' => 'Æ',
38
+ 'ç' => 'Ç',
39
+ 'è' => 'È',
40
+ 'é' => 'É',
41
+ 'ê' => 'Ê',
42
+ 'ë' => 'Ë',
43
+ 'ì' => 'Ì',
44
+ 'í' => 'Í',
45
+ 'î' => 'Î',
46
+ 'ï' => 'Ï',
47
+ 'ð' => 'Ð',
48
+ 'ñ' => 'Ñ',
49
+ 'ò' => 'Ò',
50
+ 'ó' => 'Ó',
51
+ 'ô' => 'Ô',
52
+ 'õ' => 'Õ',
53
+ 'ö' => 'Ö',
54
+ 'ø' => 'Ø',
55
+ 'ù' => 'Ù',
56
+ 'ú' => 'Ú',
57
+ 'û' => 'Û',
58
+ 'ü' => 'Ü',
59
+ 'ý' => 'Ý',
60
+ 'þ' => 'Þ',
61
+ 'ÿ' => 'Ÿ',
62
+ 'ā' => 'Ā',
63
+ 'ă' => 'Ă',
64
+ 'ą' => 'Ą',
65
+ 'ć' => 'Ć',
66
+ 'ĉ' => 'Ĉ',
67
+ 'ċ' => 'Ċ',
68
+ 'č' => 'Č',
69
+ 'ď' => 'Ď',
70
+ 'đ' => 'Đ',
71
+ 'ē' => 'Ē',
72
+ 'ĕ' => 'Ĕ',
73
+ 'ė' => 'Ė',
74
+ 'ę' => 'Ę',
75
+ 'ě' => 'Ě',
76
+ 'ĝ' => 'Ĝ',
77
+ 'ğ' => 'Ğ',
78
+ 'ġ' => 'Ġ',
79
+ 'ģ' => 'Ģ',
80
+ 'ĥ' => 'Ĥ',
81
+ 'ħ' => 'Ħ',
82
+ 'ĩ' => 'Ĩ',
83
+ 'ī' => 'Ī',
84
+ 'ĭ' => 'Ĭ',
85
+ 'į' => 'Į',
86
+ 'ı' => 'I',
87
+ 'ij' => 'IJ',
88
+ 'ĵ' => 'Ĵ',
89
+ 'ķ' => 'Ķ',
90
+ 'ĺ' => 'Ĺ',
91
+ 'ļ' => 'Ļ',
92
+ 'ľ' => 'Ľ',
93
+ 'ŀ' => 'Ŀ',
94
+ 'ł' => 'Ł',
95
+ 'ń' => 'Ń',
96
+ 'ņ' => 'Ņ',
97
+ 'ň' => 'Ň',
98
+ 'ŋ' => 'Ŋ',
99
+ 'ō' => 'Ō',
100
+ 'ŏ' => 'Ŏ',
101
+ 'ő' => 'Ő',
102
+ 'œ' => 'Œ',
103
+ 'ŕ' => 'Ŕ',
104
+ 'ŗ' => 'Ŗ',
105
+ 'ř' => 'Ř',
106
+ 'ś' => 'Ś',
107
+ 'ŝ' => 'Ŝ',
108
+ 'ş' => 'Ş',
109
+ 'š' => 'Š',
110
+ 'ţ' => 'Ţ',
111
+ 'ť' => 'Ť',
112
+ 'ŧ' => 'Ŧ',
113
+ 'ũ' => 'Ũ',
114
+ 'ū' => 'Ū',
115
+ 'ŭ' => 'Ŭ',
116
+ 'ů' => 'Ů',
117
+ 'ű' => 'Ű',
118
+ 'ų' => 'Ų',
119
+ 'ŵ' => 'Ŵ',
120
+ 'ŷ' => 'Ŷ',
121
+ 'ź' => 'Ź',
122
+ 'ż' => 'Ż',
123
+ 'ž' => 'Ž',
124
+ 'ſ' => 'S',
125
+ 'ƀ' => 'Ƀ',
126
+ 'ƃ' => 'Ƃ',
127
+ 'ƅ' => 'Ƅ',
128
+ 'ƈ' => 'Ƈ',
129
+ 'ƌ' => 'Ƌ',
130
+ 'ƒ' => 'Ƒ',
131
+ 'ƕ' => 'Ƕ',
132
+ 'ƙ' => 'Ƙ',
133
+ 'ƚ' => 'Ƚ',
134
+ 'ƞ' => 'Ƞ',
135
+ 'ơ' => 'Ơ',
136
+ 'ƣ' => 'Ƣ',
137
+ 'ƥ' => 'Ƥ',
138
+ 'ƨ' => 'Ƨ',
139
+ 'ƭ' => 'Ƭ',
140
+ 'ư' => 'Ư',
141
+ 'ƴ' => 'Ƴ',
142
+ 'ƶ' => 'Ƶ',
143
+ 'ƹ' => 'Ƹ',
144
+ 'ƽ' => 'Ƽ',
145
+ 'ƿ' => 'Ƿ',
146
+ 'Dž' => 'DŽ',
147
+ 'dž' => 'DŽ',
148
+ 'Lj' => 'LJ',
149
+ 'lj' => 'LJ',
150
+ 'Nj' => 'NJ',
151
+ 'nj' => 'NJ',
152
+ 'ǎ' => 'Ǎ',
153
+ 'ǐ' => 'Ǐ',
154
+ 'ǒ' => 'Ǒ',
155
+ 'ǔ' => 'Ǔ',
156
+ 'ǖ' => 'Ǖ',
157
+ 'ǘ' => 'Ǘ',
158
+ 'ǚ' => 'Ǚ',
159
+ 'ǜ' => 'Ǜ',
160
+ 'ǝ' => 'Ǝ',
161
+ 'ǟ' => 'Ǟ',
162
+ 'ǡ' => 'Ǡ',
163
+ 'ǣ' => 'Ǣ',
164
+ 'ǥ' => 'Ǥ',
165
+ 'ǧ' => 'Ǧ',
166
+ 'ǩ' => 'Ǩ',
167
+ 'ǫ' => 'Ǫ',
168
+ 'ǭ' => 'Ǭ',
169
+ 'ǯ' => 'Ǯ',
170
+ 'Dz' => 'DZ',
171
+ 'dz' => 'DZ',
172
+ 'ǵ' => 'Ǵ',
173
+ 'ǹ' => 'Ǹ',
174
+ 'ǻ' => 'Ǻ',
175
+ 'ǽ' => 'Ǽ',
176
+ 'ǿ' => 'Ǿ',
177
+ 'ȁ' => 'Ȁ',
178
+ 'ȃ' => 'Ȃ',
179
+ 'ȅ' => 'Ȅ',
180
+ 'ȇ' => 'Ȇ',
181
+ 'ȉ' => 'Ȉ',
182
+ 'ȋ' => 'Ȋ',
183
+ 'ȍ' => 'Ȍ',
184
+ 'ȏ' => 'Ȏ',
185
+ 'ȑ' => 'Ȑ',
186
+ 'ȓ' => 'Ȓ',
187
+ 'ȕ' => 'Ȕ',
188
+ 'ȗ' => 'Ȗ',
189
+ 'ș' => 'Ș',
190
+ 'ț' => 'Ț',
191
+ 'ȝ' => 'Ȝ',
192
+ 'ȟ' => 'Ȟ',
193
+ 'ȣ' => 'Ȣ',
194
+ 'ȥ' => 'Ȥ',
195
+ 'ȧ' => 'Ȧ',
196
+ 'ȩ' => 'Ȩ',
197
+ 'ȫ' => 'Ȫ',
198
+ 'ȭ' => 'Ȭ',
199
+ 'ȯ' => 'Ȯ',
200
+ 'ȱ' => 'Ȱ',
201
+ 'ȳ' => 'Ȳ',
202
+ 'ȼ' => 'Ȼ',
203
+ 'ȿ' => 'Ȿ',
204
+ 'ɀ' => 'Ɀ',
205
+ 'ɂ' => 'Ɂ',
206
+ 'ɇ' => 'Ɇ',
207
+ 'ɉ' => 'Ɉ',
208
+ 'ɋ' => 'Ɋ',
209
+ 'ɍ' => 'Ɍ',
210
+ 'ɏ' => 'Ɏ',
211
+ 'ɐ' => 'Ɐ',
212
+ 'ɑ' => 'Ɑ',
213
+ 'ɒ' => 'Ɒ',
214
+ 'ɓ' => 'Ɓ',
215
+ 'ɔ' => 'Ɔ',
216
+ 'ɖ' => 'Ɖ',
217
+ 'ɗ' => 'Ɗ',
218
+ 'ə' => 'Ə',
219
+ 'ɛ' => 'Ɛ',
220
+ 'ɜ' => 'Ɜ',
221
+ 'ɠ' => 'Ɠ',
222
+ 'ɡ' => 'Ɡ',
223
+ 'ɣ' => 'Ɣ',
224
+ 'ɥ' => 'Ɥ',
225
+ 'ɦ' => 'Ɦ',
226
+ 'ɨ' => 'Ɨ',
227
+ 'ɩ' => 'Ɩ',
228
+ 'ɫ' => 'Ɫ',
229
+ 'ɬ' => 'Ɬ',
230
+ 'ɯ' => 'Ɯ',
231
+ 'ɱ' => 'Ɱ',
232
+ 'ɲ' => 'Ɲ',
233
+ 'ɵ' => 'Ɵ',
234
+ 'ɽ' => 'Ɽ',
235
+ 'ʀ' => 'Ʀ',
236
+ 'ʃ' => 'Ʃ',
237
+ 'ʇ' => 'Ʇ',
238
+ 'ʈ' => 'Ʈ',
239
+ 'ʉ' => 'Ʉ',
240
+ 'ʊ' => 'Ʊ',
241
+ 'ʋ' => 'Ʋ',
242
+ 'ʌ' => 'Ʌ',
243
+ 'ʒ' => 'Ʒ',
244
+ 'ʞ' => 'Ʞ',
245
+ 'ͅ' => 'Ι',
246
+ 'ͱ' => 'Ͱ',
247
+ 'ͳ' => 'Ͳ',
248
+ 'ͷ' => 'Ͷ',
249
+ 'ͻ' => 'Ͻ',
250
+ 'ͼ' => 'Ͼ',
251
+ 'ͽ' => 'Ͽ',
252
+ 'ά' => 'Ά',
253
+ 'έ' => 'Έ',
254
+ 'ή' => 'Ή',
255
+ 'ί' => 'Ί',
256
+ 'α' => 'Α',
257
+ 'β' => 'Β',
258
+ 'γ' => 'Γ',
259
+ 'δ' => 'Δ',
260
+ 'ε' => 'Ε',
261
+ 'ζ' => 'Ζ',
262
+ 'η' => 'Η',
263
+ 'θ' => 'Θ',
264
+ 'ι' => 'Ι',
265
+ 'κ' => 'Κ',
266
+ 'λ' => 'Λ',
267
+ 'μ' => 'Μ',
268
+ 'ν' => 'Ν',
269
+ 'ξ' => 'Ξ',
270
+ 'ο' => 'Ο',
271
+ 'π' => 'Π',
272
+ 'ρ' => 'Ρ',
273
+ 'ς' => 'Σ',
274
+ 'σ' => 'Σ',
275
+ 'τ' => 'Τ',
276
+ 'υ' => 'Υ',
277
+ 'φ' => 'Φ',
278
+ 'χ' => 'Χ',
279
+ 'ψ' => 'Ψ',
280
+ 'ω' => 'Ω',
281
+ 'ϊ' => 'Ϊ',
282
+ 'ϋ' => 'Ϋ',
283
+ 'ό' => 'Ό',
284
+ 'ύ' => 'Ύ',
285
+ 'ώ' => 'Ώ',
286
+ 'ϐ' => 'Β',
287
+ 'ϑ' => 'Θ',
288
+ 'ϕ' => 'Φ',
289
+ 'ϖ' => 'Π',
290
+ 'ϗ' => 'Ϗ',
291
+ 'ϙ' => 'Ϙ',
292
+ 'ϛ' => 'Ϛ',
293
+ 'ϝ' => 'Ϝ',
294
+ 'ϟ' => 'Ϟ',
295
+ 'ϡ' => 'Ϡ',
296
+ 'ϣ' => 'Ϣ',
297
+ 'ϥ' => 'Ϥ',
298
+ 'ϧ' => 'Ϧ',
299
+ 'ϩ' => 'Ϩ',
300
+ 'ϫ' => 'Ϫ',
301
+ 'ϭ' => 'Ϭ',
302
+ 'ϯ' => 'Ϯ',
303
+ 'ϰ' => 'Κ',
304
+ 'ϱ' => 'Ρ',
305
+ 'ϲ' => 'Ϲ',
306
+ 'ϳ' => 'Ϳ',
307
+ 'ϵ' => 'Ε',
308
+ 'ϸ' => 'Ϸ',
309
+ 'ϻ' => 'Ϻ',
310
+ 'а' => 'А',
311
+ 'б' => 'Б',
312
+ 'в' => 'В',
313
+ 'г' => 'Г',
314
+ 'д' => 'Д',
315
+ 'е' => 'Е',
316
+ 'ж' => 'Ж',
317
+ 'з' => 'З',
318
+ 'и' => 'И',
319
+ 'й' => 'Й',
320
+ 'к' => 'К',
321
+ 'л' => 'Л',
322
+ 'м' => 'М',
323
+ 'н' => 'Н',
324
+ 'о' => 'О',
325
+ 'п' => 'П',
326
+ 'р' => 'Р',
327
+ 'с' => 'С',
328
+ 'т' => 'Т',
329
+ 'у' => 'У',
330
+ 'ф' => 'Ф',
331
+ 'х' => 'Х',
332
+ 'ц' => 'Ц',
333
+ 'ч' => 'Ч',
334
+ 'ш' => 'Ш',
335
+ 'щ' => 'Щ',
336
+ 'ъ' => 'Ъ',
337
+ 'ы' => 'Ы',
338
+ 'ь' => 'Ь',
339
+ 'э' => 'Э',
340
+ 'ю' => 'Ю',
341
+ 'я' => 'Я',
342
+ 'ѐ' => 'Ѐ',
343
+ 'ё' => 'Ё',
344
+ 'ђ' => 'Ђ',
345
+ 'ѓ' => 'Ѓ',
346
+ 'є' => 'Є',
347
+ 'ѕ' => 'Ѕ',
348
+ 'і' => 'І',
349
+ 'ї' => 'Ї',
350
+ 'ј' => 'Ј',
351
+ 'љ' => 'Љ',
352
+ 'њ' => 'Њ',
353
+ 'ћ' => 'Ћ',
354
+ 'ќ' => 'Ќ',
355
+ 'ѝ' => 'Ѝ',
356
+ 'ў' => 'Ў',
357
+ 'џ' => 'Џ',
358
+ 'ѡ' => 'Ѡ',
359
+ 'ѣ' => 'Ѣ',
360
+ 'ѥ' => 'Ѥ',
361
+ 'ѧ' => 'Ѧ',
362
+ 'ѩ' => 'Ѩ',
363
+ 'ѫ' => 'Ѫ',
364
+ 'ѭ' => 'Ѭ',
365
+ 'ѯ' => 'Ѯ',
366
+ 'ѱ' => 'Ѱ',
367
+ 'ѳ' => 'Ѳ',
368
+ 'ѵ' => 'Ѵ',
369
+ 'ѷ' => 'Ѷ',
370
+ 'ѹ' => 'Ѹ',
371
+ 'ѻ' => 'Ѻ',
372
+ 'ѽ' => 'Ѽ',
373
+ 'ѿ' => 'Ѿ',
374
+ 'ҁ' => 'Ҁ',
375
+ 'ҋ' => 'Ҋ',
376
+ 'ҍ' => 'Ҍ',
377
+ 'ҏ' => 'Ҏ',
378
+ 'ґ' => 'Ґ',
379
+ 'ғ' => 'Ғ',
380
+ 'ҕ' => 'Ҕ',
381
+ 'җ' => 'Җ',
382
+ 'ҙ' => 'Ҙ',
383
+ 'қ' => 'Қ',
384
+ 'ҝ' => 'Ҝ',
385
+ 'ҟ' => 'Ҟ',
386
+ 'ҡ' => 'Ҡ',
387
+ 'ң' => 'Ң',
388
+ 'ҥ' => 'Ҥ',
389
+ 'ҧ' => 'Ҧ',
390
+ 'ҩ' => 'Ҩ',
391
+ 'ҫ' => 'Ҫ',
392
+ 'ҭ' => 'Ҭ',
393
+ 'ү' => 'Ү',
394
+ 'ұ' => 'Ұ',
395
+ 'ҳ' => 'Ҳ',
396
+ 'ҵ' => 'Ҵ',
397
+ 'ҷ' => 'Ҷ',
398
+ 'ҹ' => 'Ҹ',
399
+ 'һ' => 'Һ',
400
+ 'ҽ' => 'Ҽ',
401
+ 'ҿ' => 'Ҿ',
402
+ 'ӂ' => 'Ӂ',
403
+ 'ӄ' => 'Ӄ',
404
+ 'ӆ' => 'Ӆ',
405
+ 'ӈ' => 'Ӈ',
406
+ 'ӊ' => 'Ӊ',
407
+ 'ӌ' => 'Ӌ',
408
+ 'ӎ' => 'Ӎ',
409
+ 'ӏ' => 'Ӏ',
410
+ 'ӑ' => 'Ӑ',
411
+ 'ӓ' => 'Ӓ',
412
+ 'ӕ' => 'Ӕ',
413
+ 'ӗ' => 'Ӗ',
414
+ 'ә' => 'Ә',
415
+ 'ӛ' => 'Ӛ',
416
+ 'ӝ' => 'Ӝ',
417
+ 'ӟ' => 'Ӟ',
418
+ 'ӡ' => 'Ӡ',
419
+ 'ӣ' => 'Ӣ',
420
+ 'ӥ' => 'Ӥ',
421
+ 'ӧ' => 'Ӧ',
422
+ 'ө' => 'Ө',
423
+ 'ӫ' => 'Ӫ',
424
+ 'ӭ' => 'Ӭ',
425
+ 'ӯ' => 'Ӯ',
426
+ 'ӱ' => 'Ӱ',
427
+ 'ӳ' => 'Ӳ',
428
+ 'ӵ' => 'Ӵ',
429
+ 'ӷ' => 'Ӷ',
430
+ 'ӹ' => 'Ӹ',
431
+ 'ӻ' => 'Ӻ',
432
+ 'ӽ' => 'Ӽ',
433
+ 'ӿ' => 'Ӿ',
434
+ 'ԁ' => 'Ԁ',
435
+ 'ԃ' => 'Ԃ',
436
+ 'ԅ' => 'Ԅ',
437
+ 'ԇ' => 'Ԇ',
438
+ 'ԉ' => 'Ԉ',
439
+ 'ԋ' => 'Ԋ',
440
+ 'ԍ' => 'Ԍ',
441
+ 'ԏ' => 'Ԏ',
442
+ 'ԑ' => 'Ԑ',
443
+ 'ԓ' => 'Ԓ',
444
+ 'ԕ' => 'Ԕ',
445
+ 'ԗ' => 'Ԗ',
446
+ 'ԙ' => 'Ԙ',
447
+ 'ԛ' => 'Ԛ',
448
+ 'ԝ' => 'Ԝ',
449
+ 'ԟ' => 'Ԟ',
450
+ 'ԡ' => 'Ԡ',
451
+ 'ԣ' => 'Ԣ',
452
+ 'ԥ' => 'Ԥ',
453
+ 'ԧ' => 'Ԧ',
454
+ 'ԩ' => 'Ԩ',
455
+ 'ԫ' => 'Ԫ',
456
+ 'ԭ' => 'Ԭ',
457
+ 'ԯ' => 'Ԯ',
458
+ 'ա' => 'Ա',
459
+ 'բ' => 'Բ',
460
+ 'գ' => 'Գ',
461
+ 'դ' => 'Դ',
462
+ 'ե' => 'Ե',
463
+ 'զ' => 'Զ',
464
+ 'է' => 'Է',
465
+ 'ը' => 'Ը',
466
+ 'թ' => 'Թ',
467
+ 'ժ' => 'Ժ',
468
+ 'ի' => 'Ի',
469
+ 'լ' => 'Լ',
470
+ 'խ' => 'Խ',
471
+ 'ծ' => 'Ծ',
472
+ 'կ' => 'Կ',
473
+ 'հ' => 'Հ',
474
+ 'ձ' => 'Ձ',
475
+ 'ղ' => 'Ղ',
476
+ 'ճ' => 'Ճ',
477
+ 'մ' => 'Մ',
478
+ 'յ' => 'Յ',
479
+ 'ն' => 'Ն',
480
+ 'շ' => 'Շ',
481
+ 'ո' => 'Ո',
482
+ 'չ' => 'Չ',
483
+ 'պ' => 'Պ',
484
+ 'ջ' => 'Ջ',
485
+ 'ռ' => 'Ռ',
486
+ 'ս' => 'Ս',
487
+ 'վ' => 'Վ',
488
+ 'տ' => 'Տ',
489
+ 'ր' => 'Ր',
490
+ 'ց' => 'Ց',
491
+ 'ւ' => 'Ւ',
492
+ 'փ' => 'Փ',
493
+ 'ք' => 'Ք',
494
+ 'օ' => 'Օ',
495
+ 'ֆ' => 'Ֆ',
496
+ 'ᵹ' => 'Ᵹ',
497
+ 'ᵽ' => 'Ᵽ',
498
+ 'ḁ' => 'Ḁ',
499
+ 'ḃ' => 'Ḃ',
500
+ 'ḅ' => 'Ḅ',
501
+ 'ḇ' => 'Ḇ',
502
+ 'ḉ' => 'Ḉ',
503
+ 'ḋ' => 'Ḋ',
504
+ 'ḍ' => 'Ḍ',
505
+ 'ḏ' => 'Ḏ',
506
+ 'ḑ' => 'Ḑ',
507
+ 'ḓ' => 'Ḓ',
508
+ 'ḕ' => 'Ḕ',
509
+ 'ḗ' => 'Ḗ',
510
+ 'ḙ' => 'Ḙ',
511
+ 'ḛ' => 'Ḛ',
512
+ 'ḝ' => 'Ḝ',
513
+ 'ḟ' => 'Ḟ',
514
+ 'ḡ' => 'Ḡ',
515
+ 'ḣ' => 'Ḣ',
516
+ 'ḥ' => 'Ḥ',
517
+ 'ḧ' => 'Ḧ',
518
+ 'ḩ' => 'Ḩ',
519
+ 'ḫ' => 'Ḫ',
520
+ 'ḭ' => 'Ḭ',
521
+ 'ḯ' => 'Ḯ',
522
+ 'ḱ' => 'Ḱ',
523
+ 'ḳ' => 'Ḳ',
524
+ 'ḵ' => 'Ḵ',
525
+ 'ḷ' => 'Ḷ',
526
+ 'ḹ' => 'Ḹ',
527
+ 'ḻ' => 'Ḻ',
528
+ 'ḽ' => 'Ḽ',
529
+ 'ḿ' => 'Ḿ',
530
+ 'ṁ' => 'Ṁ',
531
+ 'ṃ' => 'Ṃ',
532
+ 'ṅ' => 'Ṅ',
533
+ 'ṇ' => 'Ṇ',
534
+ 'ṉ' => 'Ṉ',
535
+ 'ṋ' => 'Ṋ',
536
+ 'ṍ' => 'Ṍ',
537
+ 'ṏ' => 'Ṏ',
538
+ 'ṑ' => 'Ṑ',
539
+ 'ṓ' => 'Ṓ',
540
+ 'ṕ' => 'Ṕ',
541
+ 'ṗ' => 'Ṗ',
542
+ 'ṙ' => 'Ṙ',
543
+ 'ṛ' => 'Ṛ',
544
+ 'ṝ' => 'Ṝ',
545
+ 'ṟ' => 'Ṟ',
546
+ 'ṡ' => 'Ṡ',
547
+ 'ṣ' => 'Ṣ',
548
+ 'ṥ' => 'Ṥ',
549
+ 'ṧ' => 'Ṧ',
550
+ 'ṩ' => 'Ṩ',
551
+ 'ṫ' => 'Ṫ',
552
+ 'ṭ' => 'Ṭ',
553
+ 'ṯ' => 'Ṯ',
554
+ 'ṱ' => 'Ṱ',
555
+ 'ṳ' => 'Ṳ',
556
+ 'ṵ' => 'Ṵ',
557
+ 'ṷ' => 'Ṷ',
558
+ 'ṹ' => 'Ṹ',
559
+ 'ṻ' => 'Ṻ',
560
+ 'ṽ' => 'Ṽ',
561
+ 'ṿ' => 'Ṿ',
562
+ 'ẁ' => 'Ẁ',
563
+ 'ẃ' => 'Ẃ',
564
+ 'ẅ' => 'Ẅ',
565
+ 'ẇ' => 'Ẇ',
566
+ 'ẉ' => 'Ẉ',
567
+ 'ẋ' => 'Ẋ',
568
+ 'ẍ' => 'Ẍ',
569
+ 'ẏ' => 'Ẏ',
570
+ 'ẑ' => 'Ẑ',
571
+ 'ẓ' => 'Ẓ',
572
+ 'ẕ' => 'Ẕ',
573
+ 'ẛ' => 'Ṡ',
574
+ 'ạ' => 'Ạ',
575
+ 'ả' => 'Ả',
576
+ 'ấ' => 'Ấ',
577
+ 'ầ' => 'Ầ',
578
+ 'ẩ' => 'Ẩ',
579
+ 'ẫ' => 'Ẫ',
580
+ 'ậ' => 'Ậ',
581
+ 'ắ' => 'Ắ',
582
+ 'ằ' => 'Ằ',
583
+ 'ẳ' => 'Ẳ',
584
+ 'ẵ' => 'Ẵ',
585
+ 'ặ' => 'Ặ',
586
+ 'ẹ' => 'Ẹ',
587
+ 'ẻ' => 'Ẻ',
588
+ 'ẽ' => 'Ẽ',
589
+ 'ế' => 'Ế',
590
+ 'ề' => 'Ề',
591
+ 'ể' => 'Ể',
592
+ 'ễ' => 'Ễ',
593
+ 'ệ' => 'Ệ',
594
+ 'ỉ' => 'Ỉ',
595
+ 'ị' => 'Ị',
596
+ 'ọ' => 'Ọ',
597
+ 'ỏ' => 'Ỏ',
598
+ 'ố' => 'Ố',
599
+ 'ồ' => 'Ồ',
600
+ 'ổ' => 'Ổ',
601
+ 'ỗ' => 'Ỗ',
602
+ 'ộ' => 'Ộ',
603
+ 'ớ' => 'Ớ',
604
+ 'ờ' => 'Ờ',
605
+ 'ở' => 'Ở',
606
+ 'ỡ' => 'Ỡ',
607
+ 'ợ' => 'Ợ',
608
+ 'ụ' => 'Ụ',
609
+ 'ủ' => 'Ủ',
610
+ 'ứ' => 'Ứ',
611
+ 'ừ' => 'Ừ',
612
+ 'ử' => 'Ử',
613
+ 'ữ' => 'Ữ',
614
+ 'ự' => 'Ự',
615
+ 'ỳ' => 'Ỳ',
616
+ 'ỵ' => 'Ỵ',
617
+ 'ỷ' => 'Ỷ',
618
+ 'ỹ' => 'Ỹ',
619
+ 'ỻ' => 'Ỻ',
620
+ 'ỽ' => 'Ỽ',
621
+ 'ỿ' => 'Ỿ',
622
+ 'ἀ' => 'Ἀ',
623
+ 'ἁ' => 'Ἁ',
624
+ 'ἂ' => 'Ἂ',
625
+ 'ἃ' => 'Ἃ',
626
+ 'ἄ' => 'Ἄ',
627
+ 'ἅ' => 'Ἅ',
628
+ 'ἆ' => 'Ἆ',
629
+ 'ἇ' => 'Ἇ',
630
+ 'ἐ' => 'Ἐ',
631
+ 'ἑ' => 'Ἑ',
632
+ 'ἒ' => 'Ἒ',
633
+ 'ἓ' => 'Ἓ',
634
+ 'ἔ' => 'Ἔ',
635
+ 'ἕ' => 'Ἕ',
636
+ 'ἠ' => 'Ἠ',
637
+ 'ἡ' => 'Ἡ',
638
+ 'ἢ' => 'Ἢ',
639
+ 'ἣ' => 'Ἣ',
640
+ 'ἤ' => 'Ἤ',
641
+ 'ἥ' => 'Ἥ',
642
+ 'ἦ' => 'Ἦ',
643
+ 'ἧ' => 'Ἧ',
644
+ 'ἰ' => 'Ἰ',
645
+ 'ἱ' => 'Ἱ',
646
+ 'ἲ' => 'Ἲ',
647
+ 'ἳ' => 'Ἳ',
648
+ 'ἴ' => 'Ἴ',
649
+ 'ἵ' => 'Ἵ',
650
+ 'ἶ' => 'Ἶ',
651
+ 'ἷ' => 'Ἷ',
652
+ 'ὀ' => 'Ὀ',
653
+ 'ὁ' => 'Ὁ',
654
+ 'ὂ' => 'Ὂ',
655
+ 'ὃ' => 'Ὃ',
656
+ 'ὄ' => 'Ὄ',
657
+ 'ὅ' => 'Ὅ',
658
+ 'ὑ' => 'Ὑ',
659
+ 'ὓ' => 'Ὓ',
660
+ 'ὕ' => 'Ὕ',
661
+ 'ὗ' => 'Ὗ',
662
+ 'ὠ' => 'Ὠ',
663
+ 'ὡ' => 'Ὡ',
664
+ 'ὢ' => 'Ὢ',
665
+ 'ὣ' => 'Ὣ',
666
+ 'ὤ' => 'Ὤ',
667
+ 'ὥ' => 'Ὥ',
668
+ 'ὦ' => 'Ὦ',
669
+ 'ὧ' => 'Ὧ',
670
+ 'ὰ' => 'Ὰ',
671
+ 'ά' => 'Ά',
672
+ 'ὲ' => 'Ὲ',
673
+ 'έ' => 'Έ',
674
+ 'ὴ' => 'Ὴ',
675
+ 'ή' => 'Ή',
676
+ 'ὶ' => 'Ὶ',
677
+ 'ί' => 'Ί',
678
+ 'ὸ' => 'Ὸ',
679
+ 'ό' => 'Ό',
680
+ 'ὺ' => 'Ὺ',
681
+ 'ύ' => 'Ύ',
682
+ 'ὼ' => 'Ὼ',
683
+ 'ώ' => 'Ώ',
684
+ 'ᾀ' => 'ᾈ',
685
+ 'ᾁ' => 'ᾉ',
686
+ 'ᾂ' => 'ᾊ',
687
+ 'ᾃ' => 'ᾋ',
688
+ 'ᾄ' => 'ᾌ',
689
+ 'ᾅ' => 'ᾍ',
690
+ 'ᾆ' => 'ᾎ',
691
+ 'ᾇ' => 'ᾏ',
692
+ 'ᾐ' => 'ᾘ',
693
+ 'ᾑ' => 'ᾙ',
694
+ 'ᾒ' => 'ᾚ',
695
+ 'ᾓ' => 'ᾛ',
696
+ 'ᾔ' => 'ᾜ',
697
+ 'ᾕ' => 'ᾝ',
698
+ 'ᾖ' => 'ᾞ',
699
+ 'ᾗ' => 'ᾟ',
700
+ 'ᾠ' => 'ᾨ',
701
+ 'ᾡ' => 'ᾩ',
702
+ 'ᾢ' => 'ᾪ',
703
+ 'ᾣ' => 'ᾫ',
704
+ 'ᾤ' => 'ᾬ',
705
+ 'ᾥ' => 'ᾭ',
706
+ 'ᾦ' => 'ᾮ',
707
+ 'ᾧ' => 'ᾯ',
708
+ 'ᾰ' => 'Ᾰ',
709
+ 'ᾱ' => 'Ᾱ',
710
+ 'ᾳ' => 'ᾼ',
711
+ 'ι' => 'Ι',
712
+ 'ῃ' => 'ῌ',
713
+ 'ῐ' => 'Ῐ',
714
+ 'ῑ' => 'Ῑ',
715
+ 'ῠ' => 'Ῠ',
716
+ 'ῡ' => 'Ῡ',
717
+ 'ῥ' => 'Ῥ',
718
+ 'ῳ' => 'ῼ',
719
+ 'ⅎ' => 'Ⅎ',
720
+ 'ⅰ' => 'Ⅰ',
721
+ 'ⅱ' => 'Ⅱ',
722
+ 'ⅲ' => 'Ⅲ',
723
+ 'ⅳ' => 'Ⅳ',
724
+ 'ⅴ' => 'Ⅴ',
725
+ 'ⅵ' => 'Ⅵ',
726
+ 'ⅶ' => 'Ⅶ',
727
+ 'ⅷ' => 'Ⅷ',
728
+ 'ⅸ' => 'Ⅸ',
729
+ 'ⅹ' => 'Ⅹ',
730
+ 'ⅺ' => 'Ⅺ',
731
+ 'ⅻ' => 'Ⅻ',
732
+ 'ⅼ' => 'Ⅼ',
733
+ 'ⅽ' => 'Ⅽ',
734
+ 'ⅾ' => 'Ⅾ',
735
+ 'ⅿ' => 'Ⅿ',
736
+ 'ↄ' => 'Ↄ',
737
+ 'ⓐ' => 'Ⓐ',
738
+ 'ⓑ' => 'Ⓑ',
739
+ 'ⓒ' => 'Ⓒ',
740
+ 'ⓓ' => 'Ⓓ',
741
+ 'ⓔ' => 'Ⓔ',
742
+ 'ⓕ' => 'Ⓕ',
743
+ 'ⓖ' => 'Ⓖ',
744
+ 'ⓗ' => 'Ⓗ',
745
+ 'ⓘ' => 'Ⓘ',
746
+ 'ⓙ' => 'Ⓙ',
747
+ 'ⓚ' => 'Ⓚ',
748
+ 'ⓛ' => 'Ⓛ',
749
+ 'ⓜ' => 'Ⓜ',
750
+ 'ⓝ' => 'Ⓝ',
751
+ 'ⓞ' => 'Ⓞ',
752
+ 'ⓟ' => 'Ⓟ',
753
+ 'ⓠ' => 'Ⓠ',
754
+ 'ⓡ' => 'Ⓡ',
755
+ 'ⓢ' => 'Ⓢ',
756
+ 'ⓣ' => 'Ⓣ',
757
+ 'ⓤ' => 'Ⓤ',
758
+ 'ⓥ' => 'Ⓥ',
759
+ 'ⓦ' => 'Ⓦ',
760
+ 'ⓧ' => 'Ⓧ',
761
+ 'ⓨ' => 'Ⓨ',
762
+ 'ⓩ' => 'Ⓩ',
763
+ 'ⰰ' => 'Ⰰ',
764
+ 'ⰱ' => 'Ⰱ',
765
+ 'ⰲ' => 'Ⰲ',
766
+ 'ⰳ' => 'Ⰳ',
767
+ 'ⰴ' => 'Ⰴ',
768
+ 'ⰵ' => 'Ⰵ',
769
+ 'ⰶ' => 'Ⰶ',
770
+ 'ⰷ' => 'Ⰷ',
771
+ 'ⰸ' => 'Ⰸ',
772
+ 'ⰹ' => 'Ⰹ',
773
+ 'ⰺ' => 'Ⰺ',
774
+ 'ⰻ' => 'Ⰻ',
775
+ 'ⰼ' => 'Ⰼ',
776
+ 'ⰽ' => 'Ⰽ',
777
+ 'ⰾ' => 'Ⰾ',
778
+ 'ⰿ' => 'Ⰿ',
779
+ 'ⱀ' => 'Ⱀ',
780
+ 'ⱁ' => 'Ⱁ',
781
+ 'ⱂ' => 'Ⱂ',
782
+ 'ⱃ' => 'Ⱃ',
783
+ 'ⱄ' => 'Ⱄ',
784
+ 'ⱅ' => 'Ⱅ',
785
+ 'ⱆ' => 'Ⱆ',
786
+ 'ⱇ' => 'Ⱇ',
787
+ 'ⱈ' => 'Ⱈ',
788
+ 'ⱉ' => 'Ⱉ',
789
+ 'ⱊ' => 'Ⱊ',
790
+ 'ⱋ' => 'Ⱋ',
791
+ 'ⱌ' => 'Ⱌ',
792
+ 'ⱍ' => 'Ⱍ',
793
+ 'ⱎ' => 'Ⱎ',
794
+ 'ⱏ' => 'Ⱏ',
795
+ 'ⱐ' => 'Ⱐ',
796
+ 'ⱑ' => 'Ⱑ',
797
+ 'ⱒ' => 'Ⱒ',
798
+ 'ⱓ' => 'Ⱓ',
799
+ 'ⱔ' => 'Ⱔ',
800
+ 'ⱕ' => 'Ⱕ',
801
+ 'ⱖ' => 'Ⱖ',
802
+ 'ⱗ' => 'Ⱗ',
803
+ 'ⱘ' => 'Ⱘ',
804
+ 'ⱙ' => 'Ⱙ',
805
+ 'ⱚ' => 'Ⱚ',
806
+ 'ⱛ' => 'Ⱛ',
807
+ 'ⱜ' => 'Ⱜ',
808
+ 'ⱝ' => 'Ⱝ',
809
+ 'ⱞ' => 'Ⱞ',
810
+ 'ⱡ' => 'Ⱡ',
811
+ 'ⱥ' => 'Ⱥ',
812
+ 'ⱦ' => 'Ⱦ',
813
+ 'ⱨ' => 'Ⱨ',
814
+ 'ⱪ' => 'Ⱪ',
815
+ 'ⱬ' => 'Ⱬ',
816
+ 'ⱳ' => 'Ⱳ',
817
+ 'ⱶ' => 'Ⱶ',
818
+ 'ⲁ' => 'Ⲁ',
819
+ 'ⲃ' => 'Ⲃ',
820
+ 'ⲅ' => 'Ⲅ',
821
+ 'ⲇ' => 'Ⲇ',
822
+ 'ⲉ' => 'Ⲉ',
823
+ 'ⲋ' => 'Ⲋ',
824
+ 'ⲍ' => 'Ⲍ',
825
+ 'ⲏ' => 'Ⲏ',
826
+ 'ⲑ' => 'Ⲑ',
827
+ 'ⲓ' => 'Ⲓ',
828
+ 'ⲕ' => 'Ⲕ',
829
+ 'ⲗ' => 'Ⲗ',
830
+ 'ⲙ' => 'Ⲙ',
831
+ 'ⲛ' => 'Ⲛ',
832
+ 'ⲝ' => 'Ⲝ',
833
+ 'ⲟ' => 'Ⲟ',
834
+ 'ⲡ' => 'Ⲡ',
835
+ 'ⲣ' => 'Ⲣ',
836
+ 'ⲥ' => 'Ⲥ',
837
+ 'ⲧ' => 'Ⲧ',
838
+ 'ⲩ' => 'Ⲩ',
839
+ 'ⲫ' => 'Ⲫ',
840
+ 'ⲭ' => 'Ⲭ',
841
+ 'ⲯ' => 'Ⲯ',
842
+ 'ⲱ' => 'Ⲱ',
843
+ 'ⲳ' => 'Ⲳ',
844
+ 'ⲵ' => 'Ⲵ',
845
+ 'ⲷ' => 'Ⲷ',
846
+ 'ⲹ' => 'Ⲹ',
847
+ 'ⲻ' => 'Ⲻ',
848
+ 'ⲽ' => 'Ⲽ',
849
+ 'ⲿ' => 'Ⲿ',
850
+ 'ⳁ' => 'Ⳁ',
851
+ 'ⳃ' => 'Ⳃ',
852
+ 'ⳅ' => 'Ⳅ',
853
+ 'ⳇ' => 'Ⳇ',
854
+ 'ⳉ' => 'Ⳉ',
855
+ 'ⳋ' => 'Ⳋ',
856
+ 'ⳍ' => 'Ⳍ',
857
+ 'ⳏ' => 'Ⳏ',
858
+ 'ⳑ' => 'Ⳑ',
859
+ 'ⳓ' => 'Ⳓ',
860
+ 'ⳕ' => 'Ⳕ',
861
+ 'ⳗ' => 'Ⳗ',
862
+ 'ⳙ' => 'Ⳙ',
863
+ 'ⳛ' => 'Ⳛ',
864
+ 'ⳝ' => 'Ⳝ',
865
+ 'ⳟ' => 'Ⳟ',
866
+ 'ⳡ' => 'Ⳡ',
867
+ 'ⳣ' => 'Ⳣ',
868
+ 'ⳬ' => 'Ⳬ',
869
+ 'ⳮ' => 'Ⳮ',
870
+ 'ⳳ' => 'Ⳳ',
871
+ 'ⴀ' => 'Ⴀ',
872
+ 'ⴁ' => 'Ⴁ',
873
+ 'ⴂ' => 'Ⴂ',
874
+ 'ⴃ' => 'Ⴃ',
875
+ 'ⴄ' => 'Ⴄ',
876
+ 'ⴅ' => 'Ⴅ',
877
+ 'ⴆ' => 'Ⴆ',
878
+ 'ⴇ' => 'Ⴇ',
879
+ 'ⴈ' => 'Ⴈ',
880
+ 'ⴉ' => 'Ⴉ',
881
+ 'ⴊ' => 'Ⴊ',
882
+ 'ⴋ' => 'Ⴋ',
883
+ 'ⴌ' => 'Ⴌ',
884
+ 'ⴍ' => 'Ⴍ',
885
+ 'ⴎ' => 'Ⴎ',
886
+ 'ⴏ' => 'Ⴏ',
887
+ 'ⴐ' => 'Ⴐ',
888
+ 'ⴑ' => 'Ⴑ',
889
+ 'ⴒ' => 'Ⴒ',
890
+ 'ⴓ' => 'Ⴓ',
891
+ 'ⴔ' => 'Ⴔ',
892
+ 'ⴕ' => 'Ⴕ',
893
+ 'ⴖ' => 'Ⴖ',
894
+ 'ⴗ' => 'Ⴗ',
895
+ 'ⴘ' => 'Ⴘ',
896
+ 'ⴙ' => 'Ⴙ',
897
+ 'ⴚ' => 'Ⴚ',
898
+ 'ⴛ' => 'Ⴛ',
899
+ 'ⴜ' => 'Ⴜ',
900
+ 'ⴝ' => 'Ⴝ',
901
+ 'ⴞ' => 'Ⴞ',
902
+ 'ⴟ' => 'Ⴟ',
903
+ 'ⴠ' => 'Ⴠ',
904
+ 'ⴡ' => 'Ⴡ',
905
+ 'ⴢ' => 'Ⴢ',
906
+ 'ⴣ' => 'Ⴣ',
907
+ 'ⴤ' => 'Ⴤ',
908
+ 'ⴥ' => 'Ⴥ',
909
+ 'ⴧ' => 'Ⴧ',
910
+ 'ⴭ' => 'Ⴭ',
911
+ 'ꙁ' => 'Ꙁ',
912
+ 'ꙃ' => 'Ꙃ',
913
+ 'ꙅ' => 'Ꙅ',
914
+ 'ꙇ' => 'Ꙇ',
915
+ 'ꙉ' => 'Ꙉ',
916
+ 'ꙋ' => 'Ꙋ',
917
+ 'ꙍ' => 'Ꙍ',
918
+ 'ꙏ' => 'Ꙏ',
919
+ 'ꙑ' => 'Ꙑ',
920
+ 'ꙓ' => 'Ꙓ',
921
+ 'ꙕ' => 'Ꙕ',
922
+ 'ꙗ' => 'Ꙗ',
923
+ 'ꙙ' => 'Ꙙ',
924
+ 'ꙛ' => 'Ꙛ',
925
+ 'ꙝ' => 'Ꙝ',
926
+ 'ꙟ' => 'Ꙟ',
927
+ 'ꙡ' => 'Ꙡ',
928
+ 'ꙣ' => 'Ꙣ',
929
+ 'ꙥ' => 'Ꙥ',
930
+ 'ꙧ' => 'Ꙧ',
931
+ 'ꙩ' => 'Ꙩ',
932
+ 'ꙫ' => 'Ꙫ',
933
+ 'ꙭ' => 'Ꙭ',
934
+ 'ꚁ' => 'Ꚁ',
935
+ 'ꚃ' => 'Ꚃ',
936
+ 'ꚅ' => 'Ꚅ',
937
+ 'ꚇ' => 'Ꚇ',
938
+ 'ꚉ' => 'Ꚉ',
939
+ 'ꚋ' => 'Ꚋ',
940
+ 'ꚍ' => 'Ꚍ',
941
+ 'ꚏ' => 'Ꚏ',
942
+ 'ꚑ' => 'Ꚑ',
943
+ 'ꚓ' => 'Ꚓ',
944
+ 'ꚕ' => 'Ꚕ',
945
+ 'ꚗ' => 'Ꚗ',
946
+ 'ꚙ' => 'Ꚙ',
947
+ 'ꚛ' => 'Ꚛ',
948
+ 'ꜣ' => 'Ꜣ',
949
+ 'ꜥ' => 'Ꜥ',
950
+ 'ꜧ' => 'Ꜧ',
951
+ 'ꜩ' => 'Ꜩ',
952
+ 'ꜫ' => 'Ꜫ',
953
+ 'ꜭ' => 'Ꜭ',
954
+ 'ꜯ' => 'Ꜯ',
955
+ 'ꜳ' => 'Ꜳ',
956
+ 'ꜵ' => 'Ꜵ',
957
+ 'ꜷ' => 'Ꜷ',
958
+ 'ꜹ' => 'Ꜹ',
959
+ 'ꜻ' => 'Ꜻ',
960
+ 'ꜽ' => 'Ꜽ',
961
+ 'ꜿ' => 'Ꜿ',
962
+ 'ꝁ' => 'Ꝁ',
963
+ 'ꝃ' => 'Ꝃ',
964
+ 'ꝅ' => 'Ꝅ',
965
+ 'ꝇ' => 'Ꝇ',
966
+ 'ꝉ' => 'Ꝉ',
967
+ 'ꝋ' => 'Ꝋ',
968
+ 'ꝍ' => 'Ꝍ',
969
+ 'ꝏ' => 'Ꝏ',
970
+ 'ꝑ' => 'Ꝑ',
971
+ 'ꝓ' => 'Ꝓ',
972
+ 'ꝕ' => 'Ꝕ',
973
+ 'ꝗ' => 'Ꝗ',
974
+ 'ꝙ' => 'Ꝙ',
975
+ 'ꝛ' => 'Ꝛ',
976
+ 'ꝝ' => 'Ꝝ',
977
+ 'ꝟ' => 'Ꝟ',
978
+ 'ꝡ' => 'Ꝡ',
979
+ 'ꝣ' => 'Ꝣ',
980
+ 'ꝥ' => 'Ꝥ',
981
+ 'ꝧ' => 'Ꝧ',
982
+ 'ꝩ' => 'Ꝩ',
983
+ 'ꝫ' => 'Ꝫ',
984
+ 'ꝭ' => 'Ꝭ',
985
+ 'ꝯ' => 'Ꝯ',
986
+ 'ꝺ' => 'Ꝺ',
987
+ 'ꝼ' => 'Ꝼ',
988
+ 'ꝿ' => 'Ꝿ',
989
+ 'ꞁ' => 'Ꞁ',
990
+ 'ꞃ' => 'Ꞃ',
991
+ 'ꞅ' => 'Ꞅ',
992
+ 'ꞇ' => 'Ꞇ',
993
+ 'ꞌ' => 'Ꞌ',
994
+ 'ꞑ' => 'Ꞑ',
995
+ 'ꞓ' => 'Ꞓ',
996
+ 'ꞗ' => 'Ꞗ',
997
+ 'ꞙ' => 'Ꞙ',
998
+ 'ꞛ' => 'Ꞛ',
999
+ 'ꞝ' => 'Ꞝ',
1000
+ 'ꞟ' => 'Ꞟ',
1001
+ 'ꞡ' => 'Ꞡ',
1002
+ 'ꞣ' => 'Ꞣ',
1003
+ 'ꞥ' => 'Ꞥ',
1004
+ 'ꞧ' => 'Ꞧ',
1005
+ 'ꞩ' => 'Ꞩ',
1006
+ 'a' => 'A',
1007
+ 'b' => 'B',
1008
+ 'c' => 'C',
1009
+ 'd' => 'D',
1010
+ 'e' => 'E',
1011
+ 'f' => 'F',
1012
+ 'g' => 'G',
1013
+ 'h' => 'H',
1014
+ 'i' => 'I',
1015
+ 'j' => 'J',
1016
+ 'k' => 'K',
1017
+ 'l' => 'L',
1018
+ 'm' => 'M',
1019
+ 'n' => 'N',
1020
+ 'o' => 'O',
1021
+ 'p' => 'P',
1022
+ 'q' => 'Q',
1023
+ 'r' => 'R',
1024
+ 's' => 'S',
1025
+ 't' => 'T',
1026
+ 'u' => 'U',
1027
+ 'v' => 'V',
1028
+ 'w' => 'W',
1029
+ 'x' => 'X',
1030
+ 'y' => 'Y',
1031
+ 'z' => 'Z',
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
+ '𐑏' => '𐐧',
1072
+ '𑣀' => '𑢠',
1073
+ '𑣁' => '𑢡',
1074
+ '𑣂' => '𑢢',
1075
+ '𑣃' => '𑢣',
1076
+ '𑣄' => '𑢤',
1077
+ '𑣅' => '𑢥',
1078
+ '𑣆' => '𑢦',
1079
+ '𑣇' => '𑢧',
1080
+ '𑣈' => '𑢨',
1081
+ '𑣉' => '𑢩',
1082
+ '𑣊' => '𑢪',
1083
+ '𑣋' => '𑢫',
1084
+ '𑣌' => '𑢬',
1085
+ '𑣍' => '𑢭',
1086
+ '𑣎' => '𑢮',
1087
+ '𑣏' => '𑢯',
1088
+ '𑣐' => '𑢰',
1089
+ '𑣑' => '𑢱',
1090
+ '𑣒' => '𑢲',
1091
+ '𑣓' => '𑢳',
1092
+ '𑣔' => '𑢴',
1093
+ '𑣕' => '𑢵',
1094
+ '𑣖' => '𑢶',
1095
+ '𑣗' => '𑢷',
1096
+ '𑣘' => '𑢸',
1097
+ '𑣙' => '𑢹',
1098
+ '𑣚' => '𑢺',
1099
+ '𑣛' => '𑢻',
1100
+ '𑣜' => '𑢼',
1101
+ '𑣝' => '𑢽',
1102
+ '𑣞' => '𑢾',
1103
+ '𑣟' => '𑢿',
1104
+ );
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: SergeyBiryukov, mihdan, karevn, webvitaly, kaggdesign
3
  Tags: cyrillic, belorussian, ukrainian, bulgarian, macedonian, georgian, kazakh, latin, l10n, russian, cyr-to-lat, cyr2lat, rustolat, slugs, translations, transliteration
4
  Requires at least: 5.1
5
  Tested up to: 5.2
6
- Stable tag: 4.2.2
7
  Requires PHP: 5.6
8
 
9
  Converts Cyrillic characters in post, page and term slugs to Latin characters.
@@ -92,6 +92,9 @@ Yes you can!
92
 
93
  == Changelog ==
94
 
 
 
 
95
  = 4.2.2 (28.08.2019) =
96
  * Added ACF (Advanced Custom Fields) plugin support
97
  * Added Serbian table
3
  Tags: cyrillic, belorussian, ukrainian, bulgarian, macedonian, georgian, kazakh, latin, l10n, russian, cyr-to-lat, cyr2lat, rustolat, slugs, translations, transliteration
4
  Requires at least: 5.1
5
  Tested up to: 5.2
6
+ Stable tag: 4.2.3
7
  Requires PHP: 5.6
8
 
9
  Converts Cyrillic characters in post, page and term slugs to Latin characters.
92
 
93
  == Changelog ==
94
 
95
+ = 4.2.3 (29.08.2019) =
96
+ * Scoped Symfony polyfill to avoid problems with composer autoloader on some sites.
97
+
98
  = 4.2.2 (28.08.2019) =
99
  * Added ACF (Advanced Custom Fields) plugin support
100
  * Added Serbian table
vendor/a5hleyrich/wp-background-processing/.gitignore DELETED
@@ -1 +0,0 @@
1
- /vendor/
 
vendor/a5hleyrich/wp-background-processing/README.md DELETED
@@ -1,158 +0,0 @@
1
- # WP Background Processing
2
-
3
- WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks. Check out the [example plugin](https://github.com/A5hleyRich/wp-background-processing-example) or read the [accompanying article](https://deliciousbrains.com/background-processing-wordpress/).
4
-
5
- Inspired by [TechCrunch WP Asynchronous Tasks](https://github.com/techcrunch/wp-async-task).
6
-
7
- __Requires PHP 5.2+__
8
-
9
- ### Async Request
10
-
11
- Async requests are useful for pushing slow one-off tasks such as sending emails to a background process. Once the request has been dispatched it will process in the background instantly.
12
-
13
- Extend the `WP_Async_Request` class:
14
-
15
- ```php
16
- class WP_Example_Request extends WP_Async_Request {
17
-
18
- /**
19
- * @var string
20
- */
21
- protected $action = 'example_request';
22
-
23
- /**
24
- * Handle
25
- *
26
- * Override this method to perform any actions required
27
- * during the async request.
28
- */
29
- protected function handle() {
30
- // Actions to perform
31
- }
32
-
33
- }
34
- ```
35
-
36
- ##### `protected $action`
37
-
38
- Should be set to a unique name.
39
-
40
- ##### `protected function handle()`
41
-
42
- Should contain any logic to perform during the non-blocking request. The data passed to the request will be accessible via `$_POST`.
43
-
44
- ##### Dispatching Requests
45
-
46
- Instantiate your request:
47
-
48
- `$this->example_request = new WP_Example_Request();`
49
-
50
- Add data to the request if required:
51
-
52
- `$this->example_request->data( array( 'value1' => $value1, 'value2' => $value2 ) );`
53
-
54
- Fire off the request:
55
-
56
- `$this->example_request->dispatch();`
57
-
58
- Chaining is also supported:
59
-
60
- `$this->example_request->data( array( 'data' => $data ) )->dispatch();`
61
-
62
- ### Background Process
63
-
64
- Background processes work in a similar fashion to async requests but they allow you to queue tasks. Items pushed onto the queue will be processed in the background once the queue has been dispatched. Queues will also scale based on available server resources, so higher end servers will process more items per batch. Once a batch has completed the next batch will start instantly.
65
-
66
- Health checks run by default every 5 minutes to ensure the queue is running when queued items exist. If the queue has failed it will be restarted.
67
-
68
- Queues work on a first in first out basis, which allows additional items to be pushed to the queue even if it’s already processing.
69
-
70
- Extend the `WP_Background_Process` class:
71
-
72
- ```php
73
- class WP_Example_Process extends WP_Background_Process {
74
-
75
- /**
76
- * @var string
77
- */
78
- protected $action = 'example_process';
79
-
80
- /**
81
- * Task
82
- *
83
- * Override this method to perform any actions required on each
84
- * queue item. Return the modified item for further processing
85
- * in the next pass through. Or, return false to remove the
86
- * item from the queue.
87
- *
88
- * @param mixed $item Queue item to iterate over
89
- *
90
- * @return mixed
91
- */
92
- protected function task( $item ) {
93
- // Actions to perform
94
-
95
- return false;
96
- }
97
-
98
- /**
99
- * Complete
100
- *
101
- * Override if applicable, but ensure that the below actions are
102
- * performed, or, call parent::complete().
103
- */
104
- protected function complete() {
105
- parent::complete();
106
-
107
- // Show notice to user or perform some other arbitrary task...
108
- }
109
-
110
- }
111
- ```
112
-
113
- ##### `protected $action`
114
-
115
- Should be set to a unique name.
116
-
117
- ##### `protected function task( $item )`
118
-
119
- Should contain any logic to perform on the queued item. Return `false` to remove the item from the queue or return `$item` to push it back onto the queue for further processing. If the item has been modified and is pushed back onto the queue the current state will be saved before the batch is exited.
120
-
121
- ##### `protected function complete()`
122
-
123
- Optionally contain any logic to perform once the queue has completed.
124
-
125
- ##### Dispatching Processes
126
-
127
- Instantiate your process:
128
-
129
- `$this->example_process = new WP_Example_Process();`
130
-
131
- Push items to the queue:
132
-
133
- ```php
134
- foreach ( $items as $item ) {
135
- $this->example_process->push_to_queue( $item );
136
- }
137
- ```
138
-
139
- Save and dispatch the queue:
140
-
141
- `$this->example_process->save()->dispatch();`
142
-
143
- ### BasicAuth
144
-
145
- If your site is behind BasicAuth, both async requests and background processes will fail to complete. This is because WP Background Processing relies on the [WordPress HTTP API](http://codex.wordpress.org/HTTP_API), which requires you to attach your BasicAuth credentials to requests. The easiest way to do this is using the following filter:
146
-
147
- ```php
148
- function wpbp_http_request_args( $r, $url ) {
149
- $r['headers']['Authorization'] = 'Basic ' . base64_encode( USERNAME . ':' . PASSWORD );
150
-
151
- return $r;
152
- }
153
- add_filter( 'http_request_args', 'wpbp_http_request_args', 10, 2);
154
- ```
155
-
156
- ## License
157
-
158
- [GPLv2+](http://www.gnu.org/licenses/gpl-2.0.html)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/a5hleyrich/wp-background-processing/composer.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "name": "a5hleyrich/wp-background-processing",
3
- "description": "WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks.",
4
- "type": "library",
5
- "require": {
6
- "php": ">=5.2"
7
- },
8
- "license": "GPL-2.0-only",
9
- "authors": [
10
- {
11
- "name": "Ashley Rich",
12
- "email": "hello@ashleyrich.com"
13
- }
14
- ],
15
- "autoload": {
16
- "classmap": [ "classes/" ]
17
- }
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/autoload_classmap.php CHANGED
@@ -100,6 +100,7 @@ return array(
100
  'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
101
  'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
102
  'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
 
103
  'Cyr_To_Lat_ACF' => $baseDir . '/includes/class-cyr-to-lat-acf.php',
104
  'Cyr_To_Lat_Admin_Notices' => $baseDir . '/includes/class-cyr-to-lat-admin-notices.php',
105
  'Cyr_To_Lat_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
@@ -111,7 +112,6 @@ return array(
111
  'Cyr_To_Lat_Settings' => $baseDir . '/includes/class-cyr-to-lat-settings.php',
112
  'Cyr_To_Lat_Term_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
113
  'Cyr_To_Lat_WP_CLI' => $baseDir . '/includes/class-cyr-to-lat-wp-cli.php',
114
- 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',
115
  'WP_Async_Request' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
116
  'WP_Background_Process' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
117
  );
100
  'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
101
  'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
102
  'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
103
+ 'Cyr_To_Lat\\Symfony\\Polyfill\\Mbstring\\Mbstring' => $baseDir . '/lib/polyfill-mbstring/Mbstring.php',
104
  'Cyr_To_Lat_ACF' => $baseDir . '/includes/class-cyr-to-lat-acf.php',
105
  'Cyr_To_Lat_Admin_Notices' => $baseDir . '/includes/class-cyr-to-lat-admin-notices.php',
106
  'Cyr_To_Lat_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
112
  'Cyr_To_Lat_Settings' => $baseDir . '/includes/class-cyr-to-lat-settings.php',
113
  'Cyr_To_Lat_Term_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
114
  'Cyr_To_Lat_WP_CLI' => $baseDir . '/includes/class-cyr-to-lat-wp-cli.php',
 
115
  'WP_Async_Request' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
116
  'WP_Background_Process' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
117
  );
vendor/composer/autoload_files.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- // autoload_files.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
10
- );
 
 
 
 
 
 
 
 
 
 
vendor/composer/autoload_psr4.php CHANGED
@@ -6,6 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
- 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
10
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
11
  );
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
 
9
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
10
  );
vendor/composer/autoload_real.php CHANGED
@@ -47,24 +47,6 @@ class ComposerAutoloaderInit889b56da8e5c956977b4e015c55d5852
47
 
48
  $loader->register(true);
49
 
50
- if ($useStaticLoader) {
51
- $includeFiles = Composer\Autoload\ComposerStaticInit889b56da8e5c956977b4e015c55d5852::$files;
52
- } else {
53
- $includeFiles = require __DIR__ . '/autoload_files.php';
54
- }
55
- foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequire889b56da8e5c956977b4e015c55d5852($fileIdentifier, $file);
57
- }
58
-
59
  return $loader;
60
  }
61
  }
62
-
63
- function composerRequire889b56da8e5c956977b4e015c55d5852($fileIdentifier, $file)
64
- {
65
- if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
- require $file;
67
-
68
- $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
69
- }
70
- }
47
 
48
  $loader->register(true);
49
 
 
 
 
 
 
 
 
 
 
50
  return $loader;
51
  }
52
  }
 
 
 
 
 
 
 
 
 
vendor/composer/autoload_static.php CHANGED
@@ -6,15 +6,7 @@ namespace Composer\Autoload;
6
 
7
  class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
8
  {
9
- public static $files = array (
10
- '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
11
- );
12
-
13
  public static $prefixLengthsPsr4 = array (
14
- 'S' =>
15
- array (
16
- 'Symfony\\Polyfill\\Mbstring\\' => 26,
17
- ),
18
  'C' =>
19
  array (
20
  'Composer\\Installers\\' => 20,
@@ -22,10 +14,6 @@ class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
22
  );
23
 
24
  public static $prefixDirsPsr4 = array (
25
- 'Symfony\\Polyfill\\Mbstring\\' =>
26
- array (
27
- 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
28
- ),
29
  'Composer\\Installers\\' =>
30
  array (
31
  0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
@@ -127,6 +115,7 @@ class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
127
  'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
128
  'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
129
  'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
 
130
  'Cyr_To_Lat_ACF' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-acf.php',
131
  'Cyr_To_Lat_Admin_Notices' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-admin-notices.php',
132
  'Cyr_To_Lat_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
@@ -138,7 +127,6 @@ class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
138
  'Cyr_To_Lat_Settings' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-settings.php',
139
  'Cyr_To_Lat_Term_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
140
  'Cyr_To_Lat_WP_CLI' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-wp-cli.php',
141
- 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',
142
  'WP_Async_Request' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
143
  'WP_Background_Process' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
144
  );
6
 
7
  class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
8
  {
 
 
 
 
9
  public static $prefixLengthsPsr4 = array (
 
 
 
 
10
  'C' =>
11
  array (
12
  'Composer\\Installers\\' => 20,
14
  );
15
 
16
  public static $prefixDirsPsr4 = array (
 
 
 
 
17
  'Composer\\Installers\\' =>
18
  array (
19
  0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
115
  'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
116
  'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
117
  'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
118
+ 'Cyr_To_Lat\\Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/../..' . '/lib/polyfill-mbstring/Mbstring.php',
119
  'Cyr_To_Lat_ACF' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-acf.php',
120
  'Cyr_To_Lat_Admin_Notices' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-admin-notices.php',
121
  'Cyr_To_Lat_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
127
  'Cyr_To_Lat_Settings' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-settings.php',
128
  'Cyr_To_Lat_Term_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
129
  'Cyr_To_Lat_WP_CLI' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-wp-cli.php',
 
130
  'WP_Async_Request' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
131
  'WP_Background_Process' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
132
  );
vendor/composer/installed.json CHANGED
@@ -162,66 +162,5 @@
162
  "zend",
163
  "zikula"
164
  ]
165
- },
166
- {
167
- "name": "symfony/polyfill-mbstring",
168
- "version": "v1.12.0",
169
- "version_normalized": "1.12.0.0",
170
- "source": {
171
- "type": "git",
172
- "url": "https://github.com/symfony/polyfill-mbstring.git",
173
- "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17"
174
- },
175
- "dist": {
176
- "type": "zip",
177
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17",
178
- "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17",
179
- "shasum": ""
180
- },
181
- "require": {
182
- "php": ">=5.3.3"
183
- },
184
- "suggest": {
185
- "ext-mbstring": "For best performance"
186
- },
187
- "time": "2019-08-06T08:03:45+00:00",
188
- "type": "library",
189
- "extra": {
190
- "branch-alias": {
191
- "dev-master": "1.12-dev"
192
- }
193
- },
194
- "installation-source": "source",
195
- "autoload": {
196
- "psr-4": {
197
- "Symfony\\Polyfill\\Mbstring\\": ""
198
- },
199
- "files": [
200
- "bootstrap.php"
201
- ]
202
- },
203
- "notification-url": "https://packagist.org/downloads/",
204
- "license": [
205
- "MIT"
206
- ],
207
- "authors": [
208
- {
209
- "name": "Nicolas Grekas",
210
- "email": "p@tchwork.com"
211
- },
212
- {
213
- "name": "Symfony Community",
214
- "homepage": "https://symfony.com/contributors"
215
- }
216
- ],
217
- "description": "Symfony polyfill for the Mbstring extension",
218
- "homepage": "https://symfony.com",
219
- "keywords": [
220
- "compatibility",
221
- "mbstring",
222
- "polyfill",
223
- "portable",
224
- "shim"
225
- ]
226
  }
227
  ]
162
  "zend",
163
  "zikula"
164
  ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  }
166
  ]
vendor/composer/installers/composer.json DELETED
@@ -1,107 +0,0 @@
1
- {
2
- "name": "composer/installers",
3
- "type": "composer-plugin",
4
- "license": "MIT",
5
- "description": "A multi-framework Composer library installer",
6
- "keywords": [
7
- "installer",
8
- "Aimeos",
9
- "AGL",
10
- "AnnotateCms",
11
- "Attogram",
12
- "Bitrix",
13
- "CakePHP",
14
- "Chef",
15
- "Cockpit",
16
- "CodeIgniter",
17
- "concrete5",
18
- "Craft",
19
- "Croogo",
20
- "DokuWiki",
21
- "Dolibarr",
22
- "Drupal",
23
- "Elgg",
24
- "Eliasis",
25
- "ExpressionEngine",
26
- "eZ Platform",
27
- "FuelPHP",
28
- "Grav",
29
- "Hurad",
30
- "ImageCMS",
31
- "iTop",
32
- "Joomla",
33
- "Kanboard",
34
- "Known",
35
- "Kohana",
36
- "Lan Management System",
37
- "Laravel",
38
- "Lavalite",
39
- "Lithium",
40
- "Magento",
41
- "majima",
42
- "Mako",
43
- "Mautic",
44
- "Maya",
45
- "MODX",
46
- "MODX Evo",
47
- "MediaWiki",
48
- "OXID",
49
- "osclass",
50
- "MODULEWork",
51
- "Moodle",
52
- "Piwik",
53
- "pxcms",
54
- "phpBB",
55
- "Plentymarkets",
56
- "PPI",
57
- "Puppet",
58
- "Porto",
59
- "RadPHP",
60
- "ReIndex",
61
- "Roundcube",
62
- "shopware",
63
- "SilverStripe",
64
- "SMF",
65
- "SyDES",
66
- "symfony",
67
- "Thelia",
68
- "TYPO3",
69
- "WHMCS",
70
- "WolfCMS",
71
- "WordPress",
72
- "YAWIK",
73
- "Zend",
74
- "Zikula"
75
- ],
76
- "homepage": "https://composer.github.io/installers/",
77
- "authors": [
78
- {
79
- "name": "Kyle Robinson Young",
80
- "email": "kyle@dontkry.com",
81
- "homepage": "https://github.com/shama"
82
- }
83
- ],
84
- "autoload": {
85
- "psr-4": { "Composer\\Installers\\": "src/Composer/Installers" }
86
- },
87
- "extra": {
88
- "class": "Composer\\Installers\\Plugin",
89
- "branch-alias": {
90
- "dev-master": "1.0-dev"
91
- }
92
- },
93
- "replace": {
94
- "shama/baton": "*",
95
- "roundcube/plugin-installer": "*"
96
- },
97
- "require": {
98
- "composer-plugin-api": "^1.0"
99
- },
100
- "require-dev": {
101
- "composer/composer": "1.0.*@dev",
102
- "phpunit/phpunit": "^4.8.36"
103
- },
104
- "scripts": {
105
- "test": "phpunit"
106
- }
107
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AglInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AglInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'More/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $vars['name'] = preg_replace_callback('/(?:^|_|-)(.?)/', function ($matches) {
16
- return strtoupper($matches[1]);
17
- }, $vars['name']);
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AimeosInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'ext/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AnnotateCmsInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'addons/modules/{$name}/',
8
- 'component' => 'addons/components/{$name}/',
9
- 'service' => 'addons/services/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AsgardInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'Modules/{$name}/',
8
- 'theme' => 'Themes/{$name}/'
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * For package type asgard-module, cut off a trailing '-plugin' if present.
15
- *
16
- * For package type asgard-theme, cut off a trailing '-theme' if present.
17
- *
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- if ($vars['type'] === 'asgard-module') {
22
- return $this->inflectPluginVars($vars);
23
- }
24
-
25
- if ($vars['type'] === 'asgard-theme') {
26
- return $this->inflectThemeVars($vars);
27
- }
28
-
29
- return $vars;
30
- }
31
-
32
- protected function inflectPluginVars($vars)
33
- {
34
- $vars['name'] = preg_replace('/-module$/', '', $vars['name']);
35
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
36
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
37
-
38
- return $vars;
39
- }
40
-
41
- protected function inflectThemeVars($vars)
42
- {
43
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
44
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
45
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
46
-
47
- return $vars;
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AttogramInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/BaseInstaller.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\IO\IOInterface;
5
- use Composer\Composer;
6
- use Composer\Package\PackageInterface;
7
-
8
- abstract class BaseInstaller
9
- {
10
- protected $locations = array();
11
- protected $composer;
12
- protected $package;
13
- protected $io;
14
-
15
- /**
16
- * Initializes base installer.
17
- *
18
- * @param PackageInterface $package
19
- * @param Composer $composer
20
- * @param IOInterface $io
21
- */
22
- public function __construct(PackageInterface $package = null, Composer $composer = null, IOInterface $io = null)
23
- {
24
- $this->composer = $composer;
25
- $this->package = $package;
26
- $this->io = $io;
27
- }
28
-
29
- /**
30
- * Return the install path based on package type.
31
- *
32
- * @param PackageInterface $package
33
- * @param string $frameworkType
34
- * @return string
35
- */
36
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
37
- {
38
- $type = $this->package->getType();
39
-
40
- $prettyName = $this->package->getPrettyName();
41
- if (strpos($prettyName, '/') !== false) {
42
- list($vendor, $name) = explode('/', $prettyName);
43
- } else {
44
- $vendor = '';
45
- $name = $prettyName;
46
- }
47
-
48
- $availableVars = $this->inflectPackageVars(compact('name', 'vendor', 'type'));
49
-
50
- $extra = $package->getExtra();
51
- if (!empty($extra['installer-name'])) {
52
- $availableVars['name'] = $extra['installer-name'];
53
- }
54
-
55
- if ($this->composer->getPackage()) {
56
- $extra = $this->composer->getPackage()->getExtra();
57
- if (!empty($extra['installer-paths'])) {
58
- $customPath = $this->mapCustomInstallPaths($extra['installer-paths'], $prettyName, $type, $vendor);
59
- if ($customPath !== false) {
60
- return $this->templatePath($customPath, $availableVars);
61
- }
62
- }
63
- }
64
-
65
- $packageType = substr($type, strlen($frameworkType) + 1);
66
- $locations = $this->getLocations();
67
- if (!isset($locations[$packageType])) {
68
- throw new \InvalidArgumentException(sprintf('Package type "%s" is not supported', $type));
69
- }
70
-
71
- return $this->templatePath($locations[$packageType], $availableVars);
72
- }
73
-
74
- /**
75
- * For an installer to override to modify the vars per installer.
76
- *
77
- * @param array $vars
78
- * @return array
79
- */
80
- public function inflectPackageVars($vars)
81
- {
82
- return $vars;
83
- }
84
-
85
- /**
86
- * Gets the installer's locations
87
- *
88
- * @return array
89
- */
90
- public function getLocations()
91
- {
92
- return $this->locations;
93
- }
94
-
95
- /**
96
- * Replace vars in a path
97
- *
98
- * @param string $path
99
- * @param array $vars
100
- * @return string
101
- */
102
- protected function templatePath($path, array $vars = array())
103
- {
104
- if (strpos($path, '{') !== false) {
105
- extract($vars);
106
- preg_match_all('@\{\$([A-Za-z0-9_]*)\}@i', $path, $matches);
107
- if (!empty($matches[1])) {
108
- foreach ($matches[1] as $var) {
109
- $path = str_replace('{$' . $var . '}', $$var, $path);
110
- }
111
- }
112
- }
113
-
114
- return $path;
115
- }
116
-
117
- /**
118
- * Search through a passed paths array for a custom install path.
119
- *
120
- * @param array $paths
121
- * @param string $name
122
- * @param string $type
123
- * @param string $vendor = NULL
124
- * @return string
125
- */
126
- protected function mapCustomInstallPaths(array $paths, $name, $type, $vendor = NULL)
127
- {
128
- foreach ($paths as $path => $names) {
129
- if (in_array($name, $names) || in_array('type:' . $type, $names) || in_array('vendor:' . $vendor, $names)) {
130
- return $path;
131
- }
132
- }
133
-
134
- return false;
135
- }
136
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php DELETED
@@ -1,126 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- use Composer\Util\Filesystem;
6
-
7
- /**
8
- * Installer for Bitrix Framework. Supported types of extensions:
9
- * - `bitrix-d7-module` — copy the module to directory `bitrix/modules/<vendor>.<name>`.
10
- * - `bitrix-d7-component` — copy the component to directory `bitrix/components/<vendor>/<name>`.
11
- * - `bitrix-d7-template` — copy the template to directory `bitrix/templates/<vendor>_<name>`.
12
- *
13
- * You can set custom path to directory with Bitrix kernel in `composer.json`:
14
- *
15
- * ```json
16
- * {
17
- * "extra": {
18
- * "bitrix-dir": "s1/bitrix"
19
- * }
20
- * }
21
- * ```
22
- *
23
- * @author Nik Samokhvalov <nik@samokhvalov.info>
24
- * @author Denis Kulichkin <onexhovia@gmail.com>
25
- */
26
- class BitrixInstaller extends BaseInstaller
27
- {
28
- protected $locations = array(
29
- 'module' => '{$bitrix_dir}/modules/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
30
- 'component' => '{$bitrix_dir}/components/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
31
- 'theme' => '{$bitrix_dir}/templates/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken)
32
- 'd7-module' => '{$bitrix_dir}/modules/{$vendor}.{$name}/',
33
- 'd7-component' => '{$bitrix_dir}/components/{$vendor}/{$name}/',
34
- 'd7-template' => '{$bitrix_dir}/templates/{$vendor}_{$name}/',
35
- );
36
-
37
- /**
38
- * @var array Storage for informations about duplicates at all the time of installation packages.
39
- */
40
- private static $checkedDuplicates = array();
41
-
42
- /**
43
- * {@inheritdoc}
44
- */
45
- public function inflectPackageVars($vars)
46
- {
47
- if ($this->composer->getPackage()) {
48
- $extra = $this->composer->getPackage()->getExtra();
49
-
50
- if (isset($extra['bitrix-dir'])) {
51
- $vars['bitrix_dir'] = $extra['bitrix-dir'];
52
- }
53
- }
54
-
55
- if (!isset($vars['bitrix_dir'])) {
56
- $vars['bitrix_dir'] = 'bitrix';
57
- }
58
-
59
- return parent::inflectPackageVars($vars);
60
- }
61
-
62
- /**
63
- * {@inheritdoc}
64
- */
65
- protected function templatePath($path, array $vars = array())
66
- {
67
- $templatePath = parent::templatePath($path, $vars);
68
- $this->checkDuplicates($templatePath, $vars);
69
-
70
- return $templatePath;
71
- }
72
-
73
- /**
74
- * Duplicates search packages.
75
- *
76
- * @param string $path
77
- * @param array $vars
78
- */
79
- protected function checkDuplicates($path, array $vars = array())
80
- {
81
- $packageType = substr($vars['type'], strlen('bitrix') + 1);
82
- $localDir = explode('/', $vars['bitrix_dir']);
83
- array_pop($localDir);
84
- $localDir[] = 'local';
85
- $localDir = implode('/', $localDir);
86
-
87
- $oldPath = str_replace(
88
- array('{$bitrix_dir}', '{$name}'),
89
- array($localDir, $vars['name']),
90
- $this->locations[$packageType]
91
- );
92
-
93
- if (in_array($oldPath, static::$checkedDuplicates)) {
94
- return;
95
- }
96
-
97
- if ($oldPath !== $path && file_exists($oldPath) && $this->io && $this->io->isInteractive()) {
98
-
99
- $this->io->writeError(' <error>Duplication of packages:</error>');
100
- $this->io->writeError(' <info>Package ' . $oldPath . ' will be called instead package ' . $path . '</info>');
101
-
102
- while (true) {
103
- switch ($this->io->ask(' <info>Delete ' . $oldPath . ' [y,n,?]?</info> ', '?')) {
104
- case 'y':
105
- $fs = new Filesystem();
106
- $fs->removeDirectory($oldPath);
107
- break 2;
108
-
109
- case 'n':
110
- break 2;
111
-
112
- case '?':
113
- default:
114
- $this->io->writeError(array(
115
- ' y - delete package ' . $oldPath . ' and to continue with the installation',
116
- ' n - don\'t delete and to continue with the installation',
117
- ));
118
- $this->io->writeError(' ? - print help');
119
- break;
120
- }
121
- }
122
- }
123
-
124
- static::$checkedDuplicates[] = $oldPath;
125
- }
126
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class BonefishInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'package' => 'Packages/{$vendor}/{$name}/'
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php DELETED
@@ -1,82 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\DependencyResolver\Pool;
5
-
6
- class CakePHPInstaller extends BaseInstaller
7
- {
8
- protected $locations = array(
9
- 'plugin' => 'Plugin/{$name}/',
10
- );
11
-
12
- /**
13
- * Format package name to CamelCase
14
- */
15
- public function inflectPackageVars($vars)
16
- {
17
- if ($this->matchesCakeVersion('>=', '3.0.0')) {
18
- return $vars;
19
- }
20
-
21
- $nameParts = explode('/', $vars['name']);
22
- foreach ($nameParts as &$value) {
23
- $value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
24
- $value = str_replace(array('-', '_'), ' ', $value);
25
- $value = str_replace(' ', '', ucwords($value));
26
- }
27
- $vars['name'] = implode('/', $nameParts);
28
-
29
- return $vars;
30
- }
31
-
32
- /**
33
- * Change the default plugin location when cakephp >= 3.0
34
- */
35
- public function getLocations()
36
- {
37
- if ($this->matchesCakeVersion('>=', '3.0.0')) {
38
- $this->locations['plugin'] = $this->composer->getConfig()->get('vendor-dir') . '/{$vendor}/{$name}/';
39
- }
40
- return $this->locations;
41
- }
42
-
43
- /**
44
- * Check if CakePHP version matches against a version
45
- *
46
- * @param string $matcher
47
- * @param string $version
48
- * @return bool
49
- */
50
- protected function matchesCakeVersion($matcher, $version)
51
- {
52
- if (class_exists('Composer\Semver\Constraint\MultiConstraint')) {
53
- $multiClass = 'Composer\Semver\Constraint\MultiConstraint';
54
- $constraintClass = 'Composer\Semver\Constraint\Constraint';
55
- } else {
56
- $multiClass = 'Composer\Package\LinkConstraint\MultiConstraint';
57
- $constraintClass = 'Composer\Package\LinkConstraint\VersionConstraint';
58
- }
59
-
60
- $repositoryManager = $this->composer->getRepositoryManager();
61
- if ($repositoryManager) {
62
- $repos = $repositoryManager->getLocalRepository();
63
- if (!$repos) {
64
- return false;
65
- }
66
- $cake3 = new $multiClass(array(
67
- new $constraintClass($matcher, $version),
68
- new $constraintClass('!=', '9999999-dev'),
69
- ));
70
- $pool = new Pool('dev');
71
- $pool->addRepository($repos);
72
- $packages = $pool->whatProvides('cakephp/cakephp');
73
- foreach ($packages as $package) {
74
- $installed = new $constraintClass('=', $package->getVersion());
75
- if ($cake3->matches($installed)) {
76
- return true;
77
- }
78
- }
79
- }
80
- return false;
81
- }
82
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ChefInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ChefInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'cookbook' => 'Chef/{$vendor}/{$name}/',
8
- 'role' => 'Chef/roles/{$name}/',
9
- );
10
- }
11
-
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CiviCrmInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'ext' => 'ext/{$name}/'
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ClanCatsFrameworkInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'ship' => 'CCF/orbit/{$name}/',
8
- 'theme' => 'CCF/app/themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CockpitInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'cockpit/modules/addons/{$name}/',
8
- );
9
-
10
- /**
11
- * Format module name.
12
- *
13
- * Strip `module-` prefix from package name.
14
- *
15
- * @param array @vars
16
- *
17
- * @return array
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- if ($vars['type'] == 'cockpit-module') {
22
- return $this->inflectModuleVars($vars);
23
- }
24
-
25
- return $vars;
26
- }
27
-
28
- public function inflectModuleVars($vars)
29
- {
30
- $vars['name'] = ucfirst(preg_replace('/cockpit-/i', '', $vars['name']));
31
-
32
- return $vars;
33
- }
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CodeIgniterInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'application/libraries/{$name}/',
8
- 'third-party' => 'application/third_party/{$name}/',
9
- 'module' => 'application/modules/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class Concrete5Installer extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'core' => 'concrete/',
8
- 'block' => 'application/blocks/{$name}/',
9
- 'package' => 'packages/{$name}/',
10
- 'theme' => 'application/themes/{$name}/',
11
- 'update' => 'updates/{$name}/',
12
- );
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CraftInstaller.php DELETED
@@ -1,35 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Installer for Craft Plugins
6
- */
7
- class CraftInstaller extends BaseInstaller
8
- {
9
- const NAME_PREFIX = 'craft';
10
- const NAME_SUFFIX = 'plugin';
11
-
12
- protected $locations = array(
13
- 'plugin' => 'craft/plugins/{$name}/',
14
- );
15
-
16
- /**
17
- * Strip `craft-` prefix and/or `-plugin` suffix from package names
18
- *
19
- * @param array $vars
20
- *
21
- * @return array
22
- */
23
- final public function inflectPackageVars($vars)
24
- {
25
- return $this->inflectPluginVars($vars);
26
- }
27
-
28
- private function inflectPluginVars($vars)
29
- {
30
- $vars['name'] = preg_replace('/-' . self::NAME_SUFFIX . '$/i', '', $vars['name']);
31
- $vars['name'] = preg_replace('/^' . self::NAME_PREFIX . '-/i', '', $vars['name']);
32
-
33
- return $vars;
34
- }
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CroogoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'Plugin/{$name}/',
8
- 'theme' => 'View/Themed/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- $vars['name'] = strtolower(str_replace(array('-', '_'), ' ', $vars['name']));
17
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class DecibelInstaller extends BaseInstaller
5
- {
6
- /** @var array */
7
- protected $locations = array(
8
- 'app' => 'app/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DframeInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class DframeInstaller extends BaseInstaller
6
- {
7
- protected $locations = array(
8
- 'module' => 'modules/{$vendor}/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php DELETED
@@ -1,50 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class DokuWikiInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'lib/plugins/{$name}/',
8
- 'template' => 'lib/tpl/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * For package type dokuwiki-plugin, cut off a trailing '-plugin',
15
- * or leading dokuwiki_ if present.
16
- *
17
- * For package type dokuwiki-template, cut off a trailing '-template' if present.
18
- *
19
- */
20
- public function inflectPackageVars($vars)
21
- {
22
-
23
- if ($vars['type'] === 'dokuwiki-plugin') {
24
- return $this->inflectPluginVars($vars);
25
- }
26
-
27
- if ($vars['type'] === 'dokuwiki-template') {
28
- return $this->inflectTemplateVars($vars);
29
- }
30
-
31
- return $vars;
32
- }
33
-
34
- protected function inflectPluginVars($vars)
35
- {
36
- $vars['name'] = preg_replace('/-plugin$/', '', $vars['name']);
37
- $vars['name'] = preg_replace('/^dokuwiki_?-?/', '', $vars['name']);
38
-
39
- return $vars;
40
- }
41
-
42
- protected function inflectTemplateVars($vars)
43
- {
44
- $vars['name'] = preg_replace('/-template$/', '', $vars['name']);
45
- $vars['name'] = preg_replace('/^dokuwiki_?-?/', '', $vars['name']);
46
-
47
- return $vars;
48
- }
49
-
50
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Class DolibarrInstaller
6
- *
7
- * @package Composer\Installers
8
- * @author Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
9
- */
10
- class DolibarrInstaller extends BaseInstaller
11
- {
12
- //TODO: Add support for scripts and themes
13
- protected $locations = array(
14
- 'module' => 'htdocs/custom/{$name}/',
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php DELETED
@@ -1,20 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class DrupalInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'core' => 'core/',
8
- 'module' => 'modules/{$name}/',
9
- 'theme' => 'themes/{$name}/',
10
- 'library' => 'libraries/{$name}/',
11
- 'profile' => 'profiles/{$name}/',
12
- 'drush' => 'drush/{$name}/',
13
- 'custom-theme' => 'themes/custom/{$name}/',
14
- 'custom-module' => 'modules/custom/{$name}/',
15
- 'custom-profile' => 'profiles/custom/{$name}/',
16
- 'drupal-multisite' => 'sites/{$name}/',
17
- 'console' => 'console/{$name}/',
18
- 'console-language' => 'console/language/{$name}/',
19
- );
20
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ElggInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ElggInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'mod/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class EliasisInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'component' => 'components/{$name}/',
8
- 'module' => 'modules/{$name}/',
9
- 'plugin' => 'plugins/{$name}/',
10
- 'template' => 'templates/{$name}/',
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Package\PackageInterface;
5
-
6
- class ExpressionEngineInstaller extends BaseInstaller
7
- {
8
-
9
- protected $locations = array();
10
-
11
- private $ee2Locations = array(
12
- 'addon' => 'system/expressionengine/third_party/{$name}/',
13
- 'theme' => 'themes/third_party/{$name}/',
14
- );
15
-
16
- private $ee3Locations = array(
17
- 'addon' => 'system/user/addons/{$name}/',
18
- 'theme' => 'themes/user/{$name}/',
19
- );
20
-
21
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
22
- {
23
-
24
- $version = "{$frameworkType}Locations";
25
- $this->locations = $this->$version;
26
-
27
- return parent::getInstallPath($package, $frameworkType);
28
- }
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class EzPlatformInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'meta-assets' => 'web/assets/ezplatform/',
8
- 'assets' => 'web/assets/ezplatform/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/FuelInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class FuelInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'fuel/app/modules/{$name}/',
8
- 'package' => 'fuel/packages/{$name}/',
9
- 'theme' => 'fuel/app/themes/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class FuelphpInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'component' => 'components/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/GravInstaller.php DELETED
@@ -1,30 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class GravInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'user/plugins/{$name}/',
8
- 'theme' => 'user/themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name
13
- *
14
- * @param array $vars
15
- *
16
- * @return array
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- $restrictedWords = implode('|', array_keys($this->locations));
21
-
22
- $vars['name'] = strtolower($vars['name']);
23
- $vars['name'] = preg_replace('/^(?:grav-)?(?:(?:'.$restrictedWords.')-)?(.*?)(?:-(?:'.$restrictedWords.'))?$/ui',
24
- '$1',
25
- $vars['name']
26
- );
27
-
28
- return $vars;
29
- }
30
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/HuradInstaller.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class HuradInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- 'theme' => 'plugins/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- $nameParts = explode('/', $vars['name']);
17
- foreach ($nameParts as &$value) {
18
- $value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
19
- $value = str_replace(array('-', '_'), ' ', $value);
20
- $value = str_replace(' ', '', ucwords($value));
21
- }
22
- $vars['name'] = implode('/', $nameParts);
23
- return $vars;
24
- }
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ImageCMSInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'template' => 'templates/{$name}/',
8
- 'module' => 'application/modules/{$name}/',
9
- 'library' => 'application/libraries/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Installer.php DELETED
@@ -1,278 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- use Composer\Composer;
6
- use Composer\Installer\BinaryInstaller;
7
- use Composer\Installer\LibraryInstaller;
8
- use Composer\IO\IOInterface;
9
- use Composer\Package\PackageInterface;
10
- use Composer\Repository\InstalledRepositoryInterface;
11
- use Composer\Util\Filesystem;
12
-
13
- class Installer extends LibraryInstaller
14
- {
15
-
16
- /**
17
- * Package types to installer class map
18
- *
19
- * @var array
20
- */
21
- private $supportedTypes = array(
22
- 'aimeos' => 'AimeosInstaller',
23
- 'asgard' => 'AsgardInstaller',
24
- 'attogram' => 'AttogramInstaller',
25
- 'agl' => 'AglInstaller',
26
- 'annotatecms' => 'AnnotateCmsInstaller',
27
- 'bitrix' => 'BitrixInstaller',
28
- 'bonefish' => 'BonefishInstaller',
29
- 'cakephp' => 'CakePHPInstaller',
30
- 'chef' => 'ChefInstaller',
31
- 'civicrm' => 'CiviCrmInstaller',
32
- 'ccframework' => 'ClanCatsFrameworkInstaller',
33
- 'cockpit' => 'CockpitInstaller',
34
- 'codeigniter' => 'CodeIgniterInstaller',
35
- 'concrete5' => 'Concrete5Installer',
36
- 'craft' => 'CraftInstaller',
37
- 'croogo' => 'CroogoInstaller',
38
- 'dframe' => 'DframeInstaller',
39
- 'dokuwiki' => 'DokuWikiInstaller',
40
- 'dolibarr' => 'DolibarrInstaller',
41
- 'decibel' => 'DecibelInstaller',
42
- 'drupal' => 'DrupalInstaller',
43
- 'elgg' => 'ElggInstaller',
44
- 'eliasis' => 'EliasisInstaller',
45
- 'ee3' => 'ExpressionEngineInstaller',
46
- 'ee2' => 'ExpressionEngineInstaller',
47
- 'ezplatform' => 'EzPlatformInstaller',
48
- 'fuel' => 'FuelInstaller',
49
- 'fuelphp' => 'FuelphpInstaller',
50
- 'grav' => 'GravInstaller',
51
- 'hurad' => 'HuradInstaller',
52
- 'imagecms' => 'ImageCMSInstaller',
53
- 'itop' => 'ItopInstaller',
54
- 'joomla' => 'JoomlaInstaller',
55
- 'kanboard' => 'KanboardInstaller',
56
- 'kirby' => 'KirbyInstaller',
57
- 'known' => 'KnownInstaller',
58
- 'kodicms' => 'KodiCMSInstaller',
59
- 'kohana' => 'KohanaInstaller',
60
- 'lms' => 'LanManagementSystemInstaller',
61
- 'laravel' => 'LaravelInstaller',
62
- 'lavalite' => 'LavaLiteInstaller',
63
- 'lithium' => 'LithiumInstaller',
64
- 'magento' => 'MagentoInstaller',
65
- 'majima' => 'MajimaInstaller',
66
- 'mako' => 'MakoInstaller',
67
- 'maya' => 'MayaInstaller',
68
- 'mautic' => 'MauticInstaller',
69
- 'mediawiki' => 'MediaWikiInstaller',
70
- 'microweber' => 'MicroweberInstaller',
71
- 'modulework' => 'MODULEWorkInstaller',
72
- 'modx' => 'ModxInstaller',
73
- 'modxevo' => 'MODXEvoInstaller',
74
- 'moodle' => 'MoodleInstaller',
75
- 'october' => 'OctoberInstaller',
76
- 'ontowiki' => 'OntoWikiInstaller',
77
- 'oxid' => 'OxidInstaller',
78
- 'osclass' => 'OsclassInstaller',
79
- 'pxcms' => 'PxcmsInstaller',
80
- 'phpbb' => 'PhpBBInstaller',
81
- 'pimcore' => 'PimcoreInstaller',
82
- 'piwik' => 'PiwikInstaller',
83
- 'plentymarkets'=> 'PlentymarketsInstaller',
84
- 'ppi' => 'PPIInstaller',
85
- 'puppet' => 'PuppetInstaller',
86
- 'radphp' => 'RadPHPInstaller',
87
- 'phifty' => 'PhiftyInstaller',
88
- 'porto' => 'PortoInstaller',
89
- 'redaxo' => 'RedaxoInstaller',
90
- 'redaxo5' => 'Redaxo5Installer',
91
- 'reindex' => 'ReIndexInstaller',
92
- 'roundcube' => 'RoundcubeInstaller',
93
- 'shopware' => 'ShopwareInstaller',
94
- 'sitedirect' => 'SiteDirectInstaller',
95
- 'silverstripe' => 'SilverStripeInstaller',
96
- 'smf' => 'SMFInstaller',
97
- 'sydes' => 'SyDESInstaller',
98
- 'symfony1' => 'Symfony1Installer',
99
- 'tao' => 'TaoInstaller',
100
- 'thelia' => 'TheliaInstaller',
101
- 'tusk' => 'TuskInstaller',
102
- 'typo3-cms' => 'TYPO3CmsInstaller',
103
- 'typo3-flow' => 'TYPO3FlowInstaller',
104
- 'userfrosting' => 'UserFrostingInstaller',
105
- 'vanilla' => 'VanillaInstaller',
106
- 'whmcs' => 'WHMCSInstaller',
107
- 'wolfcms' => 'WolfCMSInstaller',
108
- 'wordpress' => 'WordPressInstaller',
109
- 'yawik' => 'YawikInstaller',
110
- 'zend' => 'ZendInstaller',
111
- 'zikula' => 'ZikulaInstaller',
112
- 'prestashop' => 'PrestashopInstaller'
113
- );
114
-
115
- /**
116
- * Installer constructor.
117
- *
118
- * Disables installers specified in main composer extra installer-disable
119
- * list
120
- *
121
- * @param IOInterface $io
122
- * @param Composer $composer
123
- * @param string $type
124
- * @param Filesystem|null $filesystem
125
- * @param BinaryInstaller|null $binaryInstaller
126
- */
127
- public function __construct(
128
- IOInterface $io,
129
- Composer $composer,
130
- $type = 'library',
131
- Filesystem $filesystem = null,
132
- BinaryInstaller $binaryInstaller = null
133
- ) {
134
- parent::__construct($io, $composer, $type, $filesystem,
135
- $binaryInstaller);
136
- $this->removeDisabledInstallers();
137
- }
138
-
139
- /**
140
- * {@inheritDoc}
141
- */
142
- public function getInstallPath(PackageInterface $package)
143
- {
144
- $type = $package->getType();
145
- $frameworkType = $this->findFrameworkType($type);
146
-
147
- if ($frameworkType === false) {
148
- throw new \InvalidArgumentException(
149
- 'Sorry the package type of this package is not yet supported.'
150
- );
151
- }
152
-
153
- $class = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
154
- $installer = new $class($package, $this->composer, $this->getIO());
155
-
156
- return $installer->getInstallPath($package, $frameworkType);
157
- }
158
-
159
- public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
160
- {
161
- parent::uninstall($repo, $package);
162
- $installPath = $this->getPackageBasePath($package);
163
- $this->io->write(sprintf('Deleting %s - %s', $installPath, !file_exists($installPath) ? '<comment>deleted</comment>' : '<error>not deleted</error>'));
164
- }
165
-
166
- /**
167
- * {@inheritDoc}
168
- */
169
- public function supports($packageType)
170
- {
171
- $frameworkType = $this->findFrameworkType($packageType);
172
-
173
- if ($frameworkType === false) {
174
- return false;
175
- }
176
-
177
- $locationPattern = $this->getLocationPattern($frameworkType);
178
-
179
- return preg_match('#' . $frameworkType . '-' . $locationPattern . '#', $packageType, $matches) === 1;
180
- }
181
-
182
- /**
183
- * Finds a supported framework type if it exists and returns it
184
- *
185
- * @param string $type
186
- * @return string
187
- */
188
- protected function findFrameworkType($type)
189
- {
190
- $frameworkType = false;
191
-
192
- krsort($this->supportedTypes);
193
-
194
- foreach ($this->supportedTypes as $key => $val) {
195
- if ($key === substr($type, 0, strlen($key))) {
196
- $frameworkType = substr($type, 0, strlen($key));
197
- break;
198
- }
199
- }
200
-
201
- return $frameworkType;
202
- }
203
-
204
- /**
205
- * Get the second part of the regular expression to check for support of a
206
- * package type
207
- *
208
- * @param string $frameworkType
209
- * @return string
210
- */
211
- protected function getLocationPattern($frameworkType)
212
- {
213
- $pattern = false;
214
- if (!empty($this->supportedTypes[$frameworkType])) {
215
- $frameworkClass = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
216
- /** @var BaseInstaller $framework */
217
- $framework = new $frameworkClass(null, $this->composer, $this->getIO());
218
- $locations = array_keys($framework->getLocations());
219
- $pattern = $locations ? '(' . implode('|', $locations) . ')' : false;
220
- }
221
-
222
- return $pattern ? : '(\w+)';
223
- }
224
-
225
- /**
226
- * Get I/O object
227
- *
228
- * @return IOInterface
229
- */
230
- private function getIO()
231
- {
232
- return $this->io;
233
- }
234
-
235
- /**
236
- * Look for installers set to be disabled in composer's extra config and
237
- * remove them from the list of supported installers.
238
- *
239
- * Globals:
240
- * - true, "all", and "*" - disable all installers.
241
- * - false - enable all installers (useful with
242
- * wikimedia/composer-merge-plugin or similar)
243
- *
244
- * @return void
245
- */
246
- protected function removeDisabledInstallers()
247
- {
248
- $extra = $this->composer->getPackage()->getExtra();
249
-
250
- if (!isset($extra['installer-disable']) || $extra['installer-disable'] === false) {
251
- // No installers are disabled
252
- return;
253
- }
254
-
255
- // Get installers to disable
256
- $disable = $extra['installer-disable'];
257
-
258
- // Ensure $disabled is an array
259
- if (!is_array($disable)) {
260
- $disable = array($disable);
261
- }
262
-
263
- // Check which installers should be disabled
264
- $all = array(true, "all", "*");
265
- $intersect = array_intersect($all, $disable);
266
- if (!empty($intersect)) {
267
- // Disable all installers
268
- $this->supportedTypes = array();
269
- } else {
270
- // Disable specified installers
271
- foreach ($disable as $key => $installer) {
272
- if (is_string($installer) && key_exists($installer, $this->supportedTypes)) {
273
- unset($this->supportedTypes[$installer]);
274
- }
275
- }
276
- }
277
- }
278
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ItopInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ItopInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'extensions/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class JoomlaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'component' => 'components/{$name}/',
8
- 'module' => 'modules/{$name}/',
9
- 'template' => 'templates/{$name}/',
10
- 'plugin' => 'plugins/{$name}/',
11
- 'library' => 'libraries/{$name}/',
12
- );
13
-
14
- // TODO: Add inflector for mod_ and com_ names
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php DELETED
@@ -1,18 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- *
6
- * Installer for kanboard plugins
7
- *
8
- * kanboard.net
9
- *
10
- * Class KanboardInstaller
11
- * @package Composer\Installers
12
- */
13
- class KanboardInstaller extends BaseInstaller
14
- {
15
- protected $locations = array(
16
- 'plugin' => 'plugins/{$name}/',
17
- );
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KirbyInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'site/plugins/{$name}/',
8
- 'field' => 'site/fields/{$name}/',
9
- 'tag' => 'site/tags/{$name}/'
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KnownInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KnownInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'IdnoPlugins/{$name}/',
8
- 'theme' => 'Themes/{$name}/',
9
- 'console' => 'ConsolePlugins/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KodiCMSInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'cms/plugins/{$name}/',
8
- 'media' => 'cms/media/vendor/{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KohanaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class LanManagementSystemInstaller extends BaseInstaller
6
- {
7
-
8
- protected $locations = array(
9
- 'plugin' => 'plugins/{$name}/',
10
- 'template' => 'templates/{$name}/',
11
- 'document-template' => 'documents/templates/{$name}/',
12
- 'userpanel-module' => 'userpanel/modules/{$name}/',
13
- );
14
-
15
- /**
16
- * Format package name to CamelCase
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
21
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
22
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
23
-
24
- return $vars;
25
- }
26
-
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LaravelInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'libraries/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LavaLiteInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'package' => 'packages/{$vendor}/{$name}/',
8
- 'theme' => 'public/themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LithiumInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'libraries/{$name}/',
8
- 'source' => 'libraries/_source/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MODULEWorkInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle MODX Evolution specifics when installing packages.
6
- */
7
- class MODXEvoInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'snippet' => 'assets/snippets/{$name}/',
11
- 'plugin' => 'assets/plugins/{$name}/',
12
- 'module' => 'assets/modules/{$name}/',
13
- 'template' => 'assets/templates/{$name}/',
14
- 'lib' => 'assets/lib/{$name}/'
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MagentoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'theme' => 'app/design/frontend/{$name}/',
8
- 'skin' => 'skin/frontend/default/{$name}/',
9
- 'library' => 'lib/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php DELETED
@@ -1,37 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin/theme installer for majima
6
- * @author David Neustadt
7
- */
8
- class MajimaInstaller extends BaseInstaller
9
- {
10
- protected $locations = array(
11
- 'plugin' => 'plugins/{$name}/',
12
- );
13
-
14
- /**
15
- * Transforms the names
16
- * @param array $vars
17
- * @return array
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- return $this->correctPluginName($vars);
22
- }
23
-
24
- /**
25
- * Change hyphenated names to camelcase
26
- * @param array $vars
27
- * @return array
28
- */
29
- private function correctPluginName($vars)
30
- {
31
- $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
32
- return strtoupper($matches[0][1]);
33
- }, $vars['name']);
34
- $vars['name'] = ucfirst($camelCasedName);
35
- return $vars;
36
- }
37
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MakoInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MakoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'package' => 'app/packages/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MauticInstaller.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MauticInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name of mautic-plugins to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- if ($vars['type'] == 'mautic-plugin') {
17
- $vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
18
- return strtoupper($matches[0][1]);
19
- }, ucfirst($vars['name']));
20
- }
21
-
22
- return $vars;
23
- }
24
-
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MayaInstaller.php DELETED
@@ -1,33 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MayaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name.
12
- *
13
- * For package type maya-module, cut off a trailing '-module' if present.
14
- *
15
- */
16
- public function inflectPackageVars($vars)
17
- {
18
- if ($vars['type'] === 'maya-module') {
19
- return $this->inflectModuleVars($vars);
20
- }
21
-
22
- return $vars;
23
- }
24
-
25
- protected function inflectModuleVars($vars)
26
- {
27
- $vars['name'] = preg_replace('/-module$/', '', $vars['name']);
28
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
29
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
30
-
31
- return $vars;
32
- }
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php DELETED
@@ -1,51 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MediaWikiInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'core' => 'core/',
8
- 'extension' => 'extensions/{$name}/',
9
- 'skin' => 'skins/{$name}/',
10
- );
11
-
12
- /**
13
- * Format package name.
14
- *
15
- * For package type mediawiki-extension, cut off a trailing '-extension' if present and transform
16
- * to CamelCase keeping existing uppercase chars.
17
- *
18
- * For package type mediawiki-skin, cut off a trailing '-skin' if present.
19
- *
20
- */
21
- public function inflectPackageVars($vars)
22
- {
23
-
24
- if ($vars['type'] === 'mediawiki-extension') {
25
- return $this->inflectExtensionVars($vars);
26
- }
27
-
28
- if ($vars['type'] === 'mediawiki-skin') {
29
- return $this->inflectSkinVars($vars);
30
- }
31
-
32
- return $vars;
33
- }
34
-
35
- protected function inflectExtensionVars($vars)
36
- {
37
- $vars['name'] = preg_replace('/-extension$/', '', $vars['name']);
38
- $vars['name'] = str_replace('-', ' ', $vars['name']);
39
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
40
-
41
- return $vars;
42
- }
43
-
44
- protected function inflectSkinVars($vars)
45
- {
46
- $vars['name'] = preg_replace('/-skin$/', '', $vars['name']);
47
-
48
- return $vars;
49
- }
50
-
51
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php DELETED
@@ -1,119 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MicroweberInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'userfiles/modules/{$install_item_dir}/',
8
- 'module-skin' => 'userfiles/modules/{$install_item_dir}/templates/',
9
- 'template' => 'userfiles/templates/{$install_item_dir}/',
10
- 'element' => 'userfiles/elements/{$install_item_dir}/',
11
- 'vendor' => 'vendor/{$install_item_dir}/',
12
- 'components' => 'components/{$install_item_dir}/'
13
- );
14
-
15
- /**
16
- * Format package name.
17
- *
18
- * For package type microweber-module, cut off a trailing '-module' if present
19
- *
20
- * For package type microweber-template, cut off a trailing '-template' if present.
21
- *
22
- */
23
- public function inflectPackageVars($vars)
24
- {
25
-
26
-
27
- if ($this->package->getTargetDir()) {
28
- $vars['install_item_dir'] = $this->package->getTargetDir();
29
- } else {
30
- $vars['install_item_dir'] = $vars['name'];
31
- if ($vars['type'] === 'microweber-template') {
32
- return $this->inflectTemplateVars($vars);
33
- }
34
- if ($vars['type'] === 'microweber-templates') {
35
- return $this->inflectTemplatesVars($vars);
36
- }
37
- if ($vars['type'] === 'microweber-core') {
38
- return $this->inflectCoreVars($vars);
39
- }
40
- if ($vars['type'] === 'microweber-adapter') {
41
- return $this->inflectCoreVars($vars);
42
- }
43
- if ($vars['type'] === 'microweber-module') {
44
- return $this->inflectModuleVars($vars);
45
- }
46
- if ($vars['type'] === 'microweber-modules') {
47
- return $this->inflectModulesVars($vars);
48
- }
49
- if ($vars['type'] === 'microweber-skin') {
50
- return $this->inflectSkinVars($vars);
51
- }
52
- if ($vars['type'] === 'microweber-element' or $vars['type'] === 'microweber-elements') {
53
- return $this->inflectElementVars($vars);
54
- }
55
- }
56
-
57
-
58
- return $vars;
59
- }
60
-
61
- protected function inflectTemplateVars($vars)
62
- {
63
- $vars['install_item_dir'] = preg_replace('/-template$/', '', $vars['install_item_dir']);
64
- $vars['install_item_dir'] = preg_replace('/template-$/', '', $vars['install_item_dir']);
65
-
66
- return $vars;
67
- }
68
-
69
- protected function inflectTemplatesVars($vars)
70
- {
71
- $vars['install_item_dir'] = preg_replace('/-templates$/', '', $vars['install_item_dir']);
72
- $vars['install_item_dir'] = preg_replace('/templates-$/', '', $vars['install_item_dir']);
73
-
74
- return $vars;
75
- }
76
-
77
- protected function inflectCoreVars($vars)
78
- {
79
- $vars['install_item_dir'] = preg_replace('/-providers$/', '', $vars['install_item_dir']);
80
- $vars['install_item_dir'] = preg_replace('/-provider$/', '', $vars['install_item_dir']);
81
- $vars['install_item_dir'] = preg_replace('/-adapter$/', '', $vars['install_item_dir']);
82
-
83
- return $vars;
84
- }
85
-
86
- protected function inflectModuleVars($vars)
87
- {
88
- $vars['install_item_dir'] = preg_replace('/-module$/', '', $vars['install_item_dir']);
89
- $vars['install_item_dir'] = preg_replace('/module-$/', '', $vars['install_item_dir']);
90
-
91
- return $vars;
92
- }
93
-
94
- protected function inflectModulesVars($vars)
95
- {
96
- $vars['install_item_dir'] = preg_replace('/-modules$/', '', $vars['install_item_dir']);
97
- $vars['install_item_dir'] = preg_replace('/modules-$/', '', $vars['install_item_dir']);
98
-
99
- return $vars;
100
- }
101
-
102
- protected function inflectSkinVars($vars)
103
- {
104
- $vars['install_item_dir'] = preg_replace('/-skin$/', '', $vars['install_item_dir']);
105
- $vars['install_item_dir'] = preg_replace('/skin-$/', '', $vars['install_item_dir']);
106
-
107
- return $vars;
108
- }
109
-
110
- protected function inflectElementVars($vars)
111
- {
112
- $vars['install_item_dir'] = preg_replace('/-elements$/', '', $vars['install_item_dir']);
113
- $vars['install_item_dir'] = preg_replace('/elements-$/', '', $vars['install_item_dir']);
114
- $vars['install_item_dir'] = preg_replace('/-element$/', '', $vars['install_item_dir']);
115
- $vars['install_item_dir'] = preg_replace('/element-$/', '', $vars['install_item_dir']);
116
-
117
- return $vars;
118
- }
119
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ModxInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle MODX specifics when installing packages.
6
- */
7
- class ModxInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'extra' => 'core/packages/{$name}/'
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php DELETED
@@ -1,58 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MoodleInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'mod' => 'mod/{$name}/',
8
- 'admin_report' => 'admin/report/{$name}/',
9
- 'atto' => 'lib/editor/atto/plugins/{$name}/',
10
- 'tool' => 'admin/tool/{$name}/',
11
- 'assignment' => 'mod/assignment/type/{$name}/',
12
- 'assignsubmission' => 'mod/assign/submission/{$name}/',
13
- 'assignfeedback' => 'mod/assign/feedback/{$name}/',
14
- 'auth' => 'auth/{$name}/',
15
- 'availability' => 'availability/condition/{$name}/',
16
- 'block' => 'blocks/{$name}/',
17
- 'booktool' => 'mod/book/tool/{$name}/',
18
- 'cachestore' => 'cache/stores/{$name}/',
19
- 'cachelock' => 'cache/locks/{$name}/',
20
- 'calendartype' => 'calendar/type/{$name}/',
21
- 'format' => 'course/format/{$name}/',
22
- 'coursereport' => 'course/report/{$name}/',
23
- 'customcertelement' => 'mod/customcert/element/{$name}/',
24
- 'datafield' => 'mod/data/field/{$name}/',
25
- 'datapreset' => 'mod/data/preset/{$name}/',
26
- 'editor' => 'lib/editor/{$name}/',
27
- 'enrol' => 'enrol/{$name}/',
28
- 'filter' => 'filter/{$name}/',
29
- 'gradeexport' => 'grade/export/{$name}/',
30
- 'gradeimport' => 'grade/import/{$name}/',
31
- 'gradereport' => 'grade/report/{$name}/',
32
- 'gradingform' => 'grade/grading/form/{$name}/',
33
- 'local' => 'local/{$name}/',
34
- 'logstore' => 'admin/tool/log/store/{$name}/',
35
- 'ltisource' => 'mod/lti/source/{$name}/',
36
- 'ltiservice' => 'mod/lti/service/{$name}/',
37
- 'message' => 'message/output/{$name}/',
38
- 'mnetservice' => 'mnet/service/{$name}/',
39
- 'plagiarism' => 'plagiarism/{$name}/',
40
- 'portfolio' => 'portfolio/{$name}/',
41
- 'qbehaviour' => 'question/behaviour/{$name}/',
42
- 'qformat' => 'question/format/{$name}/',
43
- 'qtype' => 'question/type/{$name}/',
44
- 'quizaccess' => 'mod/quiz/accessrule/{$name}/',
45
- 'quiz' => 'mod/quiz/report/{$name}/',
46
- 'report' => 'report/{$name}/',
47
- 'repository' => 'repository/{$name}/',
48
- 'scormreport' => 'mod/scorm/report/{$name}/',
49
- 'search' => 'search/engine/{$name}/',
50
- 'theme' => 'theme/{$name}/',
51
- 'tinymce' => 'lib/editor/tinymce/plugins/{$name}/',
52
- 'profilefield' => 'user/profile/field/{$name}/',
53
- 'webservice' => 'webservice/{$name}/',
54
- 'workshopallocation' => 'mod/workshop/allocation/{$name}/',
55
- 'workshopeval' => 'mod/workshop/eval/{$name}/',
56
- 'workshopform' => 'mod/workshop/form/{$name}/'
57
- );
58
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php DELETED
@@ -1,47 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class OctoberInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- 'plugin' => 'plugins/{$vendor}/{$name}/',
9
- 'theme' => 'themes/{$name}/'
10
- );
11
-
12
- /**
13
- * Format package name.
14
- *
15
- * For package type october-plugin, cut off a trailing '-plugin' if present.
16
- *
17
- * For package type october-theme, cut off a trailing '-theme' if present.
18
- *
19
- */
20
- public function inflectPackageVars($vars)
21
- {
22
- if ($vars['type'] === 'october-plugin') {
23
- return $this->inflectPluginVars($vars);
24
- }
25
-
26
- if ($vars['type'] === 'october-theme') {
27
- return $this->inflectThemeVars($vars);
28
- }
29
-
30
- return $vars;
31
- }
32
-
33
- protected function inflectPluginVars($vars)
34
- {
35
- $vars['name'] = preg_replace('/^oc-|-plugin$/', '', $vars['name']);
36
- $vars['vendor'] = preg_replace('/[^a-z0-9_]/i', '', $vars['vendor']);
37
-
38
- return $vars;
39
- }
40
-
41
- protected function inflectThemeVars($vars)
42
- {
43
- $vars['name'] = preg_replace('/^oc-|-theme$/', '', $vars['name']);
44
-
45
- return $vars;
46
- }
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class OntoWikiInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'extensions/{$name}/',
8
- 'theme' => 'extensions/themes/{$name}/',
9
- 'translation' => 'extensions/translations/{$name}/',
10
- );
11
-
12
- /**
13
- * Format package name to lower case and remove ".ontowiki" suffix
14
- */
15
- public function inflectPackageVars($vars)
16
- {
17
- $vars['name'] = strtolower($vars['name']);
18
- $vars['name'] = preg_replace('/.ontowiki$/', '', $vars['name']);
19
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
20
- $vars['name'] = preg_replace('/-translation$/', '', $vars['name']);
21
-
22
- return $vars;
23
- }
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
-
5
- class OsclassInstaller extends BaseInstaller
6
- {
7
-
8
- protected $locations = array(
9
- 'plugin' => 'oc-content/plugins/{$name}/',
10
- 'theme' => 'oc-content/themes/{$name}/',
11
- 'language' => 'oc-content/languages/{$name}/',
12
- );
13
-
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/OxidInstaller.php DELETED
@@ -1,59 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Package\PackageInterface;
5
-
6
- class OxidInstaller extends BaseInstaller
7
- {
8
- const VENDOR_PATTERN = '/^modules\/(?P<vendor>.+)\/.+/';
9
-
10
- protected $locations = array(
11
- 'module' => 'modules/{$name}/',
12
- 'theme' => 'application/views/{$name}/',
13
- 'out' => 'out/{$name}/',
14
- );
15
-
16
- /**
17
- * getInstallPath
18
- *
19
- * @param PackageInterface $package
20
- * @param string $frameworkType
21
- * @return void
22
- */
23
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
- {
25
- $installPath = parent::getInstallPath($package, $frameworkType);
26
- $type = $this->package->getType();
27
- if ($type === 'oxid-module') {
28
- $this->prepareVendorDirectory($installPath);
29
- }
30
- return $installPath;
31
- }
32
-
33
- /**
34
- * prepareVendorDirectory
35
- *
36
- * Makes sure there is a vendormetadata.php file inside
37
- * the vendor folder if there is a vendor folder.
38
- *
39
- * @param string $installPath
40
- * @return void
41
- */
42
- protected function prepareVendorDirectory($installPath)
43
- {
44
- $matches = '';
45
- $hasVendorDirectory = preg_match(self::VENDOR_PATTERN, $installPath, $matches);
46
- if (!$hasVendorDirectory) {
47
- return;
48
- }
49
-
50
- $vendorDirectory = $matches['vendor'];
51
- $vendorPath = getcwd() . '/modules/' . $vendorDirectory;
52
- if (!file_exists($vendorPath)) {
53
- mkdir($vendorPath, 0755, true);
54
- }
55
-
56
- $vendorMetaDataPath = $vendorPath . '/vendormetadata.php';
57
- touch($vendorMetaDataPath);
58
- }
59
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PPIInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PPIInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PhiftyInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'bundle' => 'bundles/{$name}/',
8
- 'library' => 'libraries/{$name}/',
9
- 'framework' => 'frameworks/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PhpBBInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'ext/{$vendor}/{$name}/',
8
- 'language' => 'language/{$name}/',
9
- 'style' => 'styles/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PimcoreInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
16
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
17
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php DELETED
@@ -1,32 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Class PiwikInstaller
6
- *
7
- * @package Composer\Installers
8
- */
9
- class PiwikInstaller extends BaseInstaller
10
- {
11
- /**
12
- * @var array
13
- */
14
- protected $locations = array(
15
- 'plugin' => 'plugins/{$name}/',
16
- );
17
-
18
- /**
19
- * Format package name to CamelCase
20
- * @param array $vars
21
- *
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
27
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
28
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
29
-
30
- return $vars;
31
- }
32
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PlentymarketsInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => '{$name}/'
8
- );
9
-
10
- /**
11
- * Remove hyphen, "plugin" and format to camelcase
12
- * @param array $vars
13
- *
14
- * @return array
15
- */
16
- public function inflectPackageVars($vars)
17
- {
18
- $vars['name'] = explode("-", $vars['name']);
19
- foreach ($vars['name'] as $key => $name) {
20
- $vars['name'][$key] = ucfirst($vars['name'][$key]);
21
- if (strcasecmp($name, "Plugin") == 0) {
22
- unset($vars['name'][$key]);
23
- }
24
- }
25
- $vars['name'] = implode("",$vars['name']);
26
-
27
- return $vars;
28
- }
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Plugin.php DELETED
@@ -1,17 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- use Composer\Composer;
6
- use Composer\IO\IOInterface;
7
- use Composer\Plugin\PluginInterface;
8
-
9
- class Plugin implements PluginInterface
10
- {
11
-
12
- public function activate(Composer $composer, IOInterface $io)
13
- {
14
- $installer = new Installer($io, $composer);
15
- $composer->getInstallationManager()->addInstaller($installer);
16
- }
17
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PortoInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PortoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'container' => 'app/Containers/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PrestashopInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class PuppetInstaller extends BaseInstaller
6
- {
7
-
8
- protected $locations = array(
9
- 'module' => 'modules/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php DELETED
@@ -1,63 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PxcmsInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'app/Modules/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * @param array $vars
15
- *
16
- * @return array
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- if ($vars['type'] === 'pxcms-module') {
21
- return $this->inflectModuleVars($vars);
22
- }
23
-
24
- if ($vars['type'] === 'pxcms-theme') {
25
- return $this->inflectThemeVars($vars);
26
- }
27
-
28
- return $vars;
29
- }
30
-
31
- /**
32
- * For package type pxcms-module, cut off a trailing '-plugin' if present.
33
- *
34
- * return string
35
- */
36
- protected function inflectModuleVars($vars)
37
- {
38
- $vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy)
39
- $vars['name'] = str_replace('module-', '', $vars['name']); // strip out module-
40
- $vars['name'] = preg_replace('/-module$/', '', $vars['name']); // strip out -module
41
- $vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s
42
- $vars['name'] = ucwords($vars['name']); // make module name camelcased
43
-
44
- return $vars;
45
- }
46
-
47
-
48
- /**
49
- * For package type pxcms-module, cut off a trailing '-plugin' if present.
50
- *
51
- * return string
52
- */
53
- protected function inflectThemeVars($vars)
54
- {
55
- $vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy)
56
- $vars['name'] = str_replace('theme-', '', $vars['name']); // strip out theme-
57
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']); // strip out -theme
58
- $vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s
59
- $vars['name'] = ucwords($vars['name']); // make module name camelcased
60
-
61
- return $vars;
62
- }
63
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class RadPHPInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'bundle' => 'src/{$name}/'
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $nameParts = explode('/', $vars['name']);
16
- foreach ($nameParts as &$value) {
17
- $value = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $value));
18
- $value = str_replace(array('-', '_'), ' ', $value);
19
- $value = str_replace(' ', '', ucwords($value));
20
- }
21
- $vars['name'] = implode('/', $nameParts);
22
- return $vars;
23
- }
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ReIndexInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'theme' => 'themes/{$name}/',
8
- 'plugin' => 'plugins/{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class Redaxo5Installer extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'addon' => 'redaxo/src/addons/{$name}/',
8
- 'bestyle-plugin' => 'redaxo/src/addons/be_style/plugins/{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class RedaxoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'addon' => 'redaxo/include/addons/{$name}/',
8
- 'bestyle-plugin' => 'redaxo/include/addons/be_style/plugins/{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php DELETED
@@ -1,22 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class RoundcubeInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- );
9
-
10
- /**
11
- * Lowercase name and changes the name to a underscores
12
- *
13
- * @param array $vars
14
- * @return array
15
- */
16
- public function inflectPackageVars($vars)
17
- {
18
- $vars['name'] = strtolower(str_replace('-', '_', $vars['name']));
19
-
20
- return $vars;
21
- }
22
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SMFInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class SMFInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'Sources/{$name}/',
8
- 'theme' => 'Themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php DELETED
@@ -1,60 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin/theme installer for shopware
6
- * @author Benjamin Boit
7
- */
8
- class ShopwareInstaller extends BaseInstaller
9
- {
10
- protected $locations = array(
11
- 'backend-plugin' => 'engine/Shopware/Plugins/Local/Backend/{$name}/',
12
- 'core-plugin' => 'engine/Shopware/Plugins/Local/Core/{$name}/',
13
- 'frontend-plugin' => 'engine/Shopware/Plugins/Local/Frontend/{$name}/',
14
- 'theme' => 'templates/{$name}/',
15
- 'plugin' => 'custom/plugins/{$name}/',
16
- 'frontend-theme' => 'themes/Frontend/{$name}/',
17
- );
18
-
19
- /**
20
- * Transforms the names
21
- * @param array $vars
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- if ($vars['type'] === 'shopware-theme') {
27
- return $this->correctThemeName($vars);
28
- }
29
-
30
- return $this->correctPluginName($vars);
31
- }
32
-
33
- /**
34
- * Changes the name to a camelcased combination of vendor and name
35
- * @param array $vars
36
- * @return array
37
- */
38
- private function correctPluginName($vars)
39
- {
40
- $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
41
- return strtoupper($matches[0][1]);
42
- }, $vars['name']);
43
-
44
- $vars['name'] = ucfirst($vars['vendor']) . ucfirst($camelCasedName);
45
-
46
- return $vars;
47
- }
48
-
49
- /**
50
- * Changes the name to a underscore separated name
51
- * @param array $vars
52
- * @return array
53
- */
54
- private function correctThemeName($vars)
55
- {
56
- $vars['name'] = str_replace('-', '_', $vars['name']);
57
-
58
- return $vars;
59
- }
60
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php DELETED
@@ -1,35 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Package\PackageInterface;
5
-
6
- class SilverStripeInstaller extends BaseInstaller
7
- {
8
- protected $locations = array(
9
- 'module' => '{$name}/',
10
- 'theme' => 'themes/{$name}/',
11
- );
12
-
13
- /**
14
- * Return the install path based on package type.
15
- *
16
- * Relies on built-in BaseInstaller behaviour with one exception: silverstripe/framework
17
- * must be installed to 'sapphire' and not 'framework' if the version is <3.0.0
18
- *
19
- * @param PackageInterface $package
20
- * @param string $frameworkType
21
- * @return string
22
- */
23
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
- {
25
- if (
26
- $package->getName() == 'silverstripe/framework'
27
- && preg_match('/^\d+\.\d+\.\d+/', $package->getVersion())
28
- && version_compare($package->getVersion(), '2.999.999') < 0
29
- ) {
30
- return $this->templatePath($this->locations['module'], array('name' => 'sapphire'));
31
- }
32
-
33
- return parent::getInstallPath($package, $frameworkType);
34
- }
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class SiteDirectInstaller extends BaseInstaller
6
- {
7
- protected $locations = array(
8
- 'module' => 'modules/{$vendor}/{$name}/',
9
- 'plugin' => 'plugins/{$vendor}/{$name}/'
10
- );
11
-
12
- public function inflectPackageVars($vars)
13
- {
14
- return $this->parseVars($vars);
15
- }
16
-
17
- protected function parseVars($vars)
18
- {
19
- $vars['vendor'] = strtolower($vars['vendor']) == 'sitedirect' ? 'SiteDirect' : $vars['vendor'];
20
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
21
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
22
-
23
- return $vars;
24
- }
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class SyDESInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'app/modules/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
-
11
- /**
12
- * Format module name.
13
- *
14
- * Strip `sydes-` prefix and a trailing '-theme' or '-module' from package name if present.
15
- *
16
- * @param array @vars
17
- *
18
- * @return array
19
- */
20
- public function inflectPackageVars($vars)
21
- {
22
- if ($vars['type'] == 'sydes-module') {
23
- return $this->inflectModuleVars($vars);
24
- }
25
-
26
- if ($vars['type'] === 'sydes-theme') {
27
- return $this->inflectThemeVars($vars);
28
- }
29
-
30
- return $vars;
31
- }
32
-
33
- public function inflectModuleVars($vars)
34
- {
35
- $vars['name'] = preg_replace('/(^sydes-|-module$)/i', '', $vars['name']);
36
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
37
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
38
-
39
- return $vars;
40
- }
41
-
42
- protected function inflectThemeVars($vars)
43
- {
44
- $vars['name'] = preg_replace('/(^sydes-|-theme$)/', '', $vars['name']);
45
- $vars['name'] = strtolower($vars['name']);
46
-
47
- return $vars;
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin installer for symfony 1.x
6
- *
7
- * @author Jérôme Tamarelle <jerome@tamarelle.net>
8
- */
9
- class Symfony1Installer extends BaseInstaller
10
- {
11
- protected $locations = array(
12
- 'plugin' => 'plugins/{$name}/',
13
- );
14
-
15
- /**
16
- * Format package name to CamelCase
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- $vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
21
- return strtoupper($matches[0][1]);
22
- }, $vars['name']);
23
-
24
- return $vars;
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Extension installer for TYPO3 CMS
6
- *
7
- * @deprecated since 1.0.25, use https://packagist.org/packages/typo3/cms-composer-installers instead
8
- *
9
- * @author Sascha Egerer <sascha.egerer@dkd.de>
10
- */
11
- class TYPO3CmsInstaller extends BaseInstaller
12
- {
13
- protected $locations = array(
14
- 'extension' => 'typo3conf/ext/{$name}/',
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php DELETED
@@ -1,38 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle TYPO3 Flow specifics when installing packages.
6
- */
7
- class TYPO3FlowInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'package' => 'Packages/Application/{$name}/',
11
- 'framework' => 'Packages/Framework/{$name}/',
12
- 'plugin' => 'Packages/Plugins/{$name}/',
13
- 'site' => 'Packages/Sites/{$name}/',
14
- 'boilerplate' => 'Packages/Boilerplates/{$name}/',
15
- 'build' => 'Build/{$name}/',
16
- );
17
-
18
- /**
19
- * Modify the package name to be a TYPO3 Flow style key.
20
- *
21
- * @param array $vars
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $autoload = $this->package->getAutoload();
27
- if (isset($autoload['psr-0']) && is_array($autoload['psr-0'])) {
28
- $namespace = key($autoload['psr-0']);
29
- $vars['name'] = str_replace('\\', '.', $namespace);
30
- }
31
- if (isset($autoload['psr-4']) && is_array($autoload['psr-4'])) {
32
- $namespace = key($autoload['psr-4']);
33
- $vars['name'] = rtrim(str_replace('\\', '.', $namespace), '.');
34
- }
35
-
36
- return $vars;
37
- }
38
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TaoInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle TAO extensions.
6
- */
7
- class TaoInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'extension' => '{$name}'
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class TheliaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'local/modules/{$name}/',
8
- 'frontoffice-template' => 'templates/frontOffice/{$name}/',
9
- 'backoffice-template' => 'templates/backOffice/{$name}/',
10
- 'email-template' => 'templates/email/{$name}/',
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/TuskInstaller.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
- /**
4
- * Composer installer for 3rd party Tusk utilities
5
- * @author Drew Ewing <drew@phenocode.com>
6
- */
7
- class TuskInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'task' => '.tusk/tasks/{$name}/',
11
- 'command' => '.tusk/commands/{$name}/',
12
- 'asset' => 'assets/tusk/{$name}/',
13
- );
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class UserFrostingInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'sprinkle' => 'app/sprinkles/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class VanillaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'plugins/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class VgmcpInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'bundle' => 'src/{$vendor}/{$name}/',
8
- 'theme' => 'themes/{$name}/'
9
- );
10
-
11
- /**
12
- * Format package name.
13
- *
14
- * For package type vgmcp-bundle, cut off a trailing '-bundle' if present.
15
- *
16
- * For package type vgmcp-theme, cut off a trailing '-theme' if present.
17
- *
18
- */
19
- public function inflectPackageVars($vars)
20
- {
21
- if ($vars['type'] === 'vgmcp-bundle') {
22
- return $this->inflectPluginVars($vars);
23
- }
24
-
25
- if ($vars['type'] === 'vgmcp-theme') {
26
- return $this->inflectThemeVars($vars);
27
- }
28
-
29
- return $vars;
30
- }
31
-
32
- protected function inflectPluginVars($vars)
33
- {
34
- $vars['name'] = preg_replace('/-bundle$/', '', $vars['name']);
35
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
36
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
37
-
38
- return $vars;
39
- }
40
-
41
- protected function inflectThemeVars($vars)
42
- {
43
- $vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
44
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
45
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
46
-
47
- return $vars;
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
-
3
- namespace Composer\Installers;
4
-
5
- class WHMCSInstaller extends BaseInstaller
6
- {
7
- protected $locations = array(
8
- 'addons' => 'modules/addons/{$vendor}_{$name}/',
9
- 'fraud' => 'modules/fraud/{$vendor}_{$name}/',
10
- 'gateways' => 'modules/gateways/{$vendor}_{$name}/',
11
- 'notifications' => 'modules/notifications/{$vendor}_{$name}/',
12
- 'registrars' => 'modules/registrars/{$vendor}_{$name}/',
13
- 'reports' => 'modules/reports/{$vendor}_{$name}/',
14
- 'security' => 'modules/security/{$vendor}_{$name}/',
15
- 'servers' => 'modules/servers/{$vendor}_{$name}/',
16
- 'social' => 'modules/social/{$vendor}_{$name}/',
17
- 'support' => 'modules/support/{$vendor}_{$name}/',
18
- 'templates' => 'templates/{$vendor}_{$name}/',
19
- 'includes' => 'includes/{$vendor}_{$name}/'
20
- );
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class WolfCMSInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'wolf/plugins/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class WordPressInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'wp-content/plugins/{$name}/',
8
- 'theme' => 'wp-content/themes/{$name}/',
9
- 'muplugin' => 'wp-content/mu-plugins/{$name}/',
10
- 'dropin' => 'wp-content/{$name}/',
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/YawikInstaller.php DELETED
@@ -1,32 +0,0 @@
1
- <?php
2
- /**
3
- * Created by PhpStorm.
4
- * User: cbleek
5
- * Date: 25.03.16
6
- * Time: 20:55
7
- */
8
-
9
- namespace Composer\Installers;
10
-
11
-
12
- class YawikInstaller extends BaseInstaller
13
- {
14
- protected $locations = array(
15
- 'module' => 'module/{$name}/',
16
- );
17
-
18
- /**
19
- * Format package name to CamelCase
20
- * @param array $vars
21
- *
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
27
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
28
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
29
-
30
- return $vars;
31
- }
32
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ZendInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ZendInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'library/{$name}/',
8
- 'extra' => 'extras/library/{$name}/',
9
- 'module' => 'module/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ZikulaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$vendor}-{$name}/',
8
- 'theme' => 'themes/{$vendor}-{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
vendor/composer/installers/src/bootstrap.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
- function includeIfExists($file)
3
- {
4
- if (file_exists($file)) {
5
- return include $file;
6
- }
7
- }
8
- if ((!$loader = includeIfExists(__DIR__ . '/../vendor/autoload.php')) && (!$loader = includeIfExists(__DIR__ . '/../../../autoload.php'))) {
9
- die('You must set up the project dependencies, run the following commands:'.PHP_EOL.
10
- 'curl -s http://getcomposer.org/installer | php'.PHP_EOL.
11
- 'php composer.phar install'.PHP_EOL);
12
- }
13
- return $loader;
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/symfony/polyfill-mbstring DELETED
@@ -1 +0,0 @@
1
- Subproject commit b42a2f66e8f1b15ccf25652c3424265923eb4f17