the whole shebang
This commit is contained in:
645
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Iconv.php
vendored
Normal file
645
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Iconv.php
vendored
Normal file
@@ -0,0 +1,645 @@
|
||||
<?php // vi: set fenc=utf-8 ts=4 sw=4 et:
|
||||
/*
|
||||
* Copyright (C) 2013 Nicolas Grekas - p@tchwork.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the (at your option):
|
||||
* Apache License v2.0 (http://apache.org/licenses/LICENSE-2.0.txt), or
|
||||
* GNU General Public License v2.0 (http://gnu.org/licenses/gpl-2.0.txt).
|
||||
*/
|
||||
|
||||
namespace Patchwork\PHP\Shim;
|
||||
|
||||
/**
|
||||
* iconv implementation in pure PHP, UTF-8 centric.
|
||||
*
|
||||
* Implemented:
|
||||
* - iconv - Convert string to requested character encoding
|
||||
* - iconv_mime_decode - Decodes a MIME header field
|
||||
* - iconv_mime_decode_headers - Decodes multiple MIME header fields at once
|
||||
* - iconv_get_encoding - Retrieve internal configuration variables of iconv extension
|
||||
* - iconv_set_encoding - Set current setting for character encoding conversion
|
||||
* - iconv_mime_encode - Composes a MIME header field
|
||||
* - ob_iconv_handler - Convert character encoding as output buffer handler
|
||||
* - iconv_strlen - Returns the character count of string
|
||||
* - iconv_strpos - Finds position of first occurrence of a needle within a haystack
|
||||
* - iconv_strrpos - Finds the last occurrence of a needle within a haystack
|
||||
* - iconv_substr - Cut out part of a string
|
||||
*
|
||||
* Charsets available for convertion are defined by files
|
||||
* in the charset/ directory and by Iconv::$alias below.
|
||||
* You're welcome to send back any addition you make.
|
||||
*/
|
||||
class Iconv
|
||||
{
|
||||
const
|
||||
|
||||
ERROR_ILLEGAL_CHARACTER = 'iconv(): Detected an illegal character in input string',
|
||||
ERROR_WRONG_CHARSET = 'iconv(): Wrong charset, conversion from `%s\' to `%s\' is not allowed';
|
||||
|
||||
|
||||
protected static
|
||||
|
||||
$input_encoding = 'utf-8',
|
||||
$output_encoding = 'utf-8',
|
||||
$internal_encoding = 'utf-8',
|
||||
|
||||
$alias = array(
|
||||
'utf8' => 'utf-8',
|
||||
'ascii' => 'us-ascii',
|
||||
'tis-620' => 'iso-8859-11',
|
||||
'cp1250' => 'windows-1250',
|
||||
'cp1251' => 'windows-1251',
|
||||
'cp1252' => 'windows-1252',
|
||||
'cp1253' => 'windows-1253',
|
||||
'cp1254' => 'windows-1254',
|
||||
'cp1255' => 'windows-1255',
|
||||
'cp1256' => 'windows-1256',
|
||||
'cp1257' => 'windows-1257',
|
||||
'cp1258' => 'windows-1258',
|
||||
'shift-jis' => 'cp932',
|
||||
'shift_jis' => 'cp932',
|
||||
'latin1' => 'iso-8859-1',
|
||||
'latin2' => 'iso-8859-2',
|
||||
'latin3' => 'iso-8859-3',
|
||||
'latin4' => 'iso-8859-4',
|
||||
'latin5' => 'iso-8859-9',
|
||||
'latin6' => 'iso-8859-10',
|
||||
'latin7' => 'iso-8859-13',
|
||||
'latin8' => 'iso-8859-14',
|
||||
'latin9' => 'iso-8859-15',
|
||||
'latin10' => 'iso-8859-16',
|
||||
'iso8859-1' => 'iso-8859-1',
|
||||
'iso8859-2' => 'iso-8859-2',
|
||||
'iso8859-3' => 'iso-8859-3',
|
||||
'iso8859-4' => 'iso-8859-4',
|
||||
'iso8859-5' => 'iso-8859-5',
|
||||
'iso8859-6' => 'iso-8859-6',
|
||||
'iso8859-7' => 'iso-8859-7',
|
||||
'iso8859-8' => 'iso-8859-8',
|
||||
'iso8859-9' => 'iso-8859-9',
|
||||
'iso8859-10' => 'iso-8859-10',
|
||||
'iso8859-11' => 'iso-8859-11',
|
||||
'iso8859-12' => 'iso-8859-12',
|
||||
'iso8859-13' => 'iso-8859-13',
|
||||
'iso8859-14' => 'iso-8859-14',
|
||||
'iso8859-15' => 'iso-8859-15',
|
||||
'iso8859-16' => 'iso-8859-16',
|
||||
'iso_8859-1' => 'iso-8859-1',
|
||||
'iso_8859-2' => 'iso-8859-2',
|
||||
'iso_8859-3' => 'iso-8859-3',
|
||||
'iso_8859-4' => 'iso-8859-4',
|
||||
'iso_8859-5' => 'iso-8859-5',
|
||||
'iso_8859-6' => 'iso-8859-6',
|
||||
'iso_8859-7' => 'iso-8859-7',
|
||||
'iso_8859-8' => 'iso-8859-8',
|
||||
'iso_8859-9' => 'iso-8859-9',
|
||||
'iso_8859-10' => 'iso-8859-10',
|
||||
'iso_8859-11' => 'iso-8859-11',
|
||||
'iso_8859-12' => 'iso-8859-12',
|
||||
'iso_8859-13' => 'iso-8859-13',
|
||||
'iso_8859-14' => 'iso-8859-14',
|
||||
'iso_8859-15' => 'iso-8859-15',
|
||||
'iso_8859-16' => 'iso-8859-16',
|
||||
'iso88591' => 'iso-8859-1',
|
||||
'iso88592' => 'iso-8859-2',
|
||||
'iso88593' => 'iso-8859-3',
|
||||
'iso88594' => 'iso-8859-4',
|
||||
'iso88595' => 'iso-8859-5',
|
||||
'iso88596' => 'iso-8859-6',
|
||||
'iso88597' => 'iso-8859-7',
|
||||
'iso88598' => 'iso-8859-8',
|
||||
'iso88599' => 'iso-8859-9',
|
||||
'iso885910' => 'iso-8859-10',
|
||||
'iso885911' => 'iso-8859-11',
|
||||
'iso885912' => 'iso-8859-12',
|
||||
'iso885913' => 'iso-8859-13',
|
||||
'iso885914' => 'iso-8859-14',
|
||||
'iso885915' => 'iso-8859-15',
|
||||
'iso885916' => 'iso-8859-16',
|
||||
),
|
||||
|
||||
$translit_map = array(),
|
||||
$convert_map = array(),
|
||||
$error_handler,
|
||||
$last_error,
|
||||
|
||||
$ulen_mask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4),
|
||||
$is_valid_utf8;
|
||||
|
||||
|
||||
static function iconv($in_charset, $out_charset, $str)
|
||||
{
|
||||
if ('' === (string) $str) return '';
|
||||
|
||||
|
||||
// Prepare for //IGNORE and //TRANSLIT
|
||||
|
||||
$TRANSLIT = $IGNORE = '';
|
||||
|
||||
$out_charset = strtolower($out_charset);
|
||||
$in_charset = strtolower($in_charset );
|
||||
|
||||
'' === $out_charset && $out_charset = 'iso-8859-1';
|
||||
'' === $in_charset && $in_charset = 'iso-8859-1';
|
||||
|
||||
if ('//translit' === substr($out_charset, -10))
|
||||
{
|
||||
$TRANSLIT = '//TRANSLIT';
|
||||
$out_charset = substr($out_charset, 0, -10);
|
||||
}
|
||||
|
||||
if ('//ignore' === substr($out_charset, -8))
|
||||
{
|
||||
$IGNORE = '//IGNORE';
|
||||
$out_charset = substr($out_charset, 0, -8);
|
||||
}
|
||||
|
||||
'//translit' === substr($in_charset, -10) && $in_charset = substr($in_charset, 0, -10);
|
||||
'//ignore' === substr($in_charset, -8) && $in_charset = substr($in_charset, 0, -8);
|
||||
|
||||
isset(self::$alias[ $in_charset]) && $in_charset = self::$alias[ $in_charset];
|
||||
isset(self::$alias[$out_charset]) && $out_charset = self::$alias[$out_charset];
|
||||
|
||||
|
||||
// Load charset maps
|
||||
|
||||
if ( ('utf-8' !== $in_charset && !self::loadMap('from.', $in_charset, $in_map))
|
||||
|| ('utf-8' !== $out_charset && !self::loadMap( 'to.', $out_charset, $out_map)) )
|
||||
{
|
||||
user_error(sprintf(self::ERROR_WRONG_CHARSET, $in_charset, $out_charset));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if ('utf-8' !== $in_charset)
|
||||
{
|
||||
// Convert input to UTF-8
|
||||
$result = '';
|
||||
if (self::map_to_utf8($result, $in_map, $str, $IGNORE)) $str = $result;
|
||||
else $str = false;
|
||||
self::$is_valid_utf8 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
self::$is_valid_utf8 = preg_match('//u', $str);
|
||||
|
||||
if (!self::$is_valid_utf8 && !$IGNORE)
|
||||
{
|
||||
user_error(self::ERROR_ILLEGAL_CHARACTER);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ('utf-8' === $out_charset)
|
||||
{
|
||||
// UTF-8 validation
|
||||
$str = self::utf8_to_utf8($str, $IGNORE);
|
||||
}
|
||||
}
|
||||
|
||||
if ('utf-8' !== $out_charset && false !== $str)
|
||||
{
|
||||
// Convert output to UTF-8
|
||||
$result = '';
|
||||
if (self::map_from_utf8($result, $out_map, $str, $IGNORE, $TRANSLIT)) return $result;
|
||||
else return false;
|
||||
}
|
||||
else return $str;
|
||||
}
|
||||
|
||||
static function iconv_mime_decode_headers($str, $mode = 0, $charset = INF)
|
||||
{
|
||||
INF === $charset && $charset = self::$internal_encoding;
|
||||
|
||||
false !== strpos($str, "\r") && $str = strtr(str_replace("\r\n", "\n", $str), "\r", "\n");
|
||||
$str = explode("\n\n", $str, 2);
|
||||
|
||||
$headers = array();
|
||||
|
||||
$str = preg_split('/\n(?![ \t])/', $str[0]);
|
||||
foreach ($str as $str)
|
||||
{
|
||||
$str = self::iconv_mime_decode($str, $mode, $charset);
|
||||
if (false === $str) return false;
|
||||
$str = explode(':', $str, 2);
|
||||
|
||||
if (2 === count($str))
|
||||
{
|
||||
if (isset($headers[$str[0]]))
|
||||
{
|
||||
is_array($headers[$str[0]]) || $headers[$str[0]] = array($headers[$str[0]]);
|
||||
$headers[$str[0]][] = ltrim($str[1]);
|
||||
}
|
||||
else $headers[$str[0]] = ltrim($str[1]);
|
||||
}
|
||||
}
|
||||
|
||||
return $headers;
|
||||
}
|
||||
|
||||
static function iconv_mime_decode($str, $mode = 0, $charset = INF)
|
||||
{
|
||||
INF === $charset && $charset = self::$internal_encoding;
|
||||
if (ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode) $charset .= '//IGNORE';
|
||||
|
||||
false !== strpos($str, "\r") && $str = strtr(str_replace("\r\n", "\n", $str), "\r", "\n");
|
||||
$str = preg_split('/\n(?![ \t])/', rtrim($str), 2);
|
||||
$str = preg_replace('/[ \t]*\n[ \t]+/', ' ', rtrim($str[0]));
|
||||
$str = preg_split('/=\?([^?]+)\?([bqBQ])\?(.*?)\?=/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
$result = self::iconv('utf-8', $charset, $str[0]);
|
||||
if (false === $result) return false;
|
||||
|
||||
$i = 1;
|
||||
$len = count($str);
|
||||
|
||||
while ($i < $len)
|
||||
{
|
||||
$c = strtolower($str[$i]);
|
||||
if ( (ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode)
|
||||
&& 'utf-8' !== $c
|
||||
&& !isset(self::$alias[$c])
|
||||
&& !self::loadMap('from.', $c, $d) ) $d = false;
|
||||
else if ('B' === strtoupper($str[$i+1])) $d = base64_decode($str[$i+2]);
|
||||
else $d = rawurldecode(strtr(str_replace('%', '%25', $str[$i+2]), '=_', '% '));
|
||||
|
||||
if (false !== $d)
|
||||
{
|
||||
$result .= self::iconv($c, $charset, $d);
|
||||
$d = self::iconv('utf-8' , $charset, $str[$i+3]);
|
||||
if ('' !== trim($d)) $result .= $d;
|
||||
}
|
||||
else if (ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode)
|
||||
{
|
||||
$result .= "=?{$str[$i]}?{$str[$i+1]}?{$str[$i+2]}?={$str[$i+3]}";
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = false;
|
||||
break;
|
||||
}
|
||||
|
||||
$i += 4;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
static function iconv_get_encoding($type = 'all')
|
||||
{
|
||||
switch ($type)
|
||||
{
|
||||
case 'input_encoding' : return self::$input_encoding;
|
||||
case 'output_encoding' : return self::$output_encoding;
|
||||
case 'internal_encoding': return self::$internal_encoding;
|
||||
}
|
||||
|
||||
return array(
|
||||
'input_encoding' => self::$input_encoding,
|
||||
'output_encoding' => self::$output_encoding,
|
||||
'internal_encoding' => self::$internal_encoding
|
||||
);
|
||||
}
|
||||
|
||||
static function iconv_set_encoding($type, $charset)
|
||||
{
|
||||
switch ($type)
|
||||
{
|
||||
case 'input_encoding' : self::$input_encoding = $charset; break;
|
||||
case 'output_encoding' : self::$output_encoding = $charset; break;
|
||||
case 'internal_encoding': self::$internal_encoding = $charset; break;
|
||||
|
||||
default: return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static function iconv_mime_encode($field_name, $field_value, $pref = INF)
|
||||
{
|
||||
is_array($pref) || $pref = array();
|
||||
|
||||
$pref += array(
|
||||
'scheme' => 'B',
|
||||
'input-charset' => self::$internal_encoding,
|
||||
'output-charset' => self::$internal_encoding,
|
||||
'line-length' => 76,
|
||||
'line-break-chars' => "\r\n"
|
||||
);
|
||||
|
||||
preg_match('/[\x80-\xFF]/', $field_name) && $field_name = '';
|
||||
|
||||
$scheme = strtoupper(substr($pref['scheme'], 0, 1));
|
||||
$in = strtolower($pref['input-charset']);
|
||||
$out = strtolower($pref['output-charset']);
|
||||
|
||||
if ('utf-8' !== $in && false === $field_value = self::iconv($in, 'utf-8', $field_value)) return false;
|
||||
|
||||
preg_match_all('/./us', $field_value, $chars);
|
||||
|
||||
$chars = isset($chars[0]) ? $chars[0] : array();
|
||||
|
||||
$line_break = (int) $pref['line-length'];
|
||||
$line_start = "=?{$pref['output-charset']}?{$scheme}?";
|
||||
$line_length = strlen($field_name) + 2 + strlen($line_start) + 2;
|
||||
$line_offset = strlen($line_start) + 3;
|
||||
$line_data = '';
|
||||
|
||||
$field_value = array();
|
||||
|
||||
$Q = 'Q' === $scheme;
|
||||
|
||||
foreach ($chars as $c)
|
||||
{
|
||||
if ('utf-8' !== $out && false === $c = self::iconv('utf-8', $out, $c)) return false;
|
||||
|
||||
$o = $Q
|
||||
? $c = preg_replace_callback(
|
||||
'/[=_\?\x00-\x1F\x80-\xFF]/',
|
||||
array(__CLASS__, 'qp_byte_callback'),
|
||||
$c
|
||||
)
|
||||
: base64_encode($line_data . $c);
|
||||
|
||||
if (isset($o[$line_break - $line_length]))
|
||||
{
|
||||
$Q || $line_data = base64_encode($line_data);
|
||||
$field_value[] = $line_start . $line_data . '?=';
|
||||
$line_length = $line_offset;
|
||||
$line_data = '';
|
||||
}
|
||||
|
||||
$line_data .= $c;
|
||||
$Q && $line_length += strlen($c);
|
||||
}
|
||||
|
||||
if ('' !== $line_data)
|
||||
{
|
||||
$Q || $line_data = base64_encode($line_data);
|
||||
$field_value[] = $line_start . $line_data . '?=';
|
||||
}
|
||||
|
||||
return $field_name . ': ' . implode($pref['line-break-chars'] . ' ', $field_value);
|
||||
}
|
||||
|
||||
static function ob_iconv_handler($buffer, $mode)
|
||||
{
|
||||
return self::iconv(self::$internal_encoding, self::$output_encoding, $buffer);
|
||||
}
|
||||
|
||||
static function iconv_strlen($s, $encoding = INF)
|
||||
{
|
||||
/**/ if (extension_loaded('xml'))
|
||||
return self::strlen1($s, $encoding);
|
||||
/**/ else
|
||||
return self::strlen2($s, $encoding);
|
||||
}
|
||||
|
||||
static function strlen1($s, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
if (0 !== strncasecmp($encoding, 'utf-8', 5) && false === $s = self::iconv($encoding, 'utf-8', $s)) return false;
|
||||
|
||||
return strlen(utf8_decode($s));
|
||||
}
|
||||
|
||||
static function strlen2($s, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
if (0 !== strncasecmp($encoding, 'utf-8', 5) && false === $s = self::iconv($encoding, 'utf-8', $s)) return false;
|
||||
|
||||
$ulen_mask = self::$ulen_mask;
|
||||
|
||||
$i = 0; $j = 0;
|
||||
$len = strlen($s);
|
||||
|
||||
while ($i < $len)
|
||||
{
|
||||
$u = $s[$i] & "\xF0";
|
||||
$i += isset($ulen_mask[$u]) ? $ulen_mask[$u] : 1;
|
||||
++$j;
|
||||
}
|
||||
|
||||
return $j;
|
||||
}
|
||||
|
||||
static function iconv_strpos($haystack, $needle, $offset = 0, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
|
||||
if (0 !== strncasecmp($encoding, 'utf-8', 5))
|
||||
{
|
||||
if (false === $haystack = self::iconv($encoding, 'utf-8', $haystack)) return false;
|
||||
if (false === $needle = self::iconv($encoding, 'utf-8', $needle)) return false;
|
||||
}
|
||||
|
||||
if ($offset = (int) $offset) $haystack = self::iconv_substr($haystack, $offset, 2147483647, 'utf-8');
|
||||
$pos = strpos($haystack, $needle);
|
||||
return false === $pos ? false : ($offset + ($pos ? self::iconv_strlen(substr($haystack, 0, $pos), 'utf-8') : 0));
|
||||
}
|
||||
|
||||
static function iconv_strrpos($haystack, $needle, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
|
||||
if (0 !== strncasecmp($encoding, 'utf-8', 5))
|
||||
{
|
||||
if (false === $haystack = self::iconv($encoding, 'utf-8', $haystack)) return false;
|
||||
if (false === $needle = self::iconv($encoding, 'utf-8', $needle)) return false;
|
||||
}
|
||||
|
||||
$pos = isset($needle[0]) ? strrpos($haystack, $needle) : false;
|
||||
return false === $pos ? false : self::iconv_strlen($pos ? substr($haystack, 0, $pos) : $haystack, 'utf-8');
|
||||
}
|
||||
|
||||
static function iconv_substr($s, $start, $length = 2147483647, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
if (0 === strncasecmp($encoding, 'utf-8', 5)) $encoding = INF;
|
||||
else if (false === $s = self::iconv($encoding, 'utf-8', $s)) return false;
|
||||
|
||||
$slen = self::iconv_strlen($s, 'utf-8');
|
||||
$start = (int) $start;
|
||||
|
||||
if (0 > $start) $start += $slen;
|
||||
if (0 > $start) return false;
|
||||
if ($start >= $slen) return false;
|
||||
|
||||
$rx = $slen - $start;
|
||||
|
||||
if (0 > $length) $length += $rx;
|
||||
if (0 === $length) return '';
|
||||
if (0 > $length) return false;
|
||||
|
||||
if ($length > $rx) $length = $rx;
|
||||
|
||||
$rx = '/^' . ($start ? self::preg_offset($start) : '') . '(' . self::preg_offset($length) . ')/u';
|
||||
|
||||
$s = preg_match($rx, $s, $s) ? $s[1] : '';
|
||||
|
||||
if (INF === $encoding) return $s;
|
||||
else return self::iconv('utf-8', $encoding, $s);
|
||||
}
|
||||
|
||||
protected static function loadMap($type, $charset, &$map)
|
||||
{
|
||||
if (!isset(self::$convert_map[$type . $charset]))
|
||||
{
|
||||
if (false === $map = self::getData($type . $charset))
|
||||
{
|
||||
if ('to.' === $type && self::loadMap('from.', $charset, $map)) $map = array_flip($map);
|
||||
else return false;
|
||||
}
|
||||
|
||||
self::$convert_map[$type . $charset] = $map;
|
||||
}
|
||||
else $map = self::$convert_map[$type . $charset];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected static function utf8_to_utf8($str, $IGNORE)
|
||||
{
|
||||
$ulen_mask = self::$ulen_mask;
|
||||
$valid = self::$is_valid_utf8;
|
||||
|
||||
$u = $str;
|
||||
$i = $j = 0;
|
||||
$len = strlen($str);
|
||||
|
||||
while ($i < $len)
|
||||
{
|
||||
if ($str[$i] < "\x80") $u[$j++] = $str[$i++];
|
||||
else
|
||||
{
|
||||
$ulen = $str[$i] & "\xF0";
|
||||
$ulen = isset($ulen_mask[$ulen]) ? $ulen_mask[$ulen] : 1;
|
||||
$uchr = substr($str, $i, $ulen);
|
||||
|
||||
if (1 === $ulen || !($valid || preg_match('/^.$/us', $uchr)))
|
||||
{
|
||||
if ($IGNORE)
|
||||
{
|
||||
++$i;
|
||||
continue;
|
||||
}
|
||||
|
||||
user_error(self::ERROR_ILLEGAL_CHARACTER);
|
||||
return false;
|
||||
}
|
||||
else $i += $ulen;
|
||||
|
||||
$u[$j++] = $uchr[0];
|
||||
|
||||
isset($uchr[1]) && 0 !== ($u[$j++] = $uchr[1])
|
||||
&& isset($uchr[2]) && 0 !== ($u[$j++] = $uchr[2])
|
||||
&& isset($uchr[3]) && 0 !== ($u[$j++] = $uchr[3]);
|
||||
}
|
||||
}
|
||||
|
||||
return substr($u, 0, $j);
|
||||
}
|
||||
|
||||
protected static function map_to_utf8(&$result, $map, $str, $IGNORE)
|
||||
{
|
||||
$len = strlen($str);
|
||||
for ($i = 0; $i < $len; ++$i)
|
||||
{
|
||||
if (isset($str[$i+1], $map[$str[$i] . $str[$i+1]])) $result .= $map[$str[$i] . $str[++$i]];
|
||||
else if (isset($map[$str[$i]])) $result .= $map[$str[$i]];
|
||||
else if (!$IGNORE)
|
||||
{
|
||||
user_error(self::ERROR_ILLEGAL_CHARACTER);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected static function map_from_utf8(&$result, $map, $str, $IGNORE, $TRANSLIT)
|
||||
{
|
||||
$ulen_mask = self::$ulen_mask;
|
||||
$valid = self::$is_valid_utf8;
|
||||
|
||||
if ($TRANSLIT) self::$translit_map or self::$translit_map = self::getData('translit');
|
||||
|
||||
$i = 0;
|
||||
$len = strlen($str);
|
||||
|
||||
while ($i < $len)
|
||||
{
|
||||
if ($str[$i] < "\x80") $uchr = $str[$i++];
|
||||
else
|
||||
{
|
||||
$ulen = $str[$i] & "\xF0";
|
||||
$ulen = isset($ulen_mask[$ulen]) ? $ulen_mask[$ulen] : 1;
|
||||
$uchr = substr($str, $i, $ulen);
|
||||
|
||||
if ($IGNORE && (1 === $ulen || !($valid || preg_match('/^.$/us', $uchr))))
|
||||
{
|
||||
++$i;
|
||||
continue;
|
||||
}
|
||||
else $i += $ulen;
|
||||
}
|
||||
|
||||
if (isset($map[$uchr]))
|
||||
{
|
||||
$result .= $map[$uchr];
|
||||
}
|
||||
else if ($TRANSLIT)
|
||||
{
|
||||
if (isset(self::$translit_map[$uchr]))
|
||||
{
|
||||
$uchr = self::$translit_map[$uchr];
|
||||
}
|
||||
else if ($uchr >= "\xC3\x80")
|
||||
{
|
||||
$uchr = \Normalizer::normalize($uchr, \Normalizer::NFD);
|
||||
$uchr = preg_split('/(.)/', $uchr, 2, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
if (isset($uchr[2][0])) $uchr = $uchr[1];
|
||||
else if ($IGNORE) continue;
|
||||
else return false;
|
||||
}
|
||||
|
||||
$str = $uchr . substr($str, $i);
|
||||
$len = strlen($str);
|
||||
$i = 0;
|
||||
}
|
||||
else if (!$IGNORE)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected static function qp_byte_callback($m)
|
||||
{
|
||||
return '=' . strtoupper(dechex(ord($m[0])));
|
||||
}
|
||||
|
||||
protected static function preg_offset($offset)
|
||||
{
|
||||
$rx = array();
|
||||
$offset = (int) $offset;
|
||||
|
||||
while ($offset > 65535)
|
||||
{
|
||||
$rx[] = '.{65535}';
|
||||
$offset -= 65535;
|
||||
}
|
||||
|
||||
return implode('', $rx) . '.{' . $offset . '}';
|
||||
}
|
||||
|
||||
protected static function getData($file)
|
||||
{
|
||||
$file = __DIR__ . '/charset/' . $file . '.ser';
|
||||
if (file_exists($file)) return unserialize(file_get_contents($file));
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
139
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Intl.php
vendored
Normal file
139
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Intl.php
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
<?php // vi: set fenc=utf-8 ts=4 sw=4 et:
|
||||
/*
|
||||
* Copyright (C) 2013 Nicolas Grekas - p@tchwork.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the (at your option):
|
||||
* Apache License v2.0 (http://apache.org/licenses/LICENSE-2.0.txt), or
|
||||
* GNU General Public License v2.0 (http://gnu.org/licenses/gpl-2.0.txt).
|
||||
*/
|
||||
|
||||
namespace Patchwork\PHP\Shim;
|
||||
|
||||
/**
|
||||
* Partial intl implementation in pure PHP.
|
||||
*
|
||||
* Implemented:
|
||||
* - grapheme_extract - Extract a sequence of grapheme clusters from a text buffer, which must be encoded in UTF-8
|
||||
* - grapheme_stripos - Find position (in grapheme units) of first occurrence of a case-insensitive string
|
||||
* - grapheme_stristr - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
|
||||
* - grapheme_strlen - Get string length in grapheme units
|
||||
* - grapheme_strpos - Find position (in grapheme units) of first occurrence of a string
|
||||
* - grapheme_strripos - Find position (in grapheme units) of last occurrence of a case-insensitive string
|
||||
* - grapheme_strrpos - Find position (in grapheme units) of last occurrence of a string
|
||||
* - grapheme_strstr - Returns part of haystack string from the first occurrence of needle to the end of haystack
|
||||
* - grapheme_substr - Return part of a string
|
||||
*/
|
||||
class Intl
|
||||
{
|
||||
static function grapheme_extract($s, $size, $type = GRAPHEME_EXTR_COUNT, $start = 0, &$next = 0)
|
||||
{
|
||||
$s = (string) substr($s, $start);
|
||||
$size = (int) $size;
|
||||
$type = (int) $type;
|
||||
$start = (int) $start;
|
||||
|
||||
if ('' === $s || 0 > $size || 0 > $start || 0 > $type || 2 < $type) return false;
|
||||
if (0 === $size) return '';
|
||||
|
||||
$next = $start;
|
||||
|
||||
$s = preg_split('/(' . GRAPHEME_CLUSTER_RX . ')/u', "\r\n" . $s, $size + 1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
if (!isset($s[1])) return false;
|
||||
|
||||
$i = 1;
|
||||
$ret = '';
|
||||
|
||||
do
|
||||
{
|
||||
if (GRAPHEME_EXTR_COUNT === $type) --$size;
|
||||
else if (GRAPHEME_EXTR_MAXBYTES === $type) $size -= strlen($s[$i]);
|
||||
else $size -= iconv_strlen($s[$i], 'UTF-8//IGNORE');
|
||||
|
||||
if ($size >= 0) $ret .= $s[$i];
|
||||
}
|
||||
while (isset($s[++$i]) && $size > 0);
|
||||
|
||||
$next += strlen($ret);
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
static function grapheme_strlen($s)
|
||||
{
|
||||
$s = (string) $s;
|
||||
preg_replace('/' . GRAPHEME_CLUSTER_RX . '/u', '', $s, -1, $len);
|
||||
return 0 === $len && '' !== $s ? null : $len;
|
||||
}
|
||||
|
||||
static function grapheme_substr($s, $start, $len = 2147483647)
|
||||
{
|
||||
preg_match_all('/' . GRAPHEME_CLUSTER_RX . '/u', $s, $s);
|
||||
|
||||
$slen = count($s[0]);
|
||||
$start = (int) $start;
|
||||
|
||||
if (0 > $start) $start += $slen;
|
||||
if (0 > $start) return false;
|
||||
if ($start >= $slen) return false;
|
||||
|
||||
$rem = $slen - $start;
|
||||
|
||||
if (0 > $len) $len += $rem;
|
||||
if (0 === $len) return '';
|
||||
if (0 > $len) return false;
|
||||
if ($len > $rem) $len = $rem;
|
||||
|
||||
return implode('', array_slice($s[0], $start, $len));
|
||||
}
|
||||
|
||||
static function grapheme_substr_workaround62759($s, $start, $len)
|
||||
{
|
||||
// Intl based http://bugs.php.net/62759 and 55562 workaround
|
||||
|
||||
if (2147483647 == $len) return grapheme_substr($s, $start);
|
||||
|
||||
$slen = grapheme_strlen($s);
|
||||
$start = (int) $start;
|
||||
|
||||
if (0 > $start) $start += $slen;
|
||||
if (0 > $start) return false;
|
||||
if ($start >= $slen) return false;
|
||||
|
||||
$rem = $slen - $start;
|
||||
|
||||
if (0 > $len) $len += $rem;
|
||||
if (0 === $len) return '';
|
||||
if (0 > $len) return false;
|
||||
if ($len > $rem) $len = $rem;
|
||||
|
||||
return grapheme_substr($s, $start, $len);
|
||||
}
|
||||
|
||||
static function grapheme_strpos ($s, $needle, $offset = 0) {return self::grapheme_position($s, $needle, $offset, 0);}
|
||||
static function grapheme_stripos ($s, $needle, $offset = 0) {return self::grapheme_position($s, $needle, $offset, 1);}
|
||||
static function grapheme_strrpos ($s, $needle, $offset = 0) {return self::grapheme_position($s, $needle, $offset, 2);}
|
||||
static function grapheme_strripos($s, $needle, $offset = 0) {return self::grapheme_position($s, $needle, $offset, 3);}
|
||||
static function grapheme_stristr ($s, $needle, $before_needle = false) {return mb_stristr($s, $needle, $before_needle, 'UTF-8');}
|
||||
static function grapheme_strstr ($s, $needle, $before_needle = false) {return mb_strstr ($s, $needle, $before_needle, 'UTF-8');}
|
||||
|
||||
|
||||
protected static function grapheme_position($s, $needle, $offset, $mode)
|
||||
{
|
||||
if ($offset > 0) $s = (string) self::grapheme_substr($s, $offset);
|
||||
else if ($offset < 0) $offset = 0;
|
||||
if ('' === (string) $needle) return false;
|
||||
if ('' === (string) $s) return false;
|
||||
|
||||
switch ($mode)
|
||||
{
|
||||
case 0: $needle = iconv_strpos ($s, $needle, 0, 'UTF-8'); break;
|
||||
case 1: $needle = mb_stripos ($s, $needle, 0, 'UTF-8'); break;
|
||||
case 2: $needle = iconv_strrpos($s, $needle, 'UTF-8'); break;
|
||||
default: $needle = mb_strripos ($s, $needle, 0, 'UTF-8'); break;
|
||||
}
|
||||
|
||||
return $needle ? self::grapheme_strlen(iconv_substr($s, 0, $needle, 'UTF-8')) + $offset : $needle;
|
||||
}
|
||||
}
|
||||
340
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Mbstring.php
vendored
Normal file
340
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Mbstring.php
vendored
Normal file
@@ -0,0 +1,340 @@
|
||||
<?php // vi: set fenc=utf-8 ts=4 sw=4 et:
|
||||
/*
|
||||
* Copyright (C) 2013 Nicolas Grekas - p@tchwork.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the (at your option):
|
||||
* Apache License v2.0 (http://apache.org/licenses/LICENSE-2.0.txt), or
|
||||
* GNU General Public License v2.0 (http://gnu.org/licenses/gpl-2.0.txt).
|
||||
*/
|
||||
|
||||
namespace Patchwork\PHP\Shim;
|
||||
|
||||
/**
|
||||
* Partial mbstring implementation in PHP, iconv based, UTF-8 centric.
|
||||
*
|
||||
* Implemented:
|
||||
* - mb_convert_encoding - Convert character encoding
|
||||
* - mb_decode_mimeheader - Decode string in MIME header field
|
||||
* - mb_encode_mimeheader - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED
|
||||
* - mb_convert_case - Perform case folding on a string
|
||||
* - mb_internal_encoding - Set/Get internal character encoding
|
||||
* - mb_list_encodings - Returns an array of all supported encodings
|
||||
* - mb_strlen - Get string length
|
||||
* - mb_strpos - Find position of first occurrence of string in a string
|
||||
* - mb_strrpos - Find position of last occurrence of a string in a string
|
||||
* - mb_strtolower - Make a string lowercase
|
||||
* - mb_strtoupper - Make a string uppercase
|
||||
* - mb_substitute_character - Set/Get substitution character
|
||||
* - mb_substr - Get part of string
|
||||
* - mb_stripos - Finds position of first occurrence of a string within another, case insensitive
|
||||
* - mb_stristr - Finds first occurrence of a string within another, case insensitive
|
||||
* - mb_strrchr - Finds the last occurrence of a character in a string within another
|
||||
* - mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive
|
||||
* - mb_strripos - Finds position of last occurrence of a string within another, case insensitive
|
||||
* - mb_strstr - Finds first occurrence of a string within anothers
|
||||
*
|
||||
* Not implemented:
|
||||
* - mb_check_encoding - Check if the string is valid for the specified encoding
|
||||
* - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
|
||||
* - mb_convert_variables - Convert character code in variable(s)
|
||||
* - mb_decode_numericentity - Decode HTML numeric string reference to character
|
||||
* - mb_detect_encoding - Detect character encoding
|
||||
* - mb_detect_order - Set/Get character encoding detection order
|
||||
* - mb_encode_numericentity - Encode character to HTML numeric string reference
|
||||
* - mb_ereg* - Regular expression with multibyte support
|
||||
* - mb_get_info - Get internal settings of mbstring
|
||||
* - mb_http_input - Detect HTTP input character encoding
|
||||
* - mb_http_output - Set/Get HTTP output character encoding
|
||||
* - mb_language - Set/Get current language
|
||||
* - mb_list_encodings_alias_names - Returns an array of all supported alias encodings
|
||||
* - mb_list_mime_names - Returns an array or string of all supported mime names
|
||||
* - mb_output_handler - Callback function converts character encoding in output buffer
|
||||
* - mb_parse_str - Parse GET/POST/COOKIE data and set global variable
|
||||
* - mb_preferred_mime_name - Get MIME charset string
|
||||
* - mb_regex_encoding - Returns current encoding for multibyte regex as string
|
||||
* - mb_regex_set_options - Set/Get the default options for mbregex functions
|
||||
* - mb_send_mail - Send encoded mail
|
||||
* - mb_split - Split multibyte string using regular expression
|
||||
* - mb_strcut - Get part of string
|
||||
* - mb_strimwidth - Get truncated string with specified width
|
||||
* - mb_strwidth - Return width of string
|
||||
* - mb_substr_count - Count the number of substring occurrences
|
||||
*/
|
||||
class Mbstring
|
||||
{
|
||||
const MB_CASE_FOLD = PHP_INT_MAX;
|
||||
|
||||
protected static
|
||||
|
||||
$internal_encoding = 'UTF-8',
|
||||
$caseFold = array(
|
||||
array('µ','ſ',"\xCD\x85",'ς',"\xCF\x90","\xCF\x91","\xCF\x95","\xCF\x96","\xCF\xB0","\xCF\xB1","\xCF\xB5","\xE1\xBA\x9B","\xE1\xBE\xBE"),
|
||||
array('μ','s','ι', 'σ','β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1",'ι' )
|
||||
);
|
||||
|
||||
|
||||
static function mb_convert_encoding($s, $to_encoding, $from_encoding = INF)
|
||||
{
|
||||
INF === $from_encoding && $from_encoding = self::$internal_encoding;
|
||||
|
||||
$from_encoding = strtolower($from_encoding);
|
||||
$to_encoding = strtolower($to_encoding);
|
||||
|
||||
if ('base64' === $from_encoding)
|
||||
{
|
||||
$s = base64_decode($s);
|
||||
$from_encoding = $to_encoding;
|
||||
}
|
||||
|
||||
if ('base64' === $to_encoding) return base64_encode($s);
|
||||
|
||||
if ('html-entities' === $to_encoding)
|
||||
{
|
||||
'html-entities' === $from_encoding && $from_encoding = 'Windows-1252';
|
||||
'utf-8' === $from_encoding || $s = iconv($from_encoding, 'UTF-8//IGNORE', $s);
|
||||
return preg_replace_callback('/[\x80-\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s);
|
||||
}
|
||||
|
||||
if ('html-entities' === $from_encoding)
|
||||
{
|
||||
$s = html_entity_decode($s, ENT_COMPAT, 'UTF-8');
|
||||
$from_encoding = 'UTF-8';
|
||||
}
|
||||
|
||||
return iconv($from_encoding, $to_encoding . '//IGNORE', $s);
|
||||
}
|
||||
|
||||
static function mb_decode_mimeheader($s)
|
||||
{
|
||||
return iconv_mime_decode($s, 2, self::$internal_encoding . '//IGNORE');
|
||||
}
|
||||
|
||||
static function mb_encode_mimeheader($s, $charset = INF, $transfer_encoding = INF, $linefeed = INF, $indent = INF)
|
||||
{
|
||||
user_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING);
|
||||
}
|
||||
|
||||
|
||||
static function mb_convert_case($s, $mode, $encoding = INF)
|
||||
{
|
||||
if ('' === $s) return '';
|
||||
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
if ('UTF-8' === strtoupper($encoding)) $encoding = INF;
|
||||
else $s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
|
||||
if (MB_CASE_UPPER == $mode)
|
||||
{
|
||||
static $upper;
|
||||
isset($upper) || $upper = self::getData('upperCase');
|
||||
$map = $upper;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (self::MB_CASE_FOLD === $mode) $s = str_replace(self::$caseFold[0], self::$caseFold[1], $s);
|
||||
|
||||
static $lower;
|
||||
isset($lower) || $lower = self::getData('lowerCase');
|
||||
$map = $lower;
|
||||
}
|
||||
|
||||
static $ulen_mask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4);
|
||||
|
||||
$i = 0;
|
||||
$len = strlen($s);
|
||||
|
||||
while ($i < $len)
|
||||
{
|
||||
$ulen = $s[$i] < "\x80" ? 1 : $ulen_mask[$s[$i] & "\xF0"];
|
||||
$uchr = substr($s, $i, $ulen);
|
||||
$i += $ulen;
|
||||
|
||||
if (isset($map[$uchr]))
|
||||
{
|
||||
$uchr = $map[$uchr];
|
||||
$nlen = strlen($uchr);
|
||||
|
||||
if ($nlen == $ulen)
|
||||
{
|
||||
$nlen = $i;
|
||||
do $s[--$nlen] = $uchr[--$ulen];
|
||||
while ($ulen);
|
||||
}
|
||||
else
|
||||
{
|
||||
$s = substr_replace($s, $uchr, $i - $ulen, $ulen);
|
||||
$len += $nlen - $ulen;
|
||||
$i += $nlen - $ulen;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (MB_CASE_TITLE == $mode)
|
||||
{
|
||||
$s = preg_replace_callback('/\b\p{Ll}/u', array(__CLASS__, 'title_case_callback'), $s);
|
||||
}
|
||||
|
||||
if (INF === $encoding) return $s;
|
||||
else return iconv('UTF-8', $encoding, $s);
|
||||
}
|
||||
|
||||
static function mb_internal_encoding($encoding = INF)
|
||||
{
|
||||
if (INF === $encoding) return self::$internal_encoding;
|
||||
|
||||
if ('UTF-8' === strtoupper($encoding) || false !== @iconv($encoding, $encoding, ' '))
|
||||
{
|
||||
self::$internal_encoding = $encoding;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static function mb_list_encodings()
|
||||
{
|
||||
return array('UTF-8');
|
||||
}
|
||||
|
||||
static function mb_strlen($s, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
return iconv_strlen($s, $encoding . '//IGNORE');
|
||||
}
|
||||
|
||||
static function mb_strpos ($haystack, $needle, $offset = 0, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
if ('' === (string) $needle)
|
||||
{
|
||||
user_error(__METHOD__ . ': Empty delimiter', E_USER_WARNING);
|
||||
return false;
|
||||
}
|
||||
else return iconv_strpos($haystack, $needle, $offset, $encoding . '//IGNORE');
|
||||
}
|
||||
|
||||
static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
|
||||
if ($offset != (int) $offset)
|
||||
{
|
||||
$offset = 0;
|
||||
}
|
||||
else if ($offset = (int) $offset)
|
||||
{
|
||||
$haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);
|
||||
}
|
||||
|
||||
$pos = iconv_strrpos($haystack, $needle, $encoding . '//IGNORE');
|
||||
|
||||
return false !== $pos ? $offset + $pos : false;
|
||||
}
|
||||
|
||||
static function mb_strtolower($s, $encoding = INF)
|
||||
{
|
||||
return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);
|
||||
}
|
||||
|
||||
static function mb_strtoupper($s, $encoding = INF)
|
||||
{
|
||||
return self::mb_convert_case($s, MB_CASE_UPPER, $encoding);
|
||||
}
|
||||
|
||||
static function mb_substitute_character($c = INF)
|
||||
{
|
||||
return INF !== $c ? false : 'none';
|
||||
}
|
||||
|
||||
static function mb_substr($s, $start, $length = 2147483647, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
|
||||
if ($start < 0)
|
||||
{
|
||||
$start = iconv_strlen($s, $encoding . '//IGNORE') + $start;
|
||||
if ($start < 0) $start = 0;
|
||||
}
|
||||
|
||||
if ($length < 0)
|
||||
{
|
||||
$length = iconv_strlen($s, $encoding . '//IGNORE') + $length - $start;
|
||||
if ($length < 0) return '';
|
||||
}
|
||||
|
||||
return (string) iconv_substr($s, $start, $length, $encoding . '//IGNORE');
|
||||
}
|
||||
|
||||
static function mb_stripos($haystack, $needle, $offset = 0, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
$haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
|
||||
$needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
|
||||
return self::mb_strpos($haystack, $needle, $offset, $encoding);
|
||||
}
|
||||
|
||||
static function mb_stristr($haystack, $needle, $part = false, $encoding = INF)
|
||||
{
|
||||
$pos = self::mb_stripos($haystack, $needle, 0, $encoding);
|
||||
return self::getSubpart($pos, $part, $haystack, $encoding);
|
||||
}
|
||||
|
||||
static function mb_strrchr($haystack, $needle, $part = false, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
$needle = self::mb_substr($needle, 0, 1, $encoding);
|
||||
$pos = iconv_strrpos($haystack, $needle, $encoding);
|
||||
return self::getSubpart($pos, $part, $haystack, $encoding);
|
||||
}
|
||||
|
||||
static function mb_strrichr($haystack, $needle, $part = false, $encoding = INF)
|
||||
{
|
||||
$needle = self::mb_substr($needle, 0, 1, $encoding);
|
||||
$pos = self::mb_strripos($haystack, $needle, $encoding);
|
||||
return self::getSubpart($pos, $part, $haystack, $encoding);
|
||||
}
|
||||
|
||||
static function mb_strripos($haystack, $needle, $offset = 0, $encoding = INF)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
$haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
|
||||
$needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
|
||||
return self::mb_strrpos($haystack, $needle, $offset, $encoding);
|
||||
}
|
||||
|
||||
static function mb_strstr($haystack, $needle, $part = false, $encoding = INF)
|
||||
{
|
||||
$pos = strpos($haystack, $needle);
|
||||
if (false === $pos) return false;
|
||||
if ($part) return substr($haystack, 0, $pos);
|
||||
else return substr($haystack, $pos);
|
||||
}
|
||||
|
||||
|
||||
protected static function getSubpart($pos, $part, $haystack, $encoding)
|
||||
{
|
||||
INF === $encoding && $encoding = self::$internal_encoding;
|
||||
|
||||
if (false === $pos) return false;
|
||||
if ($part) return self::mb_substr($haystack, 0, $pos, $encoding);
|
||||
else return self::mb_substr($haystack, $pos, 2147483647, $encoding);
|
||||
}
|
||||
|
||||
protected static function html_encoding_callback($m)
|
||||
{
|
||||
return htmlentities($m[0], ENT_COMPAT, 'UTF-8');
|
||||
}
|
||||
|
||||
protected static function title_case_callback($s)
|
||||
{
|
||||
return self::mb_convert_case($s[0], MB_CASE_UPPER, 'UTF-8');
|
||||
}
|
||||
|
||||
protected static function getData($file)
|
||||
{
|
||||
$file = __DIR__ . '/unidata/' . $file . '.ser';
|
||||
if (file_exists($file)) return unserialize(file_get_contents($file));
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
295
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Normalizer.php
vendored
Normal file
295
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Normalizer.php
vendored
Normal file
@@ -0,0 +1,295 @@
|
||||
<?php // vi: set fenc=utf-8 ts=4 sw=4 et:
|
||||
/*
|
||||
* Copyright (C) 2013 Nicolas Grekas - p@tchwork.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the (at your option):
|
||||
* Apache License v2.0 (http://apache.org/licenses/LICENSE-2.0.txt), or
|
||||
* GNU General Public License v2.0 (http://gnu.org/licenses/gpl-2.0.txt).
|
||||
*/
|
||||
|
||||
namespace Patchwork\PHP\Shim;
|
||||
|
||||
/**
|
||||
* Normalizer is a PHP fallback implementation of the Normalizer class provided by the intl extension.
|
||||
*
|
||||
* It has been validated with Unicode 6.1 Normalization Conformance Test.
|
||||
* See http://www.unicode.org/reports/tr15/ for detailed info about Unicode normalizations.
|
||||
*/
|
||||
class Normalizer
|
||||
{
|
||||
const
|
||||
|
||||
NONE = 1,
|
||||
FORM_D = 2, NFD = 2,
|
||||
FORM_KD = 3, NFKD = 3,
|
||||
FORM_C = 4, NFC = 4,
|
||||
FORM_KC = 5, NFKC = 5;
|
||||
|
||||
|
||||
protected static
|
||||
|
||||
$C, $D, $KD, $cC,
|
||||
$ulen_mask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4),
|
||||
$ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F";
|
||||
|
||||
|
||||
static function isNormalized($s, $form = self::NFC)
|
||||
{
|
||||
if (strspn($s, self::$ASCII) === strlen($s)) return true;
|
||||
if (self::NFC === $form && preg_match('//u', $s) && !preg_match('/[^\x00-\x{2FF}]/u', $s)) return true;
|
||||
return false; // Pretend false as quick checks implementented in PHP won't be so quick
|
||||
}
|
||||
|
||||
static function normalize($s, $form = self::NFC)
|
||||
{
|
||||
if (!preg_match('//u', $s)) return false;
|
||||
|
||||
switch ($form)
|
||||
{
|
||||
case self::NONE: return $s;
|
||||
case self::NFC: $C = true; $K = false; break;
|
||||
case self::NFD: $C = false; $K = false; break;
|
||||
case self::NFKC: $C = true; $K = true; break;
|
||||
case self::NFKD: $C = false; $K = true; break;
|
||||
default: return false;
|
||||
}
|
||||
|
||||
if (!strlen($s)) return '';
|
||||
|
||||
if ($K && empty(self::$KD)) self::$KD = self::getData('compatibilityDecomposition');
|
||||
|
||||
if (empty(self::$D))
|
||||
{
|
||||
self::$D = self::getData('canonicalDecomposition');
|
||||
self::$cC = self::getData('combiningClass');
|
||||
}
|
||||
|
||||
if ($C)
|
||||
{
|
||||
if (empty(self::$C)) self::$C = self::getData('canonicalComposition');
|
||||
return self::recompose(self::decompose($s, $K));
|
||||
}
|
||||
else return self::decompose($s, $K);
|
||||
}
|
||||
|
||||
protected static function recompose($s)
|
||||
{
|
||||
$ASCII = self::$ASCII;
|
||||
$compMap = self::$C;
|
||||
$combClass = self::$cC;
|
||||
$ulen_mask = self::$ulen_mask;
|
||||
|
||||
$result = $tail = '';
|
||||
|
||||
$i = $s[0] < "\x80" ? 1 : $ulen_mask[$s[0] & "\xF0"];
|
||||
$len = strlen($s);
|
||||
|
||||
$last_uchr = substr($s, 0, $i);
|
||||
$last_ucls = isset($combClass[$last_uchr]) ? 256 : 0;
|
||||
|
||||
while ($i < $len)
|
||||
{
|
||||
if ($s[$i] < "\x80")
|
||||
{
|
||||
// ASCII chars
|
||||
|
||||
if ($tail)
|
||||
{
|
||||
$last_uchr .= $tail;
|
||||
$tail = '';
|
||||
}
|
||||
|
||||
if ($j = strspn($s, $ASCII, $i+1))
|
||||
{
|
||||
$last_uchr .= substr($s, $i, $j);
|
||||
$i += $j;
|
||||
}
|
||||
|
||||
$result .= $last_uchr;
|
||||
$last_uchr = $s[$i];
|
||||
++$i;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ulen = $ulen_mask[$s[$i] & "\xF0"];
|
||||
$uchr = substr($s, $i, $ulen);
|
||||
|
||||
if ($last_uchr < "\xE1\x84\x80" || "\xE1\x84\x92" < $last_uchr
|
||||
|| $uchr < "\xE1\x85\xA1" || "\xE1\x85\xB5" < $uchr
|
||||
|| $last_ucls)
|
||||
{
|
||||
// Table lookup and combining chars composition
|
||||
|
||||
$ucls = isset($combClass[$uchr]) ? $combClass[$uchr] : 0;
|
||||
|
||||
if (isset($compMap[$last_uchr . $uchr]) && (!$last_ucls || $last_ucls < $ucls))
|
||||
{
|
||||
$last_uchr = $compMap[$last_uchr . $uchr];
|
||||
}
|
||||
else if ($last_ucls = $ucls) $tail .= $uchr;
|
||||
else
|
||||
{
|
||||
if ($tail)
|
||||
{
|
||||
$last_uchr .= $tail;
|
||||
$tail = '';
|
||||
}
|
||||
|
||||
$result .= $last_uchr;
|
||||
$last_uchr = $uchr;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Hangul chars
|
||||
|
||||
$L = ord($last_uchr[2]) - 0x80;
|
||||
$V = ord($uchr[2]) - 0xA1;
|
||||
$T = 0;
|
||||
|
||||
$uchr = substr($s, $i + $ulen, 3);
|
||||
|
||||
if ("\xE1\x86\xA7" <= $uchr && $uchr <= "\xE1\x87\x82")
|
||||
{
|
||||
$T = ord($uchr[2]) - 0xA7;
|
||||
0 > $T && $T += 0x40;
|
||||
$ulen += 3;
|
||||
}
|
||||
|
||||
$L = 0xAC00 + ($L * 21 + $V) * 28 + $T;
|
||||
$last_uchr = chr(0xE0 | $L>>12) . chr(0x80 | $L>>6 & 0x3F) . chr(0x80 | $L & 0x3F);
|
||||
}
|
||||
|
||||
$i += $ulen;
|
||||
}
|
||||
}
|
||||
|
||||
return $result . $last_uchr . $tail;
|
||||
}
|
||||
|
||||
protected static function decompose($s, $c)
|
||||
{
|
||||
$result = '';
|
||||
|
||||
$ASCII = self::$ASCII;
|
||||
$decompMap = self::$D;
|
||||
$combClass = self::$cC;
|
||||
$ulen_mask = self::$ulen_mask;
|
||||
if ($c) $compatMap = self::$KD;
|
||||
|
||||
$c = array();
|
||||
$i = 0;
|
||||
$len = strlen($s);
|
||||
|
||||
while ($i < $len)
|
||||
{
|
||||
if ($s[$i] < "\x80")
|
||||
{
|
||||
// ASCII chars
|
||||
|
||||
if ($c)
|
||||
{
|
||||
ksort($c);
|
||||
$result .= implode('', $c);
|
||||
$c = array();
|
||||
}
|
||||
|
||||
$j = 1 + strspn($s, $ASCII, $i+1);
|
||||
$result .= substr($s, $i, $j);
|
||||
$i += $j;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ulen = $ulen_mask[$s[$i] & "\xF0"];
|
||||
$uchr = substr($s, $i, $ulen);
|
||||
$i += $ulen;
|
||||
|
||||
if (isset($combClass[$uchr]))
|
||||
{
|
||||
// Combining chars, for sorting
|
||||
|
||||
isset($c[$combClass[$uchr]]) || $c[$combClass[$uchr]] = '';
|
||||
$c[$combClass[$uchr]] .= isset($compatMap[$uchr]) ? $compatMap[$uchr] : (isset($decompMap[$uchr]) ? $decompMap[$uchr] : $uchr);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($c)
|
||||
{
|
||||
ksort($c);
|
||||
$result .= implode('', $c);
|
||||
$c = array();
|
||||
}
|
||||
|
||||
if ($uchr < "\xEA\xB0\x80" || "\xED\x9E\xA3" < $uchr)
|
||||
{
|
||||
// Table lookup
|
||||
|
||||
$j = isset($compatMap[$uchr]) ? $compatMap[$uchr] : (isset($decompMap[$uchr]) ? $decompMap[$uchr] : $uchr);
|
||||
|
||||
if ($uchr != $j)
|
||||
{
|
||||
$uchr = $j;
|
||||
|
||||
$j = strlen($uchr);
|
||||
$ulen = $uchr[0] < "\x80" ? 1 : $ulen_mask[$uchr[0] & "\xF0"];
|
||||
|
||||
if ($ulen != $j)
|
||||
{
|
||||
// Put trailing chars in $s
|
||||
|
||||
$j -= $ulen;
|
||||
$i -= $j;
|
||||
|
||||
if (0 > $i)
|
||||
{
|
||||
$s = str_repeat(' ', -$i) . $s;
|
||||
$len -= $i;
|
||||
$i = 0;
|
||||
}
|
||||
|
||||
while ($j--) $s[$i+$j] = $uchr[$ulen+$j];
|
||||
|
||||
$uchr = substr($uchr, 0, $ulen);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Hangul chars
|
||||
|
||||
$uchr = unpack('C*', $uchr);
|
||||
$j = (($uchr[1]-224) << 12) + (($uchr[2]-128) << 6) + $uchr[3] - 0xAC80;
|
||||
|
||||
$uchr = "\xE1\x84" . chr(0x80 + (int) ($j / 588))
|
||||
. "\xE1\x85" . chr(0xA1 + (int) (($j % 588) / 28));
|
||||
|
||||
if ($j %= 28)
|
||||
{
|
||||
$uchr .= $j < 25
|
||||
? ("\xE1\x86" . chr(0xA7 + $j))
|
||||
: ("\xE1\x87" . chr(0x67 + $j));
|
||||
}
|
||||
}
|
||||
|
||||
$result .= $uchr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($c)
|
||||
{
|
||||
ksort($c);
|
||||
$result .= implode('', $c);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected static function getData($file)
|
||||
{
|
||||
$file = __DIR__ . '/unidata/' . $file . '.ser';
|
||||
if (file_exists($file)) return unserialize(file_get_contents($file));
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
60
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Xml.php
vendored
Normal file
60
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Xml.php
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php // vi: set fenc=utf-8 ts=4 sw=4 et:
|
||||
/*
|
||||
* Copyright (C) 2013 Nicolas Grekas - p@tchwork.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the (at your option):
|
||||
* Apache License v2.0 (http://apache.org/licenses/LICENSE-2.0.txt), or
|
||||
* GNU General Public License v2.0 (http://gnu.org/licenses/gpl-2.0.txt).
|
||||
*/
|
||||
|
||||
namespace Patchwork\PHP\Shim;
|
||||
|
||||
/**
|
||||
* utf8_encode/decode
|
||||
*/
|
||||
class Xml
|
||||
{
|
||||
static function utf8_encode($s)
|
||||
{
|
||||
$len = strlen($s);
|
||||
$e = $s . $s;
|
||||
|
||||
for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) switch (true)
|
||||
{
|
||||
case $s[$i] < "\x80": $e[$j] = $s[$i]; break;
|
||||
case $s[$i] < "\xC0": $e[$j] = "\xC2"; $e[++$j] = $s[$i]; break;
|
||||
default: $e[$j] = "\xC3"; $e[++$j] = chr(ord($s[$i]) - 64); break;
|
||||
}
|
||||
|
||||
return substr($e, 0, $j);
|
||||
}
|
||||
|
||||
static function utf8_decode($s)
|
||||
{
|
||||
$len = strlen($s);
|
||||
|
||||
for ($i = 0, $j = 0; $i < $len; ++$i, ++$j)
|
||||
{
|
||||
switch ($s[$i] & "\xF0")
|
||||
{
|
||||
case "\xC0":
|
||||
case "\xD0":
|
||||
$c = (ord($s[$i] & "\x1F") << 6) | ord($s[++$i] & "\x3F");
|
||||
$s[$j] = $c < 256 ? chr($c) : '?';
|
||||
break;
|
||||
|
||||
case "\xF0": ++$i;
|
||||
case "\xE0":
|
||||
$s[$j] = '?';
|
||||
$i += 2;
|
||||
break;
|
||||
|
||||
default:
|
||||
$s[$j] = $s[$i];
|
||||
}
|
||||
}
|
||||
|
||||
return substr($s, 0, $j);
|
||||
}
|
||||
}
|
||||
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.big5.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.big5.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp037.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp037.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp1006.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp1006.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp1026.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp1026.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp424.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp424.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp437.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp437.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp500.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp500.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp737.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp737.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp775.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp775.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp850.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp850.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp852.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp852.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp855.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp855.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp856.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp856.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp857.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp857.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp860.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp860.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp861.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp861.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp862.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp862.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp863.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp863.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp864.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp864.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp865.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp865.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp866.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp866.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp869.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp869.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp874.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp874.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp875.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp875.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp932.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp932.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp936.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp936.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp949.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp949.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp950.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.cp950.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.gsm0338.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.gsm0338.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-1.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-1.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-10.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-10.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-11.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-11.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-13.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-13.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-14.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-14.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-15.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-15.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-16.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-16.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-2.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-2.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-3.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-3.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-4.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-4.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-5.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-5.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-6.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-6.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-7.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-7.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-8.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-8.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-9.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.iso-8859-9.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.koi8-r.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.koi8-r.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.koi8-u.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.koi8-u.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.mazovia.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.mazovia.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.nextstep.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.nextstep.ser
vendored
Normal file
Binary file not shown.
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.stdenc.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.stdenc.ser
vendored
Normal file
@@ -0,0 +1 @@
|
||||
a:149:{s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:1:""";s:1:""";s:1:"#";s:1:"#";s:1:"$";s:1:"$";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:1:"'";s:3:"’";s:1:"(";s:1:"(";s:1:")";s:1:")";s:1:"*";s:1:"*";s:1:"+";s:1:"+";s:1:",";s:1:",";s:1:"-";s:1:"-";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;s:1:"0";i:1;s:1:"1";i:2;s:1:"2";i:3;s:1:"3";i:4;s:1:"4";i:5;s:1:"5";i:6;s:1:"6";i:7;s:1:"7";i:8;s:1:"8";i:9;s:1:"9";s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:1:"@";s:1:"@";s:1:"A";s:1:"A";s:1:"B";s:1:"B";s:1:"C";s:1:"C";s:1:"D";s:1:"D";s:1:"E";s:1:"E";s:1:"F";s:1:"F";s:1:"G";s:1:"G";s:1:"H";s:1:"H";s:1:"I";s:1:"I";s:1:"J";s:1:"J";s:1:"K";s:1:"K";s:1:"L";s:1:"L";s:1:"M";s:1:"M";s:1:"N";s:1:"N";s:1:"O";s:1:"O";s:1:"P";s:1:"P";s:1:"Q";s:1:"Q";s:1:"R";s:1:"R";s:1:"S";s:1:"S";s:1:"T";s:1:"T";s:1:"U";s:1:"U";s:1:"V";s:1:"V";s:1:"W";s:1:"W";s:1:"X";s:1:"X";s:1:"Y";s:1:"Y";s:1:"Z";s:1:"Z";s:1:"[";s:1:"[";s:1:"\";s:1:"\";s:1:"]";s:1:"]";s:1:"^";s:1:"^";s:1:"_";s:1:"_";s:1:"`";s:3:"‘";s:1:"a";s:1:"a";s:1:"b";s:1:"b";s:1:"c";s:1:"c";s:1:"d";s:1:"d";s:1:"e";s:1:"e";s:1:"f";s:1:"f";s:1:"g";s:1:"g";s:1:"h";s:1:"h";s:1:"i";s:1:"i";s:1:"j";s:1:"j";s:1:"k";s:1:"k";s:1:"l";s:1:"l";s:1:"m";s:1:"m";s:1:"n";s:1:"n";s:1:"o";s:1:"o";s:1:"p";s:1:"p";s:1:"q";s:1:"q";s:1:"r";s:1:"r";s:1:"s";s:1:"s";s:1:"t";s:1:"t";s:1:"u";s:1:"u";s:1:"v";s:1:"v";s:1:"w";s:1:"w";s:1:"x";s:1:"x";s:1:"y";s:1:"y";s:1:"z";s:1:"z";s:1:"{";s:1:"{";s:1:"|";s:1:"|";s:1:"}";s:1:"}";s:1:"~";s:1:"~";s:1:"<22>";s:2:"¡";s:1:"<22>";s:2:"¢";s:1:"<22>";s:2:"£";s:1:"<22>";s:3:"⁄";s:1:"<22>";s:2:"¥";s:1:"<22>";s:2:"ƒ";s:1:"<22>";s:2:"§";s:1:"<22>";s:2:"¤";s:1:"<22>";s:1:"'";s:1:"<22>";s:3:"“";s:1:"<22>";s:2:"«";s:1:"<22>";s:3:"‹";s:1:"<22>";s:3:"›";s:1:"<22>";s:3:"fi";s:1:"<22>";s:3:"fl";s:1:"<22>";s:3:"–";s:1:"<22>";s:3:"†";s:1:"<22>";s:3:"‡";s:1:"<22>";s:2:"·";s:1:"<22>";s:2:"¶";s:1:"<22>";s:3:"•";s:1:"<22>";s:3:"‚";s:1:"<22>";s:3:"„";s:1:"<22>";s:3:"”";s:1:"<22>";s:2:"»";s:1:"<22>";s:3:"…";s:1:"<22>";s:3:"‰";s:1:"<22>";s:2:"¿";s:1:"<22>";s:1:"`";s:1:"<22>";s:2:"´";s:1:"<22>";s:2:"ˆ";s:1:"<22>";s:2:"˜";s:1:"<22>";s:2:"¯";s:1:"<22>";s:2:"˘";s:1:"<22>";s:2:"˙";s:1:"<22>";s:2:"¨";s:1:"<22>";s:2:"˚";s:1:"<22>";s:2:"¸";s:1:"<22>";s:2:"˝";s:1:"<22>";s:2:"˛";s:1:"<22>";s:2:"ˇ";s:1:"<22>";s:3:"—";s:1:"<22>";s:2:"Æ";s:1:"<22>";s:2:"ª";s:1:"<22>";s:2:"Ł";s:1:"<22>";s:2:"Ø";s:1:"<22>";s:2:"Œ";s:1:"<22>";s:2:"º";s:1:"<22>";s:2:"æ";s:1:"<22>";s:2:"ı";s:1:"<22>";s:2:"ł";s:1:"<22>";s:2:"ø";s:1:"<22>";s:2:"œ";s:1:"<22>";s:2:"ß";}
|
||||
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.symbol.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.symbol.ser
vendored
Normal file
@@ -0,0 +1 @@
|
||||
a:189:{s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:1:""";s:3:"∀";s:1:"#";s:1:"#";s:1:"$";s:3:"∃";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:1:"'";s:3:"∋";s:1:"(";s:1:"(";s:1:")";s:1:")";s:1:"*";s:3:"∗";s:1:"+";s:1:"+";s:1:",";s:1:",";s:1:"-";s:3:"−";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;s:1:"0";i:1;s:1:"1";i:2;s:1:"2";i:3;s:1:"3";i:4;s:1:"4";i:5;s:1:"5";i:6;s:1:"6";i:7;s:1:"7";i:8;s:1:"8";i:9;s:1:"9";s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:1:"@";s:3:"≅";s:1:"A";s:2:"Α";s:1:"B";s:2:"Β";s:1:"C";s:2:"Χ";s:1:"D";s:2:"Δ";s:1:"E";s:2:"Ε";s:1:"F";s:2:"Φ";s:1:"G";s:2:"Γ";s:1:"H";s:2:"Η";s:1:"I";s:2:"Ι";s:1:"J";s:2:"ϑ";s:1:"K";s:2:"Κ";s:1:"L";s:2:"Λ";s:1:"M";s:2:"Μ";s:1:"N";s:2:"Ν";s:1:"O";s:2:"Ο";s:1:"P";s:2:"Π";s:1:"Q";s:2:"Θ";s:1:"R";s:2:"Ρ";s:1:"S";s:2:"Σ";s:1:"T";s:2:"Τ";s:1:"U";s:2:"Υ";s:1:"V";s:2:"ς";s:1:"W";s:2:"Ω";s:1:"X";s:2:"Ξ";s:1:"Y";s:2:"Ψ";s:1:"Z";s:2:"Ζ";s:1:"[";s:1:"[";s:1:"\";s:3:"∴";s:1:"]";s:1:"]";s:1:"^";s:3:"⊥";s:1:"_";s:1:"_";s:1:"`";s:3:"";s:1:"a";s:2:"α";s:1:"b";s:2:"β";s:1:"c";s:2:"χ";s:1:"d";s:2:"δ";s:1:"e";s:2:"ε";s:1:"f";s:2:"φ";s:1:"g";s:2:"γ";s:1:"h";s:2:"η";s:1:"i";s:2:"ι";s:1:"j";s:2:"ϕ";s:1:"k";s:2:"κ";s:1:"l";s:2:"λ";s:1:"m";s:2:"µ";s:1:"n";s:2:"ν";s:1:"o";s:2:"ο";s:1:"p";s:2:"π";s:1:"q";s:2:"θ";s:1:"r";s:2:"ρ";s:1:"s";s:2:"σ";s:1:"t";s:2:"τ";s:1:"u";s:2:"υ";s:1:"v";s:2:"ϖ";s:1:"w";s:2:"ω";s:1:"x";s:2:"ξ";s:1:"y";s:2:"ψ";s:1:"z";s:2:"ζ";s:1:"{";s:1:"{";s:1:"|";s:1:"|";s:1:"}";s:1:"}";s:1:"~";s:3:"∼";s:1:"<22>";s:3:"€";s:1:"<22>";s:2:"ϒ";s:1:"<22>";s:3:"′";s:1:"<22>";s:3:"≤";s:1:"<22>";s:3:"⁄";s:1:"<22>";s:3:"∞";s:1:"<22>";s:2:"ƒ";s:1:"<22>";s:3:"♣";s:1:"<22>";s:3:"♦";s:1:"<22>";s:3:"♥";s:1:"<22>";s:3:"♠";s:1:"<22>";s:3:"↔";s:1:"<22>";s:3:"←";s:1:"<22>";s:3:"↑";s:1:"<22>";s:3:"→";s:1:"<22>";s:3:"↓";s:1:"<22>";s:2:"°";s:1:"<22>";s:2:"±";s:1:"<22>";s:3:"″";s:1:"<22>";s:3:"≥";s:1:"<22>";s:2:"×";s:1:"<22>";s:3:"∝";s:1:"<22>";s:3:"∂";s:1:"<22>";s:3:"•";s:1:"<22>";s:2:"÷";s:1:"<22>";s:3:"≠";s:1:"<22>";s:3:"≡";s:1:"<22>";s:3:"≈";s:1:"<22>";s:3:"…";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"↵";s:1:"<22>";s:3:"ℵ";s:1:"<22>";s:3:"ℑ";s:1:"<22>";s:3:"ℜ";s:1:"<22>";s:3:"℘";s:1:"<22>";s:3:"⊗";s:1:"<22>";s:3:"⊕";s:1:"<22>";s:3:"∅";s:1:"<22>";s:3:"∩";s:1:"<22>";s:3:"∪";s:1:"<22>";s:3:"⊃";s:1:"<22>";s:3:"⊇";s:1:"<22>";s:3:"⊄";s:1:"<22>";s:3:"⊂";s:1:"<22>";s:3:"⊆";s:1:"<22>";s:3:"∈";s:1:"<22>";s:3:"∉";s:1:"<22>";s:3:"∠";s:1:"<22>";s:3:"∇";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"∏";s:1:"<22>";s:3:"√";s:1:"<22>";s:3:"⋅";s:1:"<22>";s:2:"¬";s:1:"<22>";s:3:"∧";s:1:"<22>";s:3:"∨";s:1:"<22>";s:3:"⇔";s:1:"<22>";s:3:"⇐";s:1:"<22>";s:3:"⇑";s:1:"<22>";s:3:"⇒";s:1:"<22>";s:3:"⇓";s:1:"<22>";s:3:"◊";s:1:"<22>";s:3:"〈";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"∑";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"〉";s:1:"<22>";s:3:"∫";s:1:"<22>";s:3:"⌠";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"⌡";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";}
|
||||
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.turkish.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.turkish.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.us-ascii-quotes.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.us-ascii-quotes.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.us-ascii.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.us-ascii.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1250.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1250.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1251.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1251.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1252.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1252.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1253.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1253.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1254.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1254.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1255.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1255.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1256.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1256.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1257.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1257.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1258.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.windows-1258.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-ce.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-ce.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-cyrillic.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-cyrillic.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-greek.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-greek.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-icelandic.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-icelandic.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-roman.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.x-mac-roman.ser
vendored
Normal file
Binary file not shown.
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.zdingbat.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/from.zdingbat.ser
vendored
Normal file
@@ -0,0 +1 @@
|
||||
a:202:{s:1:" ";s:1:" ";s:1:"!";s:3:"✁";s:1:""";s:3:"✂";s:1:"#";s:3:"✃";s:1:"$";s:3:"✄";s:1:"%";s:3:"☎";s:1:"&";s:3:"✆";s:1:"'";s:3:"✇";s:1:"(";s:3:"✈";s:1:")";s:3:"✉";s:1:"*";s:3:"☛";s:1:"+";s:3:"☞";s:1:",";s:3:"✌";s:1:"-";s:3:"✍";s:1:".";s:3:"✎";s:1:"/";s:3:"✏";i:0;s:3:"✐";i:1;s:3:"✑";i:2;s:3:"✒";i:3;s:3:"✓";i:4;s:3:"✔";i:5;s:3:"✕";i:6;s:3:"✖";i:7;s:3:"✗";i:8;s:3:"✘";i:9;s:3:"✙";s:1:":";s:3:"✚";s:1:";";s:3:"✛";s:1:"<";s:3:"✜";s:1:"=";s:3:"✝";s:1:">";s:3:"✞";s:1:"?";s:3:"✟";s:1:"@";s:3:"✠";s:1:"A";s:3:"✡";s:1:"B";s:3:"✢";s:1:"C";s:3:"✣";s:1:"D";s:3:"✤";s:1:"E";s:3:"✥";s:1:"F";s:3:"✦";s:1:"G";s:3:"✧";s:1:"H";s:3:"★";s:1:"I";s:3:"✩";s:1:"J";s:3:"✪";s:1:"K";s:3:"✫";s:1:"L";s:3:"✬";s:1:"M";s:3:"✭";s:1:"N";s:3:"✮";s:1:"O";s:3:"✯";s:1:"P";s:3:"✰";s:1:"Q";s:3:"✱";s:1:"R";s:3:"✲";s:1:"S";s:3:"✳";s:1:"T";s:3:"✴";s:1:"U";s:3:"✵";s:1:"V";s:3:"✶";s:1:"W";s:3:"✷";s:1:"X";s:3:"✸";s:1:"Y";s:3:"✹";s:1:"Z";s:3:"✺";s:1:"[";s:3:"✻";s:1:"\";s:3:"✼";s:1:"]";s:3:"✽";s:1:"^";s:3:"✾";s:1:"_";s:3:"✿";s:1:"`";s:3:"❀";s:1:"a";s:3:"❁";s:1:"b";s:3:"❂";s:1:"c";s:3:"❃";s:1:"d";s:3:"❄";s:1:"e";s:3:"❅";s:1:"f";s:3:"❆";s:1:"g";s:3:"❇";s:1:"h";s:3:"❈";s:1:"i";s:3:"❉";s:1:"j";s:3:"❊";s:1:"k";s:3:"❋";s:1:"l";s:3:"●";s:1:"m";s:3:"❍";s:1:"n";s:3:"■";s:1:"o";s:3:"❏";s:1:"p";s:3:"❐";s:1:"q";s:3:"❑";s:1:"r";s:3:"❒";s:1:"s";s:3:"▲";s:1:"t";s:3:"▼";s:1:"u";s:3:"◆";s:1:"v";s:3:"❖";s:1:"w";s:3:"◗";s:1:"x";s:3:"❘";s:1:"y";s:3:"❙";s:1:"z";s:3:"❚";s:1:"{";s:3:"❛";s:1:"|";s:3:"❜";s:1:"}";s:3:"❝";s:1:"~";s:3:"❞";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"❡";s:1:"<22>";s:3:"❢";s:1:"<22>";s:3:"❣";s:1:"<22>";s:3:"❤";s:1:"<22>";s:3:"❥";s:1:"<22>";s:3:"❦";s:1:"<22>";s:3:"❧";s:1:"<22>";s:3:"♣";s:1:"<22>";s:3:"♦";s:1:"<22>";s:3:"♥";s:1:"<22>";s:3:"♠";s:1:"<22>";s:3:"①";s:1:"<22>";s:3:"②";s:1:"<22>";s:3:"③";s:1:"<22>";s:3:"④";s:1:"<22>";s:3:"⑤";s:1:"<22>";s:3:"⑥";s:1:"<22>";s:3:"⑦";s:1:"<22>";s:3:"⑧";s:1:"<22>";s:3:"⑨";s:1:"<22>";s:3:"⑩";s:1:"<22>";s:3:"❶";s:1:"<22>";s:3:"❷";s:1:"<22>";s:3:"❸";s:1:"<22>";s:3:"❹";s:1:"<22>";s:3:"❺";s:1:"<22>";s:3:"❻";s:1:"<22>";s:3:"❼";s:1:"<22>";s:3:"❽";s:1:"<22>";s:3:"❾";s:1:"<22>";s:3:"❿";s:1:"<22>";s:3:"➀";s:1:"<22>";s:3:"➁";s:1:"<22>";s:3:"➂";s:1:"<22>";s:3:"➃";s:1:"<22>";s:3:"➄";s:1:"<22>";s:3:"➅";s:1:"<22>";s:3:"➆";s:1:"<22>";s:3:"➇";s:1:"<22>";s:3:"➈";s:1:"<22>";s:3:"➉";s:1:"<22>";s:3:"➊";s:1:"<22>";s:3:"➋";s:1:"<22>";s:3:"➌";s:1:"<22>";s:3:"➍";s:1:"<22>";s:3:"➎";s:1:"<22>";s:3:"➏";s:1:"<22>";s:3:"➐";s:1:"<22>";s:3:"➑";s:1:"<22>";s:3:"➒";s:1:"<22>";s:3:"➓";s:1:"<22>";s:3:"➔";s:1:"<22>";s:3:"→";s:1:"<22>";s:3:"↔";s:1:"<22>";s:3:"↕";s:1:"<22>";s:3:"➘";s:1:"<22>";s:3:"➙";s:1:"<22>";s:3:"➚";s:1:"<22>";s:3:"➛";s:1:"<22>";s:3:"➜";s:1:"<22>";s:3:"➝";s:1:"<22>";s:3:"➞";s:1:"<22>";s:3:"➟";s:1:"<22>";s:3:"➠";s:1:"<22>";s:3:"➡";s:1:"<22>";s:3:"➢";s:1:"<22>";s:3:"➣";s:1:"<22>";s:3:"➤";s:1:"<22>";s:3:"➥";s:1:"<22>";s:3:"➦";s:1:"<22>";s:3:"➧";s:1:"<22>";s:3:"➨";s:1:"<22>";s:3:"➩";s:1:"<22>";s:3:"➪";s:1:"<22>";s:3:"➫";s:1:"<22>";s:3:"➬";s:1:"<22>";s:3:"➭";s:1:"<22>";s:3:"➮";s:1:"<22>";s:3:"➯";s:1:"<22>";s:3:"➱";s:1:"<22>";s:3:"➲";s:1:"<22>";s:3:"➳";s:1:"<22>";s:3:"➴";s:1:"<22>";s:3:"➵";s:1:"<22>";s:3:"➶";s:1:"<22>";s:3:"➷";s:1:"<22>";s:3:"➸";s:1:"<22>";s:3:"➹";s:1:"<22>";s:3:"➺";s:1:"<22>";s:3:"➻";s:1:"<22>";s:3:"➼";s:1:"<22>";s:3:"➽";s:1:"<22>";s:3:"➾";}
|
||||
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.gsm0338.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.gsm0338.ser
vendored
Normal file
Binary file not shown.
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.mazovia.ser
vendored
Normal file
BIN
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.mazovia.ser
vendored
Normal file
Binary file not shown.
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.stdenc.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.stdenc.ser
vendored
Normal file
@@ -0,0 +1 @@
|
||||
a:154:{s:2:" ";s:1:" ";s:2:"";s:1:"-";s:3:"∕";s:1:"<22>";s:3:"∙";s:1:"<22>";s:2:"ˉ";s:1:"<22>";s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:1:""";s:1:""";s:1:"#";s:1:"#";s:1:"$";s:1:"$";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:3:"’";s:1:"'";s:1:"(";s:1:"(";s:1:")";s:1:")";s:1:"*";s:1:"*";s:1:"+";s:1:"+";s:1:",";s:1:",";s:1:"-";s:1:"-";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:1:"@";s:1:"@";s:1:"A";s:1:"A";s:1:"B";s:1:"B";s:1:"C";s:1:"C";s:1:"D";s:1:"D";s:1:"E";s:1:"E";s:1:"F";s:1:"F";s:1:"G";s:1:"G";s:1:"H";s:1:"H";s:1:"I";s:1:"I";s:1:"J";s:1:"J";s:1:"K";s:1:"K";s:1:"L";s:1:"L";s:1:"M";s:1:"M";s:1:"N";s:1:"N";s:1:"O";s:1:"O";s:1:"P";s:1:"P";s:1:"Q";s:1:"Q";s:1:"R";s:1:"R";s:1:"S";s:1:"S";s:1:"T";s:1:"T";s:1:"U";s:1:"U";s:1:"V";s:1:"V";s:1:"W";s:1:"W";s:1:"X";s:1:"X";s:1:"Y";s:1:"Y";s:1:"Z";s:1:"Z";s:1:"[";s:1:"[";s:1:"\";s:1:"\";s:1:"]";s:1:"]";s:1:"^";s:1:"^";s:1:"_";s:1:"_";s:3:"‘";s:1:"`";s:1:"a";s:1:"a";s:1:"b";s:1:"b";s:1:"c";s:1:"c";s:1:"d";s:1:"d";s:1:"e";s:1:"e";s:1:"f";s:1:"f";s:1:"g";s:1:"g";s:1:"h";s:1:"h";s:1:"i";s:1:"i";s:1:"j";s:1:"j";s:1:"k";s:1:"k";s:1:"l";s:1:"l";s:1:"m";s:1:"m";s:1:"n";s:1:"n";s:1:"o";s:1:"o";s:1:"p";s:1:"p";s:1:"q";s:1:"q";s:1:"r";s:1:"r";s:1:"s";s:1:"s";s:1:"t";s:1:"t";s:1:"u";s:1:"u";s:1:"v";s:1:"v";s:1:"w";s:1:"w";s:1:"x";s:1:"x";s:1:"y";s:1:"y";s:1:"z";s:1:"z";s:1:"{";s:1:"{";s:1:"|";s:1:"|";s:1:"}";s:1:"}";s:1:"~";s:1:"~";s:2:"¡";s:1:"<22>";s:2:"¢";s:1:"<22>";s:2:"£";s:1:"<22>";s:3:"⁄";s:1:"<22>";s:2:"¥";s:1:"<22>";s:2:"ƒ";s:1:"<22>";s:2:"§";s:1:"<22>";s:2:"¤";s:1:"<22>";s:1:"'";s:1:"<22>";s:3:"“";s:1:"<22>";s:2:"«";s:1:"<22>";s:3:"‹";s:1:"<22>";s:3:"›";s:1:"<22>";s:3:"fi";s:1:"<22>";s:3:"fl";s:1:"<22>";s:3:"–";s:1:"<22>";s:3:"†";s:1:"<22>";s:3:"‡";s:1:"<22>";s:2:"·";s:1:"<22>";s:2:"¶";s:1:"<22>";s:3:"•";s:1:"<22>";s:3:"‚";s:1:"<22>";s:3:"„";s:1:"<22>";s:3:"”";s:1:"<22>";s:2:"»";s:1:"<22>";s:3:"…";s:1:"<22>";s:3:"‰";s:1:"<22>";s:2:"¿";s:1:"<22>";s:1:"`";s:1:"<22>";s:2:"´";s:1:"<22>";s:2:"ˆ";s:1:"<22>";s:2:"˜";s:1:"<22>";s:2:"¯";s:1:"<22>";s:2:"˘";s:1:"<22>";s:2:"˙";s:1:"<22>";s:2:"¨";s:1:"<22>";s:2:"˚";s:1:"<22>";s:2:"¸";s:1:"<22>";s:2:"˝";s:1:"<22>";s:2:"˛";s:1:"<22>";s:2:"ˇ";s:1:"<22>";s:3:"—";s:1:"<22>";s:2:"Æ";s:1:"<22>";s:2:"ª";s:1:"<22>";s:2:"Ł";s:1:"<22>";s:2:"Ø";s:1:"<22>";s:2:"Œ";s:1:"<22>";s:2:"º";s:1:"<22>";s:2:"æ";s:1:"<22>";s:2:"ı";s:1:"<22>";s:2:"ł";s:1:"<22>";s:2:"ø";s:1:"<22>";s:2:"œ";s:1:"<22>";s:2:"ß";s:1:"<22>";}
|
||||
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.symbol.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.symbol.ser
vendored
Normal file
@@ -0,0 +1 @@
|
||||
a:194:{s:2:" ";s:1:" ";s:3:"∆";s:1:"D";s:3:"Ω";s:1:"W";s:2:"μ";s:1:"m";s:3:"∕";s:1:"<22>";s:1:" ";s:1:" ";s:1:"!";s:1:"!";s:3:"∀";s:1:""";s:1:"#";s:1:"#";s:3:"∃";s:1:"$";s:1:"%";s:1:"%";s:1:"&";s:1:"&";s:3:"∋";s:1:"'";s:1:"(";s:1:"(";s:1:")";s:1:")";s:3:"∗";s:1:"*";s:1:"+";s:1:"+";s:1:",";s:1:",";s:3:"−";s:1:"-";s:1:".";s:1:".";s:1:"/";s:1:"/";i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;s:1:":";s:1:":";s:1:";";s:1:";";s:1:"<";s:1:"<";s:1:"=";s:1:"=";s:1:">";s:1:">";s:1:"?";s:1:"?";s:3:"≅";s:1:"@";s:2:"Α";s:1:"A";s:2:"Β";s:1:"B";s:2:"Χ";s:1:"C";s:2:"Δ";s:1:"D";s:2:"Ε";s:1:"E";s:2:"Φ";s:1:"F";s:2:"Γ";s:1:"G";s:2:"Η";s:1:"H";s:2:"Ι";s:1:"I";s:2:"ϑ";s:1:"J";s:2:"Κ";s:1:"K";s:2:"Λ";s:1:"L";s:2:"Μ";s:1:"M";s:2:"Ν";s:1:"N";s:2:"Ο";s:1:"O";s:2:"Π";s:1:"P";s:2:"Θ";s:1:"Q";s:2:"Ρ";s:1:"R";s:2:"Σ";s:1:"S";s:2:"Τ";s:1:"T";s:2:"Υ";s:1:"U";s:2:"ς";s:1:"V";s:2:"Ω";s:1:"W";s:2:"Ξ";s:1:"X";s:2:"Ψ";s:1:"Y";s:2:"Ζ";s:1:"Z";s:1:"[";s:1:"[";s:3:"∴";s:1:"\";s:1:"]";s:1:"]";s:3:"⊥";s:1:"^";s:1:"_";s:1:"_";s:3:"";s:1:"`";s:2:"α";s:1:"a";s:2:"β";s:1:"b";s:2:"χ";s:1:"c";s:2:"δ";s:1:"d";s:2:"ε";s:1:"e";s:2:"φ";s:1:"f";s:2:"γ";s:1:"g";s:2:"η";s:1:"h";s:2:"ι";s:1:"i";s:2:"ϕ";s:1:"j";s:2:"κ";s:1:"k";s:2:"λ";s:1:"l";s:2:"µ";s:1:"m";s:2:"ν";s:1:"n";s:2:"ο";s:1:"o";s:2:"π";s:1:"p";s:2:"θ";s:1:"q";s:2:"ρ";s:1:"r";s:2:"σ";s:1:"s";s:2:"τ";s:1:"t";s:2:"υ";s:1:"u";s:2:"ϖ";s:1:"v";s:2:"ω";s:1:"w";s:2:"ξ";s:1:"x";s:2:"ψ";s:1:"y";s:2:"ζ";s:1:"z";s:1:"{";s:1:"{";s:1:"|";s:1:"|";s:1:"}";s:1:"}";s:3:"∼";s:1:"~";s:3:"€";s:1:"<22>";s:2:"ϒ";s:1:"<22>";s:3:"′";s:1:"<22>";s:3:"≤";s:1:"<22>";s:3:"⁄";s:1:"<22>";s:3:"∞";s:1:"<22>";s:2:"ƒ";s:1:"<22>";s:3:"♣";s:1:"<22>";s:3:"♦";s:1:"<22>";s:3:"♥";s:1:"<22>";s:3:"♠";s:1:"<22>";s:3:"↔";s:1:"<22>";s:3:"←";s:1:"<22>";s:3:"↑";s:1:"<22>";s:3:"→";s:1:"<22>";s:3:"↓";s:1:"<22>";s:2:"°";s:1:"<22>";s:2:"±";s:1:"<22>";s:3:"″";s:1:"<22>";s:3:"≥";s:1:"<22>";s:2:"×";s:1:"<22>";s:3:"∝";s:1:"<22>";s:3:"∂";s:1:"<22>";s:3:"•";s:1:"<22>";s:2:"÷";s:1:"<22>";s:3:"≠";s:1:"<22>";s:3:"≡";s:1:"<22>";s:3:"≈";s:1:"<22>";s:3:"…";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"↵";s:1:"<22>";s:3:"ℵ";s:1:"<22>";s:3:"ℑ";s:1:"<22>";s:3:"ℜ";s:1:"<22>";s:3:"℘";s:1:"<22>";s:3:"⊗";s:1:"<22>";s:3:"⊕";s:1:"<22>";s:3:"∅";s:1:"<22>";s:3:"∩";s:1:"<22>";s:3:"∪";s:1:"<22>";s:3:"⊃";s:1:"<22>";s:3:"⊇";s:1:"<22>";s:3:"⊄";s:1:"<22>";s:3:"⊂";s:1:"<22>";s:3:"⊆";s:1:"<22>";s:3:"∈";s:1:"<22>";s:3:"∉";s:1:"<22>";s:3:"∠";s:1:"<22>";s:3:"∇";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"∏";s:1:"<22>";s:3:"√";s:1:"<22>";s:3:"⋅";s:1:"<22>";s:2:"¬";s:1:"<22>";s:3:"∧";s:1:"<22>";s:3:"∨";s:1:"<22>";s:3:"⇔";s:1:"<22>";s:3:"⇐";s:1:"<22>";s:3:"⇑";s:1:"<22>";s:3:"⇒";s:1:"<22>";s:3:"⇓";s:1:"<22>";s:3:"◊";s:1:"<22>";s:3:"〈";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"∑";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"〉";s:1:"<22>";s:3:"∫";s:1:"<22>";s:3:"⌠";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"⌡";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";}
|
||||
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.zdingbat.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/to.zdingbat.ser
vendored
Normal file
@@ -0,0 +1 @@
|
||||
a:203:{s:2:" ";s:1:" ";s:1:" ";s:1:" ";s:3:"✁";s:1:"!";s:3:"✂";s:1:""";s:3:"✃";s:1:"#";s:3:"✄";s:1:"$";s:3:"☎";s:1:"%";s:3:"✆";s:1:"&";s:3:"✇";s:1:"'";s:3:"✈";s:1:"(";s:3:"✉";s:1:")";s:3:"☛";s:1:"*";s:3:"☞";s:1:"+";s:3:"✌";s:1:",";s:3:"✍";s:1:"-";s:3:"✎";s:1:".";s:3:"✏";s:1:"/";s:3:"✐";i:0;s:3:"✑";i:1;s:3:"✒";i:2;s:3:"✓";i:3;s:3:"✔";i:4;s:3:"✕";i:5;s:3:"✖";i:6;s:3:"✗";i:7;s:3:"✘";i:8;s:3:"✙";i:9;s:3:"✚";s:1:":";s:3:"✛";s:1:";";s:3:"✜";s:1:"<";s:3:"✝";s:1:"=";s:3:"✞";s:1:">";s:3:"✟";s:1:"?";s:3:"✠";s:1:"@";s:3:"✡";s:1:"A";s:3:"✢";s:1:"B";s:3:"✣";s:1:"C";s:3:"✤";s:1:"D";s:3:"✥";s:1:"E";s:3:"✦";s:1:"F";s:3:"✧";s:1:"G";s:3:"★";s:1:"H";s:3:"✩";s:1:"I";s:3:"✪";s:1:"J";s:3:"✫";s:1:"K";s:3:"✬";s:1:"L";s:3:"✭";s:1:"M";s:3:"✮";s:1:"N";s:3:"✯";s:1:"O";s:3:"✰";s:1:"P";s:3:"✱";s:1:"Q";s:3:"✲";s:1:"R";s:3:"✳";s:1:"S";s:3:"✴";s:1:"T";s:3:"✵";s:1:"U";s:3:"✶";s:1:"V";s:3:"✷";s:1:"W";s:3:"✸";s:1:"X";s:3:"✹";s:1:"Y";s:3:"✺";s:1:"Z";s:3:"✻";s:1:"[";s:3:"✼";s:1:"\";s:3:"✽";s:1:"]";s:3:"✾";s:1:"^";s:3:"✿";s:1:"_";s:3:"❀";s:1:"`";s:3:"❁";s:1:"a";s:3:"❂";s:1:"b";s:3:"❃";s:1:"c";s:3:"❄";s:1:"d";s:3:"❅";s:1:"e";s:3:"❆";s:1:"f";s:3:"❇";s:1:"g";s:3:"❈";s:1:"h";s:3:"❉";s:1:"i";s:3:"❊";s:1:"j";s:3:"❋";s:1:"k";s:3:"●";s:1:"l";s:3:"❍";s:1:"m";s:3:"■";s:1:"n";s:3:"❏";s:1:"o";s:3:"❐";s:1:"p";s:3:"❑";s:1:"q";s:3:"❒";s:1:"r";s:3:"▲";s:1:"s";s:3:"▼";s:1:"t";s:3:"◆";s:1:"u";s:3:"❖";s:1:"v";s:3:"◗";s:1:"w";s:3:"❘";s:1:"x";s:3:"❙";s:1:"y";s:3:"❚";s:1:"z";s:3:"❛";s:1:"{";s:3:"❜";s:1:"|";s:3:"❝";s:1:"}";s:3:"❞";s:1:"~";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"";s:1:"<22>";s:3:"❡";s:1:"<22>";s:3:"❢";s:1:"<22>";s:3:"❣";s:1:"<22>";s:3:"❤";s:1:"<22>";s:3:"❥";s:1:"<22>";s:3:"❦";s:1:"<22>";s:3:"❧";s:1:"<22>";s:3:"♣";s:1:"<22>";s:3:"♦";s:1:"<22>";s:3:"♥";s:1:"<22>";s:3:"♠";s:1:"<22>";s:3:"①";s:1:"<22>";s:3:"②";s:1:"<22>";s:3:"③";s:1:"<22>";s:3:"④";s:1:"<22>";s:3:"⑤";s:1:"<22>";s:3:"⑥";s:1:"<22>";s:3:"⑦";s:1:"<22>";s:3:"⑧";s:1:"<22>";s:3:"⑨";s:1:"<22>";s:3:"⑩";s:1:"<22>";s:3:"❶";s:1:"<22>";s:3:"❷";s:1:"<22>";s:3:"❸";s:1:"<22>";s:3:"❹";s:1:"<22>";s:3:"❺";s:1:"<22>";s:3:"❻";s:1:"<22>";s:3:"❼";s:1:"<22>";s:3:"❽";s:1:"<22>";s:3:"❾";s:1:"<22>";s:3:"❿";s:1:"<22>";s:3:"➀";s:1:"<22>";s:3:"➁";s:1:"<22>";s:3:"➂";s:1:"<22>";s:3:"➃";s:1:"<22>";s:3:"➄";s:1:"<22>";s:3:"➅";s:1:"<22>";s:3:"➆";s:1:"<22>";s:3:"➇";s:1:"<22>";s:3:"➈";s:1:"<22>";s:3:"➉";s:1:"<22>";s:3:"➊";s:1:"<22>";s:3:"➋";s:1:"<22>";s:3:"➌";s:1:"<22>";s:3:"➍";s:1:"<22>";s:3:"➎";s:1:"<22>";s:3:"➏";s:1:"<22>";s:3:"➐";s:1:"<22>";s:3:"➑";s:1:"<22>";s:3:"➒";s:1:"<22>";s:3:"➓";s:1:"<22>";s:3:"➔";s:1:"<22>";s:3:"→";s:1:"<22>";s:3:"↔";s:1:"<22>";s:3:"↕";s:1:"<22>";s:3:"➘";s:1:"<22>";s:3:"➙";s:1:"<22>";s:3:"➚";s:1:"<22>";s:3:"➛";s:1:"<22>";s:3:"➜";s:1:"<22>";s:3:"➝";s:1:"<22>";s:3:"➞";s:1:"<22>";s:3:"➟";s:1:"<22>";s:3:"➠";s:1:"<22>";s:3:"➡";s:1:"<22>";s:3:"➢";s:1:"<22>";s:3:"➣";s:1:"<22>";s:3:"➤";s:1:"<22>";s:3:"➥";s:1:"<22>";s:3:"➦";s:1:"<22>";s:3:"➧";s:1:"<22>";s:3:"➨";s:1:"<22>";s:3:"➩";s:1:"<22>";s:3:"➪";s:1:"<22>";s:3:"➫";s:1:"<22>";s:3:"➬";s:1:"<22>";s:3:"➭";s:1:"<22>";s:3:"➮";s:1:"<22>";s:3:"➯";s:1:"<22>";s:3:"➱";s:1:"<22>";s:3:"➲";s:1:"<22>";s:3:"➳";s:1:"<22>";s:3:"➴";s:1:"<22>";s:3:"➵";s:1:"<22>";s:3:"➶";s:1:"<22>";s:3:"➷";s:1:"<22>";s:3:"➸";s:1:"<22>";s:3:"➹";s:1:"<22>";s:3:"➺";s:1:"<22>";s:3:"➻";s:1:"<22>";s:3:"➼";s:1:"<22>";s:3:"➽";s:1:"<22>";s:3:"➾";s:1:"<22>";}
|
||||
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/translit.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/charset/translit.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/canonicalComposition.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/canonicalComposition.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/canonicalDecomposition.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/canonicalDecomposition.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/combiningClass.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/combiningClass.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/compatibilityDecomposition.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/compatibilityDecomposition.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/lowerCase.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/lowerCase.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/upperCase.ser
vendored
Normal file
1
vendor/patchwork/utf8/class/Patchwork/PHP/Shim/unidata/upperCase.ser
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user