diff --git a/composer.lock b/composer.lock
index 99ada530..0a8a6a99 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,30 +4,30 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "468d26156a7c908d7932bac2791be589",
+ "content-hash": "f404ae21128813210c90625b666ab019",
"packages": [
{
"name": "brick/math",
- "version": "0.10.2",
+ "version": "0.9.3",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f"
+ "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f",
+ "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
+ "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
"shasum": ""
},
"require": {
"ext-json": "*",
- "php": "^7.4 || ^8.0"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^9.0",
- "vimeo/psalm": "4.25.0"
+ "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
+ "vimeo/psalm": "4.9.2"
},
"type": "library",
"autoload": {
@@ -52,15 +52,19 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.10.2"
+ "source": "https://github.com/brick/math/tree/0.9.3"
},
"funding": [
{
"url": "https://github.com/BenMorel",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/brick/math",
+ "type": "tidelift"
}
],
- "time": "2022-08-10T22:54:19+00:00"
+ "time": "2021-08-15T20:50:18+00:00"
},
{
"name": "clue/stream-filter",
@@ -3449,20 +3453,20 @@
},
{
"name": "psr/cache",
- "version": "3.0.0",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": ""
},
"require": {
- "php": ">=8.0.0"
+ "php": ">=5.3.0"
},
"type": "library",
"extra": {
@@ -3482,7 +3486,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
@@ -3492,9 +3496,9 @@
"psr-6"
],
"support": {
- "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ "source": "https://github.com/php-fig/cache/tree/master"
},
- "time": "2021-02-03T23:26:27+00:00"
+ "time": "2016-08-06T20:24:11+00:00"
},
{
"name": "psr/container",
@@ -3756,30 +3760,30 @@
},
{
"name": "psr/log",
- "version": "2.0.0",
+ "version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
- "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
- "php": ">=8.0.0"
+ "php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "src"
+ "Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -3800,9 +3804,9 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/2.0.0"
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
},
- "time": "2021-07-14T16:41:46+00:00"
+ "time": "2021-05-03T11:20:27+00:00"
},
{
"name": "psr/simple-cache",
@@ -4056,23 +4060,25 @@
},
{
"name": "ramsey/uuid",
- "version": "4.6.0",
+ "version": "4.2.3",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f"
+ "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/ad63bc700e7d021039e30ce464eba384c4a1d40f",
- "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
+ "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10",
+ "brick/math": "^0.8 || ^0.9",
"ext-json": "*",
- "php": "^8.0",
- "ramsey/collection": "^1.0"
+ "php": "^7.2 || ^8.0",
+ "ramsey/collection": "^1.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php80": "^1.14"
},
"replace": {
"rhumsaa/uuid": "self.version"
@@ -4084,23 +4090,24 @@
"doctrine/annotations": "^1.8",
"ergebnis/composer-normalize": "^2.15",
"mockery/mockery": "^1.3",
+ "moontoast/math": "^1.1",
"paragonie/random-lib": "^2",
"php-mock/php-mock": "^2.2",
"php-mock/php-mock-mockery": "^1.3",
"php-parallel-lint/php-parallel-lint": "^1.1",
"phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-mockery": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
"phpunit/phpunit": "^8.5 || ^9",
- "ramsey/composer-repl": "^1.4",
- "slevomat/coding-standard": "^8.4",
+ "slevomat/coding-standard": "^7.0",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^4.9"
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
@@ -4108,6 +4115,9 @@
},
"type": "library",
"extra": {
+ "branch-alias": {
+ "dev-main": "4.x-dev"
+ },
"captainhook": {
"force-install": true
}
@@ -4132,7 +4142,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.6.0"
+ "source": "https://github.com/ramsey/uuid/tree/4.2.3"
},
"funding": [
{
@@ -4144,7 +4154,7 @@
"type": "tidelift"
}
],
- "time": "2022-11-05T23:03:38+00:00"
+ "time": "2021-09-25T23:10:38+00:00"
},
{
"name": "swiftmailer/swiftmailer",
@@ -4224,57 +4234,58 @@
},
{
"name": "symfony/cache",
- "version": "v6.1.7",
+ "version": "v5.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "ee5d5b88162684a1377706f9c25125e97685ee61"
+ "reference": "60e87188abbacd29ccde44d69c5392a33e888e98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/ee5d5b88162684a1377706f9c25125e97685ee61",
- "reference": "ee5d5b88162684a1377706f9c25125e97685ee61",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/60e87188abbacd29ccde44d69c5392a33e888e98",
+ "reference": "60e87188abbacd29ccde44d69c5392a33e888e98",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "psr/cache": "^2.0|^3.0",
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0",
"psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2|^3",
+ "symfony/cache-contracts": "^1.1.7|^2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"conflict": {
"doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/var-dumper": "<5.4"
+ "symfony/dependency-injection": "<4.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/var-dumper": "<4.4"
},
"provide": {
- "psr/cache-implementation": "2.0|3.0",
- "psr/simple-cache-implementation": "1.0|2.0|3.0",
- "symfony/cache-implementation": "1.1|2.0|3.0"
+ "psr/cache-implementation": "1.0|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0",
+ "symfony/cache-implementation": "1.0|2.0"
},
"require-dev": {
"cache/integration-tests": "dev-master",
+ "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.13.1|^3.0",
"predis/predis": "^1.1",
- "psr/simple-cache": "^1.0|^2.0|^3.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/filesystem": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "psr/simple-cache": "^1.0|^2.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Cache\\": ""
},
- "classmap": [
- "Traits/ValueWrapper.php"
- ],
"exclude-from-classmap": [
"/Tests/"
]
@@ -4300,7 +4311,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v6.1.7"
+ "source": "https://github.com/symfony/cache/tree/v5.4.15"
},
"funding": [
{
@@ -4316,25 +4327,25 @@
"type": "tidelift"
}
],
- "time": "2022-10-28T16:23:08+00:00"
+ "time": "2022-10-27T07:55:40+00:00"
},
{
"name": "symfony/cache-contracts",
- "version": "v3.1.1",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "2eab7fa459af6d75c6463e63e633b667a9b761d3"
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/2eab7fa459af6d75c6463e63e633b667a9b761d3",
- "reference": "2eab7fa459af6d75c6463e63e633b667a9b761d3",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "psr/cache": "^3.0"
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0|^3.0"
},
"suggest": {
"symfony/cache-implementation": ""
@@ -4342,7 +4353,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4379,7 +4390,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -4395,7 +4406,7 @@
"type": "tidelift"
}
],
- "time": "2022-02-25T11:15:52+00:00"
+ "time": "2022-01-02T09:53:40+00:00"
},
{
"name": "symfony/console",
@@ -4498,20 +4509,21 @@
},
{
"name": "symfony/css-selector",
- "version": "v6.1.3",
+ "version": "v5.4.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443"
+ "reference": "c1681789f059ab756001052164726ae88512ae3d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/0dd5e36b80e1de97f8f74ed7023ac2b837a36443",
- "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d",
+ "reference": "c1681789f059ab756001052164726ae88512ae3d",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
@@ -4543,7 +4555,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.1.3"
+ "source": "https://github.com/symfony/css-selector/tree/v5.4.11"
},
"funding": [
{
@@ -4559,29 +4571,29 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T17:24:16+00:00"
+ "time": "2022-06-27T16:58:25+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.1.1",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918"
+ "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918",
- "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+ "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4610,7 +4622,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -4626,7 +4638,7 @@
"type": "tidelift"
}
],
- "time": "2022-02-25T11:15:52+00:00"
+ "time": "2022-01-02T09:53:40+00:00"
},
{
"name": "symfony/error-handler",
@@ -4701,38 +4713,40 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.1.0",
+ "version": "v5.4.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347"
+ "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a0449a7ad7daa0f7c0acd508259f80544ab5a347",
- "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc",
+ "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
+ "symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<4.4"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0|3.0"
+ "symfony/event-dispatcher-implementation": "2.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
},
"suggest": {
"symfony/dependency-injection": "",
@@ -4764,7 +4778,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.1.0"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9"
},
"funding": [
{
@@ -4780,24 +4794,24 @@
"type": "tidelift"
}
],
- "time": "2022-05-05T16:51:07+00:00"
+ "time": "2022-05-05T16:45:39+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.1.1",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "02ff5eea2f453731cfbc6bc215e456b781480448"
+ "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/02ff5eea2f453731cfbc6bc215e456b781480448",
- "reference": "02ff5eea2f453731cfbc6bc215e456b781480448",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
+ "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
"psr/event-dispatcher": "^1"
},
"suggest": {
@@ -4806,7 +4820,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4843,7 +4857,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -4859,7 +4873,7 @@
"type": "tidelift"
}
],
- "time": "2022-02-25T11:15:52+00:00"
+ "time": "2022-01-02T09:53:40+00:00"
},
{
"name": "symfony/finder",
@@ -5198,21 +5212,23 @@
},
{
"name": "symfony/options-resolver",
- "version": "v6.1.0",
+ "version": "v5.4.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "a3016f5442e28386ded73c43a32a5b68586dd1c4"
+ "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a3016f5442e28386ded73c43a32a5b68586dd1c4",
- "reference": "a3016f5442e28386ded73c43a32a5b68586dd1c4",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/54f14e36aa73cb8f7261d7686691fd4d75ea2690",
+ "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
@@ -5245,7 +5261,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.1.0"
+ "source": "https://github.com/symfony/options-resolver/tree/v5.4.11"
},
"funding": [
{
@@ -5261,7 +5277,7 @@
"type": "tidelift"
}
],
- "time": "2022-02-25T11:15:52+00:00"
+ "time": "2022-07-20T13:00:38+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -6317,33 +6333,34 @@
},
{
"name": "symfony/string",
- "version": "v6.1.7",
+ "version": "v5.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "823f143370880efcbdfa2dbca946b3358c4707e5"
+ "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5",
- "reference": "823f143370880efcbdfa2dbca946b3358c4707e5",
+ "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
+ "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0"
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": ">=3.0"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"type": "library",
"autoload": {
@@ -6382,7 +6399,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.1.7"
+ "source": "https://github.com/symfony/string/tree/v5.4.15"
},
"funding": [
{
@@ -6398,51 +6415,52 @@
"type": "tidelift"
}
],
- "time": "2022-10-10T09:34:31+00:00"
+ "time": "2022-10-05T15:16:54+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.1.6",
+ "version": "v5.4.14",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "e6cd330e5a072518f88d65148f3f165541807494"
+ "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/e6cd330e5a072518f88d65148f3f165541807494",
- "reference": "e6cd330e5a072518f88d65148f3f165541807494",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab",
+ "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/translation-contracts": "^2.3|^3.0"
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation-contracts": "^2.3"
},
"conflict": {
- "symfony/config": "<5.4",
- "symfony/console": "<5.4",
- "symfony/dependency-injection": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/twig-bundle": "<5.4",
- "symfony/yaml": "<5.4"
+ "symfony/config": "<4.4",
+ "symfony/console": "<5.3",
+ "symfony/dependency-injection": "<5.0",
+ "symfony/http-kernel": "<5.0",
+ "symfony/twig-bundle": "<5.0",
+ "symfony/yaml": "<4.4"
},
"provide": {
- "symfony/translation-implementation": "2.3|3.0"
+ "symfony/translation-implementation": "2.3"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
"symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
"symfony/http-client-contracts": "^1.1|^2.0|^3.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^5.4|^6.0",
"symfony/service-contracts": "^1.1.2|^2|^3",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/yaml": "^4.4|^5.0|^6.0"
},
"suggest": {
"psr/log-implementation": "To use logging capability in translator",
@@ -6478,7 +6496,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.1.6"
+ "source": "https://github.com/symfony/translation/tree/v5.4.14"
},
"funding": [
{
@@ -6494,24 +6512,24 @@
"type": "tidelift"
}
],
- "time": "2022-10-07T08:04:03+00:00"
+ "time": "2022-10-07T08:01:20+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.1.1",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc"
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/606be0f48e05116baef052f7f3abdb345c8e02cc",
- "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.2.5"
},
"suggest": {
"symfony/translation-implementation": ""
@@ -6519,7 +6537,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6529,10 +6547,7 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- },
- "exclude-from-classmap": [
- "/Test/"
- ]
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -6559,7 +6574,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -6575,7 +6590,7 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T17:24:16+00:00"
+ "time": "2022-06-27T16:58:25+00:00"
},
{
"name": "symfony/var-dumper",
@@ -6668,23 +6683,24 @@
},
{
"name": "symfony/var-exporter",
- "version": "v6.1.3",
+ "version": "v5.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef"
+ "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b49350f45cebbba6e5286485264b912f2bcfc9ef",
- "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
+ "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
},
"type": "library",
"autoload": {
@@ -6720,7 +6736,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v6.1.3"
+ "source": "https://github.com/symfony/var-exporter/tree/v5.4.10"
},
"funding": [
{
@@ -6736,7 +6752,7 @@
"type": "tidelift"
}
],
- "time": "2022-07-04T16:01:56+00:00"
+ "time": "2022-05-27T12:56:18+00:00"
},
{
"name": "symfony/yaml",
@@ -7156,32 +7172,30 @@
},
{
"name": "fzaninotto/faker",
- "version": "v1.5.0",
+ "version": "v1.9.2",
"source": {
"type": "git",
"url": "https://github.com/fzaninotto/Faker.git",
- "reference": "d0190b156bcca848d401fb80f31f504f37141c8d"
+ "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d",
- "reference": "d0190b156bcca848d401fb80f31f504f37141c8d",
+ "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/848d8125239d7dbf8ab25cb7f054f1a630e68c2e",
+ "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^5.3.3 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~1.5"
- },
- "suggest": {
- "ext-intl": "*"
+ "ext-intl": "*",
+ "phpunit/phpunit": "^4.8.35 || ^5.7",
+ "squizlabs/php_codesniffer": "^2.9.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.5.x-dev"
+ "dev-master": "1.9-dev"
}
},
"autoload": {
@@ -7206,10 +7220,10 @@
],
"support": {
"issues": "https://github.com/fzaninotto/Faker/issues",
- "source": "https://github.com/fzaninotto/Faker/tree/master"
+ "source": "https://github.com/fzaninotto/Faker/tree/v1.9.2"
},
"abandoned": true,
- "time": "2015-05-29T06:29:14+00:00"
+ "time": "2020-12-11T09:56:16+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -9007,7 +9021,8 @@
"prefer-lowest": false,
"platform": {
"php": ">=7.3.0",
- "ext-json": "*"
+ "ext-json": "*",
+ "ext-intl": "*"
},
"platform-dev": [],
"plugin-api-version": "2.3.0"
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 4b3995f2..67857639 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -3,10 +3,23 @@
// autoload.php @generated by Composer
if (PHP_VERSION_ID < 50600) {
- echo 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
- exit(1);
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, $err);
+ } elseif (!headers_sent()) {
+ echo $err;
+ }
+ }
+ trigger_error(
+ $err,
+ E_USER_ERROR
+ );
}
require_once __DIR__ . '/composer/autoload_real.php';
-return ComposerAutoloaderInit4b6fb9210a1ea37c2db27b8ff53a1ecf::getLoader();
+return ComposerAutoloaderInitb2555e5ff7197b9e020da74bbd3b7cfa::getLoader();
diff --git a/vendor/brick/math/CHANGELOG.md b/vendor/brick/math/CHANGELOG.md
index c5c5893b..03c3d824 100644
--- a/vendor/brick/math/CHANGELOG.md
+++ b/vendor/brick/math/CHANGELOG.md
@@ -2,29 +2,11 @@
All notable changes to this project will be documented in this file.
-## [0.10.2](https://github.com/brick/math/releases/tag/0.10.2) - 2022-08-11
-
-👌 **Improvements**
-
-- `BigRational::toFloat()` now simplifies the fraction before performing division (#73) thanks to @olsavmic
-
-## [0.10.1](https://github.com/brick/math/releases/tag/0.10.1) - 2022-08-02
-
-✨ **New features**
-
-- `BigInteger::gcdMultiple()` returns the GCD of multiple `BigInteger` numbers
-
-## [0.10.0](https://github.com/brick/math/releases/tag/0.10.0) - 2022-06-18
-
-💥 **Breaking changes**
-
-- Minimum PHP version is now 7.4
-
## [0.9.3](https://github.com/brick/math/releases/tag/0.9.3) - 2021-08-15
🚀 **Compatibility with PHP 8.1**
-- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (#60) thanks @TRowbotham
+- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (thanks @TRowbotham)
## [0.9.2](https://github.com/brick/math/releases/tag/0.9.2) - 2021-01-20
@@ -34,7 +16,7 @@ All notable changes to this project will be documented in this file.
## [0.9.1](https://github.com/brick/math/releases/tag/0.9.1) - 2020-08-19
-✨ **New features**
+✨ New features
- `BigInteger::not()` returns the bitwise `NOT` value
diff --git a/vendor/brick/math/SECURITY.md b/vendor/brick/math/SECURITY.md
new file mode 100644
index 00000000..cc8289bb
--- /dev/null
+++ b/vendor/brick/math/SECURITY.md
@@ -0,0 +1,17 @@
+# Security Policy
+
+## Supported Versions
+
+Only the last two release streams are supported.
+
+| Version | Supported |
+| ------- | ------------------ |
+| 0.9.x | :white_check_mark: |
+| 0.8.x | :white_check_mark: |
+| < 0.8 | :x: |
+
+## Reporting a Vulnerability
+
+To report a security vulnerability, please use the
+[Tidelift security contact](https://tidelift.com/security).
+Tidelift will coordinate the fix and disclosure.
diff --git a/vendor/brick/math/composer.json b/vendor/brick/math/composer.json
index a8124e92..ec196632 100644
--- a/vendor/brick/math/composer.json
+++ b/vendor/brick/math/composer.json
@@ -14,13 +14,13 @@
],
"license": "MIT",
"require": {
- "php": "^7.4 || ^8.0",
+ "php": "^7.1 || ^8.0",
"ext-json": "*"
},
"require-dev": {
- "phpunit/phpunit": "^9.0",
+ "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
"php-coveralls/php-coveralls": "^2.2",
- "vimeo/psalm": "4.25.0"
+ "vimeo/psalm": "4.9.2"
},
"autoload": {
"psr-4": {
diff --git a/vendor/brick/math/src/BigDecimal.php b/vendor/brick/math/src/BigDecimal.php
index fd2babb8..78246500 100644
--- a/vendor/brick/math/src/BigDecimal.php
+++ b/vendor/brick/math/src/BigDecimal.php
@@ -22,15 +22,19 @@ final class BigDecimal extends BigNumber
* This is a string of digits with an optional leading minus sign.
* No leading zero must be present.
* No leading minus sign must be present if the value is 0.
+ *
+ * @var string
*/
- private string $value;
+ private $value;
/**
* The scale (number of digits after the decimal point) of this decimal number.
*
* This must be zero or more.
+ *
+ * @var int
*/
- private int $scale;
+ private $scale;
/**
* Protected constructor. Use a factory method to obtain an instance.
diff --git a/vendor/brick/math/src/BigInteger.php b/vendor/brick/math/src/BigInteger.php
index f58e1c59..f213fbed 100644
--- a/vendor/brick/math/src/BigInteger.php
+++ b/vendor/brick/math/src/BigInteger.php
@@ -26,8 +26,10 @@ final class BigInteger extends BigNumber
*
* No leading zeros must be present.
* No leading minus sign must be present if the number is zero.
+ *
+ * @var string
*/
- private string $value;
+ private $value;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -359,21 +361,6 @@ final class BigInteger extends BigNumber
return $ten;
}
- public static function gcdMultiple(BigInteger $a, BigInteger ...$n): BigInteger
- {
- $result = $a;
-
- foreach ($n as $next) {
- $result = $result->gcd($next);
-
- if ($result->isEqualTo(1)) {
- return $result;
- }
- }
-
- return $result;
- }
-
/**
* Returns the sum of this number and the given one.
*
diff --git a/vendor/brick/math/src/BigNumber.php b/vendor/brick/math/src/BigNumber.php
index 44f26e35..38c8c554 100644
--- a/vendor/brick/math/src/BigNumber.php
+++ b/vendor/brick/math/src/BigNumber.php
@@ -81,7 +81,9 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
$throw();
}
- $getMatch = static fn(string $value): ?string => (($matches[$value] ?? '') !== '') ? $matches[$value] : null;
+ $getMatch = static function(string $value) use ($matches) : ?string {
+ return isset($matches[$value]) && $matches[$value] !== '' ? $matches[$value] : null;
+ };
$sign = $getMatch('sign');
$numerator = $getMatch('numerator');
diff --git a/vendor/brick/math/src/BigRational.php b/vendor/brick/math/src/BigRational.php
index 46257814..bee094f7 100644
--- a/vendor/brick/math/src/BigRational.php
+++ b/vendor/brick/math/src/BigRational.php
@@ -20,13 +20,17 @@ final class BigRational extends BigNumber
{
/**
* The numerator.
+ *
+ * @var BigInteger
*/
- private BigInteger $numerator;
+ private $numerator;
/**
* The denominator. Always strictly positive.
+ *
+ * @var BigInteger
*/
- private BigInteger $denominator;
+ private $denominator;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -429,8 +433,7 @@ final class BigRational extends BigNumber
*/
public function toFloat() : float
{
- $simplified = $this->simplified();
- return $simplified->numerator->toFloat() / $simplified->denominator->toFloat();
+ return $this->numerator->toFloat() / $this->denominator->toFloat();
}
/**
diff --git a/vendor/brick/math/src/Internal/Calculator.php b/vendor/brick/math/src/Internal/Calculator.php
index 99bebbe5..a6eac799 100644
--- a/vendor/brick/math/src/Internal/Calculator.php
+++ b/vendor/brick/math/src/Internal/Calculator.php
@@ -34,8 +34,10 @@ abstract class Calculator
/**
* The Calculator instance in use.
+ *
+ * @var Calculator|null
*/
- private static ?Calculator $instance = null;
+ private static $instance;
/**
* Sets the Calculator instance to use.
@@ -232,7 +234,7 @@ abstract class Calculator
* @param string $a The dividend.
* @param string $b The divisor, must not be zero.
*
- * @return array{string, string} An array containing the quotient and remainder.
+ * @return string[] An array containing the quotient and remainder.
*/
abstract public function divQR(string $a, string $b) : array;
@@ -281,7 +283,9 @@ abstract class Calculator
$modVal = $this->mod($x, $m);
}
- [$g, $x] = $this->gcdExtended($modVal, $m);
+ $x = '0';
+ $y = '0';
+ $g = $this->gcdExtended($modVal, $m, $x, $y);
if ($g !== '1') {
return null;
@@ -325,21 +329,24 @@ abstract class Calculator
return $this->gcd($b, $this->divR($a, $b));
}
- /**
- * @return array{string, string, string} GCD, X, Y
- */
- private function gcdExtended(string $a, string $b) : array
+ private function gcdExtended(string $a, string $b, string &$x, string &$y) : string
{
if ($a === '0') {
- return [$b, '0', '1'];
+ $x = '0';
+ $y = '1';
+
+ return $b;
}
- [$gcd, $x1, $y1] = $this->gcdExtended($this->mod($b, $a), $a);
+ $x1 = '0';
+ $y1 = '0';
+
+ $gcd = $this->gcdExtended($this->mod($b, $a), $a, $x1, $y1);
$x = $this->sub($y1, $this->mul($this->divQ($b, $a), $x1));
$y = $x1;
- return [$gcd, $x, $y];
+ return $gcd;
}
/**
@@ -486,8 +493,6 @@ abstract class Calculator
*
* @throws \InvalidArgumentException If the rounding mode is invalid.
* @throws RoundingNecessaryException If RoundingMode::UNNECESSARY is provided but rounding is necessary.
- *
- * @psalm-suppress ImpureFunctionCall
*/
final public function divRound(string $a, string $b, int $roundingMode) : string
{
@@ -611,9 +616,9 @@ abstract class Calculator
/**
* Performs a bitwise operation on a decimal number.
*
- * @param 'and'|'or'|'xor' $operator The operator to use.
- * @param string $a The left operand.
- * @param string $b The right operand.
+ * @param string $operator The operator to use, must be "and", "or" or "xor".
+ * @param string $a The left operand.
+ * @param string $b The right operand.
*
* @return string
*/
diff --git a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
index 34078687..6632b378 100644
--- a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
+++ b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
@@ -94,6 +94,9 @@ class BcMathCalculator extends Calculator
/**
* {@inheritdoc}
+ *
+ * @psalm-suppress InvalidNullableReturnType
+ * @psalm-suppress NullableReturnStatement
*/
public function modPow(string $base, string $exp, string $mod) : string
{
@@ -102,6 +105,9 @@ class BcMathCalculator extends Calculator
/**
* {@inheritDoc}
+ *
+ * @psalm-suppress NullableReturnStatement
+ * @psalm-suppress InvalidNullableReturnType
*/
public function sqrt(string $n) : string
{
diff --git a/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php b/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
index a7eb23b9..020a6338 100644
--- a/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
+++ b/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
@@ -22,8 +22,10 @@ class NativeCalculator extends Calculator
* For addition, it is assumed that an extra digit can hold a carry (1) without overflowing.
* Example: 32-bit: max number 1,999,999,999 (9 digits + carry)
* 64-bit: max number 1,999,999,999,999,999,999 (18 digits + carry)
+ *
+ * @var int
*/
- private int $maxDigits;
+ private $maxDigits;
/**
* Class constructor.
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 4132010f..c03e89d2 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -43,6 +43,18 @@ return array(
'App\\SettingGroup' => $baseDir . '/app/SettingGroup.php',
'App\\SettingUser' => $baseDir . '/app/SettingUser.php',
'App\\SupportedApps' => $baseDir . '/app/SupportedApps.php',
+ 'App\\SupportedApps\\AVMFritzbox\\AVMFritzbox' => $baseDir . '/app/SupportedApps/AVMFritzbox/AVMFritzbox.php',
+ 'App\\SupportedApps\\Ackee\\Ackee' => $baseDir . '/app/SupportedApps/Ackee/Ackee.php',
+ 'App\\SupportedApps\\Airsonic\\Airsonic' => $baseDir . '/app/SupportedApps/Airsonic/Airsonic.php',
+ 'App\\SupportedApps\\Alertmanager\\Alertmanager' => $baseDir . '/app/SupportedApps/Alertmanager/Alertmanager.php',
+ 'App\\SupportedApps\\ArchiSteamFarm\\ArchiSteamFarm' => $baseDir . '/app/SupportedApps/ArchiSteamFarm/ArchiSteamFarm.php',
+ 'App\\SupportedApps\\ArchiveBox\\ArchiveBox' => $baseDir . '/app/SupportedApps/ArchiveBox/ArchiveBox.php',
+ 'App\\SupportedApps\\ArgoCD\\ArgoCD' => $baseDir . '/app/SupportedApps/ArgoCD/ArgoCD.php',
+ 'App\\SupportedApps\\AriaNg\\AriaNg' => $baseDir . '/app/SupportedApps/AriaNg/AriaNg.php',
+ 'App\\SupportedApps\\Artifactory\\Artifactory' => $baseDir . '/app/SupportedApps/Artifactory/Artifactory.php',
+ 'App\\SupportedApps\\Pihole\\Pihole' => $baseDir . '/app/SupportedApps/Pihole/Pihole.php',
+ 'App\\SupportedApps\\XP900\\XP900' => $baseDir . '/app/SupportedApps/XP900/XP900.php',
+ 'App\\SupportedApps\\authentik\\authentik' => $baseDir . '/app/SupportedApps/authentik/authentik.php',
'App\\User' => $baseDir . '/app/User.php',
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
'Brick\\Math\\BigDecimal' => $vendorDir . '/brick/math/src/BigDecimal.php',
@@ -488,7 +500,11 @@ return array(
'Facade\\Ignition\\Views\\Concerns\\CollectsViewExceptions' => $vendorDir . '/facade/ignition/src/Views/Concerns/CollectsViewExceptions.php',
'Facade\\Ignition\\Views\\Engines\\CompilerEngine' => $vendorDir . '/facade/ignition/src/Views/Engines/CompilerEngine.php',
'Facade\\Ignition\\Views\\Engines\\PhpEngine' => $vendorDir . '/facade/ignition/src/Views/Engines/PhpEngine.php',
+ 'Faker\\Calculator\\Ean' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Ean.php',
+ 'Faker\\Calculator\\Iban' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Iban.php',
+ 'Faker\\Calculator\\Inn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Inn.php',
'Faker\\Calculator\\Luhn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php',
+ 'Faker\\Calculator\\TCNo' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php',
'Faker\\DefaultGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/DefaultGenerator.php',
'Faker\\Documentor' => $vendorDir . '/fzaninotto/faker/src/Faker/Documentor.php',
'Faker\\Factory' => $vendorDir . '/fzaninotto/faker/src/Faker/Factory.php',
@@ -503,9 +519,15 @@ return array(
'Faker\\ORM\\Mandango\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php',
'Faker\\ORM\\Mandango\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php',
'Faker\\ORM\\Mandango\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php',
+ 'Faker\\ORM\\Propel2\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php',
+ 'Faker\\ORM\\Propel2\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php',
+ 'Faker\\ORM\\Propel2\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php',
'Faker\\ORM\\Propel\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php',
'Faker\\ORM\\Propel\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php',
'Faker\\ORM\\Propel\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php',
+ 'Faker\\ORM\\Spot\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php',
+ 'Faker\\ORM\\Spot\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php',
+ 'Faker\\ORM\\Spot\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php',
'Faker\\Provider\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Address.php',
'Faker\\Provider\\Barcode' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Barcode.php',
'Faker\\Provider\\Base' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Base.php',
@@ -514,6 +536,7 @@ return array(
'Faker\\Provider\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Company.php',
'Faker\\Provider\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/DateTime.php',
'Faker\\Provider\\File' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/File.php',
+ 'Faker\\Provider\\HtmlLorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php',
'Faker\\Provider\\Image' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Image.php',
'Faker\\Provider\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Internet.php',
'Faker\\Provider\\Lorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Lorem.php',
@@ -529,8 +552,14 @@ return array(
'Faker\\Provider\\ar_JO\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php',
'Faker\\Provider\\ar_JO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php',
'Faker\\Provider\\ar_JO\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php',
+ 'Faker\\Provider\\ar_SA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php',
+ 'Faker\\Provider\\ar_SA\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php',
+ 'Faker\\Provider\\ar_SA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php',
+ 'Faker\\Provider\\ar_SA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php',
+ 'Faker\\Provider\\ar_SA\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php',
+ 'Faker\\Provider\\ar_SA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php',
+ 'Faker\\Provider\\ar_SA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php',
'Faker\\Provider\\at_AT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php',
- 'Faker\\Provider\\be_BE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/be_BE/Payment.php',
'Faker\\Provider\\bg_BG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php',
'Faker\\Provider\\bg_BG\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php',
'Faker\\Provider\\bg_BG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php',
@@ -560,6 +589,14 @@ return array(
'Faker\\Provider\\de_AT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php',
'Faker\\Provider\\de_AT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php',
'Faker\\Provider\\de_AT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php',
+ 'Faker\\Provider\\de_AT\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php',
+ 'Faker\\Provider\\de_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php',
+ 'Faker\\Provider\\de_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php',
+ 'Faker\\Provider\\de_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php',
+ 'Faker\\Provider\\de_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php',
+ 'Faker\\Provider\\de_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php',
+ 'Faker\\Provider\\de_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php',
+ 'Faker\\Provider\\de_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php',
'Faker\\Provider\\de_DE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php',
'Faker\\Provider\\de_DE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php',
'Faker\\Provider\\de_DE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php',
@@ -567,10 +604,18 @@ return array(
'Faker\\Provider\\de_DE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php',
'Faker\\Provider\\de_DE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php',
'Faker\\Provider\\de_DE\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php',
+ 'Faker\\Provider\\el_CY\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php',
+ 'Faker\\Provider\\el_CY\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php',
+ 'Faker\\Provider\\el_CY\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php',
+ 'Faker\\Provider\\el_CY\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php',
+ 'Faker\\Provider\\el_CY\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php',
+ 'Faker\\Provider\\el_CY\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php',
'Faker\\Provider\\el_GR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php',
+ 'Faker\\Provider\\el_GR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php',
'Faker\\Provider\\el_GR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php',
'Faker\\Provider\\el_GR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php',
'Faker\\Provider\\el_GR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php',
+ 'Faker\\Provider\\el_GR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php',
'Faker\\Provider\\en_AU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php',
'Faker\\Provider\\en_AU\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php',
'Faker\\Provider\\en_AU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php',
@@ -581,20 +626,36 @@ return array(
'Faker\\Provider\\en_GB\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php',
'Faker\\Provider\\en_GB\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php',
'Faker\\Provider\\en_GB\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php',
+ 'Faker\\Provider\\en_HK\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php',
+ 'Faker\\Provider\\en_HK\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php',
+ 'Faker\\Provider\\en_HK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php',
+ 'Faker\\Provider\\en_IN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php',
+ 'Faker\\Provider\\en_IN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php',
+ 'Faker\\Provider\\en_IN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php',
+ 'Faker\\Provider\\en_IN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php',
+ 'Faker\\Provider\\en_NG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php',
+ 'Faker\\Provider\\en_NG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php',
+ 'Faker\\Provider\\en_NG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php',
+ 'Faker\\Provider\\en_NG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php',
'Faker\\Provider\\en_NZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php',
'Faker\\Provider\\en_NZ\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php',
'Faker\\Provider\\en_NZ\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php',
'Faker\\Provider\\en_PH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php',
+ 'Faker\\Provider\\en_PH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php',
+ 'Faker\\Provider\\en_SG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php',
+ 'Faker\\Provider\\en_SG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php',
'Faker\\Provider\\en_UG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php',
'Faker\\Provider\\en_UG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php',
'Faker\\Provider\\en_UG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php',
'Faker\\Provider\\en_UG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php',
'Faker\\Provider\\en_US\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php',
'Faker\\Provider\\en_US\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php',
+ 'Faker\\Provider\\en_US\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php',
'Faker\\Provider\\en_US\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php',
'Faker\\Provider\\en_US\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php',
'Faker\\Provider\\en_US\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php',
'Faker\\Provider\\en_ZA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php',
+ 'Faker\\Provider\\en_ZA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php',
'Faker\\Provider\\en_ZA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php',
'Faker\\Provider\\en_ZA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php',
'Faker\\Provider\\en_ZA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php',
@@ -603,11 +664,13 @@ return array(
'Faker\\Provider\\es_AR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php',
'Faker\\Provider\\es_AR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php',
'Faker\\Provider\\es_ES\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php',
+ 'Faker\\Provider\\es_ES\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Color.php',
'Faker\\Provider\\es_ES\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php',
'Faker\\Provider\\es_ES\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php',
'Faker\\Provider\\es_ES\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php',
'Faker\\Provider\\es_ES\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php',
'Faker\\Provider\\es_ES\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php',
+ 'Faker\\Provider\\es_ES\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php',
'Faker\\Provider\\es_PE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php',
'Faker\\Provider\\es_PE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php',
'Faker\\Provider\\es_PE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php',
@@ -617,12 +680,17 @@ return array(
'Faker\\Provider\\es_VE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php',
'Faker\\Provider\\es_VE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php',
'Faker\\Provider\\es_VE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php',
+ 'Faker\\Provider\\et_EE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/et_EE/Person.php',
+ 'Faker\\Provider\\fa_IR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php',
+ 'Faker\\Provider\\fa_IR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php',
'Faker\\Provider\\fa_IR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php',
'Faker\\Provider\\fa_IR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php',
+ 'Faker\\Provider\\fa_IR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php',
'Faker\\Provider\\fa_IR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php',
'Faker\\Provider\\fi_FI\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php',
'Faker\\Provider\\fi_FI\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php',
'Faker\\Provider\\fi_FI\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php',
+ 'Faker\\Provider\\fi_FI\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php',
'Faker\\Provider\\fi_FI\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php',
'Faker\\Provider\\fi_FI\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php',
'Faker\\Provider\\fr_BE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php',
@@ -632,7 +700,16 @@ return array(
'Faker\\Provider\\fr_BE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php',
'Faker\\Provider\\fr_BE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php',
'Faker\\Provider\\fr_CA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php',
+ 'Faker\\Provider\\fr_CA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php',
'Faker\\Provider\\fr_CA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php',
+ 'Faker\\Provider\\fr_CA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Text.php',
+ 'Faker\\Provider\\fr_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php',
+ 'Faker\\Provider\\fr_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php',
+ 'Faker\\Provider\\fr_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php',
+ 'Faker\\Provider\\fr_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php',
+ 'Faker\\Provider\\fr_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php',
+ 'Faker\\Provider\\fr_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php',
+ 'Faker\\Provider\\fr_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php',
'Faker\\Provider\\fr_FR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php',
'Faker\\Provider\\fr_FR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php',
'Faker\\Provider\\fr_FR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php',
@@ -640,17 +717,30 @@ return array(
'Faker\\Provider\\fr_FR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php',
'Faker\\Provider\\fr_FR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php',
'Faker\\Provider\\fr_FR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php',
+ 'Faker\\Provider\\he_IL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php',
+ 'Faker\\Provider\\he_IL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php',
+ 'Faker\\Provider\\he_IL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php',
+ 'Faker\\Provider\\he_IL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php',
+ 'Faker\\Provider\\he_IL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php',
+ 'Faker\\Provider\\hr_HR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php',
+ 'Faker\\Provider\\hr_HR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php',
+ 'Faker\\Provider\\hr_HR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php',
+ 'Faker\\Provider\\hr_HR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php',
+ 'Faker\\Provider\\hr_HR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php',
'Faker\\Provider\\hu_HU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php',
'Faker\\Provider\\hu_HU\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php',
+ 'Faker\\Provider\\hu_HU\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php',
'Faker\\Provider\\hu_HU\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php',
'Faker\\Provider\\hu_HU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php',
'Faker\\Provider\\hu_HU\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php',
'Faker\\Provider\\hy_AM\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php',
+ 'Faker\\Provider\\hy_AM\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php',
'Faker\\Provider\\hy_AM\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php',
'Faker\\Provider\\hy_AM\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php',
'Faker\\Provider\\hy_AM\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php',
'Faker\\Provider\\hy_AM\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php',
'Faker\\Provider\\id_ID\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php',
+ 'Faker\\Provider\\id_ID\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php',
'Faker\\Provider\\id_ID\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php',
'Faker\\Provider\\id_ID\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php',
'Faker\\Provider\\id_ID\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php',
@@ -661,6 +751,13 @@ return array(
'Faker\\Provider\\is_IS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php',
'Faker\\Provider\\is_IS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php',
'Faker\\Provider\\is_IS\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php',
+ 'Faker\\Provider\\it_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php',
+ 'Faker\\Provider\\it_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php',
+ 'Faker\\Provider\\it_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php',
+ 'Faker\\Provider\\it_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php',
+ 'Faker\\Provider\\it_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php',
+ 'Faker\\Provider\\it_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php',
+ 'Faker\\Provider\\it_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php',
'Faker\\Provider\\it_IT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php',
'Faker\\Provider\\it_IT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php',
'Faker\\Provider\\it_IT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php',
@@ -673,7 +770,15 @@ return array(
'Faker\\Provider\\ja_JP\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php',
'Faker\\Provider\\ja_JP\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php',
'Faker\\Provider\\ja_JP\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php',
+ 'Faker\\Provider\\ja_JP\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php',
+ 'Faker\\Provider\\ka_GE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php',
+ 'Faker\\Provider\\ka_GE\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php',
+ 'Faker\\Provider\\ka_GE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php',
+ 'Faker\\Provider\\ka_GE\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php',
+ 'Faker\\Provider\\ka_GE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php',
+ 'Faker\\Provider\\ka_GE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php',
'Faker\\Provider\\ka_GE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php',
+ 'Faker\\Provider\\ka_GE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php',
'Faker\\Provider\\ka_GE\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php',
'Faker\\Provider\\kk_KZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php',
'Faker\\Provider\\kk_KZ\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php',
@@ -688,7 +793,15 @@ return array(
'Faker\\Provider\\ko_KR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php',
'Faker\\Provider\\ko_KR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php',
'Faker\\Provider\\ko_KR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php',
+ 'Faker\\Provider\\ko_KR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php',
+ 'Faker\\Provider\\lt_LT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php',
+ 'Faker\\Provider\\lt_LT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php',
+ 'Faker\\Provider\\lt_LT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php',
+ 'Faker\\Provider\\lt_LT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php',
+ 'Faker\\Provider\\lt_LT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php',
+ 'Faker\\Provider\\lt_LT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php',
'Faker\\Provider\\lv_LV\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php',
+ 'Faker\\Provider\\lv_LV\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php',
'Faker\\Provider\\lv_LV\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php',
'Faker\\Provider\\lv_LV\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php',
'Faker\\Provider\\lv_LV\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php',
@@ -698,6 +811,19 @@ return array(
'Faker\\Provider\\me_ME\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php',
'Faker\\Provider\\me_ME\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php',
'Faker\\Provider\\me_ME\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php',
+ 'Faker\\Provider\\mn_MN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php',
+ 'Faker\\Provider\\mn_MN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php',
+ 'Faker\\Provider\\ms_MY\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php',
+ 'Faker\\Provider\\ms_MY\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php',
+ 'Faker\\Provider\\ms_MY\\Miscellaneous' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php',
+ 'Faker\\Provider\\ms_MY\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php',
+ 'Faker\\Provider\\ms_MY\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php',
+ 'Faker\\Provider\\ms_MY\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php',
+ 'Faker\\Provider\\nb_NO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php',
+ 'Faker\\Provider\\nb_NO\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php',
+ 'Faker\\Provider\\nb_NO\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php',
+ 'Faker\\Provider\\nb_NO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php',
+ 'Faker\\Provider\\nb_NO\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php',
'Faker\\Provider\\ne_NP\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php',
'Faker\\Provider\\ne_NP\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php',
'Faker\\Provider\\ne_NP\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php',
@@ -708,6 +834,7 @@ return array(
'Faker\\Provider\\nl_BE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php',
'Faker\\Provider\\nl_BE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php',
'Faker\\Provider\\nl_BE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php',
+ 'Faker\\Provider\\nl_BE\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php',
'Faker\\Provider\\nl_NL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php',
'Faker\\Provider\\nl_NL\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php',
'Faker\\Provider\\nl_NL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php',
@@ -715,10 +842,7 @@ return array(
'Faker\\Provider\\nl_NL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php',
'Faker\\Provider\\nl_NL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php',
'Faker\\Provider\\nl_NL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php',
- 'Faker\\Provider\\no_NO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/no_NO/Address.php',
- 'Faker\\Provider\\no_NO\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/no_NO/Company.php',
- 'Faker\\Provider\\no_NO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/no_NO/Person.php',
- 'Faker\\Provider\\no_NO\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/no_NO/PhoneNumber.php',
+ 'Faker\\Provider\\nl_NL\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php',
'Faker\\Provider\\pl_PL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php',
'Faker\\Provider\\pl_PL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php',
'Faker\\Provider\\pl_PL\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php',
@@ -733,15 +857,21 @@ return array(
'Faker\\Provider\\pt_BR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php',
'Faker\\Provider\\pt_BR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php',
'Faker\\Provider\\pt_PT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php',
+ 'Faker\\Provider\\pt_PT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php',
+ 'Faker\\Provider\\pt_PT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Internet.php',
'Faker\\Provider\\pt_PT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php',
'Faker\\Provider\\pt_PT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php',
'Faker\\Provider\\pt_PT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php',
'Faker\\Provider\\ro_MD\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php',
+ 'Faker\\Provider\\ro_MD\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php',
'Faker\\Provider\\ro_MD\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php',
'Faker\\Provider\\ro_MD\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php',
+ 'Faker\\Provider\\ro_MD\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php',
'Faker\\Provider\\ro_RO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php',
+ 'Faker\\Provider\\ro_RO\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php',
'Faker\\Provider\\ro_RO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php',
'Faker\\Provider\\ro_RO\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php',
+ 'Faker\\Provider\\ro_RO\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php',
'Faker\\Provider\\ru_RU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php',
'Faker\\Provider\\ru_RU\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php',
'Faker\\Provider\\ru_RU\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php',
@@ -757,6 +887,7 @@ return array(
'Faker\\Provider\\sk_SK\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php',
'Faker\\Provider\\sk_SK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php',
'Faker\\Provider\\sl_SI\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php',
+ 'Faker\\Provider\\sl_SI\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php',
'Faker\\Provider\\sl_SI\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php',
'Faker\\Provider\\sl_SI\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php',
'Faker\\Provider\\sl_SI\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php',
@@ -772,10 +903,19 @@ return array(
'Faker\\Provider\\sr_RS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php',
'Faker\\Provider\\sv_SE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php',
'Faker\\Provider\\sv_SE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php',
+ 'Faker\\Provider\\sv_SE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php',
'Faker\\Provider\\sv_SE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php',
'Faker\\Provider\\sv_SE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php',
+ 'Faker\\Provider\\th_TH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php',
+ 'Faker\\Provider\\th_TH\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php',
+ 'Faker\\Provider\\th_TH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php',
+ 'Faker\\Provider\\th_TH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php',
+ 'Faker\\Provider\\th_TH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php',
+ 'Faker\\Provider\\th_TH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Person.php',
+ 'Faker\\Provider\\th_TH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php',
'Faker\\Provider\\tr_TR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php',
'Faker\\Provider\\tr_TR\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php',
+ 'Faker\\Provider\\tr_TR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php',
'Faker\\Provider\\tr_TR\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php',
'Faker\\Provider\\tr_TR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php',
'Faker\\Provider\\tr_TR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php',
@@ -785,6 +925,7 @@ return array(
'Faker\\Provider\\uk_UA\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php',
'Faker\\Provider\\uk_UA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php',
'Faker\\Provider\\uk_UA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php',
+ 'Faker\\Provider\\uk_UA\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',
'Faker\\Provider\\uk_UA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php',
'Faker\\Provider\\uk_UA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php',
'Faker\\Provider\\uk_UA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php',
@@ -794,8 +935,11 @@ return array(
'Faker\\Provider\\vi_VN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php',
'Faker\\Provider\\vi_VN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php',
'Faker\\Provider\\zh_CN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php',
+ 'Faker\\Provider\\zh_CN\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php',
'Faker\\Provider\\zh_CN\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php',
+ 'Faker\\Provider\\zh_CN\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php',
'Faker\\Provider\\zh_CN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php',
+ 'Faker\\Provider\\zh_CN\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php',
'Faker\\Provider\\zh_CN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php',
'Faker\\Provider\\zh_CN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php',
'Faker\\Provider\\zh_TW\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php',
@@ -808,6 +952,7 @@ return array(
'Faker\\Provider\\zh_TW\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php',
'Faker\\Provider\\zh_TW\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php',
'Faker\\UniqueGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/UniqueGenerator.php',
+ 'Faker\\ValidGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/ValidGenerator.php',
'Fideloper\\Proxy\\TrustProxies' => $vendorDir . '/fideloper/proxy/src/TrustProxies.php',
'Fideloper\\Proxy\\TrustedProxyServiceProvider' => $vendorDir . '/fideloper/proxy/src/TrustedProxyServiceProvider.php',
'Github\\Api\\AbstractApi' => $vendorDir . '/knplabs/github-api/lib/Github/Api/AbstractApi.php',
@@ -2802,6 +2947,7 @@ return array(
'Monolog\\Handler\\DoctrineCouchDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php',
'Monolog\\Handler\\DynamoDbHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php',
'Monolog\\Handler\\ElasticaHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php',
+ 'Monolog\\Handler\\ElasticsearchHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php',
'Monolog\\Handler\\ErrorLogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php',
'Monolog\\Handler\\FallbackGroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php',
'Monolog\\Handler\\FilterHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php',
@@ -3288,7 +3434,7 @@ return array(
'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
'PHPUnit\\Util\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Exception.php',
'PHPUnit\\Util\\ExcludeList' => $vendorDir . '/phpunit/phpunit/src/Util/ExcludeList.php',
- 'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php',
+ 'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php',
'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
@@ -3678,14 +3824,17 @@ return array(
'Psr\\Http\\Message\\UploadedFileInterface' => $vendorDir . '/psr/http-message/src/UploadedFileInterface.php',
'Psr\\Http\\Message\\UriFactoryInterface' => $vendorDir . '/psr/http-factory/src/UriFactoryInterface.php',
'Psr\\Http\\Message\\UriInterface' => $vendorDir . '/psr/http-message/src/UriInterface.php',
- 'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php',
- 'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php',
- 'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php',
- 'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php',
- 'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php',
- 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php',
- 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php',
- 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php',
+ 'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',
+ 'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',
+ 'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php',
+ 'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php',
+ 'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php',
+ 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',
+ 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',
+ 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
+ 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php',
+ 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
+ 'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
@@ -3944,7 +4093,6 @@ return array(
'Ramsey\\Uuid\\Converter\\Time\\DegradedTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php',
'Ramsey\\Uuid\\Converter\\Time\\GenericTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php',
'Ramsey\\Uuid\\Converter\\Time\\PhpTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php',
- 'Ramsey\\Uuid\\Converter\\Time\\UnixTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php',
'Ramsey\\Uuid\\DegradedUuid' => $vendorDir . '/ramsey/uuid/src/DegradedUuid.php',
'Ramsey\\Uuid\\DeprecatedUuidInterface' => $vendorDir . '/ramsey/uuid/src/DeprecatedUuidInterface.php',
'Ramsey\\Uuid\\DeprecatedUuidMethodsTrait' => $vendorDir . '/ramsey/uuid/src/DeprecatedUuidMethodsTrait.php',
@@ -3980,7 +4128,6 @@ return array(
'Ramsey\\Uuid\\Generator\\RandomLibAdapter' => $vendorDir . '/ramsey/uuid/src/Generator/RandomLibAdapter.php',
'Ramsey\\Uuid\\Generator\\TimeGeneratorFactory' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php',
'Ramsey\\Uuid\\Generator\\TimeGeneratorInterface' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php',
- 'Ramsey\\Uuid\\Generator\\UnixTimeGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/UnixTimeGenerator.php',
'Ramsey\\Uuid\\Guid\\Fields' => $vendorDir . '/ramsey/uuid/src/Guid/Fields.php',
'Ramsey\\Uuid\\Guid\\Guid' => $vendorDir . '/ramsey/uuid/src/Guid/Guid.php',
'Ramsey\\Uuid\\Guid\\GuidBuilder' => $vendorDir . '/ramsey/uuid/src/Guid/GuidBuilder.php',
@@ -4005,11 +4152,8 @@ return array(
'Ramsey\\Uuid\\Provider\\Time\\SystemTimeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php',
'Ramsey\\Uuid\\Rfc4122\\Fields' => $vendorDir . '/ramsey/uuid/src/Rfc4122/Fields.php',
'Ramsey\\Uuid\\Rfc4122\\FieldsInterface' => $vendorDir . '/ramsey/uuid/src/Rfc4122/FieldsInterface.php',
- 'Ramsey\\Uuid\\Rfc4122\\MaxTrait' => $vendorDir . '/ramsey/uuid/src/Rfc4122/MaxTrait.php',
- 'Ramsey\\Uuid\\Rfc4122\\MaxUuid' => $vendorDir . '/ramsey/uuid/src/Rfc4122/MaxUuid.php',
'Ramsey\\Uuid\\Rfc4122\\NilTrait' => $vendorDir . '/ramsey/uuid/src/Rfc4122/NilTrait.php',
'Ramsey\\Uuid\\Rfc4122\\NilUuid' => $vendorDir . '/ramsey/uuid/src/Rfc4122/NilUuid.php',
- 'Ramsey\\Uuid\\Rfc4122\\TimeTrait' => $vendorDir . '/ramsey/uuid/src/Rfc4122/TimeTrait.php',
'Ramsey\\Uuid\\Rfc4122\\UuidBuilder' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidBuilder.php',
'Ramsey\\Uuid\\Rfc4122\\UuidInterface' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidInterface.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV1' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV1.php',
@@ -4017,9 +4161,6 @@ return array(
'Ramsey\\Uuid\\Rfc4122\\UuidV3' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV3.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV4' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV4.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV5' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV5.php',
- 'Ramsey\\Uuid\\Rfc4122\\UuidV6' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV6.php',
- 'Ramsey\\Uuid\\Rfc4122\\UuidV7' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV7.php',
- 'Ramsey\\Uuid\\Rfc4122\\UuidV8' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV8.php',
'Ramsey\\Uuid\\Rfc4122\\Validator' => $vendorDir . '/ramsey/uuid/src/Rfc4122/Validator.php',
'Ramsey\\Uuid\\Rfc4122\\VariantTrait' => $vendorDir . '/ramsey/uuid/src/Rfc4122/VariantTrait.php',
'Ramsey\\Uuid\\Rfc4122\\VersionTrait' => $vendorDir . '/ramsey/uuid/src/Rfc4122/VersionTrait.php',
@@ -4245,6 +4386,7 @@ return array(
'Symfony\\Component\\Cache\\Adapter\\ChainAdapter' => $vendorDir . '/symfony/cache/Adapter/ChainAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\CouchbaseBucketAdapter' => $vendorDir . '/symfony/cache/Adapter/CouchbaseBucketAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\CouchbaseCollectionAdapter' => $vendorDir . '/symfony/cache/Adapter/CouchbaseCollectionAdapter.php',
+ 'Symfony\\Component\\Cache\\Adapter\\DoctrineAdapter' => $vendorDir . '/symfony/cache/Adapter/DoctrineAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\DoctrineDbalAdapter' => $vendorDir . '/symfony/cache/Adapter/DoctrineDbalAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\FilesystemAdapter' => $vendorDir . '/symfony/cache/Adapter/FilesystemAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\FilesystemTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/FilesystemTagAwareAdapter.php',
@@ -4268,6 +4410,7 @@ return array(
'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolClearerPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolClearerPass.php',
'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolPass.php',
'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPrunerPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolPrunerPass.php',
+ 'Symfony\\Component\\Cache\\DoctrineProvider' => $vendorDir . '/symfony/cache/DoctrineProvider.php',
'Symfony\\Component\\Cache\\Exception\\CacheException' => $vendorDir . '/symfony/cache/Exception/CacheException.php',
'Symfony\\Component\\Cache\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/cache/Exception/InvalidArgumentException.php',
'Symfony\\Component\\Cache\\Exception\\LogicException' => $vendorDir . '/symfony/cache/Exception/LogicException.php',
@@ -4476,6 +4619,7 @@ return array(
'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => $vendorDir . '/symfony/event-dispatcher/EventSubscriberInterface.php',
'Symfony\\Component\\EventDispatcher\\GenericEvent' => $vendorDir . '/symfony/event-dispatcher/GenericEvent.php',
'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/ImmutableEventDispatcher.php',
+ 'Symfony\\Component\\EventDispatcher\\LegacyEventDispatcherProxy' => $vendorDir . '/symfony/event-dispatcher/LegacyEventDispatcherProxy.php',
'Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php',
'Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php',
'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php',
@@ -4908,7 +5052,6 @@ return array(
'Symfony\\Component\\String\\Slugger\\AsciiSlugger' => $vendorDir . '/symfony/string/Slugger/AsciiSlugger.php',
'Symfony\\Component\\String\\Slugger\\SluggerInterface' => $vendorDir . '/symfony/string/Slugger/SluggerInterface.php',
'Symfony\\Component\\String\\UnicodeString' => $vendorDir . '/symfony/string/UnicodeString.php',
- 'Symfony\\Component\\Translation\\CatalogueMetadataAwareInterface' => $vendorDir . '/symfony/translation/CatalogueMetadataAwareInterface.php',
'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => $vendorDir . '/symfony/translation/Catalogue/AbstractOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => $vendorDir . '/symfony/translation/Catalogue/MergeOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => $vendorDir . '/symfony/translation/Catalogue/OperationInterface.php',
@@ -4970,7 +5113,6 @@ return array(
'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => $vendorDir . '/symfony/translation/Loader/QtFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => $vendorDir . '/symfony/translation/Loader/XliffFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/translation/Loader/YamlFileLoader.php',
- 'Symfony\\Component\\Translation\\LocaleSwitcher' => $vendorDir . '/symfony/translation/LocaleSwitcher.php',
'Symfony\\Component\\Translation\\LoggingTranslator' => $vendorDir . '/symfony/translation/LoggingTranslator.php',
'Symfony\\Component\\Translation\\MessageCatalogue' => $vendorDir . '/symfony/translation/MessageCatalogue.php',
'Symfony\\Component\\Translation\\MessageCatalogueInterface' => $vendorDir . '/symfony/translation/MessageCatalogueInterface.php',
@@ -5098,6 +5240,7 @@ return array(
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',
'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
'Symfony\\Contracts\\Translation\\LocaleAwareInterface' => $vendorDir . '/symfony/translation-contracts/LocaleAwareInterface.php',
+ 'Symfony\\Contracts\\Translation\\Test\\TranslatorTest' => $vendorDir . '/symfony/translation-contracts/Test/TranslatorTest.php',
'Symfony\\Contracts\\Translation\\TranslatableInterface' => $vendorDir . '/symfony/translation-contracts/TranslatableInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/translation-contracts/TranslatorInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorTrait' => $vendorDir . '/symfony/translation-contracts/TranslatorTrait.php',
@@ -5122,7 +5265,8 @@ return array(
'Tests\\CreatesApplication' => $baseDir . '/tests/CreatesApplication.php',
'Tests\\Feature\\ExampleTest' => $baseDir . '/tests/Feature/ExampleTest.php',
'Tests\\TestCase' => $baseDir . '/tests/TestCase.php',
- 'Tests\\Unit\\ExampleTest' => $baseDir . '/tests/Unit/ExampleTest.php',
+ 'Tests\\Unit\\database\\seeders\\SettingsSeederTest' => $baseDir . '/tests/Unit/database/seeders/SettingsSeederTest.php',
+ 'Tests\\Unit\\lang\\LangTest' => $baseDir . '/tests/Unit/lang/LangTest.php',
'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',
'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',
'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php',
@@ -5161,5 +5305,4 @@ return array(
'Whoops\\Util\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php',
'Whoops\\Util\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php',
'voku\\helper\\ASCII' => $vendorDir . '/voku/portable-ascii/src/voku/helper/ASCII.php',
- '©' => $vendorDir . '/symfony/cache/Traits/ValueWrapper.php',
);
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
index fc0485ef..7303497d 100644
--- a/vendor/composer/autoload_files.php
+++ b/vendor/composer/autoload_files.php
@@ -9,12 +9,12 @@ return array(
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
+ '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
'9c67151ae59aff4788964ce8eb2a0f43' => $vendorDir . '/clue/stream-filter/src/functions_include.php',
'8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
'8cff32064859f4559445b89279f3199c' => $vendorDir . '/php-http/message/src/filters.php',
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
index fc65d267..453d3c94 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -47,8 +47,8 @@ return array(
'Ramsey\\Collection\\' => array($vendorDir . '/ramsey/collection/src'),
'Psy\\' => array($vendorDir . '/psy/psysh/src'),
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
- 'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
- 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
+ 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
+ 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'),
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
@@ -70,7 +70,7 @@ return array(
'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'),
'Http\\Promise\\' => array($vendorDir . '/php-http/promise/src'),
'Http\\Message\\MultipartStream\\' => array($vendorDir . '/php-http/multipart-stream-builder/src'),
- 'Http\\Message\\' => array($vendorDir . '/php-http/message/src', $vendorDir . '/php-http/message-factory/src'),
+ 'Http\\Message\\' => array($vendorDir . '/php-http/message-factory/src', $vendorDir . '/php-http/message/src'),
'Http\\Discovery\\' => array($vendorDir . '/php-http/discovery/src'),
'Http\\Client\\Common\\Plugin\\' => array($vendorDir . '/php-http/cache-plugin/src'),
'Http\\Client\\Common\\' => array($vendorDir . '/php-http/client-common/src'),
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 72b8284c..d4acc170 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInit4b6fb9210a1ea37c2db27b8ff53a1ecf
+class ComposerAutoloaderInitb2555e5ff7197b9e020da74bbd3b7cfa
{
private static $loader;
@@ -24,18 +24,18 @@ class ComposerAutoloaderInit4b6fb9210a1ea37c2db27b8ff53a1ecf
require __DIR__ . '/platform_check.php';
- spl_autoload_register(array('ComposerAutoloaderInit4b6fb9210a1ea37c2db27b8ff53a1ecf', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInitb2555e5ff7197b9e020da74bbd3b7cfa', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
- spl_autoload_unregister(array('ComposerAutoloaderInit4b6fb9210a1ea37c2db27b8ff53a1ecf', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInitb2555e5ff7197b9e020da74bbd3b7cfa', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa::getInitializer($loader));
$loader->register(true);
- $includeFiles = \Composer\Autoload\ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$files;
+ $includeFiles = \Composer\Autoload\ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
- composerRequire4b6fb9210a1ea37c2db27b8ff53a1ecf($fileIdentifier, $file);
+ composerRequireb2555e5ff7197b9e020da74bbd3b7cfa($fileIdentifier, $file);
}
return $loader;
@@ -47,7 +47,7 @@ class ComposerAutoloaderInit4b6fb9210a1ea37c2db27b8ff53a1ecf
* @param string $file
* @return void
*/
-function composerRequire4b6fb9210a1ea37c2db27b8ff53a1ecf($fileIdentifier, $file)
+function composerRequireb2555e5ff7197b9e020da74bbd3b7cfa($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index fc4d9ab9..f06d448e 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,18 +4,18 @@
namespace Composer\Autoload;
-class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
+class ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa
{
public static $files = array (
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
+ '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
'9c67151ae59aff4788964ce8eb2a0f43' => __DIR__ . '/..' . '/clue/stream-filter/src/functions_include.php',
'8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
'8cff32064859f4559445b89279f3199c' => __DIR__ . '/..' . '/php-http/message/src/filters.php',
@@ -366,12 +366,12 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
),
'Psr\\Log\\' =>
array (
- 0 => __DIR__ . '/..' . '/psr/log/src',
+ 0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
),
'Psr\\Http\\Message\\' =>
array (
- 0 => __DIR__ . '/..' . '/psr/http-factory/src',
- 1 => __DIR__ . '/..' . '/psr/http-message/src',
+ 0 => __DIR__ . '/..' . '/psr/http-message/src',
+ 1 => __DIR__ . '/..' . '/psr/http-factory/src',
),
'Psr\\Http\\Client\\' =>
array (
@@ -460,8 +460,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
),
'Http\\Message\\' =>
array (
- 0 => __DIR__ . '/..' . '/php-http/message/src',
- 1 => __DIR__ . '/..' . '/php-http/message-factory/src',
+ 0 => __DIR__ . '/..' . '/php-http/message-factory/src',
+ 1 => __DIR__ . '/..' . '/php-http/message/src',
),
'Http\\Discovery\\' =>
array (
@@ -641,6 +641,18 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'App\\SettingGroup' => __DIR__ . '/../..' . '/app/SettingGroup.php',
'App\\SettingUser' => __DIR__ . '/../..' . '/app/SettingUser.php',
'App\\SupportedApps' => __DIR__ . '/../..' . '/app/SupportedApps.php',
+ 'App\\SupportedApps\\AVMFritzbox\\AVMFritzbox' => __DIR__ . '/../..' . '/app/SupportedApps/AVMFritzbox/AVMFritzbox.php',
+ 'App\\SupportedApps\\Ackee\\Ackee' => __DIR__ . '/../..' . '/app/SupportedApps/Ackee/Ackee.php',
+ 'App\\SupportedApps\\Airsonic\\Airsonic' => __DIR__ . '/../..' . '/app/SupportedApps/Airsonic/Airsonic.php',
+ 'App\\SupportedApps\\Alertmanager\\Alertmanager' => __DIR__ . '/../..' . '/app/SupportedApps/Alertmanager/Alertmanager.php',
+ 'App\\SupportedApps\\ArchiSteamFarm\\ArchiSteamFarm' => __DIR__ . '/../..' . '/app/SupportedApps/ArchiSteamFarm/ArchiSteamFarm.php',
+ 'App\\SupportedApps\\ArchiveBox\\ArchiveBox' => __DIR__ . '/../..' . '/app/SupportedApps/ArchiveBox/ArchiveBox.php',
+ 'App\\SupportedApps\\ArgoCD\\ArgoCD' => __DIR__ . '/../..' . '/app/SupportedApps/ArgoCD/ArgoCD.php',
+ 'App\\SupportedApps\\AriaNg\\AriaNg' => __DIR__ . '/../..' . '/app/SupportedApps/AriaNg/AriaNg.php',
+ 'App\\SupportedApps\\Artifactory\\Artifactory' => __DIR__ . '/../..' . '/app/SupportedApps/Artifactory/Artifactory.php',
+ 'App\\SupportedApps\\Pihole\\Pihole' => __DIR__ . '/../..' . '/app/SupportedApps/Pihole/Pihole.php',
+ 'App\\SupportedApps\\XP900\\XP900' => __DIR__ . '/../..' . '/app/SupportedApps/XP900/XP900.php',
+ 'App\\SupportedApps\\authentik\\authentik' => __DIR__ . '/../..' . '/app/SupportedApps/authentik/authentik.php',
'App\\User' => __DIR__ . '/../..' . '/app/User.php',
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
'Brick\\Math\\BigDecimal' => __DIR__ . '/..' . '/brick/math/src/BigDecimal.php',
@@ -1086,7 +1098,11 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Facade\\Ignition\\Views\\Concerns\\CollectsViewExceptions' => __DIR__ . '/..' . '/facade/ignition/src/Views/Concerns/CollectsViewExceptions.php',
'Facade\\Ignition\\Views\\Engines\\CompilerEngine' => __DIR__ . '/..' . '/facade/ignition/src/Views/Engines/CompilerEngine.php',
'Facade\\Ignition\\Views\\Engines\\PhpEngine' => __DIR__ . '/..' . '/facade/ignition/src/Views/Engines/PhpEngine.php',
+ 'Faker\\Calculator\\Ean' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Ean.php',
+ 'Faker\\Calculator\\Iban' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Iban.php',
+ 'Faker\\Calculator\\Inn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Inn.php',
'Faker\\Calculator\\Luhn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php',
+ 'Faker\\Calculator\\TCNo' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php',
'Faker\\DefaultGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/DefaultGenerator.php',
'Faker\\Documentor' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Documentor.php',
'Faker\\Factory' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Factory.php',
@@ -1101,9 +1117,15 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\ORM\\Mandango\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php',
'Faker\\ORM\\Mandango\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php',
'Faker\\ORM\\Mandango\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php',
+ 'Faker\\ORM\\Propel2\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php',
+ 'Faker\\ORM\\Propel2\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php',
+ 'Faker\\ORM\\Propel2\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php',
'Faker\\ORM\\Propel\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php',
'Faker\\ORM\\Propel\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php',
'Faker\\ORM\\Propel\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php',
+ 'Faker\\ORM\\Spot\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php',
+ 'Faker\\ORM\\Spot\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php',
+ 'Faker\\ORM\\Spot\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php',
'Faker\\Provider\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Address.php',
'Faker\\Provider\\Barcode' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Barcode.php',
'Faker\\Provider\\Base' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Base.php',
@@ -1112,6 +1134,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Company.php',
'Faker\\Provider\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/DateTime.php',
'Faker\\Provider\\File' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/File.php',
+ 'Faker\\Provider\\HtmlLorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php',
'Faker\\Provider\\Image' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Image.php',
'Faker\\Provider\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Internet.php',
'Faker\\Provider\\Lorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Lorem.php',
@@ -1127,8 +1150,14 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\ar_JO\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php',
'Faker\\Provider\\ar_JO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php',
'Faker\\Provider\\ar_JO\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php',
+ 'Faker\\Provider\\ar_SA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php',
+ 'Faker\\Provider\\ar_SA\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php',
+ 'Faker\\Provider\\ar_SA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php',
+ 'Faker\\Provider\\ar_SA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php',
+ 'Faker\\Provider\\ar_SA\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php',
+ 'Faker\\Provider\\ar_SA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php',
+ 'Faker\\Provider\\ar_SA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php',
'Faker\\Provider\\at_AT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php',
- 'Faker\\Provider\\be_BE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/be_BE/Payment.php',
'Faker\\Provider\\bg_BG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php',
'Faker\\Provider\\bg_BG\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php',
'Faker\\Provider\\bg_BG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php',
@@ -1158,6 +1187,14 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\de_AT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php',
'Faker\\Provider\\de_AT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php',
'Faker\\Provider\\de_AT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php',
+ 'Faker\\Provider\\de_AT\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php',
+ 'Faker\\Provider\\de_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php',
+ 'Faker\\Provider\\de_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php',
+ 'Faker\\Provider\\de_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php',
+ 'Faker\\Provider\\de_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php',
+ 'Faker\\Provider\\de_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php',
+ 'Faker\\Provider\\de_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php',
+ 'Faker\\Provider\\de_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php',
'Faker\\Provider\\de_DE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php',
'Faker\\Provider\\de_DE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php',
'Faker\\Provider\\de_DE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php',
@@ -1165,10 +1202,18 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\de_DE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php',
'Faker\\Provider\\de_DE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php',
'Faker\\Provider\\de_DE\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php',
+ 'Faker\\Provider\\el_CY\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php',
+ 'Faker\\Provider\\el_CY\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php',
+ 'Faker\\Provider\\el_CY\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php',
+ 'Faker\\Provider\\el_CY\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php',
+ 'Faker\\Provider\\el_CY\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php',
+ 'Faker\\Provider\\el_CY\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php',
'Faker\\Provider\\el_GR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php',
+ 'Faker\\Provider\\el_GR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php',
'Faker\\Provider\\el_GR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php',
'Faker\\Provider\\el_GR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php',
'Faker\\Provider\\el_GR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php',
+ 'Faker\\Provider\\el_GR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php',
'Faker\\Provider\\en_AU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php',
'Faker\\Provider\\en_AU\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php',
'Faker\\Provider\\en_AU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php',
@@ -1179,20 +1224,36 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\en_GB\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php',
'Faker\\Provider\\en_GB\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php',
'Faker\\Provider\\en_GB\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php',
+ 'Faker\\Provider\\en_HK\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php',
+ 'Faker\\Provider\\en_HK\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php',
+ 'Faker\\Provider\\en_HK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php',
+ 'Faker\\Provider\\en_IN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php',
+ 'Faker\\Provider\\en_IN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php',
+ 'Faker\\Provider\\en_IN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php',
+ 'Faker\\Provider\\en_IN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php',
+ 'Faker\\Provider\\en_NG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php',
+ 'Faker\\Provider\\en_NG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php',
+ 'Faker\\Provider\\en_NG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php',
+ 'Faker\\Provider\\en_NG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php',
'Faker\\Provider\\en_NZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php',
'Faker\\Provider\\en_NZ\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php',
'Faker\\Provider\\en_NZ\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php',
'Faker\\Provider\\en_PH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php',
+ 'Faker\\Provider\\en_PH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php',
+ 'Faker\\Provider\\en_SG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php',
+ 'Faker\\Provider\\en_SG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php',
'Faker\\Provider\\en_UG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php',
'Faker\\Provider\\en_UG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php',
'Faker\\Provider\\en_UG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php',
'Faker\\Provider\\en_UG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php',
'Faker\\Provider\\en_US\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php',
'Faker\\Provider\\en_US\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php',
+ 'Faker\\Provider\\en_US\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php',
'Faker\\Provider\\en_US\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php',
'Faker\\Provider\\en_US\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php',
'Faker\\Provider\\en_US\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php',
'Faker\\Provider\\en_ZA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php',
+ 'Faker\\Provider\\en_ZA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php',
'Faker\\Provider\\en_ZA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php',
'Faker\\Provider\\en_ZA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php',
'Faker\\Provider\\en_ZA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php',
@@ -1201,11 +1262,13 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\es_AR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php',
'Faker\\Provider\\es_AR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php',
'Faker\\Provider\\es_ES\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php',
+ 'Faker\\Provider\\es_ES\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Color.php',
'Faker\\Provider\\es_ES\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php',
'Faker\\Provider\\es_ES\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php',
'Faker\\Provider\\es_ES\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php',
'Faker\\Provider\\es_ES\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php',
'Faker\\Provider\\es_ES\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php',
+ 'Faker\\Provider\\es_ES\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php',
'Faker\\Provider\\es_PE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php',
'Faker\\Provider\\es_PE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php',
'Faker\\Provider\\es_PE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php',
@@ -1215,12 +1278,17 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\es_VE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php',
'Faker\\Provider\\es_VE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php',
'Faker\\Provider\\es_VE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php',
+ 'Faker\\Provider\\et_EE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/et_EE/Person.php',
+ 'Faker\\Provider\\fa_IR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php',
+ 'Faker\\Provider\\fa_IR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php',
'Faker\\Provider\\fa_IR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php',
'Faker\\Provider\\fa_IR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php',
+ 'Faker\\Provider\\fa_IR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php',
'Faker\\Provider\\fa_IR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php',
'Faker\\Provider\\fi_FI\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php',
'Faker\\Provider\\fi_FI\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php',
'Faker\\Provider\\fi_FI\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php',
+ 'Faker\\Provider\\fi_FI\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php',
'Faker\\Provider\\fi_FI\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php',
'Faker\\Provider\\fi_FI\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php',
'Faker\\Provider\\fr_BE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php',
@@ -1230,7 +1298,16 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\fr_BE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php',
'Faker\\Provider\\fr_BE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php',
'Faker\\Provider\\fr_CA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php',
+ 'Faker\\Provider\\fr_CA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php',
'Faker\\Provider\\fr_CA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php',
+ 'Faker\\Provider\\fr_CA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Text.php',
+ 'Faker\\Provider\\fr_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php',
+ 'Faker\\Provider\\fr_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php',
+ 'Faker\\Provider\\fr_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php',
+ 'Faker\\Provider\\fr_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php',
+ 'Faker\\Provider\\fr_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php',
+ 'Faker\\Provider\\fr_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php',
+ 'Faker\\Provider\\fr_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php',
'Faker\\Provider\\fr_FR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php',
'Faker\\Provider\\fr_FR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php',
'Faker\\Provider\\fr_FR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php',
@@ -1238,17 +1315,30 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\fr_FR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php',
'Faker\\Provider\\fr_FR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php',
'Faker\\Provider\\fr_FR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php',
+ 'Faker\\Provider\\he_IL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php',
+ 'Faker\\Provider\\he_IL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php',
+ 'Faker\\Provider\\he_IL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php',
+ 'Faker\\Provider\\he_IL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php',
+ 'Faker\\Provider\\he_IL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php',
+ 'Faker\\Provider\\hr_HR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php',
+ 'Faker\\Provider\\hr_HR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php',
+ 'Faker\\Provider\\hr_HR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php',
+ 'Faker\\Provider\\hr_HR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php',
+ 'Faker\\Provider\\hr_HR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php',
'Faker\\Provider\\hu_HU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php',
'Faker\\Provider\\hu_HU\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php',
+ 'Faker\\Provider\\hu_HU\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php',
'Faker\\Provider\\hu_HU\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php',
'Faker\\Provider\\hu_HU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php',
'Faker\\Provider\\hu_HU\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php',
'Faker\\Provider\\hy_AM\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php',
+ 'Faker\\Provider\\hy_AM\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php',
'Faker\\Provider\\hy_AM\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php',
'Faker\\Provider\\hy_AM\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php',
'Faker\\Provider\\hy_AM\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php',
'Faker\\Provider\\hy_AM\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php',
'Faker\\Provider\\id_ID\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php',
+ 'Faker\\Provider\\id_ID\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php',
'Faker\\Provider\\id_ID\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php',
'Faker\\Provider\\id_ID\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php',
'Faker\\Provider\\id_ID\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php',
@@ -1259,6 +1349,13 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\is_IS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php',
'Faker\\Provider\\is_IS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php',
'Faker\\Provider\\is_IS\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php',
+ 'Faker\\Provider\\it_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php',
+ 'Faker\\Provider\\it_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php',
+ 'Faker\\Provider\\it_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php',
+ 'Faker\\Provider\\it_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php',
+ 'Faker\\Provider\\it_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php',
+ 'Faker\\Provider\\it_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php',
+ 'Faker\\Provider\\it_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php',
'Faker\\Provider\\it_IT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php',
'Faker\\Provider\\it_IT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php',
'Faker\\Provider\\it_IT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php',
@@ -1271,7 +1368,15 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\ja_JP\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php',
'Faker\\Provider\\ja_JP\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php',
'Faker\\Provider\\ja_JP\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php',
+ 'Faker\\Provider\\ja_JP\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php',
+ 'Faker\\Provider\\ka_GE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php',
+ 'Faker\\Provider\\ka_GE\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php',
+ 'Faker\\Provider\\ka_GE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php',
+ 'Faker\\Provider\\ka_GE\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php',
+ 'Faker\\Provider\\ka_GE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php',
+ 'Faker\\Provider\\ka_GE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php',
'Faker\\Provider\\ka_GE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php',
+ 'Faker\\Provider\\ka_GE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php',
'Faker\\Provider\\ka_GE\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php',
'Faker\\Provider\\kk_KZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php',
'Faker\\Provider\\kk_KZ\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php',
@@ -1286,7 +1391,15 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\ko_KR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php',
'Faker\\Provider\\ko_KR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php',
'Faker\\Provider\\ko_KR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php',
+ 'Faker\\Provider\\ko_KR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php',
+ 'Faker\\Provider\\lt_LT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php',
+ 'Faker\\Provider\\lt_LT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php',
+ 'Faker\\Provider\\lt_LT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php',
+ 'Faker\\Provider\\lt_LT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php',
+ 'Faker\\Provider\\lt_LT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php',
+ 'Faker\\Provider\\lt_LT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php',
'Faker\\Provider\\lv_LV\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php',
+ 'Faker\\Provider\\lv_LV\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php',
'Faker\\Provider\\lv_LV\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php',
'Faker\\Provider\\lv_LV\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php',
'Faker\\Provider\\lv_LV\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php',
@@ -1296,6 +1409,19 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\me_ME\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php',
'Faker\\Provider\\me_ME\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php',
'Faker\\Provider\\me_ME\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php',
+ 'Faker\\Provider\\mn_MN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php',
+ 'Faker\\Provider\\mn_MN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php',
+ 'Faker\\Provider\\ms_MY\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php',
+ 'Faker\\Provider\\ms_MY\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php',
+ 'Faker\\Provider\\ms_MY\\Miscellaneous' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php',
+ 'Faker\\Provider\\ms_MY\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php',
+ 'Faker\\Provider\\ms_MY\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php',
+ 'Faker\\Provider\\ms_MY\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php',
+ 'Faker\\Provider\\nb_NO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php',
+ 'Faker\\Provider\\nb_NO\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php',
+ 'Faker\\Provider\\nb_NO\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php',
+ 'Faker\\Provider\\nb_NO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php',
+ 'Faker\\Provider\\nb_NO\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php',
'Faker\\Provider\\ne_NP\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php',
'Faker\\Provider\\ne_NP\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php',
'Faker\\Provider\\ne_NP\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php',
@@ -1306,6 +1432,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\nl_BE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php',
'Faker\\Provider\\nl_BE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php',
'Faker\\Provider\\nl_BE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php',
+ 'Faker\\Provider\\nl_BE\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php',
'Faker\\Provider\\nl_NL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php',
'Faker\\Provider\\nl_NL\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php',
'Faker\\Provider\\nl_NL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php',
@@ -1313,10 +1440,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\nl_NL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php',
'Faker\\Provider\\nl_NL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php',
'Faker\\Provider\\nl_NL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php',
- 'Faker\\Provider\\no_NO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/no_NO/Address.php',
- 'Faker\\Provider\\no_NO\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/no_NO/Company.php',
- 'Faker\\Provider\\no_NO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/no_NO/Person.php',
- 'Faker\\Provider\\no_NO\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/no_NO/PhoneNumber.php',
+ 'Faker\\Provider\\nl_NL\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php',
'Faker\\Provider\\pl_PL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php',
'Faker\\Provider\\pl_PL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php',
'Faker\\Provider\\pl_PL\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php',
@@ -1331,15 +1455,21 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\pt_BR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php',
'Faker\\Provider\\pt_BR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php',
'Faker\\Provider\\pt_PT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php',
+ 'Faker\\Provider\\pt_PT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php',
+ 'Faker\\Provider\\pt_PT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Internet.php',
'Faker\\Provider\\pt_PT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php',
'Faker\\Provider\\pt_PT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php',
'Faker\\Provider\\pt_PT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php',
'Faker\\Provider\\ro_MD\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php',
+ 'Faker\\Provider\\ro_MD\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php',
'Faker\\Provider\\ro_MD\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php',
'Faker\\Provider\\ro_MD\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php',
+ 'Faker\\Provider\\ro_MD\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php',
'Faker\\Provider\\ro_RO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php',
+ 'Faker\\Provider\\ro_RO\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php',
'Faker\\Provider\\ro_RO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php',
'Faker\\Provider\\ro_RO\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php',
+ 'Faker\\Provider\\ro_RO\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php',
'Faker\\Provider\\ru_RU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php',
'Faker\\Provider\\ru_RU\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php',
'Faker\\Provider\\ru_RU\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php',
@@ -1355,6 +1485,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\sk_SK\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php',
'Faker\\Provider\\sk_SK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php',
'Faker\\Provider\\sl_SI\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php',
+ 'Faker\\Provider\\sl_SI\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php',
'Faker\\Provider\\sl_SI\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php',
'Faker\\Provider\\sl_SI\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php',
'Faker\\Provider\\sl_SI\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php',
@@ -1370,10 +1501,19 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\sr_RS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php',
'Faker\\Provider\\sv_SE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php',
'Faker\\Provider\\sv_SE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php',
+ 'Faker\\Provider\\sv_SE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php',
'Faker\\Provider\\sv_SE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php',
'Faker\\Provider\\sv_SE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php',
+ 'Faker\\Provider\\th_TH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php',
+ 'Faker\\Provider\\th_TH\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php',
+ 'Faker\\Provider\\th_TH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php',
+ 'Faker\\Provider\\th_TH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php',
+ 'Faker\\Provider\\th_TH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php',
+ 'Faker\\Provider\\th_TH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Person.php',
+ 'Faker\\Provider\\th_TH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php',
'Faker\\Provider\\tr_TR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php',
'Faker\\Provider\\tr_TR\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php',
+ 'Faker\\Provider\\tr_TR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php',
'Faker\\Provider\\tr_TR\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php',
'Faker\\Provider\\tr_TR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php',
'Faker\\Provider\\tr_TR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php',
@@ -1383,6 +1523,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\uk_UA\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php',
'Faker\\Provider\\uk_UA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php',
'Faker\\Provider\\uk_UA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php',
+ 'Faker\\Provider\\uk_UA\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',
'Faker\\Provider\\uk_UA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php',
'Faker\\Provider\\uk_UA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php',
'Faker\\Provider\\uk_UA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php',
@@ -1392,8 +1533,11 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\vi_VN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php',
'Faker\\Provider\\vi_VN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php',
'Faker\\Provider\\zh_CN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php',
+ 'Faker\\Provider\\zh_CN\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php',
'Faker\\Provider\\zh_CN\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php',
+ 'Faker\\Provider\\zh_CN\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php',
'Faker\\Provider\\zh_CN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php',
+ 'Faker\\Provider\\zh_CN\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php',
'Faker\\Provider\\zh_CN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php',
'Faker\\Provider\\zh_CN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php',
'Faker\\Provider\\zh_TW\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php',
@@ -1406,6 +1550,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Faker\\Provider\\zh_TW\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php',
'Faker\\Provider\\zh_TW\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php',
'Faker\\UniqueGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/UniqueGenerator.php',
+ 'Faker\\ValidGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ValidGenerator.php',
'Fideloper\\Proxy\\TrustProxies' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustProxies.php',
'Fideloper\\Proxy\\TrustedProxyServiceProvider' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustedProxyServiceProvider.php',
'Github\\Api\\AbstractApi' => __DIR__ . '/..' . '/knplabs/github-api/lib/Github/Api/AbstractApi.php',
@@ -3400,6 +3545,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Monolog\\Handler\\DoctrineCouchDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php',
'Monolog\\Handler\\DynamoDbHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php',
'Monolog\\Handler\\ElasticaHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ElasticaHandler.php',
+ 'Monolog\\Handler\\ElasticsearchHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php',
'Monolog\\Handler\\ErrorLogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php',
'Monolog\\Handler\\FallbackGroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FallbackGroupHandler.php',
'Monolog\\Handler\\FilterHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php',
@@ -3886,7 +4032,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
'PHPUnit\\Util\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception.php',
'PHPUnit\\Util\\ExcludeList' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ExcludeList.php',
- 'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Fileloader.php',
+ 'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php',
'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',
'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',
'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',
@@ -4276,14 +4422,17 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/..' . '/psr/http-message/src/UploadedFileInterface.php',
'Psr\\Http\\Message\\UriFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/UriFactoryInterface.php',
'Psr\\Http\\Message\\UriInterface' => __DIR__ . '/..' . '/psr/http-message/src/UriInterface.php',
- 'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php',
- 'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php',
- 'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php',
- 'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php',
- 'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php',
- 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php',
- 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php',
- 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php',
+ 'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
+ 'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
+ 'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',
+ 'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php',
+ 'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php',
+ 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',
+ 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',
+ 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
+ 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php',
+ 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
+ 'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
@@ -4542,7 +4691,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Ramsey\\Uuid\\Converter\\Time\\DegradedTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php',
'Ramsey\\Uuid\\Converter\\Time\\GenericTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php',
'Ramsey\\Uuid\\Converter\\Time\\PhpTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php',
- 'Ramsey\\Uuid\\Converter\\Time\\UnixTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php',
'Ramsey\\Uuid\\DegradedUuid' => __DIR__ . '/..' . '/ramsey/uuid/src/DegradedUuid.php',
'Ramsey\\Uuid\\DeprecatedUuidInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/DeprecatedUuidInterface.php',
'Ramsey\\Uuid\\DeprecatedUuidMethodsTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/DeprecatedUuidMethodsTrait.php',
@@ -4578,7 +4726,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Ramsey\\Uuid\\Generator\\RandomLibAdapter' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomLibAdapter.php',
'Ramsey\\Uuid\\Generator\\TimeGeneratorFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php',
'Ramsey\\Uuid\\Generator\\TimeGeneratorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php',
- 'Ramsey\\Uuid\\Generator\\UnixTimeGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/UnixTimeGenerator.php',
'Ramsey\\Uuid\\Guid\\Fields' => __DIR__ . '/..' . '/ramsey/uuid/src/Guid/Fields.php',
'Ramsey\\Uuid\\Guid\\Guid' => __DIR__ . '/..' . '/ramsey/uuid/src/Guid/Guid.php',
'Ramsey\\Uuid\\Guid\\GuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Guid/GuidBuilder.php',
@@ -4603,11 +4750,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Ramsey\\Uuid\\Provider\\Time\\SystemTimeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php',
'Ramsey\\Uuid\\Rfc4122\\Fields' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/Fields.php',
'Ramsey\\Uuid\\Rfc4122\\FieldsInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/FieldsInterface.php',
- 'Ramsey\\Uuid\\Rfc4122\\MaxTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/MaxTrait.php',
- 'Ramsey\\Uuid\\Rfc4122\\MaxUuid' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/MaxUuid.php',
'Ramsey\\Uuid\\Rfc4122\\NilTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/NilTrait.php',
'Ramsey\\Uuid\\Rfc4122\\NilUuid' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/NilUuid.php',
- 'Ramsey\\Uuid\\Rfc4122\\TimeTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/TimeTrait.php',
'Ramsey\\Uuid\\Rfc4122\\UuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidBuilder.php',
'Ramsey\\Uuid\\Rfc4122\\UuidInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidInterface.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV1' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV1.php',
@@ -4615,9 +4759,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Ramsey\\Uuid\\Rfc4122\\UuidV3' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV3.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV4' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV4.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV5' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV5.php',
- 'Ramsey\\Uuid\\Rfc4122\\UuidV6' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV6.php',
- 'Ramsey\\Uuid\\Rfc4122\\UuidV7' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV7.php',
- 'Ramsey\\Uuid\\Rfc4122\\UuidV8' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV8.php',
'Ramsey\\Uuid\\Rfc4122\\Validator' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/Validator.php',
'Ramsey\\Uuid\\Rfc4122\\VariantTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/VariantTrait.php',
'Ramsey\\Uuid\\Rfc4122\\VersionTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/VersionTrait.php',
@@ -4843,6 +4984,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Cache\\Adapter\\ChainAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ChainAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\CouchbaseBucketAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/CouchbaseBucketAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\CouchbaseCollectionAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/CouchbaseCollectionAdapter.php',
+ 'Symfony\\Component\\Cache\\Adapter\\DoctrineAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/DoctrineAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\DoctrineDbalAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/DoctrineDbalAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\FilesystemAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/FilesystemAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\FilesystemTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/FilesystemTagAwareAdapter.php',
@@ -4866,6 +5008,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolClearerPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolClearerPass.php',
'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolPass.php',
'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPrunerPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolPrunerPass.php',
+ 'Symfony\\Component\\Cache\\DoctrineProvider' => __DIR__ . '/..' . '/symfony/cache/DoctrineProvider.php',
'Symfony\\Component\\Cache\\Exception\\CacheException' => __DIR__ . '/..' . '/symfony/cache/Exception/CacheException.php',
'Symfony\\Component\\Cache\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/cache/Exception/InvalidArgumentException.php',
'Symfony\\Component\\Cache\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/cache/Exception/LogicException.php',
@@ -5074,6 +5217,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventSubscriberInterface.php',
'Symfony\\Component\\EventDispatcher\\GenericEvent' => __DIR__ . '/..' . '/symfony/event-dispatcher/GenericEvent.php',
'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/ImmutableEventDispatcher.php',
+ 'Symfony\\Component\\EventDispatcher\\LegacyEventDispatcherProxy' => __DIR__ . '/..' . '/symfony/event-dispatcher/LegacyEventDispatcherProxy.php',
'Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php',
'Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php',
'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php',
@@ -5506,7 +5650,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\String\\Slugger\\AsciiSlugger' => __DIR__ . '/..' . '/symfony/string/Slugger/AsciiSlugger.php',
'Symfony\\Component\\String\\Slugger\\SluggerInterface' => __DIR__ . '/..' . '/symfony/string/Slugger/SluggerInterface.php',
'Symfony\\Component\\String\\UnicodeString' => __DIR__ . '/..' . '/symfony/string/UnicodeString.php',
- 'Symfony\\Component\\Translation\\CatalogueMetadataAwareInterface' => __DIR__ . '/..' . '/symfony/translation/CatalogueMetadataAwareInterface.php',
'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/AbstractOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/MergeOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => __DIR__ . '/..' . '/symfony/translation/Catalogue/OperationInterface.php',
@@ -5568,7 +5711,6 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/QtFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/XliffFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/YamlFileLoader.php',
- 'Symfony\\Component\\Translation\\LocaleSwitcher' => __DIR__ . '/..' . '/symfony/translation/LocaleSwitcher.php',
'Symfony\\Component\\Translation\\LoggingTranslator' => __DIR__ . '/..' . '/symfony/translation/LoggingTranslator.php',
'Symfony\\Component\\Translation\\MessageCatalogue' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogue.php',
'Symfony\\Component\\Translation\\MessageCatalogueInterface' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogueInterface.php',
@@ -5696,6 +5838,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',
'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
'Symfony\\Contracts\\Translation\\LocaleAwareInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/LocaleAwareInterface.php',
+ 'Symfony\\Contracts\\Translation\\Test\\TranslatorTest' => __DIR__ . '/..' . '/symfony/translation-contracts/Test/TranslatorTest.php',
'Symfony\\Contracts\\Translation\\TranslatableInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatableInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatorInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorTrait' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatorTrait.php',
@@ -5720,7 +5863,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Tests\\CreatesApplication' => __DIR__ . '/../..' . '/tests/CreatesApplication.php',
'Tests\\Feature\\ExampleTest' => __DIR__ . '/../..' . '/tests/Feature/ExampleTest.php',
'Tests\\TestCase' => __DIR__ . '/../..' . '/tests/TestCase.php',
- 'Tests\\Unit\\ExampleTest' => __DIR__ . '/../..' . '/tests/Unit/ExampleTest.php',
+ 'Tests\\Unit\\database\\seeders\\SettingsSeederTest' => __DIR__ . '/../..' . '/tests/Unit/database/seeders/SettingsSeederTest.php',
+ 'Tests\\Unit\\lang\\LangTest' => __DIR__ . '/../..' . '/tests/Unit/lang/LangTest.php',
'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php',
'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php',
'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php',
@@ -5759,16 +5903,15 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Whoops\\Util\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php',
'Whoops\\Util\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php',
'voku\\helper\\ASCII' => __DIR__ . '/..' . '/voku/portable-ascii/src/voku/helper/ASCII.php',
- '©' => __DIR__ . '/..' . '/symfony/cache/Traits/ValueWrapper.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$prefixDirsPsr4;
- $loader->prefixesPsr0 = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$prefixesPsr0;
- $loader->classMap = ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa::$prefixDirsPsr4;
+ $loader->prefixesPsr0 = ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa::$prefixesPsr0;
+ $loader->classMap = ComposerStaticInitb2555e5ff7197b9e020da74bbd3b7cfa::$classMap;
}, null, ClassLoader::class);
}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 04ce3202..838fe25a 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -2,29 +2,29 @@
"packages": [
{
"name": "brick/math",
- "version": "0.10.2",
- "version_normalized": "0.10.2.0",
+ "version": "0.9.3",
+ "version_normalized": "0.9.3.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f"
+ "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f",
+ "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
+ "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
"shasum": ""
},
"require": {
"ext-json": "*",
- "php": "^7.4 || ^8.0"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^9.0",
- "vimeo/psalm": "4.25.0"
+ "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
+ "vimeo/psalm": "4.9.2"
},
- "time": "2022-08-10T22:54:19+00:00",
+ "time": "2021-08-15T20:50:18+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -49,12 +49,16 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.10.2"
+ "source": "https://github.com/brick/math/tree/0.9.3"
},
"funding": [
{
"url": "https://github.com/BenMorel",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/brick/math",
+ "type": "tidelift"
}
],
"install-path": "../brick/math"
@@ -929,34 +933,32 @@
},
{
"name": "fzaninotto/faker",
- "version": "v1.5.0",
- "version_normalized": "1.5.0.0",
+ "version": "v1.9.2",
+ "version_normalized": "1.9.2.0",
"source": {
"type": "git",
"url": "https://github.com/fzaninotto/Faker.git",
- "reference": "d0190b156bcca848d401fb80f31f504f37141c8d"
+ "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d",
- "reference": "d0190b156bcca848d401fb80f31f504f37141c8d",
+ "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/848d8125239d7dbf8ab25cb7f054f1a630e68c2e",
+ "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^5.3.3 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~1.5"
+ "ext-intl": "*",
+ "phpunit/phpunit": "^4.8.35 || ^5.7",
+ "squizlabs/php_codesniffer": "^2.9.2"
},
- "suggest": {
- "ext-intl": "*"
- },
- "time": "2015-05-29T06:29:14+00:00",
+ "time": "2020-12-11T09:56:16+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.5.x-dev"
+ "dev-master": "1.9-dev"
}
},
"installation-source": "dist",
@@ -982,7 +984,7 @@
],
"support": {
"issues": "https://github.com/fzaninotto/Faker/issues",
- "source": "https://github.com/fzaninotto/Faker/tree/master"
+ "source": "https://github.com/fzaninotto/Faker/tree/v1.9.2"
},
"abandoned": true,
"install-path": "../fzaninotto/faker"
@@ -3808,6 +3810,10 @@
"stream",
"uri"
],
+ "support": {
+ "issues": "https://github.com/php-http/message-factory/issues",
+ "source": "https://github.com/php-http/message-factory/tree/master"
+ },
"install-path": "../php-http/message-factory"
},
{
@@ -4453,23 +4459,23 @@
},
{
"name": "psr/cache",
- "version": "3.0.0",
- "version_normalized": "3.0.0.0",
+ "version": "1.0.1",
+ "version_normalized": "1.0.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": ""
},
"require": {
- "php": ">=8.0.0"
+ "php": ">=5.3.0"
},
- "time": "2021-02-03T23:26:27+00:00",
+ "time": "2016-08-06T20:24:11+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -4489,7 +4495,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
@@ -4499,7 +4505,7 @@
"psr-6"
],
"support": {
- "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ "source": "https://github.com/php-fig/cache/tree/master"
},
"install-path": "../psr/cache"
},
@@ -4771,37 +4777,40 @@
"request",
"response"
],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/master"
+ },
"install-path": "../psr/http-message"
},
{
"name": "psr/log",
- "version": "2.0.0",
- "version_normalized": "2.0.0.0",
+ "version": "1.1.4",
+ "version_normalized": "1.1.4.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
- "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
- "php": ">=8.0.0"
+ "php": ">=5.3.0"
},
- "time": "2021-07-14T16:41:46+00:00",
+ "time": "2021-05-03T11:20:27+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "1.1.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-4": {
- "Psr\\Log\\": "src"
+ "Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -4822,7 +4831,7 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/2.0.0"
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
},
"install-path": "../psr/log"
},
@@ -4875,6 +4884,9 @@
"psr-16",
"simple-cache"
],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/master"
+ },
"install-path": "../psr/simple-cache"
},
{
@@ -5087,24 +5099,26 @@
},
{
"name": "ramsey/uuid",
- "version": "4.6.0",
- "version_normalized": "4.6.0.0",
+ "version": "4.2.3",
+ "version_normalized": "4.2.3.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f"
+ "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/ad63bc700e7d021039e30ce464eba384c4a1d40f",
- "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
+ "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10",
+ "brick/math": "^0.8 || ^0.9",
"ext-json": "*",
- "php": "^8.0",
- "ramsey/collection": "^1.0"
+ "php": "^7.2 || ^8.0",
+ "ramsey/collection": "^1.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php80": "^1.14"
},
"replace": {
"rhumsaa/uuid": "self.version"
@@ -5116,31 +5130,35 @@
"doctrine/annotations": "^1.8",
"ergebnis/composer-normalize": "^2.15",
"mockery/mockery": "^1.3",
+ "moontoast/math": "^1.1",
"paragonie/random-lib": "^2",
"php-mock/php-mock": "^2.2",
"php-mock/php-mock-mockery": "^1.3",
"php-parallel-lint/php-parallel-lint": "^1.1",
"phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-mockery": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
"phpunit/phpunit": "^8.5 || ^9",
- "ramsey/composer-repl": "^1.4",
- "slevomat/coding-standard": "^8.4",
+ "slevomat/coding-standard": "^7.0",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^4.9"
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
},
- "time": "2022-11-05T23:03:38+00:00",
+ "time": "2021-09-25T23:10:38+00:00",
"type": "library",
"extra": {
+ "branch-alias": {
+ "dev-main": "4.x-dev"
+ },
"captainhook": {
"force-install": true
}
@@ -5166,7 +5184,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.6.0"
+ "source": "https://github.com/ramsey/uuid/tree/4.2.3"
},
"funding": [
{
@@ -6273,60 +6291,61 @@
},
{
"name": "symfony/cache",
- "version": "v6.1.7",
- "version_normalized": "6.1.7.0",
+ "version": "v5.4.15",
+ "version_normalized": "5.4.15.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "ee5d5b88162684a1377706f9c25125e97685ee61"
+ "reference": "60e87188abbacd29ccde44d69c5392a33e888e98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/ee5d5b88162684a1377706f9c25125e97685ee61",
- "reference": "ee5d5b88162684a1377706f9c25125e97685ee61",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/60e87188abbacd29ccde44d69c5392a33e888e98",
+ "reference": "60e87188abbacd29ccde44d69c5392a33e888e98",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "psr/cache": "^2.0|^3.0",
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0",
"psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2|^3",
+ "symfony/cache-contracts": "^1.1.7|^2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"conflict": {
"doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/var-dumper": "<5.4"
+ "symfony/dependency-injection": "<4.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/var-dumper": "<4.4"
},
"provide": {
- "psr/cache-implementation": "2.0|3.0",
- "psr/simple-cache-implementation": "1.0|2.0|3.0",
- "symfony/cache-implementation": "1.1|2.0|3.0"
+ "psr/cache-implementation": "1.0|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0",
+ "symfony/cache-implementation": "1.0|2.0"
},
"require-dev": {
"cache/integration-tests": "dev-master",
+ "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.13.1|^3.0",
"predis/predis": "^1.1",
- "psr/simple-cache": "^1.0|^2.0|^3.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/filesystem": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "psr/simple-cache": "^1.0|^2.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
},
- "time": "2022-10-28T16:23:08+00:00",
+ "time": "2022-10-27T07:55:40+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"Symfony\\Component\\Cache\\": ""
},
- "classmap": [
- "Traits/ValueWrapper.php"
- ],
"exclude-from-classmap": [
"/Tests/"
]
@@ -6352,7 +6371,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v6.1.7"
+ "source": "https://github.com/symfony/cache/tree/v5.4.15"
},
"funding": [
{
@@ -6372,31 +6391,31 @@
},
{
"name": "symfony/cache-contracts",
- "version": "v3.1.1",
- "version_normalized": "3.1.1.0",
+ "version": "v2.5.2",
+ "version_normalized": "2.5.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "2eab7fa459af6d75c6463e63e633b667a9b761d3"
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/2eab7fa459af6d75c6463e63e633b667a9b761d3",
- "reference": "2eab7fa459af6d75c6463e63e633b667a9b761d3",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "psr/cache": "^3.0"
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0|^3.0"
},
"suggest": {
"symfony/cache-implementation": ""
},
- "time": "2022-02-25T11:15:52+00:00",
+ "time": "2022-01-02T09:53:40+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6434,7 +6453,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -6556,23 +6575,24 @@
},
{
"name": "symfony/css-selector",
- "version": "v6.1.3",
- "version_normalized": "6.1.3.0",
+ "version": "v5.4.11",
+ "version_normalized": "5.4.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443"
+ "reference": "c1681789f059ab756001052164726ae88512ae3d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/0dd5e36b80e1de97f8f74ed7023ac2b837a36443",
- "reference": "0dd5e36b80e1de97f8f74ed7023ac2b837a36443",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d",
+ "reference": "c1681789f059ab756001052164726ae88512ae3d",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
- "time": "2022-06-27T17:24:16+00:00",
+ "time": "2022-06-27T16:58:25+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -6604,7 +6624,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.1.3"
+ "source": "https://github.com/symfony/css-selector/tree/v5.4.11"
},
"funding": [
{
@@ -6624,27 +6644,27 @@
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.1.1",
- "version_normalized": "3.1.1.0",
+ "version": "v2.5.2",
+ "version_normalized": "2.5.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918"
+ "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918",
- "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+ "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.1"
},
- "time": "2022-02-25T11:15:52+00:00",
+ "time": "2022-01-02T09:53:40+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6674,7 +6694,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -6768,45 +6788,47 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.1.0",
- "version_normalized": "6.1.0.0",
+ "version": "v5.4.9",
+ "version_normalized": "5.4.9.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347"
+ "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a0449a7ad7daa0f7c0acd508259f80544ab5a347",
- "reference": "a0449a7ad7daa0f7c0acd508259f80544ab5a347",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc",
+ "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
+ "symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<4.4"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0|3.0"
+ "symfony/event-dispatcher-implementation": "2.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
},
"suggest": {
"symfony/dependency-injection": "",
"symfony/http-kernel": ""
},
- "time": "2022-05-05T16:51:07+00:00",
+ "time": "2022-05-05T16:45:39+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -6834,7 +6856,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.1.0"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9"
},
"funding": [
{
@@ -6854,31 +6876,31 @@
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.1.1",
- "version_normalized": "3.1.1.0",
+ "version": "v2.5.2",
+ "version_normalized": "2.5.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "02ff5eea2f453731cfbc6bc215e456b781480448"
+ "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/02ff5eea2f453731cfbc6bc215e456b781480448",
- "reference": "02ff5eea2f453731cfbc6bc215e456b781480448",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
+ "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
"psr/event-dispatcher": "^1"
},
"suggest": {
"symfony/event-dispatcher-implementation": ""
},
- "time": "2022-02-25T11:15:52+00:00",
+ "time": "2022-01-02T09:53:40+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6916,7 +6938,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -7283,24 +7305,26 @@
},
{
"name": "symfony/options-resolver",
- "version": "v6.1.0",
- "version_normalized": "6.1.0.0",
+ "version": "v5.4.11",
+ "version_normalized": "5.4.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "a3016f5442e28386ded73c43a32a5b68586dd1c4"
+ "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a3016f5442e28386ded73c43a32a5b68586dd1c4",
- "reference": "a3016f5442e28386ded73c43a32a5b68586dd1c4",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/54f14e36aa73cb8f7261d7686691fd4d75ea2690",
+ "reference": "54f14e36aa73cb8f7261d7686691fd4d75ea2690",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
},
- "time": "2022-02-25T11:15:52+00:00",
+ "time": "2022-07-20T13:00:38+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -7333,7 +7357,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.1.0"
+ "source": "https://github.com/symfony/options-resolver/tree/v5.4.11"
},
"funding": [
{
@@ -8444,36 +8468,37 @@
},
{
"name": "symfony/string",
- "version": "v6.1.7",
- "version_normalized": "6.1.7.0",
+ "version": "v5.4.15",
+ "version_normalized": "5.4.15.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "823f143370880efcbdfa2dbca946b3358c4707e5"
+ "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5",
- "reference": "823f143370880efcbdfa2dbca946b3358c4707e5",
+ "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
+ "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0"
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": ">=3.0"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
- "time": "2022-10-10T09:34:31+00:00",
+ "time": "2022-10-05T15:16:54+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -8512,7 +8537,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.1.7"
+ "source": "https://github.com/symfony/string/tree/v5.4.15"
},
"funding": [
{
@@ -8596,55 +8621,56 @@
},
{
"name": "symfony/translation",
- "version": "v6.1.6",
- "version_normalized": "6.1.6.0",
+ "version": "v5.4.14",
+ "version_normalized": "5.4.14.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "e6cd330e5a072518f88d65148f3f165541807494"
+ "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/e6cd330e5a072518f88d65148f3f165541807494",
- "reference": "e6cd330e5a072518f88d65148f3f165541807494",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab",
+ "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/translation-contracts": "^2.3|^3.0"
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation-contracts": "^2.3"
},
"conflict": {
- "symfony/config": "<5.4",
- "symfony/console": "<5.4",
- "symfony/dependency-injection": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/twig-bundle": "<5.4",
- "symfony/yaml": "<5.4"
+ "symfony/config": "<4.4",
+ "symfony/console": "<5.3",
+ "symfony/dependency-injection": "<5.0",
+ "symfony/http-kernel": "<5.0",
+ "symfony/twig-bundle": "<5.0",
+ "symfony/yaml": "<4.4"
},
"provide": {
- "symfony/translation-implementation": "2.3|3.0"
+ "symfony/translation-implementation": "2.3"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
"symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
"symfony/http-client-contracts": "^1.1|^2.0|^3.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^5.4|^6.0",
"symfony/service-contracts": "^1.1.2|^2|^3",
- "symfony/yaml": "^5.4|^6.0"
+ "symfony/yaml": "^4.4|^5.0|^6.0"
},
"suggest": {
"psr/log-implementation": "To use logging capability in translator",
"symfony/config": "",
"symfony/yaml": ""
},
- "time": "2022-10-07T08:04:03+00:00",
+ "time": "2022-10-07T08:01:20+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -8675,7 +8701,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.1.6"
+ "source": "https://github.com/symfony/translation/tree/v5.4.14"
},
"funding": [
{
@@ -8695,30 +8721,30 @@
},
{
"name": "symfony/translation-contracts",
- "version": "v3.1.1",
- "version_normalized": "3.1.1.0",
+ "version": "v2.5.2",
+ "version_normalized": "2.5.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc"
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/606be0f48e05116baef052f7f3abdb345c8e02cc",
- "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.2.5"
},
"suggest": {
"symfony/translation-implementation": ""
},
- "time": "2022-06-27T17:24:16+00:00",
+ "time": "2022-06-27T16:58:25+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -8729,10 +8755,7 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- },
- "exclude-from-classmap": [
- "/Test/"
- ]
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -8759,7 +8782,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.1.1"
+ "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -8871,26 +8894,27 @@
},
{
"name": "symfony/var-exporter",
- "version": "v6.1.3",
- "version_normalized": "6.1.3.0",
+ "version": "v5.4.10",
+ "version_normalized": "5.4.10.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef"
+ "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b49350f45cebbba6e5286485264b912f2bcfc9ef",
- "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
+ "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
},
- "time": "2022-07-04T16:01:56+00:00",
+ "time": "2022-05-27T12:56:18+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -8926,7 +8950,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v6.1.3"
+ "source": "https://github.com/symfony/var-exporter/tree/v5.4.10"
},
"funding": [
{
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index 730ce208..e56b8571 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -3,7 +3,7 @@
'name' => 'laravel/laravel',
'pretty_version' => '2.x-dev',
'version' => '2.9999999.9999999.9999999-dev',
- 'reference' => '0966639699d170d667543f4cf2b681876c36ea8a',
+ 'reference' => '8972a11c0abc02f24b8a061b2c017a2e086b59bb',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -11,9 +11,9 @@
),
'versions' => array(
'brick/math' => array(
- 'pretty_version' => '0.10.2',
- 'version' => '0.10.2.0',
- 'reference' => '459f2781e1a08d52ee56b0b1444086e038561e3f',
+ 'pretty_version' => '0.9.3',
+ 'version' => '0.9.3.0',
+ 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae',
'type' => 'library',
'install_path' => __DIR__ . '/../brick/math',
'aliases' => array(),
@@ -140,9 +140,9 @@
'dev_requirement' => false,
),
'fzaninotto/faker' => array(
- 'pretty_version' => 'v1.5.0',
- 'version' => '1.5.0.0',
- 'reference' => 'd0190b156bcca848d401fb80f31f504f37141c8d',
+ 'pretty_version' => 'v1.9.2',
+ 'version' => '1.9.2.0',
+ 'reference' => '848d8125239d7dbf8ab25cb7f054f1a630e68c2e',
'type' => 'library',
'install_path' => __DIR__ . '/../fzaninotto/faker',
'aliases' => array(),
@@ -433,7 +433,7 @@
'laravel/laravel' => array(
'pretty_version' => '2.x-dev',
'version' => '2.9999999.9999999.9999999-dev',
- 'reference' => '0966639699d170d667543f4cf2b681876c36ea8a',
+ 'reference' => '8972a11c0abc02f24b8a061b2c017a2e086b59bb',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -758,9 +758,9 @@
'dev_requirement' => true,
),
'psr/cache' => array(
- 'pretty_version' => '3.0.0',
- 'version' => '3.0.0.0',
- 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf',
+ 'pretty_version' => '1.0.1',
+ 'version' => '1.0.1.0',
+ 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/cache',
'aliases' => array(),
@@ -769,7 +769,7 @@
'psr/cache-implementation' => array(
'dev_requirement' => false,
'provided' => array(
- 0 => '2.0|3.0',
+ 0 => '1.0|2.0',
),
),
'psr/container' => array(
@@ -848,9 +848,9 @@
),
),
'psr/log' => array(
- 'pretty_version' => '2.0.0',
- 'version' => '2.0.0.0',
- 'reference' => 'ef29f6d262798707a9edd554e2b82517ef3a9376',
+ 'pretty_version' => '1.1.4',
+ 'version' => '1.1.4.0',
+ 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/log',
'aliases' => array(),
@@ -859,8 +859,8 @@
'psr/log-implementation' => array(
'dev_requirement' => false,
'provided' => array(
- 0 => '1.0.0 || 2.0.0 || 3.0.0',
- 1 => '1.0|2.0',
+ 0 => '1.0|2.0',
+ 1 => '1.0.0 || 2.0.0 || 3.0.0',
),
),
'psr/simple-cache' => array(
@@ -875,8 +875,8 @@
'psr/simple-cache-implementation' => array(
'dev_requirement' => false,
'provided' => array(
- 0 => '1.0',
- 1 => '1.0|2.0|3.0',
+ 0 => '1.0|2.0',
+ 1 => '1.0',
),
),
'psy/psysh' => array(
@@ -907,9 +907,9 @@
'dev_requirement' => false,
),
'ramsey/uuid' => array(
- 'pretty_version' => '4.6.0',
- 'version' => '4.6.0.0',
- 'reference' => 'ad63bc700e7d021039e30ce464eba384c4a1d40f',
+ 'pretty_version' => '4.2.3',
+ 'version' => '4.2.3.0',
+ 'reference' => 'fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df',
'type' => 'library',
'install_path' => __DIR__ . '/../ramsey/uuid',
'aliases' => array(),
@@ -918,7 +918,7 @@
'rhumsaa/uuid' => array(
'dev_requirement' => false,
'replaced' => array(
- 0 => '4.6.0',
+ 0 => '4.2.3',
),
),
'sebastian/cli-parser' => array(
@@ -1075,18 +1075,18 @@
'dev_requirement' => false,
),
'symfony/cache' => array(
- 'pretty_version' => 'v6.1.7',
- 'version' => '6.1.7.0',
- 'reference' => 'ee5d5b88162684a1377706f9c25125e97685ee61',
+ 'pretty_version' => 'v5.4.15',
+ 'version' => '5.4.15.0',
+ 'reference' => '60e87188abbacd29ccde44d69c5392a33e888e98',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/cache',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/cache-contracts' => array(
- 'pretty_version' => 'v3.1.1',
- 'version' => '3.1.1.0',
- 'reference' => '2eab7fa459af6d75c6463e63e633b667a9b761d3',
+ 'pretty_version' => 'v2.5.2',
+ 'version' => '2.5.2.0',
+ 'reference' => '64be4a7acb83b6f2bf6de9a02cee6dad41277ebc',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/cache-contracts',
'aliases' => array(),
@@ -1095,7 +1095,7 @@
'symfony/cache-implementation' => array(
'dev_requirement' => false,
'provided' => array(
- 0 => '1.1|2.0|3.0',
+ 0 => '1.0|2.0',
),
),
'symfony/console' => array(
@@ -1108,18 +1108,18 @@
'dev_requirement' => false,
),
'symfony/css-selector' => array(
- 'pretty_version' => 'v6.1.3',
- 'version' => '6.1.3.0',
- 'reference' => '0dd5e36b80e1de97f8f74ed7023ac2b837a36443',
+ 'pretty_version' => 'v5.4.11',
+ 'version' => '5.4.11.0',
+ 'reference' => 'c1681789f059ab756001052164726ae88512ae3d',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/css-selector',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/deprecation-contracts' => array(
- 'pretty_version' => 'v3.1.1',
- 'version' => '3.1.1.0',
- 'reference' => '07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918',
+ 'pretty_version' => 'v2.5.2',
+ 'version' => '2.5.2.0',
+ 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
'aliases' => array(),
@@ -1135,18 +1135,18 @@
'dev_requirement' => false,
),
'symfony/event-dispatcher' => array(
- 'pretty_version' => 'v6.1.0',
- 'version' => '6.1.0.0',
- 'reference' => 'a0449a7ad7daa0f7c0acd508259f80544ab5a347',
+ 'pretty_version' => 'v5.4.9',
+ 'version' => '5.4.9.0',
+ 'reference' => '8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/event-dispatcher-contracts' => array(
- 'pretty_version' => 'v3.1.1',
- 'version' => '3.1.1.0',
- 'reference' => '02ff5eea2f453731cfbc6bc215e456b781480448',
+ 'pretty_version' => 'v2.5.2',
+ 'version' => '2.5.2.0',
+ 'reference' => 'f98b54df6ad059855739db6fcbc2d36995283fe1',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
'aliases' => array(),
@@ -1155,7 +1155,7 @@
'symfony/event-dispatcher-implementation' => array(
'dev_requirement' => false,
'provided' => array(
- 0 => '2.0|3.0',
+ 0 => '2.0',
),
),
'symfony/finder' => array(
@@ -1195,9 +1195,9 @@
'dev_requirement' => false,
),
'symfony/options-resolver' => array(
- 'pretty_version' => 'v6.1.0',
- 'version' => '6.1.0.0',
- 'reference' => 'a3016f5442e28386ded73c43a32a5b68586dd1c4',
+ 'pretty_version' => 'v5.4.11',
+ 'version' => '5.4.11.0',
+ 'reference' => '54f14e36aa73cb8f7261d7686691fd4d75ea2690',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/options-resolver',
'aliases' => array(),
@@ -1321,9 +1321,9 @@
'dev_requirement' => false,
),
'symfony/string' => array(
- 'pretty_version' => 'v6.1.7',
- 'version' => '6.1.7.0',
- 'reference' => '823f143370880efcbdfa2dbca946b3358c4707e5',
+ 'pretty_version' => 'v5.4.15',
+ 'version' => '5.4.15.0',
+ 'reference' => '571334ce9f687e3e6af72db4d3b2a9431e4fd9ed',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/string',
'aliases' => array(),
@@ -1339,18 +1339,18 @@
'dev_requirement' => true,
),
'symfony/translation' => array(
- 'pretty_version' => 'v6.1.6',
- 'version' => '6.1.6.0',
- 'reference' => 'e6cd330e5a072518f88d65148f3f165541807494',
+ 'pretty_version' => 'v5.4.14',
+ 'version' => '5.4.14.0',
+ 'reference' => 'f0ed07675863aa6e3939df8b1bc879450b585cab',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/translation',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/translation-contracts' => array(
- 'pretty_version' => 'v3.1.1',
- 'version' => '3.1.1.0',
- 'reference' => '606be0f48e05116baef052f7f3abdb345c8e02cc',
+ 'pretty_version' => 'v2.5.2',
+ 'version' => '2.5.2.0',
+ 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/translation-contracts',
'aliases' => array(),
@@ -1359,7 +1359,7 @@
'symfony/translation-implementation' => array(
'dev_requirement' => false,
'provided' => array(
- 0 => '2.3|3.0',
+ 0 => '2.3',
),
),
'symfony/var-dumper' => array(
@@ -1372,9 +1372,9 @@
'dev_requirement' => false,
),
'symfony/var-exporter' => array(
- 'pretty_version' => 'v6.1.3',
- 'version' => '6.1.3.0',
- 'reference' => 'b49350f45cebbba6e5286485264b912f2bcfc9ef',
+ 'pretty_version' => 'v5.4.10',
+ 'version' => '5.4.10.0',
+ 'reference' => '8fc03ee75eeece3d9be1ef47d26d79bea1afb340',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/var-exporter',
'aliases' => array(),
diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php
index 4c3a5d68..3c97a351 100644
--- a/vendor/composer/platform_check.php
+++ b/vendor/composer/platform_check.php
@@ -4,8 +4,8 @@
$issues = array();
-if (!(PHP_VERSION_ID >= 80100)) {
- $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.';
+if (!(PHP_VERSION_ID >= 70415)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.15". You are running ' . PHP_VERSION . '.';
}
if ($issues) {
diff --git a/vendor/fzaninotto/faker/.github/ISSUE_TEMPLATE/bug_report.md b/vendor/fzaninotto/faker/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..3e8543bc
--- /dev/null
+++ b/vendor/fzaninotto/faker/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,39 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+### Summary
+
+
+
+### Versions
+
+
+
+| | Version |
+|:--------------------|:--------|
+| PHP | x.y.z |
+| `fzaninotto/faker` | x.y.z |
+
+### Self-enclosed code snippet for reproduction
+
+```php
+
+```
+
+### Expected output
+
+```txt
+
+```
+
+### Actual output
+
+```txt
+
+```
diff --git a/vendor/fzaninotto/faker/.gitignore b/vendor/fzaninotto/faker/.gitignore
deleted file mode 100644
index 7579f743..00000000
--- a/vendor/fzaninotto/faker/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-vendor
-composer.lock
diff --git a/vendor/fzaninotto/faker/.travis.yml b/vendor/fzaninotto/faker/.travis.yml
deleted file mode 100644
index df3e0b18..00000000
--- a/vendor/fzaninotto/faker/.travis.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-language: php
-
-php:
- - 5.3
- - 5.4
- - 5.5
- - 5.6
- - 7.0
- - hhvm
-
-sudo: false
-
-before_script:
- - travis_retry composer self-update
- - travis_retry composer install --no-interaction --prefer-source --dev
-
-script: make sniff test
diff --git a/vendor/fzaninotto/faker/.travis/xdebug.sh b/vendor/fzaninotto/faker/.travis/xdebug.sh
new file mode 100644
index 00000000..c3cebe3c
--- /dev/null
+++ b/vendor/fzaninotto/faker/.travis/xdebug.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+# The problem is that we do not want to remove the configuration file, just disable it for a few tasks, then enable it
+#
+# For reference, see
+#
+# - https://docs.travis-ci.com/user/languages/php#Disabling-preinstalled-PHP-extensions
+# - https://docs.travis-ci.com/user/languages/php#Custom-PHP-configuration
+
+config="/home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini"
+
+function xdebug-disable() {
+ if [[ -f $config ]]; then
+ mv $config "$config.bak"
+ fi
+}
+
+function xdebug-enable() {
+ if [[ -f "$config.bak" ]]; then
+ mv "$config.bak" $config
+ fi
+}
diff --git a/vendor/fzaninotto/faker/CHANGELOG.md b/vendor/fzaninotto/faker/CHANGELOG.md
index d0f1023f..d27a7bed 100644
--- a/vendor/fzaninotto/faker/CHANGELOG.md
+++ b/vendor/fzaninotto/faker/CHANGELOG.md
@@ -1,11 +1,466 @@
-CHANGELOG
-=========
+# CHANGELOG
-To be released, v1.5.0
-----------------------
+## 2019-12-03, v1.9.1
+
+- Add link to PHPStan extension to readme [\#1834](https://github.com/fzaninotto/Faker/pull/1834) ([finwe](https://github.com/finwe))
+- Enhancement: Collect code coverage [\#1824](https://github.com/fzaninotto/Faker/pull/1824) ([localheinz](https://github.com/localheinz))
+- Enhancement: Use all columns when running tests [\#1823](https://github.com/fzaninotto/Faker/pull/1823) ([localheinz](https://github.com/localheinz))
+- Enhancement: Configure verbose output via phpunit.xml.dist [\#1822](https://github.com/fzaninotto/Faker/pull/1822) ([localheinz](https://github.com/localheinz))
+- Curly braces for arrays is deprecated in PHP 7.4 [\#1843](https://github.com/fzaninotto/Faker/pull/1843) ([wimg](https://github.com/wimg))
+- Fix: Reduce visibility of setUp\(\) and tearDown\(\) [\#1821](https://github.com/fzaninotto/Faker/pull/1821) ([localheinz](https://github.com/localheinz))
+- Fix: Mark test classes as final [\#1820](https://github.com/fzaninotto/Faker/pull/1820) ([localheinz](https://github.com/localheinz))
+- Fix: Remove unnecessary class-level DocBlocks [\#1819](https://github.com/fzaninotto/Faker/pull/1819) ([localheinz](https://github.com/localheinz))
+
+## 2019-11-10, v1.9.0
+
+This will the last minor release in the `1.x` cycle.
+
+- Add all Iran's provinces land lines numbers [\#1806](https://github.com/fzaninotto/Faker/pull/1806) ([kingofnull](https://github.com/kingofnull))
+- replace latin "B" to cyrillic "B" for uk\_UA locale [\#1800](https://github.com/fzaninotto/Faker/pull/1800) ([FI-LIFE](https://github.com/FI-LIFE))
+- Add elgentos/masquerade to third-party library list [\#1798](https://github.com/fzaninotto/Faker/pull/1798) ([erikhansen](https://github.com/erikhansen))
+- Add link to Gravatar provider repository [\#1796](https://github.com/fzaninotto/Faker/pull/1796) ([ottaviano](https://github.com/ottaviano))
+- Add mobileNumber\(\) method for nb\_NO [\#1788](https://github.com/fzaninotto/Faker/pull/1788) ([carestad](https://github.com/carestad))
+- Enhancement: Slightly clean up Company provider [\#1783](https://github.com/fzaninotto/Faker/pull/1783) ([localheinz](https://github.com/localheinz))
+- Added some more information for autoloading in the readme [\#1780](https://github.com/fzaninotto/Faker/pull/1780) ([pimjansen](https://github.com/pimjansen))
+- Enhancement: Add issue template for bug report [\#1779](https://github.com/fzaninotto/Faker/pull/1779) ([localheinz](https://github.com/localheinz))
+- Add hslColor to ColorProvider [\#1776](https://github.com/fzaninotto/Faker/pull/1776) ([icanhazstring](https://github.com/icanhazstring))
+- Enhancement: Consistently use composer package name for link content [\#1770](https://github.com/fzaninotto/Faker/pull/1770) ([localheinz](https://github.com/localheinz))
+- Add Correct Thai words for streets,soi etc names and add Thai First a… [\#1769](https://github.com/fzaninotto/Faker/pull/1769) ([pierrejoye](https://github.com/pierrejoye))
+- Enhancement: Assert that postcode generated by Austrian Address provider matches format [\#1766](https://github.com/fzaninotto/Faker/pull/1766) ([localheinz](https://github.com/localheinz))
+- Enhancement: Update squizlabs/php\_codesniffer [\#1763](https://github.com/fzaninotto/Faker/pull/1763) ([localheinz](https://github.com/localheinz))
+- Enhancement: Assert that imageUrl can be used with gray flag [\#1762](https://github.com/fzaninotto/Faker/pull/1762) ([localheinz](https://github.com/localheinz))
+- Enhancement: Introduce build and help targets [\#1761](https://github.com/fzaninotto/Faker/pull/1761) ([localheinz](https://github.com/localheinz))
+- Enhancement: Disable Xdebug as early as possible [\#1758](https://github.com/fzaninotto/Faker/pull/1758) ([localheinz](https://github.com/localheinz))
+- Enhancement: Clean up .gitattributes [\#1756](https://github.com/fzaninotto/Faker/pull/1756) ([localheinz](https://github.com/localheinz))
+- Enhancement: Reference phpunit.xsd as installed with composer [\#1755](https://github.com/fzaninotto/Faker/pull/1755) ([localheinz](https://github.com/localheinz))
+- add id\_ID Color [\#1754](https://github.com/fzaninotto/Faker/pull/1754) ([cacing69](https://github.com/cacing69))
+- PHP 7.4 compatibility [\#1748](https://github.com/fzaninotto/Faker/pull/1748) ([pimjansen](https://github.com/pimjansen))
+- Add lastName gender specific on ru\_RU locale [\#1747](https://github.com/fzaninotto/Faker/pull/1747) ([aanfarhan](https://github.com/aanfarhan))
+- Update README - Add a new faker. [\#1731](https://github.com/fzaninotto/Faker/pull/1731) ([drupol](https://github.com/drupol))
+- Add faker-eddy-malou third-party library [\#1717](https://github.com/fzaninotto/Faker/pull/1717) ([Metrakit](https://github.com/Metrakit))
+- \[de\_DE\] Company\JobTitle: list of common german job titles [\#1716](https://github.com/fzaninotto/Faker/pull/1716) ([amacado](https://github.com/amacado))
+- Added 'red' to $safeColorNames [\#1701](https://github.com/fzaninotto/Faker/pull/1701) ([xfudox](https://github.com/xfudox))
+- \[pt\_PT/Address\] Add abbreviature to 'travessa' and 'largo' [\#1606](https://github.com/fzaninotto/Faker/pull/1606) ([simaolemos](https://github.com/simaolemos))
+- Fix method name for en\_NZ provider in readme [\#1595](https://github.com/fzaninotto/Faker/pull/1595) ([gdhnz](https://github.com/gdhnz))
+- Refactoring of the TextTest class [\#1590](https://github.com/fzaninotto/Faker/pull/1590) ([stevegrunwell](https://github.com/stevegrunwell))
+- add gender variants for last name \[lt\_LT\] [\#1586](https://github.com/fzaninotto/Faker/pull/1586) ([ikerasLT](https://github.com/ikerasLT))
+- add .id TLD [\#1566](https://github.com/fzaninotto/Faker/pull/1566) ([ad3n](https://github.com/ad3n))
+- Add Color provider to es\_ES locale [\#1559](https://github.com/fzaninotto/Faker/pull/1559) ([juananruiz](https://github.com/juananruiz))
+- Enhancement: Keep packages sorted in composer.json [\#1551](https://github.com/fzaninotto/Faker/pull/1551) ([localheinz](https://github.com/localheinz))
+- Portuguese providers for Companies and Internet [\#1537](https://github.com/fzaninotto/Faker/pull/1537) ([promatik](https://github.com/promatik))
+- Improve Dutch company names [\#1529](https://github.com/fzaninotto/Faker/pull/1529) ([koole](https://github.com/koole))
+- Document randomDigitNot base formatter. [\#1514](https://github.com/fzaninotto/Faker/pull/1514) ([shawnlindstrom](https://github.com/shawnlindstrom))
+- Estonian names [\#1461](https://github.com/fzaninotto/Faker/pull/1461) ([much-rebel](https://github.com/much-rebel))
+- add birthplace support for ID nik generator [\#1451](https://github.com/fzaninotto/Faker/pull/1451) ([mikk150](https://github.com/mikk150))
+- List of banks in Brazil added [\#1427](https://github.com/fzaninotto/Faker/pull/1427) ([diegohenicka](https://github.com/diegohenicka))
+- Remove last names from the male first names array \(et\_EE\) [\#1799](https://github.com/fzaninotto/Faker/pull/1799) ([Mihkel100](https://github.com/Mihkel100))
+- Update out-of-date currency codes [\#1795](https://github.com/fzaninotto/Faker/pull/1795) ([Brindster](https://github.com/Brindster))
+- Floor is not always returning an int [\#1790](https://github.com/fzaninotto/Faker/pull/1790) ([pimjansen](https://github.com/pimjansen))
+- typo [\#1789](https://github.com/fzaninotto/Faker/pull/1789) ([enumag](https://github.com/enumag))
+- Added batch inserts for doctrine orm populate [\#1781](https://github.com/fzaninotto/Faker/pull/1781) ([pimjansen](https://github.com/pimjansen))
+- FIx: Avoid deprecation warning in newer CakePHP version [\#1777](https://github.com/fzaninotto/Faker/pull/1777) ([icanhazstring](https://github.com/icanhazstring))
+- Fix: Consistently link to GitHub repositories [\#1774](https://github.com/fzaninotto/Faker/pull/1774) ([localheinz](https://github.com/localheinz))
+- Fix: Name of package [\#1772](https://github.com/fzaninotto/Faker/pull/1772) ([localheinz](https://github.com/localheinz))
+- Remove BV and HM country codes. [\#1767](https://github.com/fzaninotto/Faker/pull/1767) ([oliverpool](https://github.com/oliverpool))
+- Fix: Remove sudo configuration [\#1760](https://github.com/fzaninotto/Faker/pull/1760) ([localheinz](https://github.com/localheinz))
+- Fix: Allow nightly builds to fail [\#1759](https://github.com/fzaninotto/Faker/pull/1759) ([localheinz](https://github.com/localheinz))
+- Fix: No need to update composer itself [\#1757](https://github.com/fzaninotto/Faker/pull/1757) ([localheinz](https://github.com/localheinz))
+- duplicate first name and last name removal [\#1729](https://github.com/fzaninotto/Faker/pull/1729) ([sagautam5](https://github.com/sagautam5))
+- Fix-Isreal--Israel [\#1724](https://github.com/fzaninotto/Faker/pull/1724) ([GitEvil](https://github.com/GitEvil))
+- fix\(issue-1721\): add phpdoc method and properties annotations for php… [\#1722](https://github.com/fzaninotto/Faker/pull/1722) ([lugus](https://github.com/lugus))
+- Typo in function PHPDoc [\#1711](https://github.com/fzaninotto/Faker/pull/1711) ([Dzhuneyt](https://github.com/Dzhuneyt))
+- Fix: Add allowed type DateTime to param annotation [\#1697](https://github.com/fzaninotto/Faker/pull/1697) ([localheinz](https://github.com/localheinz))
+- Calling a non static method as static not allowed. [\#1696](https://github.com/fzaninotto/Faker/pull/1696) ([wilco-1985](https://github.com/wilco-1985))
+- Bug Fix en\_SG mobile number generation [\#1658](https://github.com/fzaninotto/Faker/pull/1658) ([ziming](https://github.com/ziming))
+- Update ja\_JP Address Provider [\#1649](https://github.com/fzaninotto/Faker/pull/1649) ([atmngw](https://github.com/atmngw))
+- Fixed realText on ja\_JP locale broken, /u missing [\#1634](https://github.com/fzaninotto/Faker/pull/1634) ([mihit](https://github.com/mihit))
+- Removed comma and space from $firstNameMale for en\_IN [\#1608](https://github.com/fzaninotto/Faker/pull/1608) ([phpspider](https://github.com/phpspider))
+- Prevent Transliterator class autoloading [\#1575](https://github.com/fzaninotto/Faker/pull/1575) ([MontealegreLuis](https://github.com/MontealegreLuis))
+- building numbers in Germany never start with a zero or are zero [\#1530](https://github.com/fzaninotto/Faker/pull/1530) ([fostam](https://github.com/fostam))
+- Fixing sk\_SK men last names set [\#1459](https://github.com/fzaninotto/Faker/pull/1459) ([pavoltanuska](https://github.com/pavoltanuska))
+- Taiwan ID. The initial letter must be a capital letter. p-\>P [\#1434](https://github.com/fzaninotto/Faker/pull/1434) ([slawa-dev](https://github.com/slawa-dev))
+- Revert "Added 'red' to $safeColorNames" [\#1778](https://github.com/fzaninotto/Faker/pull/1778) ([fzaninotto](https://github.com/fzaninotto))
+- Added realText capability for fr\_CA [\#1686](https://github.com/fzaninotto/Faker/pull/1686) ([bobanum](https://github.com/bobanum))
+- Add loremflickr.com Provider to the thrid parties [\#1683](https://github.com/fzaninotto/Faker/pull/1683) ([xvladxtremal](https://github.com/xvladxtremal))
+- Add Undeclared Faker Instance to PhoneNumber Test in en\_NG [\#1682](https://github.com/fzaninotto/Faker/pull/1682) ([thearsalan](https://github.com/thearsalan))
+- PSR-2 updates to readme [\#1679](https://github.com/fzaninotto/Faker/pull/1679) ([b3none](https://github.com/b3none))
+- PHPDoc for `passthrough` function on Generator [\#1678](https://github.com/fzaninotto/Faker/pull/1678) ([tabakhase](https://github.com/tabakhase))
+- Make en\_CA Phone Provider Extend the en\_US One [\#1676](https://github.com/fzaninotto/Faker/pull/1676) ([darrylhein](https://github.com/darrylhein))
+- Add Valid National Code Generator to fa\_IR Person [\#1675](https://github.com/fzaninotto/Faker/pull/1675) ([thearsalan](https://github.com/thearsalan))
+- Updated readme.md: added a missing backslash [\#1673](https://github.com/fzaninotto/Faker/pull/1673) ([aubryfr](https://github.com/aubryfr))
+- Add 'Faker\Provider\en\_US\Company::catchPhrase' to ru\_RU locale [\#1668](https://github.com/fzaninotto/Faker/pull/1668) ([axklim](https://github.com/axklim))
+- Update deprecated \PHPUnit\_Framework\_TestCase with PHPUnit\Framework\TestCase [\#1664](https://github.com/fzaninotto/Faker/pull/1664) ([thewhit](https://github.com/thewhit))
+- Support populating Doctrine's immutable date types [\#1639](https://github.com/fzaninotto/Faker/pull/1639) ([voronkovich](https://github.com/voronkovich))
+- add titleMale and titleFemale method to all Person classes [\#1635](https://github.com/fzaninotto/Faker/pull/1635) ([RiverDanceGit](https://github.com/RiverDanceGit))
+- Minor typo fix [\#1631](https://github.com/fzaninotto/Faker/pull/1631) ([nhedger](https://github.com/nhedger))
+- Add link to er1z/fakemock [\#1622](https://github.com/fzaninotto/Faker/pull/1622) ([er1z](https://github.com/er1z))
+- Add Dutch \(nl\_NL\) job titles [\#1618](https://github.com/fzaninotto/Faker/pull/1618) ([SjorsO](https://github.com/SjorsO))
+- Exclude files and folder from release archive [\#1617](https://github.com/fzaninotto/Faker/pull/1617) ([ankurk91](https://github.com/ankurk91))
+- Update doc block [\#1615](https://github.com/fzaninotto/Faker/pull/1615) ([ankurk91](https://github.com/ankurk91))
+- Suggest PSR-4 compliant autoloader in comment [\#1614](https://github.com/fzaninotto/Faker/pull/1614) ([samnela](https://github.com/samnela))
+- Fix dateTimeBetween\(\) Argument on Generator phpdoc [\#1583](https://github.com/fzaninotto/Faker/pull/1583) ([hisomura](https://github.com/hisomura))
+- Fix Dutch typo [\#1580](https://github.com/fzaninotto/Faker/pull/1580) ([gizburdt](https://github.com/gizburdt))
+- Old city names changed to new ones [\#1578](https://github.com/fzaninotto/Faker/pull/1578) ([goszowski](https://github.com/goszowski))
+- Correct documentation [\#1571](https://github.com/fzaninotto/Faker/pull/1571) ([rquadling](https://github.com/rquadling))
+- Make $suffix protected not private in nl\_NL\Person provider [\#1561](https://github.com/fzaninotto/Faker/pull/1561) ([SpadXIII](https://github.com/SpadXIII))
+- Add PicsumPhotos Provider to the thrid parties [\#1560](https://github.com/fzaninotto/Faker/pull/1560) ([bluemmb](https://github.com/bluemmb))
+- fix austrian postal codes starting with invalid 0 [\#1545](https://github.com/fzaninotto/Faker/pull/1545) ([mpge](https://github.com/mpge))
+- Restore a random seed when the Generator is destroyed [\#1534](https://github.com/fzaninotto/Faker/pull/1534) ([lyrixx](https://github.com/lyrixx))
+- Add a swiss social security number \(AVS13\) generator [\#1533](https://github.com/fzaninotto/Faker/pull/1533) ([nhedger](https://github.com/nhedger))
+- Small tweaks [\#1526](https://github.com/fzaninotto/Faker/pull/1526) ([carusogabriel](https://github.com/carusogabriel))
+- fix ukraine first name person, delete space [\#1525](https://github.com/fzaninotto/Faker/pull/1525) ([Yasuslik](https://github.com/Yasuslik))
+- Removed unknown postcode [\#1440](https://github.com/fzaninotto/Faker/pull/1440) ([ayanozturk](https://github.com/ayanozturk))
+- Add more PhoneNumber options for es\_ES [\#1219](https://github.com/fzaninotto/Faker/pull/1219) ([driade](https://github.com/driade))
+- Fix duplication in uk\_UA male first names [\#1214](https://github.com/fzaninotto/Faker/pull/1214) ([fre5h](https://github.com/fre5h))
+- Added missing grayscale option/flag to Image provider [\#928](https://github.com/fzaninotto/Faker/pull/928) ([sebastianvilla](https://github.com/sebastianvilla))
+
+## 2018-07-12, v1.8.0
+
+- Typo in readme [\#1521](https://github.com/fzaninotto/Faker/pull/1521) ([jmhobbs](https://github.com/jmhobbs))
+- Replaced Hilll with Hill [\#1516](https://github.com/fzaninotto/Faker/pull/1516) ([MarkVaughn](https://github.com/MarkVaughn))
+- \[it\_IT\] Improve vat ID generated using official rules [\#1508](https://github.com/fzaninotto/Faker/pull/1508) ([mavimo](https://github.com/mavimo))
+- \[hu\_HU\] Address: Fix unnecessary new line in string [\#1507](https://github.com/fzaninotto/Faker/pull/1507) ([ntomka](https://github.com/ntomka))
+- add phone numer format [\#1506](https://github.com/fzaninotto/Faker/pull/1506) ([Enosh-Yu](https://github.com/Enosh-Yu))
+- Fix typo in fr\_CA Provider [\#1505](https://github.com/fzaninotto/Faker/pull/1505) ([ultreson](https://github.com/ultreson))
+- Add fake-car provider link [\#1497](https://github.com/fzaninotto/Faker/pull/1497) ([pelmered](https://github.com/pelmered))
+- create `passthrough` function [\#1493](https://github.com/fzaninotto/Faker/pull/1493) ([browner12](https://github.com/browner12))
+- update Polish bank list [\#1482](https://github.com/fzaninotto/Faker/pull/1482) ([IonBazan](https://github.com/IonBazan))
+- Update the parameters to check if the setter is callable [\#1470](https://github.com/fzaninotto/Faker/pull/1470) ([rossmitchell](https://github.com/rossmitchell))
+- Push the max date far into the future so the test can pass [\#1469](https://github.com/fzaninotto/Faker/pull/1469) ([rossmitchell](https://github.com/rossmitchell))
+- Update Address.php [\#1465](https://github.com/fzaninotto/Faker/pull/1465) ([Saibamen](https://github.com/Saibamen))
+- Turkish identity number for tr\_TR [\#1462](https://github.com/fzaninotto/Faker/pull/1462) ([aykutaras](https://github.com/aykutaras))
+- Fixing rare iin with 13-digits. [\#1450](https://github.com/fzaninotto/Faker/pull/1450) ([vadimonus](https://github.com/vadimonus))
+- Fix Polish PESEL faker [\#1449](https://github.com/fzaninotto/Faker/pull/1449) ([Dartui](https://github.com/Dartui))
+- Adds valid 08 number formats for fr\_FR [\#1439](https://github.com/fzaninotto/Faker/pull/1439) ([ppelgrims](https://github.com/ppelgrims))
+- Add YouTube provider link [\#1422](https://github.com/fzaninotto/Faker/pull/1422) ([aalaap](https://github.com/aalaap))
+- Update PHPDoc of the DateTime provider. [\#1419](https://github.com/fzaninotto/Faker/pull/1419) ([tomzx](https://github.com/tomzx))
+- Normalize name of variable [\#1412](https://github.com/fzaninotto/Faker/pull/1412) ([eaglewu](https://github.com/eaglewu))
+- Added "blockchain" to en-us company provider catchPhrase method [\#1411](https://github.com/fzaninotto/Faker/pull/1411) ([samoldenburg](https://github.com/samoldenburg))
+- Fix for Spot2 ORM EntityPopulator [\#1408](https://github.com/fzaninotto/Faker/pull/1408) ([michal-borek](https://github.com/michal-borek))
+- TH color name [\#1404](https://github.com/fzaninotto/Faker/pull/1404) ([Naruedom](https://github.com/Naruedom))
+- added Malaysia \[ms\_MY\] locale [\#1403](https://github.com/fzaninotto/Faker/pull/1403) ([kenfai](https://github.com/kenfai))
+- Implementation of the function that generates Brazilian area codes fixed. [\#1401](https://github.com/fzaninotto/Faker/pull/1401) ([jackmiras](https://github.com/jackmiras))
+- VISA retired the 13 digit PAN moved to new cardParams [\#1400](https://github.com/fzaninotto/Faker/pull/1400) ([hppycoder](https://github.com/hppycoder))
+- Remove unused variable inside closure [\#1395](https://github.com/fzaninotto/Faker/pull/1395) ([carusogabriel](https://github.com/carusogabriel))
+- .nz domain updates [\#1393](https://github.com/fzaninotto/Faker/pull/1393) ([xurizaemon](https://github.com/xurizaemon))
+- Add licenceCode method in the to es\_ES person provider [\#1392](https://github.com/fzaninotto/Faker/pull/1392) ([ffiguereo](https://github.com/ffiguereo))
+- allow `randomElements` to accept a Traversable object [\#1389](https://github.com/fzaninotto/Faker/pull/1389) ([browner12](https://github.com/browner12))
+- Doc: rg remove formatting [\#1387](https://github.com/fzaninotto/Faker/pull/1387) ([emtudo](https://github.com/emtudo))
+- Add numbers with start 4 [\#1386](https://github.com/fzaninotto/Faker/pull/1386) ([emtudo](https://github.com/emtudo))
+- update th\_TH mobile number format [\#1385](https://github.com/fzaninotto/Faker/pull/1385) ([earthpyy](https://github.com/earthpyy))
+- Translate country names for lv\_LV provider. [\#1383](https://github.com/fzaninotto/Faker/pull/1383) ([ronaldsgailis](https://github.com/ronaldsgailis))
+- Clean elses [\#1382](https://github.com/fzaninotto/Faker/pull/1382) ([carusogabriel](https://github.com/carusogabriel))
+- French vat formatter [\#1381](https://github.com/fzaninotto/Faker/pull/1381) ([ppelgrims](https://github.com/ppelgrims))
+- Replaces rtrim with preg\_replace [\#1380](https://github.com/fzaninotto/Faker/pull/1380) ([ppelgrims](https://github.com/ppelgrims))
+- Refactoring tests [\#1375](https://github.com/fzaninotto/Faker/pull/1375) ([carusogabriel](https://github.com/carusogabriel))
+- Added link in readme to provider FakerRestaurant [\#1374](https://github.com/fzaninotto/Faker/pull/1374) ([jzonta](https://github.com/jzonta))
+- Remove obsolete currency codes [\#1373](https://github.com/fzaninotto/Faker/pull/1373) ([tpraxl](https://github.com/tpraxl))
+- \[ru\_RU\] Updated countries and added source link [\#1372](https://github.com/fzaninotto/Faker/pull/1372) ([ilyahoilik](https://github.com/ilyahoilik))
+- Test against PHP 7.2 [\#1371](https://github.com/fzaninotto/Faker/pull/1371) ([carusogabriel](https://github.com/carusogabriel))
+- Feature: nl\_BE text provider [\#1370](https://github.com/fzaninotto/Faker/pull/1370) ([rauwebieten](https://github.com/rauwebieten))
+- default value for Payment::iban\(\) country code [\#1369](https://github.com/fzaninotto/Faker/pull/1369) ([madmanmax](https://github.com/madmanmax))
+- skip test failing on bigendian [\#1365](https://github.com/fzaninotto/Faker/pull/1365) ([remicollet](https://github.com/remicollet))
+- Update Person.php [\#1364](https://github.com/fzaninotto/Faker/pull/1364) ([majamusan](https://github.com/majamusan))
+- Prevent errors on private methods [\#1363](https://github.com/fzaninotto/Faker/pull/1363) ([petecoop](https://github.com/petecoop))
+- adds rijksregisternummer [\#1361](https://github.com/fzaninotto/Faker/pull/1361) ([ppelgrims](https://github.com/ppelgrims))
+- Add secondary address to fr\_FR provider [\#1356](https://github.com/fzaninotto/Faker/pull/1356) ([nicodmf](https://github.com/nicodmf))
+- Add company provider for tr\_TR [\#1355](https://github.com/fzaninotto/Faker/pull/1355) ([yuks](https://github.com/yuks))
+- nb\_NO provider updates [\#1350](https://github.com/fzaninotto/Faker/pull/1350) ([alexqhj](https://github.com/alexqhj))
+- only test available date range on 32-bit [\#1348](https://github.com/fzaninotto/Faker/pull/1348) ([remicollet](https://github.com/remicollet))
+- Bump PHPUnit version for namespace compatibility [\#1345](https://github.com/fzaninotto/Faker/pull/1345) ([carusogabriel](https://github.com/carusogabriel))
+- Use PSR-1 for PHPUnit TestCase [\#1344](https://github.com/fzaninotto/Faker/pull/1344) ([carusogabriel](https://github.com/carusogabriel))
+- Fix FR\_fr 07 prefix mobile number generation [\#1343](https://github.com/fzaninotto/Faker/pull/1343) ([svanpoeck](https://github.com/svanpoeck))
+- Update Text.php [\#1339](https://github.com/fzaninotto/Faker/pull/1339) ([gulaandrij](https://github.com/gulaandrij))
+- Add two new company type in the Swiss Provider [\#1336](https://github.com/fzaninotto/Faker/pull/1336) ([pvullioud](https://github.com/pvullioud))
+- Change symbol 'minus' with code 226 to 'minus' with code 45 [\#1333](https://github.com/fzaninotto/Faker/pull/1333) ([Negasus](https://github.com/Negasus))
+- \[sl\_SI\] Created provider for Company [\#1331](https://github.com/fzaninotto/Faker/pull/1331) ([alesvaupotic](https://github.com/alesvaupotic))
+- Update city name [\#1328](https://github.com/fzaninotto/Faker/pull/1328) ([s9801077](https://github.com/s9801077))
+- Fix \#1305 realText in some cases breaks last character [\#1326](https://github.com/fzaninotto/Faker/pull/1326) ([iamraccoon](https://github.com/iamraccoon))
+- Real Dutch postal codes [\#1323](https://github.com/fzaninotto/Faker/pull/1323) ([ametad](https://github.com/ametad))
+- Added male and female titles for the en\_ZA locale [\#1321](https://github.com/fzaninotto/Faker/pull/1321) ([ViGouRCanberra](https://github.com/ViGouRCanberra))
+- Add German Email Providers [\#1320](https://github.com/fzaninotto/Faker/pull/1320) ([Stoffo](https://github.com/Stoffo))
+- Fix "Resource temporarily unavailable" [\#1319](https://github.com/fzaninotto/Faker/pull/1319) ([eberkund](https://github.com/eberkund))
+- Introduced the ability to specify a default timezone... [\#1316](https://github.com/fzaninotto/Faker/pull/1316) ([telkins](https://github.com/telkins))
+- South African licence codes [\#1315](https://github.com/fzaninotto/Faker/pull/1315) ([royalmitten](https://github.com/royalmitten))
+- Fix with incorrect name city. [\#1309](https://github.com/fzaninotto/Faker/pull/1309) ([zzenmate](https://github.com/zzenmate))
+- Fixed type-o in readme under section about Language specific formatters [\#1302](https://github.com/fzaninotto/Faker/pull/1302) ([espenkn](https://github.com/espenkn))
+- Update Person.php [\#1298](https://github.com/fzaninotto/Faker/pull/1298) ([yappkahowe](https://github.com/yappkahowe))
+- Allow children classes to access self::$suffix [\#1296](https://github.com/fzaninotto/Faker/pull/1296) ([greg0ire](https://github.com/greg0ire))
+- Fix with namespace payment provider for uk\_UA [\#1293](https://github.com/fzaninotto/Faker/pull/1293) ([zzenmate](https://github.com/zzenmate))
+- Update zh\_TW text provider [\#1292](https://github.com/fzaninotto/Faker/pull/1292) ([s9801077](https://github.com/s9801077))
+- Fix CURL status code in ImageTest.php [\#1290](https://github.com/fzaninotto/Faker/pull/1290) ([Sanfra1407](https://github.com/Sanfra1407))
+- Tax Id for companies and new formats for es\_VE [\#1287](https://github.com/fzaninotto/Faker/pull/1287) ([DIOHz0r](https://github.com/DIOHz0r))
+- Added idNumber for nl\_NL [\#1283](https://github.com/fzaninotto/Faker/pull/1283) ([artorozenga](https://github.com/artorozenga))
+- Feature/en us company ein [\#1273](https://github.com/fzaninotto/Faker/pull/1273) ([zachflower](https://github.com/zachflower))
+
+## 2017-08-15, v1.7.0
+
+- Added more Ukrainian banks [\#1271](https://github.com/fzaninotto/Faker/pull/1271) ([iamraccoon](https://github.com/iamraccoon))
+- Hotfix/failing unit tests [\#1269](https://github.com/fzaninotto/Faker/pull/1269) ([zachflower](https://github.com/zachflower))
+- Lock Travis-CI environment to Ubuntu Precise [\#1268](https://github.com/fzaninotto/Faker/pull/1268) ([zachflower](https://github.com/zachflower))
+- Added Ukrainian job title [\#1267](https://github.com/fzaninotto/Faker/pull/1267) ([iamraccoon](https://github.com/iamraccoon))
+- Add compliant en\_US SSN generator [\#1266](https://github.com/fzaninotto/Faker/pull/1266) ([zachflower](https://github.com/zachflower))
+- Added more Ukrainian streets and removed irrelevant names. Added more Ukrainian mobile formats [\#1265](https://github.com/fzaninotto/Faker/pull/1265) ([iamraccoon](https://github.com/iamraccoon))
+- Add Internet Format for ja\_JP. [\#1260](https://github.com/fzaninotto/Faker/pull/1260) ([itigoppo](https://github.com/itigoppo))
+- rectify ISO 4217 codes [\#1258](https://github.com/fzaninotto/Faker/pull/1258) ([eidng8](https://github.com/eidng8))
+- Corrected of grammar of Ukrainian middlenames and test added [\#1257](https://github.com/fzaninotto/Faker/pull/1257) ([vladbuk](https://github.com/vladbuk))
+- Update ISO 4217 active codes [\#1251](https://github.com/fzaninotto/Faker/pull/1251) ([eidng8](https://github.com/eidng8))
+- Update Composer File [\#1248](https://github.com/fzaninotto/Faker/pull/1248) ([vinkla](https://github.com/vinkla))
+- Set capitals to false [\#1243](https://github.com/fzaninotto/Faker/pull/1243) ([Stichoza](https://github.com/Stichoza))
+- Use static instead of self [\#1242](https://github.com/fzaninotto/Faker/pull/1242) ([Stichoza](https://github.com/Stichoza))
+- Add VAT french format [\#1241](https://github.com/fzaninotto/Faker/pull/1241) ([baptistedonaux](https://github.com/baptistedonaux))
+- Add swedish job titles [\#1234](https://github.com/fzaninotto/Faker/pull/1234) ([vinkla](https://github.com/vinkla))
+- Name Simo shouldn't have comma in it [\#1230](https://github.com/fzaninotto/Faker/pull/1230) ([simoheinonen](https://github.com/simoheinonen))
+- Fix: Add method annotation for ValidGenerator [\#1223](https://github.com/fzaninotto/Faker/pull/1223) ([localheinz](https://github.com/localheinz))
+- Add real text for es\_ES [\#1220](https://github.com/fzaninotto/Faker/pull/1220) ([driade](https://github.com/driade))
+- Fix spelling errors [\#1218](https://github.com/fzaninotto/Faker/pull/1218) ([driade](https://github.com/driade))
+- Fix spelling errors [\#1217](https://github.com/fzaninotto/Faker/pull/1217) ([driade](https://github.com/driade))
+- Fixes typo [\#1212](https://github.com/fzaninotto/Faker/pull/1212) ([skullboner](https://github.com/skullboner))
+- Add Person::middleName for ru\_RU provider [\#1209](https://github.com/fzaninotto/Faker/pull/1209) ([JustBlackBird](https://github.com/JustBlackBird))
+- Fix creditCardDetails type hint [\#1208](https://github.com/fzaninotto/Faker/pull/1208) ([jejung](https://github.com/jejung))
+- Expand dictionaries for ru\_RU locale [\#1206](https://github.com/fzaninotto/Faker/pull/1206) ([pwsdotru](https://github.com/pwsdotru))
+- Fix ng\_NG to en\_NG [\#1205](https://github.com/fzaninotto/Faker/pull/1205) ([raphaeldealmeida](https://github.com/raphaeldealmeida))
+- Add INN and KPP support for ru\_RU locale [\#1204](https://github.com/fzaninotto/Faker/pull/1204) ([pwsdotru](https://github.com/pwsdotru))
+- Remove break line on pt\_PT Address format [\#1203](https://github.com/fzaninotto/Faker/pull/1203) ([raphaeldealmeida](https://github.com/raphaeldealmeida))
+- Fix syntax of phpdoc boolean property [\#1198](https://github.com/fzaninotto/Faker/pull/1198) ([pavelkovar](https://github.com/pavelkovar))
+- add en\_HK provider [\#1196](https://github.com/fzaninotto/Faker/pull/1196) ([miklcct](https://github.com/miklcct))
+- use secure https [\#1186](https://github.com/fzaninotto/Faker/pull/1186) ([jpuck](https://github.com/jpuck))
+- Add PhoneNumberFormat for ja\_JP. [\#1185](https://github.com/fzaninotto/Faker/pull/1185) ([itigoppo](https://github.com/itigoppo))
+- Fix: Add class-level method annotations for DateTime provider [\#1183](https://github.com/fzaninotto/Faker/pull/1183) ([localheinz](https://github.com/localheinz))
+- Add ar\_SA Color Provider [\#1182](https://github.com/fzaninotto/Faker/pull/1182) ([alhoqbani](https://github.com/alhoqbani))
+- Added uk\_UA Payment provider with bank name generator [\#1181](https://github.com/fzaninotto/Faker/pull/1181) ([spaghettimaster](https://github.com/spaghettimaster))
+- Typos [\#1177](https://github.com/fzaninotto/Faker/pull/1177) ([ankitpokhrel](https://github.com/ankitpokhrel))
+- Fix XML document example [\#1176](https://github.com/fzaninotto/Faker/pull/1176) ([ankitpokhrel](https://github.com/ankitpokhrel))
+- Added Emoji to Miscellaneous [\#1175](https://github.com/fzaninotto/Faker/pull/1175) ([thomasfdm](https://github.com/thomasfdm))
+- Typos and doc block fixes [\#1170](https://github.com/fzaninotto/Faker/pull/1170) ([ankitpokhrel](https://github.com/ankitpokhrel))
+- Rewrote deprecated `each\(\)` usage [\#1168](https://github.com/fzaninotto/Faker/pull/1168) ([hboomsma](https://github.com/hboomsma))
+- Refactor text method to remove duplication [\#1163](https://github.com/fzaninotto/Faker/pull/1163) ([ankitpokhrel](https://github.com/ankitpokhrel))
+- Generate valid individual identification numbers kk\_KZ [\#1161](https://github.com/fzaninotto/Faker/pull/1161) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev))
+- Added Address and Company \[fa\_IR\] [\#1160](https://github.com/fzaninotto/Faker/pull/1160) ([thisissorna](https://github.com/thisissorna))
+- Add Peruvian DNI generator [\#1158](https://github.com/fzaninotto/Faker/pull/1158) ([jgwong](https://github.com/jgwong))
+- Removed double semicolon [\#1154](https://github.com/fzaninotto/Faker/pull/1154) ([pjona](https://github.com/pjona))
+- Add prefixes for nl\_NL [\#1151](https://github.com/fzaninotto/Faker/pull/1151) ([hyperized](https://github.com/hyperized))
+- Separated male and female names for sr\_RS locale. [\#1144](https://github.com/fzaninotto/Faker/pull/1144) ([bogdanpet](https://github.com/bogdanpet))
+- Add personal ID, VAT for zh\_TW [\#1135](https://github.com/fzaninotto/Faker/pull/1135) ([Dagolin](https://github.com/Dagolin))
+- Updating ninth digit on whole country [\#1132](https://github.com/fzaninotto/Faker/pull/1132) ([gpressutto5](https://github.com/gpressutto5))
+- Indian states added to en\_IN locale [\#1131](https://github.com/fzaninotto/Faker/pull/1131) ([jiveshsg](https://github.com/jiveshsg))
+- Add Text provider for ro\_MD [\#1129](https://github.com/fzaninotto/Faker/pull/1129) ([wecerny](https://github.com/wecerny))
+- Add strict to randomNumber example [\#1124](https://github.com/fzaninotto/Faker/pull/1124) ([leepownall](https://github.com/leepownall))
+- Say Eloquent is supported [\#1123](https://github.com/fzaninotto/Faker/pull/1123) ([guidocella](https://github.com/guidocella))
+- Link Eloquent Populator [\#1120](https://github.com/fzaninotto/Faker/pull/1120) ([guidocella](https://github.com/guidocella))
+- Removed dead code from Luhn.php [\#1118](https://github.com/fzaninotto/Faker/pull/1118) ([Newman101](https://github.com/Newman101))
+- Improve Internet::transliterate performance [\#1112](https://github.com/fzaninotto/Faker/pull/1112) ([dunglas](https://github.com/dunglas))
+- fix typo [\#1109](https://github.com/fzaninotto/Faker/pull/1109) ([johannesnagl](https://github.com/johannesnagl))
+- \[cs\_CZ\] Fixed Czech phone numbers [\#1108](https://github.com/fzaninotto/Faker/pull/1108) ([tomasbedrich](https://github.com/tomasbedrich))
+- Update MasterCard BIN Range [\#1103](https://github.com/fzaninotto/Faker/pull/1103) ([andysnell](https://github.com/andysnell))
+- Add biggest german cities [\#1102](https://github.com/fzaninotto/Faker/pull/1102) ([Konafets](https://github.com/Konafets))
+- Change postal code format for ko\_KR [\#1094](https://github.com/fzaninotto/Faker/pull/1094) ([coozplz](https://github.com/coozplz))
+- Introduced the ability to specify the timezone for dateTimeThis\*\(\) methods [\#1090](https://github.com/fzaninotto/Faker/pull/1090) ([telkins](https://github.com/telkins))
+- Fixed Issue \#1086 [\#1088](https://github.com/fzaninotto/Faker/pull/1088) ([Newman101](https://github.com/Newman101))
+- \[ja\_JP\]kana of Japanese name by gender. [\#1087](https://github.com/fzaninotto/Faker/pull/1087) ([itigoppo](https://github.com/itigoppo))
+- Fix unused code [\#1083](https://github.com/fzaninotto/Faker/pull/1083) ([borgogelli](https://github.com/borgogelli))
+- Amended permissions for en\_GB AddressTest.php [\#1071](https://github.com/fzaninotto/Faker/pull/1071) ([Newman101](https://github.com/Newman101))
+- Ensure unique IDs in randomHtml [\#1068](https://github.com/fzaninotto/Faker/pull/1068) ([vlakoff](https://github.com/vlakoff))
+- Updated \[de\_DE\] city names [\#1067](https://github.com/fzaninotto/Faker/pull/1067) ([plxx](https://github.com/plxx))
+- Update method signature in Generator phpdoc [\#1066](https://github.com/fzaninotto/Faker/pull/1066) ([vlakoff](https://github.com/vlakoff))
+- Add Thai providers [\#1065](https://github.com/fzaninotto/Faker/pull/1065) ([tuwannu](https://github.com/tuwannu))
+- \(Minor\) Fixed the default locale stated in the readme [\#1064](https://github.com/fzaninotto/Faker/pull/1064) ([taylankasap](https://github.com/taylankasap))
+- \[nl\_NL\] Make person provider behave more realistically [\#1061](https://github.com/fzaninotto/Faker/pull/1061) ([curry684](https://github.com/curry684))
+- Add allowDuplicates option to randomElements\(\) [\#1060](https://github.com/fzaninotto/Faker/pull/1060) ([vlakoff](https://github.com/vlakoff))
+- Docblocks: Add some missing @method tags [\#1059](https://github.com/fzaninotto/Faker/pull/1059) ([Kurre](https://github.com/Kurre))
+- \[fi\_FI\] Improve phone number generator [\#1054](https://github.com/fzaninotto/Faker/pull/1054) ([Kurre](https://github.com/Kurre))
+- Add personalIdentityNumber\(\) to fi\_FI/Person.php [\#1053](https://github.com/fzaninotto/Faker/pull/1053) ([oittaa](https://github.com/oittaa))
+- Issue \#1041 [\#1052](https://github.com/fzaninotto/Faker/pull/1052) ([daleattree](https://github.com/daleattree))
+- Update Text.php [\#1051](https://github.com/fzaninotto/Faker/pull/1051) ([gulaandrij](https://github.com/gulaandrij))
+- Fix French phone numbers with 07 prefix [\#1046](https://github.com/fzaninotto/Faker/pull/1046) ([fzaninotto](https://github.com/fzaninotto))
+- \[Generator.php\] mt\_rand\(\) changed in PHP 7.1 [\#1045](https://github.com/fzaninotto/Faker/pull/1045) ([oittaa](https://github.com/oittaa))
+- Add 'FI' to Payment Provider [\#1044](https://github.com/fzaninotto/Faker/pull/1044) ([oittaa](https://github.com/oittaa))
+- Added id number generator to Person Provider for the en\_ZA locale [\#1039](https://github.com/fzaninotto/Faker/pull/1039) ([smithandre](https://github.com/smithandre))
+- \[Feature\] Add nigerian provider [\#1030](https://github.com/fzaninotto/Faker/pull/1030) ([elchroy](https://github.com/elchroy))
+- \[pl\_PL\] Handle state. [\#1029](https://github.com/fzaninotto/Faker/pull/1029) ([piotrooo](https://github.com/piotrooo))
+- Fixed polish text - change '--' into '-'. [\#1027](https://github.com/fzaninotto/Faker/pull/1027) ([piotrooo](https://github.com/piotrooo))
+- Update Text.php [\#1025](https://github.com/fzaninotto/Faker/pull/1025) ([gulaandrij](https://github.com/gulaandrij))
+- Adding Nationalized Citizens to DNI in Person.php [\#1021](https://github.com/fzaninotto/Faker/pull/1021) ([celisflen-bers](https://github.com/celisflen-bers))
+- Add nik to indonesia [\#1019](https://github.com/fzaninotto/Faker/pull/1019) ([Nuffic](https://github.com/Nuffic))
+- fix mb\_substr missing parameter error when generating japanese string with realText method [\#1018](https://github.com/fzaninotto/Faker/pull/1018) ([horan-geeker](https://github.com/horan-geeker))
+- IBAN Formatters for New Locales [\#1015](https://github.com/fzaninotto/Faker/pull/1015) ([okj579](https://github.com/okj579))
+- German Bank Names [\#1014](https://github.com/fzaninotto/Faker/pull/1014) ([okj579](https://github.com/okj579))
+- Adding countries for pl\_PL provider [\#1009](https://github.com/fzaninotto/Faker/pull/1009) ([mertcanesen](https://github.com/mertcanesen))
+- Adding Pattern Lab plugin to list of 3rd party libraries [\#1008](https://github.com/fzaninotto/Faker/pull/1008) ([EvanLovely](https://github.com/EvanLovely))
+- Korea top 100 lastName [\#1006](https://github.com/fzaninotto/Faker/pull/1006) ([tael](https://github.com/tael))
+- Use real Belgian postcodes instead of random number [\#1004](https://github.com/fzaninotto/Faker/pull/1004) ([toonevdb](https://github.com/toonevdb))
+- Add bankAccountNumber implementations [\#1000](https://github.com/fzaninotto/Faker/pull/1000) ([akramfares](https://github.com/akramfares))
+- Generates a random NIR number \(fr\_FR\) [\#997](https://github.com/fzaninotto/Faker/pull/997) ([Ultim4T0m](https://github.com/Ultim4T0m))
+- \#989 Fix country typo [\#996](https://github.com/fzaninotto/Faker/pull/996) ([adriantombu](https://github.com/adriantombu))
+- adding back CNP [\#988](https://github.com/fzaninotto/Faker/pull/988) ([the-noob](https://github.com/the-noob))
+- Fix phpunit tests fail on 64-bit systems \#982 [\#983](https://github.com/fzaninotto/Faker/pull/983) ([Powerhead13](https://github.com/Powerhead13))
+- Remove trailing dot in username if any [\#975](https://github.com/fzaninotto/Faker/pull/975) ([vlakoff](https://github.com/vlakoff))
+- HTML Lorem [\#971](https://github.com/fzaninotto/Faker/pull/971) ([rudkjobing](https://github.com/rudkjobing))
+- Fix a mixup between male and female last names in Icelandic. [\#970](https://github.com/fzaninotto/Faker/pull/970) ([arthur-olafsson](https://github.com/arthur-olafsson))
+- Remove duplicate [\#969](https://github.com/fzaninotto/Faker/pull/969) ([mijgame](https://github.com/mijgame))
+- fix \[zh\_CN\]PhoneNumber illegal operator prefix [\#966](https://github.com/fzaninotto/Faker/pull/966) ([zhwei](https://github.com/zhwei))
+- es\_ES: Generate VAT Number [\#964](https://github.com/fzaninotto/Faker/pull/964) ([miguelgf](https://github.com/miguelgf))
+- Update Image.php [\#963](https://github.com/fzaninotto/Faker/pull/963) ([gulaandrij](https://github.com/gulaandrij))
+- Remove cnp formatter from RO\_ro locale \(fails tests\) [\#962](https://github.com/fzaninotto/Faker/pull/962) ([fzaninotto](https://github.com/fzaninotto))
+- Adding valid en\_GB postcodes [\#961](https://github.com/fzaninotto/Faker/pull/961) ([the-noob](https://github.com/the-noob))
+- Adding Text for ro\_RO [\#959](https://github.com/fzaninotto/Faker/pull/959) ([the-noob](https://github.com/the-noob))
+- Minor: Fixed trailing space in DateTime provider [\#956](https://github.com/fzaninotto/Faker/pull/956) ([tifabien](https://github.com/tifabien))
+- Remove 'Stripper' from en\_US job titles [\#954](https://github.com/fzaninotto/Faker/pull/954) ([amcsi](https://github.com/amcsi))
+- fix 32bits issue [\#953](https://github.com/fzaninotto/Faker/pull/953) ([remicollet](https://github.com/remicollet))
+- Fix EAN8 checkSum generator [\#951](https://github.com/fzaninotto/Faker/pull/951) ([MatthieuMota](https://github.com/MatthieuMota))
+- Fixed description and the use of early undocumented parameters. [\#949](https://github.com/fzaninotto/Faker/pull/949) ([andrey-helldar](https://github.com/andrey-helldar))
+- Pushing new mobile prefixes in philippines [\#944](https://github.com/fzaninotto/Faker/pull/944) ([napoleon101392](https://github.com/napoleon101392))
+- Update Company.php [\#943](https://github.com/fzaninotto/Faker/pull/943) ([thiagotalma](https://github.com/thiagotalma))
+- Fix to Issue \#935 - German Locale [\#936](https://github.com/fzaninotto/Faker/pull/936) ([Newman101](https://github.com/Newman101))
+- el\_CY Locale [\#930](https://github.com/fzaninotto/Faker/pull/930) ([softius](https://github.com/softius))
+- Add phpdoc method dateTimeInInterval in Generator.php [\#926](https://github.com/fzaninotto/Faker/pull/926) ([KeithYeh](https://github.com/KeithYeh))
+- Harmonize fr\_\*\Company [\#918](https://github.com/fzaninotto/Faker/pull/918) ([Max13](https://github.com/Max13))
+- Fix: fix invalid parameter of mb\_substr\(\) [\#917](https://github.com/fzaninotto/Faker/pull/917) ([tkawaji](https://github.com/tkawaji))
+- kk\_KZ Company/person identification numbers unit tests [\#916](https://github.com/fzaninotto/Faker/pull/916) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev))
+- ka\_GE: overall improvements to ka\_GE locale [\#913](https://github.com/fzaninotto/Faker/pull/913) ([hertzg](https://github.com/hertzg))
+- Fix: Do not pick a random float less than minimum [\#909](https://github.com/fzaninotto/Faker/pull/909) ([localheinz](https://github.com/localheinz))
+- Fix: Prefer dependencies installed from dist [\#908](https://github.com/fzaninotto/Faker/pull/908) ([localheinz](https://github.com/localheinz))
+- Add a building number with letter to German speaking locales. [\#903](https://github.com/fzaninotto/Faker/pull/903) ([markuspoerschke](https://github.com/markuspoerschke))
+- \[RFR\] Remove parts of the hu\_HU address formatters [\#902](https://github.com/fzaninotto/Faker/pull/902) ([fzaninotto](https://github.com/fzaninotto))
+- use Luhn to calculate ar\_SA id numbers. [\#875](https://github.com/fzaninotto/Faker/pull/875) ([FooBarQuaxx](https://github.com/FooBarQuaxx))
+- Fix Doctrine ODM Support [\#489](https://github.com/fzaninotto/Faker/pull/489) ([cbourgois](https://github.com/cbourgois))
+
+
+## 2016-04-29, v1.6.0
+
+- Remove parts of the Hungarian (hu\_HU) address formatters [\#902](https://github.com/fzaninotto/Faker/pull/902) ([fzaninotto](https://github.com/fzaninotto))
+- Renamed norwegian (nb\_NO) locale [\#901](https://github.com/fzaninotto/Faker/pull/901) ([fzaninotto](https://github.com/fzaninotto))
+- Improveed German (de\_DE) titles [\#897](https://github.com/fzaninotto/Faker/pull/897) ([christianbartels](https://github.com/christianbartels))
+- Added VAT formatter to nl\_BE and fr\_BE providers [\#896](https://github.com/fzaninotto/Faker/pull/896) ([anvanza](https://github.com/anvanza))
+- Fixed provider namespace for Lithuanian (lt\_LT) [\#894](https://github.com/fzaninotto/Faker/pull/894) ([sanis](https://github.com/sanis))
+- Removed unnecessary (and incompatible) license from Russian and Ukrainian (uk\_UA & ru\_RU) Text providers [\#892](https://github.com/fzaninotto/Faker/pull/892) ([Newman101](https://github.com/Newman101))
+- Improved `languageCode` formatted to include all ISO-639-1 standard codes [\#889](https://github.com/fzaninotto/Faker/pull/889) ([andrewnicols](https://github.com/andrewnicols))
+- Improved Hungarian provider [\#883](https://github.com/fzaninotto/Faker/pull/883) ([balping](https://github.com/balping))
+- Fixed typo in Austrian Person provider [\#880](https://github.com/fzaninotto/Faker/pull/880) ([xelan](https://github.com/xelan))
+- Added Chines (zh\_CN) `catchPhrase` formatter [\#878](https://github.com/fzaninotto/Faker/pull/878) ([z-song](https://github.com/z-song))
+- Added mention of Brazilian (pt\_BR) providers in readme [\#877](https://github.com/fzaninotto/Faker/pull/877) ([iget-master](https://github.com/iget-master))
+- Updated composer `require` section to allow PHP 7 in safer way [\#874](https://github.com/fzaninotto/Faker/pull/874) ([TomasVotruba](https://github.com/TomasVotruba))
+- Added Greek (el\_GR) `mobilePhoneNumber` and `tollFreeNumber` formatters [\#869](https://github.com/fzaninotto/Faker/pull/869) ([sebdesign](https://github.com/sebdesign))
+- Added Lorempixel check for `ImageTest.php` to avoid test fails when the service is offline [\#866](https://github.com/fzaninotto/Faker/pull/866) ([Newman101](https://github.com/Newman101))
+- Added Chinese (zh\_CN) Providers [\#864](https://github.com/fzaninotto/Faker/pull/864) ([z-song](https://github.com/z-song))
+- Added unit tests for Canadian (en\_CA) provider [\#862](https://github.com/fzaninotto/Faker/pull/862) ([Newman101](https://github.com/Newman101))
+- Added Dutch BTW \(vat\) Number [\#861](https://github.com/fzaninotto/Faker/pull/861) ([LauLaman](https://github.com/LauLaman))
+- Improved Australian (en\_AU) provider [\#858](https://github.com/fzaninotto/Faker/pull/858) ([Newman101](https://github.com/Newman101))
+- Added Propel2 ORM support [\#852](https://github.com/fzaninotto/Faker/pull/852) ([iTechDhaval](https://github.com/iTechDhaval))
+- Added en\_IN unit test for `Address.php` [\#849](https://github.com/fzaninotto/Faker/pull/849) ([Newman101](https://github.com/Newman101))
+- Updated docs to clarify that `randomElements` does not repeat input elements [\#848](https://github.com/fzaninotto/Faker/pull/848) ([sustmi](https://github.com/sustmi))
+- Optimized Taiwanese (zh\_TW) `realText` provider [\#844](https://github.com/fzaninotto/Faker/pull/844) ([Newman101](https://github.com/Newman101))
+- Added more Iranian (fa\_IR) TLDs [\#843](https://github.com/fzaninotto/Faker/pull/843) ([VagrantStory](https://github.com/VagrantStory))
+- Added Hebrew (he\_IL) `country` formatter [\#841](https://github.com/fzaninotto/Faker/pull/841) ([yonirom](https://github.com/yonirom))
+- Documented `boolean` formatter [\#840](https://github.com/fzaninotto/Faker/pull/840) ([danieliancu](https://github.com/danieliancu))
+- Fixed modifiers anchor readme [\#838](https://github.com/fzaninotto/Faker/pull/838) ([danieliancu](https://github.com/danieliancu))
+- Added Dutch (nl\_NL) real text provider [\#837](https://github.com/fzaninotto/Faker/pull/837) ([endroid](https://github.com/endroid))
+- Added `valid` modifier [\#836](https://github.com/fzaninotto/Faker/pull/836) ([fzaninotto](https://github.com/fzaninotto))
+- Added Iranian (fa\_IR) `PhoneNumber` provider [\#833](https://github.com/fzaninotto/Faker/pull/833) ([ghost](https://github.com/ghost))
+- Add Brazilian (pt\_BR) `region` and `regionAbbr` formatters [\#828](https://github.com/fzaninotto/Faker/pull/828) ([francinaldo](https://github.com/francinaldo))
+- Improved Austrian (de\_AT) names, states, and realtext [\#826](https://github.com/fzaninotto/Faker/pull/826) ([Findus23](https://github.com/Findus23))
+- Improved German (de\_DE) names [\#825](https://github.com/fzaninotto/Faker/pull/825) ([Findus23](https://github.com/Findus23))
+- Improved Latvian (lv\_LV) first names [\#823](https://github.com/fzaninotto/Faker/pull/823) ([veisis](https://github.com/veisis))
+- Improved Latvian (lv\_LV) `phoneNumber` formatter [\#822](https://github.com/fzaninotto/Faker/pull/822) ([veisis](https://github.com/veisis))
+- Updated phpDoc link to IBAN format reference in `Payment` provider [\#821](https://github.com/fzaninotto/Faker/pull/821) ([god107](https://github.com/god107))
+- Updated Sport ORM populator to populate values for numeric fields [\#820](https://github.com/fzaninotto/Faker/pull/820) ([urisavka](https://github.com/urisavka))
+- Updated Chinese (zh\_CN) operators' phone number prefix. [\#819](https://github.com/fzaninotto/Faker/pull/819) ([vistart](https://github.com/vistart))
+- Optimized Spot ORM `EntityPopulator` [\#817](https://github.com/fzaninotto/Faker/pull/817) ([Newman101](https://github.com/Newman101))
+- Added Korean (ko\_KR) `realText` formatter [\#815](https://github.com/fzaninotto/Faker/pull/815) ([jdssem](https://github.com/jdssem))
+- Updated `imageUrl` formatter phpDoc [\#814](https://github.com/fzaninotto/Faker/pull/814) ([jonwurtzler](https://github.com/jonwurtzler))
+- Optimized Taiwanese (zh\_TW) text provider [\#809](https://github.com/fzaninotto/Faker/pull/809) ([BePsvPT](https://github.com/BePsvPT))
+- Added strict comparison to Czech (cs\_CS) `birthNumber` formatter [\#807](https://github.com/fzaninotto/Faker/pull/807) ([Newman101](https://github.com/Newman101))
+- Added Greek (el\_GR) `realText` formatter [\#805](https://github.com/fzaninotto/Faker/pull/805) ([hootlex](https://github.com/hootlex))
+- Added Simplified Chinese \(zh\_CN\) `state` and `stateAbbr` formatters [\#804](https://github.com/fzaninotto/Faker/pull/804) ([zhanghuanchong](https://github.com/zhanghuanchong))
+- Update `Image` provider to allow generation of grayscale images [\#801](https://github.com/fzaninotto/Faker/pull/801) ([neutralrockets](https://github.com/neutralrockets))
+- Fixed Taiwanese (zh_TW) incorrect `mb_substr()` arguments [\#799](https://github.com/fzaninotto/Faker/pull/799) ([BePsvPT](https://github.com/BePsvPT))
+- Added Spot ORM populator [\#796](https://github.com/fzaninotto/Faker/pull/796) ([urisavka](https://github.com/urisavka))
+- Added Italian (it\_IT) `vatId` and `taxId` formatters [\#790](https://github.com/fzaninotto/Faker/pull/790) ([brainrepo](https://github.com/brainrepo))
+- Added some fixes to Armenian (hy\_AM) locale [\#788](https://github.com/fzaninotto/Faker/pull/788) ([mhamlet](https://github.com/mhamlet))
+- Removed duplicate entries in `toAscii()` transliteration table, used in `Internet` provider [\#787](https://github.com/fzaninotto/Faker/pull/787) ([vlakoff](https://github.com/vlakoff))
+- Added Indian (en\_IN) providers [\#785](https://github.com/fzaninotto/Faker/pull/785) ([kartiksomani](https://github.com/kartiksomani))
+- Removed duplicate country names in various locales, removed non-random country arrays [\#784](https://github.com/fzaninotto/Faker/pull/784) ([fzaninotto](https://github.com/fzaninotto))
+- Improved Swiss (de\_CH) phone numbers [\#782](https://github.com/fzaninotto/Faker/pull/782) ([z38](https://github.com/z38))
+- Added Swiss (de\_CH) names [\#781](https://github.com/fzaninotto/Faker/pull/781) ([z38](https://github.com/z38))
+- Make capitalization of first word optional in Text Provider [\#778](https://github.com/fzaninotto/Faker/pull/778) ([LagunaJavier](https://github.com/LagunaJavier))
+- Added Georgian (ka\_GE) providers [\#777](https://github.com/fzaninotto/Faker/pull/777) ([akalongman](https://github.com/akalongman))
+- Fix CakePHP populator [\#776](https://github.com/fzaninotto/Faker/pull/776) ([daniel-mueller](https://github.com/daniel-mueller))
+- Added unit tests for `Address` provider in many locales [\#775](https://github.com/fzaninotto/Faker/pull/775) [\#773](https://github.com/fzaninotto/Faker/pull/773) [\#772](https://github.com/fzaninotto/Faker/pull/772) [\#767](https://github.com/fzaninotto/Faker/pull/767) [\#765](https://github.com/fzaninotto/Faker/pull/765) [\#764](https://github.com/fzaninotto/Faker/pull/764) [\#758](https://github.com/fzaninotto/Faker/pull/758) [\#756](https://github.com/fzaninotto/Faker/pull/756) [\#747](https://github.com/fzaninotto/Faker/pull/747) [\#741](https://github.com/fzaninotto/Faker/pull/741) ([Newman101](https://github.com/Newman101))
+- Added `dbi` formatter to Spanish (es\_ES) Person provider [\#763](https://github.com/fzaninotto/Faker/pull/763) ([mikk150](https://github.com/mikk150))
+- Added South Africa (en\_ZA) locale [\#761](https://github.com/fzaninotto/Faker/pull/761) ([smithandre](https://github.com/smithandre)) [\#760](https://github.com/fzaninotto/Faker/pull/760) ([smithandre](https://github.com/smithandre)) [\#759](https://github.com/fzaninotto/Faker/pull/759) ([smithandre](https://github.com/smithandre))
+- Added E.164 phone number generator [\#753](https://github.com/fzaninotto/Faker/pull/753) ([daleattree](https://github.com/daleattree))
+- Fixed serialization issue in `unique` modifier [\#749](https://github.com/fzaninotto/Faker/pull/749) ([EmanueleMinotto](https://github.com/EmanueleMinotto))
+- Added Switzerland (de\_CH, fr\_CH, it\_CH) providers [\#739](https://github.com/fzaninotto/Faker/pull/739) ([r3h6](https://github.com/r3h6))
+- Added PHPDocs, removed unused variable [\#738](https://github.com/fzaninotto/Faker/pull/738) ([daniel-mueller](https://github.com/daniel-mueller))
+- Fixed building numbers to have non-zero first bumber [\#737](https://github.com/fzaninotto/Faker/pull/737) ([jmauerhan](https://github.com/jmauerhan))
+- Updated ninth digit for Brazilian cell phone numbers [\#734](https://github.com/fzaninotto/Faker/pull/734) ([igorsantos07](https://github.com/igorsantos07))
+- Simplified Factory code [\#732](https://github.com/fzaninotto/Faker/pull/732) ([vlakoff](https://github.com/vlakoff))
+- Added mention of [images-generator](https://github.com/bruceheller/images-generator) in readme [\#731](https://github.com/fzaninotto/Faker/pull/731) ([bruceheller](https://github.com/bruceheller))
+- Optimize Internet::toAscii\(\) by using a static cache and translitteration [\#730](https://github.com/fzaninotto/Faker/pull/730) [\#729](https://github.com/fzaninotto/Faker/pull/729)
+[\#725](https://github.com/fzaninotto/Faker/pull/725) [\#724](https://github.com/fzaninotto/Faker/pull/724) ([vlakoff](https://github.com/vlakoff))
+- Added more English (en\_GB) Phone Number formats [\#721](https://github.com/fzaninotto/Faker/pull/721) ([nickwebcouk](https://github.com/nickwebcouk))
+- Cleaned up `use` statements across the code [\#719](https://github.com/fzaninotto/Faker/pull/719) ([pomaxa](https://github.com/pomaxa))
+- Fixed CackePHP populator [\#718](https://github.com/fzaninotto/Faker/pull/718) ([sdustinh](https://github.com/sdustinh))
+- Cleaned up various phpmd notices [\#715](https://github.com/fzaninotto/Faker/pull/715) ([pomaxa](https://github.com/pomaxa))
+- Added `Color` provider to Latvian (lv_LV) locale [\#714](https://github.com/fzaninotto/Faker/pull/714) ([pomaxa](https://github.com/pomaxa))
+- Fixed bad randomization in Doctrine populator [\#713](https://github.com/fzaninotto/Faker/pull/713) ([pomaxa](https://github.com/pomaxa))
+- Added Mongolian (mn\_MN) providers [\#709](https://github.com/fzaninotto/Faker/pull/709) ([selmonal](https://github.com/selmonal))
+- Improved Australian (en\_AU) `postcode` formatter [\#703](https://github.com/fzaninotto/Faker/pull/703) ([xfxf](https://github.com/xfxf))
+- Added support for asterisks in `bothify` and `optimize` [\#701](https://github.com/fzaninotto/Faker/pull/701) ([nineinchnick](https://github.com/nineinchnick))
+- Fixed important distinction between ORM and database framework in README’s reference to an external Faker provider for POMM that I have never even tested. Anyway, POMM is highly recommended if you are a Postgres fan, or if you want to please Grégoire and help him finish his lifelong project of listening to music on a hi-fi audio equipment he built from his own hands [\#696](https://github.com/fzaninotto/Faker/pull/696) ([chanmix51](https://github.com/chanmix51))
+- Fixed example `text()` output in README [\#694](https://github.com/fzaninotto/Faker/pull/694) ([vlakoff](https://github.com/vlakoff))
+- Added mention of CakePHP 2.x Seeder Plugin to readme [\#691](https://github.com/fzaninotto/Faker/pull/691) ([ravage84](https://github.com/ravage84))
+- Fixed invalid email bug for Korean (ko\_KR) [\#690](https://github.com/fzaninotto/Faker/pull/690) ([pearlc](https://github.com/pearlc))
+- Removed an invalid Dutch (nl\_NL) lastname that breaks email generator [\#689](https://github.com/fzaninotto/Faker/pull/689) ([SpaceK33z](https://github.com/SpaceK33z))
+- Updated `numberBetween()` to be order agnostic [\#683](https://github.com/fzaninotto/Faker/pull/683) ([xfxf](https://github.com/xfxf))
+- Added several English (en\_US) bank-related formatters [\#682](https://github.com/fzaninotto/Faker/pull/682) ([okj579](https://github.com/okj579))
+- Fixed `ipv4` formatter to avoid generating special purpose addresses [\#681](https://github.com/fzaninotto/Faker/pull/681) ([ravage84](https://github.com/ravage84))
+- Moved `intl` extension to `require-dev` in `composer.json` file [\#680](https://github.com/fzaninotto/Faker/pull/680) ([jaschweder](https://github.com/jaschweder))
+- Added more Turkish (tr\_TR) phones number formats [\#678](https://github.com/fzaninotto/Faker/pull/678) ([Quanthir](https://github.com/Quanthir))
+- Fixed primary Key warning in CakePHP ORM populator [\#677](https://github.com/fzaninotto/Faker/pull/677) ([davidyell](https://github.com/davidyell))
+- Added time zone support for provider methods returning DateTime instance [\#675](https://github.com/fzaninotto/Faker/pull/675) ([bishopb](https://github.com/bishopb))
+- Removed trailing spaces from some Argentinian (es\_AR) female first names [\#674](https://github.com/fzaninotto/Faker/pull/674) ([ivanmirson](https://github.com/ivanmirson))
+- Added Lithuanian (lt\_LT) locale [\#673](https://github.com/fzaninotto/Faker/pull/673) ([ekateiva](https://github.com/ekateiva))
+- Added mention of Alice to readme [\#665](https://github.com/fzaninotto/Faker/pull/665) ([Seldaek](https://github.com/Seldaek))
+- Fixed namespace in tests [\#663](https://github.com/fzaninotto/Faker/pull/663) ([localheinz](https://github.com/localheinz))
+- Fixed trailing spaces in `Color` provider [\#662](https://github.com/fzaninotto/Faker/pull/662) ([apsylone](https://github.com/apsylone))
+- Removed duplicate country names in Russian (ru\_RU) `Address` provider [\#659](https://github.com/fzaninotto/Faker/pull/659) ([nurolopher](https://github.com/nurolopher))
+- Added `rgba` formatter to `Color` provider [\#653](https://github.com/fzaninotto/Faker/pull/653) ([apsylone](https://github.com/apsylone))
+- Fixed bad randomization in CakePHP populator [\#648](https://github.com/fzaninotto/Faker/pull/648) ([jadb](https://github.com/jadb))
+- Updated phpunit configuration to better use colors [\#643](https://github.com/fzaninotto/Faker/pull/643) ([localheinz](https://github.com/localheinz))
+- Updated `makefile` to install dev dependencies by default [\#642](https://github.com/fzaninotto/Faker/pull/642) ([localheinz](https://github.com/localheinz))
+- Updated Travis configuration to cache dependencies between builds [\#641](https://github.com/fzaninotto/Faker/pull/641) ([localheinz](https://github.com/localheinz))
+- Added SVG badge to readme for displaying Travis build status [\#640](https://github.com/fzaninotto/Faker/pull/640) ([localheinz](https://github.com/localheinz))
+- Added Croatian (hr\_HR) locale [\#638](https://github.com/fzaninotto/Faker/pull/638) ([toniperic](https://github.com/toniperic))
+- Updated `dateTimeBetween` PHPDoc [\#635](https://github.com/fzaninotto/Faker/pull/635) ([theofidry](https://github.com/theofidry))
+- Add mention of Symfony2 bundles in readme [\#634](https://github.com/fzaninotto/Faker/pull/634) ([theofidry](https://github.com/theofidry))
+- Added Hebrew (he\_IL) locale [\#633](https://github.com/fzaninotto/Faker/pull/633) ([yonirom](https://github.com/yonirom))
+- Updated `seed` to accept non-integer seeds [\#632](https://github.com/fzaninotto/Faker/pull/632) ([theofidry](https://github.com/theofidry))
+- Added DocBlock to `Factory::create()` [\#631](https://github.com/fzaninotto/Faker/pull/631) ([tonynelson19](https://github.com/tonynelson19))
+- Added `jobTitle` generator [\#630](https://github.com/fzaninotto/Faker/pull/630) ([gregoryduckworth](https://github.com/gregoryduckworth))
+- Updated Chinese (zh\_CN) `Person` provider to generate more correct names [\#628](https://github.com/fzaninotto/Faker/pull/628) ([phoenixgao](https://github.com/phoenixgao))
+- Updated Brazilian (pt\_BR) `cellphone` formatter to make it more flexible [\#623](https://github.com/fzaninotto/Faker/pull/623) ([igorsantos07](https://github.com/igorsantos07))
+- Add Arabic for Saudi Arabia (ar\_SA) locale [\#618](https://github.com/fzaninotto/Faker/pull/618) ([ibrasho](https://github.com/ibrasho))
+- Updated en\_US phone numbers [\#615](https://github.com/fzaninotto/Faker/pull/615) ([okj579](https://github.com/okj579))
+- Fixed typos in variable names and exceptions [\#614](https://github.com/fzaninotto/Faker/pull/614) ([pborreli](https://github.com/pborreli))
+- Added a table of contents to the readme file. [\#613](https://github.com/fzaninotto/Faker/pull/613) ([camilopayan](https://github.com/camilopayan))
+- Added Brazilian (es_BR) credit card formatters [\#608](https://github.com/fzaninotto/Faker/pull/608) ([igorsantos07](https://github.com/igorsantos07))
+- Updated `iban` formatter to be cross-locale [\#607](https://github.com/fzaninotto/Faker/pull/607) ([okj579](https://github.com/okj579))
+- Improved ORM name guesser logic [\#606](https://github.com/fzaninotto/Faker/pull/606) ([watermanio](https://github.com/watermanio))
+- Fixed doc typo [\#605](https://github.com/fzaninotto/Faker/pull/605) ([igorsantos07](https://github.com/igorsantos07))
+- Removed executable bits [\#593](https://github.com/fzaninotto/Faker/pull/593) ([siwinski](https://github.com/siwinski))
+- Fixed `iban` generator [\#590](https://github.com/fzaninotto/Faker/pull/590) ([okj579](https://github.com/okj579))
+- Added Philippines (en\_PH) `mobileNumber` formatter [\#589](https://github.com/fzaninotto/Faker/pull/589) ([lozadaOmr](https://github.com/lozadaOmr))
+- Added support for min / max params in `latitude` and `longitude` formatters [\#570](https://github.com/fzaninotto/Faker/pull/570) ([actuallymab](https://github.com/actuallymab))
+- Added Czech (cs_CZ) `birthNumber` formatter [\#535](https://github.com/fzaninotto/Faker/pull/535) ([tomasbedrich](https://github.com/tomasbedrich))
+- Added `dateTimeInInterval` formatter [\#526](https://github.com/fzaninotto/Faker/pull/526) ([nicodmf](https://github.com/nicodmf))
+- Updated `optional` and `boolean` apis to be more consistent [\#513](https://github.com/fzaninotto/Faker/pull/513) ([EmanueleMinotto](https://github.com/EmanueleMinotto))
+- Added Greek (el\_GR) `Address` provider [\#504](https://github.com/fzaninotto/Faker/pull/504) ([drakakisgeo](https://github.com/drakakisgeo))
+
+## 2015-05-29, v1.5.0
* Added ability to print custom text on the images fetched by the Image provider [\#583](https://github.com/fzaninotto/Faker/pull/583) ([fzaninotto](https://github.com/fzaninotto))
-* Fixed typos in Preuvian (es\_PE) Person provider [\#581](https://github.com/fzaninotto/Faker/pull/581) [\#580](https://github.com/fzaninotto/Faker/pull/580) ([ysramirez](https://github.com/ysramirez))
+* Fixed typos in Peruvian (es\_PE) Person provider [\#581](https://github.com/fzaninotto/Faker/pull/581) [\#580](https://github.com/fzaninotto/Faker/pull/580) ([ysramirez](https://github.com/ysramirez))
* Added instructions for installing with composer to readme.md [\#572](https://github.com/fzaninotto/Faker/pull/572) ([totophe](https://github.com/totophe))
* Added Kazakh (kk\_KZ) locale [\#569](https://github.com/fzaninotto/Faker/pull/569) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev))
* Added Korean (ko\_KR) locale [\#566](https://github.com/fzaninotto/Faker/pull/566) ([pearlc](https://github.com/pearlc))
@@ -112,8 +567,7 @@ To be released, v1.5.0
* Added English for New Zealand (en\_NZ) locale [\#283](https://github.com/fzaninotto/Faker/pull/283) ([JasonMortonNZ](https://github.com/JasonMortonNZ))
* Added mention of external Provider for cron expressions to readme[\#498](https://github.com/fzaninotto/Faker/pull/498) ([swekaj](https://github.com/swekaj))
-2014-06-04, v1.4.0
-------------------
+## 2014-06-04, v1.4.0
* Fixed typo in Slovak person names (cinan)
* Added tests for uk_UA providers (serge-kuharev)
@@ -176,8 +630,7 @@ To be released, v1.5.0
* Added 'kana' (ja_JP) name formatters (kzykhys)
* Added allow_failure for hhvm to travis-ci and test against php 5.5 (toin0u)
-2013-12-16, v1.3.0
-------------------
+## 2013-12-16, v1.3.0
* Fixed state generator in Australian (en_AU) provider (sebklaus)
* Fixed IDE insights for locale specific providers (ulrikjohansson)
@@ -224,9 +677,7 @@ To be released, v1.5.0
* Added Color provider with hexColor, rgbColor, rgbColorAsArray, rgbCssColor, safeColorName, and colorName formatters (lsv)
* Added support for associative arrays in `randomElement` (aRn0D)
-
-2013-06-09, v1.2.0
-------------------
+## 2013-06-09, v1.2.0
* Added new provider for fr_BE locale (jflefebvre)
* Updated locale provider to use a static locale list (spawn-guy)
@@ -271,8 +722,7 @@ To be released, v1.5.0
* Fixed bug in Doctrine EntityPopulator (beberlei)
* Added Finnish (fi_FI) provider (drodil)
-2012-10-29, v1.1.0
-------------------
+## 2012-10-29, v1.1.0
* Updated text provider to return paragraphs as a string instead of array. Great for populating markdown textarea fields (Seldaek)
* Updated dateTimeBetween to accept DateTime instances (Seldaek)
@@ -289,7 +739,6 @@ To be released, v1.5.0
* Added latitude and longitude formatters to Address provider (fixe)
* Added Serbian provider (umpirsky)
-2012-07-10, v1.0.0
------------------
+## 2012-07-10, v1.0.0
* Initial Version
diff --git a/vendor/fzaninotto/faker/CONTRIBUTING.md b/vendor/fzaninotto/faker/CONTRIBUTING.md
deleted file mode 100644
index b8cc8c3d..00000000
--- a/vendor/fzaninotto/faker/CONTRIBUTING.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Contributing
-============
-
-If you've written a new formatter, adapted Faker to a new locale, or fixed a bug, your contribution is welcome!
-
-Before proposing a pull request, check the following:
-
-* Your code should follow the [PSR-2 coding standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) (and use [php-cs-fixer](https://github.com/fabpot/PHP-CS-Fixer) to fix inconsistencies).
-* Unit tests should still pass after your patch
-* As much as possible, add unit tests for your code
-* If you add new providers (or new locales) and that they embed a lot of data for random generation (e.g. first names in a new language), please add a link to the reference you used for this list (example [in the ru_RU locale](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/ru_RU/Person.php#L13)). This will ease future updates of the list and debates about the most relevant data for this provider.
-* If you add long list of random data, please split the list into several lines. This makes diffs easier to read, and facilitates core review.
-* If you add new formatters, please include documentation for it in the README. Don't forget to add a line about new formatters in the `@property` or `@method` phpDoc entries in [Generator.php](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Generator.php#L6-L118) to help IDEs auto-complete your formatters.
-* If your new formatters are specific to a certain locale, document them in the [Language-specific formatters](https://github.com/fzaninotto/Faker#language-specific-formatters) list instead.
-* Avoid changing existing sets of data. Some developers use Faker with seeding for unit tests ; changing the data makes their tests fail.
-* Speed is important in all Faker usages. Make sure your code is optimized to generate thousands of fake items in no time, without consuming too much memory or CPU.
-* If you commit a new feature, be prepared to help maintaining it. Watch the project on GitHub, and please comment on issues or PRs regarding the feature you contributed.
-
-Once your code is merged, it is available for free to everybody under the MIT License. Publishing your Pull Request on the Faker GitHub repository means that you agree with this license for your contribution.
-
-Thank you for your contribution! Faker wouldn't be so great without you.
diff --git a/vendor/fzaninotto/faker/Makefile b/vendor/fzaninotto/faker/Makefile
deleted file mode 100644
index 55e11d08..00000000
--- a/vendor/fzaninotto/faker/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-vendor/autoload.php:
- composer install --no-interaction --prefer-source --dev
-
-.PHONY: sniff
-sniff: vendor/autoload.php
- vendor/bin/phpcs --standard=PSR2 src -n
-
-.PHONY: test
-test: vendor/autoload.php
- vendor/bin/phpunit --verbose
diff --git a/vendor/fzaninotto/faker/composer.json b/vendor/fzaninotto/faker/composer.json
index a4150312..acf673ec 100644
--- a/vendor/fzaninotto/faker/composer.json
+++ b/vendor/fzaninotto/faker/composer.json
@@ -2,7 +2,11 @@
"name": "fzaninotto/faker",
"type": "library",
"description": "Faker is a PHP library that generates fake data for you.",
- "keywords": ["faker", "fixtures", "data"],
+ "keywords": [
+ "faker",
+ "fixtures",
+ "data"
+ ],
"license": "MIT",
"authors": [
{
@@ -10,15 +14,13 @@
}
],
"require": {
- "php": ">=5.3.3"
+ "php": "^5.3.3 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~1.5"
+ "ext-intl": "*",
+ "phpunit/phpunit": "^4.8.35 || ^5.7",
+ "squizlabs/php_codesniffer": "^2.9.2"
},
- "suggest": {
- "ext-intl": "*"
- },
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
@@ -26,12 +28,15 @@
},
"autoload-dev": {
"psr-4": {
- "Faker\\PHPUnit\\": "test/Faker/"
+ "Faker\\Test\\": "test/Faker/"
}
},
"extra": {
"branch-alias": {
- "dev-master": "1.5.x-dev"
+ "dev-master": "1.9-dev"
}
+ },
+ "config": {
+ "sort-packages": true
}
}
diff --git a/vendor/fzaninotto/faker/phpunit.xml.dist b/vendor/fzaninotto/faker/phpunit.xml.dist
deleted file mode 100644
index fcd85faa..00000000
--- a/vendor/fzaninotto/faker/phpunit.xml.dist
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
| Sapiente dolorum dolorem sint laboriosam commodi qui. | Commodi nihil nesciunt eveniet quo repudiandae. | Voluptates explicabo numquam distinctio necessitatibus repellat. | Provident ut doloremque nam eum modi aspernatur. | Iusto inventore. |
| Animi nihil ratione id mollitia libero ipsa quia tempore. | Velit est officia et aut tenetur dolorem sed mollitia expedita. | Modi modi repudiandae pariatur voluptas rerum ea incidunt non molestiae eligendi eos deleniti. | Exercitationem voluptatibus dolor est iste quod molestiae. | Quia reiciendis. |
| Inventore impedit exercitationem voluptatibus rerum cupiditate. | Qui. | Aliquam. | Autem nihil aut et. | Dolor ut quia error. |
| Enim facilis iusto earum et minus rerum assumenda quis quia. | Reprehenderit ut sapiente occaecati voluptatum dolor voluptatem vitae qui velit. | Quod fugiat non. | Sunt nobis totam mollitia sed nesciunt est deleniti cumque. | Repudiandae quo. |
| Modi dicta libero quisquam doloremque qui autem. | Voluptatem aliquid saepe laudantium facere eos sunt dolor. | Est eos quis laboriosam officia expedita repellendus quia natus. | Et neque delectus quod fugit enim repudiandae qui. | Fugit soluta sit facilis facere repellat culpa magni voluptatem maiores tempora. |
| Enim dolores doloremque. | Assumenda voluptatem eum perferendis exercitationem. | Quasi in fugit deserunt ea perferendis sunt nemo consequatur dolorum soluta. | Maxime repellat qui numquam voluptatem est modi. | Alias rerum rerum hic hic eveniet. |
| Tempore voluptatem. | Eaque. | Et sit quas fugit iusto. | Nemo nihil rerum dignissimos et esse. | Repudiandae ipsum numquam. |
| Nemo sunt quia. | Sint tempore est neque ducimus harum sed. | Dicta placeat atque libero nihil. | Et qui aperiam temporibus facilis eum. | Ut dolores qui enim et maiores nesciunt. |
| Dolorum totam sint debitis saepe laborum. | Quidem corrupti ea. | Cum voluptas quod. | Possimus consequatur quasi dolorem ut et. | Et velit non hic labore repudiandae quis. |
+ * $values = array();
+ * $evenValidator = function ($digit) {
+ * return $digit % 2 === 0;
+ * };
+ * for ($i=0; $i < 10; $i++) {
+ * $values []= $faker->valid($evenValidator)->randomDigit;
+ * }
+ * print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6]
+ *
+ *
+ * @param Closure $validator A function returning true for valid values
+ * @param integer $maxRetries Maximum number of retries to find a unique value,
+ * After which an OverflowException is thrown.
+ * @throws \OverflowException When no valid value can be found by iterating $maxRetries times
+ *
+ * @return ValidGenerator A proxy class returning only valid values
+ */
+ public function valid($validator = null, $maxRetries = 10000)
+ {
+ return new ValidGenerator($this->generator, $validator, $maxRetries);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php b/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php
index c9ebb41e..d37dceff 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php
@@ -2,7 +2,7 @@
namespace Faker\Provider;
-class Biased extends \Faker\Provider\Base
+class Biased extends Base
{
/**
* Returns a biased integer between $min and $max (both inclusive).
@@ -25,8 +25,8 @@ class Biased extends \Faker\Provider\Base
$x = mt_rand() / mt_getrandmax();
$y = mt_rand() / (mt_getrandmax() + 1);
} while (call_user_func($function, $x) < $y);
-
- return floor($x * ($max - $min + 1) + $min);
+
+ return (int) floor($x * ($max - $min + 1) + $min);
}
/**
@@ -35,7 +35,7 @@ class Biased extends \Faker\Provider\Base
*
* @return integer
*/
- protected static function unbiased($x)
+ protected static function unbiased()
{
return 1;
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/Color.php
index 16aa9934..209d7228 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Color.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Color.php
@@ -26,7 +26,7 @@ class Color extends Base
'DeepSkyBlue', 'DimGray', 'DimGrey', 'DodgerBlue', 'FireBrick',
'FloralWhite', 'ForestGreen', 'Fuchsia', 'Gainsboro', 'GhostWhite',
'Gold', 'GoldenRod', 'Gray', 'Green', 'GreenYellow', 'HoneyDew',
- 'HotPink', 'IndianRed ', 'Indigo ', 'Ivory', 'Khaki', 'Lavender',
+ 'HotPink', 'IndianRed', 'Indigo', 'Ivory', 'Khaki', 'Lavender',
'LavenderBlush', 'LawnGreen', 'LemonChiffon', 'LightBlue', 'LightCoral',
'LightCyan', 'LightGoldenRodYellow', 'LightGray', 'LightGreen', 'LightPink',
'LightSalmon', 'LightSeaGreen', 'LightSkyBlue', 'LightSlateGray', 'LightSteelBlue',
@@ -90,6 +90,14 @@ class Color extends Base
return 'rgb(' . static::rgbColor() . ')';
}
+ /**
+ * @example 'rgba(0,255,122,0.8)'
+ */
+ public static function rgbaCssColor()
+ {
+ return 'rgba(' . static::rgbColor() . ',' . static::randomFloat(1, 0, 1) . ')';
+ }
+
/**
* @example 'blue'
*/
@@ -105,4 +113,31 @@ class Color extends Base
{
return static::randomElement(static::$allColorNames);
}
+
+ /**
+ * @example '340,50,20'
+ * @return string
+ */
+ public static function hslColor()
+ {
+ return sprintf(
+ '%s,%s,%s',
+ static::numberBetween(0, 360),
+ static::numberBetween(0, 100),
+ static::numberBetween(0, 100)
+ );
+ }
+
+ /**
+ * @example array(340, 50, 20)
+ * @return array
+ */
+ public static function hslColorAsArray()
+ {
+ return array(
+ static::numberBetween(0, 360),
+ static::numberBetween(0, 100),
+ static::numberBetween(0, 100)
+ );
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/Company.php
index 208d9ce5..d536d48e 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Company.php
@@ -2,7 +2,7 @@
namespace Faker\Provider;
-class Company extends \Faker\Provider\Base
+class Company extends Base
{
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
@@ -10,8 +10,14 @@ class Company extends \Faker\Provider\Base
protected static $companySuffix = array('Ltd');
+ protected static $jobTitleFormat = array(
+ '{{word}}',
+ );
+
/**
* @example 'Acme Ltd'
+ *
+ * @return string
*/
public function company()
{
@@ -22,9 +28,23 @@ class Company extends \Faker\Provider\Base
/**
* @example 'Ltd'
+ *
+ * @return string
*/
public static function companySuffix()
{
return static::randomElement(static::$companySuffix);
}
+
+ /**
+ * @example 'Job'
+ *
+ * @return string
+ */
+ public function jobTitle()
+ {
+ $format = static::randomElement(static::$jobTitleFormat);
+
+ return $this->generator->parse($format);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php
index 776a8411..bde7f251 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php
@@ -2,10 +2,16 @@
namespace Faker\Provider;
-class DateTime extends \Faker\Provider\Base
+class DateTime extends Base
{
protected static $century = array('I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII','XIII','XIV','XV','XVI','XVII','XVIII','XIX','XX','XXI');
+ protected static $defaultTimezone = null;
+
+ /**
+ * @param \DateTime|string|float|int $max
+ * @return int|false
+ */
protected static function getMaxTimestamp($max = 'now')
{
if (is_numeric($max)) {
@@ -36,24 +42,37 @@ class DateTime extends \Faker\Provider\Base
* Get a datetime object for a date between January 1, 1970 and now
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
+ * @param string $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2005-08-16 20:39:21')
* @return \DateTime
+ * @see http://php.net/manual/en/timezones.php
+ * @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public static function dateTime($max = 'now')
+ public static function dateTime($max = 'now', $timezone = null)
{
- return new \DateTime('@' . static::unixTime($max));
+ return static::setTimezone(
+ new \DateTime('@' . static::unixTime($max)),
+ $timezone
+ );
}
/**
* Get a datetime object for a date between January 1, 001 and now
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
+ * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('1265-03-22 21:15:52')
* @return \DateTime
+ * @see http://php.net/manual/en/timezones.php
+ * @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public static function dateTimeAD($max = 'now')
+ public static function dateTimeAD($max = 'now', $timezone = null)
{
- return new \DateTime('@' . mt_rand(-62135597361, static::getMaxTimestamp($max)));
+ $min = (PHP_INT_SIZE>4 ? -62135597361 : -PHP_INT_MAX);
+ return static::setTimezone(
+ new \DateTime('@' . mt_rand($min, static::getMaxTimestamp($max))),
+ $timezone
+ );
}
/**
@@ -98,12 +117,15 @@ class DateTime extends \Faker\Provider\Base
* Get a DateTime object based on a random date between two given dates.
* Accepts date strings that can be recognized by strtotime().
*
- * @param string $startDate Defaults to 30 years ago
- * @param string $endDate Defaults to "now"
+ * @param \DateTime|string $startDate Defaults to 30 years ago
+ * @param \DateTime|string $endDate Defaults to "now"
+ * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('1999-02-02 11:42:52')
* @return \DateTime
+ * @see http://php.net/manual/en/timezones.php
+ * @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now')
+ public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null)
{
$startTimestamp = $startDate instanceof \DateTime ? $startDate->getTimestamp() : strtotime($startDate);
$endTimestamp = static::getMaxTimestamp($endDate);
@@ -114,50 +136,84 @@ class DateTime extends \Faker\Provider\Base
$timestamp = mt_rand($startTimestamp, $endTimestamp);
- $ts = new \DateTime('@' . $timestamp);
- $ts->setTimezone(new \DateTimeZone(date_default_timezone_get()));
+ return static::setTimezone(
+ new \DateTime('@' . $timestamp),
+ $timezone
+ );
+ }
- return $ts;
+ /**
+ * Get a DateTime object based on a random date between one given date and
+ * an interval
+ * Accepts date string that can be recognized by strtotime().
+ *
+ * @param \DateTime|string $date Defaults to 30 years ago
+ * @param string $interval Defaults to 5 days after
+ * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
+ * @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days')
+ * @return \DateTime
+ * @see http://php.net/manual/en/timezones.php
+ * @see http://php.net/manual/en/function.date-default-timezone-get.php
+ */
+ public static function dateTimeInInterval($date = '-30 years', $interval = '+5 days', $timezone = null)
+ {
+ $intervalObject = \DateInterval::createFromDateString($interval);
+ $datetime = $date instanceof \DateTime ? $date : new \DateTime($date);
+ $otherDatetime = clone $datetime;
+ $otherDatetime->add($intervalObject);
+
+ $begin = $datetime > $otherDatetime ? $otherDatetime : $datetime;
+ $end = $datetime===$begin ? $otherDatetime : $datetime;
+
+ return static::dateTimeBetween(
+ $begin,
+ $end,
+ $timezone
+ );
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
+ * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('1964-04-04 11:02:02')
* @return \DateTime
*/
- public static function dateTimeThisCentury($max = 'now')
+ public static function dateTimeThisCentury($max = 'now', $timezone = null)
{
- return static::dateTimeBetween('-100 year', $max);
+ return static::dateTimeBetween('-100 year', $max, $timezone);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
+ * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2010-03-10 05:18:58')
* @return \DateTime
*/
- public static function dateTimeThisDecade($max = 'now')
+ public static function dateTimeThisDecade($max = 'now', $timezone = null)
{
- return static::dateTimeBetween('-10 year', $max);
+ return static::dateTimeBetween('-10 year', $max, $timezone);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
+ * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2011-09-19 09:24:37')
* @return \DateTime
*/
- public static function dateTimeThisYear($max = 'now')
+ public static function dateTimeThisYear($max = 'now', $timezone = null)
{
- return static::dateTimeBetween('-1 year', $max);
+ return static::dateTimeBetween('-1 year', $max, $timezone);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
+ * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
* @example DateTime('2011-10-05 12:51:46')
* @return \DateTime
*/
- public static function dateTimeThisMonth($max = 'now')
+ public static function dateTimeThisMonth($max = 'now', $timezone = null)
{
- return static::dateTimeBetween('-1 month', $max);
+ return static::dateTimeBetween('-1 month', $max, $timezone);
}
/**
@@ -212,8 +268,8 @@ class DateTime extends \Faker\Provider\Base
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
- * @return int
- * @example 1673
+ * @return string
+ * @example '1673'
*/
public static function year($max = 'now')
{
@@ -237,4 +293,48 @@ class DateTime extends \Faker\Provider\Base
{
return static::randomElement(\DateTimeZone::listIdentifiers());
}
+
+ /**
+ * Internal method to set the time zone on a DateTime.
+ *
+ * @param \DateTime $dt
+ * @param string|null $timezone
+ *
+ * @return \DateTime
+ */
+ private static function setTimezone(\DateTime $dt, $timezone)
+ {
+ return $dt->setTimezone(new \DateTimeZone(static::resolveTimezone($timezone)));
+ }
+
+ /**
+ * Sets default time zone.
+ *
+ * @param string $timezone
+ *
+ * @return void
+ */
+ public static function setDefaultTimezone($timezone = null)
+ {
+ static::$defaultTimezone = $timezone;
+ }
+
+ /**
+ * Gets default time zone.
+ *
+ * @return string|null
+ */
+ public static function getDefaultTimezone()
+ {
+ return static::$defaultTimezone;
+ }
+
+ /**
+ * @param string|null $timezone
+ * @return null|string
+ */
+ private static function resolveTimezone($timezone)
+ {
+ return ((null === $timezone) ? ((null === static::$defaultTimezone) ? date_default_timezone_get() : static::$defaultTimezone) : $timezone);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/File.php b/vendor/fzaninotto/faker/src/Faker/Provider/File.php
index 3897c272..ba015946 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/File.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/File.php
@@ -1,7 +1,7 @@
addProvider(new Lorem($generator));
+ $generator->addProvider(new Internet($generator));
+ }
+
+ /**
+ * @param integer $maxDepth
+ * @param integer $maxWidth
+ *
+ * @return string
+ */
+ public function randomHtml($maxDepth = 4, $maxWidth = 4)
+ {
+ $document = new \DOMDocument();
+ $this->idGenerator = new UniqueGenerator($this->generator);
+
+ $head = $document->createElement("head");
+ $this->addRandomTitle($head);
+
+ $body = $document->createElement("body");
+ $this->addLoginForm($body);
+ $this->addRandomSubTree($body, $maxDepth, $maxWidth);
+
+ $html = $document->createElement("html");
+ $html->appendChild($head);
+ $html->appendChild($body);
+
+ $document->appendChild($html);
+ return $document->saveHTML();
+ }
+
+ private function addRandomSubTree(\DOMElement $root, $maxDepth, $maxWidth)
+ {
+ $maxDepth--;
+ if ($maxDepth <= 0) {
+ return $root;
+ }
+
+ $siblings = mt_rand(1, $maxWidth);
+ for ($i = 0; $i < $siblings; $i++) {
+ if ($maxDepth == 1) {
+ $this->addRandomLeaf($root);
+ } else {
+ $sibling = $root->ownerDocument->createElement("div");
+ $root->appendChild($sibling);
+ $this->addRandomAttribute($sibling);
+ $this->addRandomSubTree($sibling, mt_rand(0, $maxDepth), $maxWidth);
+ }
+ }
+ return $root;
+ }
+
+ private function addRandomLeaf(\DOMElement $node)
+ {
+ $rand = mt_rand(1, 10);
+ switch ($rand) {
+ case 1:
+ $this->addRandomP($node);
+ break;
+ case 2:
+ $this->addRandomA($node);
+ break;
+ case 3:
+ $this->addRandomSpan($node);
+ break;
+ case 4:
+ $this->addRandomUL($node);
+ break;
+ case 5:
+ $this->addRandomH($node);
+ break;
+ case 6:
+ $this->addRandomB($node);
+ break;
+ case 7:
+ $this->addRandomI($node);
+ break;
+ case 8:
+ $this->addRandomTable($node);
+ break;
+ default:
+ $this->addRandomText($node);
+ break;
+ }
+ }
+
+ private function addRandomAttribute(\DOMElement $node)
+ {
+ $rand = mt_rand(1, 2);
+ switch ($rand) {
+ case 1:
+ $node->setAttribute("class", $this->generator->word);
+ break;
+ case 2:
+ $node->setAttribute("id", (string)$this->idGenerator->randomNumber(5));
+ break;
+ }
+ }
+
+ private function addRandomP(\DOMElement $element, $maxLength = 10)
+ {
+
+ $node = $element->ownerDocument->createElement(static::P_TAG);
+ $node->textContent = $this->generator->sentence(mt_rand(1, $maxLength));
+ $element->appendChild($node);
+ }
+
+ private function addRandomText(\DOMElement $element, $maxLength = 10)
+ {
+ $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength)));
+ $element->appendChild($text);
+ }
+
+ private function addRandomA(\DOMElement $element, $maxLength = 10)
+ {
+ $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength)));
+ $node = $element->ownerDocument->createElement(static::A_TAG);
+ $node->setAttribute("href", $this->generator->safeEmailDomain);
+ $node->appendChild($text);
+ $element->appendChild($node);
+ }
+
+ private function addRandomTitle(\DOMElement $element, $maxLength = 10)
+ {
+ $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength)));
+ $node = $element->ownerDocument->createElement(static::TITLE_TAG);
+ $node->appendChild($text);
+ $element->appendChild($node);
+ }
+
+ private function addRandomH(\DOMElement $element, $maxLength = 10)
+ {
+ $h = static::H_TAG . (string)mt_rand(1, 3);
+ $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength)));
+ $node = $element->ownerDocument->createElement($h);
+ $node->appendChild($text);
+ $element->appendChild($node);
+ }
+
+ private function addRandomB(\DOMElement $element, $maxLength = 10)
+ {
+ $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength)));
+ $node = $element->ownerDocument->createElement(static::B_TAG);
+ $node->appendChild($text);
+ $element->appendChild($node);
+ }
+
+ private function addRandomI(\DOMElement $element, $maxLength = 10)
+ {
+ $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength)));
+ $node = $element->ownerDocument->createElement(static::I_TAG);
+ $node->appendChild($text);
+ $element->appendChild($node);
+ }
+
+ private function addRandomSpan(\DOMElement $element, $maxLength = 10)
+ {
+ $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength)));
+ $node = $element->ownerDocument->createElement(static::SPAN_TAG);
+ $node->appendChild($text);
+ $element->appendChild($node);
+ }
+
+ private function addLoginForm(\DOMElement $element)
+ {
+
+ $textInput = $element->ownerDocument->createElement(static::INPUT_TAG);
+ $textInput->setAttribute("type", "text");
+ $textInput->setAttribute("id", "username");
+
+ $textLabel = $element->ownerDocument->createElement(static::LABEL_TAG);
+ $textLabel->setAttribute("for", "username");
+ $textLabel->textContent = $this->generator->word;
+
+ $passwordInput = $element->ownerDocument->createElement(static::INPUT_TAG);
+ $passwordInput->setAttribute("type", "password");
+ $passwordInput->setAttribute("id", "password");
+
+ $passwordLabel = $element->ownerDocument->createElement(static::LABEL_TAG);
+ $passwordLabel->setAttribute("for", "password");
+ $passwordLabel->textContent = $this->generator->word;
+
+ $submit = $element->ownerDocument->createElement(static::INPUT_TAG);
+ $submit->setAttribute("type", "submit");
+ $submit->setAttribute("value", $this->generator->word);
+
+ $submit = $element->ownerDocument->createElement(static::FORM_TAG);
+ $submit->setAttribute("action", $this->generator->safeEmailDomain);
+ $submit->setAttribute("method", "POST");
+ $submit->appendChild($textLabel);
+ $submit->appendChild($textInput);
+ $submit->appendChild($passwordLabel);
+ $submit->appendChild($passwordInput);
+ $element->appendChild($submit);
+ }
+
+ private function addRandomTable(\DOMElement $element, $maxRows = 10, $maxCols = 6, $maxTitle = 4, $maxLength = 10)
+ {
+ $rows = mt_rand(1, $maxRows);
+ $cols = mt_rand(1, $maxCols);
+
+ $table = $element->ownerDocument->createElement(static::TABLE_TAG);
+ $thead = $element->ownerDocument->createElement(static::THEAD_TAG);
+ $tbody = $element->ownerDocument->createElement(static::TBODY_TAG);
+
+ $table->appendChild($thead);
+ $table->appendChild($tbody);
+
+ $tr = $element->ownerDocument->createElement(static::TR_TAG);
+ $thead->appendChild($tr);
+ for ($i = 0; $i < $cols; $i++) {
+ $th = $element->ownerDocument->createElement(static::TH_TAG);
+ $th->textContent = $this->generator->sentence(mt_rand(1, $maxTitle));
+ $tr->appendChild($th);
+ }
+ for ($i = 0; $i < $rows; $i++) {
+ $tr = $element->ownerDocument->createElement(static::TR_TAG);
+ $tbody->appendChild($tr);
+ for ($j = 0; $j < $cols; $j++) {
+ $th = $element->ownerDocument->createElement(static::TD_TAG);
+ $th->textContent = $this->generator->sentence(mt_rand(1, $maxLength));
+ $tr->appendChild($th);
+ }
+ }
+ $element->appendChild($table);
+ }
+
+ private function addRandomUL(\DOMElement $element, $maxItems = 11, $maxLength = 4)
+ {
+ $num = mt_rand(1, $maxItems);
+ $ul = $element->ownerDocument->createElement(static::UL_TAG);
+ for ($i = 0; $i < $num; $i++) {
+ $li = $element->ownerDocument->createElement(static::LI_TAG);
+ $li->textContent = $this->generator->sentence(mt_rand(1, $maxLength));
+ $ul->appendChild($li);
+ }
+ $element->appendChild($ul);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php b/vendor/fzaninotto/faker/src/Faker/Provider/Image.php
index 40aeac53..14f1b397 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Image.php
@@ -18,13 +18,28 @@ class Image extends Base
* Set randomize to false to remove the random GET parameter at the end of the url.
*
* @example 'http://lorempixel.com/640/480/?12345'
+ *
+ * @param integer $width
+ * @param integer $height
+ * @param string|null $category
+ * @param bool $randomize
+ * @param string|null $word
+ * @param bool $gray
+ *
+ * @return string
*/
- public static function imageUrl($width = 640, $height = 480, $category = null, $randomize = true, $word = null)
+ public static function imageUrl($width = 640, $height = 480, $category = null, $randomize = true, $word = null, $gray = false)
{
- $url = "http://lorempixel.com/{$width}/{$height}/";
+ $baseUrl = "https://lorempixel.com/";
+ $url = "{$width}/{$height}/";
+
+ if ($gray) {
+ $url = "gray/" . $url;
+ }
+
if ($category) {
if (!in_array($category, static::$categories)) {
- throw new \InvalidArgumentException(sprintf('Unkown image category "%s"', $category));
+ throw new \InvalidArgumentException(sprintf('Unknown image category "%s"', $category));
}
$url .= "{$category}/";
if ($word) {
@@ -36,7 +51,7 @@ class Image extends Base
$url .= '?' . static::randomNumber(5, true);
}
- return $url;
+ return $baseUrl . $url;
}
/**
@@ -46,7 +61,7 @@ class Image extends Base
*
* @example '/path/to/dir/13b73edae8443990be1aa8f1a483bc27.jpg'
*/
- public static function image($dir = null, $width = 640, $height = 480, $category = null, $fullPath = true, $randomize = true, $word = null)
+ public static function image($dir = null, $width = 640, $height = 480, $category = null, $fullPath = true, $randomize = true, $word = null, $gray = false)
{
$dir = is_null($dir) ? sys_get_temp_dir() : $dir; // GNU/Linux / OS X / Windows compatible
// Validate directory path
@@ -60,7 +75,7 @@ class Image extends Base
$filename = $name .'.jpg';
$filepath = $dir . DIRECTORY_SEPARATOR . $filename;
- $url = static::imageUrl($width, $height, $category, $randomize, $word);
+ $url = static::imageUrl($width, $height, $category, $randomize, $word, $gray);
// save file
if (function_exists('curl_exec')) {
@@ -68,9 +83,16 @@ class Image extends Base
$fp = fopen($filepath, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
- $success = curl_exec($ch);
- curl_close($ch);
+ $success = curl_exec($ch) && curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200;
fclose($fp);
+ curl_close($ch);
+
+ if (!$success) {
+ unlink($filepath);
+
+ // could not contact the distant URL or HTTP error - fail silently.
+ return false;
+ }
} elseif (ini_get('allow_url_fopen')) {
// use remote fopen() via copy()
$success = copy($url, $filepath);
@@ -78,11 +100,6 @@ class Image extends Base
return new \RuntimeException('The image formatter downloads an image from a remote HTTP server. Therefore, it requires that PHP can request remote hosts, either via cURL or fopen()');
}
- if (!$success) {
- // could not contact the distant URL or HTTP error - fail silently.
- return false;
- }
-
return $fullPath ? $filepath : $filename;
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/Internet.php
index 9e92f146..2eaa2f6a 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Internet.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Internet.php
@@ -2,7 +2,7 @@
namespace Faker\Provider;
-class Internet extends \Faker\Provider\Base
+class Internet extends Base
{
protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com');
protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org');
@@ -29,140 +29,14 @@ class Internet extends \Faker\Provider\Base
'http://{{domainName}}/{{slug}}.html',
'https://{{domainName}}/{{slug}}.html',
);
-
- public static function toAscii($string)
- {
- $transliterationTable = array(
- 'IJ' => 'I','Ö' => 'O','Œ' => 'O','Ü' => 'U','ä' => 'a','æ' => 'a',
- 'ij' => 'i','ö' => 'o','œ' => 'o','ü' => 'u','ß' => 's','ſ' => 's',
- 'À' => 'A','Ã' => 'A','Â' => 'A','Ã' => 'A','Ä' => 'A','Ã…' => 'A',
- 'Æ' => 'A','Ā' => 'A','Ą' => 'A','Ă' => 'A','Ç' => 'C','Ć' => 'C',
- 'ÄŒ' => 'C','Ĉ' => 'C','ÄŠ' => 'C','ÄŽ' => 'D','Ä' => 'D','È' => 'E',
- 'É' => 'E','Ê' => 'E','Ë' => 'E','Ē' => 'E','Ę' => 'E','Ě' => 'E',
- 'Ä”' => 'E','Ä–' => 'E','Äœ' => 'G','Äž' => 'G','Ä ' => 'G','Ä¢' => 'G',
- 'Ĥ' => 'H','Ħ' => 'H','ÃŒ' => 'I','Ã' => 'I','ÃŽ' => 'I','Ã' => 'I',
- 'Ī' => 'I','Ĩ' => 'I','Ĭ' => 'I','Į' => 'I','İ' => 'I','Ĵ' => 'J',
- 'Ķ' => 'K','Ľ' => 'K','Ĺ' => 'K','Ä»' => 'K','Ä¿' => 'K','Å' => 'L',
- 'Ñ' => 'N','Ń' => 'N','Ň' => 'N','Ņ' => 'N','Ŋ' => 'N','Ò' => 'O',
- 'Ó' => 'O','Ô' => 'O','Õ' => 'O','Ø' => 'O','ÅŒ' => 'O','Å' => 'O',
- 'Ŏ' => 'O','Ŕ' => 'R','Ř' => 'R','Ŗ' => 'R','Ś' => 'S','Ş' => 'S',
- 'Ŝ' => 'S','Ș' => 'S','Š' => 'S','Ť' => 'T','Ţ' => 'T','Ŧ' => 'T',
- 'Ț' => 'T','Ù' => 'U','Ú' => 'U','Û' => 'U','Ū' => 'U','Ů' => 'U',
- 'Ű' => 'U','Ŭ' => 'U','Ũ' => 'U','Ų' => 'U','Ŵ' => 'W','Ŷ' => 'Y',
- 'Ÿ' => 'Y','Ã' => 'Y','Ź' => 'Z','Å»' => 'Z','Ž' => 'Z','à ' => 'a',
- 'á' => 'a','â' => 'a','ã' => 'a','Ä' => 'a','Ä…' => 'a','ă' => 'a',
- 'Ã¥' => 'a','ç' => 'c','ć' => 'c','Ä' => 'c','ĉ' => 'c','Ä‹' => 'c',
- 'Ä' => 'd','Ä‘' => 'd','è' => 'e','é' => 'e','ê' => 'e','ë' => 'e',
- 'Ä“' => 'e','Ä™' => 'e','Ä›' => 'e','Ä•' => 'e','Ä—' => 'e','Æ’' => 'f',
- 'Ä' => 'g','ÄŸ' => 'g','Ä¡' => 'g','Ä£' => 'g','Ä¥' => 'h','ħ' => 'h',
- 'ì' => 'i','Ã' => 'i','î' => 'i','ï' => 'i','Ä«' => 'i','Ä©' => 'i',
- 'Ä' => 'i','į' => 'i','ı' => 'i','ĵ' => 'j','Ä·' => 'k','ĸ' => 'k',
- 'ł' => 'l','ľ' => 'l','ĺ' => 'l','ļ' => 'l','ŀ' => 'l','ñ' => 'n',
- 'ń' => 'n','ň' => 'n','ņ' => 'n','ʼn' => 'n','ŋ' => 'n','ò' => 'o',
- 'ó' => 'o','ô' => 'o','õ' => 'o','ø' => 'o','Å' => 'o','Å‘' => 'o',
- 'Å' => 'o','Å•' => 'r','Å™' => 'r','Å—' => 'r','Å›' => 's','Å¡' => 's',
- 'ť' => 't','ù' => 'u','ú' => 'u','û' => 'u','ū' => 'u','ů' => 'u',
- 'ű' => 'u','Å' => 'u','Å©' => 'u','ų' => 'u','ŵ' => 'w','ÿ' => 'y',
- 'ý' => 'y','ŷ' => 'y','ż' => 'z','ź' => 'z','ž' => 'z','Α' => 'A',
- 'Ά' => 'A','Ἀ' => 'A','Ἁ' => 'A','Ἂ' => 'A','Ἃ' => 'A','Ἄ' => 'A',
- 'á¼' => 'A','Ἆ' => 'A','á¼' => 'A','ᾈ' => 'A','ᾉ' => 'A','ᾊ' => 'A',
- 'ᾋ' => 'A','ᾌ' => 'A','á¾' => 'A','ᾎ' => 'A','á¾' => 'A','Ᾰ' => 'A',
- 'Ᾱ' => 'A','Ὰ' => 'A','ᾼ' => 'A','Β' => 'B','Γ' => 'G','Δ' => 'D',
- 'Ε' => 'E','Έ' => 'E','Ἐ' => 'E','Ἑ' => 'E','Ἒ' => 'E','Ἓ' => 'E',
- 'Ἔ' => 'E','á¼' => 'E','Ὲ' => 'E','Ζ' => 'Z','Η' => 'I','Ή' => 'I',
- 'Ἠ' => 'I','Ἡ' => 'I','Ἢ' => 'I','Ἣ' => 'I','Ἤ' => 'I','á¼' => 'I',
- 'Ἦ' => 'I','Ἧ' => 'I','ᾘ' => 'I','ᾙ' => 'I','ᾚ' => 'I','ᾛ' => 'I',
- 'ᾜ' => 'I','á¾' => 'I','ᾞ' => 'I','ᾟ' => 'I','Ὴ' => 'I','ῌ' => 'I',
- 'Θ' => 'T','Ι' => 'I','Ί' => 'I','Ϊ' => 'I','Ἰ' => 'I','Ἱ' => 'I',
- 'Ἲ' => 'I','Ἳ' => 'I','Ἴ' => 'I','Ἵ' => 'I','Ἶ' => 'I','Ἷ' => 'I',
- 'Ῐ' => 'I','Ῑ' => 'I','Ὶ' => 'I','Κ' => 'K','Λ' => 'L','Μ' => 'M',
- 'Î' => 'N','Ξ' => 'K','Ο' => 'O','ÎŒ' => 'O','Ὀ' => 'O','Ὁ' => 'O',
- 'Ὂ' => 'O','Ὃ' => 'O','Ὄ' => 'O','á½' => 'O','Ὸ' => 'O','Î ' => 'P',
- 'Ρ' => 'R','Ῥ' => 'R','Σ' => 'S','Τ' => 'T','Υ' => 'Y','Ύ' => 'Y',
- 'Ϋ' => 'Y','á½™' => 'Y','á½›' => 'Y','á½' => 'Y','Ὗ' => 'Y','Ῠ' => 'Y',
- 'Ῡ' => 'Y','Ὺ' => 'Y','Φ' => 'F','Χ' => 'X','Ψ' => 'P','Ω' => 'O',
- 'Î' => 'O','Ὠ' => 'O','Ὡ' => 'O','Ὢ' => 'O','Ὣ' => 'O','Ὤ' => 'O',
- 'á½' => 'O','á½®' => 'O','Ὧ' => 'O','ᾨ' => 'O','ᾩ' => 'O','ᾪ' => 'O',
- 'ᾫ' => 'O','ᾬ' => 'O','á¾' => 'O','á¾®' => 'O','ᾯ' => 'O','Ὼ' => 'O',
- 'ῼ' => 'O','α' => 'a','ά' => 'a','á¼€' => 'a','á¼' => 'a','ἂ' => 'a',
- 'ἃ' => 'a','ἄ' => 'a','ἅ' => 'a','ἆ' => 'a','ἇ' => 'a','ᾀ' => 'a',
- 'á¾' => 'a','ᾂ' => 'a','ᾃ' => 'a','ᾄ' => 'a','á¾…' => 'a','ᾆ' => 'a',
- 'ᾇ' => 'a','ὰ' => 'a','ᾰ' => 'a','ᾱ' => 'a','ᾲ' => 'a','ᾳ' => 'a',
- 'ᾴ' => 'a','ᾶ' => 'a','ᾷ' => 'a','β' => 'b','γ' => 'g','δ' => 'd',
- 'ε' => 'e','Î' => 'e','á¼' => 'e','ἑ' => 'e','á¼’' => 'e','ἓ' => 'e',
- 'ἔ' => 'e','ἕ' => 'e','ὲ' => 'e','ζ' => 'z','η' => 'i','ή' => 'i',
- 'ἠ' => 'i','ἡ' => 'i','ἢ' => 'i','ἣ' => 'i','ἤ' => 'i','ἥ' => 'i',
- 'ἦ' => 'i','á¼§' => 'i','á¾' => 'i','ᾑ' => 'i','á¾’' => 'i','ᾓ' => 'i',
- 'ᾔ' => 'i','ᾕ' => 'i','ᾖ' => 'i','ᾗ' => 'i','ὴ' => 'i','ῂ' => 'i',
- 'ῃ' => 'i','ῄ' => 'i','ῆ' => 'i','ῇ' => 'i','θ' => 't','ι' => 'i',
- 'ί' => 'i','ÏŠ' => 'i','Î' => 'i','á¼°' => 'i','á¼±' => 'i','á¼²' => 'i',
- 'á¼³' => 'i','á¼´' => 'i','á¼µ' => 'i','á¼¶' => 'i','á¼·' => 'i','á½¶' => 'i',
- 'á¿' => 'i','á¿‘' => 'i','á¿’' => 'i','á¿–' => 'i','á¿—' => 'i','κ' => 'k',
- 'λ' => 'l','μ' => 'm','ν' => 'n','ξ' => 'k','ο' => 'o','ό' => 'o',
- 'á½€' => 'o','á½' => 'o','ὂ' => 'o','ὃ' => 'o','ὄ' => 'o','á½…' => 'o',
- 'ὸ' => 'o','Ï€' => 'p','Ï' => 'r','ῤ' => 'r','á¿¥' => 'r','σ' => 's',
- 'Ï‚' => 's','Ï„' => 't','Ï…' => 'y','Ï' => 'y','Ï‹' => 'y','ΰ' => 'y',
- 'á½' => 'y','ὑ' => 'y','á½’' => 'y','ὓ' => 'y','á½”' => 'y','ὕ' => 'y',
- 'ὖ' => 'y','ὗ' => 'y','ὺ' => 'y','ῠ' => 'y','ῡ' => 'y','ῢ' => 'y',
- 'ῦ' => 'y','ῧ' => 'y','φ' => 'f','χ' => 'x','ψ' => 'p','ω' => 'o',
- 'ώ' => 'o','ὠ' => 'o','ὡ' => 'o','ὢ' => 'o','ὣ' => 'o','ὤ' => 'o',
- 'ὥ' => 'o','ὦ' => 'o','ὧ' => 'o','ᾠ' => 'o','ᾡ' => 'o','ᾢ' => 'o',
- 'ᾣ' => 'o','ᾤ' => 'o','ᾥ' => 'o','ᾦ' => 'o','ᾧ' => 'o','ὼ' => 'o',
- 'ῲ' => 'o','ῳ' => 'o','á¿´' => 'o','á¿¶' => 'o','á¿·' => 'o','Ð' => 'A',
- 'Б' => 'B','Ð’' => 'V','Г' => 'G','Д' => 'D','Е' => 'E','Ð' => 'E',
- 'Ж' => 'Z','З' => 'Z','И' => 'I','Й' => 'I','К' => 'K','Л' => 'L',
- 'М' => 'M','Ð' => 'N','О' => 'O','П' => 'P','Ð ' => 'R','С' => 'S',
- 'Т' => 'T','У' => 'U','Ф' => 'F','Х' => 'K','Ц' => 'T','Ч' => 'C',
- 'Ш' => 'S','Щ' => 'S','Ы' => 'Y','Ð' => 'E','Ю' => 'Y','Я' => 'Y',
- 'а' => 'A','б' => 'B','в' => 'V','г' => 'G','д' => 'D','е' => 'E',
- 'ё' => 'E','ж' => 'Z','з' => 'Z','и' => 'I','й' => 'I','к' => 'K',
- 'л' => 'L','м' => 'M','н' => 'N','о' => 'O','п' => 'P','р' => 'R',
- 'Ñ' => 'S','Ñ‚' => 'T','у' => 'U','Ñ„' => 'F','Ñ…' => 'K','ц' => 'T',
- 'ч' => 'C','ш' => 'S','щ' => 'S','Ñ‹' => 'Y','Ñ' => 'E','ÑŽ' => 'Y',
- 'Ñ' => 'Y','ð' => 'd','Ã' => 'D','þ' => 't','Þ' => 'T','áƒ' => 'a',
- 'ბ' => 'b','გ' => 'g','დ' => 'd','ე' => 'e','ვ' => 'v','ზ' => 'z',
- 'თ' => 't','ი' => 'i','კ' => 'k','ლ' => 'l','მ' => 'm','ნ' => 'n',
- 'áƒ' => 'o','პ' => 'p','ჟ' => 'z','რ' => 'r','ს' => 's','ტ' => 't',
- 'უ' => 'u','ფ' => 'p','ქ' => 'k','ღ' => 'g','ყ' => 'q','შ' => 's',
- 'ჩ' => 'c','ც' => 't','ძ' => 'd','წ' => 't','áƒ' => 'c','ხ' => 'k',
- 'ჯ' => 'j','ჰ' => 'h','Ä' => 'a','Å£' => 't','ʼ' => "'", '̧' => '',
- 'ḩ' => 'h','ʼ' => "'",'‘' => "'",'’' => "'",'ừ' => 'u','/' => '',
- 'ế' => 'e','ả' => 'a','ị' => 'i','áº' => 'a','ệ' => 'e','ỉ' => 'i',
- 'ồ' => 'o','á»' => 'e','Æ¡' => 'o','ạ' => 'a','ẵ' => 'a','ư' => 'u',
- 'ằ' => 'a','ầ' => 'a','ḑ' => 'd','Ḩ' => 'H','á¸' => 'D','ḑ' => 'd',
- 'Ģ' => 'G','Š' => 'S','ļ' => 'l','ž' => 'z','Ē' => 'E','ņ' => 'n',
- 'Č' => 'C','ș' => 's','ț' => 't', 'ộ' => 'o','ắ' => 'a','ş' => 's',
- "'" => '', 'Õ¸Ö‚' => 'u','Õ¡' => 'a','Õ¢' => 'b','Õ£' => 'g','Õ¤' => 'd',
- 'Õ¥' => 'e','Õ¦' => 'z','Õ§' => 'e','Õ¨' => 'y','Õ©' => 't','Õª' => 'zh',
- 'Õ«' => 'i','Õ¬' => 'l','Õ' => 'kh','Õ®' => 'ts','Õ¯' => 'k','Õ°' => 'h',
- 'Õ±' => 'dz','Õ²' => 'gh','Õ³' => 'ch','Õ´' => 'm','Õµ' => 'y','Õ¶' => 'n',
- 'Õ·' => 'sh','Õ¸' => 'o','Õ¹' => 'ch','Õº' => 'p','Õ»' => 'j','Õ¼' => 'r',
- 'Õ½' => 's','Õ¾' => 'v','Õ¿' => 't','Ö€' => 'r','Ö' => 'ts','Öƒ' => 'p',
- 'Ö„' => 'q','Ö‡' => 'ev','Ö…' => 'o','Ö†' => 'f',
- );
- return str_replace(array_keys($transliterationTable), array_values($transliterationTable), $string);
- }
-
- private static function transliterate($string)
- {
- $transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC; Lower();';
- if (function_exists('transliterator_transliterate') && $transliterator = \Transliterator::create($transId)) {
- $transString = $transliterator->transliterate($string);
- } else {
- $transString = static::toAscii($string);
- }
-
- return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString);
- }
-
/**
* @example 'jdoe@acme.biz'
*/
public function email()
{
$format = static::randomElement(static::$emailFormats);
-
+
return $this->generator->parse($format);
}
@@ -219,7 +93,18 @@ class Internet extends \Faker\Provider\Base
$format = static::randomElement(static::$userNameFormats);
$username = static::bothify($this->generator->parse($format));
- return static::transliterate($username);
+ $username = strtolower(static::transliterate($username));
+
+ // check if transliterate() didn't support the language and removed all letters
+ if (trim($username, '._') === '') {
+ throw new \Exception('userName failed with the selected locale. Try a different locale or activate the "intl" PHP extension.');
+ }
+
+ // clean possible trailing dots from first/last names
+ $username = str_replace('..', '.', $username);
+ $username = rtrim($username, '.');
+
+ return $username;
}
/**
* @example 'fY4èHdZv68'
@@ -246,7 +131,17 @@ class Internet extends \Faker\Provider\Base
{
$lastName = $this->generator->format('lastName');
- return static::transliterate($lastName);
+ $lastName = strtolower(static::transliterate($lastName));
+
+ // check if transliterate() didn't support the language and removed all letters
+ if (trim($lastName, '._') === '') {
+ throw new \Exception('domainWord failed with the selected locale. Try a different locale or activate the "intl" PHP extension.');
+ }
+
+ // clean possible trailing dot from last name
+ $lastName = rtrim($lastName, '.');
+
+ return $lastName;
}
/**
@@ -280,7 +175,7 @@ class Internet extends \Faker\Provider\Base
}
$words = $this->generator->words($nbWords);
- return join($words, '-');
+ return join('-', $words);
}
/**
@@ -288,7 +183,7 @@ class Internet extends \Faker\Provider\Base
*/
public function ipv4()
{
- return long2ip(mt_rand(0, 1) == 0 ? mt_rand(-2147483648, 0) : mt_rand(1, 2147483647));
+ return long2ip(mt_rand(0, 1) == 0 ? mt_rand(-2147483648, -2) : mt_rand(16777216, 2147483647));
}
/**
@@ -311,13 +206,11 @@ class Internet extends \Faker\Provider\Base
{
if (static::numberBetween(0, 1) === 0) {
// 10.x.x.x range
- $ip = long2ip(static::numberBetween(167772160, 184549375));
- } else {
- // 192.168.x.x range
- $ip = long2ip(static::numberBetween(3232235520, 3232301055));
+ return long2ip(static::numberBetween(ip2long("10.0.0.0"), ip2long("10.255.255.255")));
}
- return $ip;
+ // 192.168.x.x range
+ return long2ip(static::numberBetween(ip2long("192.168.0.0"), ip2long("192.168.255.255")));
}
/**
@@ -332,4 +225,138 @@ class Internet extends \Faker\Provider\Base
return $mac;
}
+
+ protected static function transliterate($string)
+ {
+ if (0 === preg_match('/[^A-Za-z0-9_.]/', $string)) {
+ return $string;
+ }
+
+ $transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;';
+ if (class_exists('Transliterator', false) && $transliterator = \Transliterator::create($transId)) {
+ $transString = $transliterator->transliterate($string);
+ } else {
+ $transString = static::toAscii($string);
+ }
+
+ return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString);
+ }
+
+ protected static function toAscii($string)
+ {
+ static $arrayFrom, $arrayTo;
+
+ if (empty($arrayFrom)) {
+ $transliterationTable = array(
+ 'IJ'=>'I', 'Ö'=>'O', 'Œ'=>'O', 'Ü'=>'U', 'ä'=>'a', 'æ'=>'a',
+ 'ij'=>'i', 'ö'=>'o', 'œ'=>'o', 'ü'=>'u', 'ß'=>'s', 'ſ'=>'s',
+ 'À'=>'A', 'Ã'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Ã…'=>'A',
+ 'Æ'=>'A', 'Ā'=>'A', 'Ą'=>'A', 'Ă'=>'A', 'Ç'=>'C', 'Ć'=>'C',
+ 'ÄŒ'=>'C', 'Ĉ'=>'C', 'ÄŠ'=>'C', 'ÄŽ'=>'D', 'Ä'=>'D', 'È'=>'E',
+ 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ē'=>'E', 'Ę'=>'E', 'Ě'=>'E',
+ 'Ä”'=>'E', 'Ä–'=>'E', 'Äœ'=>'G', 'Äž'=>'G', 'Ä '=>'G', 'Ä¢'=>'G',
+ 'Ĥ'=>'H', 'Ħ'=>'H', 'ÃŒ'=>'I', 'Ã'=>'I', 'ÃŽ'=>'I', 'Ã'=>'I',
+ 'Ī'=>'I', 'Ĩ'=>'I', 'Ĭ'=>'I', 'Į'=>'I', 'İ'=>'I', 'Ĵ'=>'J',
+ 'Ķ'=>'K', 'Ľ'=>'K', 'Ĺ'=>'K', 'Ä»'=>'K', 'Ä¿'=>'K', 'Å'=>'L',
+ 'Ñ'=>'N', 'Ń'=>'N', 'Ň'=>'N', 'Ņ'=>'N', 'Ŋ'=>'N', 'Ò'=>'O',
+ 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ø'=>'O', 'ÅŒ'=>'O', 'Å'=>'O',
+ 'Ŏ'=>'O', 'Ŕ'=>'R', 'Ř'=>'R', 'Ŗ'=>'R', 'Ś'=>'S', 'Ş'=>'S',
+ 'Ŝ'=>'S', 'Ș'=>'S', 'Š'=>'S', 'Ť'=>'T', 'Ţ'=>'T', 'Ŧ'=>'T',
+ 'Ț'=>'T', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ū'=>'U', 'Ů'=>'U',
+ 'Ű'=>'U', 'Ŭ'=>'U', 'Ũ'=>'U', 'Ų'=>'U', 'Ŵ'=>'W', 'Ŷ'=>'Y',
+ 'Ÿ'=>'Y', 'Ã'=>'Y', 'Ź'=>'Z', 'Å»'=>'Z', 'Ž'=>'Z', 'à '=>'a',
+ 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'Ä'=>'a', 'Ä…'=>'a', 'ă'=>'a',
+ 'Ã¥'=>'a', 'ç'=>'c', 'ć'=>'c', 'Ä'=>'c', 'ĉ'=>'c', 'Ä‹'=>'c',
+ 'Ä'=>'d', 'Ä‘'=>'d', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e',
+ 'Ä“'=>'e', 'Ä™'=>'e', 'Ä›'=>'e', 'Ä•'=>'e', 'Ä—'=>'e', 'Æ’'=>'f',
+ 'Ä'=>'g', 'ÄŸ'=>'g', 'Ä¡'=>'g', 'Ä£'=>'g', 'Ä¥'=>'h', 'ħ'=>'h',
+ 'ì'=>'i', 'Ã'=>'i', 'î'=>'i', 'ï'=>'i', 'Ä«'=>'i', 'Ä©'=>'i',
+ 'Ä'=>'i', 'į'=>'i', 'ı'=>'i', 'ĵ'=>'j', 'Ä·'=>'k', 'ĸ'=>'k',
+ 'ł'=>'l', 'ľ'=>'l', 'ĺ'=>'l', 'ļ'=>'l', 'ŀ'=>'l', 'ñ'=>'n',
+ 'ń'=>'n', 'ň'=>'n', 'ņ'=>'n', 'ʼn'=>'n', 'ŋ'=>'n', 'ò'=>'o',
+ 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ø'=>'o', 'Å'=>'o', 'Å‘'=>'o',
+ 'Å'=>'o', 'Å•'=>'r', 'Å™'=>'r', 'Å—'=>'r', 'Å›'=>'s', 'Å¡'=>'s',
+ 'ť'=>'t', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ū'=>'u', 'ů'=>'u',
+ 'ű'=>'u', 'Å'=>'u', 'Å©'=>'u', 'ų'=>'u', 'ŵ'=>'w', 'ÿ'=>'y',
+ 'ý'=>'y', 'ŷ'=>'y', 'ż'=>'z', 'ź'=>'z', 'ž'=>'z', 'Α'=>'A',
+ 'Ά'=>'A', 'Ἀ'=>'A', 'Ἁ'=>'A', 'Ἂ'=>'A', 'Ἃ'=>'A', 'Ἄ'=>'A',
+ 'á¼'=>'A', 'Ἆ'=>'A', 'á¼'=>'A', 'ᾈ'=>'A', 'ᾉ'=>'A', 'ᾊ'=>'A',
+ 'ᾋ'=>'A', 'ᾌ'=>'A', 'á¾'=>'A', 'ᾎ'=>'A', 'á¾'=>'A', 'Ᾰ'=>'A',
+ 'Ᾱ'=>'A', 'Ὰ'=>'A', 'ᾼ'=>'A', 'Β'=>'B', 'Γ'=>'G', 'Δ'=>'D',
+ 'Ε'=>'E', 'Έ'=>'E', 'Ἐ'=>'E', 'Ἑ'=>'E', 'Ἒ'=>'E', 'Ἓ'=>'E',
+ 'Ἔ'=>'E', 'á¼'=>'E', 'Ὲ'=>'E', 'Ζ'=>'Z', 'Η'=>'I', 'Ή'=>'I',
+ 'Ἠ'=>'I', 'Ἡ'=>'I', 'Ἢ'=>'I', 'Ἣ'=>'I', 'Ἤ'=>'I', 'á¼'=>'I',
+ 'Ἦ'=>'I', 'Ἧ'=>'I', 'ᾘ'=>'I', 'ᾙ'=>'I', 'ᾚ'=>'I', 'ᾛ'=>'I',
+ 'ᾜ'=>'I', 'á¾'=>'I', 'ᾞ'=>'I', 'ᾟ'=>'I', 'Ὴ'=>'I', 'ῌ'=>'I',
+ 'Θ'=>'T', 'Ι'=>'I', 'Ί'=>'I', 'Ϊ'=>'I', 'Ἰ'=>'I', 'Ἱ'=>'I',
+ 'Ἲ'=>'I', 'Ἳ'=>'I', 'Ἴ'=>'I', 'Ἵ'=>'I', 'Ἶ'=>'I', 'Ἷ'=>'I',
+ 'Ῐ'=>'I', 'Ῑ'=>'I', 'Ὶ'=>'I', 'Κ'=>'K', 'Λ'=>'L', 'Μ'=>'M',
+ 'Î'=>'N', 'Ξ'=>'K', 'Ο'=>'O', 'ÎŒ'=>'O', 'Ὀ'=>'O', 'Ὁ'=>'O',
+ 'Ὂ'=>'O', 'Ὃ'=>'O', 'Ὄ'=>'O', 'á½'=>'O', 'Ὸ'=>'O', 'Î '=>'P',
+ 'Ρ'=>'R', 'Ῥ'=>'R', 'Σ'=>'S', 'Τ'=>'T', 'Υ'=>'Y', 'Ύ'=>'Y',
+ 'Ϋ'=>'Y', 'á½™'=>'Y', 'á½›'=>'Y', 'á½'=>'Y', 'Ὗ'=>'Y', 'Ῠ'=>'Y',
+ 'Ῡ'=>'Y', 'Ὺ'=>'Y', 'Φ'=>'F', 'Χ'=>'X', 'Ψ'=>'P', 'Ω'=>'O',
+ 'Î'=>'O', 'Ὠ'=>'O', 'Ὡ'=>'O', 'Ὢ'=>'O', 'Ὣ'=>'O', 'Ὤ'=>'O',
+ 'á½'=>'O', 'á½®'=>'O', 'Ὧ'=>'O', 'ᾨ'=>'O', 'ᾩ'=>'O', 'ᾪ'=>'O',
+ 'ᾫ'=>'O', 'ᾬ'=>'O', 'á¾'=>'O', 'á¾®'=>'O', 'ᾯ'=>'O', 'Ὼ'=>'O',
+ 'ῼ'=>'O', 'α'=>'a', 'ά'=>'a', 'á¼€'=>'a', 'á¼'=>'a', 'ἂ'=>'a',
+ 'ἃ'=>'a', 'ἄ'=>'a', 'ἅ'=>'a', 'ἆ'=>'a', 'ἇ'=>'a', 'ᾀ'=>'a',
+ 'á¾'=>'a', 'ᾂ'=>'a', 'ᾃ'=>'a', 'ᾄ'=>'a', 'á¾…'=>'a', 'ᾆ'=>'a',
+ 'ᾇ'=>'a', 'ὰ'=>'a', 'ᾰ'=>'a', 'ᾱ'=>'a', 'ᾲ'=>'a', 'ᾳ'=>'a',
+ 'ᾴ'=>'a', 'ᾶ'=>'a', 'ᾷ'=>'a', 'β'=>'b', 'γ'=>'g', 'δ'=>'d',
+ 'ε'=>'e', 'Î'=>'e', 'á¼'=>'e', 'ἑ'=>'e', 'á¼’'=>'e', 'ἓ'=>'e',
+ 'ἔ'=>'e', 'ἕ'=>'e', 'ὲ'=>'e', 'ζ'=>'z', 'η'=>'i', 'ή'=>'i',
+ 'ἠ'=>'i', 'ἡ'=>'i', 'ἢ'=>'i', 'ἣ'=>'i', 'ἤ'=>'i', 'ἥ'=>'i',
+ 'ἦ'=>'i', 'á¼§'=>'i', 'á¾'=>'i', 'ᾑ'=>'i', 'á¾’'=>'i', 'ᾓ'=>'i',
+ 'ᾔ'=>'i', 'ᾕ'=>'i', 'ᾖ'=>'i', 'ᾗ'=>'i', 'ὴ'=>'i', 'ῂ'=>'i',
+ 'ῃ'=>'i', 'ῄ'=>'i', 'ῆ'=>'i', 'ῇ'=>'i', 'θ'=>'t', 'ι'=>'i',
+ 'ί'=>'i', 'ÏŠ'=>'i', 'Î'=>'i', 'á¼°'=>'i', 'á¼±'=>'i', 'á¼²'=>'i',
+ 'á¼³'=>'i', 'á¼´'=>'i', 'á¼µ'=>'i', 'á¼¶'=>'i', 'á¼·'=>'i', 'á½¶'=>'i',
+ 'á¿'=>'i', 'á¿‘'=>'i', 'á¿’'=>'i', 'á¿–'=>'i', 'á¿—'=>'i', 'κ'=>'k',
+ 'λ'=>'l', 'μ'=>'m', 'ν'=>'n', 'ξ'=>'k', 'ο'=>'o', 'ό'=>'o',
+ 'á½€'=>'o', 'á½'=>'o', 'ὂ'=>'o', 'ὃ'=>'o', 'ὄ'=>'o', 'á½…'=>'o',
+ 'ὸ'=>'o', 'Ï€'=>'p', 'Ï'=>'r', 'ῤ'=>'r', 'á¿¥'=>'r', 'σ'=>'s',
+ 'Ï‚'=>'s', 'Ï„'=>'t', 'Ï…'=>'y', 'Ï'=>'y', 'Ï‹'=>'y', 'ΰ'=>'y',
+ 'á½'=>'y', 'ὑ'=>'y', 'á½’'=>'y', 'ὓ'=>'y', 'á½”'=>'y', 'ὕ'=>'y',
+ 'ὖ'=>'y', 'ὗ'=>'y', 'ὺ'=>'y', 'ῠ'=>'y', 'ῡ'=>'y', 'ῢ'=>'y',
+ 'ῦ'=>'y', 'ῧ'=>'y', 'φ'=>'f', 'χ'=>'x', 'ψ'=>'p', 'ω'=>'o',
+ 'ώ'=>'o', 'ὠ'=>'o', 'ὡ'=>'o', 'ὢ'=>'o', 'ὣ'=>'o', 'ὤ'=>'o',
+ 'ὥ'=>'o', 'ὦ'=>'o', 'ὧ'=>'o', 'ᾠ'=>'o', 'ᾡ'=>'o', 'ᾢ'=>'o',
+ 'ᾣ'=>'o', 'ᾤ'=>'o', 'ᾥ'=>'o', 'ᾦ'=>'o', 'ᾧ'=>'o', 'ὼ'=>'o',
+ 'ῲ'=>'o', 'ῳ'=>'o', 'á¿´'=>'o', 'á¿¶'=>'o', 'á¿·'=>'o', 'Ð'=>'A',
+ 'Б'=>'B', 'Ð’'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ð'=>'E',
+ 'Ж'=>'Z', 'З'=>'Z', 'И'=>'I', 'Й'=>'I', 'К'=>'K', 'Л'=>'L',
+ 'М'=>'M', 'Ð'=>'N', 'О'=>'O', 'П'=>'P', 'Ð '=>'R', 'С'=>'S',
+ 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Х'=>'K', 'Ц'=>'T', 'Ч'=>'C',
+ 'Ш'=>'S', 'Щ'=>'S', 'Ы'=>'Y', 'Ð'=>'E', 'Ю'=>'Y', 'Я'=>'Y',
+ 'а'=>'A', 'б'=>'B', 'в'=>'V', 'г'=>'G', 'д'=>'D', 'е'=>'E',
+ 'ё'=>'E', 'ж'=>'Z', 'з'=>'Z', 'и'=>'I', 'й'=>'I', 'к'=>'K',
+ 'л'=>'L', 'м'=>'M', 'н'=>'N', 'о'=>'O', 'п'=>'P', 'р'=>'R',
+ 'Ñ'=>'S', 'Ñ‚'=>'T', 'у'=>'U', 'Ñ„'=>'F', 'Ñ…'=>'K', 'ц'=>'T',
+ 'ч'=>'C', 'ш'=>'S', 'щ'=>'S', 'Ñ‹'=>'Y', 'Ñ'=>'E', 'ÑŽ'=>'Y',
+ 'Ñ'=>'Y', 'ð'=>'d', 'Ã'=>'D', 'þ'=>'t', 'Þ'=>'T', 'áƒ'=>'a',
+ 'ბ'=>'b', 'გ'=>'g', 'დ'=>'d', 'ე'=>'e', 'ვ'=>'v', 'ზ'=>'z',
+ 'თ'=>'t', 'ი'=>'i', 'კ'=>'k', 'ლ'=>'l', 'მ'=>'m', 'ნ'=>'n',
+ 'áƒ'=>'o', 'პ'=>'p', 'ჟ'=>'z', 'რ'=>'r', 'ს'=>'s', 'ტ'=>'t',
+ 'უ'=>'u', 'ფ'=>'p', 'ქ'=>'k', 'ღ'=>'g', 'ყ'=>'q', 'შ'=>'s',
+ 'ჩ'=>'c', 'ც'=>'t', 'ძ'=>'d', 'წ'=>'t', 'áƒ'=>'c', 'ხ'=>'k',
+ 'ჯ'=>'j', 'ჰ'=>'h', 'ţ'=>'t', 'ʼ'=>"'", '̧'=>'', 'ḩ'=>'h',
+ '‘'=>"'", '’'=>"'", 'ừ'=>'u', '/'=>'', 'ế'=>'e', 'ả'=>'a',
+ 'ị'=>'i', 'áº'=>'a', 'ệ'=>'e', 'ỉ'=>'i', 'ồ'=>'o', 'á»'=>'e',
+ 'ơ'=>'o', 'ạ'=>'a', 'ẵ'=>'a', 'ư'=>'u', 'ằ'=>'a', 'ầ'=>'a',
+ 'ḑ'=>'d', 'Ḩ'=>'H', 'á¸'=>'D', 'È™'=>'s', 'È›'=>'t', 'á»™'=>'o',
+ 'ắ'=>'a', 'ş'=>'s', "'"=>'', 'ու'=>'u', 'ա'=>'a', 'բ'=>'b',
+ 'Õ£'=>'g', 'Õ¤'=>'d', 'Õ¥'=>'e', 'Õ¦'=>'z', 'Õ§'=>'e', 'Õ¨'=>'y',
+ 'Õ©'=>'t', 'Õª'=>'zh', 'Õ«'=>'i', 'Õ¬'=>'l', 'Õ'=>'kh', 'Õ®'=>'ts',
+ 'Õ¯'=>'k', 'Õ°'=>'h', 'Õ±'=>'dz', 'Õ²'=>'gh', 'Õ³'=>'ch', 'Õ´'=>'m',
+ 'Õµ'=>'y', 'Õ¶'=>'n', 'Õ·'=>'sh', 'Õ¸'=>'o', 'Õ¹'=>'ch', 'Õº'=>'p',
+ 'Õ»'=>'j', 'Õ¼'=>'r', 'Õ½'=>'s', 'Õ¾'=>'v', 'Õ¿'=>'t', 'Ö€'=>'r',
+ 'Ö'=>'ts', 'Öƒ'=>'p', 'Ö„'=>'q', 'Ö‡'=>'ev', 'Ö…'=>'o', 'Ö†'=>'f',
+ );
+ $arrayFrom = array_keys($transliterationTable);
+ $arrayTo = array_values($transliterationTable);
+ }
+
+ return str_replace($arrayFrom, $arrayTo, $string);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php b/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php
index 7ba0ced5..b8c6dac2 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php
@@ -2,7 +2,7 @@
namespace Faker\Provider;
-class Lorem extends \Faker\Provider\Base
+class Lorem extends Base
{
protected static $wordList = array(
'alias', 'consequatur', 'aut', 'perferendis', 'sit', 'voluptatem',
@@ -68,7 +68,7 @@ class Lorem extends \Faker\Provider\Base
$words []= static::word();
}
- return $asText ? join(' ', $words) : $words;
+ return $asText ? implode(' ', $words) : $words;
}
/**
@@ -92,7 +92,7 @@ class Lorem extends \Faker\Provider\Base
$words = static::words($nbWords);
$words[0] = ucwords($words[0]);
- return join($words, ' ') . '.';
+ return implode(' ', $words) . '.';
}
/**
@@ -110,7 +110,7 @@ class Lorem extends \Faker\Provider\Base
$sentences []= static::sentence();
}
- return $asText ? join(' ', $sentences) : $sentences;
+ return $asText ? implode(' ', $sentences) : $sentences;
}
/**
@@ -131,7 +131,7 @@ class Lorem extends \Faker\Provider\Base
$nbSentences = self::randomizeNbElements($nbSentences);
}
- return join(static::sentences($nbSentences), ' ');
+ return implode(' ', static::sentences($nbSentences));
}
/**
@@ -149,63 +149,51 @@ class Lorem extends \Faker\Provider\Base
$paragraphs []= static::paragraph();
}
- return $asText ? join("\n\n", $paragraphs) : $paragraphs;
+ return $asText ? implode("\n\n", $paragraphs) : $paragraphs;
}
/**
* Generate a text string.
* Depending on the $maxNbChars, returns a string made of words, sentences, or paragraphs.
*
- * @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.'
+ * @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.'
+ *
* @param integer $maxNbChars Maximum number of characters the text should contain (minimum 5)
+ *
* @return string
*/
public static function text($maxNbChars = 200)
{
- $text = array();
if ($maxNbChars < 5) {
throw new \InvalidArgumentException('text() can only generate text of at least 5 characters');
- } elseif ($maxNbChars < 25) {
- // join words
- while (empty($text)) {
- $size = 0;
- // determine how many words are needed to reach the $maxNbChars once;
- while ($size < $maxNbChars) {
- $word = ($size ? ' ' : '') . static::word();
- $text []= $word;
- $size += strlen($word);
- }
- array_pop($text);
- }
- $text[0][0] = static::toUpper($text[0][0]);
- $text[count($text) - 1] .= '.';
- } elseif ($maxNbChars < 100) {
- // join sentences
- while (empty($text)) {
- $size = 0;
- // determine how many sentences are needed to reach the $maxNbChars once;
- while ($size < $maxNbChars) {
- $sentence = ($size ? ' ' : '') . static::sentence();
- $text []= $sentence;
- $size += strlen($sentence);
- }
- array_pop($text);
- }
- } else {
- // join paragraphs
- while (empty($text)) {
- $size = 0;
- // determine how many paragraphs are needed to reach the $maxNbChars once;
- while ($size < $maxNbChars) {
- $paragraph = ($size ? "\n" : '') . static::paragraph();
- $text []= $paragraph;
- $size += strlen($paragraph);
- }
- array_pop($text);
- }
}
- return join($text, '');
+ $type = ($maxNbChars < 25) ? 'word' : (($maxNbChars < 100) ? 'sentence' : 'paragraph');
+
+ $text = array();
+ while (empty($text)) {
+ $size = 0;
+
+ // until $maxNbChars is reached
+ while ($size < $maxNbChars) {
+ $word = ($size ? ' ' : '') . static::$type();
+ $text[] = $word;
+
+ $size += strlen($word);
+ }
+
+ array_pop($text);
+ }
+
+ if ($type === 'word') {
+ // capitalize first letter
+ $text[0] = ucwords($text[0]);
+
+ // end sentence with full stop
+ $text[count($text) - 1] .= '.';
+ }
+
+ return implode('', $text);
}
protected static function randomizeNbElements($nbElements)
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php b/vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php
index 4557a58e..4f669c92 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php
@@ -2,9 +2,56 @@
namespace Faker\Provider;
-class Miscellaneous extends \Faker\Provider\Base
+class Miscellaneous extends Base
{
- protected static $languageCode = array('cn', 'de', 'en', 'es', 'fr', 'it', 'pt', 'ru');
+ /**
+ * @link https://en.wikipedia.org/wiki/Emoji#Unicode_blocks
+ * On date of 2017-03-26
+ *
+ * U+1F600 - U+1F637 as their UTF-8 Pairings
+ */
+ protected static $emoji = array(
+ '\uD83D\uDE00', '\uD83D\uDE01', '\uD83D\uDE02', '\uD83D\uDE03',
+ '\uD83D\uDE04', '\uD83D\uDE05', '\uD83D\uDE06', '\uD83D\uDE07',
+ '\uD83D\uDE08', '\uD83D\uDE09', '\uD83D\uDE0A', '\uD83D\uDE0B',
+ '\uD83D\uDE0C', '\uD83D\uDE0D', '\uD83D\uDE0E', '\uD83D\uDE0F',
+ '\uD83D\uDE10', '\uD83D\uDE11', '\uD83D\uDE12', '\uD83D\uDE13',
+ '\uD83D\uDE14', '\uD83D\uDE15', '\uD83D\uDE16', '\uD83D\uDE17',
+ '\uD83D\uDE18', '\uD83D\uDE19', '\uD83D\uDE1A', '\uD83D\uDE1B',
+ '\uD83D\uDE1C', '\uD83D\uDE1D', '\uD83D\uDE1E', '\uD83D\uDE1F',
+ '\uD83D\uDE20', '\uD83D\uDE21', '\uD83D\uDE22', '\uD83D\uDE23',
+ '\uD83D\uDE24', '\uD83D\uDE25', '\uD83D\uDE26', '\uD83D\uDE27',
+ '\uD83D\uDE28', '\uD83D\uDE29', '\uD83D\uDE2A', '\uD83D\uDE2B',
+ '\uD83D\uDE2C', '\uD83D\uDE2D', '\uD83D\uDE2E', '\uD83D\uDE2F',
+ '\uD83D\uDE30', '\uD83D\uDE31', '\uD83D\uDE32', '\uD83D\uDE33',
+ '\uD83D\uDE34', '\uD83D\uDE35', '\uD83D\uDE36', '\uD83D\uDE37',
+ );
+
+ /**
+ * @link https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
+ * On date of 2016-04-22
+ */
+ protected static $languageCode = array(
+ 'aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av',
+ 'ay', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo',
+ 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv',
+ 'cy', 'da', 'de', 'dv', 'dz', 'ee', 'el', 'en', 'eo', 'es',
+ 'et', 'eu', 'fa', 'ff', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga',
+ 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'ho', 'hr',
+ 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik',
+ 'io', 'is', 'it', 'iu', 'ja', 'jv', 'ka', 'kg', 'ki', 'kj',
+ 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ku', 'kv', 'kw',
+ 'ky', 'la', 'lb', 'lg', 'li', 'ln', 'lo', 'lt', 'lu', 'lv',
+ 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'mt', 'my',
+ 'na', 'nb', 'nd', 'ne', 'ng', 'nl', 'nn', 'no', 'nr', 'nv',
+ 'ny', 'oc', 'oj', 'om', 'or', 'os', 'pa', 'pi', 'pl', 'ps',
+ 'pt', 'qu', 'rm', 'rn', 'ro', 'ru', 'rw', 'sa', 'sc', 'sd',
+ 'se', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr',
+ 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti',
+ 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug',
+ 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi',
+ 'yo', 'za', 'zh', 'zu',
+ );
/**
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
@@ -14,28 +61,28 @@ class Miscellaneous extends \Faker\Provider\Base
'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR',
'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE',
'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ',
- 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD',
- 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR',
- 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM',
- 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI',
- 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF',
- 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS',
- 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU',
- 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT',
- 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN',
- 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK',
- 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME',
- 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ',
- 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA',
- 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU',
- 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM',
- 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS',
- 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI',
- 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV',
- 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK',
- 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA',
- 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI',
- 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW',
+ 'BR', 'BS', 'BT', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF',
+ 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU',
+ 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO',
+ 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ',
+ 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG',
+ 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT',
+ 'GU', 'GW', 'GY', 'HK', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE',
+ 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM',
+ 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR',
+ 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS',
+ 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG',
+ 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS',
+ 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE',
+ 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM',
+ 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR',
+ 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW',
+ 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK',
+ 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY',
+ 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM',
+ 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM',
+ 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU',
+ 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW',
);
/**
@@ -154,39 +201,44 @@ class Miscellaneous extends \Faker\Provider\Base
);
/**
- * @link http://en.wikipedia.org/wiki/ISO_4217
- * On date of 2015-01-10
+ * @link https://en.wikipedia.org/wiki/ISO_4217
+ * On date of 2019-09-27
+ *
+ * With the following exceptions:
+ * SVC has been replaced by the USD in 2001: https://en.wikipedia.org/wiki/Salvadoran_col%C3%B3n
+ * ZWL has been suspended since 2009: https://en.wikipedia.org/wiki/Zimbabwean_dollar
*/
protected static $currencyCode = array(
'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN',
'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL',
- 'BSD', 'BTC', 'BTN', 'BWP', 'BYR', 'BZD', 'CAD', 'CDF', 'CHF', 'CLF',
- 'CLP', 'CNY', 'COP', 'CRC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP',
- 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL',
- 'GGP', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK',
- 'HTG', 'HUF', 'IDR', 'ILS', 'IMP', 'INR', 'IQD', 'IRR', 'ISK', 'JEP',
- 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD',
- 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD',
- 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MTL', 'MUR',
- 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR',
- 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR',
- 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD',
- 'SHP', 'SLL', 'SOS', 'SRD', 'STD', 'SVC', 'SYP', 'SZL', 'THB', 'TJS',
- 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD',
- 'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XCD',
- 'XDR', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMK', 'ZMW', 'ZWL'
+ 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY',
+ 'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD',
+ 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP',
+ 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR',
+ 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS',
+ 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR',
+ 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP',
+ 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO',
+ 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN',
+ 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG',
+ 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SYP', 'SZL',
+ 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH',
+ 'UGX', 'USD', 'UYU', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XCD',
+ 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW',
);
/**
- * Return a boolean, true or false
+ * Return a boolean, true or false.
+ *
+ * @param int $chanceOfGettingTrue Between 0 (always get false) and 100 (always get true)
*
- * @param integer $chanceOfGettingTrue Between 0 (always get false) and 100 (always get true).
* @return bool
+ *
* @example true
*/
public static function boolean($chanceOfGettingTrue = 50)
{
- return mt_rand(1, 100) <= $chanceOfGettingTrue ? true : false;
+ return mt_rand(1, 100) <= $chanceOfGettingTrue;
}
/**
@@ -223,6 +275,7 @@ class Miscellaneous extends \Faker\Provider\Base
/**
* @example 'FR'
+ *
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
*/
public static function countryCode()
@@ -232,6 +285,7 @@ class Miscellaneous extends \Faker\Provider\Base
/**
* @example 'FRA'
+ *
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
*/
public static function countryISOAlpha3()
@@ -249,10 +303,21 @@ class Miscellaneous extends \Faker\Provider\Base
/**
* @example 'EUR'
+ *
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
*/
public static function currencyCode()
{
return static::randomElement(static::$currencyCode);
}
+
+ /**
+ * Returns an encoded Unicode Character between U+1F600 and U+1F637.
+ *
+ * @link https://en.wikipedia.org/wiki/Emoji#Unicode_blocks
+ */
+ public static function emoji()
+ {
+ return json_decode('"' . static::randomElement(static::$emoji) . '"');
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/Payment.php
index cadbc48d..c4c08581 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Payment.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Payment.php
@@ -2,6 +2,7 @@
namespace Faker\Provider;
+use Faker\Calculator\Iban;
use Faker\Calculator\Luhn;
class Payment extends Base
@@ -11,32 +12,44 @@ class Payment extends Base
protected static $cardVendors = array(
'Visa', 'Visa', 'Visa', 'Visa', 'Visa',
'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard',
- 'American Express', 'Discover Card'
+ 'American Express', 'Discover Card', 'Visa Retired'
);
- // see http://en.wikipedia.org/wiki/Bank_card_number for a reference of existing prefixes
+ /**
+ * @var array List of card brand masks for generating valid credit card numbers
+ * @see https://en.wikipedia.org/wiki/Payment_card_number Reference for existing prefixes
+ * @see https://www.mastercard.us/en-us/issuers/get-support/2-series-bin-expansion.html MasterCard 2017 2-Series BIN Expansion
+ */
protected static $cardParams = array(
'Visa' => array(
- "4539########",
"4539###########",
- "4556########",
"4556###########",
- "4916########",
"4916###########",
- "4532########",
"4532###########",
- "4929########",
"4929###########",
- "40240071####",
"40240071#######",
- "4485########",
"4485###########",
- "4716########",
"4716###########",
- "4###########",
"4##############"
),
+ 'Visa Retired' => array(
+ "4539########",
+ "4556########",
+ "4916########",
+ "4532########",
+ "4929########",
+ "40240071####",
+ "4485########",
+ "4716########",
+ "4###########",
+ ),
'MasterCard' => array(
+ "2221###########",
+ "23#############",
+ "24#############",
+ "25#############",
+ "26#############",
+ "2720###########",
"51#############",
"52#############",
"53#############",
@@ -53,7 +66,7 @@ class Payment extends Base
);
/**
- * @var array list of IBAN formats, source: @link http://www.swift.com/dsp/resources/documents/IBAN_Registry.txt
+ * @var array list of IBAN formats, source: @link https://www.swift.com/standards/data-standards/iban
*/
protected static $ibanFormats = array(
'AD' => array(array('n', 4), array('n', 4), array('c', 12)),
@@ -75,6 +88,7 @@ class Payment extends Base
'DO' => array(array('c', 4), array('n', 20)),
'EE' => array(array('n', 2), array('n', 2), array('n', 11), array('n', 1)),
'ES' => array(array('n', 4), array('n', 4), array('n', 1), array('n', 1), array('n', 10)),
+ 'FI' => array(array('n', 6), array('n', 7), array('n', 1)),
'FR' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)),
'GB' => array(array('a', 4), array('n', 6), array('n', 8)),
'GE' => array(array('a', 2), array('n', 16)),
@@ -87,7 +101,7 @@ class Payment extends Base
'IL' => array(array('n', 3), array('n', 3), array('n', 13)),
'IS' => array(array('n', 4), array('n', 2), array('n', 6), array('n', 10)),
'IT' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)),
- 'KW' => array(array('a', 4), array('c', 22)),
+ 'KW' => array(array('a', 4), array('n', 22)),
'KZ' => array(array('n', 3), array('c', 13)),
'LB' => array(array('n', 4), array('c', 20)),
'LI' => array(array('n', 5), array('c', 12)),
@@ -115,7 +129,7 @@ class Payment extends Base
'SK' => array(array('n', 4), array('n', 6), array('n', 10)),
'SM' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)),
'TN' => array(array('n', 2), array('n', 3), array('n', 13), array('n', 2)),
- 'TR' => array(array('n', 5), array('c', 1), array('c', 16)),
+ 'TR' => array(array('n', 5), array('n', 1), array('c', 16)),
'VG' => array(array('a', 4), array('n', 16)),
);
@@ -132,7 +146,7 @@ class Payment extends Base
/**
* Returns the String of a credit card number.
*
- * @param string $type Supporting any of 'Visa', 'MasterCard', 'Amercian Express', and 'Discover'
+ * @param string $type Supporting any of 'Visa', 'MasterCard', 'American Express', and 'Discover'
* @param boolean $formatted Set to true if the output string should contain one separator every 4 digits
* @param string $separator Separator string for formatting card number. Defaults to dash (-).
* @return string
@@ -210,10 +224,11 @@ class Payment extends Base
* @param integer $length total length without country code and 2 check digits
* @return string
*/
- protected static function iban($countryCode, $prefix = '', $length = null)
+ public static function iban($countryCode = null, $prefix = '', $length = null)
{
- $countryCode = strtoupper($countryCode);
- $format = !isset(static::$ibanFormats[$countryCode]) ? array() : static::$ibanFormats[$countryCode];
+ $countryCode = is_null($countryCode) ? self::randomKey(self::$ibanFormats) : strtoupper($countryCode);
+
+ $format = !isset(static::$ibanFormats[$countryCode]) ? null : static::$ibanFormats[$countryCode];
if ($length === null) {
if ($format === null) {
$length = 24;
@@ -225,22 +240,19 @@ class Payment extends Base
}
}
}
+ if ($format === null) {
+ $format = array(array('n', $length));
+ }
+
+ $expandedFormat = '';
+ foreach ($format as $item) {
+ list($class, $length) = $item;
+ $expandedFormat .= str_repeat($class, $length);
+ }
$result = $prefix;
- $length -= strlen($prefix);
- $nextPart = array_shift($format);
- if ($nextPart !== false) {
- list($class, $groupCount) = $nextPart;
- } else {
- $class = 'n';
- $groupCount = 0;
- }
- $groupCount = $nextPart === false ? 0 : $nextPart[1];
- for ($i = 0; $i < $length; $i++) {
- if ($nextPart !== false && $groupCount-- < 1) {
- $nextPart = array_shift($format);
- list($class, $groupCount) = $nextPart;
- }
+ $expandedFormat = substr($expandedFormat, strlen($result));
+ foreach (str_split($expandedFormat) as $class) {
switch ($class) {
default:
case 'c':
@@ -255,35 +267,11 @@ class Payment extends Base
}
}
- $result = static::addBankCodeChecksum($result, $countryCode);
-
- $countryNumber = 100 * (ord($countryCode[0])-55) + (ord($countryCode[1])-55);
- $tempResult = $result . $countryNumber . '00';
- // perform MOD97-10 checksum calculation
- $checksum = (int) $tempResult[0];
- for ($i = 1, $size = strlen($tempResult); $i < $size; $i++) {
- $checksum = (10 * $checksum + (int) $tempResult[$i]) % 97;
- }
- $checksum = 98 - $checksum;
- if ($checksum < 10) {
- $checksum = '0'.$checksum;
- }
+ $checksum = Iban::checksum($countryCode . '00' . $result);
return $countryCode . $checksum . $result;
}
- /**
- * Calculates a checksum for the national bank and branch code part in the IBAN.
- *
- * @param string $iban randomly generated $iban
- * @param string $countryCode ISO 3166-1 alpha-2 country code
- * @return string IBAN with one character altered to a proper checksum
- */
- protected static function addBankCodeChecksum($iban, $countryCode = '')
- {
- return $iban;
- }
-
/**
* Return the String of a SWIFT/BIC number
*
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/Person.php
index bd7cd45a..9d875b66 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Person.php
@@ -2,7 +2,7 @@
namespace Faker\Provider;
-class Person extends \Faker\Provider\Base
+class Person extends Base
{
const GENDER_MALE = 'male';
const GENDER_FEMALE = 'female';
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php
index 65b24fc2..d9d1f6bb 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php
@@ -2,15 +2,42 @@
namespace Faker\Provider;
-class PhoneNumber extends \Faker\Provider\Base
+use Faker\Calculator\Luhn;
+
+class PhoneNumber extends Base
{
protected static $formats = array('###-###-###');
/**
* @example '555-123-546'
*/
- public static function phoneNumber()
+ public function phoneNumber()
{
- return static::numerify(static::randomElement(static::$formats));
+ return static::numerify($this->generator->parse(static::randomElement(static::$formats)));
+ }
+
+ /**
+ * @example +27113456789
+ * @return string
+ */
+ public function e164PhoneNumber()
+ {
+ $formats = array('+%############');
+ return static::numerify($this->generator->parse(static::randomElement($formats)));
+ }
+
+ /**
+ * International Mobile Equipment Identity (IMEI)
+ *
+ * @link http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity
+ * @link http://imei-number.com/imei-validation-check/
+ * @example '720084494799532'
+ * @return int $imei
+ */
+ public function imei()
+ {
+ $imei = (string) static::numerify('##############');
+ $imei .= Luhn::computeCheckDigit($imei);
+ return $imei;
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/Text.php
index 675ad851..80aa02fc 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Text.php
@@ -2,13 +2,14 @@
namespace Faker\Provider;
-abstract class Text extends \Faker\Provider\Base
+abstract class Text extends Base
{
protected static $baseText = '';
protected static $separator = ' ';
protected static $separatorLen = 1;
- protected $explodedText = null;
+ protected $explodedText;
protected $consecutiveWords = array();
+ protected static $textStartsWithUppercase = true;
/**
* Generate a text string by the Markov chain algorithm.
@@ -20,7 +21,7 @@ abstract class Text extends \Faker\Provider\Base
* @example 'Alice, swallowing down her flamingo, and began by taking the little golden key'
* @param integer $maxNbChars Maximum number of characters the text should contain (minimum: 10)
* @param integer $indexSize Determines how many words are considered for the generation of the next word.
- * The minimum is 1, and it produces the higher level of randomness, although the
+ * The minimum is 1, and it produces a higher level of randomness, although the
* generated text usually doesn't make sense. Higher index sizes (up to 5)
* produce more correct text, at the price of less randomness.
* @return string
@@ -39,7 +40,6 @@ abstract class Text extends \Faker\Provider\Base
throw new \InvalidArgumentException('indexSize must be at most 5');
}
-
$words = $this->getConsecutiveWords($indexSize);
$result = array();
$resultLength = 0;
@@ -127,11 +127,15 @@ abstract class Text extends \Faker\Provider\Base
protected static function validStart($word)
{
- return preg_match('/^\p{Lu}/u', $word);
+ $isValid = true;
+ if (static::$textStartsWithUppercase) {
+ $isValid = preg_match('/^\p{Lu}/u', $word);
+ }
+ return $isValid;
}
protected static function appendEnd($text)
{
- return $text.'.';
+ return preg_replace("/([ ,-:;\x{2013}\x{2014}]+$)/us", '', $text).'.';
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php b/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php
index 132b480f..d659f4bb 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php
@@ -2,11 +2,15 @@
namespace Faker\Provider;
-class UserAgent extends \Faker\Provider\Base
+class UserAgent extends Base
{
protected static $userAgents = array('firefox', 'chrome', 'internetExplorer', 'opera', 'safari');
- protected static $windowsPlatformTokens = array('Windows NT 6.2', 'Windows NT 6.1', 'Windows NT 6.0', 'Windows NT 5.2', 'Windows NT 5.1', 'Windows NT 5.01', 'Windows NT 5.0', 'Windows NT 4.0', 'Windows 98; Win 9x 4.90', 'Windows 98', 'Windows 95', 'Windows CE');
+ protected static $windowsPlatformTokens = array(
+ 'Windows NT 6.2', 'Windows NT 6.1', 'Windows NT 6.0', 'Windows NT 5.2', 'Windows NT 5.1',
+ 'Windows NT 5.01', 'Windows NT 5.0', 'Windows NT 4.0', 'Windows 98; Win 9x 4.90', 'Windows 98',
+ 'Windows 95', 'Windows CE'
+ );
/**
* Possible processors on Linux
@@ -104,7 +108,7 @@ class UserAgent extends \Faker\Provider\Base
} else {
$ver = mt_rand(4, 5) . '.0.' . mt_rand(1, 5);
}
-
+
$mobileDevices = array(
'iPhone; CPU iPhone OS',
'iPad; CPU OS'
@@ -118,7 +122,6 @@ class UserAgent extends \Faker\Provider\Base
return "Mozilla/5.0 " . static::randomElement($platforms);
}
-
/**
* Generate Opera user agent
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php b/vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php
index 7240dfc5..ae5fc86d 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php
@@ -2,7 +2,7 @@
namespace Faker\Provider;
-class Uuid extends \Faker\Provider\Base
+class Uuid extends Base
{
/**
* Generate name based md5 UUID (version 3).
@@ -10,7 +10,8 @@ class Uuid extends \Faker\Provider\Base
*/
public static function uuid()
{
- // fix for compatibility with 32bit architecture; seed range restricted to 62bit
+ // fix for compatibility with 32bit architecture; each mt_rand call is restricted to 32bit
+ // two such calls will cause 64bits of randomness regardless of architecture
$seed = mt_rand(0, 2147483647) . '#' . mt_rand(0, 2147483647);
// Hash the seed and convert to a byte array
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php
index fc10726a..34a1e17b 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php
@@ -45,7 +45,7 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
}
/**
@@ -58,6 +58,6 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php
index dbdbdddc..1d161387 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php
@@ -4,61 +4,9 @@ namespace Faker\Provider\ar_JO;
class Text extends \Faker\Provider\Text
{
-
- /**
- * generates text string in arabic
- *
- * @example ' ولا النوم ولا القرار وكان يقال: لا يجد المريض لذة الطعام والشراب'
- * @param integer $maxNbChars
- * @param integer $indexSize
- * @return string
- * @throws \InvalidArgumentException
- */
- public function realText($maxNbChars = 200, $indexSize = 2)
+ protected static function validStart($word)
{
- if ($maxNbChars < 10) {
- throw new \InvalidArgumentException('maxNbChars must be at least 10');
- }
-
- if ($indexSize < 1) {
- throw new \InvalidArgumentException('indexSize must be at least 1');
- }
-
- if ($indexSize > 5) {
- throw new \InvalidArgumentException('indexSize must be at most 5');
- }
-
- $words = $this->getConsecutiveWords($indexSize);
- $result = array();
- $resultLength = 0;
- // take a random starting point
- $next = static::randomKey($words);
- while ($resultLength < $maxNbChars && isset($words[$next])) {
- // fetch a random word to append
- $word = static::randomElement($words[$next]);
-
- // calculate next index
- $currentWords = explode(' ', $next);
-
- $currentWords[] = $word;
- array_shift($currentWords);
- $next = implode(' ', $currentWords);
-
- if ($resultLength == 0 && !preg_match('/^\p{Arabic}/u', $word)) {
- continue;
- }
- // append the element
- $result[] = $word;
- $resultLength += strlen($word) + 1;
- }
-
- // remove the element that caused the text to overflow
- array_pop($result);
-
- // build result
- $result = implode(' ', $result);
-
- return $result.'.';
+ return preg_match('/^\p{Arabic}/u', $word);
}
/**
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php
new file mode 100644
index 00000000..408ab901
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php
@@ -0,0 +1,146 @@
+generator->parse($format));
+ }
+
+ /**
+ * @example 'wewebit.jo'
+ */
+ public function domainName()
+ {
+ return static::randomElement(static::$lastNameAscii) . '.' . $this->tld();
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php
new file mode 100644
index 00000000..d69b5d62
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php
@@ -0,0 +1,19 @@
+generator->boolean() ? static::GENDER_MALE : static::GENDER_FEMALE;
+ }
+
+ $startTimestamp = strtotime("-${maxAge} year");
+ $endTimestamp = strtotime("-${minAge} year");
+ $randTimestamp = static::numberBetween($startTimestamp, $endTimestamp);
+
+ $year = intval(date('Y', $randTimestamp));
+ $month = intval(date('n', $randTimestamp));
+ $day = intval(date('j', $randTimestamp));
+ $suffix = static::numberBetween(0, 999);
+
+ // women has +50 to month
+ if ($gender == static::GENDER_FEMALE) {
+ $month += 50;
+ }
+ // from year 2004 everyone has +20 to month when birth numbers in one day are exhausted
+ if ($year >= 2004 && $this->generator->boolean(10)) {
+ $month += 20;
+ }
+
+ $birthNumber = sprintf('%02d%02d%02d%03d', $year % 100, $month, $day, $suffix);
+
+ // from year 1954 birth number includes CRC
+ if ($year >= 1954) {
+ $crc = intval($birthNumber, 10) % 11;
+ if ($crc == 10) {
+ $crc = 0;
+ }
+ $birthNumber .= sprintf('%d', $crc);
+ }
+
+ // add slash
+ if ($this->generator->boolean($slashProbability)) {
+ $birthNumber = substr($birthNumber, 0, 6) . '/' . substr($birthNumber, 6);
+ }
+
+ return $birthNumber;
+ }
+
+ public static function birthNumberMale()
+ {
+ return static::birthNumber(static::GENDER_MALE);
+ }
+
+ public static function birthNumberFemale()
+ {
+ return static::birthNumber(static::GENDER_FEMALE);
+ }
+
public function title($gender = null)
{
return static::titleMale();
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php
index 90495df9..49ab429e 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php
@@ -5,10 +5,10 @@ namespace Faker\Provider\cs_CZ;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
- '+420 ### ### ###',
- '### ### ###',
- '00420#########',
- '+420#########',
- '#########',
+ '+420 %## ### ###',
+ '%## ### ###',
+ '00420%########',
+ '+420%########',
+ '%########',
);
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php
index 22bcf125..4a2272ca 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php
@@ -4,7 +4,7 @@ namespace Faker\Provider\de_AT;
class Address extends \Faker\Provider\Address
{
- protected static $buildingNumber = array('###', '##', '#');
+ protected static $buildingNumber = array('###', '##', '#', '##[abc]', '#[abc]');
protected static $streetSuffixLong = array(
'Gasse', 'Platz', 'Ring', 'Straße', 'Weg',
@@ -13,7 +13,18 @@ class Address extends \Faker\Provider\Address
'gasse', 'platz', 'ring', 'straße', 'weg',
);
- protected static $postcode = array('####');
+ // As per https://en.wikipedia.org/wiki/List_of_postal_codes_in_Austria (@todo implement more strict postal code values according to wikipedia)
+ protected static $postcode = array(
+ '1###',
+ '2###',
+ '3###',
+ '4###',
+ '5###',
+ '6###',
+ '7###',
+ '8###',
+ '9###',
+ );
protected static $cityNames = array(
'Allentsteig', 'Altheim', 'Althofen', 'Amstetten', 'Ansfelden', 'Attnang-Puchheim',
@@ -40,6 +51,10 @@ class Address extends \Faker\Provider\Address
'Zell am See', 'Zeltweg', 'Zistersdorf', 'Zwettl',
);
+ protected static $state = array(
+ 'Burgenland', 'Kärnten', 'Niederösterreich', 'Oberösterreich', 'Salzburg', 'Steiermark', 'Tirol', 'Vorarlberg', 'Wien'
+ );
+
protected static $country = array(
'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äußeres Ozeanien',
'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi',
@@ -96,4 +111,17 @@ class Address extends \Faker\Provider\Address
{
return static::randomElement(static::$streetSuffixLong);
}
+
+ /**
+ * @example 'Wien'
+ */
+ public static function state()
+ {
+ return static::randomElement(static::$state);
+ }
+
+ public static function buildingNumber()
+ {
+ return static::regexify(self::numerify(static::randomElement(static::$buildingNumber)));
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php
index be26cedf..6901e538 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php
@@ -24,81 +24,85 @@ class Person extends \Faker\Provider\Person
'{{titleFemale}} {{firstNameFemale}} {{lastName}} {{suffix}}',
);
+ /**
+ * 60 most popular names in 1985, 1995, 2005 and 2015
+ * {@link} http://www.statistik.at/wcm/idc/idcplg?IdcService=GET_PDF_FILE&RevisionSelectionMethod=LatestReleased&dDocName=021130
+ **/
protected static $firstNameMale = array(
- 'Abel', 'Abraham', 'Adalbero', 'Adam', 'Adamo', 'Adolfo', 'Adrian', 'Adriano', 'Adrianus', 'Adrien', 'Alain', 'Alajos', 'Alan', 'Albain', 'Alban', 'Albano', 'Alberto', 'Albin', 'Alec', 'Alejandro', 'Alessandro', 'Alessio', 'Alex', 'Alexander', 'Alexandre', 'Alexandros', 'Alexej', 'Alexis', 'Alfons', 'Alfonso', 'Aljoscha', 'Allan', 'Allen', 'Alois', 'Alon', 'Alonzo', 'Alphonse', 'Alwin', 'Amadeo', 'Amadeus', 'Amandus', 'Amos', 'Anatol', 'Anatole', 'Anatolij', 'Anders', 'Andi', 'Andor', 'Andre', 'Andreas', 'Andrej', 'Andrew', 'Andrijan', 'Andy', 'Angelus', 'Ansgar', 'Anthony', 'Antoine', 'Anton', 'Antonio', 'Araldo', 'Aram', 'Argus', 'Arjan', 'Armin', 'Arminio', 'Arnaldo', 'Arnault', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arrigo', 'Art', 'Arthur', 'Artur', 'Arturo', 'August', 'Auguste', 'Augustin', 'Aurelius', 'Axel',
- 'Balduin', 'Balthasar', 'Bardo', 'Barnabas', 'Barnard', 'Barney', 'Baruch', 'Basil', 'Basilius', 'Bastian', 'Bastien', 'Battista', 'Beatus', 'Beltrame', 'Beltran', 'Ben', 'Benedetto', 'Benedict', 'Benedikt', 'Bengt', 'Beniamino', 'Benignus', 'Benito', 'Benjamin', 'Benjy', 'Bennett', 'Benno', 'Benny', 'Benoit', 'Beppe', 'Bernard', 'Bernardo', 'Bernd', 'Bernhard', 'Bernie', 'Bert', 'Berthold', 'Bertoldo', 'Bertram', 'Bertrame', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bob', 'Bobby', 'Bodo', 'Bonifatius', 'Boris', 'Bosco', 'Brendan', 'Brian', 'Bruno', 'Bryan', 'Burkhard',
- 'Camillo', 'Camilo', 'Carl', 'Carlo', 'Carlos', 'Carol', 'Carsten', 'Cäsar', 'Casimir', 'Caspar', 'Cecil', 'Ceddric', 'Cedric', 'Celestino', 'Charles', 'Charlie', 'Chico', 'Chip', 'Chris', 'Christian', 'Christoph', 'Christophe', 'Christopher', 'Christy', 'Chuck', 'Cian', 'Cillian', 'Clarence', 'Clark', 'Clas', 'Claude', 'Claudio', 'Claudius', 'Claus', 'Clayton', 'Clemens', 'Cliff', 'Clifford', 'Clint', 'Clinton', 'Cody', 'Colin', 'Collin', 'Conan', 'Connor', 'Conny', 'Conor', 'Conrad', 'Constantine', 'Cooper', 'Cordell', 'Cornelius', 'Corvinus', 'Cristobal', 'Curd', 'Curt', 'Curtis', 'Curtiz', 'Cyril', 'Cyrill',
- 'Damian', 'Damon', 'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Dario', 'Darius', 'Dave', 'David', 'Davide', 'Dawson', 'Dean', 'Demetrius', 'Denis', 'Deniz', 'Dennis', 'Derek', 'Desiderius', 'Detlef', 'Detlev', 'Dick', 'Diego', 'Dieter', 'Dimitrij', 'Dirk', 'Dolf', 'Domenico', 'Domingo', 'Dominic', 'Dominik', 'Dominikus', 'Dominique', 'Donald', 'Donatello', 'Donato', 'Donatus', 'Dorian', 'Douglas', 'Dragan', 'Duarte', 'Duncan', 'Dylan',
- 'Earnest', 'Earvin', 'Eike', 'Eleasar', 'Elia', 'Elian', 'Elias', 'Elijah', 'Ellison', 'Elmar', 'Elroy', 'Emanuel', 'Emanuele', 'Emil', 'Emile', 'Emilian', 'Emiliano', 'Emilio', 'Emmanuel', 'Endrik', 'Enrico', 'Enrique', 'Enzo', 'Ephraim', 'Erasmus', 'Eric', 'Erik', 'Ermanno', 'Ernest', 'Ernestin', 'Ernesto', 'Eros', 'Errol', 'Etienne', 'Eugen', 'Eugene', 'Eugenio', 'Eusebius', 'Everett', 'Ezra',
- 'Fabiano', 'Fabien', 'Fabio', 'Fabius', 'Fabrice', 'Fabricius', 'Fabrizio', 'Falco', 'Falk', 'Falko', 'Faruk', 'Faustus', 'Favian', 'Federico', 'Federigo', 'Fedor', 'Felice', 'Feliciano', 'Felicien', 'Felipe', 'Felix', 'Felton', 'Feodor', 'Ferdinand', 'Fergus', 'Fernand', 'Fernando', 'Ferrante', 'Ferris', 'Fidel', 'Fidelio', 'Fidelis', 'Fidelius', 'Filippo', 'Finan', 'Finn', 'Fiore', 'Fjodor', 'Flavian', 'Flemming', 'Fletcher', 'Flint', 'Florens', 'Florentin', 'Florian', 'Florin', 'Florus', 'Floyd', 'Forrest', 'Forrester', 'Forster', 'Foster', 'Fox', 'Francesco', 'Francis', 'Francisco', 'Franco', 'Francois', 'Franek', 'Frank', 'Frankie', 'Franklin', 'Franziskus', 'Frasier', 'Frayne', 'Fred', 'Freddy', 'Frederic', 'Frederick', 'Frederik', 'Freeman', 'Fremont', 'Fridericus', 'Fridolin', 'Friedel', 'Frye',
- 'Gabriel', 'Gaetan', 'Gaetano', 'Gallus', 'Garcia', 'Garfield', 'Garin', 'Garnier', 'Garrick', 'Garrison', 'Garron', 'Garry', 'Garson', 'Gaspar', 'Gaspard', 'Gaspare', 'Gaston', 'Gastonne', 'Gates', 'Gauthier', 'Gavin', 'Gene', 'Geoffrey', 'Geoffroy', 'Geordi', 'Georg', 'George', 'Georges', 'Gerald', 'Geraldo', 'Gerard', 'Geraud', 'Gerd', 'Gereon', 'Germain', 'German', 'Germano', 'Gernot', 'Gerold', 'Geronimo', 'Gerrit', 'Gerry', 'Gert', 'Gerulf', 'Gerwin', 'Giacomo', 'Gian', 'Giancarlo', 'Gianni', 'Gibson', 'Gideon', 'Gil', 'Gilbert', 'Gilberto', 'Gilles', 'Gillian', 'Gino', 'Gioacchino', 'Giorgio', 'Giovanni', 'Giraldo', 'Gisbert', 'Gitano', 'Giuliano', 'Giulio', 'Giuseppe', 'Giusto', 'Glen', 'Glenn', 'Goliath', 'Goran', 'Gordon', 'Gordy', 'Goswin', 'Götz', 'Graciano', 'Graham', 'Grayson', 'Greg', 'Gregg', 'Gregoire', 'Gregor', 'Gregory', 'Griffin', 'Grover', 'Gualtier', 'Gualtiero', 'Guglielmo', 'Guido', 'Guillaume', 'Guillermo', 'Gunnar', 'Gunter', 'Günter', 'Gunther', 'Günther', 'Gus', 'Gustavo', 'Gustl', 'Gutierre', 'Guy',
- 'Hajo', 'Hamilton', 'Hamlet', 'Hampton', 'Hanley', 'Hannes', 'Hans', 'Harald', 'Hardy', 'Harley', 'Harlow', 'Harold', 'Haroun', 'Harrison', 'Harry', 'Harvey', 'Hasso', 'Hauke', 'Havel', 'Hector', 'Heiko', 'Heiner', 'Heino', 'Hektor', 'Helge', 'Helmut', 'Helmuth', 'Hendrick', 'Hendrik', 'Hennes', 'Henning', 'Henri', 'Henrick', 'Henrik', 'Henry', 'Herald', 'Herbie', 'Hercules', 'Herold', 'Herwig', 'Hieronymus', 'Hilarius', 'Holger', 'Holm', 'Homer', 'Horace', 'Horatio', 'Horaz', 'Howard', 'Howie', 'Hugh', 'Hugo', 'Humphrey', 'Hunter',
- 'Ignatius', 'Ignaz', 'Ignazio', 'Igor', 'Ilian', 'Ilja', 'Immanuel', 'Ingo', 'Ingolf', 'Ingvar', 'Irenäus', 'Irvin', 'Irving', 'Irwin', 'Isaac', 'Isaak', 'Isai', 'Isaiah', 'Isidor', 'Istvan', 'Ivan', 'Ivo',
- 'Jackson', 'Jacky', 'Jacob', 'Jacques', 'Jacquin', 'Jadon', 'Jago', 'Jaime', 'Jake', 'Jakob', 'Jamal', 'James', 'Jan', 'Janis', 'Jannes', 'Jannik', 'Janning', 'Janos', 'Janosch', 'Jaques', 'Jared', 'Jarik', 'Jarl', 'Jarno', 'Jaro', 'Jaromir', 'Jarrett', 'Jascha', 'Jason', 'Jasper', 'Jay', 'Jean', 'Jeff', 'Jefferson', 'Jeffrey', 'Jendrick', 'Jens', 'Jered', 'Jeremiah', 'Jeremias', 'Jeremie', 'Jeremy', 'Jerold', 'Jerom', 'Jerome', 'Jerrick', 'Jerry', 'Jesaja', 'Jesko', 'Jesse', 'Jim', 'Jimmy', 'Jirko', 'Jo', 'Joakim', 'Joao', 'Joaquin', 'Joe', 'Joel', 'Joey', 'John', 'Johnny', 'Jokim', 'Jonah', 'Jonas', 'Jonathan', 'Jonny', 'Jordan', 'Jordano', 'Jörg', 'Jorge', 'Jose', 'Josef', 'Joseph', 'Josh', 'Joshua', 'Josias', 'Jost', 'Josua', 'Josue', 'Jourdain', 'Juan', 'Juanito', 'Jud', 'Jules', 'Julien', 'Julio', 'Julius', 'Jürgen', 'Jurij', 'Justin', 'Justinian', 'Justus',
- 'Kain', 'Kaj', 'Kajetan', 'Kallistus', 'Karsten', 'Kasimir', 'Kaspar', 'Keamon', 'Keith', 'Ken', 'Kenan', 'Kenneth', 'Keno', 'Kersten', 'Kerwin', 'Kevin', 'Kian', 'Kilian', 'Kim', 'Kiran', 'Klaas', 'Klaus', 'Klemens', 'Kleopas', 'Knud', 'Knut', 'Kolja', 'Konrad', 'Konstantin', 'Korbin', 'Korbinian', 'Kordt', 'Kristian', 'Kristof', 'Kristoffer', 'Kuno', 'Kurt', 'Kyros', 'Lajos',
- 'Lambert', 'Lamberto', 'Larry', 'Lars', 'Laslo', 'Lasse', 'Laurent', 'Laurente', 'Laurentius', 'Laurenz', 'Laurenzo', 'Lawrence', 'Lazarus', 'Lazlo', 'Leander', 'Lee', 'Leif', 'Leigh', 'Lennart', 'Lenny', 'Lenz', 'Leo', 'Leon', 'Leonard', 'Leonardo', 'Leonce', 'Leone', 'Leonello', 'Leonhard', 'Leopold', 'Leopoldo', 'Leroy', 'Lesley', 'Lester', 'Leverett', 'Levi', 'Lew', 'Lewis', 'Lex', 'Liborius', 'Lienhard', 'Linus', 'Lion', 'Lionel', 'LLoyd', 'Lobo', 'Loic', 'Lorenz', 'Lorenzo', 'Loris', 'Lothaire', 'Lou', 'Louie', 'Louis', 'Lovis', 'Luc', 'Luca', 'Lucan', 'Lucas', 'Luciano', 'Lucien', 'Lucius', 'Ludovico', 'Ludwig', 'Luigi', 'Luis', 'Lukas', 'Luke', 'Lutger', 'Luther', 'Lutz', 'Lyonel',
- 'Maik', 'Malte', 'Malwin', 'Manolito', 'Manolo', 'Manuel', 'Marc', 'Marcel', 'Marcello', 'Marcellus', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marin', 'Marino', 'Marinus', 'Mario', 'Marius', 'Mark', 'Markus', 'Marlon', 'Maro', 'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mathieu', 'Mathis', 'Matt', 'Matteo', 'Matthäus', 'Matthes', 'Matthew', 'Matthias', 'Matthieu', 'Maurice', 'Mauritius', 'Mauritz', 'Maurizio', 'Mauro', 'Maurus', 'Max', 'Maxence', 'Maxi', 'Maxime', 'Maximilian', 'Maximilien', 'Melchior', 'Merlin', 'Michael', 'Michail', 'Michel', 'Michele', 'Mick', 'Mickey', 'Miguel', 'Mika', 'Mikael', 'Mike', 'Mikel', 'Miklos', 'Milan', 'Milo', 'Mirko', 'Miro', 'Miroslav', 'Mischa', 'Mitja', 'Morgan', 'Moritz', 'Morris', 'Morten',
- 'Nat', 'Nathan', 'Nathanael', 'Nathaniel', 'Nepomuk', 'Nero', 'Neron', 'Newton', 'Niccolo', 'Nicholas', 'Nick', 'Nicki', 'Nico', 'Nicola', 'Nicolai', 'Nicolaj', 'Nicolas', 'Niels', 'Nigel', 'Nikita', 'Niklas', 'Niklaus', 'Niko', 'Nikodemus', 'Nikolai', 'Nikolaus', 'Nils', 'Noah', 'Noel', 'Norbert', 'Norberto', 'Norman',
- 'Odin', 'Odo', 'Odysseus', 'Olaf', 'Oleg', 'Oliver', 'Olivier', 'Oliviero', 'Olof', 'Oluf', 'Omar', 'Omer', 'Orlando', 'Orson', 'Oskar', 'Osvaldo', 'Oswin', 'Otello', 'Othello', 'Otto', 'Ove', 'Owain', 'Owen',
- 'Paco', 'Paddy', 'Palmiro', 'Pancho', 'Paolo', 'Pascal', 'Pat', 'Patrice', 'Patricio', 'Patricius', 'Patrick', 'Patrizio', 'Patrizius', 'Paul', 'Paulin', 'Paulus', 'Pawel', 'Pedro', 'Peer', 'Pepe', 'Pepito', 'Peppone', 'Per', 'Percy', 'Perez', 'Pete', 'Peter', 'Phil', 'Philip', 'Philipp', 'Philippe', 'Philo', 'Piedro', 'Pier', 'Piero', 'Pierre', 'Piet', 'Pieter', 'Pietro', 'Pinkus', 'Pippin', 'Pitt', 'Pius', 'Placide', 'Placido', 'Placidus', 'Poldi',
- 'Quint', 'Quintin', 'Quintinus', 'Quintus', 'Quirin', 'Quirino',
- 'Raffaele', 'Raffaello', 'Raffaelo', 'Raimondo', 'Raimund', 'Raimundo', 'Rainer', 'Rainier', 'Ralf', 'Ralph', 'Ramon', 'Randolf', 'Randolph', 'Randy', 'Raoul', 'Raphael', 'Rasmus', 'Rasul', 'Raul', 'Ray', 'Raymond', 'Regnier', 'Reik', 'Reiner', 'Remo', 'Renato', 'Renatus', 'Renaud', 'Rene', 'Renja', 'Reto', 'Reynold', 'Ricardo', 'Riccardo', 'Rick', 'Ricky', 'Rico', 'Rinaldo', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rock', 'Rocky', 'Rod', 'Rodolfo', 'Rodolphe', 'Rodrigo', 'Rodrigue', 'Rodrique', 'Roger', 'Roland', 'Rolando', 'Rolf', 'Romain', 'Roman', 'Romano', 'Romeo', 'Romero', 'Ronald', 'Ronan', 'Ronny', 'Rory', 'Ross', 'Rowan', 'Rowland', 'Roy', 'Ruben', 'Rudolf', 'Rudolph', 'Ruggero', 'Rupert', 'Ryan',
- 'Salomon', 'Salomone', 'Salvador', 'Salvator', 'Salvatore', 'Sam', 'Sammy', 'Samuel', 'Samuele', 'Sander', 'Sandor', 'Sandro', 'Sandy', 'Sascha', 'Sauveur', 'Schorsch', 'Scipio', 'Scott', 'Sean', 'Sebastian', 'Sebastiano', 'Sebastien', 'Selim', 'Semjon', 'Sepp', 'Serenus', 'Serge', 'Sergej', 'Sergio', 'Sergius', 'Servatius', 'Severiano', 'Severin', 'Severo', 'Sidney', 'Sidonius', 'Silas', 'Silvain', 'Silvan', 'Silvano', 'Silvanus', 'Silverio', 'Silverius', 'Silvester', 'Silvestro', 'Silvio', 'Silvius', 'Simjon', 'Simon', 'Simone', 'Sinclair', 'Sixt', 'Sixtus', 'Slade', 'Solomon', 'Söncke', 'Sören', 'Spencer', 'Stan', 'Stanislaus', 'Stanislaw', 'Stanley', 'Stefan', 'Stefano', 'Steffen', 'Sten', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stewart', 'Stig', 'Stuart', 'Sven', 'Sylvain', 'Sylvester',
- 'Tam', 'Tarek', 'Tassilo', 'Tasso', 'Ted', 'Teddy', 'Teobaldo', 'Thaddäus', 'Theo', 'Theodor', 'Theodore', 'Thierry', 'Thimotheus', 'Thomas', 'Thommy', 'Thoralf', 'Thorben', 'Thore', 'Thorsten', 'Tiberio', 'Tiberius', 'Tibor', 'Till', 'Tim', 'Timmy', 'Timo', 'Timofej', 'Timon', 'Timoteo', 'Timothee', 'Timotheus', 'Timothy', 'Tin', 'Tito', 'Titus', 'Tizian', 'Tiziano', 'Tjade', 'Tjark', 'Tobi', 'Tobia', 'Tobiah', 'Tobias', 'Tobie', 'Tobis', 'Toby', 'Tom', 'Tommaso', 'Tommy', 'Toni', 'Tonio', 'Tony', 'Torben', 'Torin', 'Torsten', 'Tristan', 'Tycho', 'Tyler', 'Tyson',
- 'Udo', 'Ugo', 'Ugolino', 'Ulf', 'Uli', 'Ulli', 'Ulric', 'Ulrich', 'Ulrico', 'Umberto', 'Urbain', 'Urban', 'Urbano', 'Urias', 'Uriel', 'Ursus', 'Uwe',
- 'Valentiano', 'Valentin', 'Valentino', 'Valerian', 'Valerio', 'Valerius', 'Valery', 'Vasco', 'Veit', 'Veltin', 'Vernon', 'Vicente', 'Vico', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinzenez', 'Vinzenz', 'Virgil', 'Vitalis', 'Vito', 'Vittore', 'Vittoriano', 'Vittorio', 'Volker',
- 'Wallace', 'Walt', 'Warner', 'Warren', 'Wido', 'Wigand', 'Wilbur', 'Willi', 'William', 'Wilpert', 'Winston', 'Wolf', 'Wolfgang', 'Woodrow', 'Woody',
- 'Xaver',
+ 'Adrian', 'Alexander', 'Andreas', 'Anton',
+ 'Ben', 'Benedikt', 'Benjamin', 'Bernd', 'Bernhard',
+ 'Christian', 'Christoph', 'Christopher', 'Clemens',
+ 'Daniel', 'David', 'Dominik',
+ 'Elias', 'Emil', 'Erik',
+ 'Fabian', 'Fabio', 'Felix', 'Finn', 'Florian', 'Franz',
+ 'Gabriel', 'Georg', 'Gerald', 'Gerhard', 'Gernot', 'Gregor', 'Günther',
+ 'Hannes', 'Harald', 'Helmut', 'Herbert',
+ 'Jakob', 'Jan', 'Johann', 'Johannes', 'Jonas', 'Jonathan', 'Josef', 'Joseph', 'Julian', 'Justin', 'Jürgen',
+ 'Karl', 'Kevin', 'Kilian', 'Klaus', 'Konstantin',
+ 'Leo', 'Leon', 'Lorenz', 'Luca', 'Luis', 'Lukas',
+ 'Manfred', 'Manuel', 'Marc', 'Marcel', 'Marco', 'Mario', 'Markus', 'Martin', 'Marvin', 'Matteo', 'Matthias', 'Max', 'Maximilian', 'Michael', 'Moritz',
+ 'Nico', 'Nicolas', 'Niklas', 'Noah',
+ 'Oliver', 'Oskar',
+ 'Pascal', 'Patrick', 'Patrik', 'Paul', 'Peter', 'Philipp',
+ 'Ralph', 'Raphael', 'Reinhard', 'René', 'Richard', 'Robert', 'Roland', 'Roman',
+ 'Samuel', 'Sandro', 'Sascha', 'Sebastian', 'Simon', 'Stefan',
+ 'Theo', 'Theodor', 'Thomas', 'Tim', 'Tobias',
+ 'Valentin', 'Vincent',
+ 'Werner', 'Wolfgang',
);
+ /**
+ * 60 most popular names in 1985, 1995, 2005 and 2015
+ * {@link} http://www.statistik.at/wcm/idc/idcplg?IdcService=GET_PDF_FILE&RevisionSelectionMethod=LatestReleased&dDocName=021130
+ **/
protected static $firstNameFemale = array(
- 'Abby', 'Abelina', 'Abigail', 'Adelaide', 'Adeline', 'Adina', 'Adriana', 'Adrienne', 'Afra', 'Agatha', 'Agnes', 'Aida', 'Aimee', 'Aischa', 'Albertine', 'Alea', 'Aleksandra', 'Alena', 'Alessa', 'Alessandra', 'Alessia', 'Alexa', 'Alexandra', 'Alexia', 'Alexis', 'Alice', 'Alicia', 'Alida', 'Alina', 'Aline', 'Alisa', 'Alissa', 'Alisson', 'Amabella', 'Amadea', 'Amanda', 'Amelia', 'Amelie', 'Amina', 'Amy', 'Ana', 'Anastasia', 'Andrea', 'Andrina', 'Anette', 'Angela', 'Angelika', 'Angelina', 'Angelique', 'Anina', 'Anine', 'Anita', 'Anja', 'Anjalie', 'Anke', 'Ann', 'Anna', 'Annabel', 'Annabell', 'Annabella', 'Annabelle', 'Anne', 'Annett', 'Annette', 'Annika', 'Annina', 'Antje', 'Antoinette', 'Antonella', 'Antonia', 'Arabella', 'Ariadne', 'Ariana', 'Ariane', 'Arianna', 'Ariella', 'Arielle', 'Arlene', 'Arlette', 'Arwenna', 'Ashley', 'Asta', 'Astrid', 'Audrey', 'Aurelia',
- 'Barbara', 'Bärbel', 'Bastiane', 'Bea', 'Beata', 'Beatrice', 'Beatrix', 'Becky', 'Belinda', 'Bella', 'Bellana', 'Belle', 'Benedikta', 'Benita', 'Bente', 'Beppina', 'Berenike', 'Berit', 'Bernadett', 'Bernadette', 'Bernadine', 'Betina', 'Betsy', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Bibiana', 'Bibiane', 'Birgit', 'Birgitt', 'Bodil', 'Bridget', 'Brigitta', 'Brigitte', 'Britta',
- 'Caitlin', 'Cameron', 'Camilla', 'Camille', 'Cammy', 'Cara', 'Carin', 'Carina', 'Carinna', 'Carla', 'Carmela', 'Carmelia', 'Carmen', 'Carol', 'Carola', 'Carole', 'Carolin', 'Carolina', 'Caroline', 'Carolyn', 'Carolyne', 'Cassandra', 'Cassie', 'Catalin', 'Caterina', 'Catharina', 'Catherine', 'Cathrin', 'Cathrine', 'Cathy', 'Catina', 'Catrin', 'Catriona', 'Cecile', 'Cecilia', 'Cecilie', 'Celeste', 'Celestine', 'Celina', 'Celine', 'Chantal', 'Charleen', 'Charlotte', 'Chatrina', 'Chelsea', 'Chiara', 'Chloe', 'Chrissy', 'Christa', 'Christiana', 'Christiane', 'Christin', 'Christina', 'Christine', 'Chyna', 'Ciara', 'Cinderella', 'Cindy', 'Cinja', 'Cira', 'Claire', 'Clara', 'Clarissa', 'Claudette', 'Claudia', 'Claudine', 'Clea', 'Cleannis', 'Clementia', 'Clementine', 'Cleo', 'Clio', 'Cliona', 'Clodia', 'Cloris', 'Coletta', 'Colette', 'Connie', 'Conny', 'Constance', 'Constanze', 'Cora', 'Coral', 'Coralie', 'Cordelia', 'Cordula', 'Corin', 'Corina', 'Corinna', 'Corinne', 'Cornelia', 'Cosette', 'Cosima', 'Cynthia',
- 'Daisy', 'Dajana', 'Daliah', 'Damaris', 'Damia', 'Damiana', 'Dana', 'Dania', 'Danica', 'Daniela', 'Daniele', 'Daniella', 'Danielle', 'Danja', 'Daphne', 'Darcie', 'Daria', 'Darina', 'Dawn', 'Dayna', 'Debbie', 'Debby', 'Debora', 'Deborah', 'Deetya', 'Delia', 'Delphine', 'Dena', 'Denise', 'Desdemona', 'Desideria', 'Desiree', 'Diana', 'Diane', 'Didina', 'Dina', 'Dinah', 'Dolly', 'Dolores', 'Domenica', 'Dominika', 'Dominique', 'Donna', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit', 'Doro', 'Dorothea', 'Dorothee', 'Dorothy', 'Dunja',
- 'Ebony', 'Edda', 'Edita', 'Edvige', 'Edwina', 'Eike', 'Eila', 'Eileen', 'Ela', 'Elaine', 'Eleanor', 'Elektra', 'Elena', 'Eleonora', 'Eleonore', 'Eliane', 'Elisa', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen', 'Elly', 'Eloise', 'Elsa', 'Elsbeth', 'Elvira', 'Elvire', 'Emanuela', 'Emanuelle', 'Emilia', 'Emilie', 'Emily', 'Emma', 'Enrica', 'Enya', 'Erika', 'Erin', 'Ernesta', 'Ernestina', 'Ernestine', 'Esmerelda', 'Esra', 'Estella', 'Estelle', 'Ester', 'Esther', 'Etiennette', 'Eudoxia', 'Eugenia', 'Eunike', 'Euphemia', 'Euphrasia', 'Eusebia', 'Eva', 'Evangelina', 'Evania', 'Eve', 'Evelien', 'Evelin', 'Eveline', 'Evelyn', 'Evelyne', 'Evette', 'Evi', 'Evita',
- 'Fabiane', 'Fabienne', 'Fabiola', 'Faith', 'Fanny', 'Farrah', 'Fatima', 'Faustina', 'Faustine', 'Fay', 'Faye', 'Faylinn', 'Federica', 'Fedora', 'Fee', 'Feli', 'Felice', 'Felicia', 'Felicitas', 'Felicity', 'Felizitas', 'Feodora', 'Fergie', 'Fidelia', 'Filia', 'Filiz', 'Finetta', 'Finja', 'Fiona', 'Fjodora', 'Flavia', 'Fleur', 'Fleur', 'Flo', 'Flora', 'Florence', 'Florentina', 'Florentine', 'Floria', 'Floriane', 'Florida', 'Florinda', 'Floris', 'Fortuna', 'Frances', 'Francesca', 'Francisca', 'Franka', 'Franzi', 'Franziska', 'Frauke', 'Freya', 'Friederike',
- 'Gabriela', 'Gabriele', 'Gabriella', 'Gabrielle', 'Gaby', 'Gail', 'Galatea', 'Galina', 'Gazelle', 'Gela', 'Geneva', 'Genoveva', 'Georgette', 'Georgia', 'Georgina', 'Geraldene', 'Geraldine', 'Germain', 'Germaine', 'Germana', 'Ghita', 'Gianna', 'Gigi', 'Gill', 'Gillian', 'Gina', 'Ginevra', 'Ginger', 'Ginny', 'Giovanna', 'Gisela', 'Gisele', 'Gisella', 'Giselle', 'Gitta', 'Giulia', 'Giuliana', 'Giulietta', 'Giuseppa', 'Giuseppina', 'Giustina', 'Gladys', 'Gloria', 'Glory', 'Goldie', 'Goldy', 'Grace', 'Gratia', 'Gratiana', 'Grazia', 'Greta', 'Gretel', 'Gunda', 'Gwen', 'Gwenda', 'Gwendolin', 'Gwendolyn', 'Gypsy',
- 'Hannah', 'Hanne', 'Harmony', 'Harriet', 'Hazel', 'Hedi', 'Hedy', 'Heide', 'Heidi', 'Heike', 'Helen', 'Helena', 'Helene', 'Helin', 'Hella', 'Hemma', 'Henrietta', 'Henriette', 'Henrike', 'Hera', 'Hetty', 'Hilary', 'Hilda', 'Hilde', 'Holiday', 'Holli', 'Holly', 'Hope',
- 'Ilana', 'Ilaria', 'Iliana', 'Iljana', 'Ilka', 'Ilona', 'Ilse', 'Ilyssa', 'Imke', 'Ina', 'India', 'Indira', 'Indra', 'Ines', 'Inga', 'Inge', 'Ingrid', 'Inka', 'Inken', 'Innozentia', 'Iona', 'Ira', 'Irena', 'Irene', 'Irina', 'Iris', 'Irisa', 'Irma', 'Isabel', 'Isabell', 'Isabella', 'Isabelle', 'Isis', 'Iva', 'Ivana', 'Ivona', 'Ivonne',
- 'Jaclyn', 'Jacqueline', 'Jacqui', 'Jael', 'Jamari', 'Jan', 'Jana', 'Jane', 'Janet', 'Janette', 'Janin', 'Janina', 'Janine', 'Janique', 'Janna', 'Jannine', 'Jarla', 'Jasmin', 'Jasmina', 'Jasmine', 'Jeanette', 'Jeanine', 'Jeanne', 'Jeannette', 'Jeannine', 'Jekaterina', 'Jelena', 'Jenifer', 'Jenna', 'Jennelle', 'Jennessa', 'Jennie', 'Jennifer', 'Jenny', 'Jennyfer', 'Jess', 'Jessica', 'Jessie', 'Jessika', 'Jill', 'Joan', 'Joana', 'Joann', 'Joanna', 'Joelle', 'Johanna', 'Jolanda', 'Jona', 'Jordana', 'Jördis', 'Josee', 'Josefa', 'Josefina', 'Josefine', 'Josepha', 'Josephine', 'Josiane', 'Josie', 'Jovita', 'Joy', 'Joyce', 'Juana', 'Juanita', 'Judith', 'Judy', 'Julia', 'Juliana', 'Juliane', 'Julianne', 'Julie', 'Juliet', 'Juliette', 'July', 'June', 'Justina', 'Justine', 'Justise', 'Jutta',
- 'Kamilia', 'Kamilla', 'Karen', 'Karima', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kassandra', 'Katalin', 'Katarina', 'Kate', 'Katharina', 'Katharine', 'Käthe', 'Katherina', 'Katherine', 'Kathleen', 'Kathrin', 'Kathrina', 'Kathryn', 'Kathy', 'Katinka', 'Katja', 'Katjana', 'Katrin', 'Katrina', 'Katrine', 'Kayla', 'Keala', 'Keelin', 'Kendra', 'Kerstin', 'Kiana', 'Kiara', 'Kim', 'Kira', 'Kirsten', 'Kirstin', 'Kita', 'Klara', 'Klarissa', 'Klaudia', 'Kleopatra', 'Kolina', 'Konstanze', 'Kora', 'Kordula', 'Kori', 'Kornelia', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine', 'Kyra',
- 'Laila', 'Lana', 'Lara', 'Laria', 'Larissa', 'Lätizia', 'Laurel', 'Lauren', 'Laurence', 'Laurentia', 'Lauretta', 'Lavina', 'Laya', 'Lea', 'Leah', 'Leandra', 'Lee', 'Leigh', 'Leila', 'Lena', 'Leona', 'Leonie', 'Leontine', 'Leopoldine', 'Lesley', 'Leslie', 'Levana', 'Levia', 'Lia', 'Liane', 'Libusa', 'Licia', 'Lidia', 'Liesa', 'Liesbeth', 'Liese', 'Liesel', 'Lilian', 'Liliane', 'Lilith', 'Lilli', 'Lillian', 'Lilo', 'Lily', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Lise', 'Lisette', 'Liv', 'Livana', 'Livia', 'Liz', 'Liza', 'Lizzie', 'Lola', 'Lora', 'Lorena', 'Loretta', 'Lori', 'Lorraine', 'Lotte', 'Lotus', 'Louise', 'Luana', 'Luca', 'Lucia', 'Luciana', 'Lucie', 'Lucy', 'Luigia', 'Luisa', 'Luise', 'Luna', 'Luzia', 'Lydia', 'Lydie', 'Lynette', 'Lynn',
- 'Maddalena', 'Madelaine', 'Madeleine', 'Madeline', 'Madison', 'Madita', 'Madleine', 'Madlen', 'Madlene', 'Mae', 'Magda', 'Magdalena', 'Maggy', 'Magret', 'Maia', 'Maike', 'Maiken', 'Mailin', 'Maja', 'Malea', 'Malee', 'Malin', 'Malina', 'Mandy', 'Manja', 'Manon', 'Manuela', 'Mara', 'Maraike', 'Marcella', 'Marcelle', 'Marcia', 'Mareike', 'Maren', 'Margaret', 'Margareta', 'Margarete', 'Margaretha', 'Margarita', 'Margaritha', 'Margherita', 'Margit', 'Margitta', 'Margot', 'Margret', 'Margreth', 'Marguerite', 'Maria', 'Mariam', 'Marian', 'Mariana', 'Marianna', 'Marianne', 'Marie', 'Marieke', 'Mariella', 'Marielle', 'Marietta', 'Marija', 'Marika', 'Marilies', 'Marilyn', 'Marina', 'Marion', 'Marisa', 'Marissa', 'Marita', 'Maritta', 'Marjorie', 'Marla', 'Marleen', 'Marlen', 'Marlena', 'Marlene', 'Marlies', 'Marlis', 'Marsha', 'Martha', 'Marthe', 'Martina', 'Mary', 'Maryse', 'Mascha', 'Mathilda', 'Mathilde', 'Matilde', 'Mattea', 'Maude', 'Maura', 'Maureen', 'Maximiliane', 'May', 'Maya', 'Meg', 'Megan', 'Meike', 'Melanie', 'Melia', 'Melina', 'Melinda', 'Melissa', 'Melitta', 'Melodie', 'Meloney', 'Mercedes', 'Meret', 'Meri', 'Merle', 'Merline', 'Meryem', 'Mia', 'Micaela', 'Michaela', 'Michele', 'Michelle', 'Milena', 'Milla', 'Milva', 'Mimi', 'Minerva', 'Minna', 'Mira', 'Mirabella', 'Mireille', 'Mirella', 'Mireya', 'Miriam', 'Mirijam', 'Mirjam', 'Moesha', 'Moira', 'Mona', 'Moni', 'Monica', 'Monika', 'Monique', 'Monja', 'Morgane', 'Muriel', 'Myriam',
- 'Nadin', 'Nadine', 'Nadja', 'Nadjana', 'Naemi', 'Nancy', 'Nanette', 'Nani', 'Naomi', 'Nastasja', 'Natalia', 'Natalie', 'Natanja', 'Natascha', 'Nathalie', 'Neeja', 'Nena', 'Neria', 'Nerine', 'Nicol', 'Nicola', 'Nicole', 'Nicoletta', 'Nicolette', 'Nike', 'Nikola', 'Nina', 'Ninja', 'Ninon', 'Noa', 'Noelle', 'Noemi', 'Noemie', 'Nora', 'Norma', 'Nuala',
- 'Olga', 'Olivia', 'Ophelia', 'Orania', 'Orla', 'Ornella', 'Orsola', 'Ottilie',
- 'Paloma', 'Pam', 'Pamela', 'Pandora', 'Paola', 'Paolina', 'Pascale', 'Pat', 'Patrice', 'Patricia', 'Patrizia', 'Patsy', 'Patty', 'Paula', 'Paulette', 'Paulina', 'Pauline', 'Penelope', 'Pepita', 'Petra', 'Philine', 'Philippa', 'Philomele', 'Philomena', 'Phoebe', 'Phyllis', 'Pia', 'Pier', 'Prica', 'Prisca', 'Priscilla', 'Priscille', 'Priska',
- 'Rachel', 'Rachel', 'Rachelle', 'Radomila', 'Rafaela', 'Raffaela', 'Raffaella', 'Ragna', 'Rahel', 'Raja', 'Ramona', 'Raphaela', 'Raquel', 'Rebecca', 'Rebekka', 'Regina', 'Regine', 'Reisha', 'Renata', 'Renate', 'Renee', 'Resi', 'Rhea', 'Rhoda', 'Rhonda', 'Ricarda', 'Riccarda', 'Rike', 'Rita', 'Roberta', 'Romana', 'Romina', 'Romy', 'Ronja', 'Rosa', 'Rosalia', 'Rosalie', 'Rosalinda', 'Rosalinde', 'Rosaline', 'Rose', 'Roseline', 'Rosetta', 'Rosette', 'Rosi', 'Rosina', 'Rosine', 'Rossana', 'Roswitha', 'Roxana', 'Roxane', 'Roxanne', 'Roxy', 'Rubina', 'Ruth',
- 'Sabine', 'Sabrina', 'Sahra', 'Sally', 'Salome', 'Salvina', 'Samanta', 'Samantha', 'Samira', 'Sandra', 'Sandrina', 'Sandrine', 'Sandy', 'Sanne', 'Sanya', 'Saphira', 'Sara', 'Sarah', 'Sarina', 'Sascha', 'Saskia', 'Scarlet', 'Scarlett', 'Schirin', 'Selina', 'Selma', 'Serafina', 'Seraina', 'Seraphin', 'Seraphina', 'Seraphine', 'Serena', 'Severina', 'Severine', 'Shana', 'Shanaya', 'Shantala', 'Shari', 'Sharlene', 'Sharon', 'Sheena', 'Sheila', 'Sheryl', 'Shirin', 'Shirley', 'Shirlyn', 'Sibilla', 'Sibyl', 'Sibylle', 'Siegrid', 'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silvana', 'Silvia', 'Silviane', 'Simona', 'Simone', 'Simonette', 'Simonne', 'Sina', 'Sindy', 'Sinja', 'Sissy', 'Skyla', 'Smarula', 'Smilla', 'Sofia', 'Sofie', 'Sonia', 'Sonja', 'Sonnele', 'Sonya', 'Sophia', 'Sophie', 'Soraya', 'Stefanie', 'Steffi', 'Stella', 'Stephanie', 'Sumehra', 'Summer', 'Susan', 'Susanna', 'Susanne', 'Susi', 'Suzan', 'Suzanne', 'Suzette', 'Svea', 'Svenja', 'Swane', 'Sybilla', 'Sybille', 'Sydney', 'Sylvana', 'Sylvia', 'Sylvie',
- 'Tabitha', 'Taissa', 'Tamara', 'Tamina', 'Tania', 'Tanita', 'Tanja', 'Tara', 'Tatiana', 'Tatjana', 'Taya', 'Tecla', 'Telka', 'Teodora', 'Teona', 'Teresa', 'Terry', 'Tess', 'Tessa', 'Tessie', 'Thea', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese', 'Theresia', 'Tiana', 'Tiffany', 'Tilly', 'Timna', 'Tina', 'Tiziana', 'Tonja', 'Toril', 'Tosca', 'Tracey', 'Traudl', 'Trixi', 'Tycho', 'Tyra',
- 'Ulla', 'Ulli', 'Ulrica', 'Ulrike', 'Undine', 'Urania', 'Ursel', 'Ursina', 'Ursula', 'Ursule', 'Uschi', 'Uta', 'Ute',
- 'Valentina', 'Valentine', 'Valeria', 'Valerie', 'Valeska', 'Vanadis', 'Vanessa', 'Vanja', 'Varinka', 'Venetia', 'Vera', 'Verena', 'Verona', 'Veronica', 'Veronika', 'Veronique', 'Vesla', 'Vicky', 'Victoire', 'Victoria', 'Viki', 'Viktoria', 'Vilja', 'Viola', 'Violet', 'Violetta', 'Violette', 'Virginia', 'Virginie', 'Vittoria', 'Viviana', 'Viviane', 'Vivien', 'Vivienne', 'Vreneli', 'Vreni', 'Vroni',
- 'Wencke', 'Weneke', 'Wibke', 'Wilja', 'Willow', 'Wilma',
+ 'Alexandra', 'Alexandrea', 'Algelika', 'Alina', 'Amelie', 'Andrea', 'Angelina', 'Anita', 'Anja', 'Anna', 'Anna-Lena', 'Annika', 'Astrid',
+ 'Barbara', 'Bettina', 'Bianca', 'Birgit',
+ 'Carina', 'Caroline', 'Celina', 'Chiara', 'Christina', 'Christine', 'Clara', 'Claudia', 'Cornelia',
+ 'Daniela', 'Denise', 'Doris',
+ 'Elena', 'Elisa', 'Elisabeth', 'Ella', 'Emely', 'Emilia', 'Emily', 'Emma', 'Eva', 'Eva-Maria',
+ 'Franziska',
+ 'Hanna', 'Hannah', 'Helena',
+ 'Ines', 'Iris', 'Isabel', 'Isabella',
+ 'Jacqueline', 'Jacquline', 'Jana', 'Janine', 'Jasmin', 'Jennifer', 'Jessica', 'Johanna', 'Julia',
+ 'Karin', 'Katharina', 'Katrin', 'Kerstin',
+ 'Lara', 'Larissa', 'Laura', 'Lea', 'Lena', 'Leonie', 'Lilly', 'Lina', 'Lisa', 'Livia', 'Luisa',
+ 'Magdalena', 'Maja', 'Manuela', 'Maria', 'Marie', 'Marion', 'Marlene', 'Martina', 'Melanie', 'Melina', 'Mia', 'Michaela', 'Michelle', 'Miriam', 'Mona', 'Monika',
+ 'Nadine', 'Natalie', 'Nicole', 'Nina', 'Nora',
+ 'Patricia', 'Paula', 'Petra', 'Pia',
+ 'Rebecca', 'Rosa',
+ 'Sabine', 'Sabrina', 'Sandra', 'Sarah', 'Selina', 'Silvia', 'Simone', 'Sonja', 'Sophia', 'Sophie', 'Stefanie', 'Susanne',
+ 'Tamara', 'Tanja', 'Theresa',
+ 'Valentina', 'Valerie', 'Vanessa', 'Verena', 'Viktoria',
+ 'Yvonne',
);
+ /**
+ * Top 500 Names from a phone directory (February 2004)
+ * {@link} https://de.wiktionary.org/wiki/Verzeichnis:Deutsch/Liste_der_h%C3%A4ufigsten_Nachnamen_Deutschlands
+ **/
protected static $lastName = array(
- 'Ackermann', 'Adler', 'Adolph', 'Albers', 'Anders', 'Atzler', 'Aumann', 'Austermühle',
- 'Bachmann', 'Bähr', 'Bärer', 'Barkholz', 'Barth', 'Bauer', 'Baum', 'Becker', 'Beckmann', 'Beer', 'Beier', 'Bender', 'Benthin', 'Berger', 'Beyer', 'Bien', 'Biggen', 'Binner', 'Birnbaum', 'Bloch', 'Blümel', 'Bohlander', 'Bonbach', 'Bolander', 'Bolnbach', 'Bolzmann', 'Börner', 'Bohnbach', 'Boucsein', 'Briemer', 'Bruder', 'Buchholz', 'Budig', 'Butte',
- 'Carsten', 'Caspar', 'Christoph', 'Cichorius', 'Conradi',
- 'Davids', 'Dehmel', 'Dickhard', 'Dietz', 'Dippel', 'Ditschlerin', 'Dobes', 'Döhn', 'Döring', 'Dörr', 'Dörschner', 'Dowerg', 'Drewes', 'Drub', 'Drubin', 'Dussen van',
- 'Eberhardt', 'Ebert', 'Eberth', 'Eckbauer', 'Ehlert', 'Eigenwillig', 'Eimer', 'Ernst', 'Etzler', 'Etzold',
- 'Faust', 'Fechner', 'Fiebig', 'Finke', 'Fischer', 'Flantz', 'Fliegner', 'Förster', 'Franke', 'Freudenberger', 'Fritsch', 'Fröhlich',
- 'Gehringer', 'Geisel', 'Geisler', 'Geißler', 'Gerlach', 'Gertz', 'Gierschner', 'Gieß', 'Girschner', 'Gnatz', 'Gorlitz', 'Gotthard', 'Graf', 'Grein Groth', 'Gröttner', 'Gude', 'Gunpf', 'Gumprich', 'Gute', 'Gutknecht',
- 'Haase', 'Haering', 'Hänel', 'Häring', 'Hahn', 'Hamann', 'Hande', 'Harloff', 'Hartmann', 'Hartung', 'Hauffer', 'Hecker', 'Heidrich', 'Hein', 'Heinrich', 'Heintze', 'Heinz', 'Hellwig', 'Henck', 'Hendriks', 'Henk', 'Henschel', 'Hentschel', 'Hering', 'Hermann', 'Herrmann', 'Hermighausen', 'Hertrampf', 'Heser', 'Heß', 'Hesse', 'Hettner', 'Hethur', 'Heuser', 'Hiller', 'Heydrich', 'Höfig', 'Hofmann', 'Holsten', 'Holt', 'Holzapfel', 'Hölzenbecher', 'Hörle', 'Hövel', 'Hoffmann', 'Hornich', 'Hornig', 'Hübel', 'Huhn',
- 'Jacob', 'Jacobi Jäckel', 'Jähn', 'Jäkel', 'Jäntsch', 'Jessel', 'Jockel', 'Johann', 'Jopich', 'Junck', 'Juncken', 'Jungfer', 'Junitz', 'Junk', 'Junken', 'Jüttner',
- 'Kabus', 'Kade', 'Käster', 'Kallert', 'Kambs', 'Karge', 'Karz', 'Kaul', 'Kensy', 'Keudel', 'Killer', 'Kitzmann', 'Klapp', 'Klemm', 'Klemt', 'Klingelhöfer', 'Klotz', 'Knappe', 'Kobelt', 'Koch', 'Koch II', 'Köhler', 'Köster', 'Kohl', 'Kostolzin', 'Kramer', 'Kranz', 'Krause', 'Kraushaar', 'Krebs', 'Krein', 'Kreusel', 'Kroker', 'Kruschwitz', 'Kuhl', 'Kühnert', 'Kusch',
- 'Lachmann', 'Ladeck', 'Lange', 'Langern', 'Lehmann', 'Liebelt', 'Lindau', 'Lindner', 'Linke', 'Löchel', 'Löffler', 'Loos', 'Lorch', 'Losekann', 'Löwer', 'Lübs',
- 'Mälzer', 'Mangold', 'Mans', 'Margraf', 'Martin', 'Matthäi', 'Meister', 'Mende', 'Mentzel', 'Metz', 'Meyer', 'Mielcarek', 'Mies', 'Misicher', 'Mitschke', 'Mohaupt', 'Mosemann', 'Möchlichen', 'Mude', 'Mühle', 'Mülichen', 'Müller',
- 'Naser', 'Nerger', 'Nette', 'Neureuther', 'Neuschäfer', 'Niemeier', 'Noack', 'Nohlmans',
- 'Oderwald', 'Oestrovsky', 'Ortmann', 'Otto',
- 'Paffrath', 'Pärtzelt', 'Patberg', 'Pechel', 'Pergande', 'Peukert', 'Pieper', 'Plath', 'Pohl', 'Pölitz', 'Preiß', 'Pruschke', 'Putz',
- 'Rädel', 'Radisch', 'Reichmann', 'Reinhardt', 'Reising', 'Renner', 'Reuter', 'Riehl', 'Ring', 'Ritter', 'Rogge', 'Rogner', 'Rohleder', 'Röhrdanz', 'Röhricht', 'Roht', 'Römer', 'Rörricht', 'Rose', 'Rosemann', 'Rosenow', 'Roskoth', 'Rudolph', 'Ruppersberger', 'Ruppert', 'Rust',
- 'Sager', 'Salz', 'Säuberlich', 'Sauer', 'Schaaf', 'Schacht', 'Schäfer', 'Scheel', 'Scheibe', 'Schenk', 'Scheuermann', 'Schinke', 'Schleich', 'Schleich', 'auch Schlauchin', 'Schlosser', 'Schmidt', 'Schmidtke', 'Schmiedecke', 'Schmiedt', 'Schönland', 'Scholl', 'Scholtz', 'Scholz', 'Schomber', 'Schottin', 'Schuchhardt', 'Schüler', 'Schulz', 'Schuster', 'Schweitzer', 'Schwital', 'Segebahn', 'Seifert', 'Seidel', 'Seifert', 'Seip', 'Siering', 'Söding', 'Sölzer', 'Sontag', 'Sorgatz', 'Speer', 'Spieß', 'Stadelmann', 'Stahr', 'Staude', 'Steckel', 'Steinberg', 'Stey', 'Stiebitz', 'Stiffel', 'Stoll', 'Stolze', 'Striebitz', 'Stroh', 'Stumpf', 'Sucker', 'Süßebier',
- 'Täsche', 'Textor', 'Thanel', 'Thies', 'Tintzmann', 'Tlustek', 'Trapp', 'Trommler', 'Tröst', 'Trub', 'Trüb', 'Trubin', 'Trupp', 'Tschentscher',
- 'Ullmann', 'Ullrich',
- 'van der Dussen', 'Vogt', 'Vollbrecht',
- 'Wagenknecht', 'Wagner', 'Wähner', 'Walter', 'Warmer', 'Weihmann', 'Weimer', 'Weinhage', 'Weinhold', 'Weiß', 'Weitzel', 'Weller', 'Wende', 'Wernecke', 'Werner', 'Wesack', 'Wiek', 'Wieloch', 'Wilms', 'Wilmsen', 'Winkler', 'Wirth', 'Wohlgemut', 'Wulf', 'Wulff',
- 'Zahn', 'Zänker', 'Ziegert', 'Zimmer', 'Zirme', 'Zobel', 'Zorbach',
+ 'Abraham', 'Achleitner', 'Adam', 'Aichinger', 'Aigner', 'Albrecht', 'Altmann', 'Amann', 'Amon', 'Angerer', 'Arnold', 'Artner', 'Aschauer', 'Auer', 'Augustin', 'Auinger',
+ 'Bacher', 'Bachler', 'Bachmann', 'Bader', 'Baier', 'Barth', 'Bartl', 'Bauer', 'Baumann', 'Baumgartner', 'Bayer', 'Beck', 'Beer', 'Berger', 'Bergmann', 'Bernhard', 'Bichler', 'Binder', 'Bischof', 'Bock', 'Bogner', 'Brandl', 'Brandner', 'Brandstetter', 'Brandstätter', 'Braun', 'Brenner', 'Bruckner', 'Brugger', 'Brunner', 'Buchberger', 'Buchegger', 'Bucher', 'Buchinger', 'Buchner', 'Burger', 'Burgstaller', 'Burtscher', 'Böck', 'Böhm', 'Bösch',
+ 'Danner', 'Denk', 'Deutsch', 'Dietrich', 'Dobler', 'Doppler', 'Dorner', 'Draxler',
+ 'Eberharter', 'Eberl', 'Ebner', 'Ecker', 'Eder', 'Edlinger', 'Egger', 'Eibl', 'Eichberger', 'Eichinger', 'Eigner', 'Erhart', 'Ernst', 'Ertl',
+ 'Falkner', 'Fasching', 'Feichtinger', 'Fellner', 'Fiala', 'Fichtinger', 'Fiedler', 'Fink', 'Fischer', 'Fleischhacker', 'Forster', 'Forstner', 'Frank', 'Franz', 'Friedl', 'Friedrich', 'Fritsch', 'Fritz', 'Fröhlich', 'Frühwirth', 'Fuchs', 'Führer', 'Fürst',
+ 'Gabriel', 'Gangl', 'Gartner', 'Gasser', 'Gassner', 'Geiger', 'Geisler', 'Geyer', 'Glaser', 'Glatz', 'Gmeiner', 'Grabner', 'Graf', 'Gratzer', 'Greiner', 'Grill', 'Gritsch', 'Gross', 'Groß', 'Gruber', 'Grünwald', 'Gschwandtner', 'Gutmann',
+ 'Haas', 'Haberl', 'Hackl', 'Hafner', 'Hagen', 'Hager', 'Hahn', 'Haider', 'Haidinger', 'Haller', 'Hammer', 'Hammerl', 'Handl', 'Handler', 'Harrer', 'Hartl', 'Hartmann', 'Haslinger', 'Hauer', 'Hauser', 'Heindl', 'Heinrich', 'Hemetsberger', 'Herbst', 'Hermann', 'Herzog', 'Hinterberger', 'Hinteregger', 'Hinterleitner', 'Hirsch', 'Hochreiter', 'Hofbauer', 'Hofer', 'Hoffmann', 'Hofmann', 'Hofstätter', 'Holzer', 'Holzinger', 'Holzmann', 'Horvath', 'Huber', 'Huemer', 'Hufnagl', 'Humer', 'Hummer', 'Hutter', 'Hämmerle', 'Hödl', 'Höfler', 'Höller', 'Hölzl', 'Hörmann', 'Hütter',
+ 'Jahn', 'Jandl', 'Janisch', 'Jovanovic', 'Jung', 'Jungwirth', 'Jäger',
+ 'Kainz', 'Kaiser', 'Kaltenbrunner', 'Kapeller', 'Kargl', 'Karl', 'Karner', 'Kastner', 'Kaufmann', 'Kellner', 'Kern', 'Kerschbaumer', 'Kirchmair', 'Kirchner', 'Klammer', 'Klein', 'Klinger', 'Klug', 'Knapp', 'Knoll', 'Koch', 'Kofler', 'Kogler', 'Kohl', 'Koller', 'Kollmann', 'Konrad', 'Kopp', 'Kovacs', 'Kraft', 'Krainer', 'Kramer', 'Krammer', 'Kraus', 'Kremser', 'Krenn', 'Kreuzer', 'Kronberger', 'Kröll', 'Kugler', 'Kummer', 'Kurz', 'Köberl', 'Köck', 'Köhler', 'König',
+ 'Lackner', 'Lamprecht', 'Lang', 'Langer', 'Lechner', 'Lederer', 'Leeb', 'Lehner', 'Leitgeb', 'Leitner', 'Lengauer', 'Lenz', 'Lettner', 'Lindner', 'List', 'Loidl', 'Lorenz', 'Ludwig', 'Luger', 'Lukas', 'Lutz', 'Löffler',
+ 'Mader', 'Maier', 'Maierhofer', 'Mair', 'Mairhofer', 'Mandl', 'Markovic', 'Martin', 'Maurer', 'Mayer', 'Mayerhofer', 'Mayr', 'Mayrhofer', 'Meier', 'Meixner', 'Messner', 'Meyer', 'Mitterer', 'Moosbrugger', 'Moser', 'Muhr', 'Mühlbacher', 'Müller', 'Müllner',
+ 'Nagl', 'Nemeth', 'Neubauer', 'Neuhauser', 'Neuhold', 'Neumann', 'Neumayer', 'Neuner', 'Neuwirth', 'Nikolic', 'Novak', 'Nowak', 'Nussbaumer', 'Nußbaumer',
+ 'Ofner', 'Ortner', 'Oswald', 'Ott',
+ 'Paar', 'Pacher', 'Pammer', 'Paul', 'Payer', 'Peer', 'Penz', 'Peter', 'Petrovic', 'Petz', 'Pfeffer', 'Pfeifer', 'Pfeiffer', 'Pfister', 'Pfleger', 'Pichler', 'Pilz', 'Pinter', 'Pirker', 'Plank', 'Plattner', 'Platzer', 'Pointner', 'Pokorny', 'Pollak', 'Posch', 'Prem', 'Prinz', 'Probst', 'Pucher', 'Putz', 'Pöll', 'Pölzl', 'Pöschl', 'Pühringer',
+ 'Raab', 'Rabl', 'Rainer', 'Rath', 'Rauch', 'Rausch', 'Rauscher', 'Rauter', 'Rechberger', 'Redl', 'Reich', 'Reichl', 'Reindl', 'Reiner', 'Reinisch', 'Reischl', 'Reisinger', 'Reiter', 'Reiterer', 'Renner', 'Resch', 'Richter', 'Rieder', 'Riedl', 'Riedler', 'Rieger', 'Riegler', 'Rieser', 'Ritter', 'Rosenberger', 'Roth', 'Rupp',
+ 'Sailer', 'Sattler', 'Sauer', 'Schachinger', 'Schachner', 'Schaffer', 'Schaller', 'Scharf', 'Schatz', 'Schauer', 'Scheiber', 'Schenk', 'Scheucher', 'Schiefer', 'Schiller', 'Schindler', 'Schlager', 'Schlögl', 'Schmid', 'Schmidt', 'Schmied', 'Schnabl', 'Schneeberger', 'Schneider', 'Schober', 'Scholz', 'Schranz', 'Schreiber', 'Schreiner', 'Schubert', 'Schuh', 'Schuller', 'Schulz', 'Schuster', 'Schwab', 'Schwaiger', 'Schwaighofer', 'Schwarz', 'Schweiger', 'Schweighofer', 'Schön', 'Schöpf', 'Schütz', 'Seebacher', 'Seidl', 'Siegl', 'Simon', 'Singer', 'Sommer', 'Sonnleitner', 'Spitzer', 'Springer', 'Stadler', 'Stangl', 'Stark', 'Staudinger', 'Steger', 'Steinbauer', 'Steinberger', 'Steindl', 'Steiner', 'Steininger', 'Steinkellner', 'Steinlechner', 'Steinwender', 'Stelzer', 'Stern', 'Steurer', 'Stocker', 'Stockinger', 'Strasser', 'Strauss', 'Strauß', 'Strobl', 'Stummer', 'Sturm', 'Stöckl', 'Stöger', 'Suppan', 'Swoboda', 'Szabo',
+ 'Thaler', 'Thaller', 'Thurner', 'Tischler', 'Toth', 'Traxler', 'Trimmel', 'Trummer',
+ 'Ulrich', 'Unger', 'Unterberger', 'Unterweger', 'Urban',
+ 'Varga', 'Vogel', 'Vogl',
+ 'Wachter', 'Wagner', 'Walch', 'Walcher', 'Wallner', 'Walter', 'Weber', 'Wechselberger', 'Wegscheider', 'Weidinger', 'Weigl', 'Weinberger', 'Weiss', 'Weiß', 'Weninger', 'Werner', 'Wieland', 'Wieser', 'Wiesinger', 'Wild', 'Wilhelm', 'Wimmer', 'Windisch', 'Winkler', 'Winter', 'Wirth', 'Wittmann', 'Wolf', 'Wurm', 'Wurzer',
+ 'Zach', 'Zangerl', 'Zauner', 'Zechner', 'Zehetner', 'Zeilinger', 'Zeller', 'Zenz', 'Ziegler', 'Zimmermann', 'Zöhrer',
);
protected static $titleMale = array('Herr', 'Dr.', 'Mag.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php
new file mode 100644
index 00000000..2efd43f3
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php
@@ -0,0 +1,7 @@
+ 'Aargau'),
+ array('AI' => 'Appenzell Innerrhoden'),
+ array('AR' => 'Appenzell Ausserrhoden'),
+ array('BE' => 'Bern'),
+ array('BL' => 'Basel-Landschaft'),
+ array('BS' => 'Basel-Stadt'),
+ array('FR' => 'Freiburg'),
+ array('GE' => 'Genf'),
+ array('GL' => 'Glarus'),
+ array('GR' => 'Graubünden'),
+ array('JU' => 'Jura',),
+ array('LU' => 'Luzern'),
+ array('NE' => 'Neuenburg'),
+ array('NW' => 'Nidwalden'),
+ array('OW' => 'Obwalden'),
+ array('SG' => 'St. Gallen'),
+ array('SH' => 'Schaffhausen'),
+ array('SO' => 'Solothurn'),
+ array('SZ' => 'Schwyz'),
+ array('TG' => 'Thurgau'),
+ array('TI' => 'Tessin'),
+ array('UR' => 'Uri'),
+ array('VD' => 'Waadt'),
+ array('VS' => 'Wallis'),
+ array('ZG' => 'Zug'),
+ array('ZH' => 'Zürich')
+ );
+
+ protected static $country = array(
+ 'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äusseres Ozeanien',
+ 'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi',
+ 'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte d’Ivoire',
+ 'Demokratische Republik Kongo', 'Demokratische Volksrepublik Korea', 'Deutschland', 'Dominica', 'Dominikanische Republik', 'Dschibuti', 'Dänemark',
+ 'Ecuador', 'El Salvador', 'Eritrea', 'Estland', 'Europäische Union',
+ 'Falklandinseln', 'Fidschi', 'Finnland', 'Frankreich', 'Französisch-Guayana', 'Französisch-Polynesien', 'Französische Süd- und Antarktisgebiete', 'Färöer',
+ 'Gabun', 'Gambia', 'Georgien', 'Ghana', 'Gibraltar', 'Grenada', 'Griechenland', 'Grönland', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
+ 'Haiti', 'Heard- und McDonald-Inseln', 'Honduras',
+ 'Indien', 'Indonesien', 'Irak', 'Iran', 'Irland', 'Island', 'Isle of Man', 'Israel', 'Italien',
+ 'Jamaika', 'Japan', 'Jemen', 'Jersey', 'Jordanien',
+ 'Kaimaninseln', 'Kambodscha', 'Kamerun', 'Kanada', 'Kap Verde', 'Kasachstan', 'Katar', 'Kenia', 'Kirgisistan', 'Kiribati', 'Kokosinseln', 'Kolumbien', 'Komoren', 'Kongo', 'Kroatien', 'Kuba', 'Kuwait',
+ 'Laos', 'Lesotho', 'Lettland', 'Libanon', 'Liberia', 'Libyen', 'Liechtenstein', 'Litauen', 'Luxemburg',
+ 'Madagaskar', 'Malawi', 'Malaysia', 'Malediven', 'Mali', 'Malta', 'Marokko', 'Marshallinseln', 'Martinique', 'Mauretanien', 'Mauritius', 'Mayotte', 'Mazedonien', 'Mexiko', 'Mikronesien', 'Monaco', 'Mongolei', 'Montenegro', 'Montserrat', 'Mosambik', 'Myanmar',
+ 'Namibia', 'Nauru', 'Nepal', 'Neukaledonien', 'Neuseeland', 'Nicaragua', 'Niederlande', 'Niederländische Antillen', 'Niger', 'Nigeria', 'Niue', 'Norfolkinsel', 'Norwegen', 'Nördliche Marianen',
+ 'Oman', 'Osttimor', 'Österreich',
+ 'Pakistan', 'Palau', 'Palästinensische Gebiete', 'Panama', 'Papua-Neuguinea', 'Paraguay', 'Peru', 'Philippinen', 'Pitcairn', 'Polen', 'Portugal', 'Puerto Rico',
+ 'Republik Korea', 'Republik Moldau', 'Ruanda', 'Rumänien', 'Russische Föderation', 'Réunion',
+ 'Salomonen', 'Sambia', 'Samoa', 'San Marino', 'Saudi-Arabien', 'Schweden', 'Schweiz', 'Senegal', 'Serbien', 'Serbien und Montenegro', 'Seychellen', 'Sierra Leone', 'Simbabwe', 'Singapur', 'Slowakei', 'Slowenien', 'Somalia', 'Sonderverwaltungszone Hongkong', 'Sonderverwaltungszone Macao', 'Spanien', 'Sri Lanka', 'St. Barthélemy', 'St. Helena', 'St. Kitts und Nevis', 'St. Lucia', 'St. Martin', 'St. Pierre und Miquelon', 'St. Vincent und die Grenadinen', 'Sudan', 'Suriname', 'Svalbard und Jan Mayen', 'Swasiland', 'Syrien', 'São Tomé und PrÃncipe', 'Südafrika', 'Südgeorgien und die Südlichen Sandwichinseln',
+ 'Tadschikistan', 'Taiwan', 'Tansania', 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad und Tobago', 'Tschad', 'Tschechische Republik', 'Tunesien', 'Turkmenistan', 'Turks- und Caicosinseln', 'Tuvalu', 'Türkei',
+ 'Uganda', 'Ukraine', 'Unbekannte oder ungültige Region', 'Ungarn', 'Uruguay', 'Usbekistan',
+ 'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam',
+ 'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara',
+ 'Zentralafrikanische Republik', 'Zypern',
+ );
+
+ protected static $cityFormats = array(
+ '{{cityName}}',
+ );
+
+ protected static $streetNameFormats = array(
+ '{{lastName}}{{streetSuffixShort}}',
+ '{{cityName}}{{streetSuffixShort}}',
+ '{{firstName}}-{{lastName}}-{{streetSuffixLong}}'
+ );
+
+ protected static $streetAddressFormats = array(
+ '{{streetName}} {{buildingNumber}}',
+ );
+ protected static $addressFormats = array(
+ "{{streetAddress}}\n{{postcode}} {{city}}",
+ );
+
+ /**
+ * Returns a random city name.
+ * @example Luzern
+ * @return string
+ */
+ public function cityName()
+ {
+ return static::randomElement(static::$cityNames);
+ }
+
+ /**
+ * Returns a random street suffix.
+ * @example str.
+ * @return string
+ */
+ public function streetSuffixShort()
+ {
+ return static::randomElement(static::$streetSuffixShort);
+ }
+
+ /**
+ * Returns a random street suffix.
+ * @example Strasse
+ * @return string
+ */
+ public function streetSuffixLong()
+ {
+ return static::randomElement(static::$streetSuffixLong);
+ }
+
+ /**
+ * Returns a canton
+ * @example array('BE' => 'Bern')
+ * @return array
+ */
+ public static function canton()
+ {
+ return static::randomElement(static::$canton);
+ }
+
+ /**
+ * Returns the abbreviation of a canton.
+ * @return string
+ */
+ public static function cantonShort()
+ {
+ $canton = static::canton();
+ return key($canton);
+ }
+
+ /**
+ * Returns the name of canton.
+ * @return string
+ */
+ public static function cantonName()
+ {
+ $canton = static::canton();
+ return current($canton);
+ }
+
+ public static function buildingNumber()
+ {
+ return static::regexify(self::numerify(static::randomElement(static::$buildingNumber)));
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php
new file mode 100644
index 00000000..604ec5ae
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php
@@ -0,0 +1,15 @@
+generator->parse(static::randomElement(static::$towns));
+ }
+
+ public function syllable()
+ {
+ return static::randomElement(static::$syllables);
+ }
+
+ public function direction()
+ {
+ return static::randomElement(static::$directions);
+ }
+
+ public function englishStreetName()
+ {
+ return static::randomElement(static::$englishStreetNames);
+ }
+
+ public function villageSuffix()
+ {
+ return static::randomElement(static::$villageSuffixes);
+ }
+
+ public function estateSuffix()
+ {
+ return static::randomElement(static::$estateSuffixes);
+ }
+
+ public function village()
+ {
+ return $this->generator->parse(static::randomElement(static::$villageNameFormats));
+ }
+
+ public function estate()
+ {
+ return $this->generator->parse(static::randomElement(static::$estateNameFormats));
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php
new file mode 100644
index 00000000..4d82d93a
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php
@@ -0,0 +1,14 @@
+generator->parse(static::randomElement(static::$societyNameFormat));
+ }
+ /**
+ * @example Mumbai
+ */
+ public function city()
+ {
+ return static::randomElement(static::$city);
+ }
+ /**
+ * @example Vaishali Nagar
+ */
+ public function locality()
+ {
+ return $this->generator->parse(static::randomElement(static::$localityFormats));
+ }
+ /*
+ * @example Kharadi
+ */
+ public function localityName()
+ {
+ return $this->generator->parse(static::randomElement(static::$localityName));
+ }
+ /**
+ * @example Nagar
+ */
+ public function areaSuffix()
+ {
+ return static::randomElement(static::$areaSuffix);
+ }
+
+ /**
+ * @example 'Delhi'
+ */
+ public static function state()
+ {
+ return static::randomElement(static::$state);
+ }
+
+ /**
+ * @example 'DL'
+ */
+ public static function stateAbbr()
+ {
+ return static::randomElement(static::$stateAbbr);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php
new file mode 100644
index 00000000..6ec16710
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php
@@ -0,0 +1,9 @@
+generator->parse($format));
+ }
+
+ public function fixedLineNumber()
+ {
+ $format = static::randomElement(static::$fixedLineNumberFormats);
+
+ return static::numerify($this->generator->parse($format));
+ }
+
+ public function voipNumber()
+ {
+ $format = static::randomElement(static::$voipNumber);
+
+ return $this->generator->parse($format);
+ }
+
+ public function internationalCodePrefix()
+ {
+ $format = static::randomElement(static::$internationalCodePrefix);
+
+ return $this->generator->parse($format);
+ }
+
+ public function zeroToEight()
+ {
+ return static::randomElement(static::$zeroToEight);
+ }
+
+ public function oneToEight()
+ {
+ return static::randomElement(static::$oneToEight);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php
index 4f876bfc..eb817e3a 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php
@@ -2,12 +2,12 @@
namespace Faker\Provider\en_UG;
-class Address extends \Faker\Provider\Address
+class Address extends \Faker\Provider\en_US\Address
{
protected static $cityFormats = array(
'{{cityName}}'
);
-
+
/**
* @link http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Uganda
*/
@@ -40,34 +40,6 @@ class Address extends \Faker\Provider\Address
'Yumbe'
);
- protected static $country = array(
- 'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
- 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil', 'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi',
- 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
- 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
- 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
- 'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories',
- 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
- 'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong', 'Hungary',
- 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
- 'Jamaica', 'Japan', 'Jersey', 'Jordan',
- 'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
- 'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania', 'Luxembourg',
- 'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
- 'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
- 'Oman',
- 'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
- 'Qatar',
- 'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
- 'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
- 'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
- 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
- 'Vanuatu', 'Venezuela', 'Vietnam',
- 'Wallis and Futuna', 'Western Sahara',
- 'Yemen',
- 'Zambia', 'Zimbabwe'
- );
-
/**
* @link http://en.wikipedia.org/wiki/Category:Districts_of_Uganda
*/
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php
index e4c7ce0d..b3c72f40 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php
@@ -6,7 +6,7 @@ class Address extends \Faker\Provider\Address
{
protected static $cityPrefix = array('North', 'East', 'West', 'South', 'New', 'Lake', 'Port');
protected static $citySuffix = array('town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt', 'chester', 'mouth', 'fort', 'haven', 'side', 'shire');
- protected static $buildingNumber = array('#####', '####', '###');
+ protected static $buildingNumber = array('%####', '%###', '%##');
protected static $streetSuffix = array(
'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape', 'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners', 'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve', 'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension', 'Extensions', 'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges', 'Fork', 'Forks', 'Fort', 'Freeway', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove', 'Groves', 'Harbor', 'Harbors', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Inlet', 'Island', 'Island', 'Islands', 'Islands', 'Isle', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake', 'Lakes', 'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop', 'Mall', 'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Mission', 'Mission', 'Motorway', 'Mount', 'Mountain', 'Mountain', 'Mountains', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks', 'Parkway', 'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plains', 'Plaza', 'Plaza', 'Point', 'Points', 'Port', 'Port', 'Ports', 'Ports', 'Prairie', 'Prairie', 'Radial', 'Ramp', 'Ranch', 'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue', 'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Skyway', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs', 'Square', 'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stravenue', 'Stravenue', 'Stream', 'Stream', 'Street', 'Street', 'Streets', 'Summit', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail', 'Trail', 'Tunnel', 'Tunnel', 'Turnpike', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via', 'Viaduct', 'View', 'Views', 'Village', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way', 'Ways', 'Well', 'Wells'
);
@@ -33,7 +33,7 @@ class Address extends \Faker\Provider\Address
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
- 'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
+ 'Pakistan', 'Palau', 'Palestinian Territories', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php
index 464589f7..f46adaaf 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php
@@ -7,35 +7,73 @@ class Company extends \Faker\Provider\Company
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
'{{lastName}}-{{lastName}}',
- '{{lastName}}, {{lastName}} and {{lastName}}'
+ '{{lastName}}, {{lastName}} and {{lastName}}',
);
protected static $catchPhraseWords = array(
array(
- 'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented'
+ 'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented',
),
array(
- '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance'
+ '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
),
array(
- 'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce'
- )
+ 'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'blockchain', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce',
+ ),
);
protected static $bsWords = array(
array(
- 'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize'
+ 'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize',
),
array(
- 'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich'
+ 'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich',
),
array(
- 'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies'
- )
+ 'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies',
+ ),
+ );
+
+ /**
+ * Source - http://www.careerplanner.com/ListOfJobs.cfm
+ */
+ protected static $jobTitleFormat = array(
+ 'Able Seamen', 'Account Manager', 'Accountant', 'Actor', 'Actuary', 'Adjustment Clerk', 'Admin', 'Administrative Law Judge', 'Administrative Services Manager', 'Administrative Support Supervisors', 'Advertising Manager OR Promotions Manager', 'Advertising Sales Agent', 'Aerospace Engineer', 'Agricultural Crop Farm Manager', 'Agricultural Crop Worker', 'Agricultural Engineer', 'Agricultural Equipment Operator', 'Agricultural Inspector', 'Agricultural Manager', 'Agricultural Product Grader Sorter', 'Agricultural Sales Representative', 'Agricultural Science Technician', 'Agricultural Sciences Teacher', 'Agricultural Technician', 'Agricultural Worker', 'Air Crew Member', 'Air Crew Officer', 'Air Traffic Controller', 'Aircraft Assembler', 'Aircraft Body Repairer', 'Aircraft Cargo Handling Supervisor', 'Aircraft Engine Specialist', 'Aircraft Launch and Recovery Officer', 'Aircraft Launch Specialist', 'Aircraft Mechanics OR Aircraft Service Technician', 'Aircraft Rigging Assembler', 'Aircraft Structure Assemblers', 'Airfield Operations Specialist', 'Airframe Mechanic', 'Airline Pilot OR Copilot OR Flight Engineer', 'Algorithm Developer', 'Alteration Tailor', 'Ambulance Driver', 'Amusement Attendant', 'Anesthesiologist', 'Animal Breeder', 'Animal Care Workers', 'Animal Control Worker', 'Animal Husbandry Worker', 'Animal Scientist', 'Animal Trainer', 'Annealing Machine Operator', 'Announcer', 'Answering Service', 'Anthropologist', 'Anthropologist OR Archeologist', 'Anthropology Teacher', 'Appliance Repairer', 'Arbitrator', 'Archeologist', 'Architect', 'Architectural Drafter', 'Architectural Drafter OR Civil Drafter', 'Architecture Teacher', 'Archivist', 'Armored Assault Vehicle Crew Member', 'Armored Assault Vehicle Officer', 'Art Director', 'Art Teacher', 'Artillery Officer', 'Artillery Crew Member', 'Artist', 'Assembler', 'Assessor', 'Astronomer', 'Athletes and Sports Competitor', 'Athletic Trainer', 'Atmospheric and Space Scientist', 'Audio and Video Equipment Technician', 'Audiologist', 'Audio-Visual Collections Specialist', 'Auditor', 'Auditor', 'Automatic Teller Machine Servicer', 'Automotive Body Repairer', 'Automotive Glass Installers', 'Automotive Master Mechanic', 'Automotive Mechanic', 'Automotive Specialty Technician', 'Automotive Technician', 'Auxiliary Equipment Operator', 'Aviation Inspector', 'Avionics Technician',
+ 'Bailiff', 'Baker', 'Barber', 'Bartender', 'Bartender Helper', 'Battery Repairer', 'Bellhop', 'Bench Jeweler', 'Benefits Specialist', 'Bicycle Repairer', 'Bill and Account Collector', 'Bindery Machine Operator', 'Bindery Worker', 'Biochemist', 'Biochemist or Biophysicist', 'Biological Science Teacher', 'Biological Scientist', 'Biological Technician', 'Biologist', 'Biomedical Engineer', 'Biophysicist', 'Board Of Directors', 'Boat Builder and Shipwright', 'Boiler Operator', 'Boilermaker', 'Bookbinder', 'Bookkeeper', 'Brake Machine Setter', 'Brattice Builder', 'Brazer', 'Brazing Machine Operator', 'Brickmason', 'Bridge Tender OR Lock Tender', 'Broadcast News Analyst', 'Broadcast Technician', 'Brokerage Clerk', 'Budget Analyst', 'Buffing and Polishing Operator', 'Building Cleaning Worker', 'Building Inspector', 'Bulldozer Operator', 'Bus Driver', 'Business Development Manager', 'Business Manager', 'Business Operations Specialist', 'Business Teacher', 'Butcher', 'Buyer',
+ 'Cabinetmaker', 'Cafeteria Cook', 'Calibration Technician OR Instrumentation Technician', 'Camera Operator', 'Camera Repairer', 'Captain', 'Caption Writer', 'Cardiovascular Technologist', 'Career Counselor', 'Carpenter', 'Carpenter Assembler and Repairer', 'Carpet Installer', 'Cartographer', 'Cartoonist', 'Carver', 'Cashier', 'Casting Machine Operator', 'Casting Machine Set-Up Operator', 'ccc', 'Ceiling Tile Installer', 'Cement Mason and Concrete Finisher', 'Central Office', 'Central Office and PBX Installers', 'Central Office Operator', 'CEO', 'CFO', 'Chef', 'Chemical Engineer', 'Chemical Equipment Controller', 'Chemical Equipment Operator', 'Chemical Equipment Tender', 'Chemical Plant Operator', 'Chemical Technician', 'Chemist', 'Chemistry Teacher', 'Child Care', 'Child Care Worker', 'Chiropractor', 'Choreographer', 'City', 'City Planning Aide', 'Civil Drafter', 'Civil Engineer', 'Civil Engineering Technician', 'Claims Adjuster', 'Claims Examiner', 'Claims Taker', 'Cleaners of Vehicles', 'Clergy', 'Clerk', 'Clinical Laboratory Technician', 'Clinical Psychologist', 'Clinical School Psychologist', 'Coaches and Scout', 'Coating Machine Operator', 'Coil Winders', 'Command Control Center Officer', 'Command Control Center Specialist', 'Commercial and Industrial Designer', 'Commercial Diver', 'Commercial Pilot', 'Communication Equipment Repairer', 'Communication Equipment Worker', 'Communications Equipment Operator', 'Communications Teacher', 'Community Service Manager', 'Compacting Machine Operator', 'Compensation and Benefits Manager', 'Compliance Officers', 'Composer', 'Computer', 'Computer Hardware Engineer', 'Computer Operator', 'Computer Programmer', 'Computer Repairer', 'Computer Science Teacher', 'Computer Scientist', 'Computer Security Specialist', 'Computer Software Engineer', 'Computer Specialist', 'Computer Support Specialist', 'Computer Systems Analyst', 'Computer-Controlled Machine Tool Operator', 'Concierge', 'Conservation Scientist', 'Construction', 'Construction Carpenter', 'Construction Driller', 'Construction Equipment Operator', 'Construction Laborer', 'Construction Manager', 'Continuous Mining Machine Operator', 'Control Valve Installer', 'Conveyor Operator', 'Cook', 'Cooling and Freezing Equipment Operator', 'Copy Machine Operator', 'Copy Writer', 'Coremaking Machine Operator', 'Coroner', 'Corporate Trainer', 'Correctional Officer', 'Correspondence Clerk', 'Cost Estimator', 'Costume Attendant', 'Counseling Psychologist', 'Counselor', 'Counsil', 'Courier', 'Court Clerk', 'Court Reporter', 'Craft Artist', 'Crane and Tower Operator', 'Creative Writer', 'Credit Checkers Clerk', 'Credit Analyst', 'Credit Authorizer', 'Credit Checker', 'Criminal Investigator', 'Crossing Guard', 'Crushing Grinding Machine Operator', 'CSI', 'CTO', 'Cultural Studies Teacher', 'Curator', 'Custom Tailor', 'Customer Service Representative', 'Cutting Machine Operator', 'Cutting Machine Operator',
+ 'Dancer', 'Data Entry Operator', 'Data Processing Equipment Repairer', 'Database Administrator', 'Database Manager', 'Deburring Machine Operator', 'Decorator', 'Dental Assistant', 'Dental Hygienist', 'Dental Laboratory Technician', 'Dentist', 'Designer', 'Desktop Publisher', 'Detective', 'Diagnostic Medical Sonographer', 'Diamond Worker', 'Diesel Engine Specialist', 'Dietetic Technician', 'Director Of Business Development', 'Director Of Marketing', 'Director Of Social Media Marketing', 'Director Of Talent Acquisition', 'Director Religious Activities', 'Directory Assistance Operator', 'Dishwasher', 'Dispatcher', 'Distribution Manager', 'Door To Door Sales', 'Dot Etcher', 'Drafter', 'Dragline Operator', 'Dredge Operator', 'Drilling and Boring Machine Tool Setter', 'Driver-Sales Worker', 'Drycleaning Machine Operator', 'Drywall Ceiling Tile Installer', 'Drywall Installer',
+ 'Earth Driller', 'Economics Teacher', 'Economist', 'Editor', 'Education Administrator', 'Education Teacher', 'Educational Counselor OR Vocationall Counselor', 'Educational Psychologist', 'Electric Meter Installer', 'Electric Motor Repairer', 'Electrical and Electronic Inspector and Tester', 'Electrical and Electronics Drafter', 'Electrical Drafter', 'Electrical Engineer', 'Electrical Engineering Technician', 'Electrical Parts Reconditioner', 'Electrical Power-Line Installer', 'Electrical Sales Representative', 'Electrician', 'Electrician', 'Electrolytic Plating Machine Operator', 'Electromechanical Equipment Assembler', 'Electro-Mechanical Technician', 'Electronic Drafter', 'Electronic Engineering Technician', 'Electronic Equipment Assembler', 'Electronic Masking System Operator', 'Electronics Engineer', 'Electronics Engineering Technician', 'Electrotyper', 'Elementary and Secondary School Administrators', 'Elementary School Teacher', 'Elevator Installer and Repairer', 'Eligibility Interviewer', 'Embalmer', 'Embossing Machine Operator', 'Emergency Management Specialist', 'Emergency Medical Technician and Paramedic', 'Employment Interviewer', 'Engine Assembler', 'Engineer', 'Engineering', 'Engineering Manager', 'Engineering Teacher', 'Engineering Technician', 'English Language Teacher', 'Engraver', 'Entertainer and Performer', 'Entertainment Attendant', 'Environmental Compliance Inspector', 'Environmental Engineer', 'Environmental Engineering Technician', 'Environmental Science Teacher', 'Environmental Science Technician', 'Environmental Scientist', 'Epidemiologist', 'Equal Opportunity Representative', 'Etcher', 'Etcher and Engraver', 'Event Planner', 'Excavating Machine Operator', 'Executive Secretary', 'Exhibit Designer', 'Explosives Expert', 'Extraction Worker', 'Extruding and Drawing Machine Operator', 'Extruding Machine Operator',
+ 'Fabric Mender', 'Fabric Pressers', 'Farm and Home Management Advisor', 'Farm Equipment Mechanic', 'Farm Labor Contractor', 'Farmer', 'Farmworker', 'Fashion Designer', 'Fashion Model', 'Fast Food Cook', 'Fence Erector', 'Fiber Product Cutting Machine Operator', 'Fiberglass Laminator and Fabricator', 'File Clerk', 'Film Laboratory Technician', 'Financial Analyst', 'Financial Examiner', 'Financial Manager', 'Financial Services Sales Agent', 'Financial Specialist', 'Fire Fighter', 'Fire Inspector', 'Fire Investigator', 'Fire-Prevention Engineer', 'First-Line Supervisor-Manager of Landscaping, Lawn Service, and Groundskeeping Worker', 'Fish Game Warden', 'Fish Hatchery Manager', 'Fishery Worker', 'Fishing OR Forestry Supervisor', 'Fitness Trainer', 'Fitter', 'Flight Attendant', 'Floor Finisher', 'Floor Layer', 'Floral Designer', 'Food Batchmaker', 'Food Cooking Machine Operators', 'Food Preparation', 'Food Preparation and Serving Worker', 'Food Preparation Worker', 'Food Science Technician', 'Food Scientists and Technologist', 'Food Servers', 'Food Service Manager', 'Food Tobacco Roasting', 'Foreign Language Teacher', 'Forensic Investigator', 'Forensic Science Technician', 'Forest and Conservation Technician', 'Forest and Conservation Worker', 'Forest Fire Fighter', 'Forest Fire Fighting Supervisor', 'Forest Fire Inspector', 'Forester', 'Forestry Conservation Science Teacher', 'Forging Machine Setter', 'Forming Machine Operator', 'Forming Machine Operator', 'Foundry Mold and Coremaker', 'Fraud Investigator', 'Freight Agent', 'Freight and Material Mover', 'Freight Inspector', 'Funeral Attendant', 'Funeral Director', 'Furnace Operator', 'Furniture Finisher',
+ 'Gaming Cage Worker', 'Gaming Dealer', 'Gaming Manager', 'Gaming Service Worker', 'Gaming Supervisor', 'Gaming Surveillance Officer', 'Garment', 'Gas Appliance Repairer', 'Gas Compressor Operator', 'Gas Distribution Plant Operator', 'Gas Plant Operator', 'Gas Processing Plant Operator', 'Gas Pumping Station Operator', 'Gas Pumping Station Operator', 'Gauger', 'GED Teacher', 'General Farmworker', 'General Manager', 'General Practitioner', 'Geographer', 'Geography Teacher', 'Geological Data Technician', 'Geological Sample Test Technician', 'Geologist', 'Geoscientists', 'Glass Blower', 'Glass Cutting Machine Operator', 'Glazier', 'Gluing Machine Operator', 'Government', 'Government Property Inspector', 'Government Service Executive', 'Graduate Teaching Assistant', 'Graphic Designer', 'Grinder OR Polisher', 'Grinding Machine Operator', 'Grips', 'Grounds Maintenance Worker',
+ 'Hairdresser OR Cosmetologist', 'Hand Trimmer', 'Hand Presser', 'Hand Sewer', 'Hazardous Materials Removal Worker', 'Head Nurse', 'Health Educator', 'Health Practitioner', 'Health Services Manager', 'Health Specialties Teacher', 'Health Technologist', 'Healthcare', 'Healthcare Practitioner', 'Healthcare Support Worker', 'Heat Treating Equipment Operator', 'Heaters', 'Heating and Air Conditioning Mechanic', 'Heating Equipment Operator', 'Heavy Equipment Mechanic', 'Highway Maintenance Worker', 'Highway Patrol Pilot', 'Historian', 'History Teacher', 'Hoist and Winch Operator', 'Home', 'Home Appliance Installer', 'Home Appliance Repairer', 'Home Economics Teacher', 'Home Entertainment Equipment Installer', 'Home Health Aide', 'Homeland Security', 'Horticultural Worker', 'Host and Hostess', 'Hotel Desk Clerk', 'House Cleaner', 'Housekeeper', 'Housekeeping Supervisor', 'HR Manager', 'HR Specialist', 'Human Resource Director', 'Human Resource Manager', 'Human Resources Assistant', 'Human Resources Manager', 'Human Resources Specialist', 'Hunter and Trapper', 'HVAC Mechanic', 'Hydrologist',
+ 'Illustrator', 'Immigration Inspector OR Customs Inspector', 'Industrial Engineer', 'Industrial Engineering Technician', 'Industrial Equipment Maintenance', 'Industrial Machinery Mechanic', 'Industrial Production Manager', 'Industrial Safety Engineer', 'Industrial-Organizational Psychologist', 'Infantry', 'Infantry Officer', 'Information Systems Manager', 'Inspector', 'Installation and Repair Technician', 'Instructional Coordinator', 'Instrument Sales Representative', 'Insulation Installer', 'Insulation Worker', 'Insurance Investigator', 'Insurance Appraiser', 'Insurance Claims Clerk', 'Insurance Policy Processing Clerk', 'Insurance Sales Agent', 'Insurance Underwriter', 'Interaction Designer', 'Interior Designer', 'Internist', 'Interpreter OR Translator', 'Interviewer', 'Irradiated-Fuel Handler',
+ 'Janitor', 'Janitorial Supervisor', 'Jeweler', 'Jewelry Model OR Mold Makers', 'Job Printer', 'Judge',
+ 'Keyboard Instrument Repairer and Tuner', 'Kindergarten Teacher',
+ 'Landscape Architect', 'Landscape Artist', 'Landscaper', 'Landscaping', 'Lathe Operator', 'Laundry OR Dry-Cleaning Worker', 'Law Clerk', 'Law Enforcement Teacher', 'Law Teacher', 'Lawn Service Manager', 'Lawyer', 'Lay-Out Worker', 'Legal Secretary', 'Legal Support Worker', 'Legislator', 'Letterpress Setters Operator', 'Librarian', 'Library Assistant', 'Library Science Teacher', 'Library Technician', 'Library Worker', 'License Clerk', 'Licensed Practical Nurse', 'Licensing Examiner and Inspector', 'Life Science Technician', 'Life Scientists', 'Lifeguard', 'Loading Machine Operator', 'Loan Counselor', 'Loan Interviewer', 'Loan Officer', 'Locker Room Attendant', 'Locksmith', 'Locomotive Engineer', 'Locomotive Firer', 'Lodging Manager', 'Log Grader and Scaler', 'Logging Equipment Operator', 'Logging Supervisor', 'Logging Tractor Operator', 'Logging Worker', 'Logistician',
+ 'Machine Feeder', 'Machine Operator', 'Machine Tool Operator', 'Machinery Maintenance', 'Machinist', 'Maid', 'Mail Clerk', 'Mail Machine Operator', 'Maintenance and Repair Worker', 'Maintenance Equipment Operator', 'Maintenance Supervisor', 'Maintenance Worker', 'Makeup Artists', 'Management Analyst', 'Manager', 'Manager of Air Crew', 'Manager of Food Preparation', 'Manager of Weapons Specialists', 'Manager Tactical Operations', 'Manicurists', 'Manufactured Building Installer', 'Manufacturing Sales Representative', 'Mapping Technician', 'MARCOM Director', 'MARCOM Manager', 'Marine Architect', 'Marine Cargo Inspector', 'Marine Engineer', 'Marine Oiler', 'Market Research Analyst', 'Marketing Manager', 'Marketing VP', 'Marking Clerk', 'Marking Machine Operator', 'Marriage and Family Therapist', 'Massage Therapist', 'Material Movers', 'Material Moving Worker', 'Materials Engineer', 'Materials Inspector', 'Materials Scientist', 'Mathematical Science Teacher', 'Mathematical Scientist', 'Mathematical Technician', 'Mathematician', 'Meat Packer', 'Mechanical Door Repairer', 'Mechanical Drafter', 'Mechanical Engineer', 'Mechanical Engineering Technician', 'Mechanical Equipment Sales Representative', 'Mechanical Inspector', 'Media and Communication Worker', 'Medical Appliance Technician', 'Medical Assistant', 'Medical Equipment Preparer', 'Medical Equipment Repairer', 'Medical Laboratory Technologist', 'Medical Records Technician', 'Medical Sales Representative', 'Medical Scientists', 'Medical Secretary', 'Medical Technician', 'Medical Transcriptionist', 'Mental Health Counselor', 'Merchandise Displayer OR Window Trimmer', 'Metal Fabricator', 'Metal Molding Operator', 'Metal Pourer and Caster', 'Metal Worker', 'Metal-Refining Furnace Operator', 'Meter Mechanic', 'Microbiologist', 'Middle School Teacher', 'Military Officer', 'Milling Machine Operator', 'Millwright', 'Mine Cutting Machine Operator', 'Mining Engineer OR Geological Engineer', 'Mining Machine Operator', 'Mixing and Blending Machine Operator', 'Model Maker', 'Mold Maker', 'Molder', 'Molding and Casting Worker', 'Molding Machine Operator', 'Motion Picture Projectionist', 'Motor Vehicle Inspector', 'Motor Vehicle Operator', 'Motorboat Mechanic', 'Motorboat Operator', 'Motorcycle Mechanic', 'Movers', 'Movie Director oR Theatre Director', 'Multi-Media Artist', 'Multiple Machine Tool Setter', 'Municipal Clerk', 'Municipal Court Clerk', 'Municipal Fire Fighter', 'Municipal Fire Fighting Supervisor', 'Museum Conservator', 'Music Arranger and Orchestrator', 'Music Composer', 'Music Director', 'Musical Instrument Tuner', 'Musician', 'Musician OR Singer',
+ 'Natural Sciences Manager', 'Naval Architects', 'Network Admin OR Computer Systems Administrator', 'Network Systems Analyst', 'New Accounts Clerk', 'Night Security Guard', 'Night Shift', 'Nonfarm Animal Caretaker', 'Nuclear Engineer', 'Nuclear Equipment Operation Technician', 'Nuclear Medicine Technologist', 'Nuclear Monitoring Technician', 'Nuclear Power Reactor Operator', 'Nuclear Technician', 'Numerical Control Machine Tool Operator', 'Numerical Tool Programmer OR Process Control Programmer', 'Nursery Manager', 'Nursery Worker', 'Nursing Aide', 'Nursing Instructor', 'Nutritionist',
+ 'Obstetrician', 'Occupational Health Safety Specialist', 'Occupational Health Safety Technician', 'Occupational Therapist', 'Occupational Therapist Aide', 'Occupational Therapist Assistant', 'Office and Administrative Support Worker', 'Office Clerk', 'Office Machine and Cash Register Servicer', 'Office Machine Operator', 'Offset Lithographic Press Operator', 'Oil and gas Operator', 'Oil Service Unit Operator', 'Online Marketing Analyst', 'Operating Engineer', 'Operations Research Analyst', 'Ophthalmic Laboratory Technician', 'Optical Instrument Assembler', 'Opticians', 'Optometrist', 'Oral Surgeon', 'Order Clerk', 'Order Filler', 'Order Filler OR Stock Clerk', 'Organizational Development Manager', 'Orthodontist', 'Orthotist OR Prosthetist', 'Outdoor Power Equipment Mechanic',
+ 'Packaging Machine Operator', 'Packer and Packager', 'Painter', 'Painter and Illustrator', 'Painting Machine Operator', 'Pantograph Engraver', 'Paper Goods Machine Operator', 'Paperhanger', 'Paralegal', 'Park Naturalist', 'Parking Enforcement Worker', 'Parking Lot Attendant', 'Parts Salesperson', 'Paste-Up Worker', 'Pastry Chef', 'Patrol Officer', 'Patternmaker', 'Paving Equipment Operator', 'Payroll Clerk', 'Pediatricians', 'Percussion Instrument Repairer', 'Personal Care Worker', 'Personal Financial Advisor', 'Personal Home Care Aide', 'Personal Service Worker', 'Personal Trainer', 'Personnel Recruiter', 'Pest Control Worker', 'Pesticide Sprayer', 'Petroleum Engineer', 'Petroleum Pump Operator', 'Petroleum Pump System Operator', 'Petroleum Technician', 'Pewter Caster', 'Pharmaceutical Sales Representative', 'Pharmacist', 'Pharmacy Aide', 'Pharmacy Technician', 'Philosophy and Religion Teacher', 'Photoengraver', 'Photoengraving Machine Operator', 'Photographer', 'Photographic Restorer', 'Photographic Developer', 'Photographic Process Worker', 'Photographic Processing Machine Operator', 'Photographic Reproduction Technician', 'Physical Scientist', 'Physical Therapist', 'Physical Therapist Aide', 'Physical Therapist Assistant', 'Physician', 'Physician Assistant', 'Physicist', 'Physics Teacher', 'Pile-Driver Operator', 'Pipe Fitter', 'Pipefitter', 'Pipelayer', 'Pipelaying Fitter', 'Plant and System Operator', 'Plant Scientist', 'Plasterer OR Stucco Mason', 'Plastic Molding Machine Operator', 'Plate Finisher', 'Platemaker', 'Plating Machine Operator', 'Plating Operator', 'Plating Operator OR Coating Machine Operator', 'Plumber', 'Plumber OR Pipefitter OR Steamfitter', 'Podiatrist', 'Poet OR Lyricist', 'Police and Sheriffs Patrol Officer', 'Police Detective', 'Police Identification OR Records Officer', 'Political Science Teacher', 'Political Scientist', 'Portable Power Tool Repairer', 'Postal Clerk', 'Postal Service Clerk', 'Postal Service Mail Carrier', 'Postal Service Mail Sorter', 'Postmasters', 'Postsecondary Education Administrators', 'Postsecondary Teacher', 'Potter', 'Poultry Cutter', 'Power Distributors OR Dispatcher', 'Power Generating Plant Operator', 'Power Plant Operator', 'PR Manager', 'Precious Stone Worker', 'Precision Aircraft Systems Assemblers', 'Precision Devices Inspector', 'Precision Dyer', 'Precision Etcher and Engraver', 'Precision Instrument Repairer', 'Precision Lens Grinders and Polisher', 'Precision Mold and Pattern Caster', 'Precision Pattern and Die Caster', 'Precision Printing Worker', 'Prepress Technician', 'Preschool Education Administrators', 'Preschool Teacher', 'Press Machine Setter, Operator', 'Pressing Machine Operator', 'Pressure Vessel Inspector', 'Printing Machine Operator', 'Printing Press Machine Operator', 'Private Detective and Investigator', 'Private Household Cook', 'Private Sector Executive', 'Probation Officers and Correctional Treatment Specialist', 'Procurement Clerk', 'Producer', 'Producers and Director', 'Product Management Leader', 'Product Promoter', 'Product Safety Engineer', 'Product Specialist', 'Production Control Manager', 'Production Helper', 'Production Inspector', 'Production Laborer', 'Production Manager', 'Production Planner', 'Production Planning', 'Production Worker', 'Professional Photographer', 'Professor', 'Program Director', 'Project Manager', 'Proofreaders and Copy Marker', 'Prosthodontist', 'Protective Service Worker', 'Protective Service Worker', 'Psychiatric Aide', 'Psychiatric Technician', 'Psychiatrist', 'Psychologist', 'Psychology Teacher', 'Public Health Social Worker', 'Public Relations Manager', 'Public Relations Specialist', 'Public Transportation Inspector', 'Pump Operators', 'Punching Machine Setters', 'Purchasing Agent', 'Purchasing Manager',
+ 'Radar Technician', 'Radiation Therapist', 'Radio and Television Announcer', 'Radio Mechanic', 'Radio Operator', 'Radiologic Technician', 'Radiologic Technologist', 'Radiologic Technologist and Technician', 'Rail Car Repairer', 'Rail Transportation Worker', 'Rail Yard Engineer', 'Railroad Conductors', 'Railroad Inspector', 'Railroad Switch Operator', 'Railroad Yard Worker', 'Range Manager', 'Real Estate Appraiser', 'Real Estate Association Manager', 'Real Estate Broker', 'Real Estate Sales Agent', 'Receptionist and Information Clerk', 'Record Clerk', 'Recordkeeping Clerk', 'Recreation and Fitness Studies Teacher', 'Recreation Worker', 'Recreational Therapist', 'Recreational Vehicle Service Technician', 'Recruiter', 'Recyclable Material Collector', 'Refinery Operator', 'Refractory Materials Repairer', 'Refrigeration Mechanic', 'Registered Nurse', 'Rehabilitation Counselor', 'Religious Worker', 'Rental Clerk', 'Reporters OR Correspondent', 'Reservation Agent OR Transportation Ticket Agent', 'Residential Advisor', 'Respiratory Therapist', 'Respiratory Therapy Technician', 'Restaurant Cook', 'Retail Sales person', 'Retail Salesperson', 'Rigger', 'RN', 'Rock Splitter', 'Rolling Machine Setter', 'Roof Bolters Mining', 'Roofer', 'Rotary Drill Operator', 'Rough Carpenter', 'Roustabouts',
+ 'Safety Engineer', 'Sailor', 'Sales and Related Workers', 'Sales Engineer', 'Sales Manager', 'Sales Person', 'Sales Representative', 'Sawing Machine Operator', 'Sawing Machine Setter', 'Sawing Machine Tool Setter', 'Scanner Operator', 'School Bus Driver', 'School Social Worker', 'Scientific Photographer', 'Screen Printing Machine Operator', 'Sculptor', 'Secondary School Teacher', 'Secretary', 'Securities Sales Agent', 'Security Guard', 'Security Systems Installer OR Fire Alarm Systems Installer', 'Segmental Paver', 'Self-Enrichment Education Teacher', 'Semiconductor Processor', 'Separating Machine Operators', 'Septic Tank Servicer', 'Service Station Attendant', 'Set and Exhibit Designer', 'Set Designer', 'Sewing Machine Operator', 'Shampooer', 'Shear Machine Set-Up Operator', 'Sheet Metal Worker', 'Sheriff', 'Ship Captain', 'Ship Carpenter and Joiner', 'Ship Engineer', 'Ship Mates', 'Ship Pilot', 'Shipping and Receiving Clerk', 'Shoe and Leather Repairer', 'Shoe Machine Operators', 'Short Order Cook', 'Shuttle Car Operator', 'Signal Repairer OR Track Switch Repairer', 'Silversmith', 'Singer', 'Sketch Artist', 'Skin Care Specialist', 'Slot Key Person', 'Social and Human Service Assistant', 'Social Media Marketing Manager', 'Social Science Research Assistant', 'Social Sciences Teacher', 'Social Scientists', 'Social Service Specialists', 'Social Work Teacher', 'Social Worker', 'Sociologist', 'Sociology Teacher', 'Software Engineer', 'Soil Conservationist', 'Soil Scientist', 'Soil Scientist OR Plant Scientist', 'Solderer', 'Soldering Machine Setter', 'Sound Engineering Technician', 'Space Sciences Teacher', 'Special Education Teacher', 'Special Force', 'Special Forces Officer', 'Speech-Language Pathologist', 'Sports Book Writer', 'Spotters', 'Spraying Machine Operator', 'Staff Psychologist', 'State', 'Statement Clerk', 'Stationary Engineer', 'Stationary Engineer OR Boiler Operator', 'Statistical Assistant', 'Statistician', 'Steel Worker', 'Stevedore', 'Stock Broker', 'Stock Clerk', 'Stone Cutter', 'Stone Sawyer', 'Stonemason', 'Stonemason', 'Storage Manager OR Distribution Manager', 'Streetcar Operator', 'Stringed Instrument Repairer and Tuner', 'Structural Iron and Steel Worker', 'Structural Metal Fabricator', 'Substance Abuse Counselor', 'Substance Abuse Social Worker', 'Substation Maintenance', 'Supervisor Correctional Officer', 'Supervisor Fire Fighting Worker', 'Supervisor of Customer Service', 'Supervisor of Police', 'Surgeon', 'Surgical Technologist', 'Survey Researcher', 'Surveying and Mapping Technician', 'Surveying Technician', 'Surveyor', 'Sys Admin', 'System Administrator',
+ 'Tailor', 'Talent Acquisition Manager', 'Talent Director', 'Tank Car', 'Taper', 'Tax Examiner', 'Tax Preparer', 'Taxi Drivers and Chauffeur', 'Teacher', 'Teacher Assistant', 'Team Assembler', 'Technical Director', 'Technical Program Manager', 'Technical Specialist', 'Technical Writer', 'Telecommunications Equipment Installer', 'Telecommunications Facility Examiner', 'Telecommunications Line Installer', 'Telemarketer', 'Telephone Operator', 'Telephone Station Installer and Repairer', 'Teller', 'Terrazzo Workes and Finisher', 'Textile Cutting Machine Operator', 'Textile Dyeing Machine Operator', 'Textile Knitting Machine Operator', 'Textile Machine Operator', 'Textile Worker', 'Therapist', 'Ticket Agent', 'Tile Setter OR Marble Setter', 'Timing Device Assemblers', 'Tire Builder', 'Tire Changer', 'Title Abstractor', 'Title Examiner', 'Title Searcher', 'Tool and Die Maker', 'Tool Set-Up Operator', 'Tool Sharpener', 'Tour Guide', 'Tractor Operator', 'Tractor-Trailer Truck Driver', 'Traffic Technician', 'Train Crew', 'Trainer', 'Training Manager OR Development Manager', 'Transformer Repairer', 'Transit Police OR Railroad Police', 'Transportation and Material-Moving', 'Transportation Attendant', 'Transportation Equipment Maintenance', 'Transportation Equipment Painters', 'Transportation Inspector', 'Transportation Manager', 'Transportation Worker', 'Travel Agent', 'Travel Clerk', 'Travel Guide', 'Tree Trimmer', 'Truck Driver', 'TSA', 'Typesetter', 'Typesetting Machine Operator',
+ 'Umpire and Referee', 'Underground Mining', 'University', 'Upholsterer', 'Urban Planner', 'User Experience Manager', 'User Experience Researcher', 'Usher', 'Utility Meter Reader',
+ 'Valve Repairer OR Regulator Repairer', 'Vending Machine Servicer', 'Veterinarian', 'Veterinary Assistant OR Laboratory Animal Caretaker', 'Veterinary Technician', 'Vice President Of Human Resources', 'Vice President Of Marketing', 'Video Editor', 'Visual Designer', 'Vocational Education Teacher',
+ 'Waiter', 'Waitress', 'Warehouse', 'Washing Equipment Operator', 'Waste Treatment Plant Operator', 'Watch Repairer', 'Weapons Specialists', 'Web Developer', 'Webmaster', 'Welder', 'Welder', 'Welder and Cutter', 'Welder-Fitter', 'Welding Machine Tender', 'Welding Machine Operator', 'Welding Machine Setter', 'Welfare Eligibility Clerk', 'Well and Core Drill Operator', 'Wellhead Pumper', 'Wholesale Buyer', 'Wind Instrument Repairer', 'Woodworker', 'Woodworking Machine Operator', 'Woodworking Machine Setter', 'Word Processors and Typist', 'Writer OR Author',
+ 'Zoologists OR Wildlife Biologist',
);
protected static $companySuffix = array('Inc', 'and Sons', 'LLC', 'Group', 'PLC', 'Ltd');
+ /**
+ * @link https://www.irs.gov/businesses/small-businesses-self-employed/how-eins-are-assigned-and-valid-ein-prefixes
+ */
+ protected static $einPrefixes = array(
+ 01, 02, 03, 04, 05, 06, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 71, 72, 73, 74, 75, 76, 77, 80, 81, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 98, 99
+ );
+
/**
* @example 'Robust full-range hub'
*/
@@ -46,7 +84,7 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
}
/**
@@ -59,6 +97,20 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
+ }
+
+ /**
+ * Employer Identification Number (EIN)
+ *
+ * @link https://en.wikipedia.org/wiki/Employer_Identification_Number
+ * @example '12-3456789'
+ */
+ public static function ein()
+ {
+ $prefix = static::randomElement(static::$einPrefixes);
+ $suffix = static::numberBetween(0, 9999999);
+
+ return sprintf("%02d-%07d", $prefix, $suffix);
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php
new file mode 100644
index 00000000..a9248ad8
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php
@@ -0,0 +1,37 @@
+generator->parse($format));
+ }
+
+ /**
+ * NPA-format area code
+ *
+ * @see https://en.wikipedia.org/wiki/North_American_Numbering_Plan#Numbering_system
+ *
+ * @return string
+ */
+ public static function areaCode()
+ {
+ $digits[] = self::numberBetween(2, 9);
+ $digits[] = self::randomDigit();
+ $digits[] = self::randomDigitNot($digits[1]);
+
+ return join('', $digits);
+ }
+
+ /**
+ * NXX-format central office exchange code
+ *
+ * @see https://en.wikipedia.org/wiki/North_American_Numbering_Plan#Numbering_system
+ *
+ * @return string
+ */
+ public static function exchangeCode()
+ {
+ $digits[] = self::numberBetween(2, 9);
+ $digits[] = self::randomDigit();
+
+ if ($digits[1] === 1) {
+ $digits[] = self::randomDigitNot(1);
+ } else {
+ $digits[] = self::randomDigit();
+ }
+
+ return join('', $digits);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php
index aa73b98e..783bff43 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php
@@ -2,47 +2,20 @@
namespace Faker\Provider\en_ZA;
-class Address extends \Faker\Provider\Address
+class Address extends \Faker\Provider\en_US\Address
{
protected static $cityPrefix = array('North', 'East', 'West', 'South', 'New', 'Lake', 'Port');
protected static $citySuffix = array('fontein','town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt', 'chester', 'mouth', 'fort', 'haven', 'side', 'shire');
protected static $buildingNumber = array('#####', '####', '###');
protected static $streetSuffix = array(
- 'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape', 'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners', 'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve', 'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension', 'Extensions', 'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges', 'Fork', 'Forks', 'Fort', 'Freeway', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove', 'Groves', 'Harbor', 'Harbors', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Inlet', 'Island', 'Island', 'Islands', 'Islands', 'Isle', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake', 'Lakes', 'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop', 'Mall', 'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Mission', 'Mission', 'Motorway', 'Mount', 'Mountain', 'Mountain', 'Mountains', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks', 'Parkway', 'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plains', 'Plaza', 'Plaza', 'Point', 'Points', 'Port', 'Port', 'Ports', 'Ports', 'Prairie', 'Prairie', 'Radial', 'Ramp', 'Ranch', 'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue', 'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Skyway', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs', 'Square', 'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stravenue', 'Stravenue', 'Stream', 'Stream', 'Street', 'Street', 'Streets', 'Summit', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail', 'Trail', 'Tunnel', 'Tunnel', 'Turnpike', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via', 'Viaduct', 'View', 'Views', 'Village', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way', 'Ways', 'Well', 'Wells'
+ 'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape', 'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners', 'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve', 'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension', 'Extensions', 'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges', 'Fork', 'Forks', 'Fort', 'Freeway', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove', 'Groves', 'Harbor', 'Harbors', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Inlet', 'Island', 'Island', 'Islands', 'Islands', 'Isle', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake', 'Lakes', 'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop', 'Mall', 'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Mission', 'Mission', 'Motorway', 'Mount', 'Mountain', 'Mountain', 'Mountains', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks', 'Parkway', 'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plains', 'Plaza', 'Plaza', 'Point', 'Points', 'Port', 'Port', 'Ports', 'Ports', 'Prairie', 'Prairie', 'Radial', 'Ramp', 'Ranch', 'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue', 'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Skyway', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs', 'Square', 'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stravenue', 'Stravenue', 'Stream', 'Stream', 'Street', 'Street', 'Streets', 'Summit', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail', 'Trail', 'Tunnel', 'Tunnel', 'Turnpike', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via', 'Viaduct', 'View', 'Views', 'Village', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way', 'Ways', 'Well', 'Wells',
);
protected static $postcode = array('####');
protected static $province = array(
- 'Eastern Cape', 'Free State', 'Gauteng', 'KwaZulu-Natal', 'Limpopo', 'Mpumalanga', 'North-West', 'Northern Cape', 'Western Cape'
+ 'Eastern Cape', 'Free State', 'Gauteng', 'KwaZulu-Natal', 'Limpopo', 'Mpumalanga', 'North-West', 'Northern Cape', 'Western Cape',
);
protected static $provinceAbbr = array(
- 'EC', 'FS', 'GP', 'KZN', 'LP', 'MP', 'NW', 'NC', 'WC'
- );
- protected static $country = array(
- 'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
- 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil', 'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi',
- 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
- 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
- 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
- 'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories',
- 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
- 'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong', 'Hungary',
- 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
- 'Jamaica', 'Japan', 'Jersey', 'Jordan',
- 'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
- 'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania', 'Luxembourg',
- 'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
- 'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
- 'Oman',
- 'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
- 'Qatar',
- 'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
- 'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
- 'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
- 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
- 'Vanuatu', 'Venezuela', 'Vietnam',
- 'Wallis and Futuna', 'Western Sahara',
- 'Yemen',
- 'Zambia', 'Zimbabwe'
+ 'EC', 'FS', 'GP', 'KZN', 'LP', 'MP', 'NW', 'NC', 'WC',
);
protected static $cityFormats = array(
'{{cityPrefix}} {{firstName}}{{citySuffix}}',
@@ -52,7 +25,7 @@ class Address extends \Faker\Provider\Address
);
protected static $streetNameFormats = array(
'{{firstName}} {{streetSuffix}}',
- '{{lastName}} {{streetSuffix}}'
+ '{{lastName}} {{streetSuffix}}',
);
protected static $streetAddressFormats = array(
'{{buildingNumber}} {{streetName}}',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php
new file mode 100644
index 00000000..ddb987aa
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php
@@ -0,0 +1,29 @@
+format('Y'),
+ static::randomNumber(6, true),
+ static::randomElement(static::$legalEntities)
+ );
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php
index 83f2a4eb..0c5c5f40 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php
@@ -5,5 +5,14 @@ namespace Faker\Provider\en_ZA;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'webmail.co.za', 'vodamail.co.za');
- protected static $tld = array('co.za', 'co.za', 'co.za', 'co.za', 'com', 'com', 'net');
+
+ /**
+ * @see https://en.wikipedia.org/wiki/.za
+ */
+ protected static $tld = array(
+ 'co.za', 'co.za', 'co.za', 'co.za', 'com', 'com', 'net', 'gov.za', 'ac.za', 'edu.za', 'law.za', 'mil.za',
+ 'net.za', 'nom.za', 'org.za', 'school.za', 'ecape.school.za', 'fs.school.za', 'gp.school.za', 'kzn.school.za',
+ 'mpm.za', 'ncape.school.za', 'lp.school.za', 'nw.school.za', 'wcape.school.za', 'web.za', 'agric.za', 'nis.za',
+ 'grondar.za',
+ );
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php
index 1750b3b0..d44d4731 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php
@@ -2,6 +2,8 @@
namespace Faker\Provider\en_ZA;
+use Faker\Calculator\Luhn;
+
class Person extends \Faker\Provider\Person
{
protected static $maleNameFormats = array(
@@ -15,10 +17,10 @@ class Person extends \Faker\Provider\Person
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
- '{{titleFemale}} {{$firstNameFemale}} {{lastName}}',
+ '{{titleFemale}} {{firstNameFemale}} {{lastName}}',
);
- protected static $firstNameMale =array(
+ protected static $firstNameMale = array(
'Abraham', 'Adriaan', 'Adrian', 'Ahmed', 'Alan', 'Albert', 'Alex', 'Alexander', 'Alfred', 'Allan', 'Andile', 'Andre', 'Andrew',
'André', 'Anthony', 'Anton', 'Arnold', 'Arthur', 'Ayanda', 'Barry', 'Ben', 'Benjamin', 'Bernard', 'Bongani', 'Bradley',
'Brandon', 'Brent', 'Brett', 'Brian', 'Bruce', 'Bryan', 'Carel', 'Carl', 'Charl', 'Charles', 'Chris', 'Christiaan',
@@ -121,6 +123,56 @@ class Person extends \Faker\Provider\Person
'Mulder', 'Enslin', 'Truter', 'Khuzwayo', 'Makhanya', 'Harmse', 'Loubser', 'Kleynhans', 'Paul', 'Nieuwoudt', 'Horn',
'Vosloo', 'Wentzel', 'Munyai', 'Kelly', 'Walters', 'Nzimande', 'Hoosen', 'Mkhabela', 'Madlala', 'Saunders', 'Palmer',
'Hughes', 'Hanekom', 'Ally', 'Schmidt', 'Butler', 'Mtsweni', 'Maphumulo', 'Manamela', 'Hoffman', 'Wolmarans', 'Duma',
- 'Pule', 'Hlophe', 'Miya', 'Moagi'
+ 'Pule', 'Hlophe', 'Miya', 'Moagi',
);
+
+ protected static $titleMale = array('Mr.', 'Dr.', 'Prof.', 'Rev.', 'Hon.');
+
+ protected static $titleFemale = array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.', 'Rev.', 'Hon.');
+
+ protected static $licenceCodes = array('A', 'A1', 'B', 'C', 'C1', 'C2', 'EB', 'EC', 'EC1', 'I', 'L', 'L1');
+
+ /**
+ * @link https://en.wikipedia.org/wiki/National_identification_number#South_Africa
+ *
+ * @param \DateTime $birthdate
+ * @param bool $citizen
+ * @param string $gender
+ *
+ * @return string
+ */
+ public function idNumber(\DateTime $birthdate = null, $citizen = true, $gender = null)
+ {
+ if (!$birthdate) {
+ $birthdate = $this->generator->dateTimeThisCentury();
+ }
+ $birthDateString = $birthdate->format('ymd');
+ switch (strtolower($gender)) {
+ case static::GENDER_FEMALE:
+ $genderDigit = self::numberBetween(0, 4);
+ break;
+ case static::GENDER_MALE:
+ $genderDigit = self::numberBetween(5, 9);
+ break;
+ default:
+ $genderDigit = self::numberBetween(0, 9);
+ }
+ $sequenceDigits = str_pad(self::randomNumber(3), 3, 0, STR_PAD_BOTH);
+ $citizenDigit = ($citizen === true) ? '0' : '1';
+ $raceDigit = self::numberBetween(8, 9);
+
+ $partialIdNumber = $birthDateString . $genderDigit . $sequenceDigits . $citizenDigit . $raceDigit;
+
+ return $partialIdNumber . Luhn::computeCheckDigit($partialIdNumber);
+ }
+
+ /**
+ * @see https://en.wikipedia.org/wiki/Driving_licence_in_South_Africa
+ *
+ * @return string
+ */
+ public function licenceCode()
+ {
+ return static::randomElement(static::$licenceCodes);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php
index 9de202d2..02a364d1 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php
@@ -5,13 +5,96 @@ namespace Faker\Provider\en_ZA;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
- '+27(##)##########',
- '+(#)##########',
- '08#########',
- '07########',
- '0##-###-####',
- '(0##)###-####',
- '0-800-###-####',
- '### ####'
+ '+27({{areaCode}})#######',
+ '+27{{areaCode}}#######',
+ '0{{areaCode}}#######',
+ '0{{areaCode}} ### ####',
+ '0{{areaCode}}-###-####',
);
+
+ protected static $cellphoneFormats = array(
+ '+27{{cellphoneCode}}#######',
+ '0{{cellphoneCode}}#######',
+ '0{{cellphoneCode}} ### ####',
+ '0{{cellphoneCode}}-###-####',
+ );
+
+ protected static $specialFormats = array(
+ '{{specialCode}}#######',
+ '{{specialCode}} ### ####',
+ '{{specialCode}}-###-####',
+ '({{specialCode}})###-####',
+ );
+
+ protected static $tollFreeAreaCodes = array(
+ '0800', '0860', '0861', '0862',
+ );
+
+ /**
+ * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_South_Africa
+ */
+ public static function areaCode()
+ {
+ $digits[] = self::numberBetween(1, 5);
+ switch ($digits[0]) {
+ case 1:
+ $digits[] = self::numberBetween(1, 8);
+ break;
+ case 2:
+ $number = self::numberBetween(1, 8);
+ $digits[] = in_array($number, array(5, 6)) ? $number + 2 : $number;
+ break;
+ case 3:
+ $number = self::numberBetween(1, 8);
+ $digits[] = in_array($number, array(7, 8)) ? $number - 2 : $number;
+ break;
+ case 4:
+ $digits[] = self::numberBetween(1, 9);
+ break;
+ case 5:
+ $number = self::numberBetween(1, 8);
+ $digits[] = in_array($number, array(2, 5)) ? $number + 2 : $number;
+ break;
+ }
+
+ return implode('', $digits);
+ }
+
+ public static function cellphoneCode()
+ {
+ $digits[] = self::numberBetween(6, 8);
+ switch ($digits[0]) {
+ case 6:
+ $digits[] = self::numberBetween(0, 2);
+ break;
+ case 7:
+ $number = self::numberBetween(1, 9);
+ $digits[] = in_array($number, array(5, 7)) ? $number + 1 : $number;
+ break;
+ case 8:
+ $digits[] = self::numberBetween(1, 9);
+ break;
+ }
+
+ return implode('', $digits);
+ }
+
+ public static function specialCode()
+ {
+ return static::randomElement(static::$tollFreeAreaCodes);
+ }
+
+ public function mobileNumber()
+ {
+ $format = static::randomElement(static::$cellphoneFormats);
+
+ return self::numerify($this->generator->parse($format));
+ }
+
+ public function tollFreeNumber()
+ {
+ $format = static::randomElement(static::$specialFormats);
+
+ return self::numerify($this->generator->parse($format));
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php
index 7510a268..70f503f0 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php
@@ -2,14 +2,12 @@
namespace Faker\Provider\es_AR;
-class Address extends \Faker\Provider\Address
+class Address extends \Faker\Provider\es_ES\Address
{
protected static $cityPrefix = array('San', 'Puerto', 'Villa', 'Gral.', 'Don');
protected static $citySuffix = array('del Mar', 'del Norte', 'del Este', 'del Sur', 'del Oeste', 'del Mirador');
protected static $buildingNumber = array('#####', '####', '###', '##', '#');
- protected static $streetSuffix = array(
- ''
- );
+ protected static $streetSuffix = array('');
protected static $postcode = array('####', '#####');
protected static $state = array(
'Buenos Aires', 'Catamarca', 'Chaco', 'Chubut', 'Córdoba', 'Corrientes', 'Entre RÃos', 'Formosa', 'Jujuy', 'La Pampa', 'La Rioja', 'Mendoza', 'Misiones', 'Neuquén', 'RÃo Negro', 'Salta', 'San Juan', 'San Luis', 'Santa Cruz', 'Santa Fe', 'Santiago del Estero', 'Tierra del Fuego, Antártida e Islas del Atlántico Sur', 'Tucumán'
@@ -17,31 +15,6 @@ class Address extends \Faker\Provider\Address
protected static $stateAbbr = array(
'AR-B', 'AR-K', 'AR-H', 'AR-U', 'AR-X', 'AR-W', 'AR-E', 'AR-P', 'AR-Y', 'AR-L', 'AR-F', 'AR-M', 'AR-N', 'AR-Q', 'AR-R', 'AR-A', 'AR-J', 'AR-D', 'AR-Z', 'AR-S', 'AR-G', 'AR-V', 'AR-T'
);
- protected static $country = array(
- 'Afganistán', 'Albania', 'Alemania', 'Andorra', 'Angola', 'Antigua y Barbuda', 'Arabia SaudÃ', 'Argelia', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaiyán',
- 'Bahamas', 'Bangladés', 'Barbados', 'Baréin', 'Belice', 'BenÃn', 'Bielorrusia', 'Birmania', 'Bolivia', 'Bosnia-Herzegovina', 'Botsuana', 'Brasil', 'Brunéi Darusalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Bután', 'Bélgica',
- 'Cabo Verde', 'Camboya', 'Camerún', 'Canadá', 'Catar', 'Chad', 'Chile', 'China', 'Chipre', 'Ciudad del Vaticano', 'Colombia', 'Comoras', 'Congo', 'Corea del Norte', 'Corea del Sur', 'Costa Rica', 'Costa de Marfil', 'Croacia', 'Cuba',
- 'Dinamarca', 'Dominica',
- 'Ecuador', 'Egipto', 'El Salvador', 'Emiratos Ãrabes Unidos', 'Eritrea', 'Eslovaquia', 'Eslovenia', 'España', 'Estados Unidos de América', 'Estonia', 'EtiopÃa',
- 'Filipinas', 'Finlandia', 'Fiyi', 'Francia',
- 'Gabón', 'Gambia', 'Georgia', 'Ghana', 'Granada', 'Grecia', 'Guatemala', 'Guinea', 'Guinea Ecuatorial', 'Guinea-Bisáu', 'Guyana',
- 'HaitÃ', 'Honduras', 'HungrÃa',
- 'India', 'Indonesia', 'Irak', 'Irlanda', 'Irán', 'Islandia', 'Islas Marshall', 'Islas Salomón', 'Israel', 'Italia',
- 'Jamaica', 'Japón', 'Jordania',
- 'Kazajistán', 'Kenia', 'Kirguistán', 'Kiribati', 'Kuwait',
- 'Laos', 'Lesoto', 'Letonia', 'Liberia', 'Libia', 'Liechtenstein', 'Lituania', 'Luxemburgo', 'LÃbano',
- 'Macedonia', 'Madagascar', 'Malasia', 'Malaui', 'Maldivas', 'Mali', 'Malta', 'Marruecos', 'Mauricio', 'Mauritania', 'Micronesia', 'Moldavia', 'Mongolia', 'Montenegro', 'Mozambique', 'México', 'Mónaco',
- 'Namibia', 'Nauru', 'Nepal', 'Nicaragua', 'Nigeria', 'Noruega', 'Nueva Zelanda', 'NÃger',
- 'Omán',
- 'Pakistán', 'Palaos', 'Panamá', 'Papúa Nueva Guinea', 'Paraguay', 'PaÃses Bajos', 'Perú', 'Polonia', 'Portugal',
- 'Reino Unido', 'Reino Unido de Gran Bretaña e Irlanda del Norte', 'República Centroafricana', 'República Checa', 'República Democrática del Congo', 'República Dominicana', 'Ruanda', 'RumanÃa', 'Rusia',
- 'Samoa', 'San Cristóbal y Nieves', 'San Marino', 'San Vicente y las Granadinas', 'Santa LucÃa', 'Santo Tomé y PrÃncipe', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leona', 'Singapur', 'Siria', 'Somalia', 'Sri Lanka', 'Suazilandia', 'Sudáfrica', 'Sudán', 'Suecia', 'Suiza', 'Surinam',
- 'Tailandia', 'Tanzania', 'Tayikistán', 'Timor Oriental', 'Togo', 'Tonga', 'Trinidad y Tobago', 'Turkmenistán', 'TurquÃa', 'Tuvalu', 'Túnez',
- 'Ucrania', 'Uganda', 'Uruguay', 'Uzbekistán',
- 'Vanuatu', 'Venezuela', 'Vietnam',
- 'Yemen', 'Yibuti',
- 'Zambia', 'Zimbabue'
- );
protected static $cityFormats = array(
'{{cityPrefix}} {{firstName}} {{citySuffix}}',
'{{cityPrefix}} {{firstName}}',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php
index 8e33f57c..b255ef6c 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php
@@ -48,7 +48,7 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
}
/**
@@ -61,6 +61,6 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php
index 4ec70f15..1c16f386 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php
@@ -39,12 +39,12 @@ class Person extends \Faker\Provider\Person
protected static $firstNameFemale = array(
'Abigail', 'Abril', 'Adriana', 'Agustina', 'Alejandra', 'Alessandra', 'Alexa', 'Allison', 'Alma', 'Amanda', 'Amelia', 'Ana', 'Ana Paula',
'Ana SofÃa', 'Andrea', 'Antonella', 'Antonia', 'Ariadna', 'Ariana', 'Ashley', 'Bianca', 'Camila', 'Carla', 'Carolina', 'Catalina',
- 'Clara', 'Constanza', 'Daniela', 'Delfina', 'Elena ', 'Elizabeth', 'Emilia', 'Emily', 'Emma', 'Fabiana', 'Florencia', 'Fátima ',
+ 'Clara', 'Constanza', 'Daniela', 'Delfina', 'Elena', 'Elizabeth', 'Emilia', 'Emily', 'Emma', 'Fabiana', 'Florencia', 'Fátima',
'Gabriela', 'Guadalupe', 'Irene', 'Isabel', 'Isabella', 'Isidora', 'Ivanna', 'JazmÃn', 'Josefa', 'Josefina', 'Juana', 'Julia',
'Juliana', 'Julieta', 'Laura', 'Lola', 'Luana', 'Luciana', 'LucÃa', 'Luna', 'Magdalena', 'Maite', 'Malena', 'Manuela',
'Mariana', 'Mariangel', 'Martina', 'MarÃa', 'MarÃa Alejandra', 'MarÃa Camila', 'MarÃa Fernanda', 'MarÃa José', 'MarÃa Paula', 'Micaela', 'Michelle', 'Miranda',
'Montserrat', 'MÃa', 'Nadia', 'Natalia', 'Nicole', 'Oliva', 'Olivia', 'Ornela', 'Paula', 'Paulina', 'Rafaela', 'Rebeca',
- 'Regina', 'Renata', 'Romina', 'Salomé', 'Samantha', 'Sara', 'Silvana ', 'SofÃa', 'Sophie', 'Valentina', 'Valeria', 'Valery ',
+ 'Regina', 'Renata', 'Romina', 'Salomé', 'Samantha', 'Sara', 'Silvana', 'SofÃa', 'Sophie', 'Valentina', 'Valeria', 'Valery',
'Victoria', 'Violeta', 'Zoe', 'Aitana', 'Sara SofÃa', 'Ximena'
);
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php
index 89f73b11..ee9f1e7a 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php
@@ -8,14 +8,14 @@ class Address extends \Faker\Provider\Address
protected static $citySuffix = array('del Vallès', 'del Penedès', 'del Bages', 'de Ulla', 'de Lemos', 'del Mirador', 'de Arriba', 'de la Sierra', 'del Barco', 'de San Pedro', 'del Pozo', 'del Puerto', 'de las Torres', 'Alta', 'Baja', 'Medio');
protected static $buildingNumber = array('###', '##', '#');
protected static $streetPrefix = array(
- 'Calle', 'Avenida', 'Plaza', 'Paseo', 'Ronda', 'Travesia', 'Camino', 'Carrer', 'Avinguda', 'Plaça', 'Passeig', 'Travessera', 'Rúa', 'Praza', 'Ruela', 'Camiño'
+ 'Calle', 'Avenida', 'Plaza', 'Paseo', 'Ronda', 'TravesÃa', 'Camino', 'Carrer', 'Avinguda', 'Plaça', 'Passeig', 'Travessera', 'Rúa', 'Praza', 'Ruela', 'Camiño'
);
protected static $postcode = array('#####');
protected static $community = array(
'AndalucÃa', 'Aragón', 'Principado de Asturias', 'Illes Balears', 'Canarias', 'Cantabria', 'Castilla y León', 'Castilla - La Mancha', 'Cataluña', 'Comunitat Valenciana', 'Extremadura', 'Galicia', 'Comunidad de Madrid', 'Región de Murcia', 'Comunidad Foral de Navarra', 'PaÃs Vasco', 'La Rioja', 'Ceuta', 'Melilla'
);
protected static $state = array(
- 'A Coruña', 'Alava', 'Albacete', 'Alicante', 'AlmerÃa', 'Asturias', 'Avila', 'Badajoz', 'Barcelona', 'Burgos', 'Cáceres', 'Cádiz', 'Cantabria', 'Castellón', 'Ceuta', 'Ciudad Real', 'Cuenca', 'Córdoba', 'Girona', 'Granada', 'Guadalajara', 'Guipuzkoa', 'Huelva', 'Huesca', 'Illes Balears', 'Jaén', 'La Rioja', 'Las Palmas', 'León', 'Lleida', 'Lugo', 'Málaga', 'Madrid', 'Melilla', 'Murcia', 'Navarra', 'Ourense', 'Palencia', 'Pontevedra', 'Salamanca', 'Segovia', 'Sevilla', 'Soria', 'Sta Cruz De Tenerife', 'Tarragona', 'Teruel', 'Toledo', 'Valencia', 'Valladolid', 'Vizcaya', 'Zamora', 'Zaragoza'
+ 'A Coruña', 'Ãlava', 'Albacete', 'Alicante', 'AlmerÃa', 'Asturias', 'Ãvila', 'Badajoz', 'Barcelona', 'Burgos', 'Cáceres', 'Cádiz', 'Cantabria', 'Castellón', 'Ceuta', 'Ciudad Real', 'Cuenca', 'Córdoba', 'Girona', 'Granada', 'Guadalajara', 'Guipuzkoa', 'Huelva', 'Huesca', 'Illes Balears', 'Jaén', 'La Rioja', 'Las Palmas', 'León', 'Lleida', 'Lugo', 'Málaga', 'Madrid', 'Melilla', 'Murcia', 'Navarra', 'Ourense', 'Palencia', 'Pontevedra', 'Salamanca', 'Segovia', 'Sevilla', 'Soria', 'Santa Cruz de Tenerife', 'Tarragona', 'Teruel', 'Toledo', 'Valencia', 'Valladolid', 'Vizcaya', 'Zamora', 'Zaragoza'
);
protected static $country = array(
'Afganistán','Albania','Alemania','Andorra','Angola','Antigua y Barbuda','Arabia SaudÃ','Argelia','Argentina','Armenia','Australia','Austria','Azerbaiyán',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Color.php
new file mode 100644
index 00000000..99f43324
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Color.php
@@ -0,0 +1,24 @@
+numberBetween($min = 10000, $max = 100000000);
+ $id = static::randomElement(static::$nationalityId);
+ if ($id == 'V') {
+ return $id . $separator . $this->numberBetween(10000, 100000000);
+ }
+
+ return $id . $separator . $this->numberBetween(80000000, 100000000);
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/et_EE/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/et_EE/Person.php
new file mode 100644
index 00000000..1589a4b3
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/et_EE/Person.php
@@ -0,0 +1,89 @@
+
+ */
+class Person extends \Faker\Provider\Person
+{
+ /**
+ * @link https://news.err.ee/114745/most-popular-baby-names-of-2014
+ * @link https://www.stat.ee/public/apps/nimed/TOP
+ */
+ protected static $firstNameMale = array(
+ "Andrei", "Aleksei", "Andres", "Alexander", "Aivar", "Aleksander", "Artur", "Andrus", "Ants", "Artjom", "Anatoli", "Anton", "Arvo", "Aare", "Ain", "Aleksandr",
+ "Dmitri", "Daniil", "Daniel",
+ "Eduard", "Erik", "Enn",
+ "Fjodorov",
+ "Gennadi",
+ "Heino", "Henri", "Hugo",
+ "Igor", "Indrek", "Ivan", "Ilja",
+ "Jüri", "Jaan", "Jevgeni", "Jaanus", "Janek", "Jaak",
+ "Kristjan", "Kalev", "Karl", "Kalle", "Kaido", "Kevin", "Konstantin", "Kaspar", "Kirill", "Kristo", "Kalju", "Kristofer",
+ "Lauri", "Lembit", "Laur",
+ "Martin", "Margus", "Maksim", "Marko", "Mati", "Meelis", "Mihhail", "Marek", "Mihkel", "Mart", "Madis", "Markus", "Mark", "Marten",
+ "Nikolai", "Nikita", "Nikolay",
+ "Oleg", "Oliver", "Oskar",
+ "Peeter", "Priit", "Pavel",
+ "Rein", "Roman", "Raivo", "Rasmus", "Raul", "Robert", "Riho", "Robin", "Romet",
+ "Sergei", "Sander", "Sergey", "Siim", "Silver", "Sebastian",
+ "Toomas", "Tarmo", "Tõnu", "Tiit", "Tanel", "Taavi", "Toivo", "Tõnis",
+ "Urmas", "Ülo",
+ "Vladimir", "Viktor", "Valeri", "Vello", "Vadim", "Vitali", "Vladislav", "Vjatšeslav", "Victor",
+ );
+
+ /**
+ * @link https://news.err.ee/114745/most-popular-baby-names-of-2014
+ * @link https://www.stat.ee/public/apps/nimed/TOP
+ */
+ protected static $firstNameFemale = array(
+ "Aino", "Aleksandra", "Alisa", "Anastasia", "Anna", "Anne", "Anneli", "Anu", "Arina", "Annika", "Anastassia", "Alla", "Aili", "Alina", "Aime", "Antonina",
+ "Darja", "Diana",
+ "Elena", "Eliise", "Elisabeth", "Emma", "Ene", "Eve", "Eha", "Evi",
+ "Galina",
+ "Hanna", "Helen", "Heli", "Helle", "Helgi",
+ "Irina", "Inna", "Ingrid",
+ "Jekaterina", "Jelena", "Julia", "Jana",
+ "Kadri", "Katrin", "Kristi", "Kristiina", "Kristina", "Karin", "Kersti", "Kristel", "Kaja", "Külli", "Kätlin", "Krista",
+ "Laura", "Lenna", "Liisa", "Linda", "Lisandra", "Ljubov", "Ljudmila", "Liina", "Ljudmilla", "Larissa", "Liis", "Lea", "Laine", "Liudmila",
+ "Maie", "Malle", "Mare", "Maria", "Marina", "Marleen", "Marta", "Merike", "Mia", "Milana", "Mirtel", "Marika", "Merle", "Margit", "Milvi", "Maire", "Margarita", "Mari", "Maarja",
+ "Natalia", "Niina", "Nora", "Natalja", "Nadežda", "Nina",
+ "Olga", "Oksana",
+ "Piret", "Polina", "Pille",
+ "Reet", "Riina",
+ "Sandra", "Sirje", "Sofia", "Svetlana", "Silvi",
+ "Tamara", "Tatiana", "Tiina", "Tiiu", "Triin", "Tatjana", "Tiia",
+ "Ülle", "Urve",
+ "Valentina", "Viktoria", "Veera", "Veronika", "Vaike",
+ "Zinaida",
+ );
+
+ /**
+ * @link https://en.wikipedia.org/wiki/Category:Estonian-language_surnames
+ * @link https://www.stat.ee/public/apps/nimed/pere/TOP
+ */
+ protected static $lastName = array(
+ "Aleksejev", "Andrejev", "Allik", "Aas", "Aleksandrov", "Aare", "Aarma", "Aas", "Aasmäe", "Aav", "Aavik", "Allik", "Alver", "Andrejeva", "Aleksejeva", "Aleksandrova", "Allik", "Aas",
+ "Bogdanova", "Bogdanov",
+ "Eenpalu", "Eskola",
+ "Fjodorov", "Fjodorov", "Fjodorova", "Fjodorova",
+ "Grigorjev", "Grigorjeva",
+ "Hunt", "Hein", "Hein", "Härma",
+ "Ivanov", "Ilves", "Ilves", "Ivanov", "Ivanova", "Ivanova", "Ilves",
+ "Jõgi", "Jakobson", "Jakovlev", "Jürgenson", "Jegorov", "Järv", "Johanson", "Järve", "Jakobson", "Jänes", "Järve", "Järvis", "Jõgi", "Jõgi", "Johanson", "Jürgenson", "Järv", "Jakovleva", "Jegorova", "Järve", "Jakobson",
+ "Kuzmina", "Kalda", "Kozlova", "Kruus", "Kask", "Kukk", "Kuznetsov", "Koppel", "Kaasik", "Kuusk", "Karu", "Kütt", "Kallas", "Kivi", "Kangur", "Kuusik", "Kõiv", "Kozlov", "Kull", "Kuzmin", "Kalda", "Kaaleste", "Kaasik", "Käbin", "Kalda", "Kaljulaid", "Kaljurand", "Kallas", "Kallaste", "Kangro", "Kangur", "Kapp", "Kärner", "Karu", "Kask", "Käsper", "Kass", "Keres", "Keskküla", "Kesküla", "Kikkas", "Kingsepp", "Kirs", "Kirsipuu", "Kivi", "Klavan", "Kõiv", "Kokk", "Kontaveit", "Koppel", "Korjus", "Kotkas", "Kreek", "Kross", "Kruus", "Kukk", "Kull", "Kütt", "Kuusik", "Kuusk", "Kuznetsov", "Kuznetsova", "Kask", "Kukk", "Kuznetsova", "Koppel", "Kaasik", "Kuusk", "Karu", "Kütt", "Kallas", "Kivi", "Kuusik", "Kangur", "Kõiv", "Kull",
+ "Luik", "Lepik", "Lepp", "Lõhmus", "Liiv", "Laur", "Leppik", "Lebedev", "Laas", "Laar", "Laht", "Lass", "Laur", "Laurits", "Lemsalu", "Lepik", "Lepmets", "Lepp", "Leppik", "Levandi", "Liiv", "Lill", "Lindmaa", "Linna", "Lipp", "Lippmaa", "Lõhmus", "Loo", "Lõoke", "Luik", "Luts", "Luik", "Lepik", "Lepp", "Lõhmus", "Laur", "Liiv", "Leppik", "Lebedeva", "Laas",
+ "Männik", "Mänd", "Mitt", "Makarova", "Mägi", "Mets", "Mihhailov", "Mölder", "Morozov", "Mitt", "Männik", "Mõttus", "Mänd", "Makarov", "Mägi", "Mälk", "Mänd", "Männik", "Margiste", "Mark", "Masing", "Mets", "Mihhailov", "Mihhailova", "Mölder", "Must", "Mägi", "Mets", "Mihhailova", "Mölder", "Morozova",
+ "Nikolajev", "Nõmm", "Nikitin", "Novikov", "Nõmmik", "Nurme", "Nurmsalu", "Nõmm", "Nikitina", "Nikolajeva",
+ "Orlova", "Orav", "Oja", "Ots", "Orav", "Orlov", "Oja", "Olesk", "Öpik", "Orav", "Ots", "Oja", "Ots",
+ "Petrov", "Pärn", "Põder", "Pavlov", "Popov", "Peterson", "Puusepp", "Paju", "Põld", "Pukk", "Paas", "Palm", "Pääsuke", "Padar", "Pärn", "Pavlov", "Pavlova", "Peebo", "Peetre", "Peterson", "Petrov", "Petrova", "Pihlak", "Piho", "Piip", "Põder", "Põld", "Popov", "Popova", "Poska", "Puhvel", "Pütsep", "Puusepp", "Petrova", "Pärn", "Pavlova", "Põder", "Peterson", "Popova", "Puusepp", "Paas", "Paju", "Pukk", "Parts", "Palm", "Põld",
+ "Romanova", "Rand", "Roos", "Rebane", "Raudsepp", "Raud", "Rand", "Roos", "Rätsep", "Raag", "Raud", "Raudsepp", "Rebane", "Reek", "Reinsalu", "Rooba", "Roolaid", "Rootare", "Rummo", "Rüütel", "Rüütli", "Rebane", "Raudsepp", "Raud",
+ "Saar", "Sepp", "Smirnov", "Stepanov", "Semjonov", "Sokolov", "Sild", "Sarapuu", "Saks", "Saar", "Salumäe", "Semjonov", "Sepp", "Sibul", "Siimar", "Simm", "Sirel", "Sisask", "Smirnov", "Smirnova", "Sokk", "Sokolov", "Soosaar", "Stepanov", "Stepanova", "Susi", "Saar", "Sepp", "Smirnova", "Stepanova", "Sokolova", "Saks", "Sarapuu", "Sild", "Semjonova",
+ "Tamme", "Tomson", "Tamm", "Teder", "Toom", "Tomson", "Tamme", "Talts", "Tamm", "Tamme", "Tarvas", "Teder", "Toom", "Toome", "Toots", "Tamm", "Teder", "Toom",
+ "Uibo", "Uibo",
+ "Vassiljev", "Vaher", "Volkov", "Valk", "Vaher", "Vahtra", "Vaino", "Vainola", "Välbe", "Valdma", "Väljas", "Valk", "Vassiljev", "Vassiljeva", "Vesik", "Veski", "Viiding", "Vitsut", "Võigemast", "Volkov", "Volkova", "Võsu", "Vassiljeva", "Vaher", "Volkova",
+ );
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php
new file mode 100644
index 00000000..f2209138
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php
@@ -0,0 +1,100 @@
+generator->parse($format);
+ }
+
+ /**
+ * @example 'کد پستی'
+ */
+ public static function postcodePrefix()
+ {
+ return static::randomElement(static::$postcodePrefix);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php
new file mode 100644
index 00000000..0de47b35
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php
@@ -0,0 +1,57 @@
+ 1; $i--) {
+ $sum += $subNationalCodeString[$count] * ($i);
+ $count++;
+ }
+
+ if (($sum % 11) < 2) {
+ return $sum % 11;
+ }
+ return 11 - ($sum % 11);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php
new file mode 100644
index 00000000..fb80b1d2
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php
@@ -0,0 +1,75 @@
+format('dmy');
+
+ switch ((int)($birthdate->format('Y')/100)) {
+ case 18:
+ $centurySign = '+';
+ break;
+ case 19:
+ $centurySign = '-';
+ break;
+ case 20:
+ $centurySign = 'A';
+ break;
+ default:
+ throw new \InvalidArgumentException('Year must be between 1800 and 2099 inclusive.');
+ }
+
+ $randomDigits = self::numberBetween(0, 89);
+ if ($gender && $gender == static::GENDER_MALE) {
+ if ($randomDigits === 0) {
+ $randomDigits .= static::randomElement(array(3,5,7,9));
+ } else {
+ $randomDigits .= static::randomElement(array(1,3,5,7,9));
+ }
+ } elseif ($gender && $gender == static::GENDER_FEMALE) {
+ if ($randomDigits === 0) {
+ $randomDigits .= static::randomElement(array(2,4,6,8));
+ } else {
+ $randomDigits .= static::randomElement(array(0,2,4,6,8));
+ }
+ } else {
+ if ($randomDigits === 0) {
+ $randomDigits .= self::numberBetween(2, 9);
+ } else {
+ $randomDigits .= (string)static::numerify('#');
+ }
+ }
+ $randomDigits = str_pad($randomDigits, 3, '0', STR_PAD_LEFT);
+
+ $checksum = $checksumCharacters[(int)($datePart . $randomDigits) % strlen($checksumCharacters)];
+
+ return $datePart . $centurySign . $randomDigits . $checksum;
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php
index 39f0e784..a3230740 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php
@@ -4,17 +4,96 @@ namespace Faker\Provider\fi_FI;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
- protected static $formats = array(
- '+358 (40) ### ####',
- '+358 (50) ### ####',
- '+358 40 ### ####',
- '+358 50 ### ####',
- '040 ### ####',
- '050 ### ####',
- '###-########',
- '### #######',
- '040-#######',
- '050-#######',
- '(###) #######'
+ /**
+ * @link https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/localcallsandtelecommunicationsareas/mapoftelecommunicationsareas.html
+ * @var array
+ */
+ protected static $landLineareaCodes = array(
+ '02',
+ '03',
+ '05',
+ '06',
+ '08',
+ '09',
+ '013',
+ '014',
+ '015',
+ '016',
+ '017',
+ '018',
+ '019',
);
+
+ /**
+ * @link https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/mobilenetworks/mobilenetworkareacodes.html
+ * @var array
+ */
+ protected static $mobileNetworkAreaCodes = array(
+ '040',
+ '050',
+ '044',
+ '045',
+ );
+
+ protected static $numberFormats = array(
+ '### ####',
+ '#######',
+ );
+
+ protected static $formats = array(
+ '+358 ({{ e164MobileNetworkAreaCode }}) {{ numberFormat }}',
+ '+358 {{ e164MobileNetworkAreaCode }} {{ numberFormat }}',
+ '+358 ({{ e164landLineAreaCode }}) {{ numberFormat }}',
+ '+358 {{ e164landLineAreaCode }} {{ numberFormat }}',
+ '{{ mobileNetworkAreaCode }}{{ separator }}{{ numberFormat }}',
+ '{{ landLineAreaCode }}{{ separator }}{{ numberFormat }}',
+ );
+
+ /**
+ * @return string
+ */
+ public function landLineAreaCode()
+ {
+ return static::randomElement(static::$landLineareaCodes);
+ }
+
+ /**
+ * @return string
+ */
+ public function e164landLineAreaCode()
+ {
+ return substr(static::randomElement(static::$landLineareaCodes), 1);
+ }
+
+ /**
+ * @return string
+ */
+ public function mobileNetworkAreaCode()
+ {
+ return static::randomElement(static::$mobileNetworkAreaCodes);
+ }
+
+ /**
+ * @return string
+ */
+ public function e164MobileNetworkAreaCode()
+ {
+ return substr(static::randomElement(static::$mobileNetworkAreaCodes), 1);
+ }
+
+ /**
+ * @return string
+ */
+ public function numberFormat()
+ {
+ return static::randomElement(static::$numberFormats);
+ }
+
+ /**
+ * @return string
+ */
+ public function separator()
+ {
+ return static::randomElement(array(' ', '-'));
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php
index 9aa35bff..7ecef77a 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php
@@ -2,7 +2,7 @@
namespace Faker\Provider\fr_BE;
-class Address extends \Faker\Provider\Address
+class Address extends \Faker\Provider\fr_FR\Address
{
protected static $postcode = array('####');
@@ -50,25 +50,6 @@ class Address extends \Faker\Provider\Address
'Hainaut', 'Liège', 'Luxembourg', 'Namur', 'Brabant wallon'
);
- protected static $country = array(
- 'Afghanistan', 'Afrique du sud', 'Albanie', 'Algérie', 'Allemagne', 'Andorre', 'Angola', 'Anguilla', 'Antarctique', 'Antigua et Barbuda', 'Antilles néerlandaises', 'Arabie saoudite', 'Argentine', 'Arménie', 'Aruba', 'Australie', 'Autriche', 'Azerbaïdjan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Belgique', 'Belize', 'Benin', 'Les Bermudes', 'Bhoutan', 'Biélorussie', 'Bolivie', 'Bosnie-Herzégovine', 'Botswana', 'Îles Bouvet', 'Brunei', 'Brésil', 'Bulgarie', 'Burkina Faso', 'Burundi', 'Cambodge', 'Cameroun', 'Canada', 'Cap Vert', 'Îles Cayman', 'Chili', 'Chine', 'Île Christmas', 'Chypre', 'Îles Cocos', 'Colombie', 'Comores', 'Îles Cook', 'Corée du Nord', 'Corée du Sud', 'Costa Rica', 'Croatie', 'Cuba', 'Côte d\'Ivoire', 'Danemark', 'Djibouti', 'Dominique', 'Égypte', 'El Salvador', 'Émirats arabes unis', 'Équateur', 'Érythrée', 'Espagne', 'Estonie', 'États-Unis', 'Ethiopie', 'Île Falkland', 'République des Fidji', 'Finlande', 'France', 'Îles Féroé', 'Gabon',
- 'Gambie', 'Ghana', 'Gibraltar', 'Grenade', 'Groenland', 'Grèce', 'Guadeloupe', 'Guam', 'Guatemala', 'Guinée', 'Guinée Equatoriale', 'Guinée-Bissau', 'Guyane', 'Guyane française', 'Géorgie', 'Îles Géorgie du Sud et Sandwich du Sud', 'Haïti', 'Îles Heard et McDonald', 'Honduras', 'Hong Kong', 'Hongrie', 'Îles Mineures Éloignées des États-Unis', 'Inde', 'Indonésie', 'Irak', 'Iran', 'Irlande', 'Islande', 'Israël', 'Italie', 'Jamaïque', 'Japon', 'Jordanie', 'Kazakhstan', 'Kenya', 'Kirghizistan', 'Kiribati', 'Koweit', 'La Barbad', 'Laos', 'Lesotho', 'Lettonie', 'Liban', 'Libye', 'Libéria', 'Liechtenstein', 'Lithuanie', 'Luxembourg', 'Macau', 'Macédoine', 'Madagascar', 'Malaisie', 'Malawi', 'Îles Maldives', 'Mali', 'Malte', 'Îles Mariannes du Nord', 'Maroc', 'Îles Marshall', 'Martinique', 'Maurice', 'Mauritanie', 'Mayotte', 'Mexique', 'États fédérés de Micronésie', 'Moldavie', 'Monaco', 'Mongolie', 'Montserrat', 'Mozambique', 'Myanmar', 'Namibie', 'Nauru', 'Nepal',
- 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'ÃŽles Norfolk', 'Norvège', 'Nouvelle Calédonie', 'Nouvelle-Zélande', 'Oman', 'Ouganda', 'Ouzbékistan', 'Pakistan', 'Palau', 'Panama', 'Papouasie-Nouvelle-Guinée', 'Paraguay', 'Pays-Bas', 'Philippines', 'ÃŽles Pitcairn', 'Pologne', 'Polynésie française', 'Porto Rico', 'Portugal', 'Pérou', 'Qatar', 'Roumanie', 'Royaume-Uni', 'Russie', 'Rwanda', 'Rép. dém. du Congo', 'République centrafricaine', 'République dominicaine', 'République tchèque', 'La Réunion', 'Sahara Occidental', 'Saint Pierre et Miquelon', 'Saint Vincent et les Grenadines', 'Saint-Kitts et Nevis', 'Saint-Marin', 'Sainte Hélène', 'Sainte Lucie', 'Samoa', 'Samoa', 'Seychelles', 'Sierra Leone', 'Singapour', 'Slovaquie', 'Slovénie', 'Somalie', 'Soudan', 'Sri Lanka', 'Suisse', 'Suriname', 'Suède', 'ÃŽles Svalbard et Jan Mayen', 'Swaziland', 'Syrie', 'São Tomé et PrÃncipe', 'Sénégal', 'Tadjikistan', 'Taiwan', 'Tanzanie', 'Tchad',
- 'Territoire britannique de l\'océan Indien', 'Territoires français du sud', 'Thailande', 'Timor', 'Togo', 'Tokelau', 'Tonga', 'Trinité et Tobago', 'Tunisie', 'Turkménistan', 'Îles Turks et Caïques', 'Turquie', 'Tuvalu', 'Ukraine', 'Uruguay', 'Vanuatu', 'Vatican', 'Venezuela', 'Îles Vierges', 'Îles Vierges britanniques', 'Vietnam', 'Îles Wallis et Futuna', 'Yemen', 'Yougoslavie', 'Zambie', 'Zaïre', 'Zimbabwe'
- );
-
- /**
- * Randomly returns a belgian region.
- *
- * @example 'wallonne'
- *
- * @return string
- */
- public static function region()
- {
- return static::randomElement(static::$region);
- }
-
/**
* Randomly returns a belgian province.
*
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php
index f1961301..6b8c0c7d 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php
@@ -2,7 +2,7 @@
namespace Faker\Provider\fr_BE;
-class Company extends \Faker\Provider\Company
+class Company extends \Faker\Provider\fr_FR\Company
{
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php
index c281183f..21da5b5c 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php
@@ -16,4 +16,24 @@ class Payment extends \Faker\Provider\Payment
{
return static::iban($countryCode, $prefix, $length);
}
+
+ /**
+ * Value Added Tax (VAT)
+ *
+ * @example 'BE0123456789', ('spaced') 'BE 0123456789'
+ *
+ * @see http://ec.europa.eu/taxation_customs/vies/faq.html?locale=en#item_11
+ * @see http://www.iecomputersystems.com/ordering/eu_vat_numbers.htm
+ * @see http://en.wikipedia.org/wiki/VAT_identification_number
+ *
+ * @param bool $spacedNationalPrefix
+ *
+ * @return string VAT Number
+ */
+ public static function vat($spacedNationalPrefix = true)
+ {
+ $prefix = $spacedNationalPrefix ? "BE " : "BE";
+
+ return sprintf("%s0%d", $prefix, self::randomNumber(9, true));
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php
index 1ea91bdd..4930b54f 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php
@@ -2,7 +2,7 @@
namespace Faker\Provider\fr_CA;
-class Address extends \Faker\Provider\Address
+class Address extends \Faker\Provider\fr_FR\Address
{
protected static $cityPrefix = array('Saint-', 'Sainte-', 'St-', 'Ste-');
@@ -76,44 +76,13 @@ class Address extends \Faker\Provider\Address
protected static $secondaryAddressFormats = array('Apt. ###', 'Suite ###', 'Bureau ###');
protected static $state = array(
- 'Alberta', 'Colombie-Brittanique', 'Manitoba', 'Nouveau-Brunswick', 'Terre-Neuve-et-Labrador', 'Nouvelle-Écosse', 'Ontario', 'Île-du-Prince-Édouard', 'Québec', 'Saskatchewan'
+ 'Alberta', 'Colombie-Britannique', 'Manitoba', 'Nouveau-Brunswick', 'Terre-Neuve-et-Labrador', 'Nouvelle-Écosse', 'Ontario', 'Île-du-Prince-Édouard', 'Québec', 'Saskatchewan'
);
protected static $stateAbbr = array(
'AB', 'BC', 'MB', 'NB', 'NL', 'NS', 'ON', 'PE', 'QC', 'SK'
);
- /**
- * This list is the same as in \Faker\Provider\fr_FR\Address.php
- */
- protected static $country = array(
- 'Afghanistan', 'Afrique du sud', 'Albanie', 'Algérie', 'Allemagne', 'Andorre', 'Angola', 'Anguilla', 'Antarctique', 'Antigua et Barbuda', 'Antilles néerlandaises', 'Arabie saoudite', 'Argentine', 'Arménie', 'Aruba', 'Australie', 'Autriche', 'Azerbaïdjan',
- 'Bahamas', 'Bahrain', 'Bangladesh', 'Belgique', 'Belize', 'Benin', 'Bermudes (Les)', 'Bhoutan', 'Biélorussie', 'Bolivie', 'Bosnie-Herzégovine', 'Botswana', 'Bouvet (Îles)', 'Brunei', 'Brésil', 'Bulgarie', 'Burkina Faso', 'Burundi',
- 'Cambodge', 'Cameroun', 'Canada', 'Cap Vert', 'Cayman (Îles)', 'Chili', 'Chine (Rép. pop.)', 'Christmas (Île)', 'Chypre', 'Cocos (Îles)', 'Colombie', 'Comores', 'Cook (Îles)', 'Corée du Nord', 'Corée, Sud', 'Costa Rica', 'Croatie', 'Cuba', 'Côte d\'Ivoire',
- 'Danemark', 'Djibouti', 'Dominique',
- 'Égypte', 'El Salvador', 'Émirats arabes unis', 'Équateur', 'Érythrée', 'Espagne', 'Estonie', 'États-Unis', 'Ethiopie',
- 'Falkland (Île)', 'Fidji (République des)', 'Finlande', 'France', 'Féroé (Îles)',
- 'Gabon', 'Gambie', 'Ghana', 'Gibraltar', 'Grenade', 'Groenland', 'Grèce', 'Guadeloupe', 'Guam', 'Guatemala', 'Guinée', 'Guinée Equatoriale', 'Guinée-Bissau', 'Guyane', 'Guyane française', 'Géorgie', 'Géorgie du Sud et Sandwich du Sud (Îles)',
- 'Haïti', 'Heard et McDonald (Îles)', 'Honduras', 'Hong Kong', 'Hongrie',
- 'Îles Mineures Éloignées des États-Unis', 'Inde', 'Indonésie', 'Irak', 'Iran', 'Irlande', 'Islande', 'Israël', 'Italie',
- 'Jamaïque', 'Japon', 'Jordanie',
- 'Kazakhstan', 'Kenya', 'Kirghizistan', 'Kiribati', 'Koweit',
- 'La Barbade', 'Laos', 'Lesotho', 'Lettonie', 'Liban', 'Libye', 'Libéria', 'Liechtenstein', 'Lithuanie', 'Luxembourg',
- 'Macau', 'Macédoine', 'Madagascar', 'Malaisie', 'Malawi', 'Maldives (Îles)', 'Mali', 'Malte', 'Mariannes du Nord (Îles)', 'Maroc', 'Marshall (Îles)', 'Martinique', 'Maurice', 'Mauritanie', 'Mayotte', 'Mexique', 'Micronésie (États fédérés de)', 'Moldavie', 'Monaco', 'Mongolie', 'Montserrat', 'Mozambique', 'Myanmar',
- 'Namibie', 'Nauru', 'Nepal', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk (Îles)', 'Norvège', 'Nouvelle Calédonie', 'Nouvelle-Zélande',
- 'Oman', 'Ouganda', 'Ouzbékistan',
- 'Pakistan', 'Palau', 'Panama', 'Papouasie-Nouvelle-Guinée', 'Paraguay', 'Pays-Bas', 'Philippines', 'Pitcairn (Îles)', 'Pologne', 'Polynésie française', 'Porto Rico', 'Portugal', 'Pérou',
- 'Qatar',
- 'Roumanie', 'Royaume-Uni', 'Russie', 'Rwanda', 'Rép. Dém. du Congo', 'République centrafricaine', 'République Dominicaine', 'République tchèque', 'Réunion (La)',
- 'Sahara Occidental', 'Saint Pierre et Miquelon', 'Saint Vincent et les Grenadines', 'Saint-Kitts et Nevis', 'Saint-Marin (Rép. de)', 'Sainte Hélène', 'Sainte Lucie', 'Samoa', 'Samoa', 'Seychelles', 'Sierra Leone', 'Singapour', 'Slovaquie', 'Slovénie', 'Somalie', 'Soudan', 'Sri Lanka', 'Suisse', 'Suriname', 'Suède', 'Svalbard et Jan Mayen (ÃŽles)', 'Swaziland', 'Syrie', 'São Tomé et PrÃncipe (Rép.)', 'Sénégal',
- 'Tadjikistan', 'Taiwan', 'Tanzanie', 'Tchad', 'Territoire britannique de l\'océan Indien', 'Territoires français du sud', 'Thailande', 'Timor', 'Togo', 'Tokelau', 'Tonga', 'Trinité et Tobago', 'Tunisie', 'Turkménistan', 'Turks et Caïques (Îles)', 'Turquie', 'Tuvalu',
- 'Ukraine', 'Uruguay',
- 'Vanuatu', 'Vatican (Etat du)', 'Venezuela', 'Vierges (ÃŽles)', 'Vierges britanniques (ÃŽles)', 'Vietnam',
- 'Wallis et Futuna (ÃŽles)',
- 'Yemen', 'Yougoslavie',
- 'Zambie', 'Zaïre', 'Zimbabwe'
- );
-
/**
* @example 'Saint-'
*/
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php
new file mode 100644
index 00000000..b6ffefdc
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php
@@ -0,0 +1,7 @@
+ 'Argovie'),
+ array('AI' => 'Appenzell Rhodes-Intérieures'),
+ array('AR' => 'Appenzell Rhodes-Extérieures'),
+ array('BE' => 'Berne'),
+ array('BL' => 'Bâle-Campagne'),
+ array('BS' => 'Bâle-Ville'),
+ array('FR' => 'Fribourg'),
+ array('GE' => 'Genève'),
+ array('GL' => 'Glaris'),
+ array('GR' => 'Grisons'),
+ array('JU' => 'Jura'),
+ array('LU' => 'Lucerne'),
+ array('NE' => 'Neuchâtel'),
+ array('NW' => 'Nidwald'),
+ array('OW' => 'Obwald'),
+ array('SG' => 'Saint-Gall'),
+ array('SH' => 'Schaffhouse'),
+ array('SO' => 'Soleure'),
+ array('SZ' => 'Schwytz'),
+ array('TG' => 'Thurgovie'),
+ array('TI' => 'Tessin'),
+ array('UR' => 'Uri'),
+ array('VD' => 'Vaud'),
+ array('VS' => 'Valais'),
+ array('ZG' => 'Zoug'),
+ array('ZH' => 'Zurich')
+ );
+
+ protected static $cityFormats = array(
+ '{{cityName}}',
+ );
+
+ protected static $streetNameFormats = array(
+ '{{streetPrefix}} {{lastName}}',
+ '{{streetPrefix}} de {{cityName}}',
+ '{{streetPrefix}} de {{lastName}}'
+ );
+
+ protected static $streetAddressFormats = array(
+ '{{streetName}} {{buildingNumber}}',
+ );
+ protected static $addressFormats = array(
+ "{{streetAddress}}\n{{postcode}} {{city}}",
+ );
+
+ /**
+ * Returns a random street prefix
+ * @example Rue
+ * @return string
+ */
+ public static function streetPrefix()
+ {
+ return static::randomElement(static::$streetPrefix);
+ }
+
+ /**
+ * Returns a random city name.
+ * @example Luzern
+ * @return string
+ */
+ public function cityName()
+ {
+ return static::randomElement(static::$cityNames);
+ }
+
+ /**
+ * Returns a canton
+ * @example array('BE' => 'Bern')
+ * @return array
+ */
+ public static function canton()
+ {
+ return static::randomElement(static::$canton);
+ }
+
+ /**
+ * Returns the abbreviation of a canton.
+ * @return string
+ */
+ public static function cantonShort()
+ {
+ $canton = static::canton();
+ return key($canton);
+ }
+
+ /**
+ * Returns the name of canton.
+ * @return string
+ */
+ public static function cantonName()
+ {
+ $canton = static::canton();
+ return current($canton);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php
new file mode 100644
index 00000000..a4e91eaf
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php
@@ -0,0 +1,15 @@
+ 'Guadeloupe'), array('972' => 'Martinique'), array('973' => 'Guyane'), array('974' => 'La Réunion'), array('976' => 'Mayotte')
);
+ protected static $secondaryAddressFormats = array('Apt. ###', 'Suite ###', 'Étage ###', "Bât. ###", "Chambre ###");
+
+ /**
+ * @example 'Appt. 350'
+ */
+ public static function secondaryAddress()
+ {
+ return static::numerify(static::randomElement(static::$secondaryAddressFormats));
+ }
+
/**
* @example 'rue'
*/
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php
index 5f440666..9112802c 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php
@@ -51,7 +51,7 @@ class Company extends \Faker\Provider\Company
/**
* @var array Company suffixes.
*/
- protected static $companySuffix = array('SA', 'S.A.', 'SARL', 'S.A.R.L.', 'S.A.S.', 'et Fils');
+ protected static $companySuffix = array('SA', 'S.A.', 'SARL', 'S.A.R.L.', 'SAS', 'S.A.S.', 'et Fils');
protected static $siretNicFormats = array('####', '0###', '00#%');
@@ -112,7 +112,7 @@ class Company extends \Faker\Provider\Company
*/
public function siret($formatted = true)
{
- $siret = $this->siren(false);
+ $siret = self::siren(false);
$nicFormat = static::randomElement(static::$siretNicFormats);
$siret .= $this->numerify($nicFormat);
$siret .= Luhn::computeCheckDigit($siret);
@@ -129,9 +129,9 @@ class Company extends \Faker\Provider\Company
* @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_entreprises
* @return string
*/
- public function siren($formatted = true)
+ public static function siren($formatted = true)
{
- $siren = $this->numerify('%#######');
+ $siren = self::numerify('%#######');
$siren .= Luhn::computeCheckDigit($siren);
if ($formatted) {
$siren = substr($siren, 0, 3) . ' ' . substr($siren, 3, 3) . ' ' . substr($siren, 6, 3);
@@ -166,4 +166,311 @@ class Company extends \Faker\Provider\Company
return true;
}
+
+ /**
+ * @link http://www.pole-emploi.fr/candidat/le-code-rome-et-les-fiches-metiers-@/article.jspz?id=60702
+ * @note Randomly took 300 from this list
+ */
+ protected static $jobTitleFormat = array(
+ 'Agent d\'accueil',
+ 'Agent d\'enquêtes',
+ 'Agent d\'entreposage',
+ 'Agent de curage',
+ 'Agro-économiste',
+ 'Aide couvreur',
+ 'Aide à domicile',
+ 'Aide-déménageur',
+ 'Ambassadeur',
+ 'Analyste télématique',
+ 'Animateur d\'écomusée',
+ 'Animateur web',
+ 'Appareilleur-gazier',
+ 'Archéologue',
+ 'Armurier d\'art',
+ 'Armurier spectacle',
+ 'Artificier spectacle',
+ 'Artiste dramatique',
+ 'Aspigiculteur',
+ 'Assistant de justice',
+ 'Assistant des ventes',
+ 'Assistant logistique',
+ 'Assistant styliste',
+ 'Assurance',
+ 'Auteur-adaptateur',
+ 'Billettiste voyages',
+ 'Brigadier',
+ 'Bruiteur',
+ 'Bâtonnier d\'art',
+ 'Bûcheron',
+ 'Cameraman',
+ 'Capitaine de pêche',
+ 'Carrier',
+ 'Caviste',
+ 'Chansonnier',
+ 'Chanteur',
+ 'Chargé de recherche',
+ 'Chasseur-bagagiste',
+ 'Chef de fabrication',
+ 'Chef de scierie',
+ 'Chef des ventes',
+ 'Chef du personnel',
+ 'Chef géographe',
+ 'Chef monteur son',
+ 'Chef porion',
+ 'Chiropraticien',
+ 'Choréologue',
+ 'Chromiste',
+ 'Cintrier-machiniste',
+ 'Clerc hors rang',
+ 'Coach sportif',
+ 'Coffreur béton armé',
+ 'Coffreur-ferrailleur',
+ 'Commandant de police',
+ 'Commandant marine',
+ 'Commis de coupe',
+ 'Comptable unique',
+ 'Conception et études',
+ 'Conducteur de jumbo',
+ 'Conseiller culinaire',
+ 'Conseiller funéraire',
+ 'Conseiller relooking',
+ 'Consultant ergonome',
+ 'Contrebassiste',
+ 'Convoyeur garde',
+ 'Copiste offset',
+ 'Corniste',
+ 'Costumier-habilleur',
+ 'Coutelier d\'art',
+ 'Cueilleur de cerises',
+ 'Céramiste concepteur',
+ 'Danse',
+ 'Danseur',
+ 'Data manager',
+ 'Dee-jay',
+ 'Designer produit',
+ 'Diététicien conseil',
+ 'Diététique',
+ 'Doreur sur métaux',
+ 'Décorateur-costumier',
+ 'Défloqueur d\'amiante',
+ 'Dégustateur',
+ 'Délégué vétérinaire',
+ 'Délégué à la tutelle',
+ 'Désamianteur',
+ 'Détective',
+ 'Développeur web',
+ 'Ecotoxicologue',
+ 'Elagueur-botteur',
+ 'Elagueur-grimpeur',
+ 'Elastiqueur',
+ 'Eleveur d\'insectes',
+ 'Eleveur de chats',
+ 'Eleveur de volailles',
+ 'Embouteilleur',
+ 'Employé d\'accueil',
+ 'Employé d\'étage',
+ 'Employé de snack-bar',
+ 'Endivier',
+ 'Endocrinologue',
+ 'Epithésiste',
+ 'Essayeur-retoucheur',
+ 'Etainier',
+ 'Etancheur',
+ 'Etancheur-bardeur',
+ 'Etiqueteur',
+ 'Expert back-office',
+ 'Exploitant de tennis',
+ 'Extraction',
+ 'Facteur',
+ 'Facteur de clavecins',
+ 'Facteur de secteur',
+ 'Fantaisiste',
+ 'Façadier-bardeur',
+ 'Façadier-ravaleur',
+ 'Feutier',
+ 'Finance',
+ 'Flaconneur',
+ 'Foreur pétrole',
+ 'Formateur d\'italien',
+ 'Fossoyeur',
+ 'Fraiseur',
+ 'Fraiseur mouliste',
+ 'Frigoriste maritime',
+ 'Fromager',
+ 'Galeriste',
+ 'Gardien de résidence',
+ 'Garçon de chenil',
+ 'Garçon de hall',
+ 'Gendarme mobile',
+ 'Guitariste',
+ 'Gynécologue',
+ 'Géodésien',
+ 'Géologue prospecteur',
+ 'Géomètre',
+ 'Géomètre du cadastre',
+ 'Gérant d\'hôtel',
+ 'Gérant de tutelle',
+ 'Gériatre',
+ 'Hydrothérapie',
+ 'Hématologue',
+ 'Hôte de caisse',
+ 'Ingénieur bâtiment',
+ 'Ingénieur du son',
+ 'Ingénieur géologue',
+ 'Ingénieur géomètre',
+ 'Ingénieur halieute',
+ 'Ingénieur logistique',
+ 'Instituteur',
+ 'Jointeur de placage',
+ 'Juge des enfants',
+ 'Juriste financier',
+ 'Kiwiculteur',
+ 'Lexicographe',
+ 'Liftier',
+ 'Litigeur transport',
+ 'Logistique',
+ 'Logopède',
+ 'Magicien',
+ 'Manager d\'artiste',
+ 'Mannequin détail',
+ 'Maquilleur spectacle',
+ 'Marbrier-poseur',
+ 'Marin grande pêche',
+ 'Matelassier',
+ 'Maçon',
+ 'Maçon-fumiste',
+ 'Maçonnerie',
+ 'Maître de ballet',
+ 'Maïeuticien',
+ 'Menuisier',
+ 'Miroitier',
+ 'Modéliste industriel',
+ 'Moellonneur',
+ 'Moniteur de sport',
+ 'Monteur audiovisuel',
+ 'Monteur de fermettes',
+ 'Monteur de palettes',
+ 'Monteur en siège',
+ 'Monteur prototypiste',
+ 'Monteur-frigoriste',
+ 'Monteur-truquiste',
+ 'Mouleur sable',
+ 'Mouliste drapeur',
+ 'Mécanicien-armurier',
+ 'Médecin du sport',
+ 'Médecin scolaire',
+ 'Médiateur judiciaire',
+ 'Médiathécaire',
+ 'Net surfeur surfeuse',
+ 'Oenologue',
+ 'Opérateur de plateau',
+ 'Opérateur du son',
+ 'Opérateur géomètre',
+ 'Opérateur piquage',
+ 'Opérateur vidéo',
+ 'Ouvrier d\'abattoir',
+ 'Ouvrier serriste',
+ 'Ouvrier sidérurgiste',
+ 'Palefrenier',
+ 'Paléontologue',
+ 'Pareur en abattoir',
+ 'Parfumeur',
+ 'Parqueteur',
+ 'Percepteur',
+ 'Photographe d\'art',
+ 'Pilote automobile',
+ 'Pilote de soutireuse',
+ 'Pilote fluvial',
+ 'Piqueur en ganterie',
+ 'Pisteur secouriste',
+ 'Pizzaïolo',
+ 'Plaquiste enduiseur',
+ 'Plasticien',
+ 'Plisseur',
+ 'Poissonnier-traiteur',
+ 'Pontonnier',
+ 'Porion',
+ 'Porteur de hottes',
+ 'Porteur de journaux',
+ 'Portier',
+ 'Poseur de granit',
+ 'Posticheur spectacle',
+ 'Potier',
+ 'Praticien dentaire',
+ 'Praticiens médicaux',
+ 'Premier clerc',
+ 'Preneur de son',
+ 'Primeuriste',
+ 'Professeur d\'italien',
+ 'Projeteur béton armé',
+ 'Promotion des ventes',
+ 'Présentateur radio',
+ 'Pyrotechnicien',
+ 'Pédicure pour bovin',
+ 'Pédologue',
+ 'Pédopsychiatre',
+ 'Quincaillier',
+ 'Radio chargeur',
+ 'Ramasseur d\'asperges',
+ 'Ramasseur d\'endives',
+ 'Ravaleur-ragréeur',
+ 'Recherche',
+ 'Recuiseur',
+ 'Relieur-doreur',
+ 'Responsable de salle',
+ 'Responsable télécoms',
+ 'Revenue Manager',
+ 'Rippeur spectacle',
+ 'Rogneur',
+ 'Récupérateur',
+ 'Rédacteur des débats',
+ 'Régleur funéraire',
+ 'Régleur sur tour',
+ 'Sapeur-pompier',
+ 'Scannériste',
+ 'Scripte télévision',
+ 'Sculpteur sur verre',
+ 'Scénariste',
+ 'Second de cuisine',
+ 'Secrétaire juridique',
+ 'Semencier',
+ 'Sertisseur',
+ 'Services funéraires',
+ 'Solier-moquettiste',
+ 'Sommelier',
+ 'Sophrologue',
+ 'Staffeur',
+ 'Story boarder',
+ 'Stratifieur',
+ 'Stucateur',
+ 'Styliste graphiste',
+ 'Surjeteur-raseur',
+ 'Séismologue',
+ 'Technicien agricole',
+ 'Technicien bovin',
+ 'Technicien géomètre',
+ 'Technicien plateau',
+ 'Technicien énergie',
+ 'Terminologue',
+ 'Testeur informatique',
+ 'Toiliste',
+ 'Topographe',
+ 'Toréro',
+ 'Traducteur d\'édition',
+ 'Traffic manager',
+ 'Trieur de métaux',
+ 'Turbinier',
+ 'Téléconseiller',
+ 'Tôlier-traceur',
+ 'Vendeur carreau',
+ 'Vendeur en lingerie',
+ 'Vendeur en meubles',
+ 'Vendeur en épicerie',
+ 'Verrier d\'art',
+ 'Verrier à la calotte',
+ 'Verrier à la main',
+ 'Verrier à main levée',
+ 'Vidéo-jockey',
+ 'Vitrier',
+ );
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php
index 5316876a..d436dfe3 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php
@@ -4,6 +4,31 @@ namespace Faker\Provider\fr_FR;
class Payment extends \Faker\Provider\Payment
{
+ /**
+ * Value Added Tax (VAT)
+ *
+ * @example 'FR12123456789', ('spaced') 'FR 12 123 456 789'
+ *
+ * @see http://ec.europa.eu/taxation_customs/vies/faq.html?locale=en#item_11
+ * @see http://www.iecomputersystems.com/ordering/eu_vat_numbers.htm
+ * @see http://en.wikipedia.org/wiki/VAT_identification_number
+ *
+ * @param bool $spacedNationalPrefix
+ *
+ * @return string VAT Number
+ */
+ public function vat($spacedNationalPrefix = true)
+ {
+ $siren = Company::siren(false);
+ $key = (12 + 3 * ($siren % 97)) % 97;
+ $pattern = "%s%'.02d%s";
+ if ($spacedNationalPrefix) {
+ $siren = trim(chunk_split($siren, 3, ' '));
+ $pattern = "%s %'.02d %s";
+ }
+ return sprintf($pattern, 'FR', $key, $siren);
+ }
+
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php
index 1907f5f0..5778a7c0 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php
@@ -67,4 +67,63 @@ class Person extends \Faker\Provider\Person
{
return static::randomElement(static::$prefix);
}
+
+ /**
+ * Generates a NIR / Sécurité Sociale number (13 digits + 2 digits for the key)
+ *
+ * @see https://fr.wikipedia.org/wiki/Num%C3%A9ro_de_s%C3%A9curit%C3%A9_sociale_en_France
+ * @return string
+ */
+ public function nir($gender = null, $formatted = false)
+ {
+ // Gender
+ if ($gender === static::GENDER_MALE) {
+ $nir = 1;
+ } elseif ($gender === static::GENDER_FEMALE) {
+ $nir = 2;
+ } else {
+ $nir = $this->numberBetween(1, 2);
+ }
+
+ $nir .=
+ // Year of birth (aa)
+ $this->numerify('##') .
+ // Mont of birth (mm)
+ sprintf('%02d', $this->numberBetween(1, 12));
+
+ // Department
+ $department = key(Address::department());
+ $nir .= $department;
+
+ // Town number, depends on department length
+ if (strlen($department) === 2) {
+ $nir .= $this->numerify('###');
+ } elseif (strlen($department) === 3) {
+ $nir .= $this->numerify('##');
+ }
+
+ // Born number (depending of town and month of birth)
+ $nir .= $this->numerify('###');
+
+ /**
+ * The key for a given NIR is `97 - 97 % NIR`
+ * NIR has to be an integer, so we have to do a little replacment
+ * for departments 2A and 2B
+ */
+ if ($department === '2A') {
+ $nirInteger = str_replace('2A', '19', $nir);
+ } elseif ($department === '2B') {
+ $nirInteger = str_replace('2B', '18', $nir);
+ } else {
+ $nirInteger = $nir;
+ }
+ $nir .= sprintf('%02d', 97 - $nirInteger % 97);
+
+ // Format is x xx xx xx xxx xxx xx
+ if ($formatted) {
+ $nir = substr($nir, 0, 1) . ' ' . substr($nir, 1, 2) . ' ' . substr($nir, 3, 2) . ' ' . substr($nir, 5, 2) . ' ' . substr($nir, 7, 3). ' ' . substr($nir, 10, 3). ' ' . substr($nir, 13, 2);
+ }
+
+ return $nir;
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php
index c7c9f9eb..7c0bd9d5 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php
@@ -14,8 +14,8 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'+33 (0)4 ## ## ## ##',
'+33 (0)5 ## ## ## ##',
'+33 (0)6 ## ## ## ##',
- '+33 (0)7 ## ## ## ##',
- '+33 (0)8 ## ## ## ##',
+ '+33 (0)7 {{phoneNumber07WithSeparator}}',
+ '+33 (0)8 {{phoneNumber08WithSeparator}}',
'+33 (0)9 ## ## ## ##',
'+33 1 ## ## ## ##',
'+33 1 ## ## ## ##',
@@ -24,8 +24,8 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'+33 4 ## ## ## ##',
'+33 5 ## ## ## ##',
'+33 6 ## ## ## ##',
- '+33 7 ## ## ## ##',
- '+33 8 ## ## ## ##',
+ '+33 7 {{phoneNumber07WithSeparator}}',
+ '+33 8 {{phoneNumber08WithSeparator}}',
'+33 9 ## ## ## ##',
'01########',
'01########',
@@ -34,8 +34,8 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'04########',
'05########',
'06########',
- '07########',
- '08########',
+ '07{{phoneNumber07}}',
+ '08{{phoneNumber08}}',
'09########',
'01 ## ## ## ##',
'01 ## ## ## ##',
@@ -44,27 +44,98 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'04 ## ## ## ##',
'05 ## ## ## ##',
'06 ## ## ## ##',
- '07 ## ## ## ##',
- '08 ## ## ## ##',
+ '07 {{phoneNumber07WithSeparator}}',
+ '08 {{phoneNumber08WithSeparator}}',
'09 ## ## ## ##',
);
// Mobile phone numbers start by 06 and 07
// 06 is the most common prefix
protected static $mobileFormats = array(
+ '+33 (0)6 ## ## ## ##',
'+33 6 ## ## ## ##',
- '+33 7 ## ## ## ##',
+ '+33 (0)7 {{phoneNumber07WithSeparator}}',
+ '+33 7 {{phoneNumber07WithSeparator}}',
'06########',
- '07########',
+ '07{{phoneNumber07}}',
'06 ## ## ## ##',
- '07 ## ## ## ##',
+ '07 {{phoneNumber07WithSeparator}}',
);
+ protected static $serviceFormats = array(
+ '+33 (0)8 {{phoneNumber08WithSeparator}}',
+ '+33 8 {{phoneNumber08WithSeparator}}',
+ '08 {{phoneNumber08WithSeparator}}',
+ '08{{phoneNumber08}}',
+ );
+
+ public function phoneNumber07()
+ {
+ $phoneNumber = $this->phoneNumber07WithSeparator();
+ $phoneNumber = str_replace(' ', '', $phoneNumber);
+ return $phoneNumber;
+ }
+
+ /**
+ * Only 073 to 079 are acceptable prefixes with 07
+ *
+ * @see http://www.arcep.fr/index.php?id=8146
+ */
+ public function phoneNumber07WithSeparator()
+ {
+ $phoneNumber = $this->generator->numberBetween(3, 9);
+ $phoneNumber .= $this->numerify('# ## ## ##');
+ return $phoneNumber;
+ }
+
+ public function phoneNumber08()
+ {
+ $phoneNumber = $this->phoneNumber08WithSeparator();
+ $phoneNumber = str_replace(' ', '', $phoneNumber);
+ return $phoneNumber;
+ }
+
+ /**
+ * Valid formats for 08:
+ *
+ * 0# ## ## ##
+ * 1# ## ## ##
+ * 2# ## ## ##
+ * 91 ## ## ##
+ * 92 ## ## ##
+ * 93 ## ## ##
+ * 97 ## ## ##
+ * 98 ## ## ##
+ * 99 ## ## ##
+ *
+ * Formats 089(4|6)## ## ## are valid, but will be
+ * attributed when other 089 resource ranges are exhausted.
+ *
+ * @see https://www.arcep.fr/index.php?id=8146#c9625
+ * @see https://issuetracker.google.com/u/1/issues/73269839
+ */
+ public function phoneNumber08WithSeparator()
+ {
+ $regex = '([012]{1}\d{1}|(9[1-357-9])( \d{2}){3}';
+ return $this->regexify($regex);
+ }
+
/**
* @example '0601020304'
*/
- public static function mobileNumber()
+ public function mobileNumber()
{
- return static::numerify(static::randomElement(static::$mobileFormats));
+ $format = static::randomElement(static::$mobileFormats);
+
+ return static::numerify($this->generator->parse($format));
+ }
+ /**
+ * @example '0891951357'
+ */
+ public function serviceNumber()
+ {
+ $format = static::randomElement(static::$serviceFormats);
+
+ return static::numerify($this->generator->parse($format));
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php
new file mode 100644
index 00000000..6cd9d2e9
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php
@@ -0,0 +1,122 @@
+ static::latitude(46.262740, 47.564721),
+ 'longitude' => static::longitude(17.077949, 20.604560)
+ );
+ }
+
+ /* ----------- DATA -------------------- */
+
+ protected static $streetSuffix = array(
+ 'árok', 'átjáró', 'dűlÅ‘sor', 'dűlőút', 'erdÅ‘sor', 'fasor', 'forduló', 'gát', 'határsor', 'határút', 'hÃd', 'játszótér', 'kert', 'körönd', 'körtér', 'körút', 'köz', 'lakótelep', 'lejáró', 'lejtÅ‘', 'lépcsÅ‘', 'liget', 'mélyút', 'orom', 'országút', 'ösvény', 'park', 'part', 'pincesor', 'rakpart', 'sétány', 'sétaút', 'sor', 'sugárút', 'tér', 'tere', 'turistaút', 'udvar', 'út', 'útja', 'utca', 'üdülÅ‘part'
+ );
+ protected static $postcode = array('####');
+ protected static $state = array(
+ 'Budapest', 'Bács-Kiskun', 'Baranya', 'Békés', 'Borsod-Abaúj-Zemplén', 'Csongrád', 'Fejér', 'Győr-Moson-Sopron', 'Hajdú-Bihar', 'Heves', 'Jász-Nagykun-Szolnok', 'Komárom-Esztergom', 'Nógrád', 'Pest', 'Somogy', 'Szabolcs-Szatmár-Bereg', 'Tolna', 'Vas', 'Veszprém', 'Zala'
+ );
+ protected static $country = array(
+ 'Afganisztán', 'Albánia', 'Algéria', 'Amerikai Egyesült Ãllamok', 'Andorra', 'Angola', 'Antigua és Barbuda', 'ArgentÃna', 'Ausztria', 'Ausztrália', 'Azerbajdzsán',
+ 'Bahama-szigetek', 'Bahrein', 'Banglades', 'Barbados', 'Belgium', 'Belize', 'Benin', 'Bhután', 'BolÃvia', 'Bosznia-Hercegovina', 'Botswana', 'BrazÃlia', 'Brunei', 'Bulgária', 'Burkina Faso', 'Burma', 'Burundi',
+ 'Chile', 'Ciprus', 'Costa Rica', 'Csehország', 'Csád',
+ 'Dominikai Köztársaság', 'Dominikai Közösség', 'Dzsibuti', 'Dánia', 'Dél-Afrika', 'Dél-Korea', 'Dél-Szudán',
+ 'Ecuador', 'EgyenlÃtÅ‘i-Guinea', 'Egyesült Arab EmÃrségek', 'Egyesült Királyság', 'Egyiptom', 'Elefántcsontpart', 'Eritrea', 'Etiópia',
+ 'Fehéroroszország', 'Fidzsi-szigetek', 'Finnország', 'Franciaország', 'Fülöp-szigetek',
+ 'Gabon', 'Gambia', 'Ghána', 'Grenada', 'Grúzia', 'Guatemala', 'Guinea', 'Guyana', 'Görögország',
+ 'Haiti', 'Hollandia', 'Horvátország',
+ 'India', 'Indonézia', 'Irak', 'Irán', 'Izland', 'Izrael',
+ 'Japán', 'Jemen', 'Jordánia',
+ 'Kambodzsa', 'Kamerun', 'Kanada', 'Katar', 'Kazahsztán', 'Kelet-Timor', 'Kenya', 'Kirgizisztán', 'Kiribati', 'Kolumbia', 'Kongói Demokratikus Köztársaság', 'Kongói Köztársaság', 'Kuba', 'Kuvait', 'KÃna', 'Közép-Afrika',
+ 'Laosz', 'Lengyelország', 'Lesotho', 'Lettország', 'Libanon', 'Libéria', 'Liechtenstein', 'Litvánia', 'Luxemburg', 'LÃbia',
+ 'Macedónia', 'Madagaszkár', 'Magyarország', 'Malawi', 'MaldÃv-szigetek', 'Mali', 'Malájzia', 'Marokkó', 'Marshall-szigetek', 'Mauritánia', 'Mexikó', 'Mikronézia', 'Moldova', 'Monaco', 'Mongólia', 'Montenegró', 'Mozambik', 'Málta',
+ 'NamÃbia', 'Nauru', 'Nepál', 'Nicaragua', 'Niger', 'Nigéria', 'Norvégia', 'Németország',
+ 'Olaszország', 'Omán', 'Oroszország',
+ 'Pakisztán', 'Palau', 'Panama', 'Paraguay', 'Peru', 'Portugália', 'Pápua Új-Guinea',
+ 'Románia', 'Ruanda',
+ 'Saint Kitts és Nevis', 'Saint Vincent', 'Salamon-szigetek', 'Salvador', 'San Marino', 'Seychelle-szigetek', 'Spanyolország', 'Srà Lanka', 'Suriname', 'Svájc', 'Svédország', 'Szamoa', 'Szaúd-Arábia', 'Szenegál', 'Szerbia', 'Szingapúr', 'Szlovákia', 'Szlovénia', 'Szomália', 'Szudán', 'Szváziföld', 'SzÃria', 'São Tomé és PrÃncipe',
+ 'Tadzsikisztán', 'Tanzánia', 'Thaiföld', 'Togo', 'Tonga', 'Trinidad és Tobago', 'Tunézia', 'Tuvalu', 'Törökország', 'Türkmenisztán',
+ 'Uganda', 'Ukrajna', 'Uruguay',
+ 'Vanuatu', 'Venezuela', 'Vietnám',
+ 'Zambia', 'Zimbabwe', 'Zöld-foki-szigetek',
+ 'Észak-Korea', 'Észtország', 'Ãrország', 'Örményország', 'Új-Zéland', 'Üzbegisztán'
+ );
+
+ /**
+ * Source: https://hu.wikipedia.org/wiki/Magyarorsz%C3%A1g_v%C3%A1rosainak_list%C3%A1ja
+ */
+ protected static $capitals = array('Budapest');
+ protected static $bigCities = array(
+ 'Békéscsaba', 'Debrecen', 'Dunaújváros', 'Eger', 'Érd', 'GyÅ‘r', 'HódmezÅ‘vásárhely', 'Kaposvár', 'Kecskemét', 'Miskolc', 'Nagykanizsa', 'NyÃregyháza', 'Pécs', 'Salgótarján', 'Sopron', 'Szeged', 'Székesfehérvár', 'Szekszárd', 'Szolnok', 'Szombathely', 'Tatabánya', 'Veszprém', 'Zalaegerszeg'
+ );
+ protected static $smallerCities = array(
+ 'Ajka', 'Aszód', 'Bácsalmás',
+ 'Baja', 'Baktalórántháza', 'Balassagyarmat', 'Balatonalmádi', 'Balatonfüred', 'Balmazújváros', 'Barcs', 'Bátonyterenye', 'Békés', 'Bélapátfalva', 'Berettyóújfalu', 'Bicske', 'Bóly', 'Bonyhád', 'Budakeszi',
+ 'Cegléd', 'Celldömölk', 'Cigánd', 'Csenger', 'Csongrád', 'Csorna', 'Csurgó',
+ 'Dabas', 'Derecske', 'Devecser', 'Dombóvár', 'Dunakeszi',
+ 'Edelény', 'Encs', 'Enying', 'Esztergom',
+ 'Fehérgyarmat', 'Fonyód', 'Füzesabony',
+ 'Gárdony', 'Gödöllő', 'Gönc', 'Gyál', 'Gyomaendrőd', 'Gyöngyös', 'Gyula',
+ 'Hajdúböszörmény', 'Hajdúhadház', 'Hajdúnánás', 'Hajdúszoboszló', 'Hatvan', 'Heves',
+ 'Ibrány',
+ 'Jánoshalma', 'Jászapáti', 'Jászberény',
+ 'Kalocsa', 'Kapuvár', 'Karcag', 'Kazincbarcika', 'Kemecse', 'Keszthely', 'Kisbér', 'Kiskőrös', 'Kiskunfélegyháza', 'Kiskunhalas', 'Kiskunmajsa', 'Kistelek', 'Kisvárda', 'Komárom', 'Komló', 'Körmend', 'Kőszeg', 'Kunhegyes', 'Kunszentmárton', 'Kunszentmiklós',
+ 'Lenti', 'Letenye',
+ 'Makó', 'Marcali', 'Martonvásár', 'Mátészalka', 'Mezőcsát', 'Mezőkovácsháza', 'Mezőkövesd', 'Mezőtúr', 'Mohács', 'Monor', 'Mór', 'Mórahalom', 'Mosonmagyaróvár',
+ 'Nagyatád', 'Nagykálló', 'Nagykáta', 'NagykÅ‘rös', 'NyÃradony', 'NyÃrbátor',
+ 'Orosháza', 'Oroszlány', 'Ózd',
+ 'Paks', 'Pannonhalma', 'Pápa', 'Pásztó', 'Pécsvárad', 'Pétervására', 'Pilisvörösvár', 'Polgárdi', 'Püspökladány', 'Putnok',
+ 'Ráckeve', 'Rétság',
+ 'Sárbogárd', 'Sarkad', 'Sárospatak', 'Sárvár', 'Sásd', 'Sátoraljaújhely', 'Sellye', 'Siklós', 'Siófok', 'Sümeg', 'Szarvas', 'Szécsény', 'Szeghalom', 'Szentendre', 'Szentes', 'Szentgotthárd', 'Szentlőrinc', 'Szerencs', 'Szigetszentmiklós', 'Szigetvár', 'Szikszó', 'Szob',
+ 'Tab', 'Tamási', 'Tapolca', 'Tata', 'Tét', 'Tiszafüred', 'Tiszakécske', 'Tiszaújváros', 'Tiszavasvári', 'Tokaj', 'Tolna', 'Törökszentmiklós',
+ 'Vác', 'Várpalota', 'Vásárosnamény', 'Vasvár', 'Vecsés',
+ 'Záhony', 'Zalaszentgrót', 'Zirc'
+ );
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php
new file mode 100644
index 00000000..e2fdced5
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php
@@ -0,0 +1,19 @@
+generator->parse(static::randomElement(static::$formats)));
+ }
+
+ public function code()
+ {
+ return static::randomElement(static::$codes);
+ }
+
+ /**
+ * @return mixed
+ */
+ public function numberFormat()
+ {
+ return static::randomElement(static::$numberFormats);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php
new file mode 100644
index 00000000..bb1444da
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php
@@ -0,0 +1,41 @@
+birthPlaceCode();
+ $nik .= $this->generator->numerify('##');
+
+ if (!$birthDate) {
+ $birthDate = $this->generator->dateTimeBetween();
+ }
+
+ if (!$gender) {
+ $gender = $this->generator->randomElement(array(self::GENDER_MALE, self::GENDER_FEMALE));
+ }
+
+ # if gender is female, add 40 to days
+ if ($gender == self::GENDER_FEMALE) {
+ $nik .= $birthDate->format('d') + 40;
+ } else {
+ $nik .= $birthDate->format('d');
+ }
+
+ $nik .= $birthDate->format('my');
+
+ # add last random digits
+ $nik .= $this->generator->numerify('####');
+
+ return $nik;
+ }
+
+ /**
+ * Generates birth place code for NIK
+ *
+ * @link https://id.wikipedia.org/wiki/Nomor_Induk_Kependudukan
+ * @link http://informasipedia.com/wilayah-indonesia/daftar-kabupaten-kota-di-indonesia/
+ */
+ protected function birthPlaceCode()
+ {
+ return static::randomElement(static::$birthPlaceCode);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php
index 1b4d5649..0fdea683 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php
@@ -78,7 +78,7 @@ class Person extends \Faker\Provider\Person
*/
public function lastNameMale()
{
- return $this->lastName().'dóttir';
+ return $this->lastName().'son';
}
/**
@@ -88,7 +88,7 @@ class Person extends \Faker\Provider\Person
*/
public function lastNameFemale()
{
- return $this->lastName().'son';
+ return $this->lastName().'dóttir';
}
/**
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php
new file mode 100644
index 00000000..1eee3b6d
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php
@@ -0,0 +1,139 @@
+ 'Argovia'),
+ array('AI' => 'Appenzello Interno'),
+ array('AR' => 'Appenzello Esterno'),
+ array('BE' => 'Berna'),
+ array('BL' => 'Basilea Campagna'),
+ array('BS' => 'Basilea Città '),
+ array('FR' => 'Friburgo'),
+ array('GE' => 'Ginevra'),
+ array('GL' => 'Glarona'),
+ array('GR' => 'Grigioni'),
+ array('JU' => 'Giura'),
+ array('LU' => 'Lucerna'),
+ array('NE' => 'Neuchâtel'),
+ array('NW' => 'Nidvaldo'),
+ array('OW' => 'Obvaldo'),
+ array('SG' => 'San Gallo'),
+ array('SH' => 'Sciaffusa'),
+ array('SO' => 'Soletta'),
+ array('SZ' => 'Svitto'),
+ array('TG' => 'Turgovia'),
+ array('TI' => 'Ticino'),
+ array('UR' => 'Uri'),
+ array('VD' => 'Vaud'),
+ array('VS' => 'Vallese'),
+ array('ZG' => 'Zugo'),
+ array('ZH' => 'Zurigo')
+ );
+
+ protected static $cityFormats = array(
+ '{{cityName}}',
+ );
+
+ protected static $streetNameFormats = array(
+ '{{streetSuffix}} {{firstName}}',
+ '{{streetSuffix}} {{lastName}}'
+ );
+
+ protected static $streetAddressFormats = array(
+ '{{streetName}} {{buildingNumber}}',
+ );
+ protected static $addressFormats = array(
+ "{{streetAddress}}\n{{postcode}} {{city}}",
+ );
+
+ /**
+ * Returns a random street prefix
+ * @example Via
+ * @return string
+ */
+ public static function streetPrefix()
+ {
+ return static::randomElement(static::$streetPrefix);
+ }
+
+ /**
+ * Returns a random city name.
+ * @example Luzern
+ * @return string
+ */
+ public function cityName()
+ {
+ return static::randomElement(static::$cityNames);
+ }
+
+ /**
+ * Returns a canton
+ * @example array('BE' => 'Bern')
+ * @return array
+ */
+ public static function canton()
+ {
+ return static::randomElement(static::$canton);
+ }
+
+ /**
+ * Returns the abbreviation of a canton.
+ * @return string
+ */
+ public static function cantonShort()
+ {
+ $canton = static::canton();
+ return key($canton);
+ }
+
+ /**
+ * Returns the name of canton.
+ * @return string
+ */
+ public static function cantonName()
+ {
+ $canton = static::canton();
+ return current($canton);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php
new file mode 100644
index 00000000..9a42b1c3
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php
@@ -0,0 +1,15 @@
+generator->parse($format);
}
/**
- * @example 'アオタ'
+ * @param string|null $gender 'male', 'female' or null for any
+ * @return string
+ * @example 'ã‚¢ã‚ラ'
*/
- public static function firstKanaName()
+ public function firstKanaName($gender = null)
{
- return static::randomElement(static::$firstKanaName);
+ if ($gender === static::GENDER_MALE) {
+ return static::firstKanaNameMale();
+ } elseif ($gender === static::GENDER_FEMALE) {
+ return static::firstKanaNameFemale();
+ }
+
+ return $this->generator->parse(static::randomElement(static::$firstKanaNameFormat));
}
/**
* @example 'ã‚¢ã‚ラ'
*/
+ public static function firstKanaNameMale()
+ {
+ return static::randomElement(static::$firstKanaNameMale);
+ }
+
+ /**
+ * @example 'アケミ'
+ */
+ public static function firstKanaNameFemale()
+ {
+ return static::randomElement(static::$firstKanaNameFemale);
+ }
+
+ /**
+ * @example 'アオタ'
+ */
public static function lastKanaName()
{
return static::randomElement(static::$lastKanaName);
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php
index f4230d1b..9f03c565 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php
@@ -4,9 +4,16 @@ namespace Faker\Provider\ja_JP;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
+ /**
+ * @link http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html#kotei-denwa
+ */
protected static $formats = array(
'080-####-####',
'090-####-####',
- '##-####-####'
+ '0#-####-####',
+ '0####-#-####',
+ '0###-##-####',
+ '0##-###-####',
+ '0##0-###-###',
);
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php
new file mode 100644
index 00000000..c8671cc0
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php
@@ -0,0 +1,635 @@
+generator->parse($format);
+ }
+
+ public static function companyPrefix()
+ {
+ return static::randomElement(static::$companyPrefixes);
+ }
+
+ public static function companyNameElement()
+ {
+ return static::randomElement(static::$companyElements);
+ }
+
+ public static function companyNameSuffix()
+ {
+ return static::randomElement(static::$companyNameSuffixes);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php
new file mode 100644
index 00000000..1a1a4dd4
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php
@@ -0,0 +1,42 @@
+ 'კვირáƒ',
+ 'Monday' => 'áƒáƒ შáƒáƒ‘áƒáƒ—ი',
+ 'Tuesday' => 'სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი',
+ 'Wednesday' => 'áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი',
+ 'Thursday' => 'ხუთშáƒáƒ‘áƒáƒ—ი',
+ 'Friday' => 'პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი',
+ 'Saturday' => 'შáƒáƒ‘áƒáƒ—ი',
+ );
+ $week = static::dateTime($max)->format('l');
+ return isset($map[$week]) ? $map[$week] : $week;
+ }
+
+ public static function monthName($max = 'now')
+ {
+ $map = array(
+ 'January' => 'იáƒáƒœáƒ•áƒáƒ ი',
+ 'February' => 'თებერვáƒáƒšáƒ˜',
+ 'March' => 'მáƒáƒ ტი',
+ 'April' => 'áƒáƒžáƒ ილი',
+ 'May' => 'მáƒáƒ˜áƒ¡áƒ˜',
+ 'June' => 'ივნისი',
+ 'July' => 'ივლისი',
+ 'August' => 'áƒáƒ’ვისტáƒ',
+ 'September' => 'სექტემბერი',
+ 'October' => 'áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი',
+ 'November' => 'ნáƒáƒ”მბერი',
+ 'December' => 'დეკემბერი',
+ );
+ $month = static::dateTime($max)->format('F');
+ return isset($map[$month]) ? $map[$month] : $month;
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php
new file mode 100644
index 00000000..01b15c77
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php
@@ -0,0 +1,15 @@
+generator->parse($format);
- }
-
- public static function country()
- {
- return static::randomElement(static::$country);
- }
-
- public static function postcode()
- {
- return static::toUpper(static::bothify(static::randomElement(static::$postcode)));
- }
-
public static function regionSuffix()
{
return static::randomElement(static::$regionSuffix);
@@ -109,21 +93,11 @@ class Address extends \Faker\Provider\Address
return static::randomElement(static::$region);
}
- public static function citySuffix()
- {
- return static::randomElement(static::$citySuffix);
- }
-
public function city()
{
return static::randomElement(static::$city);
}
- public static function streetSuffix()
- {
- return static::randomElement(static::$streetSuffix);
- }
-
public static function street()
{
return static::randomElement(static::$street);
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php
index 56b002a3..f8f8d159 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php
@@ -52,7 +52,7 @@ class Company extends \Faker\Provider\Company
/**
* National Business Identification Numbers
*
- * @link http://egov.kz/wps/portal/!utWCM/p/b1/04_Sj9Q1MjAwsDQ1s9CP0I_KSyzLTE8syczPS8wB8aPM4oO8PE2cnAwdDSxMw4wMHE08nZ2CA0KDXcwMgQoikRUYWIY4gxS4hwU4mRkbGBgTp98AB3A0IKQ_XD8KVQkWF4AV4LHCzyM_N1U_uKhUPzcqx83SU9cRANth_Rk!/dl4/d5/L0lHSkovd0RNQU5rQUVnQSEhLzRKVUUvZW4!/
+ * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fbus_business%2Ffor_businessmen%2Farticle%2Fbusiness_identification_number&lang=en
* @param \DateTime $registrationDate
* @return string 12 digits, like 150140000019
*/
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php
index 56285b39..ab7f20e0 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php
@@ -17,4 +17,17 @@ class Payment extends \Faker\Provider\Payment
{
return static::randomElement(static::$banks);
}
+
+ /**
+ * International Bank Account Number (IBAN)
+ * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
+ * @param string $prefix for generating bank account number of a specific bank
+ * @param string $countryCode ISO 3166-1 alpha-2 country code
+ * @param integer $length total length without country code and 2 check digits
+ * @return string
+ */
+ public static function bankAccountNumber($prefix = '', $countryCode = 'KZ', $length = null)
+ {
+ return static::iban($countryCode, $prefix, $length);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php
index 3eca4a5c..4e1e6811 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php
@@ -2,9 +2,52 @@
namespace Faker\Provider\kk_KZ;
+use \Faker\Provider\DateTime;
+
class Person extends \Faker\Provider\Person
{
+ const GENDER_MALE = 0;
+ const GENDER_FEMALE = 1;
+
+ const CENTURY_19TH = 0;
+ const CENTURY_20TH = 1;
+ const CENTURY_21ST = 2;
+
+ const MALE_CENTURY_19TH = 1;
+ const MALE_CENTURY_20TH = 3;
+ const MALE_CENTURY_21ST = 5;
+
+ const FEMALE_CENTURY_19TH = 2;
+ const FEMALE_CENTURY_20TH = 4;
+ const FEMALE_CENTURY_21ST = 6;
+
+ /**
+ * @var array
+ */
+ public static $firstSequenceBitWeights = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
+
+ /**
+ * @var array
+ */
+ public static $secondSequenceBitWeights = array(3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2);
+
+ /**
+ * @var array
+ */
+ public static $genderCenturyMap = array(
+ self::GENDER_MALE => array(
+ self::CENTURY_19TH => self::MALE_CENTURY_19TH,
+ self::CENTURY_20TH => self::MALE_CENTURY_20TH,
+ self::CENTURY_21ST => self::MALE_CENTURY_21ST,
+ ),
+ self::GENDER_FEMALE => array(
+ self::CENTURY_19TH => self::FEMALE_CENTURY_19TH,
+ self::CENTURY_20TH => self::FEMALE_CENTURY_20TH,
+ self::CENTURY_21ST => self::FEMALE_CENTURY_21ST,
+ ),
+ );
+
/**
* @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F
*
@@ -133,23 +176,82 @@ class Person extends \Faker\Provider\Person
'ІÑмет',
);
+ /**
+ * @param integer $year
+ *
+ * @return integer|null
+ */
+ private static function getCenturyByYear($year)
+ {
+ if ($year >= 2000 && $year <= DateTime::year()) {
+ return self::CENTURY_21ST;
+ } elseif ($year >= 1900) {
+ return self::CENTURY_20TH;
+ } elseif ($year >= 1800) {
+ return self::CENTURY_19TH;
+ }
+ }
+
/**
* National Individual Identification Numbers
*
- * @link http://egov.kz/wps/portal/!utWCM/p/b1/04_Sj9S1tDAwMzY1NjLTj9CPykssy0xPLMnMz0vMAfGjzOKDvDxNnJwMHQ0sTMOMDBxNPJ2dggNCg13MDIEKIpEVGFiGOIMUuIcFOJkZGxgYE6ffAAdwNCCkP1w_ClUJFheAFeCxws8jPzdVPzcqx83SU9cRADxWbyg!/dl4/d5/L0lDUmlTUSEhL3dHa0FKRnNBLzRKVXFDQSEhL2Vu/
+ * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fcitizen_migration%2Fpassport_id_card%2Farticle%2Fiin_info&lang=en
+ * @link https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80
+ *
* @param \DateTime $birthDate
+ * @param integer $gender
+ *
* @return string 12 digits, like 780322300455
*/
- public static function individualIdentificationNumber(\DateTime $birthDate = null)
+ public static function individualIdentificationNumber(\DateTime $birthDate = null, $gender = self::GENDER_MALE)
{
if (!$birthDate) {
- $birthDate = \Faker\Provider\DateTime::dateTimeBetween();
+ $birthDate = DateTime::dateTimeBetween();
}
- $dateAsString = $birthDate->format('ymd');
- $genderAndCenturyId = (string) static::numberBetween(1, 6);
- $randomDigits = (string) static::numerify('#####');
+ do {
+ $population = mt_rand(1000, 2000);
+ $century = self::getCenturyByYear((int) $birthDate->format('Y'));
- return $dateAsString . $genderAndCenturyId . $randomDigits;
+ $iin = $birthDate->format('ymd');
+ $iin .= (string) self::$genderCenturyMap[$gender][$century];
+ $iin .= (string) $population;
+ $checksum = self::checkSum($iin);
+ } while ($checksum === 10);
+
+ return $iin . (string) $checksum;
+ }
+
+ /**
+ * @param string $iinValue
+ *
+ * @return integer
+ */
+ public static function checkSum($iinValue)
+ {
+ $controlDigit = self::getControlDigit($iinValue, self::$firstSequenceBitWeights);
+
+ if ($controlDigit === 10) {
+ return self::getControlDigit($iinValue, self::$secondSequenceBitWeights);
+ }
+
+ return $controlDigit;
+ }
+
+ /**
+ * @param string $iinValue
+ * @param array $sequence
+ *
+ * @return integer
+ */
+ protected static function getControlDigit($iinValue, $sequence)
+ {
+ $sum = 0;
+
+ for ($i = 0; $i <= 10; $i++) {
+ $sum += (int) $iinValue[$i] * $sequence[$i];
+ }
+
+ return $sum % 11;
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php
index 1c1b7e7b..9b5398d9 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php
@@ -4,7 +4,7 @@ namespace Faker\Provider\ko_KR;
class Address extends \Faker\Provider\Address
{
- protected static $postcode = array('###-###');
+ protected static $postcode = array('#####');
protected static $buildingNumber = array('####', '###');
protected static $metropolitanCity = array(
'서울특별시', '부산광ì—시', '대구광ì—시', 'ì¸ì²œê´‘ì—시', '광주광ì—시', 'ëŒ€ì „ê´‘ì—시', '울산광ì—시',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php
index 48c00388..1c3dfb5a 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php
@@ -4,6 +4,83 @@ namespace Faker\Provider\ko_KR;
class Internet extends \Faker\Provider\Internet
{
- protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'gmail.co.kr', 'hotmail.co.kr');
- protected static $tld = array('com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'co.kr', 'kr');
+ protected static $userNameFormats = array(
+ '{{lastNameAscii}}.{{firstNameAscii}}', '{{firstNameAscii}}.{{lastNameAscii}}', '{{firstNameAscii}}##', '?{{lastNameAscii}}',
+ );
+
+ protected static $safeEmailTld = array(
+ 'com', 'kr', 'me', 'net', 'org',
+ );
+
+ protected static $tld = array(
+ 'biz', 'com', 'info', 'kr', 'net', 'org',
+ );
+
+ /**
+ * {@link} http://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%9D%B8%EA%B5%AC%EC%88%9C_%EC%84%B1%EC%94%A8_%EB%AA%A9%EB%A1%9D
+ */
+ protected static $lastNameAscii = array(
+ 'ahn', 'bae', 'baek', 'chang', 'cheon', 'cho', 'choi', 'chung', 'gang', 'go', 'gwak', 'gwon', 'ha', 'han',
+ 'heo', 'hong', 'hwang', 'jang', 'jeon', 'jo', 'jung', 'kang', 'kim', 'ko', 'kwak', 'kwon', 'lee', 'lim', 'moon',
+ 'nam', 'no', 'oh', 'park', 'ryu', 'seo', 'shim', 'shin', 'son', 'song', 'yang', 'yoon', 'yu',
+ );
+
+ /**
+ * {@link} http://ko.wikipedia.org/wiki/%ED%95%9C%EA%B5%AD%EC%9D%98_%EC%84%B1%EC%94%A8%EC%99%80_%EC%9D%B4%EB%A6%84#.EC.8B.9C.EB.8C.80.EB.B3.84_.EA.B0.80.EC.9E.A5_.ED.9D.94.ED.95.9C_.EC.9D.B4.EB.A6.84_10.EC.84.A0.28.E9.81.B8.29
+ */
+ protected static $firstNameAscii = array(
+ 'areum', 'arin', 'banhee', 'bom', 'bomi', 'bomin', 'boram', 'byungcheol', 'byungho', 'chaehyun', 'chaewon',
+ 'changyoung', 'daesoo', 'daesun', 'dayoung', 'dohyunn', 'dongha', 'donghyun', 'donghyun', 'dongyoon', 'doyoon',
+ 'doyoun', 'eunae', 'eunhee', 'eunhye', 'eunhyoung', 'eunji', 'eunjin', 'eunju', 'eunjung', 'eunkyoung', 'eunmi',
+ 'eunsang', 'eunseo', 'eunsung', 'eunteck', 'eunyoung', 'gangeun', 'ganghee', 'garam', 'geongeun', 'gunho',
+ 'gunwoo', 'haeun', 'hana', 'hanna', 'hayun', 'heekyoung', 'heewon', 'hojin', 'homin', 'hongsun', 'hyejin',
+ 'hyemin', 'hyena', 'hyerim', 'hyesuk', 'hyesun', 'hyeyoun', 'hyoil', 'hyojin', 'hyounjung', 'hyuksang',
+ 'hyungcheol', 'hyungmin', 'hyunji', 'hyunjong', 'hyunjoo', 'hyunjun', 'hyunkyu', 'hyunwoo', 'hyunyoung',
+ 'ingyu', 'inhwa', 'jaecheo', 'jaeho', 'jaehun', 'jaehyuk', 'jaehyun', 'jaeyeon', 'jaeyun', 'jia', 'jieun',
+ 'jihee', 'jihoo', 'jihoon', 'jihye', 'jihyeon', 'jimin', 'jina', 'jinhee', 'jinho', 'jinsoo', 'jinwoo', 'jisuk',
+ 'jisun', 'jiwon', 'jiwoo', 'jiye', 'jiyeon', 'jiyoung', 'jonghun', 'jongju', 'jongsoo', 'jughyung', 'juhee',
+ 'jumi', 'jumyoung', 'jun', 'junbum', 'jungeun', 'jungho', 'junghun', 'junghwa', 'jungmin', 'jungnam', 'jungran',
+ 'jungshik', 'jungsoo', 'jungsoo', 'jungwoong', 'junho', 'junhyuk', 'junhyung', 'junseo', 'junyoung', 'juwon',
+ 'juyeon', 'kisoo', 'kiyun', 'kubum', 'kwangsoo', 'kyungchoon', 'kyunghwan', 'kyungjoo', 'kyungseok', 'kyungsoo',
+ 'kyusan', 'mijung', 'mikyoung', 'mina', 'mincheol', 'minhee', 'minhwan', 'minhyoung', 'minjae', 'minji',
+ 'minjun', 'minseo', 'minseok', 'minsoo', 'minsung', 'mira', 'miran', 'miyoung', 'moonchang', 'moonyong',
+ 'myungho', 'myungshik', 'naeun', 'nahyoung', 'namho', 'namsoo', 'naree', 'naroo', 'nayun', 'nuree', 'saemi',
+ 'sangah', 'sangcheol', 'sangho', 'sanghun', 'sanghyun', 'sangjun', 'sangmyoung', 'sangsoo', 'sangsun',
+ 'sangwoo', 'sangwook', 'seoho', 'seohyeon', 'seojun', 'seoyeon', 'seoyoung', 'seoyun', 'seulki', 'seungho',
+ 'seunghyun', 'seungmin', 'sewon', 'sieun', 'sinae', 'siwoo', 'sojung', 'somin', 'soyoun', 'soyoung', 'subin',
+ 'sujin', 'sujung', 'sumin', 'sungeun', 'sunggon', 'sungho', 'sunghun', 'sunghyun', 'sungjin', 'sungmi',
+ 'sungmin', 'sungmin', 'sungryung', 'sungsoo', 'sunhang', 'sunho', 'sunjung', 'sunwoo', 'sunyoung', 'sunyup',
+ 'suran', 'suwon', 'suwon', 'suyoun', 'taehee', 'taeho', 'taehyun', 'wonhee', 'wonjin', 'wonjun', 'woojin',
+ 'yeji', 'yejin', 'yejun', 'yeojin', 'yeon', 'yewon', 'youngcheol', 'younggil', 'youngha', 'youngho', 'younghun',
+ 'younghwa', 'youngil', 'youngjin', 'youngjin', 'youngshik', 'youngsoo', 'youngtae', 'youngwhan', 'youngwhan',
+ 'younhee', 'younsun', 'yujin', 'yujung', 'yunkyoung', 'yunmi', 'yunseo', 'yunyoung', 'yuri'
+ );
+
+ public static function lastNameAscii()
+ {
+ return static::randomElement(static::$lastNameAscii);
+ }
+
+ public static function firstNameAscii()
+ {
+ return static::randomElement(static::$firstNameAscii);
+ }
+
+ /**
+ * @example 'gunwoo.gang'
+ */
+ public function userName()
+ {
+ $format = static::randomElement(static::$userNameFormats);
+
+ return static::bothify($this->generator->parse($format));
+ }
+
+ /**
+ * @example 'kim.kr'
+ */
+ public function domainName()
+ {
+ return static::randomElement(static::$lastNameAscii) . '.' . $this->tld();
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php
index 21bc22c8..92d858f5 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php
@@ -46,7 +46,10 @@ class Person extends \Faker\Provider\Person
* {@link} http://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%9D%B8%EA%B5%AC%EC%88%9C_%EC%84%B1%EC%94%A8_%EB%AA%A9%EB%A1%9D
*/
protected static $lastName = array(
- 'ê°•', 'ê³ ', 'ê³½', 'ê¶Œ', 'ê¹€', '남', 'ë…¸', '류', '문', 'ë°•', 'ë°°', 'ë°±', '서', 'ì†', '송', 'ì‹ ', '심', '안', 'ì–‘', '오',
- 'ìœ ', '윤', 'ì´', 'ìž„', '장', 'ì „', 'ì •', 'ì¡°', '최', '하', '한', 'í—ˆ', 'í™', '황',
+ 'ê¹€', 'ì´', 'ë°•', '최', 'ì •', 'ê°•', 'ì¡°', '윤', '장', 'ìž„', '오', '한', 'ì‹ ', '서', 'ê¶Œ', '황', '안', '송', '류', 'í™',
+ 'ì „', 'ê³ ', '문', 'ì†', 'ì–‘', 'ë°°', 'ì¡°', 'ë°±', 'í—ˆ', '남', '심', 'ìœ ', 'ë…¸', '하', 'ì „', 'ì •', 'ê³½', '성', 'ì°¨', 'ìœ ',
+ '구', 'ìš°', '주', 'ìž„', '나', 'ì‹ ', '민', 'ì§„', 'ì§€', 'ì—„', 'ì›', '채', 'ê°•', '천', 'ì–‘', 'ê³µ', '현', 'ë°©', 'ë³€', '함',
+ 'ë…¸', 'ì—¼', 'ì—¬', 'ì¶”', 'ë³€', 'ë„', 'ì„', 'ì‹ ', '소', 'ì„ ', '주', '설', 'ë°©', '마', 'ì •', '길', '위', 'ì—°', '표', '명',
+ '기', '금', '왕', 'ë°˜', '옥', '육', 'ì§„', 'ì¸', 'ë§¹', 'ì œ', 'íƒ', '모', '남ê¶', 'ì—¬', '장', 'ì–´', 'ìœ ', 'êµ', 'ì€', '편',
);
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php
index c1c0a2e9..6008bbf3 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php
@@ -4,14 +4,39 @@ namespace Faker\Provider\ko_KR;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
+ //reference : https://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%A0%84%ED%99%94%EB%B2%88%ED%98%B8_%EC%B2%B4%EA%B3%84
+
protected static $formats = array(
- '010-####-####',
+ //local area phone format
'070-####-####',
'02-####-####',
'03#-####-####',
'04#-####-####',
'05#-####-####',
'06#-####-####',
- '1588-####',
+
+ //cell phone format
+ '010-####-####',
+
+ //others: Intelligent Network(ê¸°ê°„í†µì‹ ì‚¬ì—…ìž)
+ '15##-####',
+ '16##-####',
+ '18##-####',
);
+
+ public function localAreaPhoneNumber()
+ {
+ $format = self::randomElement(array_slice(static::$formats, 0, 6));
+
+ return self::numerify($this->generator->parse($format));
+ }
+
+
+
+ public function cellPhoneNumber()
+ {
+ $format = self::randomElement(array_slice(static::$formats, 6, 1));
+
+ return self::numerify($this->generator->parse($format));
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php
new file mode 100644
index 00000000..5f5148e5
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php
@@ -0,0 +1,1723 @@
+ì— ë‚˜ì˜¤ëŠ” ìš”ê·€ì˜ ë¶ˆë¹› 모양으로 í‘¸ë¥´ë¬´ë ˆ 하게 í—ˆê³µì„ ë¹„ì¶”ì˜¤. ë™ê²½ì˜ 불바다는 ë‚´ 마ìŒì„ ë”ìš± ìŒì¹¨í•˜ê²Œ 하였소.
+ì´ ë•Œì— ë’¤ì—서,
+"모시모시(여보세요)."
+하는 소리가 ë“¤ë ¸ì†Œ. ê·¸ê²ƒì€ í° ì €ê³ ë¦¬ë¥¼ ìž…ì€ í˜¸í…” ë³´ì´ì˜€ì†Œ.
+"왜?"
+í•˜ê³ ë‚˜ëŠ” ê³ ê°œë§Œ ëŒë ¸ì†Œ.
+"ì†ë‹˜ì´ 오셨습니다."
+"ì†ë‹˜?"
+í•˜ê³ ë‚˜ëŠ” ë³´ì´ì—게로 한 ê±¸ìŒ ê°€ê¹Œì´ ê°”ì†Œ. 나를 ì°¾ì„ ì†ë‹˜ì´ ì–´ë”” 있나 í•˜ê³ ë‚˜ëŠ” 놀란 것ì´ì˜¤.
+"따님께서 오셨습니다. 방으로 모셨습니다."
+í•˜ê³ ë³´ì´ëŠ” 들어가 ë²„ë¦¬ê³ ë§ì•˜ì†Œ.
+"따님?"
+í•˜ê³ ë‚˜ëŠ” ë”ìš± 놀ëžì†Œ. 순임ì´ê°€ 서울서 나를 ë”°ë¼ì™”나? ê·¸ê²ƒì€ ì•ˆ ë ë§ì´ì˜¤. 순임ì´ê°€ ë‚´ 뒤를 ë”°ë¼ ë– ë‚¬ë”ë¼ë„ 아무리 빨리 ì™€ë„ ë‚´ì¼ì´ 아니면 못 ì™”ì„ ê²ƒì´ì˜¤. 그러면 누군가. ì •ìž„ì¸ê°€. ì •ìž„ì´ê°€ 병ì›ì—서 뛰어온 것ì¸ê°€.
+나는 ë‘근거리는 ê°€ìŠ´ì„ ì–µì§€ë¡œ ì§„ì •í•˜ë©´ì„œ ë‚´ ë°©ë¬¸ì„ ì—´ì—ˆì†Œ.
+ê·¸ê²ƒì€ ì •ìž„ì´ì—ˆì†Œ. ì •ìž„ì€ ë‚´ê°€ 쓰다가 ë‘” 편지를 ë³´ê³ ìžˆë‹¤ê°€ 벌떡 ì¼ì–´ë‚˜ 내게 ë‹¬ë ¤ë“¤ì–´ 안겨 ë²„ë ¸ì†Œ. 나는 ì–¼ë¹ ì§„ ë“¯ì´ ì •ìž„ì´ê°€ 하ë¼ëŠ” 대로 ë‚´ë²„ë ¤ë‘었소. ê·¸ 편지는 ë¶€ì¹˜ë ¤ê³ ì“´ ê²ƒë„ ì•„ë‹Œë° ê·¸ 편지를 ì •ìž„ì´ê°€ 본 ê²ƒì´ ì•ˆë˜ì—ˆë‹¤ê³ ìƒê°í•˜ì˜€ì†Œ.
+형! 나를 ì±…ë§í•˜ì‹œì˜¤. 심히 ë¶€ë„러운 ë§ì´ì§€ë§ˆëŠ” 나는 ì •ìž„ì„ íž˜ê» ê»´ì•ˆì•„ ì£¼ê³ ì‹¶ì—ˆì†Œ. 나는 몇 번ì´ë‚˜ ì •ìž„ì˜ ë“±ì„ êµ½ì–´ 보면서 ë‚´ íŒ”ì— íž˜ì„ ë„£ìœ¼ë ¤ê³ í•˜ì˜€ì†Œ. ì •ìž„ì€ ì‹¬ížˆ ê·€ì—¬ì› ì†Œ. ì •ìž„ì´ê°€ 그처럼 나를 사모하는 ê²ƒì´ ì‹¬ížˆ 기뻤소. 나는 ê°ì •ì´ ìž¬ìš°ì³ì„œ ëˆˆì´ ì•ˆ ë³´ì´ê³ ì •ì‹ ì´ ëª½ë¡±í•˜ì—¬ì§ì„ 깨달았소. 나는 ì•„í”„ê³ ì“°ë¦° 듯한 기ì¨ì„ 깨달았소. ì˜ì–´ë¡œ 엑스터시ë¼ë“ ì§€, 한문으로 ë¬´ì•„ì˜ ê²½ì§€ëž€ ì´ëŸ° ê²ƒì´ ì•„ë‹Œê°€ 하였소. 나는 ì‚¬ì‹ í‰ìƒì— ì´ëŸ¬í•œ ê²½í—˜ì„ ì²˜ìŒ í•œ 것ì´ì˜¤.
+형! í˜•ì´ ì•„ì‹œë‹¤ì‹œí”¼ 나는 ë‚´ ì•„ë‚´ ì´ì™¸ì— ì Šì€ ì—¬ì„±ì—게 ì´ë ‡ê²Œ 안겨 본 ì¼ì´ 없소. ë¬¼ë¡ ì•ˆì•„ 본 ì¼ë„ 없소.
+그러나 형! 나는 나를 ëˆŒë €ì†Œ. ë‚´ 타오르는 ì• ìš•ì„ ì°¨ë””ì°¬ ì´ì§€ì˜ 입김으로 불어서 ë„ë ¤ê³ ì• ë¥¼ ì¼ì†Œ.
+"글쎄 웬ì¼ì´ëƒ. 앓는 ê²ƒì´ ì´ ë°¤ì¤‘ì— ë¹„ë¥¼ ë§žê³ ì™œ 나온단 ë§ì´ëƒ. ì² ì—†ëŠ” 것 같으니."
+í•˜ê³ ë‚˜ëŠ” ì•„ë²„ì§€ì˜ ìœ„ì—„ìœ¼ë¡œ ì •ìž„ì˜ ë‘ ì–´ê¹¨ë¥¼ 붙들어 ì•”ì²´ì–´ì— ì•‰í˜”ì†Œ. ê·¸ë¦¬ê³ ë‚˜ë„ í…Œì´ë¸”ì„ í•˜ë‚˜ 세워 ë‘ê³ ë§žì€íŽ¸ì— ì•‰ì•˜ì†Œ.
+ì •ìž„ì€ ë¶€ë„러운 ë“¯ì´ ë‘ ì†ìœ¼ë¡œ ë‚¯ì„ ê°€ë¦¬ìš°ê³ ì œ ë¬´ë¦Žì— ì—Žë“œë ¤ 울기를 시작하오.
+ì •ìž„ì€ ëˆ„ëŸ° ê°ˆìƒ‰ì˜ ì™¸íˆ¬ë¥¼ 입었소. ë¬´ì—‡ì„ íƒ€ê³ ì™”ëŠ”ì§€ 모르지마는 구ë‘ì—는 꽤 ë§Žì´ ë¬¼ì´ ë¬»ê³ ëª¨ìžì—는 빗방울 ì–¼ë£©ì´ ë³´ì´ì˜¤.
+"네가 ì´ëŸ¬ë‹¤ê°€ 다시 ë³‘ì´ ë”치면 어찌한단 ë§ì´ëƒ. ì•„ì´ê°€ 왜 ê·¸ë ‡ê²Œ ì² ì´ ì—†ë‹ˆ?"
+í•˜ê³ ë‚˜ëŠ” ë”ìš± ëƒ‰ì •í•œ 어조로 ì±…ë§í•˜ê³ ë°ìŠ¤í¬ ìœ„ì— ë†“ì¸ ë‚´ 편지 초를 ì§‘ì–´ ë°•ë°• 찢어 ë²„ë ¸ì†Œ. ì¢…ì´ ì°¢ëŠ” ì†Œë¦¬ì— ì •ìž„ì€ ìž ê¹ ê³ ê°œë¥¼ 들어서 처ìŒì—는 ë‚´ ì†ì„ ë³´ê³ ë‹¤ìŒì—는 ë‚´ ì–¼êµ´ì„ ë³´ì•˜ì†Œ. 그러나 나는 모르는 ì²´í•˜ê³ ë„로 êµì˜ì— ëŒì•„와 앉아서 가만히 ëˆˆì„ ê°ì•˜ì†Œ. ê·¸ë¦¬ê³ ë„무지 í¥ë¶„ë˜ì§€ 아니한 ëª¨ì–‘ì„ ê¾¸ëª„ì†Œ.
+형! 어떻게나 힘드는 ì¼ì´ì˜¤? 참으면 ì°¸ì„ìˆ˜ë¡ ë‚´ ì´ë¹¨ì´ 마주 ë¶€ë”ªê³ , ì–¼êµ´ì˜ ê·¼ìœ¡ì€ ì”°ë£©ê±°ë¦¬ê³ ì†ì€ 불ëˆë¶ˆëˆ ì¥ì–´ì§€ì˜¤.
+"ì •ë§ ë‚´ì¼ ê°€ì„¸ìš”?"
+í•˜ê³ ì•„ë§ˆ 오 ë¶„ ë™ì•ˆì´ë‚˜ ì¹¨ë¬µì„ ì§€í‚¤ë‹¤ê°€ ì •ìž„ì´ê°€ ê³ ê°œë¥¼ ë“¤ê³ ë¬¼ì—ˆì†Œ.
+"그럼, 가야지."
+í•˜ê³ ë‚˜ëŠ” ë¹™ê·¸ë ˆ 웃어 보였소.
+"ì €ë„ ë°ë¦¬ê³ 가세요!"
+하는 ì •ìž„ì˜ ë§ì€ 마치 ì„œë¦¿ë°œì´ ë‚ ë¦¬ëŠ” ì¹¼ë‚ ê³¼ 같았소. 나는 ê¹œì§ ë†€ë¼ì„œ ì •ìž„ì„ ë°”ë¼ë³´ì•˜ì†Œ. ê·¸ì˜ ëˆˆì€ ë¹›ë‚˜ê³ ìž…ì€ ê¼ ë‹¤ë¬¼ê³ ì–¼êµ´ì˜ ê·¼ìœ¡ì€ íŒ½íŒ½í•˜ê²Œ 켕겼소. ì •ìž„ì˜ ì–¼êµ´ì—는 ì°¬ë°”ëžŒì´ ë„는 무서운 ê¸°ìš´ì´ ìžˆì—ˆì†Œ.
+나는 즉ê°ì 으로 죽기를 결심한 ì—¬ìžì˜ 모양ì´ë¼ê³ ìƒê°í•˜ì˜€ì†Œ. ì—´ì •ìœ¼ë¡œ 불ë©ì–´ë¦¬ê°€ ë˜ì—ˆë˜ ì •ìž„ì€ ë‚´ê°€ ë³´ì´ëŠ” 냉ëží•œ 태ë„로 ë§ë¯¸ì•”ì•„ ê°‘ìžê¸° 얼어 버린 것 같았소.
+"어디를?"
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì˜ `ì €ë„ ë°ë¦¬ê³ 가세요.' 하는 담대한 ë§ì— 놀ë¼ë©´ì„œ 물었소.
+"ì–´ë””ë“ ì§€, 아버지 가시는 ë°ë©´ ì–´ë””ë“ ì§€ ì €ë¥¼ ë°ë¦¬ê³ 가세요. ì €ëŠ” 아버지를 ë– ë‚˜ì„œëŠ” 혼ìžì„œëŠ” 못 ì‚´ ê²ƒì„ ì§€ë‚˜ê°„ ë°˜ 달 ë™ì•ˆì— 잘 알았습니다. 아까 아버지 오셨다 ê°€ì‹ ë’¤ì— ìƒê°í•´ ë³´ë‹ˆê¹ ì•”ë§Œí•´ë„ ì•„ë²„ì§€ëŠ” 다시 ì €ì—게 와 보시지 ì•„ë‹ˆí•˜ê³ ê°€ì‹¤ 것만 ê°™ì• ìš”. ê·¸ë¦¬ê³ ì €ë¡œ 해서 아버지께서는 무슨 í° íƒ€ê²©ì„ ë‹¹í•˜ì‹ ê²ƒë§Œ 같으셔요. ì²˜ìŒ ëµˆì˜¬ ì ì— ë²Œì¨ ê°€ìŠ´ì´ ëœ¨ë”했습니다. ê·¸ë¦¬ê³ ì—¬í–‰ì„ ë– ë‚˜ì‹ ë‹¤ëŠ” ë§ì”€ì„ ë“£ê³ ëŠ” 반드시 무슨 í°ì¼ì´ 나셨ëŠë‹ˆë¼ê³ ë§Œ ìƒê°í–ˆìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ì €ì–´, ì €ë¡œ 해서 ê·¸ëŸ¬ì‹ ê²ƒë§Œ ê°™ê³ , ì €ë¥¼ ë²„ë¦¬ì‹œê³ í˜¼ìž ê°€ì‹œë ¤ëŠ” 것만 ê°™ê³ , 그래서 ë‹¬ë ¤ì™”ë”니 여기 ì¨ ë†“ìœ¼ì‹ íŽ¸ì§€ë¥¼ ë³´ê³ ê·¸ íŽ¸ì§€ì— ë‹¤ë¥¸ ë§ì”€ì€ ì–´ì°Œ ëë“ ì§€, 네 ì¼ê¸°ë¥¼ 보았다 í•˜ì‹ ë§ì”€ì„ ë³´ê³ ëŠ” 다 알았습니다. ì €ì™€ 한 ë°©ì— ìžˆëŠ” ì• ê°€ ì•”ë§Œí•´ë„ ì–´ë¨¸ë‹ˆ 스파ì¸ê°€ë´ìš”. ì œê°€ ìž…ì›í•˜ê¸° ì „ì—ë„ ì œ 눈치를 슬슬 ë³´ê³ ë˜ ì±…ìƒ ì„œëžë„ 뒤지는 눈치가 ë³´ì´ê¸¸ëž˜ ì¼ê¸°ì±…ì€ ëŠ˜ ì‡ ìž ê·¸ëŠ” 서ëžì— 넣어 ë‘ì—ˆëŠ”ë° ì•„ë§ˆ ì œê°€ ì •ì‹ ì—†ì´ ì•“ê³ ëˆ„ì› ëŠ” ë™ì•ˆì— ì œ 핸드백ì—서 쇳대를 í›”ì³ ê°”ë˜ê°€ë´ìš”. 그래서는 ê·¸ ì¼ê¸°ì±…ì„ êº¼ë‚´ì„œ 서울로 보냈나ë´ìš”. 그걸루 해서 아버지께서는 불명예스러운 ëˆ„ëª…ì„ ì“°ì‹œê³ í•™êµì¼ë„ 내놓으시게 ë˜ê³ ì§‘ë„ ë– ë‚˜ì‹œê²Œ ë˜ì…¨ë‚˜ë´ìš”. 다시는 ì§‘ì— ì•ˆ ëŒì•„오실 양으로 ê²°ì‹¬ì„ í•˜ì…¨ë‚˜ë´ìš”. 아까 병ì›ì—ì„œë„ í•˜ì‹œëŠ” ë§ì”€ì´ ëª¨ë‘ ìœ ì–¸í•˜ì‹œëŠ” 것만 같아서 í½ ì˜ì‹¬ì„ ê°€ì¡Œì—ˆëŠ”ë° ì§€ê¸ˆ ê·¸ ì“°ì‹œë˜ íŽ¸ì§€ë¥¼ ë³´ê³ ëŠ” 다 알았습니다. ê·¸ë ‡ì§€ë§Œ ê·¸ë ‡ì§€ë§Œ."
+í•˜ê³ ì›…ë³€ìœ¼ë¡œ ë‚´ë ¤ ë§í•˜ë˜ ì •ìž„ì€ ê°‘ìžê¸° 복받치는 ì—´ì •ì„ ì´ê¸°ì§€ 못하는 듯ì´, 한 번 í•œìˆ¨ì„ ì§€ìš°ê³ ,
+"ê·¸ë ‡ì§€ë§Œ ì €ëŠ” 아버지를 ë”°ë¼ê°€ìš”. ì ˆë£¨ 해서 아버지께서는 ì§‘ë„ ìžƒìœ¼ì‹œê³ ëª…ì˜ˆë„ ìžƒìœ¼ì‹œê³ ì‚¬ì—…ë„ ìžƒìœ¼ì‹œê³ ì¸ìƒì˜ ëª¨ë“ ê²ƒì„ ë‹¤ 잃으셨으니 ì €ëŠ” 아버지를 ë”°ë¼ê°€ìš”. 어디를 ê°€ì‹œë“ ì§€ ì €ëŠ” 어린 딸로 아버지를 ë”°ë¼ë‹¤ë‹ˆë‹¤ê°€ 아버지께서 ë¨¼ì € ëŒì•„가시면 ì €ë„ ë”°ë¼ ì£½ì–´ì„œ 아버지 ë°œ ë°‘ì— ë¬»íž í…Œì•¼ìš”. ì œê°€ ë¨¼ì € ì£½ê±°ë“ ì œê°€ ë³‘ì´ ìžˆìœ¼ë‹ˆê¹ ë¬¼ë¡ ì œê°€ ë¨¼ì € 죽지요. ì£½ì–´ë„ ì¢‹ìŠµë‹ˆë‹¤. 병ì›ì—서 앓다가 í˜¼ìž ì£½ëŠ” ê±´ ì‹«ì–´ìš”. 아버지 ê³ì—서 죽으면 아버지께서, 오 ë‚´ 딸 ì •ìž„ì•„ í•˜ì‹œê³ ê·€í•´ ì£¼ì‹œê³ ë¶ˆìŒížˆ 여겨 ì£¼ì‹œê² ì§€ìš”. ê·¸ë¦¬ê³ ì œ ëª¸ì„ ì–´ë””ë“ ì§€ ë•…ì— ë¬»ìœ¼ì‹œê³ `사랑하는 ë‚´ 딸 ì •ìž„ì˜ ë¬´ë¤'ì´ë¼ê³ 패ë¼ë„ ì†ìˆ˜ 쓰셔서 세워 주시지 ì•Šê² ìŠµë‹ˆê¹Œ."
+í•˜ê³ ì •ìž„ì€ ë¹„ì‰ë¹„ì‰í•˜ë‹¤ê°€ 그만 무릎 ìœ„ì— ì—Žë”ì ¸ ìš¸ê³ ë§ˆì˜¤.
+나는 다만 ì£½ì€ ì‚¬ëžŒ 모양으로 반쯤 ëˆˆì„ ê°ê³ 앉아 있었소. 가슴 ì†ì—는 ì •ìž„ì˜ ê³ì—서 지지 않는 ì—´ì •ì„ í’ˆìœ¼ë©´ì„œë„ ì •ìž„ì˜ ë§ëŒ€ë¡œ ì •ìž„ì„ ë°ë¦¬ê³ ì•„ë¬´ë„ ëª¨ë¥´ëŠ” 곳으로 ê°€ ë²„ë¦¬ê³ ì‹¶ìœ¼ë©´ì„œë„ ë‚˜ëŠ” ì´ ì—´ì •ì˜ ë¶ˆê¸¸ì„ ë‚´ 입김으로 꺼 버리지 아니하면 아니 ë˜ëŠ” 것ì´ì—ˆì†Œ.
+"ì•„ì•„, ì œê°€ 왜 났어요? 왜 하나님께서 ì €ë¥¼ 세ìƒì— 보내셨어요? ì•„ë²„ì§€ì˜ ì¼ìƒì„ íŒŒë©¸ì‹œí‚¤ë ¤ 난 것ì´ì§€ìš”? ì œê°€ 지금 죽어 ë²„ë ¤ì„œ ì•„ë²„ì§€ì˜ ëª…ì˜ˆë¥¼ íšŒë³µí• ìˆ˜ 있다면 ì €ëŠ” 죽어 버릴 í„°ì´ì•¼ìš”. 기ì˜ê²Œ 죽어 ë²„ë¦¬ê² ìŠµë‹ˆë‹¤. ì œê°€ ì—¬ëŸ ì‚´ë¶€í„° ì˜¤ëŠ˜ë‚ ê¹Œì§€ ë°›ì€ ì€í˜œë¥¼ ì œ 목숨 하나로 ê°šì„ ìˆ˜ê°€ 있다면 ì €ëŠ” 지금으로 죽어 ë²„ë¦¬ê² ìŠµë‹ˆë‹¤. ê·¸ë ‡ì§€ë§Œ ê·¸ë ‡ì§€ë§Œâ€¦â€¦.
+ê·¸ë ‡ì§€ë§Œ ê·¸ë ‡ì§€ë§Œ ì €ëŠ” 다만 얼마ë¼ë„ 다만 하루ë¼ë„ 아버지 ê³ì—서 ì‚´ê³ ì‹¶ì–´ìš” 다만 하루만ì´ë¼ë„, 아버지! ì œê°€ 왜 ì´ë ‡ìŠµë‹ˆê¹Œ, 네? ì œê°€ ì–´ë ¤ì„œ ì´ë ‡ìŠµë‹ˆê¹Œ. 미친 ë…„ì´ ë˜ì–´ì„œ ì´ë ‡ìŠµë‹ˆê¹Œ. 아버지께서는 아실 테니 ë§ì”€í•´ 주세요. 하루만ì´ë¼ë„ 아버지를 ëª¨ì‹œê³ ì•„ë²„ì§€ ê³ì—서 살았으면 ì£½ì–´ë„ í•œì´ ì—†ê² ìŠµë‹ˆë‹¤. ì œ ìƒê°ì´ 잘못ì´ì•¼ìš”? ì œ ìƒê°ì´ 죄야요? 왜 죄입니까? 아버지, ì €ë¥¼ ë²„ë¦¬ì‹œê³ í˜¼ìž ê°€ì‹œì§€ 마세요, 네? `ì •ìž„ì•„, 너를 ë°ë¦¬ê³ 가마.' í•˜ê³ ì•½ì†í•´ 주세요, 네."
+ì •ìž„ì€ ì•„ì£¼ 담대하게 ì œê°€ í•˜ê³ ìž í•˜ëŠ” ë§ì„ 다 하오. ê·¸ ì–Œì „í•œ, ìˆ˜ì‚½í•œì •ìž„ì˜ ì†ì— ì–´ë”” 그러한 용기가 있었ë˜ê°€, ì°¸ ì´ìƒí•œ ì¼ì´ì˜¤. 나는 귀여운 어린 ê³„ì§‘ì• ì •ìž„ì˜ ì†ì— ì—‰í¼í•œ ì—¬ìžê°€ ë“¤ì–´ì•‰ì€ ê²ƒì„ ë°œê²¬í•˜ì˜€ì†Œ. 그가 몇 가지 재료(ë‚´ê°€ ì—¬í–‰ì„ ë– ë‚œë‹¤ëŠ” 것과 ì œ ì¼ê¸°ë¥¼ 보았다는 것)를 종합하여 나와 ì €ì™€ì˜ ìƒˆì—, ë˜ ê·¸ ë•Œë¬¸ì— ì–´ë– í•œ ì¼ì´ ì¼ì–´ë‚œ ê²ƒì„ ì¶”ì¸¡í•˜ëŠ” ê·¸ ìƒìƒë ¥ë„ 놀ëžê±°ë‹ˆì™€ ê·¸ë ‡ê²Œ ë‚´ 앞ì—서는 별로 ìž…ë„ ë²Œë¦¬ì§€ ì•„ë‹ˆí•˜ë˜ ê·¸ê°€ ì´ì²˜ëŸ¼ 담대하게 ì œ ì†ì— 있는 ë§ì„ ê±°ë¦¬ë‚Œì—†ì´ ë‹¤ í•´ 버리는 용기를 아니 놀랄 수 없었소. ë‚´ê°€, 사내요 ì–´ë¥¸ì¸ ë‚´ê°€ ë„리어 ì •ìž„ì—게 리드를 ë°›ê³ ë†€ë¦¼ì„ ë°›ìŒì„ 깨달았소.
+그러나 ì •ìž„ì„ ìœ„í•´ì„œë“ ì§€, 중년 남ìžì˜ ìœ„ì‹ ì„ ìœ„í•´ì„œë“ ì§€ 나는 ì˜ì§€ë ¥ìœ¼ë¡œ, ë„ë•ë ¥ìœ¼ë¡œ, ì •ìž„ì„ ëˆ„ë¥´ê³ í›ˆê³„í•˜ì§€ 아니하면 아니 ë˜ê² ë‹¤ê³ ìƒê°í•˜ì˜€ì†Œ.
+"ì •ìž„ì•„."
+í•˜ê³ ë‚˜ëŠ” 비로소 ìž…ì„ ì—´ì–´ì„œ ë¶ˆë €ì†Œ. ë‚´ ì–´ì„±ì€ ìž¥ì¤‘í•˜ì˜€ì†Œ. 나는 í• ìˆ˜ 있는 ìœ„ì—„ì„ ë‹¤í•˜ì—¬ `ì •ìž„ì•„.' í•˜ê³ ë¶€ë¥¸ 것ì´ì˜¤.
+"ì •ìž„ì•„, 네 ì†ì€ 다 알았다. 네 ë§ˆìŒ ë„¤ ëœ»ì€ ê·¸ë§Œí•˜ë©´ 다 알았다. 네가 나를 그처럼 ìƒê°í•´ 주는 ê²ƒì„ ê³ ë§™ê²Œ ìƒê°í•œë‹¤. 기ì˜ê²Œë„ ìƒê°í•œë‹¤. 그러나 ì •ìž„ì•„."
+í•˜ê³ ë‚˜ëŠ” ì¼ì¸µ 태ë„와 소리를 엄숙하게 하여,
+"네가 ì²í•˜ëŠ” ë§ì€ ì ˆëŒ€ë¡œ ë“¤ì„ ìˆ˜ 없는 ë§ì´ë‹¤. ë‚´ê°€ 너를 ì¹œë”¸ê°™ì´ ì‚¬ëž‘í•˜ê¸° ë•Œë¬¸ì— ë‚˜ëŠ” 너를 ë°ë¦¬ê³ 가지 못하는 것ì´ë‹¤. 나는 세ìƒì—서 ì£½ê³ ì¡°ì„ ì—서 죽ë”ë¼ë„ 너는 죽어서 아니 ëœë‹¤. 차마 너까지는 죽ì´ê³ ì‹¶ì§€ 아니하단 ë§ì´ë‹¤. ë‚´ê°€ ì–´ë”” 가서 ì—†ì–´ì ¸ 버리면 세ìƒì€ 네게 씌운 ëˆ„ëª…ì´ ì• ë§¤í•œ ì¤„ì„ ì•Œê²Œ ë ê²ƒì´ ì•„ë‹ˆëƒ. 그리ë˜ë©´ 너는 ì¡°ì„ ì˜ ì¢‹ì€ ì¼ê¾¼ì´ ë˜ì–´ì„œ ì¼ë„ ë§Žì´ í•˜ê³ ë˜ ì‚¬ëž‘í•˜ëŠ” ë‚¨íŽ¸ì„ ë§žì•„ì„œ í–‰ë³µëœ ìƒí™œë„ í• ìˆ˜ ìžˆì„ ê²ƒì´ ì•„ë‹ˆëƒ. ê·¸ê²ƒì´ ë‚´ê°€ 네게 ë°”ë¼ëŠ” 것ì´ë‹¤. ë‚´ê°€ ì–´ë”” ê°€ ìžˆë“ ì§€, ë‚´ê°€ ì‚´ì•„ 있는 ë™ì•ˆ 나는 네가 잘ë˜ëŠ” 것만, 행복ë˜ê²Œ 사는 것만 ë°”ë¼ë³´ê³ í˜¼ìž ê¸°ë»í• ê²ƒì´ ì•„ë‹ˆëƒ.
+네가 다 옳게 알았다. 나는 네 ë§ëŒ€ë¡œ ì¡°ì„ ì„ ì˜ì›ížˆ ë– ë‚˜ê¸°ë¡œ 하였다. ê·¸ë ‡ì§€ë§ˆëŠ” 나는 ì´ë ‡ê²Œ ëœ ê²ƒì„ ì¡°ê¸ˆë„ ìŠ¬í¼í•˜ì§€ 아니한다. 너를 위해서 ë‚´ê°€ 무슨 í¬ìƒì„ í•œë‹¤ê³ í•˜ë©´ 내게는 ê·¸ê²ƒì´ í° ê¸°ì¨ì´ë‹¤. ê·¸ë¿ ì•„ë‹ˆë¼, 나는 ì¸ì œëŠ” 세ìƒì´ 싫어졌다. ë” ì‚´ê¸°ê°€ 싫어졌다. ë‚´ê°€ ì‹ì—¬ ë…„ ë™ì•ˆ ì „ìƒëª…ì„ ë°”ì³ì„œ êµìœ¡í•œ í•™ìƒë“¤ì—게까지 ë°°ì²™ì„ ë°›ì„ ë•Œì—는 나는 지금까지 살아온 ê²ƒì„ ìƒê°ë§Œ í•˜ì—¬ë„ ì§„ì €ë¦¬ê°€ 난다. ê·¸ë ‡ì§€ë§ˆëŠ” 나는 ì´ê²ƒì´ 다 ë‚´ê°€ 부족한 ë•Œë¬¸ì¸ ì¤„ì„ ìž˜ 안다. 나는 ì¡°ì„ ì„ ì›ë§í•œë‹¤ë“ ê°€, ë‚´ ë™í¬ë¥¼ ì›ë§í•œë‹¤ë“ ê°€, 그럴 ìƒê°ì€ 없다. ì›ë§ì„ 한다면 나 ìžì‹ ì˜ ë¶€ì¡±ì„ ì›ë§í• ë¿ì´ë‹¤. ë‚´ê°€ ì›ì²´ êµìœ¡ì„ í•œë‹¤ë“ ì§€ ë‚¨ì˜ ì§€ë„ìžê°€ ëœë‹¤ë“ ì§€ í• ìžê²©ì´ ì—†ìŒì„ ì›ë§í•œë‹¤ë©´ ì›ë§í• 까, ë‚´ê°€ 어떻게 ì¡°ì„ ì´ë‚˜ ì¡°ì„ ì‚¬ëžŒì„ ì›ë§í•˜ëŠëƒ. 그러니까 ì¸ì œ 내게 ë‚¨ì€ ì¼ì€ 나를 ì¡°ì„ ì—서 ì—†ì• ë²„ë¦¬ëŠ” 것ì´ë‹¤. ê°ížˆ ì‹ì—¬ ë…„ ê°„ êµìœ¡ê°€ë¼ê³ ìžì²˜í•´ ì˜¤ë˜ ê±°ì§“ë˜ê³ ì™¸ëžŒëœ ìƒí™œì„ ëŠì–´ 버리는 것ì´ë‹¤. 남편 ë…¸ë¦‡ë„ ëª» í•˜ê³ ì•„ë²„ì§€ ë…¸ë¦‡ë„ ëª» 하는 ì‚¬ëžŒì´ ë‚¨ì˜ ìŠ¤ìŠ¹ì€ ì–´ë–»ê²Œ ë˜ê³ ì§€ë„ìžëŠ” 어떻게 ë˜ëŠëƒ. 하니까 나는 ì´ì œ 세ìƒì„ ë– ë‚˜ 버리는 ê²ƒì´ ì¡°ê¸ˆë„ ìŠ¬í”„ì§€ ì•„ë‹ˆí•˜ê³ ë„리어 ëª¸ì´ ê°€ëœ¬í•˜ê³ ìœ ì¾Œí•´ì§€ëŠ” 것 같다.
+ì˜¤ì§ í•˜ë‚˜ 마ìŒì— 걸리는 ê²ƒì€ ë‚´ ì„ ë°°ìš” 사랑하는 ë™ì§€ì´ë˜ 남 ì„ ìƒì˜ ìœ ì¼í•œ 혈육ì´ë˜ 네게다가 ëˆ„ëª…ì„ ì”Œìš°ê³ ê°€ëŠ” 것ì´ë‹¤."
+"그게 어디 아버지 잘못입니까?"
+í•˜ê³ ì •ìž„ì€ ìž…ìˆ ì„ ê¹¨ë¬¼ì—ˆì†Œ.
+"ëª¨ë‘ ì œê°€ ì² ì´ ì—†ì–´ì„œ ì € 때문ì—……."
+í•˜ê³ ì •ìž„ì€ ëª¸ì„ ë–¨ê³ ìš¸ì—ˆì†Œ.
+"아니! ê·¸ë ‡ê²Œ ìƒê°í•˜ì§€ 마ë¼. ë‚´ê°€ 지금 세ìƒì„ 버릴 ë•Œì— ë¬´ìŠ¨ 기ì¨ì´ 한 가지 남는 ê²ƒì´ ìžˆë‹¤ê³ í•˜ë©´ 너 하나가, ì´ ì„¸ìƒì—서 ì˜¤ì§ ë„ˆ 하나가 나를 ë”°ë¼ ì£¼ëŠ” 것ì´ë‹¤. 아마 ë„ˆë„ ë‚˜ë¥¼ 잘못 ì•Œê³ ë”°ë¼ ì£¼ëŠ” 것ì´ê² 지마는 세ìƒì´ 다 나를 ë²„ë¦¬ê³ , 처ìžê¹Œì§€ë„ 다 나를 버릴 ë•Œì— ì˜¤ì§ ë„ˆ 하나가 나를 소중히 알아 주니 ì–´ì°Œ ê³ ë§™ì§€ ì•Šê² ëŠëƒ. 그러니까 ì •ìž„ì•„ 너는 ëª¸ì„ ì¡°ì‹¬í•˜ì—¬ì„œ ê±´ê°•ì„ íšŒë³µí•˜ì—¬ì„œ 오래 잘 ì‚´ê³ , ê·¸ë¦¬ê³ ë‚˜ë¥¼ ìƒê°í•´ 다오."
+í•˜ê³ ë‚˜ë„ ìš¸ì—ˆì†Œ.
+형! ë‚´ê°€ ì •ìž„ì—게 ì´ëŸ° ë§ì„ 한 ê²ƒì´ ìž˜ëª»ì´ì§€ìš”. 그러나 나는 ê·¸ ë•Œì— ì´ëŸ° ë§ì„ 아니 í• ìˆ˜ 없었소. 왜 ê·¸ëŸ°ê³ í•˜ë‹ˆ, ê·¸ê²ƒì´ ë‚´ ì§„ì •ì´ë‹ˆê¹Œ. ë‚˜ë„ í•™êµ ì„ ìƒìœ¼ë¡œ, êµìž¥ìœ¼ë¡œ, ë˜ ì£¼ì œë„˜ê²Œ ì§€ì‚¬ë¡œì˜ ì¼ìƒì„ ë³´ë‚´ë…¸ë¼ê³ 마치 ì˜¤ì§ ì–¼ìŒ ê°™ì€ ì˜ì§€ë ¥ë§Œ 가진 사람 모양으로 ì‚¬ì‹ í‰ìƒì„ ì‚´ì•„ 왔지마는 ë‚´ ì†ì—ë„ ì—´ì •ì€ ìžˆì—ˆë˜ ê²ƒì´ì˜¤. 다만 ê·¸ ì—´ì •ì„ ëˆ„ë¥´ê³ ì£½ì´ê³ ìžˆì—ˆì„ ë¿ì´ì˜¤. ë¬¼ë¡ ë‚˜ëŠ” 아마 ì¼ìƒì— ì´ ì—´ì •ì˜ ê³ ì‚를 놓아 줄 ë‚ ì´ ì—†ê² ì§€ìš”. ë§Œì¼ ë‚´ê°€ ì´ ì—´ì •ì˜ ê³ ì‚를 놓아서 ìžìœ 로 달리게 í•œë‹¤ê³ í•˜ë©´ 나는 ì´ ê²½ìš°ì— ì •ìž„ì„ ì•ˆê³ , ë‚´ ì—´ì •ìœ¼ë¡œ ì •ìž„ì„ íƒœì›Œ ë²„ë ¸ì„ëŠ”ì§€ë„ ëª¨ë¥´ì˜¤. 그러나 나는 ì •ìž„ì´ê°€ ì—´ì •ìœ¼ë¡œ íƒˆìˆ˜ë¡ ë‚˜ëŠ” ë‚´ ì—´ì •ì˜ ê³ ì‚를 ë‘ ì†ìœ¼ë¡œ 꽉 ë¶™ë“¤ê³ ì´ë¥¼ ì•…ë¬¼ê³ ë§¤ë‹¬ë¦´ ê²°ì‹¬ì„ í•œ 것ì´ì˜¤.
+열한 시!
+"ì •ìž„ì•„. ì¸ì œ 병ì›ìœ¼ë¡œ 가거ë¼."
+í•˜ê³ ë‚˜ëŠ” 엄연하게 ëª…ë ¹í•˜ì˜€ì†Œ.
+"ë‚´ì¼ ì €ë¥¼ ë³´ì‹œê³ ë– ë‚˜ì‹œì§€ìš”?"
+í•˜ê³ ì •ìž„ì€ ëˆˆë¬¼ì„ ì”»ê³ ë¬¼ì—ˆì†Œ.
+"그럼, Jì¡°êµìˆ˜ë„ ë§Œë‚˜ê³ ë„ˆë„ ë³´ê³ ë– ë‚˜ì§€."
+í•˜ê³ ë‚˜ëŠ” ê±°ì§“ë§ì„ 하였소. ì´ ê²½ìš°ì— ë‚´ê°€ ê±°ì§“ë§ìŸì´ë¼ëŠ” í° ì£„ì¸ì´ ë˜ëŠ” ê²ƒì´ ì •ìž„ì—게 대하여 ì •ìž„ì„ ìœ„í•˜ì—¬ 가장 ì˜³ì€ ì¼ì´ë¼ê³ ìƒê°í•œ 까ë‹ì´ì˜¤.
+ì •ìž„ì€, 무서운 ì§ê°ë ¥ê³¼ ìƒìƒë ¥ì„ 가진 ì •ìž„ì€ ë‚´ ë§ì˜ ì§„ì‹¤ì„±ì„ ì˜ì‹¬í•˜ëŠ” ë“¯ì´ ë‚˜ë¥¼ 뚫어지게 ë°”ë¼ë³´ì•˜ì†Œ. 나는 차마 ì •ìž„ì˜ ì‹œì„ ì„ ë§ˆì£¼ ë³´ì§€ 못하여 외면하여 ë²„ë ¸ì†Œ.
+ì •ìž„ì€ ìˆ˜ê±´ìœ¼ë¡œ ëˆˆë¬¼ì„ ì”»ê³ ì²´ê²½ ì•žì— ê°€ì„œ í™”ìž¥ì„ ê³ ì¹˜ê³ ê·¸ë¦¬ê³ ,
+"ì €ëŠ” 가요."
+í•˜ê³ ë‚´ ì•žì— í—ˆë¦¬ë¥¼ 굽혀서 작별 ì¸ì‚¬ë¥¼ 하였소.
+"오, ê°€ ìžê±°ë¼."
+í•˜ê³ ë‚˜ëŠ” 극히 범연하게 대답하였소. 나는 ìžë¦¬ì˜·ì„ 입었기 ë•Œë¬¸ì— í˜„ê´€ê¹Œì§€ ìž‘ë³„í• ìˆ˜ë„ ì—†ì–´ì„œ ë³´ì´ë¥¼ 불러 ìžë™ì°¨ë¥¼ 하나 준비하ë¼ê³ ëª…í•˜ê³ ë‚´ ë°©ì—서 ìž‘ë³„í• ìƒê°ì„ 하였소.
+"ë‚´ì¼ ë³‘ì›ì— 오세요?"
+í•˜ê³ ì •ìž„ì€ ê³ ê°œë¥¼ 숙ì´ê³ 낙루하였소.
+"오, 가마."
+í•˜ê³ ë‚˜ëŠ” ë˜ ê±°ì§“ë§ì„ 하였소. 세ìƒì„ 버리기로 결심한 ì‚¬ëžŒì˜ ê±°ì§“ë§ì€ í•˜ë‚˜ë‹˜ê»˜ì„œë„ ìš©ì„œí•˜ì‹œê² ì§€ìš”. 설사 ë‚´ê°€ ê±°ì§“ë§ì„ 한 죄로 ì§€ì˜¥ì— ê°„ë‹¤ 하ë”ë¼ë„ ì´ ê²½ìš°ì— ì •ìž„ì„ ìœ„í•˜ì—¬ ê±°ì§“ë§ì„ 아니 í• ìˆ˜ê°€ 없지 않소? ë‚´ê°€ ê±°ì§“ë§ì„ 아니 하면 ì •ìž„ì€ ì•„ë‹ˆ ê°ˆ ê²ƒì´ ë¶„ëª…í•˜ì˜€ì†Œ.
+"ì „ 가요."
+í•˜ê³ ì •ìž„ì€ ë˜ í•œ 번 ì ˆì„ í•˜ì˜€ìœ¼ë‚˜ 소리를 내어서 울었소.
+"울지 마ë¼! 몸 ìƒí•œë‹¤."
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì—게 대한 ìµœí›„ì˜ ì¹œì ˆì„ ì •ìž„ì˜ ê³ì— 한 ê±¸ìŒ ê°€ê¹Œì´ ê°€ì„œ 어깨를 ë˜ë‹¥ë˜ë‹¥í•˜ì—¬ ì£¼ê³ , 외투를 입혀 주었소.
+"안녕히 주무세요."
+í•˜ê³ ì •ìž„ì€ ë¬¸ì„ ì—´ê³ ë‚˜ê°€ ë²„ë ¸ì†Œ.
+ì •ìž„ì˜ ê±¸ì–´ê°€ëŠ” 소리가 차차 멀어졌소.
+나는 ì–¼ë¹ ì§„ 사람 모양으로 ê·¸ ìžë¦¬ì— ìš°ë‘커니 서 있었소.
+ì°½ì— ë¶€ë”ªížˆëŠ” ë¹—ë°œ 소리가 ë“¤ë¦¬ê³ ìžë™ì°¨ 소리가 먼 나ë¼ì—서 오는 ê²ƒê°™ì´ ë“¤ë¦¬ì˜¤. ì´ê²ƒì´ ì •ìž„ì´ê°€ íƒ€ê³ ê°€ëŠ” ìžë™ì°¨ 소리ì¸ê°€. 나는 ì •ìž„ì„ ë”°ë¼ê°€ì„œ 붙들어 ì˜¤ê³ ì‹¶ì—ˆì†Œ. ë‚´ 몸과 마ìŒì€ ì •ìž„ì„ ë”°ë¼ì„œ í—ˆê³µì— ë– ê°€ëŠ” 것 같았소.
+ì•„ì•„ ì´ë ‡ê²Œ 나는 ì •ìž„ì„ ê³ì— ë‘ê³ ì‹¶ì„까. ì´ë ‡ê²Œ ë‚´ê°€ ì •ìž„ì˜ ê³ì— ìžˆê³ ì‹¶ì„까. 그러하건마는 나는 ì •ìž„ì„ ë–¼ì–´ ë²„ë¦¬ê³ ê°€ì§€ 아니하면 아니 ëœë‹¤! ê·¸ê²ƒì€ ì• ë“는 ì¼ì´ë‹¤. 기막히는 ì¼ì´ë‹¤! 그러나 ë‚´ ë„ë•ì ì±…ìž„ì€ ì—„ì •í•˜ê²Œ ê·¸ë ‡ê²Œ ëª…ë ¹í•˜ì§€ 않ëŠëƒ. 나는 ì´ ë„ë•ì ì±…ìž„ì˜ ëª…ë ¹ ê·¸ê²ƒì€ ë”위가 없는 ëª…ë ¹ì´ë‹¤ ì„ í„¸ë만치ë¼ë„ 휘어서는 아니 ëœë‹¤.
+그러나 ì •ìž„ì´ê°€ 호텔 현관까지 ìžë™ì°¨ë¥¼ 타기 ì „ì— í•œ 번만 ë” ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í• ì¼ì¼ê¹Œ. 한 번만, ìž ê¹ë§Œ ë” ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í• ì¼ì¼ê¹Œ. ìž ê¹ë§Œ ì¼ ë¶„ë§Œ 아니 ì¼ ì´ˆë§Œ 한 시그마ë¼ëŠ” 극히 ì§§ì€ ë™ì•ˆë§Œ ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í• ì¼ì¼ê¹Œ. 아니, ì •ìž„ì„ í•œ 시그마 ë™ì•ˆë§Œ ë” ë³´ê³ ì‹¶ë‹¤ 나는 ì´ë ‡ê²Œ ìƒê°í•˜ê³ 벌떡 ì¼ì–´ë‚˜ì„œ ë„ì–´ì˜ í•¸ë“¤ì— ì†ì„ 대었소.
+`안 ëœë‹¤! 옳잖다!'
+í•˜ê³ ë‚˜ëŠ” ë‚´ ì†ŒíŒŒì— ëŒì•„와서 í„¸ì© ëª¸ì„ ë˜ì¡Œì†Œ.
+`ìµœí›„ì˜ ìˆœê°„ì´ ì•„ë‹ˆëƒ. ìµœí›„ì˜ ìˆœê°„ì— ìš©ê°ížˆ ì´ê²¨ì•¼ í• ê²ƒì´ ì•„ë‹ˆëƒ. 아서ë¼! 아서ë¼!'
+í•˜ê³ ë‚˜ëŠ” í˜¼ìž ì£¼ë¨¹ì„ ë¶ˆëˆë¶ˆëˆ ì¥ì—ˆì†Œ.
+ì´ ë•Œì— ì§œë°•ì§œë°• í•˜ê³ ê±¸ì–´ì˜¤ëŠ” 소리가 들리오. ë‚´ ê°€ìŠ´ì€ ìŒë°©ë§ì´ë¡œ ë‘들기는 ê²ƒê°™ì´ ë›°ì—ˆì†Œ.
+`설마 ì •ìž„ì¼ê¹Œ.'
+í•˜ë©´ì„œë„ ë‚˜ëŠ” ìˆ¨ì„ ì£½ì´ê³ 귀를 기울였소.
+ê·¸ ë°œìžêµ 소리는 분명 ë‚´ 문 ë°–ì— ì™€ì„œ 그쳤소. ê·¸ë¦¬ê³ ëŠ” 소리가 없었소.
+`ë‚´ ê·€ì˜ í™˜ê°ì¸ê°€.'
+í•˜ê³ ë‚˜ëŠ” í•œìˆ¨ì„ ë‚´ì‰¬ì—ˆì†Œ.
+그러나 ë‹¤ìŒ ìˆœê°„ ë˜ ë‘ì–´ 번 ë¬¸ì„ ë‘드리는 소리가 ë“¤ë ¸ì†Œ.
+"ì´ì—스."
+í•˜ê³ ë‚˜ëŠ” ëŒ€ë‹µí•˜ê³ ë¬¸ì„ ë°”ë¼ë³´ì•˜ì†Œ.
+ë¬¸ì´ ì—´ë ¸ì†Œ.
+들어오는 ì´ëŠ” ì •ìž„ì´ì—ˆì†Œ.
+"웬ì¼ì´ëƒ."
+í•˜ê³ ë‚˜ëŠ” 엄숙한 태ë„를 지었소. 그것으로 ì¼ ì´ˆì˜ ì¼ì²œë¶„ì§€ ì¼ì´ë¼ë„ 다시 한 번 ë³´ê³ ì‹¶ë˜ ì •ìž„ì„ ë³´ê³ ê¸°ì¨ì„ 카무플ë¼ì£¼í•œ 것ì´ì˜¤.
+ì •ìž„ì€ ì„œìŠ´ì§€ ì•Šê³ ë‚´ ë’¤ì— ì™€ì„œ ë‚´ êµì˜ì— ëª¸ì„ ê¸°ëŒ€ë©°,
+"ì•”ë§Œí•´ë„ ì˜¤ëŠ˜ì´ ë§ˆì§€ë§‰ì¸ ê²ƒë§Œ 같아서, 다시 뵈올 ê¸°ì•½ì€ ì—†ëŠ” 것만 같아서 가다가 ë„로 왔습니다. 한 번만 ë” ëµ™ê³ ê°ˆ 양으로요. 그래 ë„로 ì™€ì„œë„ ë“¤ì–´ì˜¬ê¹Œ ë§ê¹Œ í•˜ê³ ì£¼ì €ì£¼ì €í•˜ë‹¤ê°€ ì´ê²ƒì´ 마지막ì¸ë° í•˜ê³ ìš©ê¸°ë¥¼ 내어서 들어왔습니다. ë‚´ì¼ ì €ë¥¼ ë³´ì‹œê³ ê°€ì‹ ë‹¤ëŠ” ê²ƒì´ ë¶€ëŸ¬ í•˜ì‹ ë§ì”€ë§Œ ê°™ê³ , 마지막 ëµˆì˜µê³ , ëµˆì˜¨ëŒ€ë„ ê·¸ëž˜ë„ í•œ 번 ë” ëµˆì˜µê¸°ë§Œ í•´ë„……."
+í•˜ê³ ì •ìž„ì˜ ë§ì€ ëì„ ì•„ë¬¼ì§€ 못하였소. 그는 ë‚´ 등 ë’¤ì— ì„œ 있기 ë•Œë¬¸ì— ê·¸ê°€ ì–´ë– í•œ í‘œì •ì„ í•˜ê³ ìžˆëŠ”ì§€ëŠ” ë³¼ 수가 없었소. 나는 다만 ì•„ë²„ì§€ì˜ ìœ„ì—„ìœ¼ë¡œ ì •ë©´ì„ ë°”ë¼ë³´ê³ ìžˆì—ˆì„ ë¿ì´ì˜¤.
+`ì •ìž„ì•„, ë‚˜ë„ ë„¤ê°€ ë³´ê³ ì‹¶ì—ˆë‹¤. 네 뒤를 ë”°ë¼ê°€ê³ 싶었다. ë‚´ 몸과 마ìŒì€ 네 뒤를 ë”°ë¼ì„œ 허공으로 ë‚ ì•˜ë‹¤. 나는 너를 한 ì´ˆë¼ë„ 한 ì´ˆì˜ ì²œë¶„ì§€ ì¼ ë™ì•ˆì´ë¼ë„ 한 번 ë” ë³´ê³ ì‹¶ì—ˆë‹¤. ì •ìž„ì•„, ë‚´ ì§„ì •ì€ ë„ˆë¥¼ ì–¸ì œë“ ì§€ ë‚´ ê³ì— ë‘ê³ ì‹¶ë‹¤. ì •ìž„ì•„, 지금 ë‚´ ìƒëª…ì´ ê°€ì§„ ê²ƒì€ ì˜¤ì§ ë„ˆë¿ì´ë‹¤.'
+ì´ëŸ° ë§ì´ë¼ë„ í•˜ê³ ì‹¶ì—ˆì†Œ. 그러나 ì´ëŸ° ë§ì„ 하여서는 아니 ë˜ì˜¤! ë§Œì¼ ë‚´ê°€ ì´ëŸ° ë§ì„ 하여 준다면 ì •ìž„ì´ê°€ 기ë»í•˜ê² 지요. 그러나 나는 ì •ìž„ì´ì—게 ì´ëŸ° 기ì¨ì„ 주어서는 아니 ë˜ì˜¤!
+나는 ì–´ë””ê¹Œì§€ë“ ì§€ ì•„ë²„ì§€ì˜ ìœ„ì—„, ì•„ë²„ì§€ì˜ ëƒ‰ì •í•¨ì„ ì•„ë‹ˆ 지켜서는 아니 ë˜ì˜¤.
+ê·¸ë ‡ì§€ë§ˆëŠ” ë‚´ ê°€ìŠ´ì— íƒ€ì˜¤ë¥´ëŠ” ì´ë¦„ì§€ì„ ìˆ˜ 없는 ì—´ì •ì˜ ë¶ˆê¸¸ì€ ë‚´ ì´ì„±ê³¼ ì˜ì§€ë ¥ì„ 태워 ë²„ë¦¬ë ¤ 하오. 나는 ëˆˆì´ ì•„ëœ©ì•„ëœ©í•¨ì„ ê¹¨ë‹«ì†Œ. 나는 ë‚´ ìƒëª…ì˜ ë¶ˆê¸¸ì´ ê¹œë°•ê¹œë°•í•¨ì„ ê¹¨ë‹«ì†Œ.
+ê·¸ë ‡ì§€ë§ˆëŠ”! ì•„ì•„ ê·¸ë ‡ì§€ë§ˆëŠ” 나는 ì´ ë„ë•ì ì±…ìž„ì˜ ë¬´ìƒ ëª…ë ¹ì˜ ë°œë ¹ìžì¸ ì“´ ìž”ì„ ë§ˆì‹œì§€ 아니하여서는 아니 ë˜ëŠ” 것ì´ì˜¤.
+`산! 바위!'
+나는 ì •ì‹ ì„ ê°€ë‹¤ë“¬ì–´ì„œ ì´ê²ƒì„ 염하였소.
+그러나 ì—´ì •ì˜ íŒŒë„ê°€ 치는 ê³³ì— ì‚°ì€ ì›€ì§ì´ì§€ 아니하오? 바위는 í”들리지 아니하오? 태산과 ë°˜ì„ì´ ê·¸ í° ë¶ˆê¸¸ì— íƒ€ì„œ 재가 ë˜ì§€ëŠ” 아니하오? ì¸ìƒì˜ ëª¨ë“ íž˜ ê°€ìš´ë° ì—´ì •ë³´ë‹¤ ë” íë ¥ì ì¸ ê²ƒì´ ì–´ë”” 있소? ì•„ë§ˆë„ ìš°ì£¼ì˜ ëª¨ë“ íž˜ ê°€ìš´ë° ì‚¬ëžŒì˜ ì—´ì •ê³¼ ê°™ì´ íë ¥ì , 불가í•ë ¥ì ì¸ ê²ƒì€ ì—†ìœ¼ë¦¬ë¼. 뇌성, ë²½ë ¥, 글쎄 그것ì—나 비길까. ì°¨ë¼ë¦¬ 천체와 천체가 수학ì 으로 ê³„ì‚°í• ìˆ˜ 없는 비ìƒí•œ ì†ë ¥ì„ ê°€ì§€ê³ ë§ˆì£¼ ë‹¬ë ¤ë“¤ì–´ì„œ ìš°ë¦¬ì˜ ê·€ë¡œ ë“¤ì„ ìˆ˜ 없는 í° ì†Œë¦¬ì™€ 우리가 êµ³ë‹¤ê³ ì¼ì»«ëŠ” 금강ì„ì´ë¼ë„ ì¦ê¸°ë¥¼ ë§Œë“¤ê³ ì•¼ ë§ ë§Œí•œ ì—´ì„ ë°œí•˜ëŠ” ì¶©ëŒì˜ 순간ì—나 비길까. 형. 사람ì´ë¼ëŠ” 존재가 ìš°ì£¼ì˜ ëª¨ë“ ì¡´ìž¬ ì¤‘ì— ê°€ìž¥ 비ìƒí•œ ì¡´ìž¬ì¸ ê²ƒ 모양으로 ì‚¬ëžŒì˜ ì—´ì •ì˜ íž˜ì€ ìš°ì£¼ì˜ ëª¨ë“ ì‹ ë¹„í•œ 힘 ê°€ìš´ë° ê°€ìž¥ ì‹ ë¹„í•œ íž˜ì´ ì•„ë‹ˆê² ì†Œ? 대체 ìš°ì£¼ì˜ ëª¨ë“ íž˜ì€ ê·¸ê²ƒì´ ì•„ë¬´ë¦¬ í° íž˜ì´ë¼ê³ 하ë”ë¼ë„ ì € ìžì‹ ì„ ê¹¨ëœ¨ë¦¬ëŠ” ê²ƒì€ ì—†ì†Œ. ê·¸ë ‡ì§€ë§ˆëŠ” 사람ì´ë¼ëŠ” ì¡´ìž¬ì˜ ì—´ì •ì€ ëŠ¥ížˆ ì œ ìƒëª…ì„ ê¹¨ëœ¨ë ¤ 가루를 ë§Œë“¤ê³ ì œ ìƒëª…ì„ ì‚´ë¼ì„œ 소지를 올리지 아니하오? 여보, 대체 ì´ì—서 ë” íë ¥ì´ìš”, ì‹ ë¹„ì ì¸ ê²ƒì´ ì–´ë”” 있단 ë§ì´ì˜¤.
+ì´ ë•Œ ë‚´ ìƒíƒœ, 어깨 ë’¤ì—서 ì—´ì •ìœ¼ë¡œ íƒ€ê³ ì„°ëŠ” ì •ìž„ì„ ëŠë¼ëŠ” ë‚´ ìƒíƒœëŠ” 바야í로 대íë°œ, 대충ëŒì„ 기다리는 아슬아슬한 때가 아니었소. ë§Œì¼ ì¡°ê¸ˆë§Œì´ë¼ë„ ë‚´ê°€ ë‚´ ì—´ì •ì˜ ê³ ì‚ì— ëŠ¦ì¶¤ì„ ì¤€ë‹¤ê³ í•˜ë©´ 무서운 대íë°œì´ ì¼ì–´ë‚¬ì„ 것ì´ì˜¤.
+"ì •ìž„ì•„!"
+í•˜ê³ ë‚˜ëŠ” 충분히 마ìŒì„ ì§„ì •í•´ ê°€ì§€ê³ ê³ ê°œë¥¼ 옆으로 ëŒë ¤ ì •ìž„ì˜ ì–¼êµ´ì„ ì°¾ì•˜ì†Œ.
+"네ì—."
+í•˜ê³ ì •ìž„ì€ ìž…ì„ ì•½ê°„ ë‚´ ê·€ 가까ì´ë¡œ ê°€ì ¸ì™€ì„œ ê·¸ 씨근거리는 소리가 분명히 ë‚´ ê·€ì— ë“¤ë¦¬ê³ ê·¸ 후ëˆí›„ëˆí•˜ëŠ” 뜨거운 ìž…ê¹€ì´ ë‚´ 목과 ëº¨ì— ê°ê°ë˜ì—ˆì†Œ.
+억지로 ì§„ì •í•˜ì˜€ë˜ ë‚´ ê°€ìŠ´ì€ ë‹¤ì‹œ ì„¤ë ˆê¸°ë¥¼ 시작하였소. ê·¸ 불규칙한 숨소리와 뜨거운 ìž…ê¹€ 때문ì´ì—ˆì„까.
+"시간 늦는다. 어서 가거ë¼. ì´ ì•„ë²„ì§€ëŠ” ì–¸ì œê¹Œì§€ë“ ì§€ 너를 사랑하는 딸 로 소중히 소중히 ê°€ìŠ´ì— í’ˆê³ ìžˆìœ¼ë§ˆ. ë˜ í›„ì¼ì— 다시 ë§Œë‚ ë•Œë„ ìžˆì„ì§€ ì•„ëŠëƒ. 설사 다시 ë§Œë‚ ë•Œê°€ 없다기로니 ê·¸ê²ƒì´ ë¬´ì—‡ì´ ê·¸ë¦¬ 대수ëƒ. ë‚˜ì´ ë§Žì€ ì‚¬ëžŒì€ ë¨¼ì € ì£½ê³ ì Šì€ ì‚¬ëžŒì€ ì˜¤ëž˜ 살아서 ì¸ìƒì˜ ì¼ì„ ë§Žì´ í•˜ëŠ” ê²ƒì´ ìˆœì„œê°€ 아니ëƒ. 너는 ëª¸ì´ ì•„ì§ ì•½í•˜ë‹ˆ 마ìŒì„ 잘 ì•ˆì •í•´ì„œ 어서 ê±´ê°•ì„ íšŒë³µí•˜ì—¬ë¼. ê·¸ë¦¬ê³ êµ³ì„¸ê²Œ 굳세게, 힘있게 힘있게 ì‚´ì•„ 다오. ì¡°ì„ ì€ ì‚¬ëžŒì„ êµ¬í•œë‹¤. 나 ê°™ì€ ì‚¬ëžŒì€ ì¸ì œ ì¡°ì„ ì„œ ë” ì¼í• ìžê²©ì„ 잃어버린 사람ì´ì§€ë§ˆëŠ” 네야 ì–´ë– ëƒ. 설사 누가 무슨 ë§ì„ 해서 í•™êµì—서 학비를 아니 ì¤€ë‹¤ê±°ë“ ë‚´ê°€ 네게 준 ìž¬ì‚°ì„ ê°€ì§€ê³ ë„¤ 마ìŒëŒ€ë¡œ 공부를 í•˜ë ¤ë¬´ë‚˜. 네가 ê·¸ë ‡ê²Œ í•´ 주어야 나를 위하는 것ì´ë‹¤. ìž ì¸ì œ 가거ë¼. 네 ì•žê¸¸ì´ ì–‘ì–‘í•˜ì§€ 아니하ëƒ. ìž ì¸ì œ 가거ë¼. 나는 ë‚´ì¼ ì•„ì¹¨ ë™ê²½ì„ ë– ë‚ ëž€ë‹¤. ìž ì–´ì„œ."
+í•˜ê³ ë‚˜ëŠ” í™”í‰í•˜ê²Œ 웃는 낯으로 ì¼ì–´ì„°ì†Œ.
+ì •ìž„ì€ ìš¸ë¨¹ìš¸ë¨¹í•˜ê³ ê³ ê°œë¥¼ 숙ì´ì˜¤.
+ë°–ì—서는 ë°”ëžŒì´ ì ì ê°•í•´ì ¸ì„œ 소리를 í•˜ê³ ìœ ë¦¬ì°½ì„ í”드오.
+"그럼, ì „ 가요."
+í•˜ê³ ì •ìž„ì€ ê³ ê°œë¥¼ 들었소.
+"그래. 어서 가거ë¼. ë²Œì¨ ì—´í•œì‹œ ë°˜ì´ë‹¤. ë³‘ì› ë¬¸ì€ ì•„ë‹ˆ 닫니!"
+ì •ìž„ì€ ëŒ€ë‹µì´ ì—†ì†Œ.
+"어서!"
+í•˜ê³ ë‚˜ëŠ” ë³´ì´ë¥¼ 불러 ìžë™ì°¨ë¥¼ 하나 준비하ë¼ê³ ì¼ë €ì†Œ.
+"ê°ˆëžë‹ˆë‹¤."
+í•˜ê³ ì •ìž„ì€ ê³ ê°œë¥¼ 숙여서 내게 ì¸ì‚¬ë¥¼ í•˜ê³ ë¬¸ì„ í–¥í•˜ì—¬ 한 ê±¸ìŒ ê±·ë‹¤ê°€ ìž ê¹ ì£¼ì €í•˜ë”니, 다시 ëŒì•„서서,
+"ì €ë¥¼ 한 번만 안아 주셔요. 아버지가 어린 ë”¸ì„ ì•ˆë“¯ì´ í•œ 번만 안아 주셔요."
+í•˜ê³ ë‚´ 앞으로 ê°€ê¹Œì´ ì™€ 서오.
+나는 íŒ”ì„ ë²Œë ¤ 주었소. ì •ìž„ì€ ë‚´ ê°€ìŠ´ì„ í–¥í•˜ê³ ëª¸ì„ ë˜ì¡Œì†Œ. ê·¸ë¦¬ê³ ì œ ì´ëº¨ ì €ëº¨ì„ ë‚´ ê°€ìŠ´ì— ëŒ€ê³ ë¹„ë³ì†Œ. 나는 ë‘ íŒ”ì„ ì •ìž„ì˜ ì–´ê¹¨ ìœ„ì— ê°€ë²¼ì´ ë†“ì•˜ì†Œ.
+ì´ëŸ¬í•œ ì§€ 몇 ë¶„ì´ ì§€ë‚¬ì†Œ. 아마 ì¼ ë¶„ë„ ë‹¤ 못 ë˜ì—ˆëŠ”ì§€ 모르오.
+ì •ìž„ì€ ë‚´ 가슴ì—서 ê³ ê°œë¥¼ 들어 나를 뚫어지게 우러러보ë”니, 다시 ë‚´ ê°€ìŠ´ì— ë‚¯ì„ ëŒ€ë”니 아마 ë‚´ ì‹¬ìž¥ì´ ë¬´ì„게 뛰는 소리를 ì •ìž„ì€ ë“¤ì—ˆì„ ê²ƒì´ì˜¤ ì •ìž„ì€ ë‹¤ì‹œ ê³ ê°œë¥¼ ë“¤ê³ ,
+"어디를 ê°€ì‹œë“ ì§€ 편지나 주셔요."
+í•˜ê³ êµµì€ ëˆˆë¬¼ì„ ë–¨êµ¬ê³ ëŠ” 내게서 물러서서 ë˜ í•œ 번 ì ˆí•˜ê³ ,
+"안녕히 가셔요. ë§Œì£¼ë“ ì§€ ì•„ë ¹ì´ë“ ì§€ ì¡°ì„ ì‚¬ëžŒ ë§Žì´ ì‚¬ëŠ” ê³³ì— ê°€ì…”ì„œ ì¼í•˜ê³ 사셔요. ëŒì•„가실 ìƒê°ì€ 마셔요. ì œê°€, 아버지 ë§ì”€ëŒ€ë¡œ í˜¼ìž ë–¨ì–´ì ¸ 있으니 ì•„ë²„ì§€ë„ ì œ ë§ì”€ëŒ€ë¡œ ëŒì•„가실 ìƒê°ì€ 마셔요, 네, ê·¸ë ‡ë‹¤ê³ ëŒ€ë‹µí•˜ì…”ìš”!"
+í•˜ê³ ëŠ” ë˜ í•œ 번 ë‚´ ê°€ìŠ´ì— ëª¸ì„ ê¸°ëŒ€ì˜¤.
+죽기를 결심한 나는 `오ëƒ, 그러마.' 하는 ëŒ€ë‹µì„ í• ìˆ˜ëŠ” 없었소. 그래서,
+"오, ë‚´ ì‚´ë„ë¡ íž˜ì“°ë§ˆ."
+하는 약ì†ì„ 주어서 ì •ìž„ì„ ëŒë ¤ë³´ëƒˆì†Œ.
+ì •ìž„ì˜ ë°œìžêµ 소리가 안 들리게 ëœ ë•Œì— ë‚˜ëŠ” ë¹ ë¥¸ 걸ìŒìœ¼ë¡œ ì˜¥ìƒ ì •ì›ìœ¼ë¡œ 나갔소. 비가 막 뿌리오.
+나는 ì •ìž„ì´ê°€ íƒ€ê³ ë‚˜ê°€ëŠ” ìžë™ì°¨ë¼ë„ ë³¼ 양으로 호텔 현관 ì•žì´ ë³´ì´ëŠ” ê¼ëŒ€ê¸°ë¡œ 올ë¼ê°”소. í˜„ê´€ì„ ë– ë‚œ ìžë™ì°¨ 하나가 ì „ì°»ê¸¸ë¡œ 나서서는 ë¶ì„ í–¥í•˜ê³ ë‹¬ì•„ë‚˜ì„œ 순ì‹ê°„ì— ê·¸ ê½ë¬´ë‹ˆì— 달린 ë¶‰ì€ ë¶ˆì¡°ì°¨ ìŠ¤ëŸ¬ì ¸ ë²„ë¦¬ê³ ë§ì•˜ì†Œ.
+나는 미친 사람 모양으로,
+"ì •ìž„ì•„, ì •ìž„ì•„!"
+í•˜ê³ ìˆ˜ì—†ì´ ë¶ˆë €ì†Œ. 나는 사 층ì´ë‚˜ ë˜ëŠ” ì´ ê¼ëŒ€ê¸°ì—서 ë›°ì–´ë‚´ë ¤ì„œ ì •ìž„ì´ê°€ íƒ€ê³ ê°„ ìžë™ì°¨ì˜ 뒤를 ë”°ë¥´ê³ ì‹¶ì—ˆì†Œ.
+"ì•„ì•„ ì˜ì›í•œ ì¸ìƒì˜ ì´ë³„!"
+나는 ê·¸ 옥ìƒì— 얼마나 오래 ì„°ë˜ì§€ë¥¼ 모르오. ë‚´ 머리와 낯과 배스로브ì—서는 ë¬¼ì´ í르오. ë°©ì— ë“¤ì–´ì˜¤ë‹ˆ ì •ìž„ì´ê°€ ë¼ì¹˜ê³ ê°„ 향기와 추억만 남았소.
+나는 ë°© 안 구ì„구ì„ì— ì •ìž„ì˜ ëª¨ì–‘ì´ ë³´ì´ëŠ” ê²ƒì„ ê¹¨ë‹¬ì•˜ì†Œ. 특별히 ì •ìž„ì´ê°€ ê³ ê°œë¥¼ 숙ì´ê³ 서 ìžˆë˜ ë‚´ êµì˜ ë’¤ì—는 분명히 갈색 외투를 ìž…ì€ ì •ìž„ì˜ ëª¨ì–‘ì´ ì™„ì—°í•˜ì˜¤.
+"ì •ìž„ì•„!"
+í•˜ê³ ë‚˜ëŠ” ê·¸ 곳으로 ë”°ë¼ê°€ì˜¤. 그러나 가면 거기는 ì •ìž„ì€ ì—†ì†Œ.
+나는 êµì˜ì— 앉소. 그러면 ì •ìž„ì˜ ì”¨ê·¼ì”¨ê·¼í•˜ëŠ” 숨소리와 ë”ìš´ ìž…ê¹€ì´ ë¶„ëª… ë‚´ ì˜¤ë¥¸íŽ¸ì— ê°ê°ì´ ë˜ì˜¤. ì•„ì•„ 무서운 환ê°ì´ì—¬!
+나는 ìžë¦¬ì— 눕소. ê·¸ë¦¬ê³ ì •ìž„ì˜ í™˜ê°ì„ í”¼í•˜ë ¤ê³ ë¶ˆì„ ë„오. 그러면 ì •ìž„ì´ê°€ 내게 ì•ˆê¸°ë˜ ìžë¦¬ì¯¤ì— 환하게 ì •ìž„ì˜ ëª¨ì–‘ì´ ë‚˜íƒ€ë‚˜ì˜¤.
+나는 ë¶ˆì„ ì¼œì˜¤. ë˜ ë¶ˆì„ ë„오.
+ë‚ ì´ ë°ìž 나는 비가 ê° ê²ƒì„ ë‹¤í–‰ìœ¼ë¡œ ë¹„í–‰ìž¥ì— ë‹¬ë ¤ê°€ì„œ 비행기를 얻어 탔소.
+나는 다시 ì¡°ì„ ì˜ í•˜ëŠ˜ì„ í†µê³¼í•˜ê¸°ê°€ 싫어서 ë¶ê°•ì—서 비행기ì—서 ë‚´ë ¤ì„œ ë¬¸ì‚¬ì— ì™€ì„œ ëŒ€ë ¨ìœ¼ë¡œ 가는 배를 탔소.
+나는 ëŒ€ë ¨ì—서 ë‚´ë ¤ì„œ í•˜ë£»ë°¤ì„ ì—¬ê´€ì—서 ìžê³ 는 ê³§ 장춘 가는 ê¸‰í–‰ì„ íƒ”ì†Œ. ë¬¼ë¡ ì•„ë¬´ì—ê²Œë„ ì—½ì„œ 한 장 한 ì¼ ì—†ì—ˆì†Œ. ê·¸ê²ƒì€ ì¸ì—°ì„ ëŠì€ 세ìƒì— 대하여 연연한 마ìŒì„ 가지는 ê²ƒì„ ë¶€ë„럽게 ìƒê°í•œ 까ë‹ì´ì˜¤.
+차가 ì˜›ë‚ ì—는 우리 ì¡°ìƒë„¤ê°€ ì‚´ê³ ë¬¸í™”ë¥¼ ì§“ë˜ ì˜› í„°ì „ì¸ ë§Œì£¼ì˜ ë²ŒíŒì„ 달릴 때ì—는 ê°íšŒë„ 없지 아니하였소. 그러나 나는 지금 그런 한가한 ê°ìƒì„ 쓸 ê²¨ë¥¼ì´ ì—†ì†Œ.
+ë‚´ê°€ ë¯¿ê³ ê°€ëŠ” ê³³ì€ í•˜ì–¼ë¹ˆì— ìžˆëŠ” ì–´ë–¤ 친구요. 그는 Rë¼ëŠ” 사람으로서 ê²½ìˆ ë…„ì— A씨 ë“±ì˜ ë§ëª…ê°ì„ ë”°ë¼ ë‚˜ê°”ë‹¤ê°€ ì•„ë¼ì‚¬ì—서 무관 í•™êµë¥¼ ì¡¸ì—…í•˜ê³ ì•„ë¼ì‚¬ 사관으로서 구주 ëŒ€ì „ì—ë„ ì¶œì •ì„ í•˜ì˜€ë‹¤ê°€, í˜ëª… 후ì—ë„ ì´ë‚´ ì ìœ„êµ°ì— ë¨¸ë¬¼ëŸ¬ì„œ 지금까지 소비ì—트 장êµë¡œ 있는 사람ì´ì˜¤. ì§€ê¸ˆì€ ìœ¡êµ° 소장ì´ë¼ë˜ê°€.
+나는 í•˜ì–¼ë¹ˆì— ê·¸ ì‚¬ëžŒì„ ì°¾ì•„ê°€ëŠ” 것ì´ì˜¤. ê·¸ ì‚¬ëžŒì„ ì°¾ì•„ì•¼ ì•„ë¼ì‚¬ì— 들어갈 ì—¬í–‰ê¶Œì„ ì–»ì„ ê²ƒì´ìš”, ì—¬í–‰ê¶Œì„ ì–»ì–´ì•¼ ë‚´ê°€ í‰ì†Œì— ì´ìƒí•˜ê²Œë„ ê·¸ë¦¬ì›Œí•˜ë˜ ë°”ì´ì¹¼ 호를 ë³¼ 것ì´ì˜¤.
+í•˜ì–¼ë¹ˆì— ë‚´ë¦° ê²ƒì€ í•´ê°€ 뉘엿뉘엿 넘어가는 ì„ì–‘ì´ì—ˆì†Œ.
+나는 ì•ˆì¤‘ê·¼ì´ ì´ë“±ë°•문(ä¼Šè—¤åšæ–‡:ì´í† 히로부미)ì„ ìœ ê³³ì´ ì–´ë”˜ê°€ í•˜ê³ ë²ŒíŒê³¼ ê°™ì´ ë„“ì€ í”Œëž«í¼ì— ë‚´ë ¸ì†Œ. 과연 êµì œ ë„ì‹œë¼ ì„œì–‘ 사람, ì¤‘êµ ì‚¬ëžŒ, ì¼ë³¸ ì‚¬ëžŒì´ ê°ê¸° ì œ ë§ë¡œ 지껄ì´ì˜¤. ì•„ì•„ ì¡°ì„ ì‚¬ëžŒë„ ìžˆì„ ê²ƒì´ì˜¤ë§ˆëŠ” 다들 ì–‘ë³µì„ ìž…ê±°ë‚˜ ì²ë³µì„ 입거나 í•˜ê³ ë˜ ì‚¬ëžŒì´ ë§Žì€ ê³³ì—서는 ë§ë„ 잘 하지 아니하여 ì•„ë¬´ìª¼ë¡ ì¡°ì„ ì‚¬ëžŒì¸ ê²ƒì„ í‘œì‹œí•˜ì§€ 아니하는 íŒì´ë¼ ê·¸ 골격과 í‘œì •ì„ ì‚´í”¼ê¸° ì „ì—는 ì–´ëŠ ê²ƒì´ ì¡°ì„ ì‚¬ëžŒì¸ì§€ 알 ê¸¸ì´ ì—†ì†Œ. 아마 허름하게 ì°¨ë¦¬ê³ ê¸°ìš´ ì—†ì´, 비창한 ë¹›ì„ ë ê³ ì‚¬ëžŒì˜ ëˆˆì„ ìŠ¬ìŠ¬ 피하는 ì € 순하게 ìƒê¸´ ì‚¬ëžŒë“¤ì´ ì¡°ì„ ì‚¬ëžŒì´ê² 지요. ì–¸ì œë‚˜ 한 번 가는 곳마다 ë™ì–‘ì´ë“ ì§€, 서양ì´ë“ ì§€,
+`나는 ì¡°ì„ ì‚¬ëžŒì´ì˜¤!'
+í•˜ê³ ë½ë‚´ê³ ë‹¤ë‹ ë‚ ì´ ìžˆì„까 하면 ëˆˆë¬¼ì´ ë‚˜ì˜¤. ë”구나, 하얼빈과 ê°™ì€ ê°ìƒ‰ ì¸ì¢…ì´ ëª¨ì—¬ì„œ ìƒì¡´ ê²½ìŸì„ 하는 ë§ˆë‹¹ì— ì„œì„œ ì´ëŸ° 비ê°ì´ ê°„ì ˆí•˜ì˜¤. ì•„ì•„ ì´ ë¶ˆìŒí•œ ìœ ëž‘ì˜ ë¬´ë¦¬ ì¤‘ì— ë‚˜ë„ í•˜ë‚˜ë¥¼ ë” ë³´íƒœëŠ”ê°€ 하면 ëˆˆë¬¼ì„ ì”»ì§€ ì•„ë‹ˆí• ìˆ˜ 없었소.
+나는 ì—ì—서 나와서 ì–´ë–¤ ì•„ë¼ì‚¬ ë³‘ì • 하나를 ë¶™ë“¤ê³ Rì˜ ì•„ë¼ì‚¬ ì´ë¦„ì„ ë¶ˆë €ì†Œ. ê·¸ë¦¬ê³ ì•„ëŠëƒê³ ì˜ì–´ë¡œ 물었소.
+ê·¸ ë³‘ì •ì€ ë‚´ ë§ì„ 잘못 알아들었는지, ë˜ëŠ” R를 모르는지 무엇ì´ë¼ê³ ì•„ë¼ì‚¬ë§ë¡œ 지껄ì´ëŠ” 모양ì´ë‚˜ 나는 ë¬¼ë¡ ê·¸ê²ƒì„ ì•Œì•„ë“¤ì„ ìˆ˜ê°€ 없었소. 그러나 나는 ê·¸ ë³‘ì •ì˜ í‘œì •ì—서 내게 호ì˜ë¥¼ 가진 ê²ƒì„ ì§ìž‘í•˜ê³ í•œ 번 ë” ë¶„ëª…ížˆ,
+"ìš”ì‹ ì•Œë ‰ì‚°ë“œë¡œë¹„ì¹˜ 리가ì´."
+ë¼ê³ 불러 보았소.
+ê·¸ ë³‘ì •ì€ ë¹™ê·¸ë ˆ ì›ƒê³ ê³ ê°œë¥¼ í”드오. ì´ ë‘ ì™¸êµ ì‚¬ëžŒì˜ ì´ìƒí•œ êµì„ì— í¥ë¯¸ë¥¼ ê°€ì§€ê³ ì—¬ëŸ¬ ì•„ë¼ì‚¬ ë³‘ì •ê³¼ ë™ì–‘ ì‚¬ëžŒë“¤ì´ ì‹ì—¬ ì¸ì´ë‚˜ 우리 ì£¼ìœ„ì— ëª¨ì—¬ë“œì˜¤.
+ê·¸ ë³‘ì •ì´ ë‚˜ë¥¼ ë°”ë¼ë³´ê³ ë˜ í•œ 번 ê·¸ ì´ë¦„ì„ ë¶ˆëŸ¬ ë³´ë¼ëŠ” 모양 같기로 나는 ì´ë²ˆì—는 Rì˜ ì•„ë¼ì‚¬ ì´ë¦„ì— `ì œë„ˆëŸ´'ì´ë¼ëŠ” ë§ì„ 붙여 불러 보았소.
+그랬ë”니 ì–´ë–¤ 다른 ë³‘ì •ì´ ë›°ì–´ë“¤ë©°,
+"게네ë¼ìš° 리가ì´!"
+í•˜ê³ ì•ˆë‹¤ëŠ” í‘œì •ì„ í•˜ì˜¤. `게네ë¼ìš°'ë¼ëŠ” ê²ƒì´ ì•„ë§ˆ ì•„ë¼ì‚¬ë§ë¡œ 장군ì´ëž€ ë§ì¸ê°€ 하였소.
+"예스. 예스."
+í•˜ê³ ë‚˜ëŠ” 기ì˜ê²Œ 대답하였소. ê·¸ë¦¬ê³ ëŠ” ì•„ë¼ì‚¬ ë³‘ì •ë“¤ë¼ë¦¬ 무ì—ë¼ê³ 지껄ì´ë”니, ê·¸ ì¤‘ì— í•œ ë³‘ì •ì´ ë‚˜ì„œë©´ì„œ ê³ ê°œë¥¼ ë„ë•ë„ë•í•˜ê³ , ì œê°€ 마차 하나를 불러서 나를 íƒœìš°ê³ ì €ë„ íƒ€ê³ ì–´ë””ë¡œ ë‹¬ë ¤ê°€ì˜¤.
+ê·¸ ì•„ë¼ì‚¬ ë³‘ì •ì€ ì¹œì ˆížˆ ì•Œì§€ë„ ëª»í•˜ëŠ” ë§ë¡œ ì´ê²ƒì €ê²ƒì„ 가리키면서 ì„¤ëª…ì„ í•˜ë”니 ë‚´ê°€ 못 알아듣는 ì¤„ì„ ìƒê°í•˜ê³ ë‚´ 어깨를 íˆ ì¹˜ê³ ì›ƒì†Œ. ì–´ë¦°ì• ì™€ ê°™ì´ ìˆœí•œ 사람들ì´êµ¬ë‚˜ í•˜ê³ ë‚˜ëŠ” ê³ ë§™ë‹¤ëŠ” 표로 ê³ ê°œë§Œ ë„ë•ë„ë•하였소.
+어디로 어떻게 가는지 서양 시가로 ë‹¬ë ¤ê°€ë‹¤ê°€ ì–´ë–¤ í° ì €íƒ ì•žì— ì´ë¥´ëŸ¬ì„œ 마차를 ê·¸ 현관 앞으로 들ì´ëª°ì•˜ì†Œ.
+현관ì—서는 ì¢…ì¡¸ì´ ë‚˜ì™”ì†Œ. ë‚´ê°€ ëª…í•¨ì„ ë“¤ì—¬ë³´ëƒˆë”니 ë¶€ê´€ì¸ ë“¯í•œ ì•„ë¼ì‚¬ 장êµê°€ 나와서 나를 으리으리한 ì‘ì ‘ì‹¤ë¡œ ì¸ë„하였소. 얼마 있노ë¼ë‹ˆ ì¤‘ë…„ì´ ë„˜ì€ ì–´ë–¤ ëŒ€ìž¥ì´ ë‚˜ì˜¤ëŠ”ë° êµ°ë³µì— ì¹¼ëˆë§Œ 늘였소.
+"ì´ê²Œ 누구요."
+í•˜ê³ ê·¸ ëŒ€ìž¥ì€ ë‹¬ë ¤ë“¤ì–´ì„œ 나를 껴안았소. ì´ì‹ì˜¤ ë…„ ë§Œì— ë§Œë‚˜ëŠ” 우리는 서로 알아본 것ì´ì˜¤.
+ì´ìœ½ê³ 나는 ê·¸ì˜ ë¶€ì¸ê³¼ ìžë…€ë“¤ë„ 만났소. ê·¸ë“¤ì€ ë‹¤ ì•„ë¼ì‚¬ 사람ì´ì˜¤.
+ì €ë…ì´ ë난 ë’¤ì— ë‚˜ëŠ” Rì˜ ë¶€ì¸ê³¼ ë”¸ì˜ ìŒì•…ê³¼ 그림 구경과 ê¸°íƒ€ì˜ ê´€ëŒ€ë¥¼ ë°›ê³ ë‹¨ë‘˜ì´ ì´ì•¼ê¸°í• 기회를 얻었소. ê²½ìˆ ë…„ 당시 ì´ì•¼ê¸°ë„ ë‚˜ì˜¤ê³ , Aì”¨ì˜ ì´ì•¼ê¸°ë„ ë‚˜ì˜¤ê³ , Rì˜ ì‹ ì„¸ íƒ€ë ¹ë„ ë‚˜ì˜¤ê³ , ë‚´ ì´ì‹ì˜¤ ë…„ ê°„ì˜ ìƒí™œ ì´ì•¼ê¸°ë„ ë‚˜ì˜¤ê³ , 소비ì—트 í˜ëª… ì´ì•¼ê¸°ë„ ë‚˜ì˜¤ê³ , 하얼빈 ì´ì•¼ê¸°ë„ ë‚˜ì˜¤ê³ , 우리네가 ì–´ë ¤ì„œ 서로 ì‚¬ê·€ë˜ íšŒêµ¬ë‹´ë„ ë‚˜ì˜¤ê³ ì´ì•¼ê¸°ê°€ ê·¸ì¹ ë°”ë¥¼ 몰ëžì†Œ. "ì¡°ì„ ì€ ê·¸ë¦½ì§€ 않ì€ê°€."
+하는 ë‚´ ë§ì— ì¾Œí™œí•˜ë˜ R는 ê³ ê°œë¥¼ 숙ì´ê³ 추연한 ë¹›ì„ ë³´ì˜€ì†Œ.
+나는 Rì˜ ì¶”ì—°í•œ 태ë„를 아마 ê³ êµì„ 그리워하는 것으로만 여겼소. 그래서 나는 그리 침ìŒí•˜ëŠ” ê²ƒì„ ë³´ê³ ,
+"얼마나 ê³ êµì´ ê·¸ë¦½ê² ë‚˜. 나는 ê³ êµì„ ë– ë‚œ 지가 ì¼ ì£¼ì¼ë„ 안 ë˜ê±´ë§ˆëŠ” 못 견디게 그리운ë°."
+í•˜ê³ ë™ì •하는 ë§ì„ 하였소.
+í–ˆë”니, ì´ ë§ ë³´ì‹œì˜¤. 그는 침ìŒì„ ê¹¨ëœ¨ë¦¬ê³ ê³ ê°œë¥¼ ë²ˆì© ë“¤ë©°,
+"아니! 나는 ê³ êµì´ ì¡°ê¸ˆë„ ê·¸ë¦½ì§€ 아니하ì´. ë‚´ê°€ 지금 ìƒê°í•œ ê²ƒì€ ìžë„¤ ë§ì„ ë“£ê³ ê³ êµì´ 그리운가 ê·¸ë¦¬ì›Œí• ê²ƒì´ ìžˆëŠ”ê°€ë¥¼ ìƒê°í•´ 본 것ì¼ì„¸. 그랬ë”니 아무리 ìƒê°í•˜ì—¬ë„ 나는 ê³ êµì´ 그립다는 ìƒê°ì„ 가질 수가 없어. 그야 ì–´ë ¤ì„œ ìžë¼ë‚ ë•Œì— ë³´ë˜ ê°•ì‚°ì´ë¼ë“ ì§€ ë‚´ ê¸°ì–µì— ë‚¨ì€ ì•„ëŠ” 사람들ì´ë¼ë“ ì§€, ë³´ê³ ì‹¶ë‹¤ 하는 ìƒê°ë„ 없지 아니하지마는 ê·¸ê²ƒì´ ê³ êµì´ 그리운 것ì´ë¼ê³ í• ìˆ˜ê°€ 있ì„까. ê·¸ ë°–ì—는 나는 아무리 ìƒê°í•˜ì—¬ë„ ê³ êµì´ 그리운 ê²ƒì„ ì°¾ì„ ê¸¸ì´ ì—†ë„¤. ë‚˜ë„ ì§€ê¸ˆ ìžë„¤ë¥¼ ë³´ê³ ë˜ ìžë„¤ ë§ì„ ë“£ê³ ì˜¤ëž˜ ìžŠì–´ë²„ë ¸ë˜ ê³ êµì„ 좀 그립게, 그립다 하게 ìƒê°í•˜ë ¤ê³ í•´ 보았지마는 ë„무지 나는 ê³ êµì´ 그립다는 ìƒê°ì´ 나지 않네."
+ì´ ë§ì— 나는 ê¹œì§ ë†€ëžì†Œ. 몸서리치게 ë¬´ì„œì› ì†Œ. 나는 í•´ì™¸ì— ì˜¤ëž˜ 표랑하는 ì‚¬ëžŒì€ ìœ¼ë ˆ ê³ êµì„ ê·¸ë¦¬ì›Œí• ê²ƒìœ¼ë¡œ ë¯¿ê³ ìžˆì—ˆì†Œ. ê·¸ëŸ°ë° ì´ ì‚¬ëžŒì´, ì¼ì°ì€ ê³ êµì„ 사랑하여 ëª©ìˆ¨ê¹Œì§€ë„ ë°”ì¹˜ë ¤ë˜ ì´ ì‚¬ëžŒì´ ë„무지 ì´ì²˜ëŸ¼ ê³ êµì„ 잊어버린다는 ê²ƒì€ ë†€ë¼ìš´ ì •ë„를 지나서 괘씸하기 그지없었소. ë‚˜ë„ ë¹„ë¡ ì¡°ì„ ì„ ë– ë‚œë‹¤ê³ , ì˜ì›ížˆ ë²„ë¦°ë‹¤ê³ ë‚˜ì„œê¸°ëŠ” 했지마는 나로는 죽기 ì „ì—는 아니 ë¹„ë¡ ì£½ë”ë¼ë„ 잊어버리지 ëª»í• ê³ êµì„ 잊어버린 Rì˜ ì‹¬ì‚¬ê°€ ë‚œì¸¡í•˜ê³ ì›ë§ìŠ¤ëŸ¬ì› ì†Œ.
+"ê³ êµì´ 그립지가 않아?"
+í•˜ê³ Rì—게 묻는 ë‚´ 어성ì—는 격분한 ë¹›ì´ ìžˆì—ˆì†Œ.
+"ì´ìƒí•˜ê²Œ ìƒê°í•˜ì‹œê² ì§€. 하지만 ê³ êµì— 무슨 그리울 ê²ƒì´ ìžˆë‹¨ ë§ì¸ê°€. ê·¸ 빈대 ë“는 오막살ì´ê°€ 그립단 ë§ì¸ê°€. 나무 한 ê°œ 없는 ì‚°ì´ ê·¸ë¦½ë‹¨ ë§ì¸ê°€. ë¬¼ë³´ë‹¤ë„ ëª¨ëž˜ê°€ ë§Žì€ ë‹¤ ëŠ™ì–´ë¹ ì§„ ê°œì²œì´ ê·¸ë¦½ë‹¨ ë§ì¸ê°€. ê·¸ ë¬´ê¸°ë ¥í•˜ê³ ê°€ë‚œí•œ, 시기 ë§Žê³ ì‹¸ìš°ê³ í•˜ëŠ” ê·¸ ë°±ì„±ì„ ê·¸ë¦¬ì›Œí•œë‹¨ ë§ì¸ê°€. ê·¸ë ‡ì§€ 아니하면 무슨 ê·¸ë¦¬ì›Œí• ìŒì•…ì´ ìžˆë‹¨ ë§ì¸ê°€, ë¯¸ìˆ ì´ ìžˆë‹¨ ë§ì¸ê°€, ë¬¸í•™ì´ ìžˆë‹¨ ë§ì¸ê°€, 사ìƒì´ 있단 ë§ì¸ê°€, ì‚¬ëª¨í• ë§Œí•œ ì¸ë¬¼ì´ 있단 ë§ì¸ê°€! ë‚ ë”러 ê³ êµì˜ ë¬´ì—‡ì„ ê·¸ë¦¬ì›Œí•˜ëž€ ë§ì¸ê°€. 나는 ì¡°êµì´ 없는 사람ì¼ì„¸. ë‚´ê°€ 소비ì—트 êµ°ì¸ìœ¼ë¡œ 있으니 소비ì—트가 ë‚´ ì¡°êµì´ê² ì§€. 그러나 진심으로 ë‚´ ì¡°êµì´ë¼ëŠ” ìƒê°ì€ 나지 아니하네."
+í•˜ê³ ì €ë… ë¨¹ì„ ë•Œì— ì•½ê°„ ë¶‰ì—ˆë˜ Rì˜ ì–¼êµ´ì€ ì´ìƒí•œ í¥ë¶„으로 ë”ìš± 붉어지오.ìœ ì •ìœ ì •
+R는 ë¨¹ë˜ ë‹´ë°°ë¥¼ 화나는 ë“¯ì´ ìž¬ë–¨ì´ì— ì§‘ì–´ë˜ì§€ë©°,
+"ë‚´ê°€ í•˜ì–¼ë¹ˆì— ì˜¨ 지가 ì¸ì œ 겨우 삼사 ë…„ë°–ì— ì•ˆ ë˜ì§€ë§ˆëŠ” ì¡°ì„ ì‚¬ëžŒ ë•Œë¬¸ì— ë‚˜ëŠ” 견딜 수가 없어. 와서 달ë¼ëŠ” ê²ƒë„ ë‹¬ë¼ëŠ” 것ì´ì§€ë§ˆëŠ” ì¡°ì„ ì‚¬ëžŒì´ ë˜ ì–´ì°Œí•˜ì˜€ëŠë‹ˆ ë˜ ì–´ì°Œí•˜ì˜€ëŠë‹ˆ 하는 불명예한 ë§ì„ ë“¤ì„ ë•Œì—는 나는 ê¸ˆì‹œì— ì£½ì–´ ë²„ë¦¬ê³ ì‹¶ë‹¨ ë§ì¼ì„¸. 내게 가장 불쾌한 ê²ƒì´ ìžˆë‹¤ê³ í•˜ë©´ ê·¸ê²ƒì€ ê³ êµì´ë¼ëŠ” 기억과 ì¡°ì„ ì‚¬ëžŒì˜ ì¡´ìž´ì„¸. ë‚´ê°€ ë§Œì¼ ì–´ëŠ ë‚˜ë¼ì˜ ë…재ìžê°€ ëœë‹¤ê³ 하면 나는 첫째로 ì¡°ì„ ì¸ ìž…êµ ê¸ˆì§€ë¥¼ ë‹¨í–‰í•˜ë ¤ë„¤. ë§Œì¼ ì¡°ì„ ì´ë¼ëŠ” ê²ƒì„ ìžŠì–´ë²„ë¦´ ì•½ì´ ìžˆë‹¤ê³ í•˜ë©´ 나는 ìƒëª…ê³¼ 바꾸어서ë¼ë„ 사 ë¨¹ê³ ì‹¶ì–´."
+í•˜ê³ R는 약간 í¥ë¶„ëœ ì–´ì¡°ë¥¼ 늦추어서,
+"ë‚˜ë„ ëª¨ìŠ¤í¬ë°”ì— ìžˆë‹¤ê°€ ì²˜ìŒ ì›ë™ì— ë‚˜ì™”ì„ ì ì—는 ê¸¸ì„ ë‹¤ë…€ë„ í˜¹ì‹œ ë™í¬ê°€ ëˆˆì— ëœ¨ì´ì§€ë‚˜ 아니하나 í•˜ê³ ì°¾ì•˜ë„¤. 그래서 ì–´ë””ì„œë“ ì§€ ë™í¬ë¥¼ 만나면 ë°˜ê°€ì´ ì†ì„ 잡았지. 했지만 ì ì ê·¸ë“¤ì€ ì˜¤ì§ ê·€ì°®ì€ ì¡´ìž¬ì— ì§€ë‚˜ì§€ 못하다는 ê²ƒì„ ì•Œì•˜ë‹¨ ë§ì¼ì„¸. ì¸ì œëŠ” ì¡°ì„ ì‚¬ëžŒì´ë¼ê³ ë§Œ 하면 만나기가 무ì„ê³ ë”ì°ë”ì°í•˜ê³ ì§„ì €ë¦¬ê°€ 나는 걸 어떡허나. ìžë„¤ ëª…í•¨ì´ ë“¤ì–´ì˜¨ 때ì—ë„ ì¡°ì„ ì‚¬ëžŒì¸ê°€ í•˜ê³ ê°€ìŠ´ì´ ëœ¨ë”했네."
+í•˜ê³ R는 ì›ƒì§€ë„ ì•„ë‹ˆí•˜ì˜¤. ê·¸ì˜ ì–¼êµ´ì—는, êµ°ì¸ë‹¤ìš´ 기운찬 얼굴ì—는 ì¦ì˜¤ì™€ ë¶„ë…¸ì˜ ë¹›ì´ ë„˜ì³¤ì†Œ.
+"ë‚˜ë„ ìžë„¤ ì§‘ì— í™˜ì˜ë°›ëŠ” 나그네는 ì•„ë‹ì„¸ê·¸ë ¤."
+í•˜ê³ ë‚˜ëŠ” ì´ ê²¬ë””ê¸° ì–´ë ¤ìš´ ë¶ˆì¾Œí•˜ê³ ë¬´ì„œìš´ 공기를 완화하기 위하여 ë†ë‹´ì‚¼ì•„ 한 마디를 ë˜ì§€ê³ 웃었소.
+나는 Rì˜ ë§ì´ ê³¼ê²©í•¨ì— ë†€ëžì§€ë§ˆëŠ”, ë˜ ìƒê°í•˜ë©´ Rê°€ 한 ë§ ê°€ìš´ë°ëŠ” ë“¤ì„ ë§Œí•œ ì´ìœ ë„ ì—†ì§€ 아니하오. ê·¸ê²ƒì„ ìƒê°í• ë•Œì— ë‚˜ëŠ” R를 괘씸하게 ìƒê°í•˜ê¸° ì „ì— ë‚´ê°€ 버린다는 ì¡°ì„ ì„ ìœ„í•˜ì—¬ì„œ ê°€ìŠ´ì´ ì•„íŒ ì†Œ. ê·¸ë ‡ì§€ë§Œ ì´ì œ 나 따위가 ê°€ìŠ´ì„ ì•„íŒŒí•œëŒ€ì•¼ 무슨 ì†Œìš©ì´ ìžˆì†Œ. ì¡°ì„ ì— ë‚¨ì•„ ê³„ì‹ í˜•ì´ë‚˜ Rì˜ ë§ì„ ì°¸ê³ ì‚¼ì•„ 쓰시기 ë°”ë¼ì˜¤. 어쨌으나 나는 Rì—게서 목ì 한 ì—¬í–‰ê¶Œì„ ì–»ì—ˆì†Œ. Rì—게는 다만,
+`나는 피곤한 ëª¸ì„ ì¢€ ì •ì–‘í•˜ê³ ì‹¶ë‹¤. 나는 ë‚´ê°€ í‰ì†Œì— ì¦ê²¨í•˜ëŠ” ë°”ì´ì¹¼ 호반ì—서 눈과 ì–¼ìŒì˜ í•œê²¨ìš¸ì„ ì§€ë‚´ê³ ì‹¶ë‹¤.'
+는 ê²ƒì„ ì—¬í–‰ì˜ ì´ìœ 로 삼았소.
+R는 ë‚˜ì˜ ì´ˆì·Œí•œ ëª¨ì–‘ì„ ì§ìž‘í•˜ê³ ë‚´ 핑계를 그럴듯하게 아는 모양ì´ì—ˆì†Œ. ê·¸ë¦¬ê³ ë‚˜ë”러, `ì´ì™• ì •ì–‘í•˜ë ¤ê±°ë“ ì¹´í”„ì¹´ 지방으로 가거ë¼. 거기는 기후 í’ê²½ë„ ì¢‹ê³ ë˜ ìš”ì–‘ì›ì˜ ì„¤ë¹„ë„ ìžˆë‹¤.'는 ê²ƒì„ ë§í•˜ì˜€ì†Œ. ë‚˜ë„ í†¨ìŠ¤í† ì´ì˜ 소설ì—서, ê¸°íƒ€ì˜ ì—¬í–‰ê¸° 등ì†ì—서 ì´ ì§€ë°©ì— ê´€í•œ ë§ì„ 못 ë“¤ì€ ê²ƒì´ ì•„ë‹ˆë‚˜ 지금 ë‚´ 처지ì—는 그런 ë”°ëœ»í•˜ê³ ê²½ì¹˜ ì¢‹ì€ ì§€ë°©ì„ ê°€ë¦´ ì—¬ìœ ë„ ì—†ê³ ë˜ ê·¸ëŸ¬í•œ ì§€ë°©ë³´ë‹¤ë„ ëˆˆê³¼ ì–¼ìŒê³¼ ë°”ëžŒì˜ ì‹œë² ë¦¬ì•„ì˜ ê²¨ìš¸ì´ í•©ë‹¹í•œ 듯하였소.
+그러나 나는 Rì˜ í˜¸ì˜ë¥¼ êµ³ì´ ì‚¬ì–‘í• í•„ìš”ë„ ì—†ì–´ì„œ 그가 ì¨ ì£¼ëŠ” 대로 ì†Œê°œìž¥ì„ ë‹¤ 받아 넣었소. 그는 나를 처남 매부 ê°„ì´ë¼ê³ 소개해 주었소.
+나는 모스í¬ë°” 가는 ë‹¤ìŒ ê¸‰í–‰ì„ ê¸°ë‹¤ë¦¬ëŠ” ì‚¬í˜ ë™ì•ˆ Rì˜ ì§‘ì˜ ì†ì´ ë˜ì–´ì„œ Rë¶€ì²˜ì˜ ì¹œì ˆí•œ 대우를 받았소.
+ê·¸ 후ì—는 나는 R와 ì¡°ì„ ì— ê´€í•œ í† ë¡ ì„ í•œ ì¼ì€ 없지마는 Rê°€ ì´ë¦„지어 ë§ì„ í• ë•Œì—는 ì¡°ì„ ì„ ìžŠì—ˆë…¸ë¼, ê·¸ë¦¬ì›Œí• ê²ƒì´ ì—†ë…¸ë¼, 하지마는 무ì˜ì‹ì 으로 ë§ì„ í• ë•Œì—는 ì¡°ì„ ì„ ëª» ìžŠê³ ë˜ ì¡°ì„ ì„ ì—¬ëŸ¬ ì 으로 그리워하는 ì–‘ì„ ë³´ì•˜ì†Œ. 나는 ê·¸ê²ƒìœ¼ë¡œì¨ ë§Œì¡±í•˜ê²Œ 여겼소.
+나는 ê¸ˆìš”ì¼ ì˜¤í›„ 세시 모스í¬ë°” 가는 급행으로 í•˜ì–¼ë¹ˆì„ ë– ë‚¬ì†Œ. ì—ë‘ì—는 R와 Rì˜ ê°€ì¡±ì´ ë‚˜ì™€ì„œ 꽃과 ê³¼ì¼ê³¼ 여러 가지 ì„ ë¬¼ë¡œ 나를 ì „ì†¡í•˜ì˜€ì†Œ. R와 Rì˜ ê°€ì¡±ì€ ë‚˜ë¥¼ ì •ë§ í˜•ì œì˜ ì˜ˆë¡œ 대우하여 차가 ë– ë‚˜ë ¤ í• ë•Œì— í¬ì˜¹ê³¼ 키스로 작별하여 주었소.
+ì´ ë‚ ì€ í½ ë”°ëœ»í•˜ê³ ì¼ê¸°ê°€ ì¢‹ì€ ë‚ ì´ì—ˆì†Œ. í•˜ëŠ˜ì— êµ¬ë¦„ 한 ì , ë•…ì— ë°”ëžŒ 한 ì ì—†ì´ ë§ˆì¹˜ ëŠ¦ì€ ë´„ë‚ ê³¼ ê°™ì´ ë”°ëœ»í•œ ë‚ ì´ì—ˆì†Œ.
+차는 ë– ë‚¬ì†Œ. íŒë‹¤ëŠ” ë‘¥ 안 íŒë‹¤ëŠ” ë‘¥ ë§ì½ ë§Žì€ ë™ì¤‘로(ì§€ê¸ˆì€ ë¶ë§Œ ì² ë¡œë¼ê³ 하오.)ì˜ êµì œ ì—´ì°¨ì— ëª¸ì„ ì˜íƒí•œ 것ì´ì˜¤.
+송화강(æ¾èŠ±æ±Ÿ:쑹화 ê°•)ì˜ ì² êµë¥¼ 건너오. ì•„ì•„ ê·¸ë¦¬ë„ ë‚¯ìµì€ 송화강! ì†¡í™”ê°•ì´ ì™œ ë‚¯ì´ ìµì†Œ. ì´ ì†¡í™”ê°•ì€ ë¶ˆí•¨ì‚°(장백산)ì— ê·¼ì›ì„ 발하여 광막한 ë¶ë§Œì£¼ì˜ ì‚¬ëžŒë„ ì—†ëŠ” 벌íŒì„ í˜¼ìž ì†Œë¦¬ë„ ì—†ì´ í˜ëŸ¬ê°€ëŠ” ê²ƒì´ ë‚´ ì‹ ì„¸ì™€ 같소. ì´ ë¶ë§Œì£¼ì˜ 벌íŒì„ ë§Œë“ ìžê°€ 송화강ì´ì§€ë§ˆëŠ” 나는 그만한 íž˜ì´ ì—†ëŠ” ê²ƒì´ ë¶€ë„러울 ë¿ì´ì˜¤. ì´ ê´‘ë§‰í•œ ë¶ë§Œì˜ 벌íŒì„ ë‚´ ì†ìœ¼ë¡œ 개척하여서 ì¡°ì„ ì‚¬ëžŒì˜ ë‚™ì›ì„ ë§Œë“¤ìž í•˜ê³ ë½ë‚´ì–´ 볼까. ê·¸ê²ƒì€ í˜•ì´ í•˜ì‹œì˜¤. ë‚´ ì–´ë¦°ê²ƒì´ ìžë¼ê±°ë“ 그놈ì—게나 그러한 ìƒê°ì„ 넣어 주시오.
+ë™ì–‘ì˜ êµì œì ê´´ë¬¼ì¸ í•˜ì–¼ë¹ˆ ì‹œê°€ë„ ê¹Œë§£ê²Œ 안개ì—서 ìŠ¤ëŸ¬ì ¸ ë²„ë¦¬ê³ ë§ì•˜ì†Œ. 그러나 ê·¸ 시가를 싼 까만 ê¸°ìš´ì´ êµì œì í’ìš´ì„ í¬ìž¥í•œ 것ì´ë¼ê³ í• ê¹Œìš”.
+ê°€ë„ê°€ë„ ë²ŒíŒ. ì„œë¦¬ë§žì€ ë§ˆë¥¸ 풀바다. 실개천 í•˜ë‚˜ë„ ì—†ëŠ” 메마른 사막. 어디를 ë³´ì•„ë„ ì‚° 하나 없으니 하늘과 ë•…ì´ ì°© 달ë¼ë¶™ì€ 듯한 천지. 구름 한 ì ì—†ê±´ë§Œë„ ê·¸ í° íƒœì–‘ ê°€ì§€ê³ ë„ ë¯¸ì²˜ 다 비추지 못하여 ì§€í‰ì„ 호를 그린 ì§€í‰ì„ 위ì—는 í•ìƒ í™©í˜¼ì´ ë– ë„는 듯한 세계. ì´ ì†ìœ¼ë¡œ ë‚´ê°€ ëª¸ì„ ë‹´ì€ ì—´ì°¨ëŠ” 서쪽으로 서쪽으로 í•´ê°€ 가는 걸ìŒì„ ë”°ë¼ì„œ ë‹¬ë¦¬ê³ ìžˆì†Œ. 열차가 달리는 바퀴 ì†Œë¦¬ë„ ë°˜í–¥í• ê³³ì´ ì—†ì–´ 힘없는 í•œìˆ¨ê°™ì´ ìŠ¤ëŸ¬ì§€ê³ ë§ˆì˜¤.
+ê¸°ì¨ ê°€ì§„ ì‚¬ëžŒì´ ì§€ë£¨í•´ì„œ 못 견딜 ì´ í’ê²½ì€ ë‚˜ê°™ì´ ìˆ˜ì‹¬ 가진 사람ì—게는 가장 ê³µìƒì˜ ë§ì„ ë‹¬ë¦¬ê¸°ì— í•©ë‹¹í•œ ê³³ì´ì˜¤.
+ì´ ê³³ì—ë„ ì‚°ë„ ìžˆê³ ëƒ‡ë¬¼ë„ ìžˆê³ ì‚¼ë¦¼ë„ ìžˆê³ ê½ƒë„ í”¼ê³ ë‚ ì§ìй, 길ì§ìŠ¹ì´ ë‚ ê³ ê¸°ë˜ ë•Œë„ ìžˆì—ˆê² ì§€ìš”. ê·¸ëŸ¬ë˜ ê²ƒì´ ëª‡ë§Œ ë…„ 지나는 ë™ì•ˆì— ì‚°ì€ ë‚®ì•„ì§€ê³ ê³¨ì€ ë†’ì•„ì ¸ì„œ 마침내 ì´ ê¼´ì´ ëœ ê²ƒì¸ê°€ 하오. ë§Œì¼ í° íž˜ì´ ìžˆì–´ ì´ ê´‘ì•¼ë¥¼ 파낸다 하면 물 íë¥´ê³ ê³ ê¸° ë†€ë˜ ê°•ê³¼, ìš¸ê³ ì›ƒë˜ ìƒë¬¼ì´ ì‚´ë˜ ìžì·¨ê°€ ìžˆì„ ê²ƒì´ì˜¤. ì•„ì•„ ì´ ëª¨ë“ ê¸°ì–µì„ ê½‰ í’ˆê³ ì£½ì€ ë“¯ì´ ìž ìž í•œ 광야ì—!
+ë‚´ê°€ 탄 차가 Fì—ì— ë„ì°©í•˜ì˜€ì„ ë•Œì—는 ë¶ë§Œì£¼ ê´‘ì•¼ì˜ ì„ì–‘ì˜ ì•„ë¦„ë‹¤ì›€ì€ ê·¸ ê·¹ë„ì— ë‹¬í•œ 것 같았소. 둥긋한 ì§€í‰ì„ ìœ„ì— ê±°ì˜ ê±¸ë¦° 커다란 í•´! 아마 ê·¸ ì‹ ë¹„í•˜ê³ ìž¥ì—„í•¨ì´ ë‚´ 경험으로는 ì´ ê³³ì—서밖ì—는 ë³¼ 수 없는 것ì´ë¼ê³ ìƒê°í•˜ì˜¤. ì´ê¸€ì´ê¸€ ì´ê¸€ì´ê¸€ ê·¸ëŸ¬ë©´ì„œë„ ë‘¥ê¸€ë‹¤ëŠ” 체모를 변치 아니하는 ê·¸ 지는 í•´!
+게다가 먼 ì§€í‰ì„ 으로부터 기어드는 í™©í˜¼ì€ ì¸ì œëŠ” 대지를 ê±°ì˜ ë‹¤ ë®ì–´ ë²„ë ¤ì„œ 마른 풀로 ëœ ì§€ë©´ì€ ê°€ë‡ê°€ë‡í•œ ë¹›ì„ ë ê³ ì‚¬ë§‰ì˜ ê°€ëŠ” 모래를 ë¨¸ê¸ˆì€ ì§€ëŠ” í•´ì˜ ê´‘ì„ ì„ ë°˜ì‚¬í•˜ì—¬ì„œ 대기는 ì§™ì€ ìžì¤ë¹›ì„ 바탕으로 한 가지ê°ìƒ‰ì˜ ëª…ì•”ì„ ê°€ì§„, ì˜¤ìƒ‰ì´ ì˜ë¡±í•œ, ë„무지 ë‚´ê°€ ì¼ì° 경험해 ë³´ì§€ 못한 ìƒ‰ì±„ì˜ ì„¸ê³„ë¥¼ ì´ë£¨ì—ˆì†Œ. ì•„ 좋다!
+ê·¸ ì†ì— 수ì€ê°™ì´ 빛나는, 수없는 ìž‘ê³ í° í˜¸ìˆ˜ë“¤ì˜ ë¹›! ê·¸ ì†ìœ¼ë¡œ ë‚ ì•„ì˜¤ëŠ” ìˆ˜ì—†ê³ ì´ë¦„ 모를 ìƒˆë“¤ì˜ ë–¼ë„ ì´ ì„¸ìƒì˜ 것ì´ë¼ê³ 는 ìƒê°í•˜ì§€ 아니하오.
+나는 ê±°ì˜ ë¬´ì˜ì‹ì 으로 ì°¨ì—서 ë›°ì–´ë‚´ë ¸ì†Œ. ê±°ì˜ ë– ë‚ ì‹œê°„ì´ ë‹¤ ë˜ì–´ì„œ ì§ì˜ ì¼ë¶€ë¶„ì€ ë¯¸ì²˜ ê°€ì§€ì§€ë„ ëª»í•˜ê³ ë›°ì–´ë‚´ë ¸ì†Œ. 반쯤 미친 것ì´ì˜¤.
+ì •ê±°ìž¥ 앞 조그마한 ì•„ë¼ì‚¬ ì‚¬ëžŒì˜ ì—¬ê´€ì—다가 ì§ì„ 맡겨 ë²„ë¦¬ê³ ë‚˜ëŠ” ë‹¨ìž¥ì„ ëŒê³ ì² ë„ ì„ ë¡œë¥¼ ë›°ì–´ 건너서 í˜¸ìˆ˜ì˜ ìˆ˜ì€ë¹› 나는 ê³³ì„ ì°¾ì•„ì„œ 지향 ì—†ì´ ê±¸ì—ˆì†Œ.
+한 호수를 가서 ë³´ë©´ ë˜ ì € 편 호수가 ë” ì•„ë¦„ë‹¤ì›Œ ë³´ì´ì˜¤. ì›ì»¨ëŒ€ ì € 지는 í•´ê°€ 다 지기 ì „ì— ì´ ê´‘ì•¼ì— ìžˆëŠ” 호수를 다 ëŒì•„ë³´ê³ ì‹¶ì†Œ.
+ë‚´ê°€ 호숫 ê°€ì— ì„°ì„ ë•Œì— ê·¸ ê±°ìš¸ê°™ì´ ìž”ìž”í•œ í˜¸ìˆ˜ë©´ì— ë¹„ì¹˜ëŠ” ë‚´ 그림ìžì˜ 외로움ì´ì—¬, 그러나 아름다움ì´ì—¬! ê·¸ 호수는 ì˜ì›í•œ ìš°ì£¼ì˜ ì‹ ë¹„ë¥¼ í’ˆê³ í•˜ëŠ˜ì´ ì˜¤ë©´ 하늘ì„, 새가 오면 새를, êµ¬ë¦„ì´ ì˜¤ë©´ 구름ì„, ê·¸ë¦¬ê³ ë‚´ê°€ 오면 나를 비추지 아니하오. 나는 호수가 ë˜ê³ 싶소. 그러나 형! 나는 ì´ í˜¸ìˆ˜ë©´ì—서 얼마나 ì •ìž„ì˜ ì–¼êµ´ì„ ì°¾ì•˜ê² ì†Œ. ê·¸ê²ƒì€ ë¬¼ë¦¬í•™ì 으로 불가능한 ì¼ì´ê² 지요. ë™ê²½ì˜ ë³‘ì‹¤ì— ëˆ„ì›Œ 있는 ì •ìž„ì˜ ëª¨ì–‘ì´ ëª½ê³ ì‚¬ë§‰ì˜ í˜¸ìˆ˜ë©´ì— ë¹„ì¹ ë¦¬ì•¼ ìžˆê² ì†Œ. ì—†ê² ì§€ë§ˆëŠ” 나는 호수마다 ì •ìž„ì˜ ê·¸ë¦¼ìžë¥¼ 찾았소. 그러나 ë³´ì´ëŠ” ê²ƒì€ ì™¸ë¡œìš´ ë‚´ 그림ìžë¿ì´ì˜¤.
+`ê°€ìž. ë없는 사막으로 í•œì—†ì´ ê°€ìž. 가다가 ë‚´ ê¸°ìš´ì´ ì§„í•˜ëŠ” ìžë¦¬ì— 나는 ë‚´ ì†ìœ¼ë¡œ 모래를 íŒŒê³ ê·¸ ì†ì— ë‚´ ëª¸ì„ ë¬»ê³ ì£½ì–´ 버리ìž. 살아서 다시 ë³¼ 수 없는 ì •ìž„ì˜ ã€Œì´ë°ì•„ã€ë¥¼ ì•ˆê³ ì´ ê¹¨ë—한 광야ì—서 죽어 버리 ìž.'
+í•˜ê³ ë‚˜ëŠ” 지는 해를 í–¥í•˜ê³ í•œì • ì—†ì´ ê±¸ì—ˆì†Œ. ì‚¬ë§‰ì´ ë°›ì•˜ë˜ ë”°ëœ»í•œ ê¸°ìš´ì€ ì•„ì§ë„ 다 ì‹ì§€ëŠ” 아니하였소. 사막ì—는 바람 한 ì ë„ ì—†ì†Œ. 소리 í•˜ë‚˜ë„ ì—†ì†Œ. ë°œìžêµ ë°‘ì—서 우는 마른 풀과 ëª¨ëž˜ì˜ ë°”ìŠ¤ë½ê±°ë¦¬ëŠ” 소리가 들릴 ë¿ì´ì˜¤.
+나는 허리를 ì§€í‰ì„ ì— ê±¸ì—ˆì†Œ. ê·¸ ì‹ ë¹„í•œ ê´‘ì„ ì€ ë‚´ 가슴으로부터 위ì—ë§Œì„ ë¹„ì¶”ê³ ìžˆì†Œ.
+ë¬¸ë“ ë‚˜ëŠ” 해를 ë”°ë¼ê°€ëŠ” 별 ë‘ ê°œë¥¼ 보았소. 하나는 ì•žì„ ì„œê³ í•˜ë‚˜ëŠ” 뒤를 섰소. ì•žì˜ ë³„ì€ ì¢€ í¬ê³ ë’¤ì˜ ë³„ì€ ì¢€ 작소. ì´ëŸ° ë³„ë“¤ì€ ì‚° ë§Žì€ ë‚˜ë¼ ë‹¤ì‹œ ë§í•˜ë©´ 서쪽 ì§€í‰ì„ ì„ ë³´ê¸° ì–´ë ¤ìš´ 나ë¼ì—서만 ìƒìž¥í•œ 나로서는 ë³´ì§€ ëª»í•˜ë˜ ë³„ì´ì˜¤. 나는 ê·¸ ë³„ì˜ ì´ë¦„ì„ ëª¨ë¥´ì˜¤. `ë‘ ë³„'ì´ì˜¤.
+í•´ê°€ ì§€í‰ì„ ì—서 ëš ë–¨ì–´ì§€ìž ëŒ€ê¸°ì˜ ìžì¤ë¹›ì€ 남빛으로 변하였소. ì˜¤ì§ í•´ê°€ 금시 들어간 ìžë¦¬ì—ë§Œ 주í™ë¹›ì˜ ì—¬ê´‘ì´ ìžˆì„ ë¿ì´ì˜¤. ë‚´ 눈앞ì—서는 남빛 안개가 피어오르는 듯하였소. ì•žì— ë³´ì´ëŠ” í˜¸ìˆ˜ë§Œì´ ìœ ë‚œížˆ 빛나오. ë˜ í•œ ë–¼ì˜ ì´ë¦„ 모를 ìƒˆë“¤ì´ ìˆ˜ë©´ì„ ìŠ¤ì¹˜ë©° ë‚ ì €ë¬¸ ê²ƒì„ ë†€ë¼ëŠ” ë“¯ì´ ì–´ì§€ëŸ¬ì´ ë‚ ì•„ 지나가오. ê·¸ë“¤ì€ ì†Œë¦¬ë„ ì•„ë‹ˆ 하오. ë‚ ê°œì¹˜ëŠ” ì†Œë¦¬ë„ ì•„ë‹ˆ 들리오. ê·¸ê²ƒë“¤ì€ ì‚¬ë§‰ì˜ í™©í˜¼ì˜ í—ˆê¹¨ë¹„ì¸ ê²ƒ 같소.
+나는 ìžê¾¸ 걷소. 해를 ë”°ë¥´ë˜ ë‚˜ëŠ” ë‘ ë³„ì„ ë”°ë¼ì„œ ìžê¾¸ 걷소.
+ë³„ë“¤ì€ ì§„ 해를 ë”°ë¼ì„œ ë°”ì‚ ê±·ëŠ” ê²ƒë„ ê°™ê³ , 헤매는 나를 ì–´ë–¤ 나ë¼ë¡œ ë„는 ê²ƒë„ ê°™ì†Œ.
+아니 ë‘ ë³„ ì¤‘ì— ì•žì„ ë³„ì´ í•œ 번 ë°˜ì§í•˜ê³ 는 최후로 한 번 ë°˜ì§í•˜ê³ 는 ì§€í‰ì„ ë°‘ì— ìˆ¨ì–´ ë²„ë¦¬ê³ ë§ˆì˜¤. ë’¤ì— ë‚¨ì€ ì™¸ë³„ì˜ ì™¸ë¡œì›€ì´ì—¬! 나는 ìš¸ê³ ì‹¶ì—ˆì†Œ. 그러나 나는 하나만 ë‚¨ì€ ìž‘ì€ ë³„ 외로운 ìž‘ì€ ë³„ì„ ë”°ë¼ì„œ ë” ë¹¨ë¦¬ 걸ìŒì„ 걸었소. ê·¸ 한 ë³„ë§ˆì € 넘어가 버리면 나는 어찌하오.
+ë‚´ê°€ 웬ì¼ì´ì˜¤. 나는 시ì¸ë„ 아니요, ì˜ˆìˆ ê°€ë„ ì•„ë‹ˆì˜¤. 나는 ì •ìœ¼ë¡œ í–‰ë™í•œ ì¼ì€ ì—†ë‹¤ê³ ë¯¿ëŠ” 사람ì´ì˜¤. 그러나 형! ì´ ë•Œì— ë¯¸ì¹œ ê²ƒì´ ì•„ë‹ˆìš”, ë‚´ 가슴ì—는 무엇ì¸ì§€ 모를 ê²ƒì„ ë”°ë¥¼ 요샛ë§ë¡œ ì´ë¥¸ë°” ë™ê²½ìœ¼ë¡œ 찼소.
+`ì•„ì•„ ì € ìž‘ì€ ë³„!'
+ê·¸ê²ƒë„ ì§€í‰ì„ ì— ë‹¿ì•˜ì†Œ.
+`ì•„ì•„ ì € ìž‘ì€ ë³„. ì €ê²ƒë§ˆì € 넘어가면 나는 어찌하나.'
+ì¸ì œëŠ” 어둡소. ê´‘ì•¼ì˜ í™©í˜¼ì€ ëª…ìƒ‰ë¿ì´ìš”, 순ì‹ê°„ì´ìš”, í•´ì§€ìž ì‹ ë¹„í•˜ë‹¤ê³ í• ë§Œí•œ 극히 ì§§ì€ ë™ì•ˆì— 아름다운 í™©í˜¼ì„ ì¡°ê¸ˆ ë³´ì´ê³ 는 ê³§ ì¹ ê³¼ ê°™ì€ ì•”í‘ì´ì˜¤. í˜¸ìˆ˜ì˜ ë¬¼ë§Œì´ ì–´ë””ì„œ ì€ë¹›ì„ 받았는지 뿌옇게 ë‚˜ë§Œì´ ìœ ì¼í•œ 존재다, ë‚˜ë§Œì´ ìœ ì¼í•œ ë¹›ì´ë‹¤ 하는 ë“¯ì´ ì¸ì œëŠ” 수ì€ë¹›ì´ ì•„ë‹ˆë¼ ë‚¨ë¹›ì„ ë°œí•˜ê³ ìžˆì„ ë¿ì´ì˜¤.
+나는 ê·¸ 중 ë¹›ì„ ë§Žì´ ë°›ì€, ê·¸ 중 환해 ë³´ì´ëŠ” í˜¸ìˆ˜ë©´ì„ ì°¾ì•„ ë‘리번거리며, 그러나 ë¹ ë¥¸ 걸ìŒìœ¼ë¡œ 헤매었소. 그러나 ë‚´ê°€ ì¢€ë” ë§‘ì€ í˜¸ìˆ˜ë©´ì„ ì°¾ëŠ” ë™ì•ˆì— ì´ ê´‘ì•¼ì˜ ì–´ë‘ ì€ ë”ìš±ë”ìš± 짙어지오.
+나는 ì–´ë–¤ 조그마한 호숫 ê°€ì— íŽ„ì© ì•‰ì•˜ì†Œ. ë‚´ 앞ì—는 ì§™ì€ ë‚¨ë¹›ì˜ ìˆ˜ë©´ì— ì¡°ê·¸ë§ˆí•œ 거울만한 ë°ì€ ë°ê°€ 있소. 마치 ë‚´ 눈ì—서 무슨 ë¹›ì´ ë‚˜ì™€ì„œ, 아마 ì •ìž„ì„ ê·¸ë¦¬ì›Œí•˜ëŠ” ë¹›ì´ ë‚˜ì™€ì„œ ê·¸ ìˆ˜ë©´ì— ë°˜ì‚¬í•˜ëŠ” 듯ì´. 나는 í—ˆê²ì§€ê² ê·¸ 빤한 ìˆ˜ë©´ì„ ë“¤ì—¬ë‹¤ë³´ì•˜ì†Œ. 혹시나 ì •ìž„ì˜ ëª¨ì–‘ì´ ê±°ê¸° 나타나지나 ì•„ë‹ˆí• ê¹Œ í•˜ê³ . 세ìƒì—는 그러한 기ì ë„ ìžˆì§€ 아니한가 í•˜ê³ .
+물ì—는 ì •ìž„ì˜ ì–¼êµ´ì´ ì–´ë¥¸ê±°ë¦¬ëŠ” 것 같았소. ì´ë”°ê¸ˆ ì •ìž„ì˜ ëˆˆë„ ì–´ë¥¸ê±°ë¦¬ê³ ì½”ë„ ë²ˆëœ»ê±°ë¦¬ê³ ìž…ë„ ë²ˆëœ»ê±°ë¦¬ëŠ” 것 같소. 그러나 ìˆ˜ë©´ì€ ì ì ì–´ë‘워 가서 ê·¸ 환ì˜ì¡°ì°¨ ë”ìš± í¬ë¯¸í•´ì§€ì˜¤.
+나는 í˜¸ìˆ˜ë©´ì— ë¹¤í•˜ë˜ í•œ ì¡°ê°ì¡°ì°¨ 캄캄해지는 ê²ƒì„ ë³´ê³ ìˆ¨ì´ ë§‰íž ë“¯í•¨ì„ ê¹¨ë‹¬ìœ¼ë©´ì„œ ê³ ê°œë¥¼ 들었소.
+ê³ ê°œë¥¼ ë“¤ë ¤ê³ í• ë•Œì—, 형ì´ì—¬, ì´ìƒí•œ ì¼ë„ 다 있소. ê·¸ ìˆ˜ë©´ì— ì •ìž„ì˜ ëª¨ì–‘ì´, 얼굴만 아니ë¼, ê·¸ 몸 ì˜¨í†µì´ ê·¸ 어깨, 가슴, 팔, 다리까지ë„, ê·¸ 눈과 입까지ë„, ê·¸ ì–¼êµ´ì˜ í° ê²ƒê³¼ ìž…ìˆ ì´ ë¶ˆê·¸ë ˆí•œ 것까지ë„, 마치 환한 ëŒ€ë‚®ì— ì‹¤ë¬¼ì„ ëŒ€í•œ 모양으로 소ìƒí•˜ê²Œ 나타났소.
+"ì •ìž„ì´!"
+í•˜ê³ ë‚˜ëŠ” 소리를 지르며 물로 ë›°ì–´ë“¤ë ¤ 하였소. 그러나 형, ê·¸ ìˆœê°„ì— ì •ìž„ì˜ ëª¨ì–‘ì€ ì‚¬ë¼ì ¸ ë²„ë¦¬ê³ ë§ì•˜ì†Œ.
+나는 ì´ ì–´ë‘ ì†ì— ì–´ë”” ì •ìž„ì´ê°€ 나를 ë”°ë¼ì˜¨ ê²ƒê°™ì´ ìƒê°í–ˆì†Œ. 혹시나 ì •ìž„ì´ê°€ 죽어서 ê·¸ ëª¸ì€ ë™ê²½ì˜ 대학 병ì›ì— ë²—ì–´ ë‚´ì–´ë˜ì§€ê³ í˜¼ì´ ë¹ ì ¸ 나와서 ë¬¼ì— ë¹„ì¹˜ì—ˆë˜ ê²ƒì´ ì•„ë‹ê¹Œ, 나는 ê°€ìŠ´ì´ ìš¸ë ê±°ë¦¼ì„ ì§„ì •ì¹˜ 못하면서 호숫 ê°€ì—서 벌떡 ì¼ì–´ë‚˜ì„œ ì–´ë‘ ì†ì— ì •ìž„ì„ ë§Œì ¸ë³´ë ¤ëŠ” 듯ì´, ì–´ë‘워서 ëˆˆì— ë³´ì§€ëŠ” 못하ë”ë¼ë„ ìžê¾¸ 헤매노ë¼ë©´ ëª¸ì— ë¶€ë”ªížˆê¸°ë¼ë„ í• ê²ƒ 같아서 함부로 헤매었소. ê·¸ë¦¬ê³ ëŠ” ëˆˆì•žì— ë²ˆëœ»ê±°ë¦¬ëŠ” ì •ìž„ì˜ í™˜ì˜ì„ íŒ”ì„ ë²Œë ¤ì„œ ì•ˆê³ ì†Œë¦¬ë¥¼ 내어서 ë¶ˆë €ì†Œ.
+"ì •ìž„ì´, ì •ìž„ì´."
+í•˜ê³ ë‚˜ëŠ” ìˆ˜ì—†ì´ ì •ìž„ì„ ë¶€ë¥´ë©´ì„œ 헤매었소.
+그러나 형, ì´ê²ƒë„ 죄지요. ì´ê²ƒë„ 하나님께서 금하시는 ì¼ì´ì§€ìš”. 그러길래 ê´‘ì•¼ì— ì•„ì£¼ ì–´ë‘ ì´ ë®ì´ê³ 새까만 í•˜ëŠ˜ì— ë³„ì´ ì´ì´í•˜ê²Œ ë‚˜ê³ ëŠ” ì˜ ì •ìž„ì˜ í—›ê·¸ë¦¼ìžì¡°ì°¨ 아니 ë³´ì´ì§€ìš”. 나는 죄를 피해서 ì •ìž„ì„ ë– ë‚˜ì„œ 멀리 온 것ì´ë‹ˆ ì •ìž„ì˜ í—›ê·¸ë¦¼ìžë¥¼ ë”°ë¼ë‹¤ë‹ˆëŠ” ê²ƒë„ ì˜³ì§€ 않지요.
+ê·¸ë ‡ì§€ë§Œ ë‚´ê°€ ì´ë ‡ê²Œ 혼ìžì„œ ì •ìž„ì„ ìƒê°ë§Œ 하는 것ì´ì•¼ 무슨 죄 ë ê²ƒì´ ìžˆì„까요. ë‚´ê°€ ì •ìž„ì„ ë§Œ 리나 ë– ë‚˜ì„œ ì´ë ‡ê²Œ 헛그림ìžë‚˜ 그리며 그리워하는 것ì´ì•¼ 무슨 죄가 ë 까요. 설사 죄가 ë˜ê¸°ë¡œì„œë‹ˆ 낸들 ì´ê²ƒê¹Œì§€ì•¼ 어찌하오. ë‚´ê°€ ë‚´ í˜¼ì„ ì£½ì—¬ 버리기 ì „ì—야 ë‚´ 힘으로 어찌하오. 설사 죄가 ë˜ì–´ì„œ ë‚´ê°€ ì§€ì˜¥ì˜ êº¼ì§€ì§€ 않는 ìœ í™©ë¶ˆ ì†ì—서 ì˜ì›í•œ í˜•ë²Œì„ ë°›ê²Œ ë˜ê¸°ë¡œì„œë‹ˆ ê·¸ê²ƒì„ ì–´ì°Œí•˜ì˜¤. 형, ì´ê²ƒ, ì´ê²ƒë„ ë§ì•„야 옳ì€ê°€ìš”. ì •ìž„ì˜ í—›ê·¸ë¦¼ìžê¹Œì§€ë„ ëŠì–´ ë²„ë ¤ì•¼ 옳ì€ê°€ìš”.
+ì´ ë•Œìš”. 바로 ì´ ë•Œìš”. ë‚´ 앞 ìˆ˜ì‹ ë³´ë‚˜ ë 까(캄캄한 ë°¤ì´ë¼ 먼지 가까운지 분명히 알 수 없지마는) 하는 ê³³ì— ë‚œë°ì—†ëŠ” 등불 하나가 나서오. 나는 ê¹œì§ ë†€ë¼ì„œ ìš°ëš ì„°ì†Œ. ì´ ë¬´ì¸ì§€ê²½, ì´ ë°¤ì¤‘ì— ê°‘ìžê¸° ë³´ì´ëŠ” 등불 ê·¸ê²ƒì€ ë§ˆì¹˜ ì´ ì„¸ìƒ ê°™ì§€ 아니하였소.
+ì € ë“±ë¶ˆì´ ì–´ë–¤ 등불ì¼ê¹Œ, ê·¸ ë“±ë¶ˆì´ ëª‡ ê±¸ìŒ ê°€ê¹Œì´ ì˜¤ë‹ˆ, ê·¸ 등불 ë’¤ì— ì‚¬ëžŒì˜ ë‹¤ë¦¬ê°€ ë³´ì´ì˜¤.
+"누구요?"
+하는 ê²ƒì€ ê·€ì— ìµì€ ì¡°ì„ ë§ì´ì˜¤. 어떻게 ì´ ëª½ê³ ì˜ ê´‘ì•¼ì—서 ì¡°ì„ ë§ì„ 들ì„까 í•˜ê³ ë‚˜ëŠ” ë“±ë¶ˆì„ ì²˜ìŒ ë³¼ 때보다 ë”ìš± 놀ëžì†Œ.
+"나는 ì§€ë‚˜ê°€ë˜ ì‚¬ëžŒì´ì˜¤."
+í•˜ê³ ë‚˜ë„ ë“±ë¶ˆì„ í–¥í•˜ì—¬ 마주 걸어갔소.
+ê·¸ ì‚¬ëžŒì€ ë“±ë¶ˆì„ ë“¤ì–´ì„œ ë‚´ ì–¼êµ´ì„ ë¹„ì¶”ì–´ ë³´ë”니,
+"ë‹¹ì‹ ì¡°ì„ ì‚¬ëžŒì´ì˜¤?"
+í•˜ê³ ë¬»ì†Œ.
+"네, 나는 ì¡°ì„ ì‚¬ëžŒì´ì˜¤. ë‹¹ì‹ ë„ ìŒì„±ì„ 들으니 ì¡°ì„ ì‚¬ëžŒì¸ë°, 어떻게 ì´ëŸ° 광야ì—, 아닌 밤중ì—, 여기 계시단 ë§ì´ì˜¤."
+í•˜ê³ ë‚˜ëŠ” 놀ë¼ëŠ” í‘œì • 그대로 대답하였소.
+"나는 ì´ ê·¼ë°©ì— ì‚¬ëŠ” 사람ì´ë‹ˆê¹Œ 여기 오는 ê²ƒë„ ìžˆì„ ì¼ì´ì§€ë§ˆëŠ” ë‹¹ì‹ ì´ì•¼ë§ë¡œ ì´ ì•„ë‹Œ 밤중ì—."
+í•˜ê³ ìœ¡í˜ˆí¬ë¥¼ ì§‘ì–´ë„£ê³ , ì†ì„ 내밀어서 내게 악수를 구하오.
+나는 반갑게 ê·¸ì˜ ì†ì„ 잡았소. 그러나 나는 `ì£½ì„ ì§€ê²½ì— ì–´ë–»ê²Œ 오셨단 ë§ì´ì˜¤.' í•˜ê³ , 그가 ë‚´ê°€ 무슨 ì•…ì˜ë¥¼ 가진 í‰í•œì´ 아닌 ì¤„ì„ ì•Œê³ ì†ì— ë¹¼ì–´ë“¤ì—ˆë˜ ìœ¡í˜ˆí¬ë¡œ 시기를 ìž ê¹ì´ë¼ë„ 노린 ê²ƒì„ ë¶ˆì¾Œí•˜ê²Œ ìƒê°í•˜ì˜€ë˜ 것ì´ì˜¤.
+ê·¸ë„ ë‚´ ì´ë¦„ë„ ë¬»ì§€ ì•„ë‹ˆí•˜ê³ ë˜ ë‚˜ë„ ê·¸ì˜ ì´ë¦„ì„ ë¬»ì§€ ì•„ë‹ˆí•˜ê³ ë‚˜ëŠ” ê·¸ì—게 ëŒë ¤ì„œ 그가 ì¸ë„하는 곳으로 갔소. ê·¸ ê³³ì´ëž€ ê²ƒì€ ì•„ê¹Œ ë“±ë¶ˆì´ ì²˜ìŒ ë‚˜íƒ€ë‚˜ë˜ ê³³ì¸ ë“¯í•œë°, 거기서 ë˜ í•œ 번 놀란 ê²ƒì€ ì–´ë–¤ ë¶€ì¸ì´ 있는 것ì´ì˜¤. 남ìžëŠ” ì•„ë¼ì‚¬ì‹ ì–‘ë³µì„ ìž…ì—ˆìœ¼ë‚˜ ë¶€ì¸ì€ ì¤‘êµ ì˜· 비슷한 ì˜·ì„ ìž…ì—ˆì†Œ. 남ìžëŠ” 나를 ëŒì–´ì„œ ê·¸ ë¶€ì¸ì—게 ì¸ì‚¬í•˜ê²Œ í•˜ê³ ,
+"ì´ëŠ” ë‚´ ì•„ë‚´ìš”."
+í•˜ê³ ë˜ ê·¸ ì•„ë‚´ë¼ëŠ” ë¶€ì¸ì—게는,
+"ì´ ì´ëŠ” ì¡°ì„ ì–‘ë°˜ì´ì˜¤. ì„±í•¨ì´ ë‰˜ì‹œì£ ?"
+í•˜ê³ ê·¸ëŠ” 나를 ë°”ë¼ë³´ì˜¤. 나는,
+"최ì„입니다."
+í•˜ê³ ë°”ë¡œ 대답하였소.
+"ìµœì„ ì”¨?"
+í•˜ê³ ê·¸ 남ìžëŠ” ì†Œê°œí•˜ë˜ ê²ƒë„ ìžŠì–´ë²„ë¦¬ê³ ë‚´ ì–¼êµ´ì„ ë“¤ì—¬ë‹¤ë³´ì˜¤.
+"네, 최ì„입니다."
+"ì•„ â—â—í•™êµ êµìž¥ìœ¼ë¡œ ê³„ì‹ ìµœì„ ì”¨."
+í•˜ê³ ê·¸ 남ìžëŠ” ë”ìš± 놀ë¼ì˜¤.
+"네, 어떻게 ë‚´ ì´ë¦„ì„ ì•„ì„¸ìš”?"
+í•˜ê³ ë‚˜ë„ ê·¸ê°€ 혹시 아는 사람ì´ë‚˜ 아닌가 í•˜ê³ ë“±ë¶ˆ ë¹›ì— ì–¼êµ´ì„ ë“¤ì—¬ë‹¤ 보았으나 ë„무지 ê·¸ ì–¼êµ´ì´ ë³¸ ê¸°ì–µì´ ì—†ì†Œ.
+"최 ì„ ìƒì„ ë‚´ê°€ 압니다. 남 ì„ ìƒí•œí…Œ ë§ì”€ì„ ë§Žì´ ë“¤ì—ˆì§€ìš”. ê·¸ëŸ°ë° ë‚¨ ì„ ìƒë„ ëŒì•„ê°€ì‹ ì§€ê°€ ë²Œì¨ ëª‡ 핸가."
+í•˜ê³ ê°ê°œë¬´ëŸ‰í•œ ë“¯ì´ ê·¸ 아내를 ëŒì•„보오.
+"ì‹ì˜¤ ë…„ì´ì§€ìš”."
+í•˜ê³ ê³ì— ì„°ë˜ ë¶€ì¸ì´ ë§í•˜ì˜¤.
+"ë²Œì¨ ì‹ì˜¤ ë…„ì¸ê°€."
+í•˜ê³ ê·¸ 남ìžëŠ” 나를 ë³´ê³ ,
+"ì •ìž„ì´ ìž˜ ìžëžë‹ˆê¹Œ? ë²Œì¨ ì´ì‹ì´ 넘었지."
+í•˜ê³ ë˜ ë¶€ì¸ì„ ëŒì•„보오.
+"스물세 ì‚´ì´ì§€."
+í•˜ê³ ë¶€ì¸ì´ 확실치 아니한 ë“¯ì´ ëŒ€ë‹µí•˜ì˜¤.
+"네, 스물세 살입니다. 지금 ë™ê²½ì— 있습니다. ë³‘ì´ ë‚˜ì„œ ìž…ì›í•œ ê²ƒì„ ë³´ê³ ì™”ëŠ”ë°."
+í•˜ê³ ë‚˜ëŠ” ë²ˆê°œê°™ì´ ì •ìž„ì˜ ë³‘ì‹¤ê³¼ ì •ìž„ì˜ í˜¸í…” 장면 ë“±ì„ ìƒê°í•˜ê³ ê°€ìŠ´ì´ ì„¤ë ˜ì„ ê¹¨ë‹¬ì•˜ì†Œ. ì˜ì™¸ì¸ ê³³ì—서 ì˜ì™¸ì¸ ì‚¬ëžŒë“¤ì„ ë§Œë‚˜ì„œ ì •ìž„ì˜ ë§ì„ 하게 ëœ ê²ƒì„ ê¸°ë»í•˜ì˜€ì†Œ.
+"무슨 병입니까. ì •ìž„ì´ê°€ 본래 ëª¸ì´ ì•½í•´ì„œ."
+í•˜ê³ ë¶€ì¸ì´ ì§ì ‘ 내게 묻소.
+"네. ëª¸ì´ ì¢€ 약합니다. ë³‘ì´ ì¢€ ë‚˜ì€ ê²ƒì„ ë³´ê³ ë– ë‚¬ìŠµë‹ˆë‹¤ë§ˆëŠ” ì—¼ë ¤ê°€ ë©ë‹ˆë‹¤."
+í•˜ê³ ë‚˜ëŠ” 무ì˜ì‹ì¤‘ì— ê³ ê°œë¥¼ ë™ê²½ì´ 있는 방향으로 ëŒë ¸ì†Œ. 마치 ê³ ê°œë¥¼ ë™ìœ¼ë¡œ ëŒë¦¬ë©´ ì •ìž„ì´ê°€ ë³´ì´ê¸°ë‚˜ í• ê²ƒê°™ì´.
+"ìž, 우리 집으로 갑시다."
+í•˜ê³ ë‚˜ëŠ” ì•„ì§ ê·¸ì˜ ì„±ëª…ë„ ëª¨ë¥´ëŠ” 남ìžëŠ”, ê·¸ì˜ ì•„ë‚´ë¥¼ 재촉하ë”니,
+"우리가 ì¡°ì„ ë™í¬ë¥¼ 만난 ê²ƒì´ ì‹ì—¬ ë…„ ë§Œì´ì˜¤. ê·¸ëŸ°ë° ìµœ ì„ ìƒ, ì´ê²ƒì„ 좀 ë³´ì‹œê³ ê°€ì‹œì§€ìš”."
+í•˜ê³ ê·¸ëŠ” ë¹™ê·¸ë ˆ 웃으면서 나를 서너 ê±¸ìŒ ëŒê³ 가오. 거기는 조그마한 무ë¤ì´ ìžˆê³ ê·¸ 앞ì—는 ì„ ìž ë†’ì´ë‚˜ ë˜ëŠ” 목패를 ì„¸ì› ëŠ”ë° ê·¸ 목패ì—는 `ë‘ ë³„ 무ë¤'ì´ë¼ëŠ” 넉 ìžë¥¼ ì¼ì†Œ.
+ë‚´ê°€ ì´ìƒí•œ 눈으로 ê·¸ 무ë¤ê³¼ 목패를 ë³´ê³ ìžˆëŠ” ê²ƒì„ ë³´ê³ ê·¸ëŠ”,
+"ì´ê²Œ 무슨 무ë¤ì¸ì§€ ì•„ì‹ë‹ˆê¹Œ?"
+í•˜ê³ ìœ ì¾Œí•˜ê²Œ 묻소.
+"ë‘ ë³„ 무ë¤ì´ë¼ë‹ˆ 무슨 뜻ì¸ê°€ìš”?"
+í•˜ê³ ë‚˜ë„ ê·¸ì˜ ìœ ì¾Œí•œ í‘œì •ì— ì „ì—¼ì´ ë˜ì–´ì„œ ì›ƒê³ ë¬¼ì—ˆì†Œ.
+"ì´ê²ƒì€ 우리 ë‘˜ì˜ ë¬´ë¤ì´ì™¸ë‹¤."
+í•˜ê³ ê·¸ëŠ” ì•„ë‚´ì˜ ì–´ê¹¨ë¥¼ 치며 ìœ ì¾Œí•˜ê²Œ 웃었소. ë¶€ì¸ì€ ë¶€ë„러운 ë“¯ì´ ì›ƒê³ ê³ ê°œë¥¼ 숙ì´ì˜¤.
+ë„무지 ëª¨ë‘ ê¿ˆ ê°™ê³ í™˜ì˜ ê°™ì†Œ.
+"ìž ê°‘ì‹œë‹¤. ìžì„¸í•œ ë§ì€ 우리 ì§‘ì— ê°€ì„œ 합시다."
+í•˜ê³ ì„œë„ˆ ê±¸ìŒ ì–´ë–¤ 방향으로 걸어가니 거기는 ë§ì„ 세 í•„ì´ë‚˜ 맨 마차가 있소. ëª½ê³ ì‚¬ëžŒë“¤ì´ ê°€ì¡±ì„ ì‹£ê³ ìˆ˜ì´ˆë¥¼ ë”°ë¼ ëŒì•„다니는 그러한 마차요. ì‚¿ìžë¦¬ë¡œ í™ì˜ˆí˜•ì˜ ì§€ë¶•ì„ ë§Œë“¤ê³ ê·¸ ì†ì— 들어가 앉게 ë˜ì—ˆì†Œ. ê·¸ì˜ ë¶€ì¸ê³¼ 나와는 ì´ ì§€ë¶• ì†ì— ë“¤ì–´ì•‰ê³ ê·¸ëŠ” ì†ìˆ˜ ì–´ìžëŒ€ì— 앉아서 입으로 쮸쮸쮸쮸 í•˜ê³ ë§ì„ 모오. ë“±ë¶ˆë„ êº¼ ë²„ë¦¬ê³ ìº„ìº„í•œ ì†ìœ¼ë¡œ 달리오.
+"ë¶ˆì´ ìžˆìœ¼ë©´ 군대ì—서 ì˜ì‹¬ì„ 하지요. ë„ì ë†ˆì´ ì—¿ë³´ì§€ìš”. 게다가 ë¶ˆì´ ìžˆìœ¼ë©´ ë„리어 ì•žì´ ì•ˆ ë³´ì¸ë‹¨ ë§ìš”. 쯧쯧쯧쯧!"
+하는 소리가 들리오.
+대체 ì´ ì‚¬ëžŒì€ ë¬´ìŠ¨ 사람ì¸ê°€. ë˜ ì´ ë¶€ì¸ì€ 무슨 사람ì¸ê°€ í•˜ê³ ë‚˜ëŠ” ì–´ë‘ìš´ ì†ì—서 í˜¼ìž ìƒê°í•˜ì˜€ì†Œ. 다만 ìž ì‹œ 본 ì¸ìƒìœ¼ë¡œ 보아서 ê·¸ë“¤ì€ í–‰ë³µëœ ë¶€ë¶€ì¸ ê²ƒ 같았소. ê·¸ë“¤ì´ ë¬´ì—‡ 하러 ì´ ì•„ë‹Œ ë°¤ì¤‘ì— ê´‘ì•¼ì— ë‚˜ì™”ë˜ê°€. ë˜ ê·¸ ì´ìƒì•¼ë¦‡í•œ ë‘ ë³„ 무ë¤ì´ëž€ 무엇ì¸ê°€.
+나는 불현듯 ì§‘ì„ ìƒê°í•˜ì˜€ì†Œ. ë‚´ 아내와 ì–´ë¦°ê²ƒë“¤ì„ ìƒê°í•˜ì˜€ì†Œ. ê°€ì •ê³¼ 사회ì—서 쫓겨난 ë‚´ê°€ 아니오. 쫓겨난 ìžì˜ ìƒê°ì€ ì–¸ì œë‚˜ 슬픔ë¿ì´ì—ˆì†Œ.
+나는 ë‚´ 아내를 ì›ë§ì¹˜ 아니하오. 그는 ê²°ì½” 악한 ì—¬ìžê°€ 아니오. 다만 보통 ì—¬ìžìš”. 그는 질투 ë•Œë¬¸ì— ì´ì„±ì˜ íž˜ì„ ìžƒì€ ê²ƒì´ì˜¤. ì—¬ìžê°€ 질투 ë•Œë¬¸ì— ì´ì„±ì„ 잃는 ê²ƒì´ ì²œì§ì´ ì•„ë‹ê¹Œìš”. 그가 나를 사랑하길래 나를 위해서 질투를 가지는 ê²ƒì´ ì•„ë‹ˆì˜¤.
+설사 질투가 그로 하여금 ì¹¼ì„ ë“¤ì–´ ë‚´ ê°€ìŠ´ì„ ì°Œë¥´ê²Œ 하였다 하ë”ë¼ë„ 나는 ê°ì‚¬í•œ ìƒê°ì„ ê°€ì§€ê³ ëˆˆì„ ê°ì„ 것ì´ì˜¤. 사랑하는 ìžëŠ” ì§ˆíˆ¬í•œë‹¤ê³ í•˜ì˜¤. 질투를 누르는 ê²ƒë„ ì•„ë¦„ë‹¤ìš´ ì¼ì´ì§€ë§ˆëŠ” ì§ˆíˆ¬ì— íƒ€ëŠ” ê²ƒë„ ì•„ë¦„ë‹¤ìš´ ì¼ì´ ì•„ë‹ê¹Œìš”.
+ëœí¬ëŸëœí¬ëŸ í•˜ê³ ì°¨ë°”í€´ê°€ ì² ë¡œê¸¸ì„ ë„˜ì–´ê°€ëŠ” 소리가 나ë”니 ì´ìœ½ê³ 마차는 섰소.
+ì•žì— ë¹¨ê°›ê²Œ ë¶ˆì´ ë¹„ì¹˜ì˜¤.
+"ìž ì´ê²Œ 우리 ì§‘ì´ì˜¤."
+í•˜ê³ ê·¸ê°€ 마차ì—서 뛰어내리는 ì–‘ì´ ë³´ì´ì˜¤. ë‚´ë ¤ 보니까 ë‹¬ì´ ì˜¬ë¼ì˜¤ì˜¤. 굉장히 í° ë‹¬ì´, ë¶‰ì€ ë‹¬ì´ ì§€í‰ì„ 으로서 넘ì„í•˜ê³ ì˜¬ë¼ì˜¤ì˜¤.
+ë‹¬ë¹›ì— ë¹„ì¶”ì¸ ë°”ë¥¼ ë³´ë©´ 네모나게 ë‹´ ë‹´ì´ë¼ê¸°ë³´ë‹¤ëŠ” ì„±ì„ ë‘˜ëŸ¬ìŒ“ì€ ë‹¬ 뜨는 곳으로 열린 ëŒ€ë¬¸ì„ ë“¤ì–´ì„œì„œ ë„“ì€ ë§ˆë‹¹ì— ë‚´ë¦° ê²ƒì„ ë°œê²¬í•˜ì˜€ì†Œ.
+"아버지!"
+"엄마!"
+í•˜ê³ ì•„ì´ë“¤ì´ 뛰어나오오. ë§ë§Œí¼ì´ë‚˜ í° ê°œê°€ 네 놈ì´ë‚˜ 꼬리를 ì¹˜ê³ ë‚˜ì˜¤ì˜¤. ê·¸ë†ˆë“¤ì´ ì£¼ì¸ì§‘ 마차 소리를 ì•Œì•„ë“£ê³ ì§–ì§€ 아니한 모양ì´ì˜¤.
+í° ì•„ì´ëŠ” ê³„ì§‘ì• ë¡œ ì—¬ë‚¨ì€ ì‚´, ìž‘ì€ ì•„ì´ëŠ” 사내로 ìœ¡ì¹ ì„¸, ëª¨ë‘ ì¤‘êµ ì˜·ì„ ìž…ì—ˆì†Œ.
+우리는 방으로 들어갔소. ë°©ì€ ì•„ë¼ì‚¬ì‹ ì ˆë°˜, 중êµì‹ ì ˆë°˜ìœ¼ë¡œ ì„¸ê°„ì´ ë†“ì—¬ ìžˆê³ ë²½ì—는 ì¡°ì„ ì§€ë„와 ë‹¨êµ°ì˜ ì´ˆìƒì´ ê±¸ë ¤ 있소.
+그들 부처는 ì§€ë„와 단군 ì´ˆìƒ ì•žì— í—ˆë¦¬ë¥¼ 굽혀 배례하오. ë‚˜ë„ ë¬´ì˜ì‹ì 으로 그대로 하였소.
+그는 차를 마시며 ì´ë ‡ê²Œ ë§í•˜ì˜¤.
+"우리는 ìžì‹ë“¤ì„ ì´ í¥ì•ˆë ¹ 가까운 무변 광야ì—서 기르는 것으로 ë‚™ì„ ì‚¼ê³ ìžˆì§€ìš”. ì¡°ì„ ì‚¬ëžŒë“¤ì€ í•˜ë„ ë§ˆìŒì´ 작아서 ê±±ì •ì´ë‹ˆ ì´ëŸ° 호호탕탕한 ë„“ì€ ë²ŒíŒì—서 길러나면 마ìŒì´ 좀 커질까 하지요. ë˜ í¥ì•ˆë ¹ ë°‘ì—서 지나 중ì›ì„ 통ì¼í•œ ì œì™•ì´ ë§Žì´ ë‚¬ìœ¼ë‹ˆ 혹시나 ê·¸ ì •ê¸°ê°€ 남아 있ì„까 하지요. 우리 ë¶€ì²˜ì˜ ìžì†ì´ 몇 대를 ë‘ê³ í¼ì§€ëŠ” ë™ì•ˆì—는 행여나 ë§ˆìŒ í° ì¸ë¬¼ì´ 하나 둘 ë‚ ëŠ”ì§€ ì•Œê² ì–´ìš”, 하하하하."
+í•˜ê³ ê·¸ëŠ” ì œ ë§ì„ ì œê°€ 비웃는 ë“¯ì´ í•œë°”íƒ• ì›ƒê³ ë‚˜ì„œ,
+"그러나 ì´ê±´ ë‚´ ì§„ì •ì´ì™¸ë‹¤. ìš°ë¦¬ë„ ì´ë ‡ê²Œ ê³ êµì„ ë– ë‚˜ 있지마는 ê·¸ëž˜ë„ ê³ êµ ì†Œì‹ì´ ê¶ê¸ˆí•´ì„œ ì‹ ë¬¸ 하나는 늘 보지요. 하지만 ì–´ë”” 시ì›í•œ 소ì‹ì´ 있어요. ê·¸ì € 조리복소니가 ë˜ì–´ê°€ëŠ” ê²ƒì´ ì•„ë‹ˆë©´ 조그마한 ìƒê°ì„ ê°€ì§€ê³ , 눈곱만한 ì•¼ì‹¬ì„ ê°€ì§€ê³ , 서 푼어치 안 ë˜ëŠ” ì´ìƒì„ ê°€ì§€ê³ ì°§ê³ ê¹Œë¶ˆê³ ì‹¸ìš°ê³ í•˜ëŠ” ê²ƒë°–ì— ì•ˆ ë³´ì´ë‹ˆ ì´ê±° ì–´ë”” ì‚´ 수가 있나. 그래서 나는 ë§ˆìŒ í° ìžì†ì„ 낳아서 길러 볼까 í•˜ê³ ì´ë¥¼í…Œë©´ 새 ë¯¼ì¡±ì„ í•˜ë‚˜ 만들어 볼까 í•˜ê³ , 둘째 단군, 둘째 아브ë¼í•¨ì´ë‚˜ 하나 낳아 볼까 í•˜ê³ í•˜í•˜í•˜í•˜ì•—í•˜."
+í•˜ê³ ìœ ì¾Œí•˜ê²Œ, 그러나 비통하게 웃소.
+나는 ì €ë…ì„ êµ¶ì–´ì„œ ë°°ê°€ ê³ í”„ê³ , ë°¤ê¸¸ì„ ê±¸ì–´ì„œ ëª¸ì´ ê³¤í•œ ê²ƒë„ ìžŠê³ ê·¸ì˜ ë§ì„ 들었소.
+ë¶€ì¸ì´ ê¹€ì´ ë¬´ëŸë¬´ëŸ 나는 í˜¸ë–¡ì„ í° ëšë°°ê¸°ì— ë‹´ê³ ê¹€ì¹˜ë¥¼ ìž‘ì€ ëšë°°ê¸°ì— ë‹´ê³ , ë˜ ë¼ì§€ê³ 기 ì‚¶ì€ ê²ƒì„ í•œ ì ‘ì‹œ 담아다가 íƒìž ìœ„ì— ë†“ì†Œ.
+건넌방ì´ë¼ê³ í• ë§Œí•œ ë°©ì—서 ì –ë¨¹ì´ ìš°ëŠ” 소리가 들리오. ë¶€ì¸ì€ 삼ì‹ì´ë‚˜ ë˜ì—ˆì„까, ë‚¨íŽ¸ì€ ì„œë¥¸ëŒ“ ë˜ì—ˆì„ 듯한 키가 í›¨ì© í¬ê³ 눈과 코가 í¬ê³ ì†ë„ í° ê±´ìž¥í•œ 대장부요, ìŒì„±ì´ 부드러운 ê²ƒì´ ì²´ê²©ì— ì–´ìš¸ë¦¬ì§€ 아니하나 ê·¸ê²ƒì´ ì•„ë§ˆ ê·¸ì˜ ì •ì‹ ìƒí™œì´ ë†’ì€ í‘œê² ì§€ìš”.
+"ì‹ ë¬¸ì—서 최 ì„ ìƒì´ í•™êµë¥¼ ê³ ë§Œë‘시게 ë˜ì—ˆë‹¤ëŠ” ë§ë„ 보았지요. 그러나 나는 ê·¸ê²ƒì´ ë‹¤ 최 ì„ ìƒì—게 대한 중ìƒì¸ ì¤„ì„ ì§ìž‘í•˜ì˜€ê³ , ë˜ ì˜¤ëŠ˜ ì´ë ‡ê²Œ 만나 보니까 ë”구나 ê·¸ê²ƒì´ ë‹¤ 중ìƒì¸ ì¤„ì„ ì•Œì§€ìš”."
+í•˜ê³ ê·¸ëŠ” í™•ì‹ ìžˆëŠ” 어조로 ë§í•˜ì˜¤.
+"ê³ ë§™ìŠµë‹ˆë‹¤."
+나는 ì´ë ‡ê²Œë°–ì— ëŒ€ë‹µí• ë§ì´ 없었소.
+"ì•„, 머, ê³ ë§™ë‹¤ê³ í•˜ì‹¤ ê²ƒë„ ì—†ì§€ìš”."
+í•˜ê³ ê·¸ëŠ” 머리를 뒤로 ì –ížˆê³ í•œì°¸ì´ë‚˜ ìƒê°ì„ 하ë”니 ìš°ì„ ê»„ê»„ 한바탕 ì›ƒê³ ë‚˜ì„œ,
+"ë‚´ê°€ 최 ì„ ìƒì´ ë‹¹í•˜ì‹ ê²½ìš°ì™€ ê¼ ê°™ì€ ê²½ìš°ë¥¼ ë‹¹í•˜ì˜€ê±°ë“ ìš”. ì´ë¥¼í…Œë©´ 과부 ì„¤ì›€ì€ ë™ë¬´ 과부가 안다는 것ì´ì§€ìš”."
+í•˜ê³ ê·¸ëŠ” ìžê¸°ì˜ ë‚´ë ¥ì„ ë§í•˜ê¸° 시작하오.
+"ë‚´ ì§‘ì€ ë³¸ëž˜ 서울입니다. ë‚´ê°€ ì–´ë ¸ì„ ì ì— ë‚´ ì„ ì¹œê»˜ì„œ 시êµì— 대해서 불í‰ì„ í’ˆê³ ë‹¹ì‹ ì‚¼ í˜•ì œì˜ ê°€ì¡±ì„ ëŒê³ ìž¬ì‚°ì„ ëª¨ë‘ íŒ”ì•„ ê°€ì§€ê³ ê°„ë„ì—를 건너오셨지요. ê°„ë„ì— ë§¨ ë¨¼ì € â—â—í•™êµë¥¼ 세운 ì´ê°€ ë‚´ ì„ ì¹œì´ì§€ìš”."
+여기까지 하는 ë§ì„ ë“£ê³ ë‚˜ëŠ” 그가 누구ì¸ì§€ë¥¼ 알았소. 그는 R씨ë¼ê³ ê°„ë„ ê°œì²™ìžìš”, ê°„ë„ì— ì¡°ì„ ì¸ ë¬¸í™”ë¥¼ 세운 ì´ë¡œ ìœ ëª…í•œ ì´ì˜ ì•„ë“¤ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜¤. 나는 ê·¸ì˜ ì´ë¦„ì´ ëˆ„êµ¬ì¸ì§€ë„ 물어 ë³¼ 것 ì—†ì´ ì•Œì•˜ì†Œ.
+"ì•„ 그러ì‹ë‹ˆê¹Œ. 네, 그러세요."
+í•˜ê³ ë‚˜ëŠ” ê°íƒ„하였소.
+"네, ë‚´ ì„ ì¹œì„ í˜¹ 아실는지요. ì„ ì¹œì˜ ë§ì”€ì´ ë…¸ ê·¸ëŸ¬ì‹ ë‹¨ ë§ì”€ì•¼ìš”. ì¡°ì„ ì‚¬ëžŒì€ ì†ì´ ì¢ì•„서 ëª»ì“´ë‹¤ê³ <ì •ê°ë¡>ì—ë„ ê·¸ëŸ° ë§ì´ ìžˆë‹¤ê³ ì¡°ì„ ì€ ì‚°ì´ ë§Žê³ ë“¤ì´ ì¢ì•„서 ì‚¬ëžŒì˜ ë§ˆìŒì´ 작아서 í°ì¼í•˜ê¸°ê°€ ì–´ë µê³ , í°ì‚¬ëžŒì´ 나기가 ì–´ë µë‹¤ê³ . 웬만치 í°ì‚¬ëžŒì´ 나면 서로 시기해서 í°ì¼í• 새가 ì—†ì´ í•œë‹¤ê³ ê·¸ë ‡ê²Œ <ì •ê°ë¡>ì—ë„ ìžˆë‹¤ë”êµ°ìš”. 그래서 ì„ ì¹œê»˜ì„œ ìžì†ì—게나 í¬ë§ì„ ë¶™ì´ê³ ê°„ë„로 ì˜¤ì‹ ëª¨ì–‘ì´ì§€ìš”. 거기서 ìžë¼ë‚¬ë‹¤ëŠ” ê²ƒì´ ë‚´ 꼴입니다마는, 아하하.
+ë‚´ê°€ ìžë¼ì„œ 아버지께서 ì„¸ìš°ì‹ K여학êµì˜ êµì‚¬ë¡œ ìžˆì„ ë•Œ ì¼ìž…니다. 지금 ë‚´ 아내는 ê·¸ 때 í•™ìƒìœ¼ë¡œ 있었구. ê·¸ëŸ¬ìž ë‚´ 아버지께서 ìž¬ì‚°ì´ ë‹¤ ì—†ì–´ì ¸ì„œ í•™êµë¥¼ ë…담하실 수가 ì—†ê³ , ë˜ ì–¼ë§ˆ 아니해서 아버지께서 ëŒì•„ê°€ì‹œê³ ë³´ë‹ˆ í•™êµì—는 ì„¸ë ¥ ë‹¤íˆ¼ì´ ìƒê²¨ì„œ ì•„ë²„ì§€ì˜ í›„ê³„ìžë¡œ ì¶”ì •ë˜ëŠ” 나를 배척하게 ë˜ì—ˆë‹¨ ë§ì”€ì´ì˜¤. 거기서 나를 배척하는 ìžë£Œë¥¼ ì‚¼ì€ ê²ƒì´ ë‚˜ì™€ 지금 ë‚´ ì•„ë‚´ê°€ ëœ í•™ìƒì˜ 관계란 것ì¸ë° ì´ê²ƒì€ ì „ì—° ë¬´ê·¼ì§€ì„¤ì¸ ê²ƒì€ ë§í• ê²ƒë„ ì—†ì†Œ. ë‚˜ë„ ì´ê°ì´ìš”, 그는 처녀니까 혼ì¸ì„ 하ìžë©´ 못 í• ê²ƒë„ ì—†ì§€ë§ˆëŠ” ê·¸ê²ƒì´ ì‚¬ì œ 관계ë¼ë©´ 중대 ë¬¸ì œê±°ë“ . 그래서 나는 단연히 사ì§ì„ í•˜ê³ ë‚´ê°€ 사ì§í•œ ê²ƒì€ ì œ 죄를 승ì¸í•œ 것ì´ë¼ 하여서 ê·¸ í•™ìƒ ì§€ê¸ˆ ë‚´ ì•„ë‚´ë„ ì¶œêµ ì²˜ë¶„ì„ ë‹¹í•œ 것ì´ì˜¤. ê·¸ëŸ¬ê³ ë³´ë‹ˆ, ê·¸ ì—¬ìžì˜ 아버지 ë‚´ 장ì¸ì´ì§€ìš” ê·¸ ì—¬ìžì˜ 아버지는 나를 ì£½ì¼ ë†ˆê°™ì´ ì›ë§ì„ í•˜ê³ ê·¸ ë”¸ì„ ì£½ì¼ ë…„ì´ë¼ê³ ê°ê¸ˆì„ í•˜ê³ ì–´ì¨Œìœ¼ë‚˜ 조그마한 ê°„ë„ ì‚¬íšŒì—서 í° íŒŒë¬¸ì„ ì¼ìœ¼ì¼°ë‹¨ ë§ì´ì˜¤.
+ì´ ë¬¸ì œë¥¼ ë” í¬ê²Œ ë§Œë“ ê²ƒì€ ì§€ê¸ˆ ë‚´ ì•„ë‚´ì¸, ê·¸ ë”¸ì˜ ìžë°±ì´ì˜¤. 무어ë¼ê³ í–ˆëŠ”ê³ í•˜ë‹ˆ, 나는 ê·¸ ì‚¬ëžŒì„ ì‚¬ëž‘í•˜ì˜¤, ê·¸ 사람한테가 아니면 ì‹œì§‘ì„ ì•ˆ 가오, í•˜ê³ ë»—ëŒ”ë‹¨ ë§ìš”.
+나는 ì´ ì—¬ìžê°€ ì´ë ‡ê²Œ 나를 ìƒê°í•˜ëŠ”ê°€ í• ë•Œ ì˜ë¶„ì‹¬ì´ ë‚˜ì„œ 나는 어떻게 í•´ì„œë“ ì§€ ì´ ì—¬ìžì™€ 혼ì¸í•˜ë¦¬ë¼ê³ ê²°ì‹¬ì„ í•˜ì˜€ì†Œ. 나는 마침내 ì •ì‹ìœ¼ë¡œ K장로ë¼ëŠ” ë‚´ 장ì¸ì—게 ì²í˜¼ì„ 하였으나 ë‹¨ë°•ì— ê±°ì ˆì„ ë‹¹í•˜ê³ ë§ì•˜ì§€ìš”. K장로는 ê·¸ ë”¸ì„ ê°„ë„ì— ë‘는 ê²ƒì´ ì˜³ì§€ ì•Šë‹¤ê³ í•´ì„œ 서울로 보내기로 하였단 ë§ì„ 들었소. 그래서 나는 ìµœí›„ì˜ ê²°ì‹¬ìœ¼ë¡œ ê·¸ ì—¬ìž ì§€ê¸ˆ ë‚´ ì•„ë‚´ ëœ ì‚¬ëžŒì„ ë°ë¦¬ê³ ê°„ë„ì—서 ë„ë§í•˜ì˜€ì†Œ. 하하하하. ë°¤ì¤‘ì— ë‹¨ë‘˜ì´ì„œ.
+지금 같으면야 ì‚¬ì œê°„ì— ê²°í˜¼ì„ í•˜ê¸°ë¡œ 그리 í° ë¬¸ì œê°€ ë ê²ƒì´ ì—†ì§€ë§ˆëŠ” ê·¸ ë•Œì— ì–´ë”” 그랬나요. ì‚¬ì œê°„ì— í˜¼ì¸ì´ëž€ ê²ƒì€ ë¶€ë…€ê°„ì— í˜¼ì¸í•œë‹¤ëŠ” 것과 ê°™ì´ ìƒê°í•˜ì˜€ì§€ìš”. ë”구나 ê·¸ 때 ê°„ë„ ì‚¬íšŒì—는 ì²êµë„ì 사ìƒê³¼ ì—´ë ¬í•œ ì• êµì‹¬ì´ 있어서 ë„ë• í‘œì¤€ì´ ì—¬ê°„ 높지 아니하였지요. 그런 시대니까 ë‚´ê°€ ë‚´ ì œìžì¸ 여학ìƒì„ ë°ë¦¬ê³ 달아난다는 ê²ƒì€ ì‚´ì¸ ê°•ë„를 하는 ì´ìƒìœ¼ë¡œ 무서운 ì¼ì´ì—ˆì§€ìš”. ì§€ê¸ˆë„ ë‚˜ëŠ” ê·¸ë ‡ê²Œ ìƒê°í•©ë‹ˆë‹¤ë§ˆëŠ”.
+그래서 우리 ë‘ ì‚¬ëžŒì€ ìš°ë¦¬ ë‘ ì‚¬ëžŒì´ë¼ëŠ” ê²ƒë³´ë‹¤ë„ ë‚´ ìƒê°ì—는 어찌하였으나 나를 위해서 ì œ ëª©ìˆ¨ì„ ë²„ë¦¬ë ¤ëŠ” ê·¸ì—게 사실 ë‚˜ë„ ë§ˆìŒ ì†ìœ¼ë¡œëŠ” 그를 사랑하였지요. 다만 ì‚¬ì œê°„ì´ë‹ˆê¹Œ ì˜ì›ížˆ ë‹¬í• ìˆ˜ëŠ” 없는 사랑ì´ë¼ê³ 단ë…í•˜ì˜€ì„ ë¿ì´ì§€ìš”. 그러니까 ë¹„ë¡ ë¶€ì²˜ ìƒí™œì€ 못 하ë”ë¼ë„ ë‚´ê°€ ê·¸ì˜ ì‚¬ëž‘ì„ ì•ˆë‹¤ëŠ” 것과 ë‚˜ë„ ê·¸ë¥¼ ì´ë§Œí¼ 사랑한다는 ê²ƒë§Œì„ ë³´ì—¬ 주ìžëŠ” 것ì´ì§€ìš”.
+때는 마침 ê°€ì„ì´ì§€ë§ˆëŠ”, ëª¸ì— ì§€ë‹Œ ëˆë„ 얼마 ì—†ê³ ì²œì‹ ë§Œê³ ë¡œ 길림까지를 나와 ê°€ì§€ê³ ëŠ” 배를 íƒ€ê³ ì†¡í™”ê°•ì„ ë‚´ë ¤ì„œ í•˜ì–¼ë¹ˆì— ê°€ ê°€ì§€ê³ ê±° 기서 ê°„ì‹ ížˆ ì¹˜íƒ€ê¹Œì§€ì˜ ì—¬ë¹„ì™€ ì—¬í–‰ê¶Œì„ ì–»ì–´ ê°€ì§€ê³ ì°¨ë¥¼ íƒ€ê³ ë– ë‚˜ì§€ 않았어요. ê·¸ê²ƒì´ ë°”ë¡œ ì‹ì—¬ ë…„ ì „ 오늘ì´ëž€ ë§ì´ì˜¤."
+ì´ ë•Œì— ë¶€ì¸ì´ 옥수수로 ë§Œë“ êµìˆ˜ì™€ ê°ìž ì‚¶ì€ ê²ƒì„ ê°€ì§€ê³ ë“¤ì–´ì˜¤ì˜¤.
+나는 Rì˜ ë§ì„ ë“£ë˜ ëì´ë¼ ìœ ì‹¬ížˆ ë¶€ì¸ì„ ë°”ë¼ë³´ì•˜ì†Œ. 그는 중키나 ë˜ëŠ” 둥근 ì–¼êµ´ì´ í˜ˆìƒ‰ì´ ì¢‹ê³ í†µí†µí•˜ì—¬ 미ì¸ì´ë¼ê¸°ë³´ë‹¤ëŠ” 씩씩한 ì—¬ìžìš”. 그런 ì¤‘ì— ì¡°ì„ ì—¬ìžë§Œì´ 가지는 ì•„ë‹´í•˜ê³ ì ìž–ì€ ë§›ì´ ìžˆì†Œ.
+"앉으시지요. 지금 ë‘ ë¶„ê»˜ì„œ ì²˜ìŒ ì‚¬ëž‘í•˜ì‹œë˜ ë§ì”€ì„ ë“£ê³ ìžˆìŠµë‹ˆë‹¤."
+í•˜ê³ ë‚˜ëŠ” ë¶€ì¸ì—게 êµì˜ë¥¼ 권하였소.
+"ì•„ì´, 그런 ë§ì”€ì€ 왜 하시오."
+í•˜ê³ ë¶€ì¸ì€ ê°‘ìžê¸° ì‹ ë…„ì´ë‚˜ ì–´ë ¤ì§€ëŠ” 모양으로 수삽한 ë¹›ì„ ë³´ì´ê³ ê³ ê°œë¥¼ 숙ì´ê³ 달아나오.
+"그래서요. 그래 ì˜¤ëŠ˜ì´ ê¸°ë…ì¼ì´ì™¸ë‹¤ê·¸ë ¤."
+í•˜ê³ ë‚˜ë„ ì›ƒì—ˆì†Œ.
+"ê·¸ë ‡ì§€ìš”. 우리는 해마다 ì˜¤ëŠ˜ì´ ì˜¤ë©´ 우리 무ë¤ì— 성묘를 가서 í•˜ë£»ë°¤ì„ ìƒˆìš°ì§€ìš”. ì˜¤ëŠ˜ì€ ì†ë‹˜ì´ 오셔서 ì¤‘ê°„ì— ëŒì•„왔지만, 하하하하."
+í•˜ê³ ê·¸ëŠ” ìœ ì¾Œí•˜ê²Œ 웃소.
+"성묘ë¼ë‹ˆ?"
+í•˜ê³ ë‚˜ëŠ” 물었소.
+"아까 ë³´ì‹ ë‘ ë³„ ë¬´ë¤ ë§ì´ì˜¤. ê·¸ê²ƒì´ ìš°ë¦¬ ë‚´ì™¸ì˜ ë¬´ë¤ì´ì§€ìš”. 하하하하."
+"…………."
+나는 ì˜ë¬¸ì„ ëª¨ë¥´ê³ ê°€ë§Œížˆ 앉았소.
+"ë‚´ ì´ì•¼ê¸°ë¥¼ 들으시지요. 그래 둘ì´ì„œ 차를 íƒ€ê³ ì˜¤ì§€ ì•Šì•˜ê² ì–´ìš”. ë¬¼ë¡ ì—¬ì „ížˆ ì„ ìƒë‹˜ê³¼ ì œìžì§€ìš”. ê·¸ë ‡ì§€ë§Œ 워낙 여러 ë‚ ë‹¨ë‘˜ì´ì„œ ê°™ì´ ê³ ìƒì„ í•˜ê³ ì—¬í–‰ì„ í–ˆìœ¼ë‹ˆ ì‚¬ëž‘ì˜ ë¶ˆê¸¸ì´ íƒˆ 것ì´ì•¼ ë¬¼ë¡ ì•„ë‹ˆê² ì–´ìš”. 다만 ì‚¬ì œë¼ëŠ” êµ³ì€ ì˜ë¦¬ê°€ ê·¸ê²ƒì„ ê²‰ì— ë‚˜ì˜¤ì§€ 못하ë„ë¡ ëˆ„ë¥¸ 것ì´ì§€ìš”. â€¦â€¦ê·¸ëŸ°ë° ê¼ ì˜¤ëŠ˜ê°™ì´ ì¢‹ì€ ë‚ ì¸ë° 여기는 대개 ì¼ê¸°ê°€ ì¼ì •합니다. 좀체로 비가 오는 ì¼ë„ ì—†ê³ í리는 ë‚ ë„ ì—†ì§€ìš”. í—Œë° Fì—ì—를 오니까 ì°¸ ì„ì–‘ 경치가 좋단 ë§ì´ì˜¤. ê·¸ ë•Œì— ë¶ˆí˜„ë“¯, ì—ë¼ ì—¬ê¸°ì„œ ë‚´ë ¤ì„œ ì´ ì„ì–‘ ì†ì— ì € 호숫 ê°€ì— ë‘˜ì´ì„œ 헤매다가 깨ë—ì´ ì‚¬ì œì˜ ëª¸ìœ¼ë¡œ ì´ ê¹¨ë—한 ê´‘ì•¼ì— ë¬»í˜€ ë²„ë¦¬ìž í•˜ëŠ” ìƒê°ì´ ë‚˜ê² ì§€ìš”. 그래 ê·¸ 때 ë§ì„ ë‚´ ì•„ë‚´ ê·¸ 때ì—는 ì•„ì§ ì•„ë‚´ê°€ 아니지요 ë‚´ ì•„ë‚´ì—게 그런 ë§ì„ 하였ë”니 ì°¸ ì¢‹ë‹¤ê³ ë°•ìž¥ì„ í•˜ê³ ë‚´ ì–´ê¹¨ì— ë§¤ë‹¬ë¦¬ëŠ”êµ¬ë ¤. 그래서 우리 ë‘˜ì€ ì°¨ê°€ ê±°ì˜ ë– ë‚ ìž„ë°•í•´ì„œ ì°¨ì—서 ë›°ì–´ë‚´ë ¸ì§€ìš”."
+í•˜ê³ ê·¸ëŠ” 그때 ê´‘ê²½ì„ ëˆˆì•žì— ê·¸ë¦¬ëŠ” 모양으로 ë§ì„ ëŠê³ ìš°ë‘커니 í—ˆê³µì„ ë°”ë¼ë³´ì˜¤. 그러나 ê·¸ì˜ ìž… ì–¸ì €ë¦¬ì—는 ìœ ì¾Œí•œ íšŒê³ ì—서 나오는 웃ìŒì´ì—ˆì†Œ.
+"ì´ì•¼ê¸° 다 ë났어요?"
+í•˜ê³ ë¶€ì¸ì´ í¬ë°”스ë¼ëŠ” ì²ëŸ‰ ìŒë£Œë¥¼ ë“¤ê³ ë“¤ì–´ì˜¤ì˜¤.
+"아니오. ì´ì œë¶€í„°ê°€ ì •í†µì´ë‹ˆ ë‹¹ì‹ ë„ ê±°ê¸° 앉으시오. 지금 ì°¨ì—서 내린 ë°ê¹Œì§€ ì™”ëŠ”ë° ë‹¹ì‹ ë„ ì•‰ì•„ì„œ 한 파트를 맡으시오."
+í•˜ê³ R는 ë¶€ì¸ì˜ ì†ì„ 잡아서 ìžë¦¬ì— 앉히오. ë¶€ì¸ë„ 웃으면서 앉소.
+"최 ì„ ìƒ ì²˜ì§€ê°€ ê¼ ë‚˜ì™€ 같단 ë§ìš”. ì •ìž„ì˜ ì²˜ì§€ê°€ ë‹¹ì‹ ê³¼ ê°™ê³ ."
+í•˜ê³ ê·¸ëŠ” ë§ì„ 계ì†í•˜ì˜¤.
+"그래 ì°¨ì—서 ë‚´ë ¤ì„œ 나는 ì´ ì–‘ë°˜í•˜ê³ ë¬¼ì„ ì°¾ì•„ 헤매었지요. ì•„ë”°, ì„ì–‘ì´ ì–´ë–»ê²Œ 좋ì€ì§€ ì´ ì–‘ë°˜ì€ ë°•ìž¥ì„ í•˜ê³ ë…¸ëž˜ë¥¼ ë¶€ë¥´ê³ ìš°ë¦¬ ë‘˜ì€ ë§ˆì¹˜ ìœ ì¾Œí•˜ê²Œ 산보하는 사람 같았지요."
+"ì°¸ 좋았어요. ê·¸ 때ì—는 ì°¸ 좋았어요. ê·¸ ì„ì–‘ì— ë¹„ì¹œ 광야와 호수ë¼ëŠ” ê±´ 어떻게 좋ì€ì§€ ê·¸ ìˆ˜ì€ ê°™ì€ ë¬¼ ì†ì— 텀벙 ë›°ì–´ë“¤ê³ ì‹¶ì—ˆì–´ìš”. ê·¸ 후엔 해마다 ë³´ì•„ë„ ê·¸ë§Œ 못해."
+í•˜ê³ ë¶€ì¸ì´ ì°¸ê²¬ì„ í•˜ì˜¤.
+ì•„ì´ë“¤ì€ 다 ìžëŠ” 모양ì´ì˜¤.
+"그래 ì§€í–¥ì—†ì´ í—¤ë§¤ëŠ”ë° í•´ëŠ” 뉘엿뉘엿 넘어가구, ì–´ìŠ¤ë¦„ì€ ê¸°ì–´ë“¤ê³ ê·¸ 때 마침 하늘ì—는 별 ë‘˜ì´ ë‚˜íƒ€ë‚¬ë‹¨ ë§ì´ì•¼. ê·¸ê²ƒì„ ì´ ì—¬í•™ìƒì´ ë¨¼ì € ë³´ê³ ì„œ ê°‘ìžê¸° 추연해지면서 ì„ ìƒë‹˜ ì € 별 보셔요, ì•žì„ í° ë³„ì€ ì„ ìƒë‹˜ì´ 구 ë”°ë¼ê°€ëŠ” ìž‘ì€ ë³„ì€ ì €ì•¼ìš”, í•˜ê² ì§€ìš”. ê·¸ ë§ì´, ë˜ ê·¸ 태ë„ê°€ 어떻게 ê°€ë ¨í•œì§€. 그래서 나는 í•˜ëŠ˜ì„ ë°”ë¼ë³´ë‹ˆê¹ 과연 별 ë‘ ê°œê°€ 지는 해를 따르는 ë“¯ì´ ë”°ë¼ê°„다 ë§ìš”. ë§ì„ ë“£ê³ ë³´ë‹ˆ 과연 우리 ì‹ ì„¸ì™€ë„ ê°™ì§€ 않아요?
+ê·¸ë¦¬ê³ ëŠ” ì´ ì‚¬ëžŒì´ ë˜ ì´ëŸ½ë‹ˆë‹¤ê·¸ë ¤ `ì„ ìƒë‹˜, ì•žì„ í° ë³„ì€ ì•„ë¬´ë¦¬ ë”°ë¼ë„ ì € ìž‘ì€ ë³„ì€ ì˜ì›ížˆ ë”°ë¼ìž¡ì§€ ëª»í•˜ê² ì§€ìš”. ì˜ì›ížˆ ì˜ì›ížˆ ë”°ë¼ê°€ë‹¤ê°€ ë”°ë¼ê°€ë‹¤ê°€ 못 해서 마침내는 ì € ìž‘ì€ ë³„ì€ ì£½ì–´ì„œ ê²€ì€ ìž¬ê°€ ë˜ê³ ë§ê² 지요? ì € ìž‘ì€ ë³„ì´ ì œ ì‹ ì„¸ì™€ 어쩌면 그리 ê°™ì„까.' í•˜ê³ í•œíƒ„ì„ í•˜ê² ì§€ìš”. ê·¸ ë•Œì— í•œíƒ„ì„ í•˜ê³ ëˆˆë¬¼ì„ í˜ë¦¬ê³ 섰는 어린 ì²˜ë…€ì˜ ì„ì–‘ë¹›ì— ë¹„ì·¬ ëª¨ì–‘ì„ ìƒìƒí•´ 보세요, 하하하하. ê·¸ 때ì—는 ë‹¹ì‹ ë„ ë¯¸ì¸ì´ì—ˆì†Œ. 하하하하."
+í•˜ê³ ë‚´ì™¸ê°€ ìœ ì¾Œí•˜ê²Œ 웃는 ê²ƒì„ ë³´ë‹ˆ 나는 ë”ìš± ì 막하여ì§ì„ 깨달았소. 어쩌면 ê·¸ ì„ì–‘, ê·¸ ë‘ ë³„ì´ ì´ë“¤ì—게와 내게 ê¼ ê°™ì€ ì¸ìƒì„ 주었ì„까 하니 참으로 ì´ìƒí•˜ë‹¤ 하였소.
+"그래 ì¸ì œ."
+í•˜ê³ R는 다시 ì´ì•¼ê¸°ë¥¼ 계ì†í•˜ì˜¤.
+"그래 ì¸ì œ 둘ì´ì„œ 그야ë§ë¡œ ê°ê°œë¬´ëŸ‰í•˜ê²Œ ë‘ ë³„ì„ ë°”ë¼ë³´ë©° 걸었지요. 그러다가 í•´ê°€ ë„˜ì–´ê°€ê³ ì•žì„ í° ë³„ì´ ë„˜ì–´ê°€ê³ ê·¸ë¦¬ê³ ëŠ” 혼ìžì„œ ê¹œë¹¡ê¹œë¹¡í•˜ê³ ê°€ë˜ ìž‘ì€ ë³„ì´ ë„˜ì–´ê°€ë‹ˆ 우리는 그만 ë•…ì— ì£¼ì €ì•‰ì•˜ì†Œ. 거기가 ì–´ë”˜ê³ í•˜ë‹ˆ ê·¸ ë‘ ë³„ 무ë¤ì´ 있는 ê³³ì´ì§€ìš”. `ì„ ìƒë‹˜ ì €ë¥¼ 여기다가 파묻어 ì£¼ì‹œê³ ê°€ì…”ìš”. ì„ ìƒë‹˜ ì†ìˆ˜ ì €ë¥¼ 여기다가 묻어 ë†“ê³ ê°€ 주셔요.' í•˜ê³ ì´ ì‚¬ëžŒì´ ì¡°ë¥´ì§€ìš”."
+하는 ê²ƒì„ ë¶€ì¸ì€,
+"ë‚´ê°€ ì–¸ì œ."
+í•˜ê³ ë‚¨íŽ¸ì„ í˜ê²¨ë³´ì˜¤.
+"그럼 무ì—ë¼ê³ 했소? ì–´ë”” 본ì¸ì´ 한 번 옮겨 보오."
+í•˜ê³ Rê°€ ë§ì„ ëŠì†Œ.
+"ê°„ë„를 ë– ë‚œ 지가 한 ë‹¬ì´ ë˜ë„ë¡ ë‹¨ë‘˜ì´ ë‹¤ë…€ë„ ìš”ë§Œí¼ë„ 귀해 주는 ì ì´ ì•ˆ 뵈니 그럼 파묻어 달ë¼ê³ 안 í•´ìš”?"
+í•˜ê³ ë¶€ì¸ì€ 웃소.
+"í¥í¥."
+í•˜ê³ R는 ë¶€ì¸ì˜ ë§ì— ì›ƒê³ ë‚˜ì„œ,
+"ê·¸ ìžë¦¬ì— 묻어 달란 ë§ì„ 들으니까, 어떻게 측ì€í•œì§€, 그럼 ë‚˜ë„ í•¨ê»˜ 묻히ìžê³ 그랬지요. 나는 ê·¸ ë•Œì— ì°¸ë§ ê·¸ ìžë¦¬ì— 함께 ë¬»ížˆê³ ì‹¶ì—ˆì–´ìš”. 그래서 나는 ì†ìœ¼ë¡œ ê³§ 구ë©ì´ë¥¼ íŒ ì§€ìš”. 떡가루 ê°™ì€ ëª¨ëž˜íŒì´ë‹ˆê¹Œ 파기는 íž˜ì´ ì•„ë‹ˆ ë“¤ê² ì§€ìš”. ì´ì´ë„ 물ë„러미 ë‚´ê°€ ë•…ì„ íŒŒëŠ” ê²ƒì„ ë³´ê³ ì„°ë”니만 ìžê¸°ë„ 파기를 ì‹œìž‘í•˜ê² ì§€ìš”."
+í•˜ê³ ë‚´ì™¸ê°€ 다 웃소.
+"그래 순ì‹ê°„ì—……."
+í•˜ê³ R는 ì´ì•¼ê¸°ë¥¼ 계ì†í•˜ì˜¤.
+"순ì‹ê°„ì— ë‘˜ì´ ë“œëŸ¬ëˆ„ìš¸ 만한 구ë©ì´ë¥¼ 아마 ë‘ ìž ê¹Šì´ë‚˜ ë˜ê²Œ, 네모나게 파 ë†“ê³ ëŠ” ë‚´ê°€ 들어가 누워 ë³´ê³ ê·¸ëŸ¬ê³ ëŠ” ë˜ íŒŒê³ í•˜ì—¬ 아주 편안한 구ë©ì´ë¥¼ íŒŒê³ ë‚˜ì„œëŠ” 나는 아주 세ìƒì„ 하ì§í• 셈으로 ì‚¬ë°©ì„ ë‘˜ëŸ¬ë³´ ê³ ì‚¬ë°©ì´ëž˜ì•¼ 컴컴한 ì–´ë‘ ë°–ì— ì—†ì§€ë§Œ ì‚¬ë°©ì„ ë‘˜ëŸ¬ë³´ê³ , ì´ë¥¼í…Œë©´ 세ìƒê³¼ ìž‘ë³„ì„ í•˜ê³ ë“œëŸ¬ëˆ„ì› ì§€ìš”. 지금 ì´ë ‡ê²Œ íšŒê³ ë‹´ì„ í• ë•Œì—는 ìš°ìŠµê¸°ë„ í•˜ì§€ë§ˆëŠ” ê·¸ 때ì—는 참으로 종êµì ì´ë¼ í• ë§Œí•œ 엄숙ì´ì—ˆì†Œ. 그때 우리 ë‘˜ì˜ ì²˜ì§€ëŠ” ì•žë„ ì ˆë²½, ë’¤ë„ ì ˆë²½ì´ì–´ì„œ 죽는 ê¸¸ë°–ì— ì—†ì—ˆì§€ìš”. ë˜ ê·¸ë¿ ì•„ë‹ˆë¼ ì¸ìƒì˜ 가장 깨ë—í•˜ê³ ê°€ìž¥ ì‚¬ëž‘ì˜ ë§‘ì€ ì •ì´ íƒ€ê³ ê°€ìž¥ 기ì˜ê³ ë„ ìŠ¬í”„ê³ ë„ ì´ë¥¼í…Œë©´ ëª¨ë“ ê°ì •ì´ ì ˆì •ì— ë‹¬í•˜ê³ , 그러한 ìˆœê°„ì— ëª©ìˆ¨ì„ ëŠì–´ 버리는 ê²ƒì´ ê°€ìž¥ ì¢‹ì€ ì¼ì´ìš”, 가장 마땅한 ì¼ê°™ì´ ìƒê°í•˜ì˜€ì§€ìš”. ê´‘ì•¼ì— ì•„ë¦„ë‹¤ìš´ í™©í˜¼ì´ ìˆœê°„ì— ìŠ¤ëŸ¬ì§€ëŠ” 모양으로 우리 ë‘ ìƒëª…ì˜ ì•„ë¦„ë‹¤ì›€ë„ ìˆœê°„ì— ìŠ¤ëŸ¬ì§€ìžëŠ” 우리는 ì² í•™ìžë„ 시ì¸ë„ 아니지마는 ìš°ë¦¬ë“¤ì˜ í™˜ê²½ì´ ìš°ë¦¬ 둘ì—게 그러한 ìƒê°ì„ 넣어 준 것ì´ì§€ìš”.
+그래서 ë‚´ê°€ 가만히 드러누워 있는 ê²ƒì„ ì €ì´ê°€ 물ë„러미 ë³´ê³ ìžˆë”니 ìžê¸°ë„ ë‚´ ê³ì— 들어와 ëˆ•ê² ì§€ìš”. 그런 ë’¤ì—는 í™©í˜¼ì— ë‚¨ì€ ë¹›ë„ ë‹¤ ìŠ¤ëŸ¬ì§€ê³ ì•„ì£¼ 캄캄한 ì•”í‘ ì„¸ê³„ê°€ ë˜ì–´ ë²„ë ¸ì§€ìš”. í•˜ëŠ˜ì— ì–´ë–»ê²Œ ê·¸ë ‡ê²Œ ë³„ì´ ë§Žì€ì§€. 가만히 í•˜ëŠ˜ì„ ë°”ë¼ë³´ë…¸ë¼ë©´ ì°¸ ë³„ì´ ë§Žì•„ìš”. 우주란 ì°¸ 커요. ê·¸ëŸ°ë° ì´ ëì—†ì´ í° ìš°ì£¼ì— í•œì—†ì´ ë§Žì€ ë³„ë“¤ì´ ë‹¤ ì œìžë¦¬ë¥¼ ì§€í‚¤ê³ ì œ ê¸¸ì„ ì§€ì¼œì„œ 서로 ë¶€ë”ªì§€ë„ ì•„ë‹ˆí•˜ê³ ëì—†ì´ ê¸´ ì‹œê°„ì— ì§ˆì„œë¥¼ ìœ ì§€í•˜ê³ ìžˆëŠ” ê²ƒì„ ë³´ë©´ 우주ì—는 ì–´ë–¤ 주재하는 뜻, ì„리하는 ëœ»ì´ ìžˆë‹¤ 하는 ìƒê°ì´ ë‚˜ê² ì§€ìš”. ë‚˜ë„ ì˜ˆìˆ˜êµì¸ì˜ ê°€ì •ì—서 ìžë¼ë‚¬ì§€ë§ˆëŠ” ì´ ë•Œì²˜ëŸ¼ 하나님ì´ë¼ í• ê¹Œ ì´ë¦„ì€ ë¬´ì—‡ì´ë¼ê³ í•˜ë“ ì§€ ê°„ì— ìš°ì£¼ì˜ ì„리ìžì˜ 존재를 ê°•ë ¬í•˜ê²Œ ì˜ì‹í•œ ì¼ì€ 없었지요.
+ê·¸ë ‡ì§€ë§Œ `ì‚¬ëžŒì˜ ë§ˆìŒì— 비기면 ì €ê¹Œì§“ ë³„ë“¤ì´ ë‹¤ 무엇ì´ì˜¤?' í•˜ê³ ê·¸ë•Œ 겨우 ì—´ì—¬ëŸ ì‚´ë°–ì— ì•ˆ ëœ ì´ì´ê°€ ë‚´ ê·€ì— ìž…ì„ ëŒ€ê³ ë§í• 때ì—는 ë‚˜ë„ ì°¸ìœ¼ë¡œ 놀ëžìŠµë‹ˆë‹¤. 나ì´ëŠ” 나보다 오륙 ë…„ ìƒê´€ë°–ì— ì•ˆ ë˜ì§€ë§ˆëŠ” ì´ì‹ 세 ë‚´ì™¸ì— ì˜¤ë¥™ ë…„ ìƒê´€ì´ ì ì€ ê²ƒì¸ê°€ìš”? 게다가 나는 ì„ ìƒì´ìš” ìžê¸°ëŠ” í•™ìƒì´ë‹ˆê¹Œ ì–´ë¦°ì• ë¡œë§Œ ì•Œì•˜ë˜ ê²ƒì´ ê·¸ëŸ° ë§ì„ 하니 놀ëžì§€ 않아요? 어째서 ì‚¬ëžŒì˜ ë§ˆìŒì´ í•˜ëŠ˜ë³´ë‹¤ë„ ë” ì´ìƒí• 까 í•˜ê³ ë‚´ê°€ 물으니까, ê·¸ ëŒ€ë‹µì´ `나는 무엇ì´ë¼ê³ ì„¤ëª…í• ìˆ˜ê°€ 없지마는 ë‚´ ë§ˆìŒ ì†ì— ì¼ì–´ë‚˜ëŠ” ê²ƒì´ í•˜ëŠ˜ì´ë‚˜ ë•…ì— ì¼ì–´ë‚˜ëŠ” ëª¨ë“ ê²ƒë³´ë‹¤ë„ ë” ì•„ë¦„ë‹µê³ ë” ì•Œ 수 ì—†ê³ ë” ëœ¨ê²ê³ 그런 것 같아요.' ê·¸ëŸ¬ê² ì§€ìš”. ìƒëª…ì´ëž€ ëª¨ë“ ì•„ë¦„ë‹¤ìš´ 것 ì¤‘ì— ê°€ìž¥ 아름다운 것ì´ë¼ëŠ” ê²ƒì„ ë‚˜ëŠ” 깨달았어요. ê·¸ ë§ì—, `ê·¸ë ‡ë‹¤ 하면 ì´ ì•„ë¦„ë‹µê³ ì‹ ë¹„í•œ ìƒëª…ì„ ë‚´ëŠ” 우주는 ë” ì•„ë¦„ë‹¤ìš´ ê²ƒì´ ì•„ë‹ˆì˜¤?' í•˜ê³ ë‚´ê°€ 반문하니까, ë‹¹ì‹ (ë¶€ì¸ì„ 향하여) ë§ì´, `ì „ ëª¨ë¥´ê² ì–´ìš”, 어쨌으나 ì „ 행복합니다. ì €ëŠ” ì´ í–‰ë³µì„ ê¹¨ëœ¨ë¦¬ê³ ì‹¶ì§€ 않습니다. ë†“ì³ ë²„ë¦¬ê³ ì‹¶ì§€ 않습니다. ì´ í–‰ë³µ ì„ ìƒë‹˜ ê³ì— 있는 ì´ í–‰ë³µì„ ê½‰ ì•ˆê³ ì£½ê³ ì‹¶ì–´ìš”.' 그러지 않았소?"
+"누가 그랬어요? ì•„ì´ ë‚œ 다 ìžŠì–´ë²„ë ¸ì–´ìš”."
+í•˜ê³ ë¶€ì¸ì€ 차를 따르오. R는 ì¸ì œëŠ” 하하하 하는 웃ìŒì¡°ì°¨ ìžŠì–´ë²„ë¦¬ê³ , ë¶€ì¸ì—게 ë†ë‹´ì„ ë¶™ì´ëŠ” 것조차 ìžŠì–´ë²„ë¦¬ê³ , 그야ë§ë¡œ 종êµì 엄숙 그대로ë§ì„ ì´ì–´,
+"`ìž ì €ëŠ” ì•½ì„ ë¨¹ì–´ìš”.' í•˜ê³ ì†ì„ 입으로 ê°€ì ¸ê°€ëŠ” ë™ìž‘ì´ ê°í–‰ë˜ê² 지요. 약ì´ëž€ ê²ƒì€ í•˜ì–¼ë¹ˆì—서 준비한 아편ì´ì§€ìš”. 하얼빈서 치타까지 가는 ë™ì•ˆì— í¥ì•ˆë ¹ì´ë‚˜ ì–´ëŠ ì‚¼ë¦¼ì§€ëŒ€ë‚˜ 어디서나 ì£½ì„ ìžë¦¬ë¥¼ ì°¾ìžê³ 준비한 것ì´ë‹ˆê¹Œ. 나는 ìž… 근처로 가는 ê·¸ì˜ ì†ì„ 붙들었어요. 붙들면서 나는 `ìž ê¹ë§Œ 기다리오. 오늘 ë°¤ 안으로 ê·¸ ì•½ì„ ë¨¹ìœ¼ë©´ ê³ ë§Œì´ ì•„ë‹ˆì˜¤? ì´ í–‰ë³µëœ ìˆœê°„ì„ ìž ê¹ì´ë¼ë„ 늘립시다. 달 올ë¼ì˜¬ 때까지만.' 나는 ì´ë ‡ê²Œ ë§í–ˆì§€ìš”. `ì„ ìƒë‹˜ë„ 행복ë˜ì…”ìš”? ì„ ìƒë‹˜ì€ 불행ì´ì‹œì§€. ì € ë•Œë¬¸ì— ë¶ˆí–‰ì´ì‹œì§€. ì €ë§Œ ì´ê³³ì— 묻어 주시구는 ì„ ìƒë‹˜ì€ 세ìƒì— ëŒì•„ê°€ 사셔요, 오래오래 사셔요, ì¼ ë§Žì´ í•˜ê³ ì‚¬ì…”ìš”.' í•˜ê³ ìš¸ì§€ ì•Šê² ì–´ìš”. 나는 ê·¸ ë•Œì— ë‚´ ì•„ë‚´ê°€ í•˜ë˜ ë§ì„ 한 ë§ˆë””ë„ ìžŠì§€ 아니합니다. ê·¸ ë§ì„ ë“£ë˜ ë•Œì˜ ë‚´ ì¸ìƒì€ 아마 ì¼ìƒ ë‘ê³ ìžŠížˆì§€ ì•„ë‹ˆí•˜ê² ì§€ìš”.
+나는 ìžë°±í•©ë‹ˆë‹¤. ê·¸ ìˆœê°„ì— ë‚˜ëŠ” 처ìŒìœ¼ë¡œ ë‚´ 아내를 ì•ˆê³ í‚¤ìŠ¤ë¥¼ 하였지요. ë‚´ ì†ì— ëˆŒë¦¬ê³ ëˆŒë¦¬ê³ ìŒ“ì´ê³ í•˜ì˜€ë˜ ì—´ì •ì´ ê·¸ë§Œ ì¼ì‹œì— íë°œë˜ì—ˆë˜ 것ì´ì˜¤. ì•„ì•„ ì´ê²ƒì´ ìµœì´ˆì˜ ê²ƒì´ìš”, ë™ì‹œì— ìµœí›„ì˜ ê²ƒì´ë¡œêµ¬ë‚˜ í• ë•Œì— ë‚´ 눈ì—서는 ë“는 듯한 ëˆˆë¬¼ì´ í˜ë €ì†Œì´ë‹¤. ë‘ ì‚¬ëžŒì˜ ì‹¬ìž¥ì´ ë›°ëŠ” 소리, ë‘ ì‚¬ëžŒì˜ í’€ë¬´ 불길 ê°™ì€ ìˆ¨ì†Œë¦¬.
+ì´ìœ½ê³ ë‹¬ì´ ë– ì˜¬ë¼ ì™”ìŠµë‹ˆë‹¤. ê°€ì´ì—†ëŠ” 벌íŒì´ë‹ˆê¹Œ ë‹¬ì´ ëœ¨ë‹ˆê¹Œ ê°‘ìžê¸° 천지가 í™˜í•´ì§€ê³ ìš°ë¦¬ ë‘˜ì´ ì†ìœ¼ë¡œ 파서 쌓아 ë†“ì€ í™ë¬´ë”기가 ì´ ì‚° 없는 세ìƒì— ì‚°ì´ë‚˜ ë˜ëŠ” ê²ƒê°™ì´ ì¡°ê·¸ë§ˆí•œ ê²€ì€ ê·¸ë¦¼ìžë¥¼ ì§€ê³ ìžˆê² ì§€ìš”. `ìž ìš°ë¦¬ ë‹¬ë¹›ì„ ë ê³ ì¢€ ëŒì•„다ë‹ê¹Œ.' í•˜ê³ ë‚˜ëŠ” 아내를 안아 ì¼ìœ¼ì¼°ì§€ìš”. ë‚´ íŒ”ì— ì•ˆê²¨ì„œ ê³ ê°œë¥¼ 뒤로 ì –ížŒ ë‚´ ì•„ë‚´ì˜ ì–¼êµ´ì´ ë‹¬ë¹›ì— ë¹„ì¹œ ì–‘ì„ ë‚˜ëŠ” 잘 기억합니다. ì‹¤ì‹ í•œ 듯한, 만족한 듯한, ê·¸ë¦¬ê³ ë„ ì ˆë§í•œ 듯한 ê·¸ í‘œì •ì„ ë¬´ì—‡ìœ¼ë¡œ 그릴지 모릅니다. ê·¸ë¦¼ë„ ê·¸ë¦´ 줄 ëª¨ë¥´ê³ ì¡°ê°ë„ í• ì¤„ ëª¨ë¥´ê³ ê¸€ë„ ì“¸ 줄 모르는 ë‚´ê°€ ê·¸ê²ƒì„ ì–´ë–»ê²Œ 그립니까. ê·¸ì € 가슴 ì†ì— í’ˆê³ ì´ë ‡ê²Œ ì˜¤ëŠ˜ì˜ ë‚´ 아내를 ë°”ë¼ë³¼ ë¿ì´ì§€ìš”.
+나는 ë‚´ 아내를 íŒ”ì— ê±¸ê³ ë„¤, ê±¸ì—ˆë‹¤ê³ í•˜ëŠ” ê²ƒì´ ê°€ìž¥ 합당하지 ìš” ì´ë ‡ê²Œ 팔ì—다 ê±¸ê³ ë‹¬ë¹›ì„ ë°›ì€ í™©ëŸ‰í•œ 벌íŒ, 아무리 í•˜ì—¬ë„ í™˜í•˜ê²Œ ë°ì•„지지는 아니하는 벌íŒì„ 헤매었습니다. ì´ë”°ê¸ˆ ë‚´ ì•„ë‚´ê°€, `어서 ì£½ê³ ì‹¶ì–´ìš”, ì „ ì£½ê³ ë§Œ ì‹¶ì–´ìš”.' 하는 ë§ì—는 ëŒ€ë‹µë„ ì•„ë‹ˆ í•˜ê³ . ì£½ê³ ì‹¶ë‹¤ëŠ” ê·¸ ë§ì€ ë¬¼ë¡ ì§„ì •ì¼ ê²ƒì´ì§€ìš”. 아무리 ë§‘ì€ ì¼ê¸°ë¼ 하ë”ë¼ë„ 오후가 ë˜ë©´ íë ¤ì§€ëŠ” 법ì´ë‹ˆê¹Œ 오래 살아가는 ë™ì•ˆì— 늘 한 모양으로 ì´ ìˆœê°„ê°™ì´ ê¹¨ë—í•˜ê³ ëœ¨ê±°ìš´ 기분으로 ê°ˆ 수는 없지 않아요? 불쾌한 ì¼ë„ ìƒê¸°ê³ , 보기 í‰í•œ ì¼ë„ ìƒê¸¸ëŠ”ì§€ ëª¨ë¥´ê±°ë“ . 그러니까 ì´ ì™„ì „í•œ 깨ë—ê³¼ ì™„ì „í•œ 사랑과 ì™„ì „í•œ 행복 ì†ì— 죽어 버리ìžëŠ” ëœ»ì„ ë‚˜ëŠ” 잘 알지요. ë”구나 ìš°ë¦¬ë“¤ì´ ì‚´ì•„ 남는대야 ì•žê¸¸ì´ ê¸°êµ¬í•˜ì§€ í‰íƒ„í• ë¦¬ëŠ” 없지 아니해요? 그래서 나는 `죽지, 우리 ì´ ë‹¬ë°¤ì— ì‹¤ì»· ëŒì•„다니다가, ë” ëŒì•„다니기가 ì‹«ê±°ë“ ê·¸ 구ë©ì— ëŒì•„가서 ì•½ì„ ë¨¹ì시다.' ì´ë ‡ê²Œ ë§í•˜ê³ 우리 ë‘˜ì€ í—¤ë§¸ì§€ìš”. ë‚®ì— ë³´ë©´ 어디까지나 í‰í‰í•œ 벌íŒì¸ 것만 같지마는 ë‹¬ë°¤ì— ë³´ë©´ ì´ ì‚¬ë§‰ì—ë„ ì•„ì§ ì±„ 스러지지 아니한 ì‚°ì˜ í˜•ì ì´ ë‚¨ì•„ 있어서 êµ°ë°êµ°ë° ê±°ë‡ê±°ë‡í•œ 그림ìžê°€ ìžˆê² ì§€ìš”. ê·¸ ê·¸ë¦¼ìž ì†ì—는 걸어 들어가면 ì–´ë–¤ ë°ëŠ” 우리 í—ˆë¦¬ë§Œí¼ ê·¸ë¦¼ìžì— ê°€ë¦¬ìš°ê³ ì–´ë–¤ ë°ëŠ” 우리 ë‘˜ì„ ë‹¤ 가리워 버리는 ë°ë„ 있단 ë§ì•¼ìš”. 죽ìŒì˜ 그림ìžë¼ëŠ” ìƒê°ì´ 나면 ê·¸ëž˜ë„ ëª¸ì— ì†Œë¦„ì´ ë¼ì³ìš”.
+차차 ë‹¬ì´ ë†’ì•„ì§€ê³ ì¶”ìœ„ê°€ ì‹¬í•´ì ¸ì„œ ë°”ëžŒê²°ì´ ì§€ë‚˜ê°ˆ 때ì—는 눈ì—서 ëˆˆë¬¼ì´ ë‚ ì§€ê²½ì´ì§€ìš”. ì›ì²´ 대기 ì¤‘ì— ìˆ˜ë¶„ì´ ì 으니까 ì„œë¦¬ë„ ë§Žì§€ 않지마는, ê·¸ëž˜ë„ ëŒ€ê¸° ì¤‘ì— ìžˆëŠ” ìˆ˜ë¶„ì€ ë‹¤ 얼어 ë²„ë ¤ì„œ ì–¼ìŒê°€ë£¨ê°€ ë˜ì—ˆëŠ” 게지요. 공중ì—는 ë°˜ì§ë°˜ì§í•˜ëŠ” ìˆ˜ì •ê°€ë£¨ ê°™ì€ ê²ƒì´ ë³´ìž…ë‹ˆë‹¤. ë‚®ì—는 ë•€ì´ íë¥´ë¦¬ë§Œí¼ ë¥ë˜ ì‚¬ë§‰ë„ ë°¤ì´ ë˜ë©´ ì´ë ‡ê²Œ ê¸°ì˜¨ì´ ë‚´ë ¤ê°€ì§€ìš”. ì¶¥ë‹¤ê³ ìƒê°ì€ í•˜ë©´ì„œë„ ì¶¥ë‹¤ëŠ” ë§ì€ 아니 í•˜ê³ ìš°ë¦¬ëŠ” ì–´ë–¤ 때ì—는 ë‹¬ì„ ë”°ë¼ì„œ, ì–´ë–¤ 때ì—는 ë‹¬ì„ ë“±ì§€ê³ , ì–´ë–¤ 때ì—는 í˜¸ìˆ˜ì— ë¹„ì¹œ ë‹¬ì„ êµ½ì–´ë³´ê³ , ì´ ëª¨ì–‘ìœ¼ë¡œ í•œì—†ì´ ë§ë„ ì—†ì´ ëŒì•„다녔지요. ì´ ì„¸ìƒ ìƒëª…ì˜ ë§ˆì§€ë§‰ ìˆœê°„ì„ íž˜ê» ì˜ì‹í•˜ë ¤ëŠ” 듯ì´.
+마침내 `나는 ë” ëª» 걸어요.' í•˜ê³ ì´ì´ê°€ ë‚´ ì–´ê¹¨ì— ë§¤ë‹¬ë ¤ ë²„ë¦¬ê³ ë§ì•˜ì§€ìš”."
+í•˜ê³ Rê°€ ë¶€ì¸ì„ ëŒì•„보니 ë¶€ì¸ì€ íŽ¸ë¬¼í•˜ë˜ ì†ì„ ì‰¬ê³ ,
+"다리가 아픈 ì¤„ì€ ëª¨ë¥´ê² ëŠ”ë° ë‹¤ë¦¬ê°€ ì´ë¦¬ 뉘구 ì €ë¦¬ 뉘구 해서 걸ìŒì„ ê±¸ì„ ìˆ˜ê°€ 없었어요. 춥기는 하구."
+í•˜ê³ ì†Œë¦¬ë¥¼ 내어서 웃소.
+"그럴 ë§Œë„ í•˜ì§€."
+í•˜ê³ R는 긴장한 í‘œì •ì„ ì•½ê°„ í’€ê³ ì•‰ì€ ìžì„¸ë¥¼ ìž ê¹ ê³ ì¹˜ë©°,
+"ê·¸ í›„ì— ê·¸ ë‚ ë°¤ ëŒì•„다닌 ê³³ì„ ë”듬어 보니까, ìžì„¸ížˆëŠ” 알 수 없지마는 ì‚¼ì‹ ë¦¬ëŠ” ë” ë˜ëŠ” 것 ê°™ê±°ë“ . 다리가 아프지 ì•„ë‹ˆí• ë¦¬ê°€ 있나."
+í•˜ê³ ì°¨ë¥¼ 한 모금 ë§ˆì‹œê³ ë‚˜ì„œ ë§ì„ 계ì†í•˜ì˜¤.
+"그래서 나는 ë‚´ 외투를 벗어서, ì´ì´(ë¶€ì¸)를 싸서 ì–´ë¦°ì• ì•ˆë“¯ì´ ì•ˆê³ ê±¸ì—ˆì§€ìš”. 외투로 쌌으니 ìžê¸°ë„ 춥지 않구, 나는 ë˜ ë¬´ê±°ìš´ ì§ì„ 안았으니 ë•€ì´ ë‚ ì§€ê²½ì´êµ¬, ê·¸ë¿ ì•„ë‹ˆë¼ ë‚´ê°€ ì œê²Œ 주는 ìµœí›„ì˜ ì„œë¹„ìŠ¤ë¼ í•˜ë‹ˆ 기ì˜ê³ , ë§í•˜ìžë©´ ì¼ê±° 삼ë“ì´ì§€ìš”. 하하하하. 지난 ì¼ì´ë‹ˆ 웃지마는 ê·¸ 때 ì‚¬ì •ì„ ìƒê°í•´ 보세요, ì–´ë– í–ˆê² ë‚˜."
+í•˜ê³ R는 약간 처참한 ë¹›ì„ ë 면서,
+"그러니 ê·¸ 구ë©ì´ë¥¼ ì–´ë”” ì°¾ì„ ìˆ˜ê°€ 있나. 얼마를 찾아 ëŒì•„다니다가 아무 ë°ì„œë‚˜ ì£½ì„ ìƒê°ë„ í•´ 보았지마는 몸뚱ì´ë¥¼ 그냥 벌íŒì— ë‚´ë†“ê³ ì£½ê³ ì‹¶ì§€ëŠ” ì•„ë‹ˆí•˜ê³ ë˜ ê·¸ 구ë©ì´ê°€ 우리 ë‘ ì‚¬ëžŒì—게 특별한 ì˜ë¯¸ê°€ 있는 것 같아서 기어코 ê·¸ê²ƒì„ ì°¾ì•„ ë‚´ê³ ì•¼ ë§ì•˜ì§€ìš”. ê·¸ 때는 ë²Œì¨ ìƒˆë²½ì´ ê°€ê¹Œì› ë˜ ëª¨ì–‘ì´ì˜¤. ì—´ 시나 넘어서 뜬 í•˜í˜„ë‹¬ì´ ë‚®ì´ ê¸°ìš¸ì—ˆìœ¼ë‹ˆ ê·¸ë ‡ì§€ ì•Šê² ì–´ìš”. ê·¸ 구ë©ì´ì— 와서 우리는 한 번 ë” í•˜ëŠ˜ê³¼ 달과 별과, ê·¸ë¦¬ê³ ë§ˆìŒ ì†ì— ë– ì˜¤ë¥¸ 사람들과 하ì§í•˜ê³ 약 ë¨¹ì„ ì¤€ë¹„ë¥¼ 했지요.
+ì•½ì„ ê²€ì€ ê³ ì•½ê³¼ ê°™ì€ ì•„íŽ¸ì„ ë§›ì´ ì“°ë‹¤ëŠ” ì•„íŽ¸ì„ ë¬¼ë„ ì—†ì´ ë¨¹ìœ¼ë ¤ 들었지요.
+우리 ë‘˜ì€ ì•„ê¹Œ 모양으로 가지런히 누워서 í•˜ëŠ˜ì„ ë°”ë¼ë³´ì•˜ëŠ”ë° ë‹¬ì´ ë°ìœ¼ë‹ˆê¹Œ ë³´ì´ë˜ 별들 ì¤‘ì— ìˆ¨ì€ ë³„ì´ ë§Žê³ ë˜ ë³„ë“¤ì˜ ìœ„ì¹˜ 우리ì—게 낯ìµì€ ë¶ë‘ì¹ ì„± ìžë¦¬ë„ ë³€í–ˆì„ ê²ƒ 아니야요. ì´ìƒí•œ ìƒê°ì´ 나요. 우리가 벌íŒìœ¼ë¡œ 헤매는 ë™ì•ˆì— 천지가 ëª¨ë‘ ë³€í•œ 것 같아요. 사실 변하였지요. ê·¸ 변한 ê²ƒì´ ìš°ìŠ¤ì›Œì„œ 나는 껄껄 웃었지요. 워낙 ë‚´ê°€ 웃ìŒì´ 좀 헤프지만 ì´ ë•Œì²˜ëŸ¼ 헤프게 실컷 웃어 본 ì¼ì€ 없습니다.
+왜 웃ëŠëƒê³ ì•„ë‚´ê°€ 좀 ì„±ì„ ë‚¸ ë“¯ì´ ë¬»ê¸°ë¡œ, `천지와 ì¸ìƒì´ 변하는 ê²ƒì´ ìš°ìŠ¤ì›Œì„œ 웃었소.' 그랬지요. 그랬ë”니, `천지와 ì¸ìƒì€ ë³€í• ëŠ”ì§€ 몰ë¼ë„ ë‚´ 마ìŒì€ 안 변해요!' í•˜ê³ ì†Œë¦¬ë¥¼ ì§€ë¥´ê² ì§€ìš”. í½ ë¶„ê°œí–ˆë˜ ëª¨ì–‘ì´ì•¼."
+í•˜ê³ R는 ê·¸ 아내를 보오.
+"그럼 ë¶„ê°œ 안 í•´ìš”? ë‚¨ì€ ì£½ì„ ê²°ì‹¬ì„ í•˜ê³ ë°œë°œ 떨구 ìžˆëŠ”ë° ê³ì—서 ê»„ê»„ê±°ë¦¬ê³ ì›ƒìœ¼ë‹ˆ, 어째 분하지가 않아요. 나는 분해서 ë‹¬ì•„ë‚˜ë ¤ê³ í–ˆì–´ìš”."
+í•˜ê³ ë¶€ì¸ì€ ì•„ì§ë„ ë¶„í•¨ì´ ë‚¨ì€ ê²ƒê°™ì´ ë§í•˜ì˜¤.
+"그래 달아나지 않았소?"
+í•˜ê³ R는 ë¶€ì¸ì´ 벌떡 ì¼ì–´ë‚˜ì„œ ë¹„í‹€ê±°ë¦¬ê³ ë‹¬ì•„ë‚˜ëŠ” í‰ë‚´ë¥¼ 팔과 다리로 ë‚´ê³ ë‚˜ì„œ,
+"ì´ëž˜ì„œ 죽는 ì‹œê°„ì´ ì§€ì²´ê°€ ë˜ì—ˆì§€ìš”. 그래서 ë‚´ê°€ ë¹Œê³ ë‹¬ëž˜ê³ í•´ì„œ 가까스로 ì•ˆì •ì„ ì‹œí‚¤ê³ ë‚˜ë‹ˆ ì†ì— ì¥ì—ˆë˜ ì•„íŽ¸ì´ ë•€ì— í‘¹ ì –ì—ˆê² ì§€ìš”. ë‚´ê°€ ì›ƒì€ ê²ƒì€ ì£½ê¸° ì „ 한 번 천지와 ì¸ìƒì„ 웃어 버린 것ì¸ë° ê·¸ë ‡ê²Œ 야단ì´ë‹ˆâ€¦â€¦ 하하하하."
+R는 ì‹ì€ 차를 한 모금 ë” ë§ˆì‹œë©°,
+"ì°¸ ëª©ë„ ë§ˆë¥´ê¸°ë„ í•˜ë”니. ìž…ì—는 침 한 방울 ì—†ê³ . 그러나 ëª»ë¬¼ì„ ë¨¹ì„ ìƒê°ë„ ì—†ê³ . 나중ì—는 ë§ì„ í•˜ë ¤ê³ í•´ë„ í˜€ê°€ 안 ëŒì•„ê°€ê² ì§€ìš”.
+ì´ëŸ¬ëŠ” ë™ì•ˆì— ë‹¬ë¹›ì´ í¬ë¯¸í•´ì§€ê¸¸ëž˜ 웬ì¼ì¸ê°€ í•˜ê³ ê³ ê°œë¥¼ ë²ˆì© ë“¤ì—ˆë”니 í•´ê°€ ë– ì˜¤ë¦…ë‹ˆë‹¤ê·¸ë ¤. 어떻게 ë¶‰ê³ ë‘¥ê¸€ê³ ì”©ì”©í•œì§€. `ì € í•´ 보오.' í•˜ê³ ë‚˜ëŠ” 기계ì 으로 벌떡 ì¼ì–´ë‚˜ì„œ 구ë©ì´ì—서 뛰어나왔지요."
+í•˜ê³ ë¹™ê·¸ë ˆ 웃소. Rì˜ ë¹™ê·¸ë ˆ 웃는 ì–‘ì´ ì°¸ 좋았소.
+"ë‚´ê°€ 뛰어나오는 ê²ƒì„ ë³´ê³ ì´ì´ë„ 뿌시시 ì¼ì–´ë‚¬ì§€ìš”. ê·¸ í•´! ê·¸ í•´ì˜ ìƒˆ ë¹›ì„ ë°›ëŠ” 하늘과 ë•…ì˜ ë¹›! 나는 ê·¸ê²ƒì„ í˜•ìš©í• ë§ì„ 가지지 못합니다. 다만 íž˜ê» ì†Œë¦¬ì¹˜ê³ ì‹¶ê³ ê¸°ìš´ê» ë‹¬ìŒë°•ì§ˆì¹˜ê³ ì‹¶ì€ ìƒê°ì´ ë‚ ë¿ì´ì–´ìš”.
+`우리 삽시다, 죽지 ë§ê³ 삽시다, 살아서 새 세ìƒì„ 하나 만들어 봅시다.' ì´ë ‡ê²Œ ë§í•˜ì˜€ì§€ìš”. 하니까 ì´ì´ê°€ 처ìŒì—는 ê¹œì§ ë†€ë¼ëŠ” 것 같아요. 그러나 마침내 ì•„ë‚´ë„ ì£½ì„ ëœ»ì„ ë³€í•˜ì˜€ì§€ìš”. 그래서 남 ì„ ìƒì„ ì²í•˜ì—¬ë‹¤ê°€ ê·¸ ë§ì”€ì„ ì—¬ìˆì—ˆë”니 남 ì„ ìƒê»˜ì„œ ê³ ê°œë¥¼ ë„ë•ë„ë•í•˜ì‹œê³ ìš°ë¦¬ ë‘˜ì˜ í˜¼ì¸ ì£¼ë¡€ë¥¼ 하셨지요. ê·¸ 후 ì‹ì—¬ ë…„ì— ìš°ë¦¬ëŠ” ë° ê°ˆê³ ì•„ì´ ê¸°ë¥´ê³ ì´ëŸ° ìƒí™œì„ í•˜ê³ ìžˆëŠ”ë° ì–¸ì œë‚˜ 여기 새 ë¯¼ì¡±ì´ ìƒê¸°ê³ 누가 새 ë‹¨êµ°ì´ ë 는지요. 하하하하, 아하하하. í”¼ê³¤í•˜ì‹œê² ìŠµë‹ˆë‹¤. ì´ì•¼ê¸°ê°€ 너무 길어서."
+í•˜ê³ R는 ë§ì„ ëŠì†Œ.
+나는 R부처가 만류하는 ê²ƒë„ ë‹¤ ë¿Œë¦¬ì¹˜ê³ ì—¬ê´€ìœ¼ë¡œ ëŒì•„왔소. R와 함께 달빛 ì†, ê°œ 짖는 소리 ì†ì„ 지나서 ì•„ë¼ì‚¬ ì‚¬ëžŒì˜ ì¡°ê·¸ë§ˆí•œ 여관으로 ëŒì•„왔소. 여관 주ì¸ë„ R를 아는 모양ì´ì–´ì„œ 반갑게 ì¸ì‚¬í•˜ê³ ë˜ ë‚´ê²Œ 대한 ë¶€íƒë„ 하는 모양ì¸ê°€ 보오.
+R는 ë‚´ ë°©ì— ì˜¬ë¼ì™€ì„œ ë‚´ì¼ í•˜ë£¨ ì§€ë‚ ì¼ë„ ì´ì•¼ê¸°í•˜ê³ ë˜ ë‚¨ ì„ ìƒê³¼ ì •ìž„ì—게 관한 ì´ì•¼ê¸°ë„ 하였으나, 나는 그가 무슨 ì´ì•¼ê¸°ë¥¼ 하는지 잘 ë“¤ì„ ë§Œí•œ 마ìŒì˜ ì—¬ìœ ë„ ì—†ì–´ì„œ ë§ˆìŒ ì—†ëŠ” ëŒ€ë‹µì„ í• ë¿ì´ì—ˆì†Œ.
+Rê°€ ëŒì•„ê°„ ë’¤ì— ë‚˜ëŠ” ì˜·ë„ ë²—ì§€ ì•„ë‹ˆí•˜ê³ ì¹¨ëŒ€ì— ë“œëŸ¬ëˆ„ì› ì†Œ. 페치카를 때기는 한 모양ì´ë‚˜ ë°©ì´ ì¨ëŠ˜í•˜ê¸° 그지없소.
+`ê·¸ ë‘ ë³„ 무ë¤ì´ ì •ë§ R와 ê·¸ 여학ìƒê³¼ ë‘ ì‚¬ëžŒì´ ì˜ì›ížˆ 달치 ëª»í• ê¿ˆì„ ì•ˆì€ ì±„ë¡œ 깨ë—하게 죽어서 묻힌 무ë¤ì´ì—ˆìœ¼ë©´ 얼마나 좋ì„까. ë§Œì¼ ê·¸ë ‡ë‹¤ 하면 ë‚´ì¼ í•œ 번 ë” ê°€ì„œ ë³´í† ë¼ë„ í•˜ê³ ì˜¤ë ¨ë§ˆëŠ”.'
+í•˜ê³ ë‚˜ëŠ” Rë¶€ì²˜ì˜ ìƒí™œì— 대하여 ì¼ì¢…ì˜ ë¶ˆë§Œê³¼ í™˜ë©¸ì„ ëŠê¼ˆì†Œ.
+ê·¸ë¦¬ê³ ë‚´ê°€ ì •ìž„ì„ ì—¬ê¸°ë‚˜ ì‹œë² ë¦¬ì•„ë‚˜ ì–´ë–¤ 곳으로 불러다가 ë§Œì¼ R와 ê°™ì€ í‰ë‚´ë¥¼ 낸다 하면, í•˜ê³ ìƒê°í•´ ë³´ê³ ëŠ” 나는 ì§„ì €ë¦¬ë¥¼ 쳤소. 나는 내머리 ì†ì— 다시 그러한 ìƒê°ì´ 한 ì¡°ê°ì´ë¼ë„ 들어올 ê²ƒì„ ë‘ë ¤ì›Œí•˜ì˜€ì†Œ.
+ê¸‰í–‰ì„ ê¸°ë‹¤ë¦¬ìžë©´ ë˜ ì‚¬í˜ì„ 기다리지 아니하면 아니 ë˜ê¸°ë¡œ 나는 ì´íŠ¿ë‚ ìƒˆë²½ì— ë– ë‚˜ëŠ” 구간차를 íƒ€ê³ Fì—ì„ ë– ë‚˜ ë²„ë ¸ì†Œ. Rì—게는 ê³ ë§™ë‹¤ëŠ” 편지 한 ìž¥ë§Œì„ ì¨ ë†“ê³ . 나는 R를 ë” ë³´ê¸°ë¥¼ ì›ì¹˜ 아니하였소. ê·¸ê²ƒì€ ë°˜ë“œì‹œ R를 죄ì¸ìœ¼ë¡œ 보아서 그런 ê²ƒì€ ì•„ë‹ˆì˜¤ë§ˆëŠ” ê·¸ì € 나는 다시 R를 대면하기를 ì›ì¹˜ 아니한 것ì´ì˜¤.
+나는 차가 Rì˜ ì§‘ ì•žì„ ì§€ë‚ ë•Œì—ë„ Rì˜ ì§‘ì— ëŒ€í•˜ì—¬ì„œëŠ” 외면하였소.
+ì´ ëª¨ì–‘ìœ¼ë¡œ 나는 í¥ì•ˆë ¹ì„ ë„˜ê³ , 하ì¼ë¼ë¥´ì˜ 솔ë°ì„ 지나서 마침내 ì´ ê³³ì— ì˜¨ 것ì´ì˜¤.
+형! 나는 ì¸ì œëŠ” ì´ íŽ¸ì§€ë¥¼ ë내오. ë” ì“¸ ë§ë„ 없거니와 ì¸ì œëŠ” ì´ê²ƒì„ ì“°ê¸°ë„ ì‹«ì¦ì´ 났소.
+ì´ íŽ¸ì§€ë¥¼ 쓰기 ì‹œìž‘í• ë•Œì—는 ë°”ì´ì¹¼ì— ë¬¼ê²°ì´ í‰ìš©í•˜ë”니 ì´ íŽ¸ì§€ë¥¼ ë내는 지금ì—는 ê°€ì˜ ê°€ê¹Œìš´ 물ì—는 ì–¼ìŒì´ 얼었소. ê·¸ë¦¬ê³ ì € 멀리 푸른 ë¬¼ì´ ëŠ ì‹¤ëŠ ì‹¤ 하얗게 눈 ë®ì¸ ì‚° 빛과 어울리게 ë˜ì—ˆì†Œ.
+사í˜ì´ë‚˜ ì´ì–´ì„œ ì˜¤ë˜ ëˆˆì´ ë°¤ìƒˆì— ê°œê³ ì˜¤ëŠ˜ 아침ì—는 ì¹¼ë‚ ê°™ì€ ë°”ëžŒì´ ëˆˆì„ ë‚ ë¦¬ê³ ìžˆì†Œ.
+나는 ì´ ì–¼ìŒ ìœ„ë¡œ 걸어서 ì € 푸른 물 있는 곳까지 ê°€ê³ ì‹¶ì€ ìœ í˜¹ì„ ê¸ˆí• ìˆ˜ 없소. ë”구나 ì´ íŽ¸ì§€ë„ ë‹¤ ì“°ê³ ë‚˜ë‹ˆ, ì¸ì œëŠ” ë‚´ê°€ ì´ ì„¸ìƒì—서 í• ë§ˆì§€ë§‰ ì¼ê¹Œì§€ 다 한 것 같소.
+ë‚´ê°€ ì´ ì•žì— ì–´ë””ë¡œ 가서 ì–´ì°Œ ë 는지는 ë‚˜ë„ ëª¨ë¥´ì§€ë§ˆëŠ” í¬ë¯¸í•œ 소ì›ì„ ë§í•˜ë©´ 눈 ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ì¸ì 없는 삼림 지대로 í•œì • ì—†ì´ í—¤ë§¤ë‹¤ê°€ 기운 진하는 ê³³ì—서 ì´ ëª©ìˆ¨ì„ ë§ˆì¹˜ê³ ì‹¶ì†Œ.
+ìµœì„ êµ°ì€ `ë'ì´ë¼ëŠ” 글ìžë¥¼ ì¼ë‹¤ê°€ 지워 ë²„ë¦¬ê³ ë”´ 종ì´ì—다가 ì´ëŸ° ë§ì„ ì¼ë‹¤
+다 ì“°ê³ ë‚˜ë‹ˆ ì´ëŸ° íŽ¸ì§€ë„ ë‹¤ 부질없는 ì¼ì´ì˜¤. ë‚´ê°€ ì´ëŸ° ë§ì„ 한대야 세ìƒì´ 믿어 줄 ë¦¬ë„ ì—†ì§€ 않소. ë§ì´ëž€ 소용 없는 것ì´ì˜¤. ë‚´ê°€ 아무리 ë‚´ ì•„ë‚´ì—게 ë§ì„ í–ˆì–´ë„ ì•„ë‹ˆ ë¯¿ì—ˆê±°ë“ ë‚´ ì•„ë‚´ë„ ë‚´ ë§ì„ 아니 ë¯¿ì—ˆê±°ë“ í•˜ë¬¼ë©° 세ìƒì´ ë‚´ ë§ì„ ë¯¿ì„ ë¦¬ê°€ 있소. 믿지 ì•„ë‹ˆí• ë¿ ì•„ë‹ˆë¼ ë‚´ ë§ ì¤‘ì—서 ìžê¸°ë„¤ 목ì ì— í•„ìš”í•œ ë¶€ë¶„ë§Œì€ ë¯¿ê³ , ë˜ ìžê¸°ë„¤ 목ì ì— í•„ìš”í•œ ë¶€ë¶„ì€ ë§ˆìŒëŒ€ë¡œ ê³ ì¹˜ê³ ë’¤ì§‘ê³ ë³´íƒœê³ í• ê²ƒì´ë‹ˆê¹Œ, 나는 ì´ íŽ¸ì§€ë¥¼ ì“´ ê²ƒì´ í•œ 무ìµí•˜ê³ 어리ì„ì€ ì¼ì¸ ì¤„ì„ ê¹¨ë‹¬ì•˜ì†Œ.
+형ì´ì•¼ ì´ íŽ¸ì§€ë¥¼ 아니 보기로니 나를 안 ë¯¿ê² ì†Œ? ê·¸ 중ì—는 혹 í˜•ì´ ì§€ê¸ˆê¹Œì§€ ëª¨ë¥´ë˜ ìžë£Œë„ 없지 아니하니, 형만 í˜¼ìž ë³´ì‹œê³ í˜•ë§Œ í˜¼ìž ë‚´ ì‚¬ì •ì„ ì•Œì•„ 주시면 다행ì´ê² 소. 세ìƒì— 한 믿는 친구를 가지는 ê²ƒì´ ì €ë§ˆë‹¤ 하는 ì¼ì´ê² 소?
+나는 ì´ ì“¸ë°ì—†ëŠ” 편지를 몇 번ì´ë‚˜ ë¶ˆì‚´ë¼ ë²„ë¦¬ë ¤ê³ í•˜ì˜€ìœ¼ë‚˜ ê·¸ëž˜ë„ ê±°ê¸°ë„ ì¼ì¢…ì˜ ì• ì°©ì‹¬ì´ ìƒê¸°ê³ ë¯¸ë ¨ì´ ìƒê¸°ëŠ”êµ¬ë ¤. 형 한 ë¶„ì´ë¼ë„ ë³´ì—¬ ë“œë¦¬ê³ ì‹¶ì€ ë§ˆìŒì´ ìƒê¸°ëŠ”êµ¬ë ¤. ë‚´ê°€ Sí˜•ë¬´ì†Œì— ìž…ê°í•´ ìžˆì„ ì ì— í˜•ë¬´ì†Œ ë²½ì— ì£„ìˆ˜ê°€ ì†í†±ìœ¼ë¡œ ì„±ëª…ì„ ìƒˆê¸´ ê²ƒì„ ë³´ì•˜ì†Œ. ë’¤ì— ë¬¼ì—ˆë”니 ê·¸ê²ƒì€ í”히 사형수가 하는 ì§“ì´ë¼ê³ . 사형수가 êµìˆ˜ëŒ€ì— ëŒë ¤ 나가기 바로 ì „ì— í”히 ì†í†±ìœ¼ë¡œ ë‹´ë²¼ë½ì´ë‚˜ ë§ˆë£»ë°”ë‹¥ì— ì œ ì´ë¦„ì„ ìƒˆê¸°ëŠ” ì¼ì´ ìžˆë‹¤ê³ í•˜ëŠ” ë§ì„ 들었소. ë‚´ê°€ 형ì—게 쓰는 ì´ íŽ¸ì§€ë„ ê·¸ 심리와 비슷한 것ì¼ê¹Œìš”?
+형! 나는 보통 사람보다는, ì •ë³´ë‹¤ëŠ” 지로, ìƒì‹ë³´ë‹¤ëŠ” ì´ë¡ 으로, ì´í•´ë³´ë‹¤ëŠ” ì˜ë¦¬ë¡œ ì‚´ì•„ ì™”ë‹¤ê³ ìžì‹ 하오. ì´ë¥¼í…Œë©´ 논리학ì 으로 윤리학ì 으로 살아온 것ì´ë¼ê³ í• ê¹Œ. 나는 엄격한 êµì‚¬ìš”, êµìž¥ì´ì—ˆì†Œ. 내게는 ì˜ì§€ë ¥ê³¼ ì´ì§€ë ¥ë°–ì— ì—†ëŠ” 것 같았소. 그러한 ìƒí™œì„ ìˆ˜ì‹ ë…„ í•´ 오지 아니하였소? 나는 ì´ ì•žì— ëª‡ì‹ ë…„ì„ ë” ì‚´ë”ë¼ë„ ë‚´ ì´ ì„±ê²©ì´ë‚˜ ìƒí™œ 태ë„ì—는 ë³€í•¨ì´ ì—†ìœ¼ë¦¬ë¼ê³ ìžì‹ 하였소. ë¶ˆí˜¹ì§€ë…„ì´ ì§€ë‚¬ìœ¼ë‹ˆ ê·¸ë ‡ê²Œ ìƒê°í•˜ì˜€ì„ ê²ƒì´ ì•„ë‹ˆì˜¤?
+ê·¸ëŸ°ë° í˜•! ì°¸ ì´ìƒí•œ ì¼ì´ 있소. ê·¸ê²ƒì€ ë‚´ê°€ 지금까지 처해 ìžˆë˜ í™˜ê²½ì„벗어나서 호호 탕탕하게 ë„“ì€ ì„¸ê³„ì— ì•Œëª¸ì„ ë‚´ì–´ë˜ì§ì„ 당하니 ë‚´ ë§ˆìŒ ì†ì—는 무서운 여러 가지 변화가 ì¼ì–´ë‚˜ëŠ”êµ¬ë ¤. 나는 ì´ ë§ë„ 형ì—게 아니 í•˜ë ¤ê³ ìƒê°í•˜ì˜€ì†Œ. 노여워하지 마시오, ë‚´ê²Œê¹Œì§€ë„ ìˆ¨ê¸°ëŠëƒê³ . 그런 ê²ƒì´ ì•„ë‹ˆì˜¤, 형ì€ì»¤ë…• 나 ìžì‹ ì—ê²Œê¹Œì§€ë„ ìˆ¨ê¸°ë ¤ê³ í•˜ì˜€ë˜ ê²ƒì´ì˜¤. 혹시 그런 기다리지 아니 í•˜ì˜€ë˜ ì›, 그런 ìƒê°ì´ ë‚´ 마ìŒì˜ í•˜ëŠ˜ì— ì¼ì–´ë‚˜ë¦¬ë¼ê³ ìƒìƒë„ 아니하였ë˜, 그런 ìƒê°ì´ ì¼ì–´ë‚ 때ì—는 나는 스스로 놀ë¼ê³ 스스로 슬í¼í•˜ì˜€ì†Œ. 그래서 스스로 숨기기로 하였소.
+ê·¸ 숨긴다는 ê²ƒì´ ë¬´ì—‡ì´ëƒ 하면 ê·¸ê²ƒì€ ì—´ì •ì´ìš”, ì •ì˜ ë¶ˆê¸¸ì´ìš”, ì •ì˜ ê´‘í’ì´ìš”, ì •ì˜ ë¬¼ê²°ì´ì˜¤. ë§Œì¼ ë‚´ ì˜ì‹ì´ 세계를 í‰í™”로운 í’€ ìžˆê³ , 꽃 ìžˆê³ , 나무 있는 벌íŒì´ë¼ê³ 하면 거기 난ë°ì—†ëŠ” 미친 ì§ìŠ¹ë“¤ì´ ë¶ˆì„ ë¿œê³ ì†Œë¦¬ë¥¼ ì§€ë¥´ê³ ì‹¸ìš°ê³ , ì˜ê°ì„ í•˜ê³ ë‚ ì³ì„œ, ì´ ë™ì‚°ì˜ í‰í™”ì˜ í™”ì´ˆë¥¼ 다 ì§“ë°Ÿì•„ ë²„ë¦¬ê³ ë§ˆëŠ” 그러한 모양과 같소.
+형! ê·¸ ì´ìƒì•¼ë¦‡í•œ ì§ìŠ¹ë“¤ì´ ì—¬íƒœê», ì‚¬ì‹ ë…„ ê°„ì„ ì–´ëŠ êµ¬ì„ì— ìˆ¨ì–´ 있었소? 그러다가 ì¸ì œ 뛰어나와 ê°ê° ì œ 권리를 주장하오?
+지금 ë‚´ 가슴 ì†ì€ ë“소. ë‚´ ëª¸ì€ ë°”ì§ ì—¬ìœ„ì—ˆì†Œ. ê·¸ê²ƒì€ ìƒë¦¬í•™ì 으로나 심리학ì 으로나 타는 것ì´ìš”, 연소하는 것ì´ì˜¤. 그래서 다만 ë‚´ ëª¸ì˜ ì§€ë°©ë§Œì´ íƒ€ëŠ” ê²ƒì´ ì•„ë‹ˆë¼, 골수까지 íƒ€ê³ , ëª¸ì´ íƒˆ ë¿ì´ ì•„ë‹ˆë¼ ìƒëª… ê·¸ ë¬¼ê±´ì´ íƒ€ê³ ìžˆëŠ” 것ì´ì˜¤. 그러면 ì–´ì°Œí• ê¹Œ.
+지위, 명성, 습관, 시대 사조 등등으로 ì¼ìƒì— ëˆŒë¦¬ê³ ëˆŒë ¸ë˜ ë‚´ ìžì•„ì˜ ì¼ë¶€ë¶„ì´ í˜ëª…ì„ ì¼ìœ¼í‚¨ 것ì´ì˜¤? 한 ë²ˆë„ ìžìœ 로 권세를 ë¶€ë ¤ ë³´ì§€ 못한 본능과 ê°ì •ë“¤ì´ ë‚´ ìƒëª…ì´ ë나기 ì „ì— í•œ 번 ë‚ ë›°ì–´ ë³´ë ¤ëŠ” 것ì´ì˜¤. ì´ê²ƒì´ ì„ ì´ì˜¤? ì•…ì´ì˜¤?
+ê·¸ë“¤ì€ ë‚´ê°€ 지금까지 ì˜³ë‹¤ê³ ì—¬ê¸°ê³ ì‹ ì„±í•˜ë‹¤ê³ ì—¬ê¸°ë˜ ëª¨ë“ ê¶Œìœ„ë¥¼ 모조리 ë‘˜ëŸ¬ì—Žìœ¼ë ¤ê³ ë“œì˜¤. 그러나 형! 나는 ë„ì €ížˆ ì´ í˜ëª…ì„ ìš©ì¸í• 수가 없소. 나는 죽기까지 버티기로 ê²°ì •ì„ í•˜ì˜€ì†Œ. ë‚´ ì†ì—서 ë‘ ì„¸ë ¥ì´ ì‹¸ìš°ë‹¤ê°€ 싸우다가 승부가 ê²°ì •ì´ ëª» ëœë‹¤ë©´ 나는 ìŠ¹ë¶€ì˜ ê²°ì •ì„ ê¸°ë‹¤ë¦¬ì§€ ì•„ë‹ˆí•˜ê³ ì‚´ê¸°ë¥¼ 그만ë‘ë ¤ì˜¤.
+나는 눈 ë®ì¸ 삼림 ì†ìœ¼ë¡œ ë“¤ì–´ê°€ë ¤ì˜¤. 나는 Vë¼ëŠ” 대삼림 지대가 ì–´ë””ì¸ ì¤„ë„ ì•Œê³ ê±°ê¸°ë¥¼ ê°€ë ¤ë©´ ì–´ëŠ ì •ê±°ìž¥ì—서 내릴 ê²ƒë„ ë‹¤ 알아 놓았소.
+ë§Œì¼ ë‹¨ìˆœížˆ 죽는다 하면 구태여 멀리 찾아갈 í•„ìš”ë„ ì—†ì§€ë§ˆëŠ” ê·¸ëž˜ë„ ë‚˜ 혼ìžë¡œëŠ” ë‚´ 사ìƒê³¼ ê°ì •ì˜ ì²ì‚°ì„ í•˜ê³ ì‹¶ì†Œ. ì‚´ 수 있는 ë‚ ê¹Œì§€ 세ìƒì„ ë– ë‚œ ê³³ì—서 살다가 ì™„ì „í•œ í•´ê²°ì„ ì–»ëŠ” ë‚ ë‚˜ëŠ” í˜¹ì€ ìŠ¹ë¦¬ì˜, í˜¹ì€ íŒ¨ë°°ì˜ ì¢…ë§‰ì„ ë‹«ì¹ ê²ƒì´ì˜¤. ë§Œì¼ í•´ê²°ì´ ì•ˆ ë˜ë©´ 안 ë˜ëŠ” 대로 그치면 그만ì´ì§€ìš”.
+나는 ì´ ë¶“ì„ ë†“ê¸° ì „ì— ì–´ì ¯ë°¤ì— ê¾¼ 꿈 ì´ì•¼ê¸° 하나는 í•˜ë ¤ì˜¤. ê¿ˆì´ í•˜ë„ ìˆ˜ìƒí•´ì„œ 마치 ë‚´ ì „ë„ì— ëŒ€í•œ ì‹ ì˜ ê³„ì‹œì™€ë„ ê°™ê¸°ë¡œ 하는 ë§ì´ì˜¤. ê·¸ ê¿ˆì€ ì´ëŸ¬í•˜ì˜€ì†Œ.
+ë‚´ê°€ ê½ì´ê¹¨(꼬ì´ê¹Œë¼ëŠ” ì•„ë¼ì‚¬ë§ë¡œ 침대ë¼ëŠ” ë§ì´ ì¡°ì„ ë™í¬ì˜ 입으로 변한 ë§ì´ì˜¤.) ì§ì„ ì§€ê³ ì‚½ì„ ë©”ê³ ëˆˆì´ ë®ì¸ 삼림 ì†ì„ í˜¼ìž ê±¸ì—ˆì†Œ. ì´ ê½ì´ê¹¨ ì§ì´ëž€ ê²ƒì€ ê¸ˆì ê¾¼ë“¤ì´ ê·¸ 여행 ì¤‘ì— ì†Œìš©í’ˆ, 마른 ë¹µ, 소금, ë‚´ë³µ 등ì†ì„ 침대 ë§¤íŠ¸ë¦¬ìŠ¤ì— ë„£ì–´ì„œ ì§€ê³ ë‹¤ë‹ˆëŠ” 것ì´ì˜¤. ì´ ì§í•˜ê³ 삽 한 ê°œ, ë„ë¼ í•œ ê°œ, ê·¸ê²ƒì´ ì‹œë² ë¦¬ì•„ë¡œ ê¸ˆì„ ì°¾ì•„ 헤매는 ì¡°ì„ ë™í¬ë“¤ì˜ 행색ì´ì˜¤. ë‚´ê°€ ì´ë¥´ì¿ ì¸ í¬ì—서 ì´ëŸ¬í•œ ë™í¬ë¥¼ ë§Œë‚¬ë˜ ê²ƒì´ ê¿ˆìœ¼ë¡œ ë˜ì–´ 나온 모양ì´ì˜¤.
+나는 꿈ì—는 세ìƒì„ 다 잊어버린, 아주 깨ë—í•˜ê³ ì¹¨ì°©í•œ 사람으로 ì´ ê½ì´ê¹¨ ì§ì„ ì§€ê³ ì‚½ì„ ë©”ê³ ë°¤ì¸ì§€ ë‚®ì¸ì§€ 알 수 없으나 ë•…ì€ ëˆˆë¹›ìœ¼ë¡œ í¬ê³ , í•˜ëŠ˜ì€ êµ¬ë¦„ë¹›ìœ¼ë¡œ íšŒìƒ‰ì¸ ì‚¼ë¦¼ 지대를 í—ˆë•í—ˆë• ê±¸ì—ˆì†Œ. ê¸¸ë„ ì—†ëŠ” ë°ë¥¼, ì¸ì ë„ ì—†ëŠ” ë°ë¥¼.
+꿈ì—ë„ ë‚´ ëª¸ì€ í½ í”¼ê³¤í•´ì„œ 쉴 ìžë¦¬ë¥¼ 찾는 마ìŒì´ì—ˆì†Œ.
+나는 마침내 ì–´ë–¤ ì–¸ë• ë°‘ 한 êµ°ë°ë¥¼ 골ëžì†Œ. ê·¸ë¦¬ê³ ìƒì‹œì— ì´ì•¼ê¸°ì—서 ë“¤ì€ ëŒ€ë¡œ 삽으로 ë‚´ê°€ 누울 ìžë¦¬ë§Œí•œ ëˆˆì„ ì¹˜ê³ , ê·¸ë¦¬ê³ ëŠ” ë„ë¼ë¡œ ê³ì— ì„ ë‚˜ë¬´ 몇 개를 ì°ì–´ 누ì´ê³ 거기다가 ë¶ˆì„ ë†“ê³ ê·¸ ë¶ˆê¹€ì— ë…¹ì€ ë•…ì„ ë‘ì–´ ìžë‚˜ íŒŒë‚´ê³ ê·¸ ì†ì— ë“œëŸ¬ëˆ„ì› ì†Œ. 훈훈한 ê²ƒì´ ì•„ì£¼ 편안하였소.
+하늘ì—는 ë³„ì´ ë°˜ì§ê±°ë ¸ì†Œ. Fì—ì—서 ë³´ë˜ ë°”ì™€ ê°™ì´ í° ë³„ ìž‘ì€ ë³„ë„ ë³´ì´ê³ í‰ì‹œì— ë³´ì§€ ëª»í•˜ë˜ ë¶‰ì€ ë³„, 푸른 별 ë“¤ë„ ë³´ì˜€ì†Œ. 나는 ì´ ì´ìƒí•œ 하늘, ì´ìƒí•œ ë³„ë“¤ì´ ìžˆëŠ” í•˜ëŠ˜ì„ ë³´ê³ ë“œëŸ¬ëˆ„ì›Œ 있노ë¼ë‹ˆê¹Œ ë¬¸ë“ ì–´ë””ì„œ ë°œìžêµ 소리가 ë“¤ë ¸ì†Œ. í‰í‰í‰í‰ 우루루루…… 나는 벌떡 ì¼ì–´ë‚˜ë ¤ 하였으나 ëª¸ì´ ì²œ ê·¼ì´ë‚˜ ë˜ì–´ì„œ 움ì§ì¼ 수가 없었소. 가까스로 ê³ ê°œë¥¼ 조금 ë“¤ê³ ë³´ë‹ˆ ë¿”ì´ ê¸¸ë‹¤ëž—ê³ ëˆˆì´ ë¶ˆê°™ì´ ë¶‰ì€ ì‚¬ìŠ´ì˜ ë–¼ê°€ ë¬´ì—‡ì— ë†€ëžëŠ”ì§€ 껑충껑충 ë›°ì–´ 지나가오. ì´ê²ƒì€ 아마 í¬ë¡œí¬íŠ¸í‚¨ì˜ <ìƒí˜¸ ë¶€ì¡°ë¡ > ì†ì— ë§í•œ ì‹œë² ë¦¬ì•„ì˜ ì‚¬ìŠ´ì˜ ë–¼ê°€ ê¿ˆì´ ë˜ì–´ 나온 모양ì´ì˜¤.
+그러ë”니 ê·¸ ì‚¬ìŠ´ì˜ ë–¼ê°€ 다 지나간 ë’¤ì—, ê·¸ ì‚¬ìŠ´ì˜ ë–¼ê°€ ì˜¤ë˜ ë°©í–¥ìœ¼ë¡œì„œ ì •ìž„ì´ê°€ 걸어오는 ê²ƒì´ ì•„ë‹ˆë¼ ìŠ¤ë¥´ë¥µ í•˜ê³ ë¯¸ë„ëŸ¬ì ¸ 오오. 마치 ì¸í˜•ì„ ë°€ì–´ 주는 것같ì´.
+"ì •ìž„ì•„!"
+í•˜ê³ ë‚˜ëŠ” 소리를 ì¹˜ê³ ëª¸ì„ ì¼ìœ¼í‚¤ë ¤ 하였소.
+ì •ìž„ì˜ ëª¨ì–‘ì€ ë‚˜ë¥¼ ìž ê¹ ë³´ê³ ëŠ” 미ë„러지는 ë“¯ì´ í˜ëŸ¬ê°€ 버리오.
+나는 ì •ìž„ì•„, ì •ìž„ì•„ë¥¼ ë¶€ë¥´ê³ íŒ”ë‹¤ë¦¬ë¥¼ ë¶€ë‘¥ê±°ë ¸ì†Œ. 그러다가 마침내 ë‚´ ëª¸ì´ ë²ˆì© ì¼ìœ¼ì¼œì§ì„ 깨달았소. 나는 ì •ìž„ì˜ ë’¤ë¥¼ ë”°ëžì†Œ.
+나는 눈 위로 삼림 ì†ìœ¼ë¡œ ì •ìž„ì˜ ê·¸ë¦¼ìžë¥¼ ë”°ëžì†Œ. ë³´ì¼ ë“¯ 안 ë³´ì¼ ë“¯, ìž¡íž ë“¯ 안 ìž¡íž ë“¯, 나는 무거운 다리를 ëŒê³ ì •ìž„ì„ ë”°ëžì†Œ.
+ì •ìž„ì€ ì´ ì¶”ìš´ ë‚ ì´ì–¸ë§Œ 눈과 ê°™ì´ í° ì˜·ì„ ìž…ì—ˆì†Œ. ê·¸ ì˜·ì€ ì˜›ë‚ ë¡œë§ˆ ì—¬ì¸ì˜ 옷과 ê°™ì´ ë°”ëžŒê²°ì— íŽ„ë ê±°ë ¸ì†Œ.
+"오지 마세요. ì €ë¥¼ ë”°ë¼ì˜¤ì§€ 못하ì‹ë‹ˆë‹¤."
+í•˜ê³ ì •ìž„ì€ ëˆˆë³´ë¼ ì†ì— 가리워 ë²„ë¦¬ê³ ë§ì•˜ì†Œ. 암만 ë¶ˆëŸ¬ë„ ëŒ€ë‹µì´ ì—†ê³ ëˆˆë³´ë¼ê°€ 다 지나간 ë’¤ì—ë„ ë¶‰ì€ ë³„, 푸른 별과 ë¿” 긴 ì‚¬ìŠ´ì˜ ë–¼ë¿ì´ì˜¤. ì •ìž„ì€ ë³´ì´ì§€ 아니하였소. 나는 ë¯¸ì¹ ë“¯ì´ ì •ìž„ì„ ì°¾ê³ ë¶€ë¥´ë‹¤ê°€ ìž ì„ ê¹¨ì—ˆì†Œ.
+ê¿ˆì€ ì´ê²ƒë¿ì´ì˜¤. ê¿ˆì„ ê¹¨ì–´ì„œ ì°½ ë°–ì„ ë°”ë¼ë³´ë‹ˆ ì–¼ìŒê³¼ ëˆˆì— ë®ì¸ ë°”ì´ì¹¼í˜¸ 위ì—는 ìƒˆë²½ì˜ ê²¨ìš¸ ë‹¬ì´ ë¹„ì¹˜ì–´ 있었소. ì € 멀리 검푸르게 ë³´ì´ëŠ” ê²ƒì´ ì±„ 얼어붙지 아니한 물ì´ê² 지요. 오늘 ë°¤ì— ë°”ëžŒì´ ì—†ê³ ê¸°ì˜¨ì´ ë‚´ë¦¬ë©´ ê·¸ê²ƒë§ˆì € 얼어붙ì„는지 모르지요. ë²Œì¨ ì‚´ì–¼ìŒì´ ìž¡í˜”ëŠ”ì§€ë„ ëª¨ë¥´ì§€ìš”. ì•„ì•„, ê·¸ ì†ì€ 얼마나 깊ì„까. 나는 ë°”ì´ì¹¼ì˜ 물 ì†ì´ ê´€ì‹¬ì´ ë˜ì–´ì„œ 못 ê²¬ë””ê² ì†Œ.
+형! 나는 ìžë°±í•˜ì§€ ì•„ë‹ˆí• ìˆ˜ 없소. ì´ ê¿ˆì€ ë‚´ 마ìŒì˜ ì–´ë–¤ ë¶€ë¶„ì„ ì„¤ëª…í•œ 것ì´ë¼ê³ . 그러나 형! 나는 ì´ê²ƒì„ ë¶€ì •í•˜ë ¤ì˜¤. 굳세게 ë¶€ì •í•˜ë ¤ì˜¤. 나는 ì´ ê¿ˆì„ ë¶€ì •í•˜ë ¤ì˜¤. 억지로ë¼ë„ ë¶€ì •í•˜ë ¤ì˜¤. 나는 ê²°ì½” ë‚´ ì†ì— ì¼ì–´ë‚œ í˜ëª…ì„ ìš©ì¸í•˜ì§€ ì•„ë‹ˆí•˜ë ¤ì˜¤. 나는 ê·¸ê²ƒì„ í˜ëª…으로 ì¸ì •하지 ì•„ë‹ˆí•˜ë ¤ì˜¤. 아니오! 아니오! ê·¸ê²ƒì€ ë°˜ëž€ì´ì˜¤! ë‚´ ì¸ê²©ì˜ 통ì¼ì— 대한 반란ì´ì˜¤. 단연코 무단ì 으로 ì§„ì •í•˜ì§€ 아니하면 아니 ë 반란ì´ì˜¤. 보시오! 나는 굳게 서서 한 걸ìŒë„ 뒤로 물러서지 ì•„ë‹ˆí• ê²ƒì´ì˜¤. ë§Œì¼ì— í˜•ì´ ê´‘ì•¼ì— êµ¬ë¥´ëŠ” ë‚´ 시체나 í•´ê³¨ì„ ë³¸ë‹¤ë“ ì§€, ë˜ëŠ” 무슨 ì¸ì—°ìœ¼ë¡œ ë‚´ 무ë¤ì„ 발견하는 ë‚ ì´ ìžˆë‹¤ê³ í•˜ë©´ ê·¸ ë•Œì— í˜•ì€ ë‚´ê°€ ì´ ëª¨ë“ ë°˜ëž€ì„ ì§„ì •í•œ ê°œì„ ì˜ êµ°ì£¼ë¡œ ì£½ì€ ê²ƒì„ ì•Œì•„ 주시오.
+ì¸ì œ ë°”ì´ì¹¼ì— ê²¨ìš¸ì˜ ì„ì–‘ì´ ë¹„ì¹˜ì—ˆì†Œ. ëˆˆì„ ì¸ ë‚˜ì§€ë§‰í•œ ì‚°ë“¤ì´ ì§€ëŠ” í–‡ë¹›ì— ìžì¤ë¹›ì„ ë°œí•˜ê³ ìžˆì†Œ. 극히 깨ë—í•˜ê³ ì‹¸ëŠ˜í•œ ê´‘ê²½ì´ì˜¤. ì•„ë””ìœ !
+ì´ íŽ¸ì§€ë¥¼ ìš°íŽ¸ì— ë¶€ì¹˜ê³ ëŠ” 나는 ìµœí›„ì˜ ë°©ëž‘ì˜ ê¸¸ì„ ë– ë‚˜ì˜¤. ì°¾ì„ ìˆ˜ë„ ì—†ê³ , 편지 ë°›ì„ ìˆ˜ë„ ì—†ëŠ” 곳으로.
+부디 í‰ì•ˆížˆ 계시오. ì¼ ë§Žì´ í•˜ì‹œì˜¤. ë¶€ì¸ê»˜ 문안 드리오. ë‚´ 가족과 ì •ìž„ì˜ ì¼ ë§¡ê¸°ì˜¤. ì•„ë””ìœ !
+ì´ê²ƒìœ¼ë¡œ ìµœì„ êµ°ì˜ íŽ¸ì§€ëŠ” ë났다.
+나는 ì´ íŽ¸ì§€ë¥¼ ë°›ê³ ìš¸ì—ˆë‹¤. ì´ê²ƒì´ ì¼ íŽ¸ì˜ ì†Œì„¤ì´ë¼ 하ë”ë¼ë„ 슬픈 ì¼ì´ì–´ë“ , 하물며 ë‚´ê°€ 가장 ë¯¿ê³ ì‚¬ëž‘í•˜ëŠ” ì¹œêµ¬ì˜ ì¼ìž„ì—야.
+ì´ íŽ¸ì§€ë¥¼ ë°›ê³ ë‚˜ëŠ” ê³§ ìµœì„ êµ°ì˜ ì§‘ì„ ì°¾ì•˜ë‹¤. 주ì¸ì„ ìžƒì€ ì´ ì§‘ì—서는아ì´ë“¤ì´ 마당ì—서 ë– ë“¤ê³ ìžˆì—ˆë‹¤.
+"삼ì²ë™ ì•„ìžì”¨ 오셨수. 어머니, 삼ì²ë™ ì•„ìžì”¨."
+í•˜ê³ ìµœì„ êµ°ì˜ ìž‘ì€ë”¸ì´ 나를 ë³´ê³ ë›°ì–´ë“¤ì–´ê°”ë‹¤.
+최ì„ì˜ ë¶€ì¸ì´ 나와 나를 맞았다.
+ë¶€ì¸ì€ ë¨¸ë¦¬ë„ ë¹—ì§€ ì•„ë‹ˆí•˜ê³ , 얼굴ì—는 ì¡°ê¸ˆë„ í™”ìž¥ì„ ì•„ë‹ˆí•˜ê³ , ë§¤ë¬´ì‹œë„ í˜ëŸ¬ë‚´ë¦´ 지경으로 ì •ëˆë˜ì§€ 못하였다. ì¼ ì£¼ì¼ì´ë‚˜ 못 만난 ë™ì•ˆì— ë¶€ì¸ì˜ ëª¨ì–‘ì€ ë”ìš± 초췌하였다.
+"ë…¸ì„헌테서 무슨 기별ì´ë‚˜ 있습니까."
+í•˜ê³ ë‚˜ëŠ” 무슨 ë§ë¡œ ë§ì„ ì‹œìž‘í• ì§€ 몰ë¼ì„œ ì´ëŸ° ë§ì„ 하였다.
+"아니오. 왜 ê·¸ì´ê°€ ì§‘ì— íŽ¸ì§€í•˜ë‚˜ìš”?"
+í•˜ê³ ë¶€ì¸ì€ 성난 ë¹›ì„ ë³´ì´ë©°,
+"ì§‘ì„ ë– ë‚œ 지가 ê·¼ ì‚¬ì‹ ì¼ì´ ë˜ê±´ë§Œ 엽서 한 장 있나요. 집안 ì‹êµ¬ê°€ 다 죽기로 눈ì´ë‚˜ 깜ì§í• ì¸ê°€ìš”. ê·¸ì € ì •ìž„ì´í—Œí…Œë§Œ 미ì³ì„œ 죽ì„ì§€ 살지를 모르지요."
+í•˜ê³ ìš¸ë¨¹ìš¸ë¨¹í•œë‹¤.
+"잘못 ì•„ì‹ë‹ˆë‹¤. ë¶€ì¸ê»˜ì„œ ë…¸ì„ì˜ ë§ˆìŒì„ 잘못 ì•„ì‹ë‹ˆë‹¤. 그런 ê²ƒì´ ì•„ë‹™ë‹ˆë‹¤."
+í•˜ê³ ë‚˜ëŠ” í™•ì‹ ìžˆëŠ” ë“¯ì´ ë§ì„ 시작하였다.
+"ë…¸ì„ì˜ ìƒê°ì„ ë¶€ì¸ê»˜ì„œ ì˜¤í•´í•˜ì‹ ì¤„ì€ ë²Œì¨ë¶€í„° 알았지마는 오늘 ë…¸ì„ì˜ íŽ¸ì§€ë¥¼ ë°›ì•„ë³´ê³ ë”ìš± 분명히 알았습니다."
+í•˜ê³ ë‚˜ëŠ” ë¶€ì¸ì˜ í‘œì •ì˜ ë³€í™”ë¥¼ 엿보았다.
+"편지가 왔어요?"
+í•˜ê³ ë¶€ì¸ì€ 놀ë¼ë©´ì„œ,
+"지금 ì–´ë”” 있어요? ì¼ë³¸ 있지요?"
+í•˜ê³ ì§ˆíˆ¬ì˜ ë¶ˆê¸¸ì„ ëˆˆìœ¼ë¡œ í† í•˜ì˜€ë‹¤.
+"ì¼ë³¸ì´ 아닙니다. ë…¸ì„ì€ ì§€ê¸ˆ ì•„ë¼ì‚¬ì— 있습니다."
+"ì•„ë¼ì‚¬ìš”?"
+í•˜ê³ ë¶€ì¸ì€ 놀ë¼ëŠ” ë¹›ì„ ë³´ì´ë”니,
+"그럼 ì •ìž„ì´ë¥¼ ë°ë¦¬ê³ 아주 ì•„ë¼ì‚¬ë¡œ 가케오치를 하였군요."
+í•˜ê³ ížˆìŠ¤í…Œë¦¬ì»¬í•œ 웃ìŒì„ ë³´ì´ê³ 는 ëª¸ì„ í•œ 번 떨었다.
+ë¶€ì¸ì€ 남편과 ì •ìž„ì˜ ê´€ê³„ë¥¼ ë§í• 때마다 ì´ë ‡ê²Œ ê²½ë ¨ì ì¸ ì›ƒìŒì„ ì›ƒê³ ëª¸ì„ ë– ëŠ” ê²ƒì´ ë²„ë¦‡ì´ì—ˆë‹¤.
+"아닙니다. ë…¸ì„ì€ í˜¼ìž ê°€ 있습니다. ê·¸ë ‡ê²Œ 오해를 마세요."
+í•˜ê³ ë‚˜ëŠ” ë³´ì— ì‹¼ 최ì„ì˜ íŽ¸ì§€ë¥¼ 내어서 ë¶€ì¸ì˜ 앞으로 밀어 놓으며,
+"ì´ê²ƒì„ 보시면 다 아실 줄 압니다. 어쨌으나 ë…¸ì„ì€ ê²°ì½” ì •ìž„ì´ë¥¼ ë°ë¦¬ê³ ê°„ ê²ƒì´ ì•„ë‹ˆìš”, ë„리어 ì •ìž„ì´ë¥¼ 멀리 ë– ë‚˜ì„œ ê°„ 것입니다. 그러나 ê·¸ë³´ë‹¤ë„ ì¤‘ëŒ€ ë¬¸ì œê°€ 있습니다. ë…¸ì„ì€ ì´ íŽ¸ì§€ë¥¼ ë³´ë©´ ì£½ì„ ê²°ì‹¬ì„ í•œ 모양입니다."
+í•˜ê³ ë¶€ì¸ì˜ 주ì˜ë¥¼ 질투로부터 ê·¸ 남편ì—게 대한 ë™ì •ì— ëŒì–´ ë³´ë ¤ 하였다.
+"í¥. 왜요? 시체 ì •ì‚¬ë¥¼ 하나요? ì¢‹ê² ìŠµë‹ˆë‹¤. 머리가 허연 ê²ƒì´ ë”¸ìžì‹ ê°™ì€ ê³„ì§‘ì• í—ˆêµ¬ ì •ì‚¬ë¥¼ 한다면 ê·¸ ê¼´ ì¢‹ê² ìŠµë‹ˆë‹¤. 죽으ë¼ì§€ìš”. 죽으래요. 죽는 ê²ƒì´ ë‚«ì§€ìš”. 그리구 살아서 무엇 í•´ìš”?"
+ë‚´ ëœ»ì€ í‹€ë ¤ ë²„ë ¸ë‹¤. ë¶€ì¸ì˜ í‘œì •ê³¼ ë§ì—서는 ë”ìš±ë”ìš± ë…한 ì§ˆíˆ¬ì˜ ì•ˆê°œì™€ 싸늘한 ì–¼ìŒê°€ë£¨ê°€ ë‚ ì•˜ë‹¤.
+나는 ë¶€ì¸ì˜ ì´ íƒœë„ì— ë°˜ê°ì„ ëŠê¼ˆë‹¤. 아무리 ì§ˆíˆ¬ì˜ ê°ì •ì´ ê°•í•˜ë‹¤ 하기로, ì‚¬ëžŒì˜ ìƒëª…ì´ ì œ ë‚¨íŽ¸ì˜ ìƒëª…ì´ ìœ„íƒœí•¨ì—ë„ ë¶ˆêµ¬í•˜ê³ ì˜¤ì§ ì œ ì§ˆíˆ¬ì˜ ê°ì •ì—ë§Œ ì¶©ì‹¤í•˜ë ¤ 하는 ê·¸ 태ë„ê°€ 불쾌하였다. 그래서 나는,
+"나는 ê·¸ë§Œí¼ ë§ì”€í•´ ë“œë ¸ìœ¼ë‹ˆ ë” í• ë§ì”€ì€ 없습니다. ì•„ë¬´ë ¤ë‚˜ ì¢€ë” ëƒ‰ì •í•˜ê²Œ ìƒê°í•´ 보세요. ê·¸ë¦¬ê³ ì´ê²ƒì„ ì½ì–´ 보세요."
+í•˜ê³ ì¼ì–´ë‚˜ì„œ 집으로 ëŒì•„와 ë²„ë¦¬ê³ ë§ì•˜ë‹¤.
+ë„무지 불쾌하기 그지없는 ë‚ ì´ë‹¤. 최ì„ì˜ íƒœë„ê¹Œì§€ë„ ë¶ˆì¾Œí•˜ë‹¤. 달아나긴 왜 달아나? 죽기는 왜 죽어? 못난 것! 기운 없는 것! í•˜ê³ ë‚˜ëŠ” 최ì„ì´ê°€ ê³ì— 섰기나 한 것처럼 ëˆˆì„ í˜ê¸°ê³ ì¤‘ì–¼ê±°ë ¸ë‹¤.
+최ì„ì˜ ë§ëŒ€ë¡œ 최ì„ì˜ ë¶€ì¸ì€ 악한 ì‚¬ëžŒì´ ì•„ë‹ˆìš”, ê·¸ì € ë³´í†µì¸ ì—¬ì„±ì¼ëŠ”ì§€ 모른다. ê·¸ë ‡ë‹¤ 하면 ì—¬ìžì˜ 마ìŒì´ëž€ ë„ˆë¬´ë„ ì§ˆíˆ¬ì˜ ì¢…ì´ ì•„ë‹ê¹Œ. 설사 남편 ë˜ëŠ” 최ì„ì˜ ì‚¬ëž‘ì´ ì•„ë‚´ë¡œë¶€í„° ì •ìž„ì—게로 옮아 ê°”ë‹¤ê³ í•˜ë”ë¼ë„ ê·¸ê²ƒì„ ì§ˆíˆ¬ë¡œ íšŒë³µí•˜ë ¤ëŠ” ê²ƒì€ ì–´ë¦¬ì„ì€ ì¼ì´ë‹¤. ì´ë¯¸ ì‚¬ëž‘ì´ ë– ë‚œ ë‚¨íŽ¸ì„ ë„¤ 마ìŒëŒ€ë¡œ ê°€ê±°ë¼ í•˜ê³ ìžë°œì 으로 내어버릴 것ì´ì§€ë§ˆëŠ” ê·¸ê²ƒì„ ëª» í• ì‚¬ì •ì´ ìžˆë‹¤ê³ í•˜ë©´ 모르는 ì²´í•˜ê³ ë‚´ë²„ë ¤ 둘 ê²ƒì´ ì•„ë‹Œê°€. ê·¸ëž˜ë„ ì´ê²ƒì€ 우리네 남ìžì˜ ì´ë¡ ì´ìš”, ì—¬ìžë¡œëŠ” ì´ëŸ° ê²½ìš°ì— ì§ˆíˆ¬ë¼ëŠ” ë°˜ì‘ë°–ì— ì—†ë„ë¡ ìƒê¸´ 것ì¼ê¹Œ 나는 ì´ëŸ° ìƒê°ì„ í•˜ê³ ìžˆì—ˆë‹¤.
+시계가 아홉시를 친다.
+남대문 ë°– ì •ê±°ìž¥ì„ ë– ë‚˜ëŠ” ì—´ì°¨ì˜ ê¸°ì 소리가 들린다.
+나는 만주를 ìƒê°í•˜ê³ , ì‹œë² ë¦¬ì•„ë¥¼ ìƒê°í•˜ê³ 최ì„ì„ ìƒê°í•˜ì˜€ë‹¤. 마ìŒìœ¼ë¡œëŠ” ì •ìž„ì„ ì‚¬ëž‘í•˜ë©´ì„œ ê·¸ ì‚¬ëž‘ì„ ë°œí‘œí• ìˆ˜ 없어서 ì‹œë² ë¦¬ì•„ì˜ ëˆˆ ë®ì¸ 삼림 ì†ìœ¼ë¡œ 방황하는 최ì„ì˜ ëª¨ì–‘ì´ ìµœì„ì˜ ê¿ˆ ì´ì•¼ê¸°ì— 있는 대로 ëˆˆì•žì— ì„ í•˜ê²Œ ë– ë‚˜ì˜¨ë‹¤.
+`ì‚¬ëž‘ì€ ëª©ìˆ¨ì„ ë¹¼ì•—ëŠ”ë‹¤.'
+í•˜ê³ ë‚˜ëŠ” 사랑ì¼ëž˜ ì¼ì–´ë‚˜ëŠ” ì¸ìƒì˜ ë¹„ê·¹ì„ ìƒê°í•˜ì˜€ë‹¤. 그러나 최ì„ì˜ ê²½ìš°ëŠ” 보통 있는 ê³µì‹ê³¼ëŠ” 달ë¼ì„œ ì‚¬ëž‘ì„ ì£½ì´ê¸° 위해서 ì œ ëª©ìˆ¨ì„ ì£½ì´ëŠ” 것ì´ì—ˆë‹¤. ê·¸ë ‡ë‹¤ 하ë”ë¼ë„,
+`ì‚¬ëž‘ì€ ëª©ìˆ¨ì„ ë¹¼ì•—ëŠ”ë‹¤.'
+는 ë°ì—는 ë‹¤ë¦„ì´ ì—†ë‹¤.
+나는 ë¶ˆì¾Œë„ í•˜ê³ ëª¸ë„ ìœ¼ìŠ¤ìŠ¤í•˜ì—¬ 얼른 ìžë¦¬ì— ëˆ„ì› ë‹¤. ë©°ëŠë¦¬ê°€ 들어온 뒤부터 사랑 ìƒí™œì„ 하는 지가 ë²Œì¨ ì˜¤ ë…„ì´ë‚˜ ë˜ì—ˆë‹¤. 우리 부처란 ì¸ì œëŠ” 한 ì—사ì 존재요, 윤리ì ê´€ê³„ì— ë¶ˆê³¼í•˜ì˜€ë‹¤. 오래 사귄 친구와 ê°™ì€ ìµìˆ™í•¨ì´ ìžˆê³ , ì§‘ì— ì—†ì§€ ëª»í• ì‚¬ëžŒì´ë¼ëŠ” í•„ìš”ê°ë„ 있지마는 ì Šì€ ë¶€ì²˜ê°€ 가지는 듯한 그런 ì •ì€ ë²Œì¨ ì—†ëŠ” ì§€ 오래였다. ì•„ë‚´ë„ ë‚˜ë¥¼ 대하면 본체만체, ë‚˜ë„ ì•„ë‚´ë¥¼ 대하면 본체만체, 무슨 필요가 있어서 ë§ì„ ë¶™ì´ë”ë¼ë„ ì•„ë¬´ìª¼ë¡ ë“£ê¸° 싫기를 ì›í•˜ëŠ” ë“¯ì´ í†¡í†¡ ë‚´ë˜ì¡Œë‹¤. ì•„ë‚´ë„ ê·¼ëž˜ì— ì™€ì„œëŠ” ì˜·ë„ ì•„ë¬´ë ‡ê²Œë‚˜, ë¨¸ë¦¬ë„ ì•„ë¬´ë ‡ê²Œë‚˜, ì–´ë”” ì¶œìž…í• ë•Œë°–ì—는 ë„무지 í™”ìž¥ì„ ì•„ë‹ˆ 하였다.
+그러나 ê·¸ë ‡ë‹¤ê³ ìš°ë¦¬ ë¶€ì²˜ì˜ ìƒˆê°€ 좋지 못한 ê²ƒë„ ì•„ë‹ˆì—ˆë‹¤. 서로 소중히 여기는 마ìŒë„ 있었다. ì•„ë‚´ê°€ ì•ˆì— ìžˆë‹¤ê³ ìƒê°í•˜ë©´ 마ìŒì´ ë“ ë“ í•˜ê³ ë˜ ì•„ë‚´ì˜ ë§ì— ì˜í•˜ê±´ëŒ€ ë‚´ê°€ ì‚¬ëž‘ì— ìžˆê±°ë‹ˆ 하면 마ìŒì´ ë“ ë“ í•˜ë‹¤ê³ í•œë‹¤.
+우리 ë¶€ì²˜ì˜ ê´€ê³„ëŠ” ì´ëŸ¬í•œ 관계다.
+나는 한 ë°©ì—서 í˜¼ìž ìž ì„ ìžëŠ” ê²ƒì´ ìŠµê´€ì´ ë˜ì–´ì„œ 누가 ê³ì— 있으면 ìž ì´ ìž˜ 들지 아니하였다. 혹시 ì–´ë¦°ê²ƒë“¤ì´ ë§¤ë¥¼ ì–»ì–´ë§žê³ ì‚¬ëž‘ìœ¼ë¡œ í”¼ë‚œì„ ì™€ì„œ 울다가 ë‚´ ìžë¦¬ì—서 ìž ì´ ë“¤ë©´ 귀엽기는 ê·€ì—¬ì›Œë„ ìž ìžë¦¬ëŠ” 편안치 아니하였다. 나는 ì±…ì„ ë³´ê³ ê¸€ì„ ì“°ê³ ê³µìƒì„ í•˜ê³ ìžˆìœ¼ë©´ 족하였다. 내게는 아무 ì• ìš•ì ìš”êµ¬ë„ ì—†ì—ˆë‹¤. ì´ê²ƒì€ ë‚´ ì •ë ¥ì´ ì‡ ëª¨í•œ 까ë‹ì¸ì§€ 모른다.
+그러나 최ì„ì˜ íŽ¸ì§€ë¥¼ 본 ê·¸ ë‚ ë°¤ì—는 ë„무지 ìž ì´ ìž˜ 들지 아니하였다. 최ì„ì˜ íŽ¸ì§€ê°€ 최ì„ì˜ ê³ ë¯¼ì´ ë‚´ ì¡¸ë˜ ì˜ì‹ì— 무슨 ìžê·¹ì„ 준 듯하였다. ì 막한 듯하였다. í—ˆì „í•œ 듯하였다. 무엇ì¸ì§€ 모르나 그리운 ê²ƒì´ ìžˆëŠ” 것 같았다.
+"ì–´, ì´ê±° 안ë˜ì—ˆêµ°."
+í•˜ê³ ë‚˜ëŠ” 벌떡 ì¼ì–´ë‚˜ 담배를 피워 물었다.
+"나으리 주무셔 곕시오?"
+í•˜ê³ ì•„ë²”ì´ ì „ë³´ë¥¼ ê°€ì§€ê³ ì™”ë‹¤.
+"명조 경성 ì°© ë‚¨ì •ìž„"
+ì´ë¼ëŠ” 것ì´ì—ˆë‹¤.
+"ì •ìž„ì´ê°€ 와?"
+í•˜ê³ ë‚˜ëŠ” ì „ë³´ë¥¼ 다시 ì½ì—ˆë‹¤.
+최ì„ì˜ ê·¸ 편지를 ë³´ë©´ ìµœì„ ë¶€ì¸ì—게는 ì–´ë–¤ ë°˜ì‘ì´ ì¼ì–´ë‚˜ê³ ì •ìž„ì—게는 ì–´ë–¤ ë°˜ì‘ì´ ì¼ì–´ë‚ 까, í•˜ê³ ìƒê°í•˜ë©´ ìžëª» 마ìŒì´ 편하지 못하였다.
+ì´íŠ¿ë‚ ì•„ì¹¨ì— ë‚˜ëŠ” 부산서 오는 차를 ë§žìœ¼ë ¤ê³ ì •ê±°ìž¥ì—를 나갔다.
+차는 ì œ ì‹œê°„ì— ë“¤ì–´ì™”ë‹¤. ë‚¨ì •ìž„ì€ ìŠˆíŠ¸ì¼€ì´ìФ 하나를 ë“¤ê³ ì°¨ì—서 ë‚´ë ¸ë‹¤. ê²€ì€ ì™¸íˆ¬ì— ê²€ì€ ëª¨ìžë¥¼ ì“´ ê·¸ì˜ ì–¼êµ´ì€ ë”ìš± 해쓱해 보였다.
+"ì„ ìƒë‹˜!"
+í•˜ê³ ì •ìž„ì€ ë‚˜ë¥¼ ë³´ê³ ì†ì— ë“¤ì—ˆë˜ ì§ì„ ë•…ë°”ë‹¥ì— ë‚´ë ¤ë†“ê³ , ë‚´ 앞으로 왔다.
+"í’ëž‘ì´ë‚˜ 없었나?"
+í•˜ê³ ë‚˜ëŠ” ë‚´ ì†ì— 잡힌 ì •ìž„ì˜ ì†ì´ 싸늘한 ê²ƒì„ ê·¼ì‹¬í•˜ì˜€ë‹¤.
+"네. 아주 잔잔했습니다. ì €ê°™ì´ ì•½í•œ ì‚¬ëžŒë„ ë°–ì— ë‚˜ì™€ì„œ 바다 경치를 구경하였습니다."
+í•˜ê³ ì •ìž„ì€ ì‚¬êµì ì¸ ì›ƒìŒì„ 웃었다. 그러나 ê·¸ì˜ ëˆˆì—는 ëˆˆë¬¼ì´ ìžˆëŠ” 것 같았다.
+"최 ì„ ìƒë‹˜ ì–´ë”” ê³„ì‹ ì§€ 아세요?"
+í•˜ê³ ì •ìž„ì€ ë‚˜ë¥¼ ë”°ë¼ ì„œë©´ì„œ 물었다.
+"ë‚˜ë„ ì§€ê¸ˆê¹Œì§€ 몰ëžëŠ”ë° ì–´ì œ 편지를 하나 받았지."
+하는 ê²ƒì´ ë‚´ 대답ì´ì—ˆë‹¤.
+"네? 편지 받으셨어요? ì–´ë”” 계ì‹ë‹ˆê¹Œ?"
+í•˜ê³ ì •ìž„ì€ ê±¸ìŒì„ 멈추었다.
+"ë‚˜ë„ ëª°ë¼."
+í•˜ê³ ë‚˜ë„ ì •ìž„ê³¼ ê°™ì´ ê±¸ìŒì„ ë©ˆì¶”ê³ ,
+"ê·¸ 편지를 ì“´ ê³³ë„ ì•Œê³ ë¶€ì¹œ ê³³ë„ ì•Œì§€ë§ˆëŠ” 지금 어디로 갔는지 ê·¸ê²ƒì€ ëª¨ë¥´ì§€. ì°¾ì„ ìƒê°ë„ ë§ê³ íŽ¸ì§€í• ìƒê°ë„ ë§ë¼ê³ 했으니까."
+í•˜ê³ ì‚¬ì‹¤ëŒ€ë¡œ 대답하였다.
+"어디야요? ê·¸ 편지 ë¶€ì¹˜ì‹ ê³³ì´ ì–´ë””ì•¼ìš”? ì € ì´ ì°¨ë¡œ ë”°ë¼ê°ˆ 테야요."
+í•˜ê³ ì •ìž„ì€ ì¡°ê¸‰í•˜ì˜€ë‹¤.
+"ê°ˆ 때ì—는 ê°€ë”ë¼ë„ ì´ ì°¨ì—야 ê°ˆ 수가 있나."
+í•˜ê³ ë‚˜ëŠ” 겨우 ì •ìž„ì„ ëŒê³ 들어왔다.
+ì •ìž„ì„ ì§‘ìœ¼ë¡œ ë°ë¦¬ê³ 와서 대강 ë§ì„ í•˜ê³ , ì´íŠ¿ë‚ ìƒˆë²½ 차로 ë– ë‚œë‹¤ëŠ” 것ì„,
+"가만 있어. 어떻게 계íšì„ 세워 ê°€ì§€ê³ í•´ì•¼ì§€."
+하여 가까스로 붙들어 놓았다.
+ì•„ì¹¨ì„ ë¨¹ê³ ë‚˜ì„œ ìµœì„ ì§‘ì—를 ê°€ ë³´ë ¤ê³ í• ì¦ˆìŒì— 순임ì´ê°€ 와서 마루 ëì— ì„ ì±„ë¡œ,
+"ì„ ìƒë‹˜, 어머니가 ìž ê¹ë§Œ 오ì‹ì‹œì‚¬êµ¬ìš”."
+하였다.
+"ì •ìž„ì´ê°€ 왔다."
+í•˜ê³ ë‚´ê°€ 그러니까,
+"ì •ìž„ì´ê°€ìš”?"
+í•˜ê³ ìˆœìž„ì€ ê¹œì§ ë†€ë¼ë©´ì„œ,
+"ì •ìž„ì´ëŠ” 아버지 ê³„ì‹ ë°ë¥¼ 알아요?"
+í•˜ê³ ë¬¼ì—ˆë‹¤.
+"ì •ìž„ì´ë„ 모른단다. 너 아버지는 ì‹œë² ë¦¬ì•„ì— ê³„ì‹œê³ ì •ìž„ì´ëŠ” ë™ê²½ 있다가 ì™”ëŠ”ë° ì•Œ 리가 있니?"
+í•˜ê³ ë‚˜ëŠ” ìˆœìž„ì˜ ìƒê°ì„ ê¹¨ëœ¨ë¦¬ë ¤ 하였다. 순임ì€,
+"ì •ìž„ì´ê°€ ì–´ë”” 있어요?"
+í•˜ê³ ë°©ë“¤ 있는 ê³³ì„ ë‘˜ëŸ¬ë³´ë©°,
+"ì–¸ì œ 왔어요?"
+í•˜ê³ ëŠ” ê·¸ì œì•¼ ì •ìž„ì—게 대한 반가운 ì •ì´ ë°œí•˜ëŠ” 듯ì´,
+"ì •ìž„ì•„!"
+í•˜ê³ ë¶ˆëŸ¬ 본다.
+"언니요? 여기 있수."
+í•˜ê³ ì •ìž„ì´ê°€ 머릿방 ë¬¸ì„ ì—´ê³ ì˜·ì„ ê°ˆì•„ìž…ë˜ ì±„ë¡œ ê³ ê°œë¥¼ 내어민다.
+ìˆœìž„ì€ êµ¬ë‘를 ì°¨ë‚´ë²„ë¦¬ë“¯ì´ ë²—ì–´ ë†“ê³ ì •ìž„ì˜ ë°©ìœ¼ë¡œ 뛰어들어간다.
+나는 최ì„ì˜ ì§‘ì—를 ê°€ëŠë¼ê³ 외투를 ìž…ê³ ëª¨ìžë¥¼ ì“°ê³ ì •ìž„ì˜ ë°©ë¬¸ì„ ì—´ì–´ 보았다. ë‘ ì²˜ë…€ëŠ” ìš¸ê³ ìžˆì—ˆë‹¤.
+"ì •ìž„ì´ë„ 가지. 아주머니 뵈러 안 ê°€?"
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì„ ìž¬ì´‰í•˜ì˜€ë‹¤.
+"ì„ ìƒë‹˜ ë¨¼ì € ê°€ 계셔요."
+í•˜ê³ ìˆœìž„ì´ê°€ ëˆˆë¬¼ì„ ì”»ê³ ì¼ì–´ë‚˜ë©´ì„œ,
+"ì´ë”°ê°€ ì œê°€ ì •ìž„ì´í—ˆêµ¬ 갑니다."
+í•˜ê³ ë‚´ê²Œ ëˆˆì„ ë”ì©ê±°ë ¤ 보였다. ê°‘ìžê¸° ì •ìž„ì´ê°€ 가면 어머니와 ì •ìž„ì´ì™€ 사ì´ì— ì–´ë– í•œ íŒŒëž€ì´ ì¼ì–´ë‚˜ì§€ë‚˜ ì•„ë‹ˆí• ê¹Œ í•˜ê³ ìˆœìž„ì´ê°€ ì—¼ë ¤í•˜ëŠ” 것ì´ì—ˆë‹¤. ìˆœìž„ë„ ì¸ì œëŠ” ë…¸ì„±í•˜ì—¬ì¡Œë‹¤ê³ ë‚˜ëŠ” ìƒê°í•˜ì˜€ë‹¤.
+"ì„ ìƒë‹˜ ì´ íŽ¸ì§€ê°€ 다 ì°¸ë§ì¼ê¹Œìš”?"
+í•˜ê³ ë‚˜ë¥¼ 보는 길로 ìµœì„ ë¶€ì¸ì´ 물었다. ìµœì„ ë¶€ì¸ì€ 히스테리를 ì¼ìœ¼í‚¨ 사람 모양으로 머리와 ì†ì„ 떨었다.
+나는 ì°¸ë§ì´ëƒ 하는 ê²ƒì´ ë¬´ì—‡ì„ ê°€ë¦¬í‚¤ëŠ” ë§ì¸ì§€ 분명하지 아니하여서,
+"ë…¸ì„ì´ ê±°ì§“ë§í• 사람입니까?"
+í•˜ê³ ëŒ€ì²´ë¡ ìœ¼ë¡œ 대답하였다.
+"앉으ì‹ì‡¼. 앉으시란 ë§ì”€ë„ 안 í•˜ê³ ."
+í•˜ê³ ë¶€ì¸ì€ 침착한 ëª¨ì–‘ì„ ë³´ì´ë ¤ê³ ë¹™ê·¸ë ˆ 웃었으나, ê·¸ê²ƒì€ ì‹¤íŒ¨ì˜€ë‹¤.
+"그게 ì°¸ë§ì¼ê¹Œìš”? ì •ìž„ì´ê°€ 아기를 ë—€ ê²ƒì´ ì•„ë‹ˆë¼, íê°€ ë‚˜ë¹ ì„œ 피를 í† í•˜ê³ ìž…ì›í•˜ì˜€ë‹¤ëŠ” 것ì´?"
+í•˜ê³ ë¶€ì¸ì€ 중대하다는 í‘œì •ì„ ê°€ì§€ê³ ë¬»ëŠ”ë‹¤.
+"그럼 ê·¸ê²ƒì´ ì°¸ë§ì´ 아니구요. ì•„ì§ë„ 그런 ì˜ì‹¬ì„ ê°€ì§€ê³ ê³„ì‹ë‹ˆê¹Œ. ì •ìž„ì´ì™€ 한 ë°©ì— ìžˆëŠ” í•™ìƒì´ 모함한 것ì´ë¼ê³ 안 그랬어요? 그게 ë§ì´ ë©ë‹ˆê¹Œ."
+í•˜ê³ ì–¸ì„±ì„ ë†’ì—¬ì„œ 대답하였다.
+"그럼 왜 ì •ìž„ì´ê°€ 호텔ì—서 왜 아버지한테 한 번 안아 달ë¼ê³ 그래요? ê·¸ íŽ¸ì§€ì— ì“´ 대로 한 번 안아만 보았ì„까요?"
+ì´ê²ƒì€ ë¶€ì¸ì˜ 둘째 물ìŒì´ì—ˆë‹¤.
+"나는 ê·¸ë¿ì´ë¼ê³ 믿습니다. ê·¸ê²ƒì´ ë„리어 깨ë—하다는 표ë¼ê³ 믿습니다. 안 ê·¸ë ‡ìŠµë‹ˆê¹Œ?"
+í•˜ê³ ë‚˜ëŠ” 딱하다는 í‘œì •ì„ í•˜ì˜€ë‹¤.
+"글쎄요."
+í•˜ê³ ë¶€ì¸ì€ 한참ì´ë‚˜ ìƒê°í•˜ê³ 있다가,
+"ì •ë§ ì• ì•„ë²„ì§€ê°€ í˜¼ìž ë‹¬ì•„ë‚¬ì„까요? ì •ìž„ì´ë¥¼ ë°ë¦¬ê³ 가케오치한 ê²ƒì´ ì•„ë‹ê¹Œìš”? ê¼ ê·¸ëž¬ì„ ê²ƒë§Œ ê°™ì€ë°."
+í•˜ê³ ë¶€ì¸ì€ 괴로운 í‘œì •ì„ ê°ì¶”ë ¤ëŠ” ë“¯ì´ ê³ ê°œë¥¼ 숙ì¸ë‹¤.
+나는 남편ì—게 대한 ì•„ë‚´ì˜ ì˜ì‹¬ì´ 어떻게 깊ì€ê°€ì— 아니 놀랄 수가 없어서,
+"í—ˆ."
+í•˜ê³ í•œ 마디 ì›ƒê³ ,
+"ê·¸ë ‡ê²Œ ìˆ˜ì‹ ë…„ ë™ì•ˆ 부부 ìƒí™œì„ í•˜ì‹œê³ ë„ ê·¸ë ‡ê²Œ ë…¸ì„ì˜ ì¸ê²©ì„ ëª°ë¼ ì£¼ì‹ë‹ˆê¹Œ. 나는 ë¶€ì¸ê»˜ì„œ 하시는 ë§ì”€ì´ 부러 하시는 ë†ë‹´ìœ¼ë¡œë°–ì— ì•„ë‹ˆ 들립니다. ì •ìž„ì´ê°€ 지금 서울 있습니다."
+í•˜ê³ ë˜ í•œ 번 웃었다. ì •ë§ ê¸°ë§‰ížŒ 웃ìŒì´ì—ˆë‹¤.
+"ì •ìž„ì´ê°€ 서울 있어요?"
+í•˜ê³ ë¶€ì¸ì€ íŽ„ì© ë›°ë©´ì„œ,
+"ì–´ë”” 있다가 ì–¸ì œ 왔습니까? 그게 ì •ë§ìž…니까?"
+í•˜ê³ ì˜ì•„한 ë¹›ì„ ë³´ì¸ë‹¤. ê¼ ìµœì„ì´í•˜ê³ 함께 ë‹¬ì•„ë‚¬ì„ ì •ìž„ì´ê°€ ì„œìš¸ì— ìžˆì„ ë¦¬ê°€ 없는 것ì´ì—ˆë‹¤.
+"ë™ê²½ì„œ 오늘 ì•„ì¹¨ì— ì™”ìŠµë‹ˆë‹¤. 지금 우리 ì§‘ì—서 순임ì´í—ˆêµ¬ ì´ì•¼ê¸°ë¥¼ í•˜ê³ ìžˆìœ¼ë‹ˆê¹Œ 조금 있으면 뵈오러 올 것입니다."
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì´ê°€ 분명히 서울 있는 ê²ƒì„ ì¼ì¼ì´ ì¦ê±°ë¥¼ 들어서 ì¦ëª…하였다. ê·¸ë¦¬ê³ ìš°ìŠ¤ìš´ ê²ƒì„ ì†ìœ¼ë¡œ 참았다. 그러나 ë‹¤ìŒ ìˆœê°„ì—는 ì´ ë³‘ë“¤ê³ ëŠ™ì€ ì•„ë‚´ì˜ ì§ˆíˆ¬ì™€ ì˜ì‹¬ìœ¼ë¡œ 괴로워서 ëœëœëœëœ ë–¨ê³ ì•‰ì•˜ëŠ” ê²ƒì„ ê°€ì—¾ê²Œ ìƒê°í•˜ì˜€ë‹¤.
+ì •ìž„ì´ê°€ 지금 ì„œìš¸ì— ìžˆëŠ” ê²ƒì´ ë” ì˜ì‹¬í• 여지가 없는 ì‚¬ì‹¤ìž„ì´ íŒëª…ë˜ë§¤, ë¶€ì¸ì€ ë„리어 ë‚™ë§í•˜ëŠ” 듯하였다. 그가 ì œ 마ìŒëŒ€ë¡œ ê·¸ë ¤ ë†“ê³ ë¯¿ê³ í•˜ë˜ ëª¨ë“ ì² í•™ì˜ ê³„í†µì´ ë¬´ë„ˆì§„ 것ì´ì—ˆë‹¤.
+한참ì´ë‚˜ í©ì–´ì§„ ì •ì‹ ì„ ëª» 수습하는 ë“¯ì´ ì•‰ì•„ 있ë”니 아주 기운 없는 어조로,
+"ì„ ìƒë‹˜ ì• ì•„ë²„ì§€ê°€ ì •ë§ ì£½ì„까요? ì •ë§ ì˜ì˜ ì§‘ì—를 안 ëŒì•„올까요?"
+í•˜ê³ ë¬»ëŠ”ë‹¤. ê·¸ 눈ì—는 ë²Œì¨ ëˆˆë¬¼ì´ ì–´ë¦¬ì—ˆë‹¤.
+"글쎄요. ë‚´ ìƒê° 같아서는 다시는 ì§‘ì— ëŒì•„오지 ì•„ë‹ˆí• ê²ƒ 같습니다. ë˜ ê·¸ë§Œì¹˜ ë§ì‹ ì„ í–ˆìœ¼ë‹ˆ, ì´ì œ 무슨 낯으로 ëŒì•„옵니까. ë‚´ë¼ë„ 다시 ì§‘ì— ëŒì•„올 ìƒê°ì€ 아니 ë‚´ê² ìŠµë‹ˆë‹¤."
+í•˜ê³ ë‚˜ëŠ” ì˜ì‹ì 으로 ì•…ì˜ë¥¼ ê°€ì§€ê³ ë¶€ì¸ì˜ ê°€ìŠ´ì— ì¹¼ì„ í•˜ë‚˜ 박았다.
+ê·¸ ì¹¼ì€ ë¶„ëª…ížˆ ë¶€ì¸ì˜ ê°€ìŠ´ì— ì•„í”„ê²Œ 박힌 모양ì´ì—ˆë‹¤.
+"ì„ ìƒë‹˜. 어떡하면 좋습니까. ì• ì•„ë²„ì§€ê°€ 죽지 않게 í•´ 주세요. ê·¸ë ‡ì§€ ì•Šì•„ë„ ìˆœìž„ì´ë…„ì´ ì œê°€ ê±” 아버지를 달아나게나 한 것처럼 ì›ë§ì„ 하는ë°ìš”. 그러다가 ì •ë…• 죽으면 어떻게 합니까. ì œì¼ ë”´ ìžì‹ë“¤ì˜ ì›ë§ì„ 들ì„ê¹Œë´ ê²ì´ 납니다. ì„ ìƒë‹˜, 어떻게 ì• ì•„ë²„ì§€ë¥¼ 붙들어다 주세요."
+í•˜ê³ ë§ˆì¹¨ë‚´ ì°¸ì„ ìˆ˜ ì—†ì´ ìš¸ì—ˆë‹¤. ë§ì€ ë¹„ë¡ ìžì‹ë“¤ì˜ ì›ë§ì´ ë‘ë µë‹¤ê³ í•˜ì§€ë§ˆëŠ” ì§ˆíˆ¬ì˜ ê°ì •ì´ ìŠ¤ëŸ¬ì§ˆ ë•Œì— ê·¸ì—게는 남편ì—게 대한 ì•„ë‚´ì˜ ì• ì •ì´ ë§‰í˜”ë˜ ë¬¼ê³¼ ê°™ì´ í„°ì ¸ 나온 것ì´ë¼ê³ 나는 í•´ì„하였다.
+"글쎄, ì–´ë”” 있는 줄 ì•Œê³ ì°¾ìŠµë‹ˆê¹Œ. ë…¸ì„ì˜ ì„±ë¯¸ì— í•œë²ˆ 아니 í•œë‹¤ê³ í–ˆìœ¼ë©´ 다시 íŽ¸ì§€í• ë¦¬ëŠ” ë§Œë¬´í•˜ë‹¤ê³ ë¯¿ìŠµë‹ˆë‹¤."
+하여 나는 ë¶€ì¸ì˜ ê°€ìŠ´ì— ë‘˜ì§¸ ì¹¼ë‚ ì„ ë°•ì•˜ë‹¤.
+나는 ë¹„ë¡ ìµœì„ì˜ ë¶€ì¸ì´ ì²í•˜ì§€ 아니하ë”ë¼ë„ 최ì„ì„ ì°¾ìœ¼ëŸ¬ ë– ë‚˜ì§€ 아니하면 아니 ë ì˜ë¬´ë¥¼ 진다. ì‚° 최ì„ì„ ëª» ì°¾ë”ë¼ë„ 최ì„ì˜ ì‹œì²´ë¼ë„, 무ë¤ì´ë¼ë„, ì£½ì€ ìžë¦¬ë¼ë„, 마지막 ìžˆë˜ ê³³ì´ë¼ë„ 찾아보지 아니하면 아니 ë ì˜ë¬´ë¥¼ 깨닫는다.
+그러나 시êµì´ 변하여 ê·¸ 때ì—는 ì•„ë¼ì‚¬ì— 가는 ê²ƒì€ ì—¬ê°„ 곤란한 ì¼ì´ 아니었다. ê·¸ 때ì—는 ë¶ë§Œì˜ í’ìš´ì´ ê¸‰ë°•í•˜ì—¬ 만주리를 통과하기는 ì‚¬ì‹¤ìƒ ë¶ˆê°€ëŠ¥ì— ê°€ê¹Œì› ë‹¤. 마ì ì‚°(馬å å±±) ì¼íŒŒì˜ 군대가 í¥ì•ˆë ¹, 하ì¼ë¼ë¥´ ë“±ì§€ì— ì›…ê±°í•˜ì—¬ ì–¸ì œ 대충ëŒì´ íë°œë 는지 ëª¨ë¥´ë˜ ë•Œì˜€ë‹¤. ì´ ë•Œë¬¸ì— ì‹œë² ë¦¬ì•„ì— ë“¤ì–´ê°€ê¸°ëŠ” ê±°ì˜ ì ˆë§ ìƒíƒœë¼ê³ í•˜ê² ê³ , ë˜ ê´€í—Œë„ ì•„ë¼ì‚¬ì— 들어가는 ì—¬í–‰ê¶Œì„ ìž˜ êµë¶€í• 것 같지 아니하였다.
+ë¶€ì¸ì€ ìš¸ê³ , 나는 ì´ëŸ° ìƒê° ì €ëŸ° ìƒê° í•˜ê³ ìžˆëŠ” ë™ì•ˆì— 문 ë°–ì—는 순임ì´, ì •ìž„ì´ê°€ 들어오는 소리가 ë“¤ë ¸ë‹¤.
+"ì•„ì´, ì •ìž„ì´ëƒ."
+í•˜ê³ ë¶€ì¸ì€ 반갑게 허리 굽혀 ì¸ì‚¬í•˜ëŠ” ì •ìž„ì˜ ì–´ê¹¨ì— ì†ì„ ëŒ€ê³ ,
+"ìž ì•‰ì•„ë¼. 그래 ì¸ì œ ë³‘ì´ ì¢€ 나으ëƒâ€¦â€¦ 수척했구나. ë” ë…¸ì„±í•´ì§€êµ¬ ë°˜ ë…„ë„ ëª» ë˜ì—ˆëŠ”ë°."
+í•˜ê³ ì •ìž„ì—게 대하여 ì• ì •ì„ í‘œí•˜ëŠ” ê²ƒì„ ë³´ê³ ë‚˜ëŠ” ì˜ì™¸ì§€ë§ˆëŠ” 다행으로 ìƒê°í•˜ì˜€ë‹¤. 나는 ì •ìž„ì´ê°€ 오면 보기 ì‹«ì€ í•œ ì‹ ì„ ì—°ì¶œí•˜ì§€ 않나 í•˜ê³ ê·¼ì‹¬í•˜ì˜€ë˜ ê²ƒì´ë‹¤.
+"í¬ ìž˜ ìžë¼ìš”?"
+í•˜ê³ ì •ìž„ì€ í•œì°¸ì´ë‚˜ 있다가 비로소 ìž…ì„ ì—´ì—ˆë‹¤.
+"ì‘, 잘 있단다. 컸나 ê°€ ë³´ì•„ë¼."
+í•˜ê³ ë¶€ì¸ì€ ë”ìš± 반가운 í‘œì •ì„ ë³´ì¸ë‹¤.
+"ì–´ëŠ ë°©ì´ì•¼?"
+í•˜ê³ ì •ìž„ì€ ì„ ë¬¼ ë³´í‰ì´ë¥¼ ë“¤ê³ ìˆœìž„ê³¼ 함께 나가 버린다. ì—¬ìžì¸ ì •ìž„ì€ í¬ì™€ 순임과 ë¶€ì¸ê³¼ ë˜ ìˆœìž„ì˜ ë‹¤ë¥¸ ë™ìƒì—게 ì„ ë¬¼ 사 오는 ê²ƒì„ ìžŠì–´ë²„ë¦¬ì§€ 아니하였다.
+ì •ìž„ê³¼ ìˆœìž„ì€ í•œ ì´ì‚¼ ë¶„ 있다가 ëŒì•„왔다. ë°–ì—서 í¬ê°€ 무엇ì´ë¼ê³ ì§€ì ˆëŒ€ëŠ” 소리가 들린다. 아마 ì •ìž„ì´ê°€ 사다 준 ì„ ë¬¼ì„ ë°›ê³ ì¢‹ì•„í•˜ëŠ” 모양ì´ë‹¤.
+ì •ìž„ì€ ë“¤ê³ ì˜¨ ë³´í‰ì´ì—서 ì—¬ìžìš© 배스로브 하나를 내어서 ë¶€ì¸ì—게주며,
+"맞으실까?"
+하였다.
+"ì•„ì´ ê·¸ê±´ 무어ë¼ê³ 사 왔니?"
+í•˜ê³ ë¶€ì¸ì€ 좋아ë¼ê³ ìž…ì–´ ë³´ê³ , ì´ë¦¬ ë³´ê³ ì €ë¦¬ ë³´ê³ í•˜ë©´ì„œ,
+"난 ì´ëŸ° ê±° ì²˜ìŒ ìž…ì–´ 본다."
+í•˜ê³ ìžê¾¸ ëˆì„ ë™ì—¬ë§¨ë‹¤.
+"ì •ìž„ì´ê°€ 난 파ìžë§ˆë¥¼ 사다 주었어."
+í•˜ê³ ìˆœìž„ì€ ë”°ë¡œ ìŒŒë˜ êµµì€ ì¤„ 있는 융 파ìžë§ˆë¥¼ 내어서 경매장 사람 모양으로 í”들어 ë³´ì´ë©°,
+"어머니 ê·¸ 배스로브 나 주우. 어머닌 늙ì€ì´ê°€ 그건 입어서 무엇 하우?"
+í•˜ê³ ë¶€ì¸ì´ ìž…ì€ ë°°ìŠ¤ë¡œë¸Œë¥¼ 벗겨서 ì œê°€ ìž…ê³ ë‘ í˜¸ì£¼ë¨¸ë‹ˆì— ì†ì„ ë„£ê³ ì–´ê¸°ì£½ì–´ê¸°ì£½í•˜ê³ ì„œì–‘ ë¶€ì¸ë„¤ í‰ë‚´ë¥¼ 낸다.
+"ì €ëŸ° ë§ê´„량ì´ê°€ ë„ˆë„ ì •ìž„ì´ì²˜ëŸ¼ 좀 ì–Œì „í•´ ë³´ì•„ë¼."
+í•˜ê³ ë¶€ì¸ì€ ìˆœìž„ì„ í–¥í•˜ì—¬ ëˆˆì„ í˜ê¸´ë‹¤.
+ì´ ëª¨ì–‘ìœ¼ë¡œ ë¶€ì¸ê³¼ ì •ìž„ê³¼ì˜ ëŒ€ë©´ì€ ê°€ìž¥ ì›ë§Œí•˜ê²Œ ë˜ì—ˆë‹¤.
+그러나 ë¶€ì¸ì€ ì •ìž„ì—게 최ì„ì˜ íŽ¸ì§€ë¥¼ ë³´ì´ê¸°ë¥¼ ì›ì¹˜ 아니하였다. 편지가 왔다는 ë§ì¡°ì°¨ ìž… ë°–ì— ë‚´ì§€ 아니하였다. 그러나 순임ì´ê°€ ì •ìž„ì—게 대하여 표하는 ì• ì •ì€ ì—¬ê°„ 깊지 아니하였다. ê·¸ ë‘˜ì€ í•˜ë£¨ ì¢…ì¼ ê°™ì´ ìžˆì—ˆë‹¤. ì •ìž„ì€ ê·¸ ë‚ ì €ë…ì— ë‚˜ë¥¼ ë³´ê³ ,
+"순임ì´í—Œí…Œ 최 ì„ ìƒë‹˜ 편지 ì‚¬ì—°ì€ ë‹¤ 들었어요. 순임ì´ê°€ ê·¸ 편지를 í›”ì³ë‹¤ê°€ 얼른얼른 몇 êµ°ë° ì½ì–´ë„ 보았습니다. 순임ì´ê°€ ì €ë¥¼ í½ ë™ì •하면서 ì ˆë”러 최 ì„ ìƒì„ ë”°ë¼ê°€ ë³´ë¼ê³ 그래요. í˜¼ìž ê°€ê¸°ê°€ ì–´ë ¤ìš°ë©´ ìžê¸°í—ˆêµ¬ ê°™ì´ ê°€ìžê³ . 가서 최 ì„ ìƒì„ ë°ë¦¬ê³ 오ìžê³ . 어머니가 못 가게 í•˜ê±°ë“ ëª°ëž˜ ë‘˜ì´ ë„ë§í•´ ê°€ìžê³ . 그래서 그러ìžê³ 그랬습니다. 안ë지요. ì„ ìƒë‹˜?"
+í•˜ê³ ì €í¬ë¼ë¦¬ ìž‘ì •ì€ ë‹¤ í•´ ë†“ê³ ëŠ” ìŠ¬ì© ë‚´ ì˜í–¥ì„ 물었다.
+"ì Šì€ ì—¬ìž ë‹¨ë‘˜ì´ì„œ 먼 ì—¬í–‰ì„ ì–´ë–»ê²Œ 한단 ë§ì´ëƒ? 게다가 지금 ë¶ë§Œì£¼ 형세가 대단히 위급한 모양ì¸ë°. ë˜ ì •ìž„ì´ëŠ” ê·¸ ê±´ê°• ê°€ì§€ê³ ì–´ë””ë¥¼ ê°€, ì´ ì¶”ìš´ 겨울ì—?"
+í•˜ê³ ë‚˜ëŠ” ì´ëŸ° ë§ì´ 다 쓸ë°ì—†ëŠ” ë§ì¸ 줄 ì•Œë©´ì„œë„ ì–´ë¥¸ìœ¼ë¡œì„œ 한 마디 안 í• ìˆ˜ 없어서 하였다. ì •ìž„ì€ ë” ì œ ëœ»ì„ ì£¼ìž¥í•˜ì§€ë„ ì•„ë‹ˆí•˜ì˜€ë‹¤.
+ê·¸ ë‚ ì €ë…ì— ì •ìž„ì€ ìˆœìž„ì˜ ì§‘ì—서 잤는지 ì§‘ì— ì˜¤ì§€ë¥¼ 아니하였다.
+나는 ì´ ì¼ì„ 어찌하면 좋ì€ê°€, ì´ ë‘ ì—¬ìžì˜ í–‰ë™ì„ 어찌하면 좋ì€ê°€ í•˜ê³ í˜¼ìž ë™ë™ ìƒê°í•˜ê³ 있었다.
+ì´íŠ¿ë‚ ë‚˜ëŠ” ê¶ê¸ˆí•´ì„œ 최ì„ì˜ ì§‘ì—를 ê°”ë”니 ë¶€ì¸ì´,
+"우리 ìˆœìž„ì´ ëŒì— 갔어요?"
+í•˜ê³ ì˜ì™¸ì˜ ì§ˆë¬¸ì„ í•˜ì˜€ë‹¤.
+"아니오."
+í•˜ê³ ë‚˜ëŠ” 놀ëžë‹¤.
+"그럼, ì´ê²ƒë“¤ì´ 어딜 갔어요? 난 ì •ìž„ì´í—ˆêµ¬ ëŒì—서 ìž” 줄만 알았는ë°."
+í•˜ê³ ë¶€ì¸ì€ 무슨 불길한 것ì´ë‚˜ 본 ë“¯ì´ ëª¸ì„ ë–¤ë‹¤. 히스테리가 ì¼ì–´ë‚œ 것ì´ì—ˆë‹¤.
+나는 ìž…ë§›ì„ ë‹¤ì‹œì—ˆë‹¤. 분명히 ì´ ë‘ ì—¬ìžê°€ ì‹œë² ë¦¬ì•„ë¥¼ í–¥í•˜ê³ ë– ë‚¬êµ¬ë‚˜ 하였다.
+ê·¸ ë‚ ì€ ì†Œì‹ì´ ì—†ì´ ì§€ë‚¬ë‹¤. ê·¸ ì´íŠ¿ë‚ ë„ ì†Œì‹ì´ ì—†ì´ ì§€ë‚¬ë‹¤.
+ìµœì„ ë¶€ì¸ì€ 딸까지 ìžƒì–´ë²„ë¦¬ê³ ë¯¸ì¹œ ë“¯ì´ ìš¸ê³ ì• í†µí•˜ë‹¤ê°€ 머리를 ì‹¸ë§¤ê³ ëˆ„ì›Œ ë²„ë¦¬ê³ ë§ì•˜ë‹¤.
+ì •ìž„ì´ì™€ 순임ì´ê°€ 없어진 ì§€ ì‚¬í˜ ë§Œì— ì•„ì¹¨ ìš°íŽ¸ì— íŽ¸ì§€ 한 ìž¥ì„ ë°›ì•˜ë‹¤. ê·¸ 봉투는 봉천 ì•¼ë§ˆë„ í˜¸í…” 것ì´ì—ˆë‹¤. ê·¸ ì†ì—는 편지 ë‘ ìž¥ì´ ë“¤ì–´ 있었다. 한 ìž¥ì€ ,
+ì„ ìƒë‹˜! ì €ëŠ” 아버지를 위하여, ì •ìž„ì„ ìœ„í•˜ì—¬ ì •ìž„ê³¼ ê°™ì´ ì§‘ì„ ë– ë‚¬ìŠµë‹ˆë‹¤.
+어머님께서 슬í¼í•˜ì‹¤ ì¤„ì€ ì•Œì§€ë§ˆëŠ” ì €í¬ë“¤ì´ 다행히 아버지를 찾아서 ëª¨ì‹œê³ ì˜¤ë©´ ì–´ë¨¸ë‹ˆê»˜ì„œë„ ê¸°ë»í•˜ì‹¤ ê²ƒì„ ë¯¿ìŠµë‹ˆë‹¤. ì €í¬ë“¤ì´ 가지 ì•„ë‹ˆí•˜ê³ ëŠ” 아버지는 살아서 ëŒì•„오실 것 같지 아니합니다. 아버지를 ì´ì²˜ëŸ¼ 불행하시게 한 죄는 ì ˆë°˜ì€ ì–´ë¨¸ë‹ˆê»˜ ìžˆê³ , ì ˆë°˜ì€ ì œê²Œ 있습니다. ì €ëŠ” 아버지 ì¼ì„ ìƒê°í•˜ë©´ ê°€ìŠ´ì´ ë¯¸ì–´ì§€ê³ ì´ê°€ 갈립니다. ì €ëŠ” 아무리 해서ë¼ë„ 아버지를 ì°¾ì•„ë‚´ì–´ì•¼ê² ìŠµë‹ˆë‹¤.
+ì €ëŠ” ì •ìž„ì„ ë¬´í•œížˆ ë™ì •합니다. ì €ëŠ” ì–´ë ¤ì„œ ì •ìž„ì„ ë¯¸ì›Œí•˜ê³ ì•„ë²„ì§€ë¥¼ 미워하였지마는 ì§€ê¸ˆì€ ì•„ë²„ì§€ì˜ ë§ˆìŒê³¼ ì •ìž„ì˜ ë§ˆìŒì„ 알아볼 만치 ìžëžìŠµë‹ˆë‹¤.
+ì„ ìƒë‹˜! ì €í¬ë“¤ì€ ë‘˜ì´ ì†ì„ ìž¡ê³ ì–´ë””ë¥¼ ê°€ì„œë“ ì§€ 아버지를 ì°¾ì•„ë‚´ê² ìŠµë‹ˆë‹¤. í•˜ë‚˜ë‹˜ì˜ ì‚¬ìžê°€ ë‚®ì—는 êµ¬ë¦„ì´ ë˜ê³ ë°¤ì—는 ë³„ì´ ë˜ì–´ì„œ 반드시 ì €í¬ë“¤ì˜ ì•žê¸¸ì„ ì¸ë„í• ì¤„ 믿습니다.
+ì„ ìƒë‹˜, ì €í¬ ì–´ë¦°ê²ƒë“¤ì˜ ëœ»ì„ ë¶ˆìŒížˆ 여기셔서 ëˆ ì²œ ì›ë§Œ ì „ë³´ë¡œ ë³´ë‚´ 주시기를 ë°”ëžë‹ˆë‹¤.
+ë§Œì¼ ë§Œì£¼ë¦¬ë¡œ 가는 ê¸¸ì´ ëŠì–´ì§€ë©´ ëª½ê³ ë¡œ ìžë™ì°¨ë¡œë¼ë„ ê°€ë ¤ê³ í•©ë‹ˆë‹¤. 아버지 íŽ¸ì§€ì— ì 힌 Fì—ì˜ R씨를 ì°¾ê³ , ê·¸ë¦¬ê³ ë°”ì´ì¹¼ í˜¸ë°˜ì˜ ë°”ì´ì¹¼ë¦¬ìŠ¤ì½”ì—를 찾아, ì´ ëª¨ì–‘ìœ¼ë¡œ 찾으면 반드시 아버지를 찾아 ë‚´ê³ ì•¼ ë§ ê²ƒì„ ë¯¿ìŠµë‹ˆë‹¤.
+ì„ ìƒë‹˜, ëˆ ì²œ ì›ë§Œ 봉천 ì•¼ë§ˆë„ í˜¸í…” 최순임 ì´ë¦„으로 ë¶€ì³ ì£¼ì„¸ìš”. ê·¸ë¦¬ê³ ì–´ë¨¸ë‹ˆí—Œí…ŒëŠ” ì•„ì§ ë§ì”€ ë§ì•„ 주세요.
+ì„ ìƒë‹˜. ì´ë ‡ê²Œ ê±±ì •í•˜ì‹œê²Œ 해서 미안합니다. 용서하세요.
+순임 ìƒì„œ
+ì´ë ‡ê²Œ ì¨ ìžˆë‹¤. ë˜ í•œ 장ì—는,
+ì„ ìƒë‹˜! ì €ëŠ” 마침내 ëŒì•„오지 ëª»í• ê¸¸ì„ ë– ë‚˜ë‚˜ì´ë‹¤. ì–´ë””ë“ ì§€ 최 ì„ ìƒë‹˜ì„ 뵈옵는 ê³³ì—서 ì´ ëª¸ì„ ë¬»ì–´ ë²„ë¦¬ë ¤ 하나ì´ë‹¤. 지금 ë˜ ëª¸ì— ì—´ì´ ë‚˜ëŠ” 모양ì´ìš”, í˜ˆë‹´ë„ ë³´ì´ì˜¤ë‚˜ 최 ì„ ìƒì„ 뵈올 때까지는 아무리 하여서ë¼ë„ ì´ ëª©ìˆ¨ì„ ë¶€ì§€í•˜ë ¤ 하오며, 최 ì„ ìƒì„ ëµˆì˜µê³ ì œê°€ ì§„ ì€í˜œë¥¼ ê°ì‚¬í•˜ëŠ” 한 ë§ì”€ë§Œ 사뢰면 ê³ ëŒ€ ì£½ì‚¬ì™€ë„ ì—¬í•œì´ ì—†ì„까 하나ì´ë‹¤.
+순임 언니가 ì œê²Œ 주시는 사랑과 ë™ì •ì€ ì˜¤ì§ ëˆˆë¬¼ê³¼ ê°ê²©ë°–ì— ë” í‘œí• ë§ì”€ì´ 없나ì´ë‹¤. 순임 언니가 ì €ë¥¼ 보호하여 주니 마ìŒì´ ë“ ë“ í•˜ì—¬ì´ë‹¤â€¦â€¦.
+ì´ë¼ê³ 하였다.
+편지를 보아야 별로 놀랄 ê²ƒì€ ì—†ì—ˆë‹¤. 다만 ë§ê´„량ì´ë¡œë§Œ ì•Œì•˜ë˜ ìˆœìž„ì˜ ì†ì— ì–´ëŠìƒˆì— 그러한 ê°ì •ì´ ë°œë‹¬í•˜ì˜€ë‚˜ 하는 ê²ƒì„ ë†€ëž„ ë¿ì´ì—ˆë‹¤.
+그러나 ê±±ì •ì€ ì´ê²ƒì´ë‹¤. 순임ì´ë‚˜ ì •ìž„ì´ë‚˜ 다 ë‚´ê°€ ê°ë…해야 í• ì²˜ì§€ì— ìžˆê±°ëŠ˜ ê·¸ë“¤ì´ ë§Œë¦¬ 긴 ì—¬í–‰ì„ ë– ë‚œë‹¤ê³ í•˜ë‹ˆ ê°ë…ìžì¸ ë‚´ 태ë„를 어떻게 í• ê¹Œ 하는 것ì´ë‹¤.
+나는 편지를 받는 길로 ìš°ì„ ëˆ ì²œ ì›ì„ ì€í–‰ì— 가서 찾아다 놓았다.
+ì•”ë§Œí•´ë„ ë‚´ê°€ ì„œìš¸ì— ê°€ë§Œížˆ 앉아서 ë‘ ì•„ì´ì—게 ëˆë§Œ ë¶€ì³ ì£¼ëŠ” ê²ƒì´ ì¸ì •ì— ì–´ê·¸ëŸ¬ì§€ëŠ” 것 같아서 나는 여러 가지로 ì£¼ì„ ì„ í•˜ì—¬ì„œ ì—¬í–‰ì˜ ì–‘í•´ë¥¼ 얻어 ê°€ì§€ê³ ë´‰ì²œì„ í–¥í•˜ì—¬ ë– ë‚¬ë‹¤.
+ë‚´ê°€ ë´‰ì²œì— ë„착한 ê²ƒì€ ë°¤ 열시가 지나서였다. 순임과 ì •ìž„ì€ ìžë¦¬ì˜· 바람으로 ë‚´ 방으로 ë‹¬ë ¤ì™€ì„œ 반가워하였다. ê·¸ë“¤ì´ ë°˜ê°€ì›Œí•˜ëŠ” ì–‘ì€ ì‹¤ë¡œ ëˆˆë¬¼ì´ í를 만하였다.
+"ì•„ì´êµ¬ ì„ ìƒë‹˜!"
+"ì•„ì´êµ¬ 어쩌면!"
+하는 ê²ƒì´ ê·¸ë“¤ì˜ ë‚´ê²Œ 대한 ì¸ì‚¬ì˜ ì „ë¶€ì˜€ë‹¤.
+"ì •ìž„ì´ ì–´ë– ì˜¤?"
+í•˜ê³ ë‚˜ëŠ” ìˆœìž„ì˜ íŽ¸ì§€ì— ì •ìž„ì´ê°€ ì—´ì´ ìžˆë‹¨ ë§ì„ ìƒê°í•˜ì˜€ë‹¤.
+"무어요. 괜찮습니다."
+í•˜ê³ ì •ìž„ì€ ì›ƒì—ˆë‹¤.
+ì „ë“±ë¹›ì— ë³´ì´ëŠ” ì •ìž„ì˜ ì–¼êµ´ì€ ê·¸ì•¼ë§ë¡œ 대리ì„으로 ê¹Žì€ ë“¯í•˜ì˜€ë‹¤. ì—¬ìœ„ê³ í•기가 없는 ê²ƒì´ ë”ìš± ì •ìž„ì˜ ìš©ëª¨ì— ì—„ìˆ™í•œ ë§›ì„ ì£¼ì—ˆë‹¤.
+"ëˆ ê°€ì ¸ì˜¤ì…¨ì–´ìš”?"
+í•˜ê³ ìˆœìž„ì´ê°€ 어리광 ì ˆë°˜ìœ¼ë¡œ 묻다가 ë‚´ê°€ ì›ƒê³ ëŒ€ë‹µì´ ì—†ìŒì„ ë³´ê³ ,
+"우리를 붙들러 오셨어요?"
+í•˜ê³ ì„±ë‚´ëŠ” ì–‘ì„ ë³´ì¸ë‹¤.
+"그래 둘ì´ì„œë“¤ 간다니 어떻게 간단 ë§ì¸ê°€. ì‹œë² ë¦¬ì•„ê°€ ì–´ë–¤ ê³³ì— ë¶™ì—ˆëŠ”ì§€ ì•Œì§€ë„ ëª»í•˜ë©´ì„œ."
+í•˜ê³ ë‚˜ëŠ” ë‘ ì‚¬ëžŒì´ ê·¸ë¦¬ 슬í¼í•˜ì§€ 아니하는 ìˆœê°„ì„ ë³´ëŠ” ê²ƒì´ ë‹¤í–‰í•˜ì—¬ì„œ ë†ë‹´ì‚¼ì•„ 물었다.
+"왜 몰ë¼ìš”? ì‹œë² ë¦¬ì•„ê°€ ì €ê¸° 아니야요?"
+í•˜ê³ ìˆœìž„ì´ê°€ ì‚°í•´ê´€ ìª½ì„ ê°€ë¦¬í‚¤ë©°,
+"ìš°ë¦¬ë„ ì§€ë¦¬ì—서 배워서 다 알아요. ì–´ì €ê»˜ 하루 ì¢…ì¼ ì§€ë„를 사다 ë†“ê³ ì—°êµ¬ë¥¼ 하였답니다. 봉천서 ì‹ ê²½, ì‹ ê²½ì„œ 하얼빈, 하얼빈ì—서 만주리, 만주리ì—서 ì´ë¥´ì¿ ì¸ í¬, 보세요, 잘 알지 않습니까. ë˜ ë§Œì¼ ì¤‘ë™ ì² ë„ê°€ 불통ì´ë©´ 어떻게 ê°€ëŠ”ê³ í•˜ë‹ˆ 여기서 ì‚°í•´ê´€ì„ ê°€ê³ , 산해관서 ë¶ê²½ì„ 가지요. ê·¸ë¦¬ê³ ëŠ” ë¶ê²½ì„œ 장가구를 가지 않습니까. 장가구서 ìžë™ì°¨ë¥¼ íƒ€ê³ ëª½ê³ ë¥¼ 통과해서 ê°€ê±°ë“ ìš”. 잘 알지 않습니까."
+í•˜ê³ ì •ìž„ì˜ í—ˆë¦¬ë¥¼ 안으며,
+"ê·¸ë ‡ì§€ì´?"
+í•˜ê³ ìžì‹ 있는 ë“¯ì´ ì›ƒëŠ”ë‹¤.
+"ë˜ ëª½ê³ ë¡œë„ ëª» 가게 ë˜ì–´ì„œ 구ë¼íŒŒë¥¼ ëŒê²Œ ë˜ë©´?"
+í•˜ê³ ë‚˜ëŠ” êµì‚¬ê°€ ìƒë„ì—게 묻는 모양으로 물었다.
+"네, ì € ì¸ë„양으로 해서 지중해로 해서 프랑스로 해서 ê·¸ë ‡ê²Œ 가지요."
+"허, 잘 아는구나."
+í•˜ê³ ë‚˜ëŠ” 웃었다.
+"ê·¸ë ‡ê²Œë§Œ 알아요? ë˜ í•´ì‚¼ìœ„ë¡œ 해서 가는 ê¸¸ë„ ì•Œì•„ìš”. ì €í¬ë¥¼ ì–´ë¦°ì• ë¡œ 아시네."
+"잘못했소."
+"하하."
+"후후."
+사실 ê·¸ë“¤ì€ ë²Œì¨ ì–´ë¦°ì• ë“¤ì€ ì•„ë‹ˆì—ˆë‹¤. ìˆœìž„ë„ ë²Œì¨ ê·¸ ì•„ë²„ì§€ì˜ ë§í• 수 없는 ì‚¬ì •ì— ë™ì •í• ë‚˜ì´ê°€ ë˜ì—ˆë‹¤. 순임ì´ê°€ 기어다닌 ê²ƒì€ ë³¸ 나로는 ì´ê²ƒë„ ì´ìƒí•˜ê²Œ 보였다. 나는 ë²Œì¨ ë‚˜ì´ ë§Žì•˜êµ¬ë‚˜ 하는 ìƒê°ì´ 나지 ì•„ë‹ˆí• ìˆ˜ 없었다.
+나는 ìž ì•ˆ 드는 í•˜ë£»ë°¤ì„ ì§€ë‚´ë©´ì„œ 옆방ì—서 ì •ìž„ì´ê°€ ê¸°ì¹¨ì„ ì§“ëŠ” 소리를 들었다. ê·¸ 소리는 ë‚´ ê°€ìŠ´ì„ ì•„í”„ê²Œ 하였다.
+ì´íŠ¿ë‚ ë‚˜ëŠ” ë‘ ì‚¬ëžŒì—게 ëˆ ì²œ ì›ì„ 주어서 ì‹ ê²½ 가는 급행차를 태워 주었다. ëŒ€ë¥™ì˜ ì´ ê±´ì¡°í•˜ê³ ì¶”ìš´ ê¸°í›„ì— ì •ìž„ì˜ ë³‘ë“ íê°€ 견디어 ë‚ ê¹Œ í•˜ê³ ë§ˆìŒì´ 놓ì´ì§€ 아니하였다. 그러나 나는 ê·¸ë“¤ì„ ê°€ë¼ê³ ê¶Œí• ìˆ˜ëŠ” ìžˆì–´ë„ ê°€ì§€ ë§ë¼ê³ 붙들 수는 없었다. 다만 ì œ 아버지, ì œ ì• ì¸ì„ 죽기 ì „ì— ë§Œë‚ ìˆ˜ 있기만 빌 ë¿ì´ì—ˆë‹¤.
+나는 ë‘ ì•„ì´ë¥¼ ë¶ìª½ìœ¼ë¡œ ë– ë‚˜ ë³´ë‚´ê³ í˜¼ìž ì—¬ê´€ì— ë“¤ì–´ì™€ì„œ ë„무지 ì •ì‹ ì„ ì§„ì •í•˜ì§€ 못하여 ìˆ ì„ ë¨¹ê³ ìžŠìœ¼ë ¤ 하였다. 그러다가 ê·¸ ë‚ ë°¤ì°¨ë¡œ 서울로 ëŒì•„왔다.
+ì´íŠ¿ë‚ ì•„ì¹¨ì— ë‚˜ëŠ” ìµœì„ ë¶€ì¸ì„ 찾아서 순임과 ì •ìž„ì´ê°€ ì‹œë² ë¦¬ì•„ë¡œ 갔단 ë§ì„ ì „í•˜ì˜€ë‹¤.
+ê·¸ ë•Œì— ìµœ ë¶€ì¸ì€ ê±°ì˜ ì•„ë¬´ ì •ì‹ ì´ ì—†ëŠ” 듯하였다. 아무 ë§ë„ 하지 ì•„ë‹ˆí•˜ê³ ìš¸ê³ ë§Œ 있었다.
+얼마 있다가 ë¶€ì¸ì€,
+"ê·¸ê²ƒë“¤ì´ ì €í¬ë“¤ë¼ë¦¬ 가서 괜찮ì„까요?"
+하는 한 마디를 í• ë¿ì´ì—ˆë‹¤.
+ë©°ì¹ í›„ì— ìˆœìž„ì—게서 편지가 왔다. ê·¸ê²ƒì€ í•˜ì–¼ë¹ˆì—서 부친 것ì´ì—ˆë‹¤.
+í•˜ì–¼ë¹ˆì„ ì˜¤ëŠ˜ ë– ë‚©ë‹ˆë‹¤. í•˜ì–¼ë¹ˆì— ì™€ì„œ 아버지 친구 ë˜ì‹œëŠ” Rì†Œìž¥ì„ ë§Œë‚˜ëµˆì˜µê³ ì•„ë²„ì§€ ì¼ì„ 물어 보았습니다. ê·¸ë¦¬ê³ ì €í¬ ë‘˜ì´ì„œ 찾아 ë– ë‚¬ë‹¤ëŠ” ë§ì”€ì„ 하였ë”니 Rì†Œìž¥ì´ ëŒ€ë‹¨ížˆ ë™ì •하여서 ì—¬í–‰ê¶Œë„ ì¤€ë¹„í•´ 주시기로 ì €í¬ëŠ” 아버지를 찾아서 오늘 오후 모스í¬ë°” 가는 급행으로 ë– ë‚©ë‹ˆë‹¤. 가다가 Fì—ì— ë‚´ë¦¬ê¸°ëŠ” ì–´ë ¤ìš¸ 듯합니다. ì •ìž„ì˜ ê±´ê°•ì´ ëŒ€ë‹¨ížˆ 좋지 못합니다. ì¼ê¸°ê°€ ê°‘ìžê¸° 추워지는 관계ì¸ì§€ ì •ìž„ì˜ ì‹ ì—´ì´ ì˜¤í›„ë©´ 삼ì‹íŒ” ë„를 ë„˜ê³ ê¸°ì¹¨ë„ ëŒ€ë‹¨í•©ë‹ˆë‹¤. ì €ëŠ” ì—¼ë ¤ê°€ ë˜ì–´ì„œ ì •ìž„ë”러 하얼빈ì—서 ìž…ì›í•˜ì—¬ 조리를 하ë¼ê³ 권하였지마는 ë„무지 듣지를 아니합니다. ì–´ë””ê¹Œì§€ë“ ì§€ 가는 대로 가다가 ë” ëª» 가게 ë˜ë©´ ê·¸ ê³³ì—서 ì£½ëŠ”ë‹¤ê³ í•©ë‹ˆë‹¤.
+ì €ëŠ” ê·¸ ë™ì•ˆ ë©°ì¹ ì •ìž„ê³¼ ê°™ì´ ìžˆëŠ” ì¤‘ì— ì •ìž„ì´ê°€ 어떻게 ì•„ë¦„ë‹µê³ ë†’ê³ êµ³ì„¸ê²Œ 깨ë—한 ì—¬ìžì¸ ê²ƒì„ ë°œê²¬í•˜ì˜€ìŠµë‹ˆë‹¤. ì €ëŠ” 지금까지 ì •ìž„ì„ ëª°ë¼ë³¸ ê²ƒì„ ë¶€ë„럽게 ìƒê°í•©ë‹ˆë‹¤. ê·¸ë¦¬ê³ ë˜ ì œ 아버지께서 어떻게 갸륵한 어른ì´ì‹ ê²ƒì„ ì¸ì œì•¼ 깨달았습니다. ìžì‹ ëœ ì €ê¹Œì§€ë„ ì•„ë²„ì§€ì™€ ì •ìž„ê³¼ì˜ ê´€ê³„ë¥¼ ì˜ì‹¬í•˜ì˜€ìŠµë‹ˆë‹¤. ì˜ì‹¬í•˜ëŠ” 것보다는 세ìƒì—서 ë§í•˜ëŠ” 대로 ë¯¿ê³ ìžˆì—ˆìŠµë‹ˆë‹¤. 그러나 ì •ìž„ì„ ë§Œë‚˜ ë³´ê³ ì •ìž„ì˜ ë§ì„ ë“£ê³ ì•„ë²„ì§€ê»˜ì„œ ì„ ìƒë‹˜ê»˜ 드린 편지가 ëª¨ë‘ ì°¸ì¸ ê²ƒì„ ê¹¨ë‹¬ì•˜ìŠµë‹ˆë‹¤. 아버지께서는 ì¹œêµ¬ì˜ ì˜ì§€ 없는 ë”¸ì¸ ì •ìž„ì„ ë‹¹ì‹ ì˜ ì¹œí˜ˆìœ¡ì¸ ì €ì™€ ê¼ ê°™ì´ ì‚¬ëž‘í•˜ë ¤ê³ í•˜ì‹ ê²ƒì´ì—ˆìŠµë‹ˆë‹¤. ê·¸ê²ƒì´ ì–¼ë§ˆë‚˜ 갸륵한 ì¼ìž…니까. ê·¸ëŸ°ë° ì œ 어머니와 ì €ëŠ” ê·¸ ê°¸ë¥µí•˜ì‹ ì •ì‹ ì„ ëª°ë¼ë³´ê³ 오해하였습니다. 어머니는 ì§ˆíˆ¬í•˜ì‹œê³ ì €ëŠ” 시기하였습니다. ì´ê²ƒì´ 얼마나 아버지를 ê·¸ë ‡ê²Œ ê°¸ë¥µí•˜ì‹ ì•„ë²„ì§€ë¥¼ 몰ë¼ëµˆì˜¨ 것입니다. ì´ê²ƒì´ 얼마나 ë¶€ë„ëŸ½ê³ ì›í†µí•œ ì¼ìž…니까.
+ì„ ìƒë‹˜ê»˜ì„œë„ 여러 번 ì•„ë²„ì§€ì˜ ì¸ê²©ì´ 높다는 ê²ƒì„ ì €í¬ ëª¨ë…€ì—게 설명해 주셨습니다마는 마ìŒì´ 막힌 ì €ëŠ” ì„ ìƒë‹˜ì˜ ë§ì”€ë„ 믿지 아니하였습니다.
+ì„ ìƒë‹˜, ì •ìž„ì€ ì°¸ìœ¼ë¡œ 아버지를 사랑합니다. ì •ìž„ì—게는 ì´ ì„¸ìƒì— 아버지밖ì—는 사랑하는 ì•„ë¬´ê²ƒë„ ì—†ì´, ê·¸ë ‡ê²Œ 외â—으로, ê·¸ë ‡ê²Œ ì—´ë ¬í•˜ê²Œ 아버지를 ì‚¬ëª¨í•˜ê³ ì‚¬ëž‘í•©ë‹ˆë‹¤. ì €ëŠ” 잘 압니다. ì •ìž„ì´ê°€ 처ìŒì—는 아버지로 ì‚¬ëž‘í•˜ì˜€ë˜ ê²ƒì„, 그러나 ì–´ëŠ ìƒˆì— ì •ìž„ì˜ ì•„ë²„ì§€ì—게 대한 ì‚¬ëž‘ì´ ë¬´ì—‡ì¸ì§€ 모를 사랑으로 변한 것ì„, ê·¸ê²ƒì´ ì—°ì• ëƒ í•˜ê³ ë¬¼ìœ¼ë©´ ì •ìž„ì€ ì•„ë‹ˆë¼ê³ í• ê²ƒìž…ë‹ˆë‹¤. ì •ìž„ì˜ ê·¸ ëŒ€ë‹µì€ ê²°ì½” ê±°ì§“ì´ ì•„ë‹™ë‹ˆë‹¤. ì •ìž„ì€ ìˆ™ì„±í•˜ì§€ë§ˆëŠ” ì•„ì§ë„ 극히 순결합니다. ì •ìž„ì€ ë¶€ëª¨ë¥¼ ìžƒì€ í›„ì— ì•„ë²„ì§€ë°–ì— ì‚¬ëž‘í•œ ì‚¬ëžŒì´ ì—†ìŠµë‹ˆë‹¤. ë˜ ì•„ë²„ì§€ì—ê²Œë°–ì— ì‚¬ëž‘ë°›ë˜ ì¼ë„ 없습니다. ê·¸ëŸ¬ë‹ˆê¹ ì •ìž„ì€ ì•„ë²„ì§€ë¥¼ ê·¸ì € 사랑합니다 ì „ì 으로 사랑합니다. ì„ ìƒë‹˜, ì •ìž„ì˜ ì‚¬ëž‘ì—는 ì•„ë²„ì§€ì— ëŒ€í•œ ìžì‹ì˜ 사랑, 오ë¼ë¹„ì— ëŒ€í•œ 누ì´ì˜ 사랑, 사내 ì¹œêµ¬ì— ëŒ€í•œ ì—¬ìž ì¹œêµ¬ì˜ ì‚¬ëž‘, ì• ì¸ì— 대한 ì• ì¸ì˜ 사랑, ì´ ë°–ì— ì¡´ê²½í•˜ê³ ìˆë°°í•˜ëŠ” ì„ ìƒì— 대한 ì œìžì˜ 사랑까지, ì‚¬ëž‘ì˜ ëª¨ë“ ì¢…ë¥˜ê°€ í¬í•¨ë˜ì–´ 있는 ê²ƒì„ ì €ëŠ” 발견하였습니다.
+ì„ ìƒë‹˜, ì •ìž„ì˜ ì •ìƒì€ 차마 ë³¼ 수가 없습니다. ì•„ë²„ì§€ì˜ ì•ˆë¶€ë¥¼ 근심하는 ì–‘ì€ ì œ ëª‡ì‹ ë°°ë‚˜ ë˜ëŠ”ì§€ 모르게 ê°„ì ˆí•©ë‹ˆë‹¤. ì •ìž„ì€ ì € ë•Œë¬¸ì— ì•„ë²„ì§€ê°€ 불행하게 ë˜ì…¨ë‹¤ê³ 해서 차마 ë³¼ 수 없게 ì• í†µí•˜ê³ ìžˆìŠµë‹ˆë‹¤. ì§„ì •ì„ ë§ì”€í•˜ì˜¤ë©´ ì €ëŠ” 지금 ì•„ë²„ì§€ë³´ë‹¤ë„ ì–´ë¨¸ë‹ˆë³´ë‹¤ë„ ì •ìž„ì—게 가장 ë™ì •ì´ ëŒë¦½ë‹ˆë‹¤. ì„ ìƒë‹˜, ì €ëŠ” 아버지를 찾아가는 ê²ƒì´ ì•„ë‹ˆë¼ ì •ìž„ì„ ë•기 위하여 간호하기 위하여 가는 것 같습니다.
+ì„ ìƒë‹˜, ì €ëŠ” ì•„ì§ ì‚¬ëž‘ì´ëž€ ê²ƒì´ ë¬´ì—‡ì¸ì§€ë¥¼ 모릅니다. 그러나 ì •ìž„ì„ ë³´ê³ ì‚¬ëž‘ì´ëž€ ê²ƒì´ ì–´ë–»ê²Œ ì‹ ë¹„í•˜ê³ ì—´ë ¬í•˜ê³ ë†€ë¼ìš´ 것ì¸ê°€ë¥¼ 안 것 같습니다.
+ìˆœìž„ì˜ íŽ¸ì§€ëŠ” 계ì†ëœë‹¤.
+ì„ ìƒë‹˜, í•˜ì–¼ë¹ˆì— ì˜¤ëŠ” ê¸¸ì— ì†¡í™”ê°• êµ½ì´ë¥¼ ë³¼ 때ì—는 ì •ìž„ì´ê°€ 어떻게나 울었는지, ê·¸ê²ƒì€ ì°¨ë§ˆ ë³¼ 수가 없었습니다. 아버지께서 ì†¡í™”ê°•ì„ ë³´ì‹œê³ ê°ìƒì´ 깊으셨ë”란 ê²ƒì„ ìƒê°í•œ 것입니다. 무ì¸ì§€ê²½ìœ¼ë¡œ, 허옇게 ëˆˆì´ ë®ì¸ 벌íŒìœ¼ë¡œ í˜ëŸ¬ê°€ëŠ” 송화강 êµ½ì´, ê·¸ê²ƒì€ ìŠ¬í”ˆ í’경입니다. 아버지께서 여기를 지나실 때ì—는 마른 풀만 있는 ê´‘ì•¼ì˜€ì„ ê²ƒì´ë‹ˆ ê·¸ 때ì—는 ë”ìš± í™©ëŸ‰í•˜ì˜€ì„ ê²ƒì´ë¼ê³ ì •ìž„ì€ ë§í•˜ê³ ì›ë‹ˆë‹¤.
+ì •ìž„ì€ ì œê°€ 아버지를 아는 것보다 아버지를 잘 아는 것 같습니다. í‰ì†Œì— 아버지와는 그리 ì ‘ì´‰ì´ ì—†ê±´ë§ˆëŠ” ì •ìž„ì€ ì•„ë²„ì§€ì˜ ì˜ì§€ë ¥, ì•„ë²„ì§€ì˜ ìˆ¨ì€ ì—´ì •, ì•„ë²„ì§€ì˜ ì„±ë¯¸ê¹Œì§€ 잘 압니다. ì €ëŠ” ì •ìž„ì˜ ë§ì„ ë“£ê³ ì•¼ 비로소 ì°¸ 그래, 하는 ê°íƒ„ì„ ë°œí•œ ì¼ì´ 여러 번 있습니다.
+ì •ìž„ì˜ ë§ì„ ë“£ê³ ì•¼ 비로소 아버지가 남보다 ë›°ì–´ë‚˜ì‹ ì¸ë¬¼ì¸ ê²ƒì„ ê¹¨ë‹¬ì•˜ìŠµë‹ˆë‹¤. 아버지는 ì •ì˜ê°ì´ êµ³ì„¸ê³ ê²‰ìœ¼ë¡œëŠ” 싸늘하ë„ë¡ ì´ì§€ì ì´ì§€ë§ˆëŠ” ì†ì—는 불 ê°™ì€ ì—´ì •ì´ ìžˆìœ¼ì‹œê³ , 아버지는 ì‡ ê°™ì€ ì˜ì§€ë ¥ê³¼ ì¹¼ë‚ ê°™ì€ íŒë‹¨ë ¥ì´ 있어서 ì–¸ì œë‚˜ ì£¼ì €í•˜ì‹¬ì´ ì—†ê³ ë˜ í”ë“¤ë¦¬ì‹¬ì´ ì—†ë‹¤ëŠ” 것, 아버지께서는 ëª¨ë“ ê²ƒì„ ìš©ì„œí•˜ê³ ëª¨ë“ ê²ƒì„ í˜¸ì˜ë¡œ í•´ì„하여서 누구를 미워하거나 ì›ë§í•˜ì‹¬ì´ 없는 등, ì •ìž„ì€ ì•„ë²„ì§€ì˜ ë§ˆìŒì˜ 목ë¡ê³¼ 설명서를 따로 외우는 것처럼 ì•„ë²„ì§€ì˜ ì„±ê²©ì„ ì„¤ëª…í•©ë‹ˆë‹¤. ë“£ê³ ë³´ì•„ì„œ 비로소 ì•„ë²„ì§€ì˜ ë”¸ì¸ ì €ëŠ” ë‚´ 아버지가 ì–´ë–¤ 아버지ì¸ê°€ë¥¼ 알았습니다.
+ì„ ìƒë‹˜, ì´í•´ê°€ ì‚¬ëž‘ì„ ë‚³ëŠ”ë‹¨ ë§ì”€ì´ 있지마는 ì €ëŠ” ì •ìž„ì„ ë³´ì•„ì„œ ì‚¬ëž‘ì´ ì´í•´ë¥¼ 낳는 ê²ƒì´ ì•„ë‹Œê°€ 합니다.
+어쩌면 어머니와 ì €ëŠ” í‰ìƒì„ 아버지를 ëª¨ì‹œê³ ìžˆìœ¼ë©´ì„œë„ ì•„ë²„ì§€ë¥¼ 몰ëžìŠµë‹ˆê¹Œ. ì´ì„±ì´ ë¬´ë””ê³ ì–‘ì‹¬ì´ íë ¤ì„œ 그랬습니까. ì •ìž„ì€ ì§„ì‹¤ë¡œ ì¡´ê²½í• ì—¬ìžìž…니다. ì œê°€ 남ìžë¼ 하ë”ë¼ë„ ì •ìž„ì„ ì•„ë‹ˆ ì‚¬ëž‘í•˜ê³ ëŠ” 못 ê²¬ë””ê² ìŠµë‹ˆë‹¤.
+아버지는 분명 ì •ìž„ì„ ì‚¬ëž‘í•˜ì‹ ê²ƒìž…ë‹ˆë‹¤. 처ìŒì—는 ì¹œêµ¬ì˜ ë”¸ë¡œ, 다ìŒì—는 친딸과 ê°™ì´, ë˜ ë‹¤ìŒì—는 무엇ì¸ì§€ 모르게 뜨거운 ì‚¬ëž‘ì´ ìƒê²¼ìœ¼ë¦¬ë¼ê³ 믿습니다. ê·¸ê²ƒì„ ì•„ë²„ì§€ëŠ” ì£½ì¸ ê²ƒìž…ë‹ˆë‹¤. ê·¸ê²ƒì„ ì£½ì´ë ¤ê³ ì´ ë‹¬í• ìˆ˜ 없는 ì‚¬ëž‘ì„ ì£½ì´ë ¤ê³ ì‹œë² ë¦¬ì•„ë¡œ ë‹¬ì•„ë‚˜ì‹ ê²ƒìž…ë‹ˆë‹¤. ì¸ì œì•¼ 아버지께서 ì„ ìƒë‹˜ê»˜ í•˜ì‹ íŽ¸ì§€ì˜ ëœ»ì´ ì•Œì•„ì§„ 것 같습니다. ë°±ì„¤ì´ ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ ì†ìœ¼ë¡œ í˜¼ìž í—¤ë§¤ë©° ì •ìž„ì—게로 향하는 ì‚¬ëž‘ì„ ì£½ì´ë ¤ê³ 무진 ì• ë¥¼ 쓰시는 ê·¸ ì‹¬ì •ì´ ì•Œì•„ì§€ëŠ” 것 같습니다.
+ì„ ìƒë‹˜ ì´ê²ƒì´ 얼마나 비참한 ì¼ìž…니까. ì €ëŠ” ì •ìž„ì˜ ì§ì— ì§€ë‹ˆê³ ì˜¨ ì¼ê¸°ë¥¼ 보다가 ì´ëŸ¬í•œ êµ¬ì ˆì„ ë°œê²¬í•˜ì˜€ìŠµë‹ˆë‹¤.
+ì„ ìƒë‹˜. ì €ëŠ” 세ì¸íЏ ì˜¤ê±°ìŠ¤í‹´ì˜ <참회ë¡>ì„ ì ˆë°˜ì´ë‚˜ 다 ë³´ê³ ë‚˜ë„ ìž ì´ ë“¤ì§€ 아니합니다. ìž ì´ ë“¤ê¸° ì „ì— ì œê°€ í•ìƒ ì¦ê²¨í•˜ëŠ” ì•„ë² ë§ˆë¦¬ì•„ì˜ ë…¸ëž˜ë¥¼ ìœ ì„±ê¸°ë¡œ ë“£ê³ ë‚˜ì„œ 오늘 ì¼ê¸°ë¥¼ ì“°ë ¤ê³ í•˜ë‹ˆ 슬픈 소리만 나옵니다.
+사랑하는 어른ì´ì—¬. ì €ëŠ” 멀리서 ë‹¹ì‹ ì„ ì¡´ê²½í•˜ê³ ì‹ ë¢°í•˜ëŠ” 마ìŒì—서만 살아야 í• ê²ƒì„ ìž˜ 압니다. 여기ì—서 ì˜ì›í•œ ì •ì§€ë¥¼ 하지 아니하면 아니 ë©ë‹ˆë‹¤. ë¹„ë¡ ì œ ìƒëª…ì´ ê´´ë¡œì›€ìœ¼ë¡œ ëŠì–´ì§€ê³ ì œ í˜¼ì´ í”¼ì–´ ë³´ì§€ ëª»í•˜ê³ ìŠ¤ëŸ¬ì ¸ 버리ë”ë¼ë„ ì €ëŠ” ì´ ë©€ë¦¬ì„œ ë°”ë¼ë³´ëŠ” 존경과 ì‹ ë¢°ì˜ ì‹¬ê²½ì—서 한 ë°œìžêµì´ë¼ë„ 옮기지 않아야 í• ê²ƒì„ ìž˜ 압니다. 나를 위하여 놓여진 ìƒì˜ 궤ë„는 ë‚˜ì˜ ìƒëª…ì„ ë¶€ì¸í•˜ëŠ” ì–µì§€ì˜ ê¸¸ìž…ë‹ˆë‹¤. ì œê°€ 몇 ë…„ ì „ 기숙사 ë² ë“œì—서 ì´ëŸ° ë°¤ì— ë‚´ë‹¤ë³´ë©´ ì¦ê²ê³ ì•„ë¦„ë‹µë˜ ë‚´ ìƒì˜ ê¿ˆì€ ë‹¤ 깨어졌습니다.
+ì œ ì˜í˜¼ì˜ 한 ì¡°ê°ì´ 먼 ì„¸ìƒ ì•Œì§€ ëª»í• ì„¸ê³„ë¡œ ë– ë‹¤ë‹ˆê³ ìžˆìŠµë‹ˆë‹¤. 잃어버린 ë§ˆìŒ ì¡°ê° ì–´ì°Œí•˜ë‹¤ê°€ ì œê°€ ì´ë ‡ê²Œ ë˜ì—ˆëŠ”ì§€ 모릅니다.
+피어 오르는 ìƒëª…ì˜ ê´‘ì±„ë¥¼ 스스로 ì‚¬í˜•ì— ì²˜í•˜ì§€ 아니하면 아니 ë 때 ì–´ì°Œ ìŠ¬í””ì´ ì—†ê² ìŠµë‹ˆê¹Œ. ì´ê²ƒì€ 현실로 ì‚¬ëžŒì˜ ìƒëª…ì„ ì£½ì´ëŠ” 것보다 ë” ë¬´ì„œìš´ 죄가 아니오리까. ë‚˜ì˜ ì„¸ê³„ì—서 처ìŒì´ìš” 마지막으로 발견한 ë¹›ì„ ì–´ë‘ ì†ì— 소멸해 버리ë¼ëŠ” ì´ ì¼ì´ 얼마나 떨리는 ì§ë¬´ì˜¤ë¦¬ê¹Œ. ì´ í—ˆê¹¨ë¹„ì˜ í˜•ì˜ ì‚¬ëžŒì´ ì‚´ê¸° 위하여 ë‚´ ì†ìœ¼ë¡œ ì¹¼ì„ ë“¤ì–´ ë‚´ ì˜í˜¼ì˜ 환í¬ë¥¼ ì³ì•¼ 옳습니까. ì €ëŠ” í•˜ë‚˜ë‹˜ì„ ì›ë§í•©ë‹ˆë‹¤.
+ì´ë ‡ê²Œ 씌어 있습니다. ì„ ìƒë‹˜ ì´ê²ƒì´ 얼마나 피 í르는 ê³ ë°±ìž…ë‹ˆê¹Œ.
+ì„ ìƒë‹˜, ì €ëŠ” ì •ìž„ì˜ ì´ ê³ ë°±ì„ ë³´ê³ ë¬´ì¡°ê±´ìœ¼ë¡œ ì •ìž„ì˜ ì‚¬ëž‘ì„ ì‹œì¸í•©ë‹ˆë‹¤. ì„ ìƒë‹˜, ì œ ëª©ìˆ¨ì„ ë°”ì³ì„œ 하는 ì¼ì— 누가 시비를 í•˜ê² ìŠµë‹ˆê¹Œ. ë”구나 ê·¸ ë™ê¸°ì— í‹°ëŒë§Œí¼ë„ 불순한 ê²ƒì´ ì—†ìŒì—야 무조건으로 시ì¸í•˜ì§€ ì•„ë‹ˆí•˜ê³ ì–´ì°Œí•©ë‹ˆê¹Œ.
+ë°”ë¼ê¸°ëŠ” ì •ìž„ì˜ ë³‘ì´ í¬ê²Œ ë˜ì§€ ì•„ë‹ˆí•˜ê³ ì•„ë²„ì§€ê»˜ì„œ 무사히 계셔서 ì†ížˆ 만나뵙게 ë˜ëŠ” 것입니다마는 ì•žê¸¸ì´ ë§ë§í•˜ì—¬ ê°€ìŠ´ì´ ë‘ê·¼ê±°ë¦¼ì„ ê¸ˆì¹˜ 못합니다. 게다가 ì˜¤ëŠ˜ì€ í•¨ë°•ëˆˆì´ í¼ë¶€ì–´ì„œ 천지가 온통 회색으로 한 ë¹›ì´ ë˜ì—ˆìœ¼ë‹ˆ ë”ìš± ì „ë„ê°€ 막막합니다. 그러나 ì„ ìƒë‹˜ ì €ëŠ” 앓는 ì •ìž„ì„ ë°ë¦¬ê³ ìš©ê°í•˜ê²Œ ì‹œë² ë¦¬ì•„ ê¸¸ì„ ë– ë‚©ë‹ˆë‹¤.
+한 ì¼ ì£¼ì¼ í›„ì— ë˜ íŽ¸ì§€ 한 ìž¥ì´ ì™”ë‹¤. ê·¸ê²ƒë„ ìˆœìž„ì˜ íŽ¸ì§€ì—¬ì„œ ì´ëŸ¬í•œ ë§ì´ 있었다.
+……오늘 ìƒˆë²½ì— í¥ì•ˆë ¹ì„ 지났습니다. 플랫í¼ì˜ 한란계는 ì˜í•˜ ì´ì‹ì‚¼ ë„를 가리켰습니다. ì‚¬ëžŒë“¤ì˜ ì–¼êµ´ì€ ì†œí„¸ì— ì„±ì—ê°€ 슬어서 남녀 노소 í• ê²ƒ ì—†ì´ í•˜ì–—ê²Œ ë¶„ì„ ë°”ë¥¸ 것 같습니다. ìœ ë¦¬ì— ë¹„ì¹œ ë‚´ ì–¼êµ´ë„ ê·¸ì™€ ê°™ì´ í° ê²ƒì„ ë³´ê³ ë†€ëžìŠµë‹ˆë‹¤. ìˆ¨ì„ ë“¤ì´ì‰´ 때ì—는 ì½”í„¸ì´ ì–¼ì–´ì„œ ìˆ¨ì´ ëŠê¸°ê³ ë°”ëžŒê²°ì´ ì§€ë‚˜ê°€ë©´ ëˆˆë¬¼ì´ ì–¼ì–´ì„œ 눈ì¹ì´ 마주 붙습니다. ì‚¬ëžŒë“¤ì€ í„¸ê³¼ ê°€ì£½ì— ì‹¸ì—¬ì„œ ê³°ê°™ì´ ë³´ìž…ë‹ˆë‹¤.
+ë˜ ì´ëŸ° ë§ë„ 있었다.
+ì•„ë¼ì‚¬ ê³„ì§‘ì• ë“¤ì´ ìš°ìœ ë³‘ë“¤ì„ í’ˆì— í’ˆê³ ì„œì„œ ì†ë‹˜ì´ 사기를 ê¸°ë‹¤ë¦¬ê³ ìžˆìŠµë‹ˆë‹¤. ì €ë„ ë‘ ë³‘ì„ ì‚¬ì„œ ì •ìž„ì´ì™€ 나누어 먹었습니다. ìš°ìœ ëŠ” 따뜻합니다. ê·¸ê²ƒì„ ì‹ížˆì§€ ì•„ë‹ˆí• ì–‘ìœ¼ë¡œ í’ˆì— í’ˆê³ ì„°ë˜ ê²ƒìž…ë‹ˆë‹¤.
+ë˜ ì´ëŸ¬í•œ êµ¬ì ˆë„ ìžˆì—ˆë‹¤.
+ì •ê±°ìž¥ì— ë‹¿ì„ ë•Œë§ˆë‹¤ ì €í¬ë“¤ì€ ë°–ì„ ë‚´ë‹¤ë´…ë‹ˆë‹¤. 행여나 아버지가 거기 계시지나 ì•„ë‹ˆí• ê¹Œ í•˜ê³ ìš”. 차가 어길 때ì—는 ë”구나 마ìŒì´ 조입니다. 아버지가 ê·¸ 차를 íƒ€ê³ ì§€ë‚˜ê°€ì‹œì§€ë‚˜ 아니하는가 í•˜ê³ ìš”. ê·¸ë¦¬ê³ ëŠ” ì •ìž„ì€ ì›ë‹ˆë‹¤. ê¼ ëµˆì˜¬ ì–´ë¥¸ì„ ë†“ì³ë‚˜ 버린 듯ì´.
+ê·¸ë¦¬ê³ ëŠ” ì´ ì£¼ì¼ ë™ì•ˆì´ë‚˜ 소ì‹ì´ 없다가 편지 한 ìž¥ì´ ì™”ë‹¤. ê·¸ê²ƒì€ ì •ìž„ì˜ ê¸€ì”¨ì˜€ë‹¤.
+ì„ ìƒë‹˜, ì €ëŠ” 지금 최 ì„ ìƒê»˜ì„œ ê³„ì‹œë˜ ë°”ì´ì¹¼ í˜¸ë°˜ì˜ ê·¸ ì§‘ì— ì™€ì„œ 홀로 ëˆ„ì› ìŠµë‹ˆë‹¤. ìˆœìž„ì€ ì£¼ì¸ ë…¸íŒŒì™€ 함께 Fì—으로 최 ì„ ìƒì„ 찾아서 오늘 ì•„ì¹¨ì— ë– ë‚˜ê³ ë³‘ë“ ì €ë§Œ í˜¼ìž ëˆ„ì›Œì„œ ì–¼ìŒì— ì‹¸ì¸ ë°”ì´ì¹¼ í˜¸ì˜ ëˆˆë³´ë¼ì¹˜ëŠ” 바람 소리를 ë“£ê³ ìžˆìŠµë‹ˆë‹¤. ì—´ì€ ì‚¼ì‹íŒ” ë„로부터 구 ë„ ì‚¬ì´ë¥¼ ì˜¤ë¥´ë‚´ë¦¬ê³ ê¸°ì¹¨ì€ ë‚˜ê³ ëª¸ì˜ ê´´ë¡œì›€ì„ ê²¬ë”œ 수 없습니다. 그러하오나 ì„ ìƒë‹˜, ì €ëŠ” í•˜ë‚˜ë‹˜ì„ ë¶ˆëŸ¬ì„œ ì¶•ì›í•©ë‹ˆë‹¤. ì´ ì‹¤ë‚± ê°™ì€ ìƒëª…ì´ ë‹¤ 타 버리기 ì „ì— ìµœ ì„ ìƒì˜ ë‚¯ì„ ë‹¤ë§Œ ì¼ ì´ˆ ë™ì•ˆì´ë¼ë„ 보여지ì´ë¼ê³ . 그러하오나 ì„ ìƒë‹˜, ì´ ì¶•ì›ì´ ì´ë£¨ì–´ì§€ê² 습니까.
+ì €ëŠ” 한사코 Fì—까지 ê°€ë ¤ 하였사오나 순임 í˜•ì´ ìš¸ê³ ë§‰ì‚¬ì˜¤ë©° ë˜ ì£¼ì¸ ë…¸íŒŒê°€ 본래 ë¯¸êµ ì‚¬ëžŒê³¼ ì‚´ë˜ ì‚¬ëžŒìœ¼ë¡œ ì˜ì–´ë¥¼ 알아서 순임 í˜•ì˜ ë„ì›€ì´ ë˜ê² 기로 ì €ëŠ” ì´ ê³³ì— ëˆ„ì›Œ 있습니다. 순임 í˜•ì€ ê¸°ì–´ì½” 아버지를 찾아 ëª¨ì‹œê³ ì˜¤ë§ˆê³ ì•½ì†í•˜ì˜€ì‚¬ì˜¤ë‚˜ ì´ ë„“ì€ ì‹œë² ë¦¬ì•„ì—서 ì–´ë”” 가서 ì°¾ê² ìŠµë‹ˆê¹Œ.
+ì„ ìƒë‹˜, ì €ëŠ” 죽ìŒì„ 봅니다. 죽ìŒì´ 바로 ì œ ì•žì— ì™€ì„œ ì„ ê²ƒì„ ë´…ë‹ˆë‹¤. ê·¸ì˜ ì†ì€ ì œ 여윈 ì†ì„ ìž¡ìœ¼ë ¤ê³ ë“¤ë¨¹ê±°ë¦¼ì„ ë´…ë‹ˆë‹¤.
+ì„ ìƒë‹˜, ì£½ì€ ë’¤ì—ë„ ì˜ì‹ì´ 남습니까. ë§Œì¼ ì˜ì‹ì´ 남는다 하면 ì£½ì€ ë’¤ì—ë„ ì´ ì•„í””ê³¼ ê´´ë¡œì›€ì„ ê³„ì†í•˜ì§€ 아니하면 아니 ë©ë‹ˆê¹Œ. ì£½ì€ ë’¤ì—는 ì˜¤ì§ ì˜ì›í•œ ì–´ë‘ ê³¼ ìžŠì–´ë²„ë¦¼ì´ ìžˆìŠµë‹ˆê¹Œ. ì£½ì€ ë’¤ì—는 혹시나 ìƒì „ì— ë¨¹ì—ˆë˜ ë§ˆìŒì„ ìžìœ 로 펼 ë„리가 있습니까. ì´ ì„¸ìƒì—서 ê·¸ë¦½ê³ ì‚¬ëª¨í•˜ë˜ ì´ë¥¼ ì£½ì€ ë’¤ì—는 ìžìœ 로 만나 ë³´ê³ ì–¸ì œë‚˜ 마ìŒê» ê°™ì´í• 수가 있습니까. 그런 ì¼ë„ 있습니까. ì´ëŸ° ì¼ì„ ë°”ë¼ëŠ” ê²ƒë„ ì£„ê°€ ë©ë‹ˆê¹Œ.
+ì •ìž„ì˜ íŽ¸ì§€ëŠ” ë”ìš± ì ˆë§ì ì¸ ì–´ì¡°ë¡œ 찬다.
+ì €ëŠ” ì²˜ìŒ ë³‘ì´ ë‚¬ì„ ë•Œì—는 죽는 ê²ƒì´ ì‹«ê³ ë¬´ì„œì› ìŠµë‹ˆë‹¤. 그러나 ì§€ê¸ˆì€ ì£½ëŠ” ê²ƒì´ ì¡°ê¸ˆë„ ë¬´ì„ì§€ 아니합니다. 다만 차마 죽지 못하는 ê²ƒì´ í•œ.
+í•˜ê³ ëŠ” `다만 차마' ì´í•˜ë¥¼ ë°•ë°• 지워 ë²„ë ¸ë‹¤. ê·¸ë¦¬ê³ ëŠ” 새로 시작하여 나와내 가족ì—게 대한 ë¬¸ì•ˆì„ í•˜ê³ ëŠ” ëì„ ë§‰ì•˜ë‹¤.
+나는 ì´ íŽ¸ì§€ë¥¼ ë°›ê³ ìš¸ì—ˆë‹¤. 무슨 í° ë¹„ê·¹ì´ ê°€ê¹Œìš´ ê²ƒì„ ì˜ˆìƒí•˜ê²Œ 하였다.
+ê·¸ 후 한 ì‹ì—¬ ì¼ì´ë‚˜ 지나서 ì „ë³´ê°€ 왔다. ê·¸ê²ƒì€ ì˜ë¬¸ìœ¼ë¡œ 씌었는ë°,
+"아버지 ë³‘ì´ ê¸‰í•˜ë‹¤. 나로는 ì–´ì©” 수 없다. ëˆ ê°€ì§€ê³ ê³§ 오기를 바란다."
+í•˜ê³ ê·¸ ëì— B호텔ì´ë¼ê³ 주소를 ì 었다. ì „ë³´ ë°œì‹ êµì´ ì´ë¥´ì¿ ì¸ í¬ì¸ ê²ƒì„ ë³´ë‹ˆ B호텔ì´ë¼ í•¨ì€ ì´ë¥´ì¿ ì¸ í¬ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜€ë‹¤.
+나는 ìµœì„ ë¶€ì¸ì—게 최ì„ì´ê°€ ì•„ì§ ì‚´ì•„ 있다는 ê²ƒì„ ì „í•˜ê³ ê³§ 여행권 수ì†ì„ 하였다. ì ˆë§ìœ¼ë¡œ ì•Œì•˜ë˜ ì—¬í–‰ê¶Œì€ ì‚¬ì •ì´ ì‚¬ì •ì¸ë§Œí¼ ê³§ 발부ë˜ì—ˆë‹¤.
+나는 비행기로 ì—¬ì˜ë„를 ë– ë‚¬ë‹¤. ë°±ì„¤ì— ê°œê°œí•œ ë•…ì„, 남빛으로 푸른 바다를 굽어보는 ë™ì•ˆì— ëŒ€ë ¨ì„ ë“¤ëŸ¬ 거기서 다른 비행기를 ê°ˆì•„íƒ€ê³ ë´‰ì²œ, ì‹ ê²½, í•˜ì–¼ë¹ˆì„ ê±°ì³, ì¹˜ì¹˜í•˜ì–¼ì— ë“¤ë €ë‹¤ê°€ 만주리로 급행하였다.
+웅대한 ëŒ€ë¥™ì˜ ì„¤ê²½ë„ ë‚˜ì—게 아무러한 ì¸ìƒë„ 주지 못하였다. 다만 푸른 하늘과 í¬ê³ í‰í‰í•œ ë•…ê³¼ì˜ ì‚¬ì´ë¡œ 한량 ì—†ì´ í—ˆê³µì„ ë‚ ì•„ê°„ë‹¤ëŠ” ìƒê°ë°–ì— ì—†ì—ˆë‹¤. ê·¸ê²ƒì€ ì‚¬ëž‘í•˜ëŠ” ë‘ ì¹œêµ¬ê°€ ëª©ìˆ¨ì´ ê²½ê°ì— 달린 ê²ƒì„ ìƒê°í• ë•Œì— ë§ˆìŒì— 아무 ì—¬ìœ ë„ ì—†ëŠ” 까ë‹ì´ì—ˆë‹¤.
+만주리ì—ì„œë„ ë¹„í–‰ê¸°ë¥¼ íƒ€ë ¤ 하였으나 소비ì—트 ê´€í—Œì´ í—ˆë½ì„ 아니 하여 열차로 ê°ˆ ìˆ˜ë°–ì— ì—†ì—ˆë‹¤.
+초조한 몇 ë°¤ì„ ì§€ë‚˜ê³ ì´ë¥´ì¿ ì¸ í¬ì— 내린 ê²ƒì´ ì˜¤ì „ ë‘시. 나는 B호텔로 ì´ìŠ¤ë³´ìŠ¤ì¹˜ì¹´ë¼ëŠ” 마차를 몰았다. 죽ìŒê³¼ ê°™ì´ ê³ ìš”í•˜ê²Œ 눈 ì†ì— ìžëŠ” 시간ì—는 ì—¬ê¸°ì €ê¸° ì „ë“±ì´ ë°˜ì§ê±°ë¦´ ë¿, ì´ë”°ê¸ˆ ë°¤ì˜ ì‹œê°€ë¥¼ 경계하는 ë³‘ì •ë“¤ì˜ ëˆˆì´ ë¬´ì„게 빛나는 ê²ƒì´ ë³´ì˜€ë‹¤.
+B호텔ì—서 미스 ì´ˆì´(최 ì–‘)를 찾았으나 ìˆœìž„ì€ ì—†ê³ ì–´ë–¤ 서양 노파가 나와서,
+"ìœ ë¯¸ìŠ¤í„° Y?"
+í•˜ê³ ì˜ì‹¬ìŠ¤ëŸ¬ìš´ 눈으로 나를 보았다.
+ê·¸ë ‡ë‹¤ëŠ” ë‚´ ëŒ€ë‹µì„ ë“£ê³ ëŠ” 노파는 반갑게 ì†ì„ 내밀어서 ë‚´ ì†ì„ 잡았다.
+나는 넉넉하지 못한 ì˜ì–´ë¡œ ê·¸ 노파ì—게서 최ì„ì´ê°€ ì•„ì§ ì‚´ì•˜ë‹¤ëŠ” ë§ê³¼ ì •ìž„ì˜ ì†Œì‹ì€ ë“¤ì€ ì§€ 오래ë¼ëŠ” ë§ê³¼ 최ì„ê³¼ ìˆœìž„ì€ ì—¬ê¸°ì„œ ì‚¼ì‹ ë§ˆì¼ì´ë‚˜ 떨어진 Fì—ì—ì„œë„ ì°ë§¤ë¡œ ë” ê°€ëŠ” 삼림 ì†ì— 있다는 ë§ì„ 들었다.
+나는 ê·¸ ë°¤ì„ ì—¬ê¸°ì„œ ì§€ë‚´ê³ ì´íŠ¿ë‚ ì•„ì¹¨ì— ë– ë‚˜ëŠ” 완행차로 ê·¸ 노파와 함께 ì´ë¥´ì¿ ì¸ í¬ë¥¼ ë– ë‚¬ë‹¤.
+ì´ ë‚ ë„ ì²œì§€ëŠ” ì˜¤ì§ ëˆˆë¿ì´ì—ˆë‹¤. 차는 ê°€ë” ì‚¼ë¦¼ 중으로 가는 모양ì´ë‚˜ ëª¨ë‘ íšŒìƒ‰ë¹›ì— ê°€ë¦¬ì›Œì„œ 분명히 ë³´ì´ì§€ë¥¼ 아니하였다.
+Fì—ì´ë¼ëŠ” ê²ƒì€ ì‚¼ë¦¼ ì†ì— 있는 조그마한 ì •ê±°ìž¥ìœ¼ë¡œ ì§‘ì´ë¼ê³ 는 ì •ê±°ìž¥ ì§‘ë°–ì— ì—†ì—ˆë‹¤. ì—ë¶€ ë‘ì—‡ì´ í„¸ì˜·ì— í•˜ì–—ê²Œ ëˆˆì„ ë’¤ì“°ê³ ì¡¸ë¦¬ëŠ” ë“¯ì´ ì˜¤ë½ê°€ë½í• ë¿ì´ì—ˆë‹¤.
+우리는 ì°ë§¤ 하나를 얻어 íƒ€ê³ ì–´ë””ê°€ 길ì¸ì§€ ë¶„ëª…ì¹˜ë„ ì•„ë‹ˆí•œ 눈 ì†ìœ¼ë¡œ ë§ì„ 몰았다.
+ë°”ëžŒì€ ì—†ëŠ” 듯하지마는 ê·¸ëž˜ë„ ëˆˆë°œì„ í•œíŽ¸ìœ¼ë¡œ 비ë¼ëŠ” 모양ì´ì–´ì„œ 아름드리 ë‚˜ë¬´ë“¤ì˜ í•œìª½ì€ í•˜ì–—ê²Œ 눈으로 쌓ì´ê³ í•œìª½ì€ ê²€ì€ ë¹›ì´ ë”ìš± ë‹ë³´ì˜€ë‹¤. ë°± ì²™ì€ ë„˜ì„ ë“¯í•œ 꼿꼿한 침엽수(ì „ë‚˜ë¬´ 따윈가)ë“¤ì´ ì–´ë””ê¹Œì§€ë“ ì§€, 하늘ì—서 ê³§ ë‚´ë ¤ë°•ì€ ëª» 모양으로, ìˆ˜ì—†ì´ ì„œ 있는 사ì´ë¡œ 우리 ì°ë§¤ëŠ” 간다. ë•…ì— ë®ì¸ ëˆˆì€ ìƒˆë¡œ 피워 ë†“ì€ ì†œê°™ì´ í¬ì§€ë§ˆëŠ” 하늘ì—서 내리는 ëˆˆì€ êµ¬ë¦„ë¹›ê³¼ 공기빛과 ì–´ìš¸ë ¤ì„œ ë°¥ ìž¦íž ë•Œì— êµ´ëšì—서 나오는 연기와 ê°™ì´ ì—°íšŒìƒ‰ì´ë‹¤.
+ë°”ëžŒë„ ë¶ˆì§€ ì•„ë‹ˆí•˜ê³ ìƒˆë„ ë‚ ì§€ 아니하건마는 나무 ë†’ì€ ê°€ì§€ì— ìŒ“ì¸ ëˆˆì´ ì´ë”°ê¸ˆ ë©ì¹˜ë¡œ ë–¨ì–´ì ¸ì„œëŠ” ê³ ìš”í•œ 수풀 ì†ì— ìž‘ì€ ë™ìš”를 ì¼ìœ¼í‚¨ë‹¤.
+우리 ì°ë§¤ê°€ 가는 ê¸¸ì´ ìžì—°ìŠ¤ëŸ¬ìš´ 복잡한 커브를 ë„는 ê²ƒì„ ë³´ë©´ 필시 ì–¼ìŒ ì–¸ 개천 위로 달리는 모양ì´ì—ˆë‹¤.
+한 시간ì´ë‚˜ 달린 ë’¤ì— ìš°ë¦¬ ì°ë§¤ëŠ” ëŠ¦ì€ ê²½ì‚¬ì§€ë¥¼ 올ëžë‹¤. ë§ì„ 어거하는 ì•„ë¼ì‚¬ ì‚¬ëžŒì€ ìˆìˆìˆìˆ, 후르르 í•˜ê³ ì£¼ë¬¸ì„ ì™¸ìš°ë“¯ì´ ìž…ìœ¼ë¡œ ë§ì„ ìž¬ì´‰í•˜ê³ ê³ ì‚를 ì´ë¦¬ ë“¤ê³ ì €ë¦¬ 들어 ë§ì—게 ë°©í–¥ì„ ê°€ë¦¬í‚¬ ë¿ì´ìš”, 채ì°ì€ ë³´ì´ê¸°ë§Œí•˜ê³ 한 ë²ˆë„ ì“°ì§€ 아니하였다. 그와 ë§ê³¼ëŠ” ì™„ì „ížˆ 뜻과 ì •ì´ ë§žëŠ” ë™ì§€ì¸ 듯하였다.
+처ìŒì—는 몰ëžìœ¼ë‚˜ 차차 추워ì§ì„ 깨달았다. 발과 무르íŒì´ ì‹œë ¸ë‹¤.
+"얼마나 머오?"
+í•˜ê³ ë‚˜ëŠ” ì˜¤ëž˜ê°„ë§Œì— ìž…ì„ ì—´ì–´ì„œ 노파ì—게 물었다. 노파는 털수건으로 머리를 ì‹¸ë§¤ê³ ê¹Šìˆ™í•œ 눈만 남겨 ê°€ì§€ê³ ì‹¤ì‹ í•œ 사람 모양으로 허공만 ë°”ë¼ë³´ê³ 있다가, ë‚´ê°€ 묻는 ë§ì— 비로소 ìž ì´ë‚˜ 깬 듯ì´,
+"멀지 않소. ì¸ì 한 ì‹ì˜¤ 마ì¼."
+í•˜ê³ ëŠ” 나를 ë°”ë¼ë³´ì•˜ë‹¤. ê·¸ ëˆˆì€ ì•„ë§ˆ 웃는 모양ì´ì—ˆë‹¤.
+ê·¸ 얼굴, ê·¸ 눈, ê·¸ ìŒì„±ì´ ëª¨ë‘ ì´ ë…¸íŒŒê°€ ì¸ìƒ í’íŒŒì˜ ìŠ¬í”ˆ ì¼ ê´´ë¡œìš´ ì¼ì— 부대ë¼ê³ 지친 ê²ƒì„ í‘œí•˜ì˜€ë‹¤. ê·¸ë¦¬ê³ ì£½ëŠ” ë‚ ê¹Œì§€ 살아간다 하는 듯하였다.
+경사지를 올ë¼ì„œì„œ 보니 ê·¸ê²ƒì€ í•œ 산등성ì´ì˜€ë‹¤. ë°©í–¥ì€ ì•Œ 수 없으나 우리가 가는 ë°©í–¥ì—는 ë” ë†’ì€ ë“±ì„±ì´ê°€ 있는 모양ì´ë‚˜ 다른 ê³³ì€ ë‹¤ ì´ë³´ë‹¤ ë‚®ì€ ê²ƒ 같아서 하얀 눈바다가 ëì—†ì´ ë³´ì´ëŠ” 듯하였다. ê·¸ 눈보ë¼ëŠ” ë“¤ì‘¹ë‚ ì‘¹ì´ ìžˆëŠ” ê²ƒì„ ë³´ë©´ ì‚¼ë¦¼ì˜ ê¼ëŒ€ê¸°ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜€ë‹¤. ë”구나 ì—¬ê¸°ì €ê¸° 뾰족뾰족 ëˆˆì†¡ì´ ë¶™ì„ ìˆ˜ 없는 마른 나ë‡ê°€ì§€ê°€ ê±°ë‡ê±°ë‡ ë³´ì´ëŠ” ê²ƒì„ ë³´ì•„ì„œ 그러하였다. ë§Œì¼ ëˆˆì´ ê±·í˜€ 주었으면 얼마나 안계가 넓으랴, ìµœì„ êµ°ì´ ê³ ë¯¼í•˜ëŠ” ê°€ìŠ´ì„ ì•ˆê³ ì´ë¦¬ë¡œ 헤매었구나 하면서 나는 ëª©ì„ ë‘˜ëŸ¬ì„œ ì‚¬ë°©ì„ ë°”ë¼ë³´ì•˜ë‹¤.
+우리는 ê·¸ 등성ì´ë¥¼ ë‚´ë ¤ê°”ë‹¤. ë§ì´ 미처 ë°œì„ ë•…ì— ë†“ì„ ìˆ˜ê°€ 없는 ì •ë„로 빨리 ë‚´ë ¤ê°”ë‹¤. 여기는 ì‚°ë¶ˆì´ ë‚¬ë˜ ìžë¦¬ì¸ 듯하여 ê±°ë‡ê±°ë‡ 불탄 ìžêµ 있는 마른 ë‚˜ë¬´ë“¤ì´ ë“œë¬¸ë“œë¬¸ 서 있었다. ê·¸ ë‚˜ë¬´ë“¤ì€ ì°ì–´ 가는 ì‚¬ëžŒë„ ì—†ìœ¼ë§¤ ì €ì ˆë¡œ ì©ì–´ì„œ 없어지기를 기다릴 ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. ê·¸ë“¤ì€ ë‚˜ì„œ 아주 ì©ì–´ 버리기까지 천 ë…„ ì´ìƒì€ ê±¸ë¦°ë‹¤ê³ í•˜ë‹ˆ ë˜í•œ 장한 ì¼ì´ë‹¤.
+ì´ ëŒ€ì‚¼ë¦¼ì— ë¶ˆì´ ë¶™ëŠ”ë‹¤ 하면 ê·¸ê²ƒì€ ìž¥ê´€ì¼ ê²ƒì´ë‹¤. ë‹¬ë°¤ì— ë†’ì€ ê³³ì—서 ì´ ê²½ì¹˜ë¥¼ ë‚´ë ¤ë‹¤ë³¸ë‹¤ 하면 ê·¸ë„ ìž¥ê´€ì¼ ê²ƒì´ìš”, ì—¬ë¦„ì— í•œì°½ ê¸°ìš´ì„ íŽ¼ ë•Œë„ ìž¥ê´€ì¼ ê²ƒì´ë‹¤. 나는 ì˜¤ë‰´ì›”ê²½ì— ì‹œë² ë¦¬ì•„ë¥¼ 여행하는 ì´ë“¤ì´ ë없는 꽃바다를 보았다는 기ë¡ì„ ìƒê°í•˜ì˜€ë‹¤.
+"ì €ê¸°ìš”!"
+하는 ë…¸íŒŒì˜ ë§ì— 나는 ìƒê°ì˜ ì¤„ì„ ëŠì—ˆë‹¤. ì €ê¸°ë¼ê³ 가리키는 ê³³ì„ ë³´ë‹ˆ 거기는 ì§‘ì´ë¼ê³ ìƒê°ë˜ëŠ” ë¬¼ê±´ì´ ë‚˜ë¬´ 사ì´ë¡œ 보였다. ì°½ì´ ìžˆìœ¼ë‹ˆ 분명 ì§‘ì´ì—ˆë‹¤.
+우리 ì´ìŠ¤ë³´ìŠ¤ì¹˜ì¹´ê°€ ê°€ê¹Œì´ ì˜¤ëŠ” ê²ƒì„ ë³´ì•˜ëŠ”ì§€, ê·¸ ì§‘ ê°™ì€ ë¬¼ê±´ì˜ ë¬¸ ê°™ì€ ê²ƒì´ ì—´ë¦¬ë©° ê²€ì€ ì™¸íˆ¬ ìž…ì€ ì—¬ìž í•˜ë‚˜ê°€ íŒ”ì„ í—ˆìš°ì 거리며 뛰어나온다. 아마 ì†Œë¦¬ë„ ì¹˜ëŠ” 모양ì´ê² 지마는 ê·¸ 소리는 아니 ë“¤ë ¸ë‹¤. 나는 ê·¸ê²ƒì´ ìˆœìž„ì¸ ì¤„ì„ ì–¼ë¥¸ 알았다. ë˜ ìˆœìž„ì´ë°–ì— ë ì‚¬ëžŒë„ ì—†ì—ˆë‹¤.
+ìˆœìž„ì€ í•œì°¸ 달ìŒë°•질로 오다가 ëˆˆì´ ê¹Šì–´ì„œ 걸ìŒì„ 걷기가 íž˜ì´ ë“œëŠ”ì§€ 멈칫 섰다. ê·¸ì˜ ê²€ì€ ì™¸íˆ¬ëŠ” ì–´ëŠë§ í° ì 으로 ì–¼ë ¤ì ¸ ê°€ì§€ê³ ì–´ê¹¨ëŠ” í¬ê²Œ ë˜ëŠ” ê²ƒì´ ë³´ì˜€ë‹¤.
+ìˆœìž„ì˜ ê°¸ë¦„í•œ ì–¼êµ´ì´ ë³´ì˜€ë‹¤.
+"ì„ ìƒë‹˜!"
+í•˜ê³ ìˆœìž„ë„ ë‚˜ë¥¼ ì•Œì•„ë³´ê³ ëŠ” ë˜ íŒ”ì„ í—ˆìš°ì 거리며 소리를 ì§ˆë €ë‹¤.
+ë‚˜ë„ ë°˜ê°€ì›Œì„œ 모ìžë¥¼ ë²—ì–´ ë‘˜ë €ë‹¤.
+"ì•„ì´ ì„ ìƒë‹˜!"
+í•˜ê³ ìˆœìž„ì€ ë‚´ê°€ ì°ë§¤ì—서 ì¼ì–´ì„œê¸°ë„ ì „ì— ë‚´ê²Œ 와서 매달리며 울었다.
+"아버지 ì–´ë– ì‹œëƒ?"
+í•˜ê³ ë‚˜ëŠ” ìˆœìž„ì˜ ë“±ì„ ë‘ë“œë ¸ë‹¤. 나는 다리가 마비가 ë˜ì–´ì„œ ê³§ ì¼ì–´ì„¤ 수가 없었다.
+"아버지 ì–´ë– ì‹œëƒ?"
+í•˜ê³ ë‚˜ëŠ” 한 번 ë” ë¬¼ì—ˆë‹¤.
+ìˆœìž„ì€ ë²Œë–¡ ì¼ì–´ë‚˜ ë‘ ì£¼ë¨¹ìœ¼ë¡œ í르는 ëˆˆë¬¼ì„ ì³ë‚´ 버리며,
+"대단하셔요."
+í•˜ê³ ë„ ìš¸ìŒì„ 금치 못하였다.
+노파는 ë²Œì¨ ì°ë§¤ì—서 ë‚´ë ¤ì„œ 기운 없는 걸ìŒìœ¼ë¡œ 비틀비틀 걷기를 시작하였다.
+나는 ìˆœìž„ì„ ë”°ë¼ì„œ ì–¸ë•ì„ ì˜¤ë¥´ë©°,
+"그래 무슨 병환ì´ì‹œëƒ?"
+í•˜ê³ ë¬¼ì—ˆë‹¤.
+"몰ë¼ìš”. ì‹ ì—´ì´ ëŒ€ë‹¨í•˜ì…”ìš”."
+"ì •ì‹ ì€ ì°¨ë¦¬ì‹œë“ ?"
+"ì²˜ìŒ ì œê°€ 여기 ì™”ì„ ì ì—는 ê·¸ë ‡ì§€ 않ë”니 요새ì—는 ê°€ë” í˜¼ìˆ˜ ìƒíƒœì— ë¹ ì§€ì‹œëŠ” 모양ì´ì•¼ìš”."
+ì´ë§Œí•œ ì§€ì‹ì„ ê°€ì§€ê³ ë‚˜ëŠ” 최ì„ì´ê°€ 누워 있는 ì§‘ ì•žì— ë‹¤ë‹¤ëžë‹¤.
+ì´ ì§‘ì€ í†µë‚˜ë¬´ë¥¼ 댓 ê°œ 우물 ì •ìžë¡œ ê°€ë¡œë†“ê³ ì§€ë¶•ì€ ë¬´ì—‡ìœ¼ë¡œ 했는지 모르나 ëˆˆì´ ë®ì´ê³ , 문 하나 ì°½ 하나를 ë‚´ì—ˆëŠ”ë° ë¬¸ì€ ë‚˜ë¬´ê»ì§ˆì¸ 모양ì´ë‚˜ ì°½ì€ ì –ë¹› 나는 ìœ ë¦¬ì°½ì¸ ì¤„ 알았ë”니 ë’¤ì— ì•Œì•„ë³¸ì¦‰ ê·¸ê²ƒì€ ìœ ë¦¬ê°€ 아니요, ì–‘ëª©ì„ ë°”ë¥´ê³ ë¬¼ì„ ë¿œì–´ì„œ ì–¼ë ¤ ë†“ì€ ê²ƒì´ì—ˆë‹¤. ê·¸ë¦¬ê³ í†µë‚˜ë¬´ì™€ 통나무 틈바구니ì—는 ì‡ í„¸ê³¼ ê°™ì€ ë§ˆë¥¸ í’€ì„ ê¼ê¼ 박아서 ë°”ëžŒì„ ë§‰ì•˜ë‹¤.
+ë¬¸ì„ ì—´ê³ ë“¤ì–´ì„œë‹ˆ ë¶€ì—Œì— ë“¤ì–´ì„œëŠ” 모양으로 ì‘¥ ë¹ ì¡ŒëŠ”ë° í™”ëˆí™”ëˆí•˜ëŠ” ê²ƒì´ í•œì¦ê³¼ 같다. ê·¸ë ‡ì§€ ì•Šì•„ë„ ì¹¨ì¹¨í•œ ë‚ ì— ì–¸ 눈으로 ê´‘ì„ ë¶€ì¡±í•œ ë°©ì— ë“¤ì–´ì˜¤ë‹ˆ, 캄캄 ì ˆë²½ì´ì–´ì„œ ì•„ë¬´ê²ƒë„ ë³´ì´ì§€ 아니하였다.
+순임ì´ê°€ 앞서서 ì–‘ì´ˆì— ë¶ˆì„ ì¼ ë‹¤. 촛불 ë¹›ì€ ë°© 한편 쪽 침대ë¼ê³ í• ë§Œí•œ ë†’ì€ ê³³ì— ë‹´ìš”ë¥¼ ë®ê³ 누운 최ì„ì˜ ì‹œì²´ì™€ ê°™ì€ í° ì–¼êµ´ì„ ë¹„ì¶˜ë‹¤.
+"아버지, 아버지 ìƒŒì „ ì•„ì €ì”¨ 오셨어요."
+í•˜ê³ ìˆœìž„ì€ ìµœì„ì˜ ê·€ì— ìž…ì„ ëŒ€ê³ ê°€ë§Œížˆ ë¶ˆë €ë‹¤.
+그러나 ëŒ€ë‹µì´ ì—†ì—ˆë‹¤.
+나는 최ì„ì˜ ì´ë§ˆë¥¼ ë§Œì ¸ 보았다. 축축하게 ë•€ì´ í˜ë €ë‹¤. 그러나 그리 ë”ìš´ ì¤„ì€ ëª°ëžë‹¤.
+ë°© ì•ˆì˜ ê³µê¸°ëŠ” ìˆ¨ì´ ë§‰íž ë“¯í•˜ì˜€ë‹¤. ê·¸ 난방 장치는 ì‚¼êµ¿ì˜ ì›ë¦¬ë¥¼ ì´ìš©í•œ 것ì´ì—ˆë‹¤. ëŒë©©ì´ë¡œ ì•„ê¶ì´ë¥¼ ìŒ“ê³ ê·¸ ìœ„ì— í° ëŒë©©ì´ë“¤ì„ ë§Žì´ ìŒ“ê³ ê±°ê¸°ë‹¤ê°€ ë¶ˆì„ ë•Œì–´ì„œ 달게 한 ë’¤ì— ê±°ê¸° ëˆˆì„ ë¶€ì–´ 뜨거운 ì¦ê¸°ë¥¼ 발하는 것ì´ì—ˆë‹¤.
+ì´ ê±´ì¶•ë²•ì€ ì¡°ì„ ë™í¬ë“¤ì´ ì‹œë² ë¦¬ì•„ë¡œ ê¸ˆê´‘ì„ ì°¾ì•„ë‹¤ë‹ˆë©´ì„œ 하는 법ì´ëž€ ë§ì„ 들었으나 최ì„ì´ê°€ 누구ì—게서 배워 ê°€ì§€ê³ ì–´ë–¤ 모양으로 지었는지는 최ì„ì˜ ë§ì„ 듣기 ì „ì—는 알 수 없는 ì¼ì´ë‹¤.
+나는 ë‚´ íž˜ì´ ë¯¸ì¹˜ëŠ” ë°ê¹Œì§€ 최ì„ì˜ ë³‘ ì¹˜ë£Œì— ëŒ€í•œ ì†ì„ ì“°ê³ ì–´ë–»ê²Œ í•´ì„œë“ ì§€ ì´ë¥´ì¿ ì¸ í¬ì˜ 병ì›ìœ¼ë¡œ 최ì„ì„ ë°ë ¤ë‹¤ê°€ ìž…ì›ì‹œí‚¬ ë„리를 ê¶ë¦¬í•˜ì˜€ë‹¤. 그러나 ëƒ‰ì •í•˜ê²Œ ìƒê°í•˜ë©´ 최ì„ì€ ì‚´ì•„ë‚ ê°€ë§ì´ 없는 것만 같았다.
+ë‚´ê°€ ê°„ ì§€ ì‚¬í˜ ë§Œì— ìµœì„ì€ ì²˜ìŒìœ¼ë¡œ ì •ì‹ ì„ ì°¨ë ¤ì„œ ëˆˆì„ ëœ¨ê³ ë‚˜ë¥¼ 알아보았다.
+그는 반가운 í‘œì •ì„ í•˜ê³ ë¹™ê·¸ë ˆ 웃기까지 하였다.
+"다 ì¼ì—†ë‚˜?"
+ì´ëŸ° ë§ë„ ì•Œì•„ë“¤ì„ ìˆ˜ê°€ 있었다.
+그러나 심히 ê¸°ìš´ì´ ì—†ëŠ” 모양ì´ê¸°ë¡œ 나는 ë§Žì´ ë§ì„ 하지 아니하였다.
+최ì„ì€ í•œì°¸ì´ë‚˜ ëˆˆì„ ê°ê³ 있ë”니,
+"ì •ìž„ì´ ì†Œì‹ ë“¤ì—ˆë‚˜?"
+하였다.
+"괜찮대요."
+í•˜ê³ ê³ì—서 순임ì´ê°€ ë§í•˜ì˜€ë‹¤.
+ê·¸ë¦¬ê³ ëŠ” ë˜ í˜¼ëª½í•˜ëŠ” 듯하였다.
+ê·¸ ë‚ ë˜ í•œ 번 최ì„ì€ ì •ì‹ ì„ ì°¨ë¦¬ê³ ìˆœìž„ë”러는 ì €ë¦¬ë¡œ ê°€ë¼ëŠ” ëœ»ì„ í‘œí•˜ê³ ë‚˜ë”러 귀를 ê°€ê¹Œì´ ëŒ€ë¼ëŠ” ëœ»ì„ ë³´ì´ê¸°ë¡œ 그대로 하였ë”니,
+"ë‚´ 가방 ì†ì— ì¼ê¸°ê°€ 있으니 그걸 ìžë„¤ë§Œ ë³´ê³ ëŠ” ë¶ˆì‚´ë¼ ë²„ë ¤. ë‚´ê°€ ì£½ì€ ë’¤ì—ë¼ë„ ê·¸ê²ƒì´ ì„¸ìƒ ì‚¬ëžŒì˜ ëˆˆì— ë“¤ë©´ 안 ë˜ì§€. 순임ì´ê°€ 볼까 ê±±ì •ì´ ë˜ì§€ë§ˆëŠ” ë‚´ê°€ ëª¸ì„ ê¼¼ì§í• 수가 있나."
+하는 ëœ»ì„ ë§í•˜ì˜€ë‹¤.
+"그러지."
+í•˜ê³ ë‚˜ëŠ” ê³ ê°œë¥¼ ë„ë•ì—¬ 보였다.
+ê·¸ëŸ¬ê³ ë‚œ ë’¤ì— ë‚˜ëŠ” 최ì„ì´ê°€ 시킨 대로 ê°€ë°©ì„ ì—´ê³ ì±…ë“¤ì„ ë’¤ì ¸ì„œ ê·¸ ì¼ê¸°ì±…ì´ë¼ëŠ” ê³µì±…ì„ êº¼ë‚´ì—ˆë‹¤.
+"ìˆœìž„ì´ ë„ˆ ì´ê±° 보았니?"
+í•˜ê³ ë‚˜ëŠ” ê³ì—서 ë‚´ê°€ ì±… 찾는 ê²ƒì„ ë³´ê³ ì„°ë˜ ìˆœìž„ì—게 물었다.
+"아니오. 그게 무어여요?"
+í•˜ê³ ìˆœìž„ì€ ë‚´ ì†ì— ë“ ì±…ì„ ë¹¼ì•—ìœ¼ë ¤ëŠ” ë“¯ì´ ì†ì„ 내밀었다.
+나는 ìˆœìž„ì˜ ì†ì´ ë‹¿ì§€ 않ë„ë¡ ì±…ì„ í•œíŽ¸ìœ¼ë¡œ 비키며,
+"ì´ê²ƒì´ 네 아버지 ì¼ê¸°ì¸ 모양ì¸ë° 너는 ë³´ì´ì§€ ë§ê³ 나만 ë³´ë¼ê³ 하셨다. 네 아버지가 네가 ì´ê²ƒì„ 보았ì„까 해서 ì—¼ë ¤ë¥¼ í•˜ì‹œëŠ”ë° ì•ˆ 보았으면 다행ì´ë‹¤."
+í•˜ê³ ë‚˜ëŠ” ê·¸ ì±…ì„ ë“¤ê³ ë°–ìœ¼ë¡œ 나왔다.
+ë‚ ì´ ë°ë‹¤. 해는 ì¤‘ì²œì— ìžˆë‹¤. 중천ì´ëž˜ì•¼ ì € 남쪽 ì§€í‰ì„ 가까운 ë°ë‹¤. ë°¤ì´ ì—´ì—¬ëŸ ì‹œê°„, ë‚®ì´ ëŒ€ì—¬ì„¯ ì‹œê°„ë°–ì— ì•ˆ ë˜ëŠ” ë¶ìª½ 나ë¼ë‹¤. 멀건 햇빛ì´ë‹¤.
+나는 ë³•ì´ ìž˜ 드는 ê³³ì„ ê³¨ë¼ì„œ ë‚˜ë¬´ì— ëª¸ì„ ê¸°ëŒ€ê³ ìµœì„ì˜ ì¼ê¸°ë¥¼ ì½ê¸° 시작하였다. ì½ì€ 중ì—서 몇 êµ¬ì ˆì„ ê³¨ë¼ ë³¼ê¹Œ.
+"ì§‘ì´ ë‹¤ ë˜ì—ˆë‹¤. ì´ ì§‘ì€ ë‚´ê°€ ìƒì „ ì‚´ê³ ê·¸ ì†ì—서 ì´ ì„¸ìƒì„ ë§ˆì¹ ì§‘ì´ë‹¤. 마ìŒì´ 기ì˜ë‹¤. 시ë„러운 세ìƒì€ 여기서 멀지 아니하ëƒ. ë‚´ê°€ 여기 홀로 있기로 누가 ì°¾ì„ ì‚¬ëžŒë„ ì—†ì„ ê²ƒì´ë‹¤. ë‚´ê°€ 여기서 죽기로 누가 슬í¼í•´ 줄 ì‚¬ëžŒë„ ì—†ì„ ê²ƒì´ë‹¤. 때로 ê³°ì´ë‚˜ 찾아올까. ì§€ë‚˜ê°€ë˜ ì‚¬ìŠ´ì´ë‚˜ 들여다볼까.
+ì´ê²ƒì´ ë‚´ 소ì›ì´ 아니ëƒ. 세ìƒì˜ 시ë„ëŸ¬ì›€ì„ ë– ë‚˜ëŠ” ê²ƒì´ ë‚´ 소ì›ì´ 아니ëƒ. ì´ ì†ì—서 나는 나를 ì´ê¸°ê¸°ë¥¼ 공부하ìž."
+ì²«ë‚ ì€ ì´ëŸ° í‰ë²”한 소리를 ì¼ë‹¤.
+ê·¸ ì´íŠ¿ë‚ ì—는.
+"어떻게나 나는 약한 사람ì¸ê³ . ì œ 마ìŒì„ ì œê°€ 지배하지 못하는 사람ì¸ê³ . 밤새ë„ë¡ ë‚˜ëŠ” ì •ìž„ì„ ìƒê°í•˜ì˜€ë‹¤. ì–´ë‘ìš´ í—ˆê³µì„ í–¥í•˜ì—¬ ì •ìž„ì„ ë¶ˆë €ë‹¤. ì •ìž„ì´ê°€ 나를 찾아서 ë™ê²½ì„ ë– ë‚˜ì„œ ì´ë¦¬ë¡œ 오지나 아니하나 í•˜ê³ ìƒê°í•˜ì˜€ë‹¤. 어떻게나 ë¶€ë„러운 ì¼ì¸ê³ ? 어떻게나 ê°€ì¦í•œ ì¼ì¸ê³ ?
+나는 아내를 ìƒê°í•˜ë ¤ 하였다. ì•„ì´ë“¤ì„ ìƒê°í•˜ë ¤ 하였다. 아내와 ì•„ì´ë“¤ì„ ìƒê°í•¨ìœ¼ë¡œ ì •ìž„ì˜ ìƒê°ì„ ì´ê¸°ë ¤ 하였다.
+최ì„ì•„, 너는 ë‚¨íŽ¸ì´ ì•„ë‹ˆëƒ. 아버지가 아니ëƒ. ì •ìž„ì€ ë„¤ ë”¸ì´ ì•„ë‹ˆëƒ. ì´ëŸ° ìƒê°ì„ 하였다.
+ê·¸ëž˜ë„ ì •ìž„ì˜ ì¼ë¥˜ì „ì€ ì•„ë‚´ì™€ ì•„ì´ë“¤ì˜ ìƒê°ì„ ë°€ì¹˜ê³ ë‹¬ë ¤ì˜¤ëŠ” ì ˆëŒ€ ìœ„ë ¥ì„ ê°€ì§„ 듯하였다.
+ì•„, 나는 어떻게나 íŒŒë ´ì¹˜í•œ 사람ì¸ê³ . ë‚˜ì´ ì‚¬ì‹ì´ 넘어 오ì‹ì„ ë°”ë¼ë³´ëŠ” ë†ˆì´ ì•„ë‹ˆëƒ. 사ì‹ì— 불혹ì´ë¼ê³ 아니 하ëŠëƒ. êµìœ¡ê°€ë¡œ 깨ë—한 êµì¸ìœ¼ë¡œ ì¼ìƒì„ ì‚´ì•„ ì™”ë‹¤ê³ ìžì²˜í•˜ëŠ” ë‚´ê°€ ì•„ë‹ˆëƒ í•˜ê³ ë‚˜ëŠ” ë‚´ 입으로 ë‚´ ì†ê°€ë½ì„ 물어서 ë‘ êµ°ë°ë‚˜ 피를 내었다."
+최ì„ì˜ ë‘˜ì§¸ ë‚ ì¼ê¸°ëŠ” 계ì†ëœë‹¤.
+"ë‚´ ì†ê°€ë½ì—서 피가 ë‚ ë•Œì— ë‚˜ëŠ” ìœ ì¾Œí•˜ì˜€ë‹¤. 나는 ìŠ¹ì²©ì˜ ê¸°ì¨ì„ 깨달았다.
+그러나 ì•„ì•„ 그러나 ê·¸ 빨간, ì°¸íšŒì˜ í•방울 ì†ì—ì„œë„ ì• ìš•ì˜ ë¶ˆê¸¸ì´ ì¼ì§€ 아니하는가. 나는 마침내 ì œë„í• ìˆ˜ 없는 ì¸ìƒì¸ê°€."
+ì´ ì§‘ì— ë“ ì§€ ë‘˜ì§¸ë‚ ì— ë²Œì¨ ì´ëŸ¬í•œ 비관ì ë§ì„ 하였다.
+ë˜ ë©°ì¹ ì„ ì§€ë‚œ ë’¤ ì¼ê¸°ì—,
+"나는 ë™ê²½ìœ¼ë¡œ ëŒì•„ê°€ê³ ì‹¶ë‹¤. ì •ìž„ì˜ ê³ìœ¼ë¡œ ê°€ê³ ì‹¶ë‹¤. ì‹œë² ë¦¬ì•„ì˜ê´‘ì•¼ì˜ ìœ í˜¹ë„ ì•„ë¬´ íž˜ì´ ì—†ë‹¤. ì–´ì ¯ë°¤ì€ ì‚¼ë¦¼ì˜ ì¢‹ì€ ë‹¬ì„ ë³´ì•˜ìœ¼ë‚˜ ê·¸ ë‹¬ì„ ì•„ë¦„ë‹µê²Œ ë³´ë ¤ 하였으나 아무리 í•˜ì—¬ë„ ì•„ë¦„ë‹µê²Œ ë³´ì´ì§€ë¥¼ 아니하였다.
+하늘ì´ë‚˜ 달ì´ë‚˜ 삼림ì´ë‚˜ ëª¨ë‘ ë¬´ì˜ë¯¸í•œ 존재다. ì´ì²˜ëŸ¼ 무ì˜ë¯¸í•œ 존재를 나는 경험한 ì¼ì´ 없다. ê·¸ê²ƒì€ ë‹¤ë§Œ 기ì¨ì„ ìžì•„ë‚´ì§€ ì•„ë‹ˆí• ë¿ë”러 ìŠ¬í””ë„ ìžì•„ë‚´ì§€ 못하였다. ê·¸ê²ƒì€ ìž¿ë”미였다. ì•„ë¬´ë„ ë“£ëŠ” ì´ ì—†ëŠ” ë°ì„œ ë‚´ ì§„ì •ì„ ë§í•˜ë¼ë©´ ê·¸ê²ƒì€ ì´ ì²œì§€ì— ë‚´ê²Œ ì˜ë¯¸ 있는 ê²ƒì€ ì •ìž„ì´ë°–ì— ì—†ë‹¤ëŠ” 것ì´ë‹¤.
+나는 ì •ìž„ì˜ ê³ì— ìžˆê³ ì‹¶ë‹¤. ì •ìž„ì„ ë‚´ ê³ì— ë‘ê³ ì‹¶ë‹¤. 왜? ê·¸ê²ƒì€ ë‚˜ë„ ëª¨ë¥¸ë‹¤.
+ë§Œì¼ ì´ ì›€ ì†ì—ë¼ë„ ì •ìž„ì´ê°€ 있다 하면 얼마나 ì´ê²ƒì´ ì¦ê±°ìš´ ê³³ì´ ë 까.
+그러나 ì´ê²ƒì€ 불가능한 ì¼ì´ë‹¤. ì´ ì¼ì´ 있어서는 아니 ëœë‹¤. 나는 ì´ ìƒê°ì„ 죽여야 한다. 다시 ê±°ë‘를 못 하ë„ë¡ ëª©ìˆ¨ì„ ëŠì–´ ë²„ë ¤ì•¼ 한다.
+ì´ê²ƒì„ 나는 ì›í•œë‹¤. ì›í•˜ì§€ë§ˆëŠ” 내게는 ê·¸ íž˜ì´ ì—†ëŠ” 모양ì´ë‹¤.
+나는 종êµë¥¼ ìƒê°í•˜ì—¬ 본다. ì² í•™ì„ ìƒê°í•˜ì—¬ 본다. ì¸ë¥˜ë¥¼ ìƒê°í•˜ì—¬ 본다. 나ë¼ë¥¼ ìƒê°í•˜ì—¬ 본다. ì´ê²ƒì„ ê°€ì§€ê³ ë‚´ ì• ìš•ê³¼ ë°”ê¾¸ë ¤ê³ ì• ì¨ ë³¸ë‹¤. ê·¸ë ‡ì§€ë§ˆëŠ” 내게 그러한 íž˜ì´ ì—†ë‹¤. 나는 ì™„ì „ížˆ í—¬í”Œë¦¬ìŠ¤í•¨ì„ ê¹¨ë‹«ëŠ”ë‹¤.
+ì•„ì•„ 나는 ì–´ì°Œí• ê¼¬?
+나는 못ìƒê¸´ 사람ì´ë‹¤. 그까짓 ê²ƒì„ ëª» ì´ê²¨? 그까짓 ê²ƒì„ ëª» ì´ê²¨?
+나는 ì˜ˆìˆ˜ì˜ ê´‘ì•¼ì—ì„œì˜ ìœ í˜¹ì„ ìƒê°í•œë‹¤. 천하를 주마 하는 ìœ í˜¹ì„ ìƒê°í•œë‹¤. 나는 싯다르타 태ìžê°€ 왕ê¶ì„ ë²„ë¦¬ê³ ë‚˜ì˜¨ ê²ƒì„ ìƒê°í•˜ê³ , ë˜ ìŠ¤í† ì•„ ì² í•™ìžì˜ ì˜ì§€ë ¥ì„ ìƒê°í•˜ì˜€ë‹¤.
+그러나 나는 그러한 ìƒê°ìœ¼ë¡œë„ ì´ ìƒê°ì„ ì´ê¸¸ 수가 없는 것 같다.
+나는 í˜ëª…가를 ìƒê°í•˜ì˜€ë‹¤. ëª¨ë“ ê²ƒ ì‚¬ëž‘ë„ ëª©ìˆ¨ë„ ë‹¤ í—Œì‹ ì§ê°™ì´ ì§‘ì–´ë˜ì§€ê³ 피 í르는 마당으로 뛰어나가는 용사를 ìƒê°í•˜ì˜€ë‹¤. 나는 ì´ë없는 삼림 ì†ìœ¼ë¡œ í˜ëª…ì˜ ìš©ì‚¬ 모양으로 달ìŒë°•질치다가 ê¸°ìš´ì´ ì§„í•œ ê³³ì—서 죽어 버리는 ê²ƒì´ ì†Œì›ì´ì—ˆë‹¤. 그러나 ê±°ê¸°ê¹Œì§€ë„ ì´ ìƒê°ì€ 따르지 ì•„ë‹ˆí• ê¹Œ.
+나는 지금 ê³§ 죽어 버릴까. 나는 육혈í¬ë¥¼ ì†ì— 들어 보았다. ì´ ë°©ì•„ì‡ ë¥¼ 한 번만 튕기면 ë‚´ ìƒëª…ì€ ì—†ì–´ì§€ëŠ” ê²ƒì´ ì•„ë‹Œê°€. 그리 ë˜ë©´ ëª¨ë“ ì´ ë§ˆìŒì˜ 움ì§ìž„ì€ ì†Œë©¸ë˜ëŠ” ê²ƒì´ ì•„ë‹Œê°€. ì´ê²ƒìœ¼ë¡œ 만사가 í•´ê²°ë˜ëŠ” ê²ƒì´ ì•„ë‹Œê°€.
+ì•„ 하나님ì´ì‹œì—¬, íž˜ì„ ì£¼ì‹œì˜µì†Œì„œ. 천하를 ì´ê¸°ëŠ” íž˜ë³´ë‹¤ë„ ë‚˜ ìžì‹ ì„ ì´ê¸°ëŠ” íž˜ì„ ì£¼ì‹œì˜µì†Œì„œ. ì´ ì£„ì¸ìœ¼ë¡œ 하여금 í•˜ë‚˜ë‹˜ì˜ ëˆˆì— ì˜ë¡ê³ 깨ë—한 사람으로 ì´ ì¼ìƒì„ 마치게 하여 주시옵소서, ì´ë ‡ê²Œ 나는 기ë„를 한다.
+그러나 하나님께서는 나를 버리셨다. 하나님께서는 내게 íž˜ì„ ì£¼ì‹œì§€ 아니하시었다. 나를 ì´ ë¹„ì°¸í•œ ìžë¦¬ì—서 ì©ì–´ì ¸ 죽게 하시었다."
+최ì„ì€ ì–´ë–¤ ë‚ ì¼ê¸°ì— ë˜ ì´ëŸ° ê²ƒë„ ì¼ë‹¤. ê·¸ê²ƒì€ ì˜ˆì „ 내게 보낸 íŽ¸ì§€ì— ìžˆë˜ ê¿ˆ ì´ì•¼ê¸°ë¥¼ ì—°ìƒì‹œí‚¤ëŠ” 것ì´ì—ˆë‹¤. ê·¸ê²ƒì€ ì´ëŸ¬í•˜ë‹¤.
+"오늘 ë°¤ì€ ë‹¬ì´ ì¢‹ë‹¤. ì‹œë² ë¦¬ì•„ì˜ ê²¨ìš¸ 해는 ì°¸ 못ìƒê¸´ ì‚¬ëžŒê³¼ë„ ê°™ì´ ê¸°ìš´ì´ ì—†ì§€ë§ˆëŠ” 하얀 ë•…, 검푸른 í•˜ëŠ˜ì— ì €ìª½ ì§€í‰ì„ ì„ í–¥í•˜ê³ í˜ëŸ¬ê°€ëŠ” ë°˜ë‹¬ì€ ì°¸ìœ¼ë¡œ ë§‘ìŒ ê·¸ê²ƒì´ì—ˆë‹¤.
+나는 í‰ìƒ ì²˜ìŒ ì‹œ 비슷한 ê²ƒì„ ì§€ì—ˆë‹¤.
+임과 ì´ë³„í•˜ë˜ ë‚ ë°¤ì—는 남쪽 나ë¼ì— 바람비가 쳤네
+ìž„ íƒ€ì‹ ìžë™ì°¨ì˜ ë’·ë¶ˆì´ ë¹¨ê°„ ë’·ë¶ˆì´ ë¹—ë°œì— ì°¢ê²¼ë„¤
+ìž„ ë– ë‚˜ í˜¼ìž í—¤ë§¤ëŠ” ì‹œë² ë¦¬ì•„ì˜ ì˜¤ëŠ˜ ë°¤ì—는
+ì§€ë ¤ëŠ” ìª½ë‹¬ì´ ëˆˆ ë®ì¸ ì‚¼ë¦¼ì— ê±¸ë ¸êµ¬ë‚˜
+ì•„ì•„ ì € 쪽달ì´ì—¬
+억지로 ë°˜ì„ ê°ˆê²¨ì§„ ê²ƒë„ ê°™ì•„ë¼
+ì•„ì•„ ì € 쪽달ì´ì—¬
+잃어진 ì§ì„ 찾아
+차디찬 허공 ì†ì„ ì˜ì›ížˆ 헤매는 ê²ƒë„ ê°™êµ¬ë‚˜
+ë‚˜ë„ ì € 달과 ê°™ì´ ìžƒì–´ë²„ë¦° ë°˜ìª½ì„ ì°¾ì•„ 무ê¶í•œ 시간과 공간ì—서 헤매는 것만 같다.
+ì—ìµ. ë‚´ê°€ 왜 ì´ë¦¬ 약한가. 어찌하여 í¬ë‚˜í° ë§Žì€ ì¼ì„ ëŒì•„ë³´ì§€ ëª»í•˜ê³ ìš”ë§Œí•œ ì• ìš•ì˜ í¬ë¡œê°€ ë˜ëŠ”ê°€.
+그러나 나는 차마 ê·¸ ë‹¬ì„ ë²„ë¦¬ê³ ë“¤ì–´ì˜¬ 수가 없었다. ë‚´ê°€ 왜 ì´ë ‡ê²Œ 센티멘털하게 ë˜ì—ˆëŠ”ê³ . ë‚´ ì‡ ê°™ì€ ì˜ì§€ë ¥ì´ 어디로 ê°”ëŠ”ê³ . ë‚´ 누를 수 없는 ìžì¡´ì‹¬ì´ 어디로 ê°”ëŠ”ê³ . 나는 마치 ìœ ëª¨ì˜ ì†ì— 달린 ì –ë¨¹ì´ì™€ë„ 같다. ë‚´ ì¼ì‹ ì€ ë„시 ì• ìš• ë©ì–´ë¦¬ë¡œ 화해 버린 것 같다.
+ì´ë¥¸ë°” 사랑 사랑ì´ëž€ ë§ì€ 종êµì ì˜ë¯¸ì¸ 것 ì´ì™¸ì—ë„ ìž…ì— ë‹´ê¸°ë„ ì‹«ì–´í•˜ë˜ ë§ì´ë‹¤ ì´ëŸ° ê²ƒì€ ë‚´ ì˜ì§€ë ¥ê³¼ ìžì¡´ì‹¬ì„ 녹여 ë²„ë ¸ëŠ”ê°€. ë˜ ì´ ë¶€ìžì—°í•œ ê³ ë…ì˜ ìƒí™œì´ 나를 ì´ë ‡ê²Œ ë‚´ ì¸ê²©ì„ ì´ë ‡ê²Œ 파괴하였는가.
+ê·¸ë ‡ì§€ 아니하면 ë‚´ ìžì¡´ì‹¬ì´ë¼ëŠ” 것ì´ë‚˜, ì˜ì§€ë ¥ì´ë¼ëŠ” 것ì´ë‚˜, ì¸ê²©ì´ë¼ëŠ” ê²ƒì´ ëª¨ë‘ ì„¸ìƒì˜ 습관과 ì‚¬ì¡°ì— íœ©ì“¸ë¦¬ë˜ ê²ƒì¸ê°€. ë‚¨ë“¤ì´ ê·¸ëŸ¬ë‹ˆê¹Œ ë‚¨ë“¤ì´ ì˜³ë‹¤ë‹ˆê¹Œ ë‚¨ë“¤ì´ ë¬´ì„œìš°ë‹ˆê¹Œ ì´ ì• ìš•ì˜ ë¬´ë¤ì— 회를 ë°œëžë˜ 것ì¸ê°€. 그러다가 ê³ ë…ê³¼ ë°˜ì„±ì˜ ê¸°íšŒë¥¼ 얻으매 ëª¨ë“ íšŒì¹ ê³¼ ê°€ë©´ì„ ë–¼ì–´ ë²„ë¦¬ê³ ë¹¨ê°€ë²—ì€ ì• ìš•ì˜ ë‰í……ì´ê°€ 나온 것ì¸ê°€.
+ê·¸ë ‡ë‹¤ 하면, ì´ê²ƒì´ ì°¸ëœ ë‚˜ì¸ê°€. ì´ê²ƒì´ 하나님께서 지어 ì£¼ì‹ ëŒ€ë¡œì˜ ë‚˜ì¸ê°€. ê°€ìŠ´ì— íƒ€ì˜¤ë¥´ëŠ” ì• ìš•ì˜ ë¶ˆê¸¸ ì´ ë¶ˆê¸¸ì´ ê³§ ë‚´ ì˜í˜¼ì˜ 불길ì¸ê°€.
+어쩌면 ê·¸ ëª¨ë“ ë†’ì€ ì´ìƒë“¤ ì¸ë¥˜ì— 대한, ë¯¼ì¡±ì— ëŒ€í•œ, ë„ë•ì— ëŒ€í•œ, ì‹ ì•™ì— ëŒ€í•œ ê·¸ ë†’ì€ ì´ìƒë“¤ì´ ì´ë ‡ê²Œë„ 만만하게 마치 ë°”ëžŒì— ë¶ˆë¦¬ëŠ” 재 모양으로 ìžì·¨ë„ ì—†ì´ í©ì–´ì ¸ ë²„ë¦¬ê³ ë§ê¹Œ. ê·¸ë¦¬ê³ ê·¸ ë’¤ì—는 í‰ì†Œì—ê·¸ë ‡ê²Œë„ ë¯¸ì›Œí•˜ê³ ì²œížˆ ì—¬ê¸°ë˜ ì• ìš•ì˜ ê²€ì€ í™ë§Œ ë‚¨ê³ ë§ê¹Œ.
+ì•„ì•„ ì € 눈 ë®ì¸ ë•…ì´ì—¬, ì°¨ê³ ë§‘ì€ ë‹¬ì´ì—¬, 허공ì´ì—¬! 나는 너í¬ë“¤ì„ 부러워하노ë¼.
+불êµë„ë“¤ì˜ í•´íƒˆì´ë¼ëŠ” ê²ƒì´ ì´ëŸ¬í•œ ì• ìš•ì´ ë¶ˆë¶™ëŠ” 지옥ì—서 눈과 ê°™ì´ ì‹¸ëŠ˜í•˜ê³ í—ˆê³µê³¼ ê°™ì´ ë¹ˆ 곳으로 들어ê°ì„ ì´ë¦„ì¸ê°€.
+ì„ê°€ì˜ íŒ” ë…„ ê°„ 설산 ê³ í–‰ì´ ì´ ì• ìš•ì˜ ë¿Œë¦¬ë¥¼ ëŠìœ¼ë ¤ 함ì´ë¼ í•˜ê³ ì˜ˆìˆ˜ì˜ ì‚¬ì‹ ì¼ ê´‘ì•¼ì˜ ê³ í–‰ê³¼ ê²Ÿì„¸ë§ˆë„¤ì˜ ê³ ë¯¼ë„ ì´ ì• ìš•ì˜ ë¿Œë¦¬ 때문ì´ì—ˆë˜ê°€.
+그러나 ê·¸ê²ƒì„ ì´ê¸°ì–´ 낸 ì‚¬ëžŒì´ ì²œì§€ 개벽 ì´ëž˜ì— 몇몇ì´ë‚˜ ë˜ì—ˆëŠ”ê³ ? 나 ê°™ì€ ê²ƒì´ ê·¸ ì¤‘ì— í•œ 사람 ë˜ê¸°ë¥¼ 바랄 수가 있ì„까.
+나 같아서는 마침내 ì´ ì• ìš•ì˜ ë¶ˆê¸¸ì— ë‹¤ 타서 재가 ë˜ì–´ 버릴 것만 같다. ì•„ì•„ 어떻게나 íž˜ìžˆê³ ë¬´ì„œìš´ 불길ì¸ê³ ."
+ì´ëŸ¬í•œ ê³ ë¯¼ì˜ ìžë°±ë„ 있었다.
+ë˜ ì–´ë–¤ ë‚ ì¼ê¸°ì—는 최ì„ì€ ì´ëŸ° ë§ì„ ì¼ë‹¤.
+"나는 단연히 ë™ê²½ìœ¼ë¡œ ëŒì•„가기를 결심하였다."
+ê·¸ë¦¬ê³ ëŠ” ê·¸ ì´íŠ¿ë‚ ì€,
+"나는 단연히 ë™ê²½ìœ¼ë¡œ ëŒì•„가리란 ê²°ì‹¬ì„ í•œ ê²ƒì„ êµ³ì„¸ê²Œ 취소한다. 나는 ì´ëŸ¬í•œ ê²°ì‹¬ì„ í•˜ëŠ” 나 ìžì‹ ì„ êµ³ì„¸ê²Œ ë¶€ì¸í•œë‹¤."
+ë˜ ì´ëŸ° ë§ë„ 있다.
+"나는 ì •ìž„ì„ ì‹œë² ë¦¬ì•„ë¡œ ë¶€ë¥´ë ¨ë‹¤."
+ë˜ ê·¸ 다ìŒì—는,
+"ì•„ì•„ 나는 í•˜ë£¨ë°”ì‚ ì£½ì–´ì•¼ 한다. ì´ ëª©ìˆ¨ì„ ì—°ìž¥í•˜ì˜€ë‹¤ê°€ëŠ” 무슨 ì¼ì„ ì €ì§€ë¥¼ëŠ”ì§€ 모른다. 나는 깨ë—하게 나를 ì´ê¸°ëŠ” ë„ë•ì ì¸ê²©ìœ¼ë¡œ ì´ ì¼ìƒì„ 마ì³ì•¼ 한다. ì´ ë°–ì— ë‚´ ì‚¬ì—…ì´ ë¬´ì—‡ì´ëƒ."
+ë˜ ì–´ë–¤ ê³³ì—는,
+"ì•„ì•„ 무서운 하룻밤ì´ì—ˆë‹¤. 나는 지난 í•˜ë£»ë°¤ì„ ëˆ„ë¥¼ 수 없는 ì• ìš•ì˜ ë¶ˆê¸¸ì— íƒ”ë‹¤. 나는 ë‚´ 주먹으로 ë‚´ ê°€ìŠ´ì„ ë‘ë“œë¦¬ê³ ë¨¸ë¦¬ë¥¼ ë²½ì— ë¶€ë”ªì³¤ë‹¤. 나는 주먹으로 ë‹´ë²½ì„ ë‘ë“œë ¤ ì†ë“±ì´ í„°ì ¸ì„œ 피가 í˜ë €ë‹¤. 나는 ë‚´ 머리카ë½ì„ ì¥ì–´ëœ¯ì—ˆë‹¤. 나는 ìˆ˜ì—†ì´ ë°œì„ êµ´ë €ë‹¤. 나는 ì´ ë¬´ì„œìš´ ìœ í˜¹ì„ ì´ê¸°ë ¤ê³ ë‚´ ëª¸ì„ ì•„í”„ê²Œ 하였다. 나는 견디다 못하여 ë¬¸ì„ ë°•ì°¨ê³ ë›°ì–´ë‚˜ê°”ë‹¤. ë°–ì—는 ë‹¬ì´ ìžˆê³ ëˆˆì´ ìžˆì—ˆë‹¤. 그러나 ëˆˆì€ í•ë¹›ì´ìš”, ë‹¬ì€ ì°Œê·¸ëŸ¬ì§„ 것 같았다. 나는 눈 ì†ìœ¼ë¡œ 달ìŒë°•질쳤다. ë‹¬ì„ ë”°ë¼ì„œ 엎드러지며 ìžë¹ 지며 달ìŒì§ˆì³¤ë‹¤. 나는 소리를 ì§ˆë €ë‹¤. 나는 미친 사람 같았다."
+ê·¸ëŸ¬ê³ ëŠ” 어디까지 갔다가 ì–´ëŠ ë•Œì— ì–´ë– í•œ ì‹¬ê²½ì˜ ë³€í™”ë¥¼ 얻어 ê°€ì§€ê³ ëŒì•„왔다는 ë§ì€ ì“°ì´ì§€ 아니하였으나 최ì„ì˜ ë³‘ì˜ ì›ì¸ì„ 설명하는 것 같았다.
+"ì—´ì´ ë‚˜ê³ ê¸°ì¹¨ì´ ë‚œë‹¤. ê°€ìŠ´ì´ ì•„í”„ë‹¤. ì´ê²ƒì´ íë ´ì´ ë˜ì–´ì„œ í˜¼ìž ê¹¨ë—하게 ì´ ìƒëª…ì„ ë§ˆì¹˜ê²Œ 하여 주소서 í•˜ê³ ë¹ˆë‹¤. 나는 오늘부터 ë¨¹ê³ ë§ˆì‹œê¸°ë¥¼ ê·¸ì¹˜ë ¨ë‹¤."
+ì´ëŸ¬í•œ ë§ì„ ì¼ë‹¤. ê·¸ëŸ¬ê³ ëŠ”,
+"ì •ìž„, ì •ìž„, ì •ìž„, ì •ìž„."
+í•˜ê³ ì •ìž„ì˜ ì´ë¦„ì„ ìˆ˜ì—†ì´ ì“´ ê²ƒë„ ìžˆê³ , ì–´ë–¤ ë°ëŠ”,
+"Overcome, Overcome."
+í•˜ê³ ì˜ì–´ë¡œ ì“´ ê²ƒë„ ìžˆì—ˆë‹¤.
+ê·¸ë¦¬ê³ ë§ˆì§€ë§‰ì—,
+"나는 죽ìŒê³¼ 대면하였다. 사í˜ì§¸ êµ¶ê³ ì•“ì€ ì˜¤ëŠ˜ì— ë‚˜ëŠ” 극히 ë§‘ê³ ì¹¨ì°©í•œ ì •ì‹ ìœ¼ë¡œ 죽ìŒê³¼ 대면하였다. 죽ìŒì€ ê²€ì€ ì˜·ì„ ìž…ì—ˆìœ¼ë‚˜ ê·¸ 얼굴ì—는 ìžë¹„ì˜ í‘œì •ì´ ìžˆì—ˆë‹¤. 죽ìŒì€ ê³§ ê²€ì€ ì˜·ì„ ìž…ì€ êµ¬ì›ì˜ ì†ì´ì—ˆë‹¤. 죽ìŒì€ 아름다운 그림ìžì˜€ë‹¤. 죽ìŒì€ 반가운 ì• ì¸ì´ìš”, ê²°ì½” 무서운 ì›ìˆ˜ê°€ 아니었다. 나는 죽ìŒì˜ ì†ì„ 잡노ë¼. ê°ì‚¬í•˜ëŠ” 마ìŒìœ¼ë¡œ 죽ìŒì˜ í’ˆì— ì•ˆê¸°ë…¸ë¼. 아멘."
+ì´ê²ƒì„ ì“´ ë’¤ì—는 다시는 ì¼ê¸°ê°€ 없었다. ì´ê²ƒìœ¼ë¡œ 최ì„ì´ê°€ ê·¸ ë™ì•ˆ 지난 ì¼ì„ ì ì–´ë„ ì‹¬ë¦¬ì ë³€í™”ë§Œì€ ëŒ€ê°• ì¶”ì¸¡í• ìˆ˜ê°€ 있었다.
+다행히 최ì„ì˜ ë³‘ì€ ì ì ëŒë¦¬ëŠ” 듯하였다. ì—´ë„ ë‚´ë¦¬ê³ ì‹ì€ë•€ë„ ëœ í˜ë ¸ë‹¤. 안 ë¨¹ëŠ”ë‹¤ê³ ê³ ì§‘í•˜ë˜ ìŒì‹ë„ 먹기를 시작하였다.
+ì •ìž„ì—게로 ê°”ë˜ ë…¸íŒŒì—게서는 ì •ìž„ë„ ì—´ì´ ë‚´ë¦¬ê³ ì¼ì–´ë‚˜ ì•‰ì„ ë§Œí•˜ë‹¤ëŠ” 편지가 왔다.
+나는 ë…¸íŒŒì˜ íŽ¸ì§€ë¥¼ 최ì„ì—게 ì½ì–´ 주었다. 최ì„ì€ ê·¸ 편지를 ë“£ê³ ë§¤ìš° í¥ë¶„하는 모양ì´ì—ˆìœ¼ë‚˜ ê³§ 안심하는 ë¹›ì„ ë³´ì˜€ë‹¤.
+나는 최ì„ì˜ ë³‘ì´ ëŒë¦¬ëŠ” ê²ƒì„ ë³´ê³ ì •ìž„ì„ ì°¾ì•„ë³¼ 양으로 ë– ë‚˜ë ¤ 하였으나 순임ì´ê°€ 듣지 아니하였다. 혼ìžì„œ 앓는 아버지를 ë§¡ì•„ ê°€ì§€ê³ ìžˆì„ ìˆ˜ëŠ” 없다는 것ì´ì—ˆë‹¤. 그래서 노파가 오기를 기다리기로 하였다.
+나는 최ì„ì´ê°€ ë¨¹ì„ ìŒì‹ë„ ì‚´ 겸 우편êµì—ë„ ë“¤ë¥¼ 겸 시가까지 가기로 í•˜ê³ ì´ ê³³ 온 ì§€ ì¼ ì£¼ì¼ì´ë‚˜ 지나서 처ìŒìœ¼ë¡œ ì‚°ì—서 나왔다.
+나는 ì´ë¥´ì¿ ì¸ í¬ì— 가서 최ì„ì„ ìœ„í•˜ì—¬ 약품과 ë¨¹ì„ ê²ƒì„ ì‚¬ê³ ë˜ ìˆœìž„ì„ ìœ„í•´ì„œë„ ë¨¹ì„ ê²ƒê³¼ ì˜ë³µê³¼ ë˜ í•˜ëª¨ë‹ˆì¹´ì™€ ì†í’ê¸ˆë„ ì‚¬ ê°€ì§€ê³ ì •ê±°ìž¥ì— ë‚˜ì™€ì„œ ëŒì•„올 차를 ê¸°ë‹¤ë¦¬ê³ ìžˆì—ˆë‹¤.
+나는 순후해 ë³´ì´ëŠ” ì•„ë¼ì‚¬ ì‚¬ëžŒë“¤ì´ ì •ê±°ìž¥ì—서 오ë½ê°€ë½í•˜ëŠ” ê²ƒì„ ë³´ê³ ì†ìœ¼ë¡œëŠ” 최ì„ì´ê°€ ë³‘ì´ ì¢€ ë‚˜ì€ ê²ƒì„ ë‹¤í–‰ìœ¼ë¡œ ìƒê°í•˜ê³ , ë˜ ìµœì„ê³¼ ì •ìž„ì˜ ìž¥ëž˜ê°€ ì–´ì°Œ ë 까 하는 ê²ƒë„ ìƒê°í•˜ë©´ì„œ 뷔페(ì‹ë‹¹)ì—서 뜨거운 ì°¨ì´(ì°¨)를 ë§ˆì‹œê³ ìžˆì—ˆë‹¤.
+ì´ ë•Œì— ë°–ì„ ë°”ë¼ë³´ê³ ìžˆë˜ ë‚´ ëˆˆì€ ë¬¸ë“ ì´ìƒí•œ ê²ƒì„ ë³´ì•˜ë‹¤. ê·¸ê²ƒì€ ê·¸ 노파가 ì´ë¦¬ë¡œ í–¥í•˜ê³ ê±¸ì–´ì˜¤ëŠ” 것ì¸ë° ê·¸ 노파와 íŒ”ì„ ê±¸ì€ ì Šì€ ì—¬ìžê°€ 있는 것ì´ë‹¤. 머리를 ê²€ì€ ìˆ˜ê±´ìœ¼ë¡œ ì‹¸ë§¤ê³ ìž…ê³¼ 코를 ê°€ë¦¬ì› ìœ¼ë‹ˆ 분명히 알 수 없으나 í˜¹ì€ ì •ìž„ì´ë‚˜ 아닌가 í• ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. ì •ìž„ì´ê°€ 몸만 기ë™í•˜ê²Œ ë˜ë©´ 최ì„ì„ ë³´ëŸ¬ 올 ê²ƒì€ ì •ìž„ì˜ ì—´ì •ì ì¸ ì„±ê²©ìœ¼ë¡œ 보아서 당연한 ì¼ì´ê¸° 때문ì´ì—ˆë‹¤.
+나는 반쯤 ë¨¹ë˜ ì°¨ë¥¼ ë†“ê³ ë·”íŽ˜ 밖으로 뛰어나갔다.
+"오 미시즈 체스터필드?"
+í•˜ê³ ë‚˜ëŠ” 노파 ì•žì— ì†ì„ 내어밀었다. 노파는 체스터필드ë¼ëŠ” ë¯¸êµ ë‚¨íŽ¸ì˜ ì„±ì„ ë”°ë¼ì„œ 부르는 ê²ƒì„ ê¸°ì–µí•˜ì˜€ë‹¤.
+"ì„ ìƒë‹˜!"
+하는 ê²ƒì€ ì •ìž„ì´ì—ˆë‹¤. ê·¸ ì†Œë¦¬ë§Œì€ ë³€ì¹˜ 아니하였다. 나는 ê²€ì€ ìž¥ê°‘ì„ ë‚€ ì •ìž„ì˜ ì†ì„ 잡았다. 나는 여러 ë§ ì•„ë‹ˆí•˜ê³ ë…¸íŒŒì™€ ì •ìž„ì„ ë·”íŽ˜ë¡œ ëŒê³ 들어왔다.
+ëŠ™ì€ ë·”íŽ˜ ë³´ì´ëŠ” 번ì©ë²ˆì©í•˜ëŠ” 사모바르ì—서 ì°¨ ë‘ ìž”ì„ ë”°ë¼ë‹¤ê°€ 노파와 ì •ìž„ì˜ ì•žì— ë†“ì•˜ë‹¤.
+노파는 ì–´ë¦°ì• ì—게 하는 모양으로 ì •ìž„ì˜ ìˆ˜ê±´ì„ ë²—ê²¨ 주었다. ê·¸ ì†ì—서는 해쓱하게 여윈 ì •ìž„ì˜ ì–¼êµ´ì´ ë‚˜ì™”ë‹¤. ë‘ ë³¼ì— ë¶ˆê·¸ë ˆí•˜ê²Œ í™í›ˆì´ ë„는 ê²ƒë„ ë³‘ 때문ì¸ê°€.
+"어때? ì‹ ì—´ì€ ì—†ë‚˜?"
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì—게 물었다.
+"괜찮아요."
+í•˜ê³ ì •ìž„ì€ ì›ƒìœ¼ë©°,
+"최 ì„ ìƒë‹˜ê»˜ì„œëŠ” ì–´ë– ì„¸ìš”?"
+í•˜ê³ ë¬»ëŠ”ë‹¤.
+"좀 ë‚˜ìœ¼ì‹ ëª¨ì–‘ì´ì•¼. 그래서 나는 오늘 ì •ìž„ì„ ì¢€ 보러 ê°€ë ¤ê³ í–ˆëŠ”ë° ì´ ì²´ìŠ¤í„°í•„ë“œ ë¶€ì¸ê»˜ì„œ 아니 오시면 순임ì´ê°€ í˜¼ìž ìžˆì„ ìˆ˜ê°€ ì—†ë‹¤ê³ í•´ì„œ, 그래 ì´ë ‡ê²Œ 최 ì„ ìƒ ìžì‹¤ ê²ƒì„ ì‚¬ ê°€ì§€ê³ ê°€ëŠ” 길ì´ì•¼."
+í•˜ê³ ë§ì„ í•˜ë©´ì„œë„ ë‚˜ëŠ” ì •ìž„ì˜ ëˆˆê³¼ ìž…ê³¼ 목ì—서 ê·¸ì˜ ë³‘ê³¼ 마ìŒì„ ì•Œì•„ë³´ë ¤ê³ ì• ë¥¼ ì¼ë‹¤.
+ì¤‘ë³‘ì„ ì•“ì€ ê¹ í•´ì„œëŠ” 한 달 ì „ 남대문서 ë³¼ 때보다 얼마 ë” ì´ˆì·Œí•œ 것 같지는 아니하였다.
+"네ì—."
+í•˜ê³ ì •ìž„ì€ ê³ ê°œë¥¼ 숙였다. ê·¸ì˜ ì•ˆê²½ì•Œì—는 ì´ìŠ¬ì´ ë§ºí˜”ë‹¤.
+"ì„ ìƒë‹˜ ëŒì€ 다 안녕하셔요?"
+"ì‘, ë‚´ê°€ ë– ë‚ ë•Œì—는 괜찮았어."
+"최 ì„ ìƒë‹˜ ëŒë„?"
+"ì‘."
+"ì„ ìƒë‹˜ í½ì€ ì• ë¥¼ 쓰셨어요."
+í•˜ê³ ì •ìž„ì€ ìš¸ìŒì¸ì§€ 웃ìŒì¸ì§€ 모를 웃ìŒì„ 웃는다.
+ë§ì„ 모르는 노파는 우리가 하는 ë§ì„ 눈치나 ì±„ë ¤ëŠ” ë“¯ì´ ë©€ê±°ë‹ˆ ë³´ê³ ìžˆë‹¤ê°€ 서투른 ì˜ì–´ë¡œ,
+"ì•„ì§ ë¯¸ìŠ¤ ë‚¨ì€ ì‹ ì—´ì´ ìžˆë‹µë‹ˆë‹¤. ê·¸ëž˜ë„ ê°€ ë³¸ë‹¤ê³ , ì£½ì–´ë„ ê°€ ë³¸ë‹¤ê³ ë‚´ ë§ì„ 안 ë“£ê³ ë”°ë¼ì™”지요."
+í•˜ê³ ì •ìž„ì—게 ì• ì • 있는 눈í˜ê¹€ì„ 주며,
+"ìœ ë…¸í‹° ì°¨ì¼ë“œ(ë§ì½ê¾¼ì´)."
+í•˜ê³ ìž…ì„ ì”°ë£©í•˜ë©° ì •ìž„ì„ ì•ˆê²½ 위로 본다.
+"니체워, 마뚜슈까(괜찮아요, 어머니)."
+í•˜ê³ ì •ìž„ì€ ë…¸íŒŒë¥¼ ë³´ê³ ì›ƒì—ˆë‹¤. ì •ìž„ì˜ ì„œì–‘ 사람ì—게 대한 í–‰ë™ì€ 서양ì‹ìœ¼ë¡œ ì§¸ì—ˆë‹¤ê³ ìƒê°í•˜ì˜€ë‹¤.
+ì •ìž„ì€ ë„리어 ìœ ì¾Œí•œ ë¹›ì„ ë³´ì˜€ë‹¤. 다만 ê·¸ì˜ ë¶‰ì€ë¹› ë¤ ëˆˆê³¼ 마른 ìž…ìˆ ì´ ê·¸ì˜ ëª¸ì— ì—´ì´ ìžˆìŒì„ 보였다. 나는 ê·¸ì˜ ì†ëê³¼ ë°œëì´ ì‹¸ëŠ˜í•˜ê²Œ ì–¼ì—ˆì„ ê²ƒì„ ìƒìƒí•˜ì˜€ë‹¤.
+마침 ì´ ë‚ ì€ ë‚ ì´ ì˜¨í™”í•˜ì˜€ë‹¤. ì—·ì€ í–‡ë¹›ë„ ì˜¤ëŠ˜ì€ ë‘꺼워진 듯하였다.
+우리 세 ì‚¬ëžŒì€ Fì—ì—서 ë‚´ë ¤ì„œ ì°ë§¤ 하나를 얻어 íƒ€ê³ ì‚°ìœ¼ë¡œ 향하였다. ì‚°ë„ ì•„ë‹ˆì§€ë§ˆëŠ” ì‚° 있는 나ë¼ì—서 ì‚´ë˜ ìš°ë¦¬ëŠ” 최ì„ì´ê°€ 사는 ê³³ì„ ì‚°ì´ë¼ê³ 부르는 ìŠµê´€ì„ ì§€ì—ˆë‹¤. ì‚¼ë¦¼ì´ ìžˆìœ¼ë‹ˆ ì‚°ê°™ì´ ìƒê°ëœ 까ë‹ì´ì—ˆë‹¤.
+노파가 오른편 ëì— ì•‰ê³ , 가운ë°ë‹¤ê°€ ì •ìž„ì„ ì•‰ížˆê³ ì™¼íŽ¸ ëì— ë‚´ê°€ 앉았다.
+쩟쩟쩟 하는 ì†Œë¦¬ì— ë§ì€ 달리기 시작하였다. 한 í•„ì€ í‚¤ í° ë§ì´ìš”, 한 í•„ì€ í‚¤ê°€ ìž‘ì€ ë§ì¸ë° 키 í° ë§ì€ 아마 ëŠ™ì€ êµ°ë§ˆ 퇴물ì¸ê°€ 싶게 허우대는 좋으나 ëª¸ì´ ì—¬ìœ„ê³ í„¸ì—는 ìœ¤ì´ ì—†ì—ˆë‹¤. 조금만 올ë¼ê°€ëŠ” ê¸¸ì´ ë˜ì–´ë„ ê³ ê°œë¥¼ 숙ì´ê³ ì• ë¥¼ ì¼ë‹¤. ìž‘ì€ ë§ì€ 까불어서 ê°€ë” ì±„ì°ìœ¼ë¡œ 얻어맞았다.
+"ì•„ì´ ì‚¼ë¦¼ì´ ì¢‹ì•„ìš”."
+í•˜ê³ ì •ìž„ì€ ì •ë§ ê¸°ìœ ë“¯ì´ ë‚˜ë¥¼ ëŒì•„보았다.
+"좋아?"
+í•˜ê³ ë‚˜ëŠ” ë©‹ì—†ì´ ëŒ€ê¾¸í•˜ê³ ë‚˜ì„œ, 후회ë˜ëŠ” 듯ì´,
+"밤낮 삼림 ì†ì—서만 사니까 지루한ë°."
+하는 ë§ì„ 붙였다.
+"ì €ëŠ” ì € 눈 있는 삼림 ì†ìœ¼ë¡œ í•œì • ì—†ì´ ê°€ê³ ì‹¶ì–´ìš”. 그러나 ì €ëŠ” ì¸ì œ ê¸°ìš´ì´ ì—†ìœ¼ë‹ˆê¹ ì›¬ê±¸ 그래 ë³´ê² ì–´ìš”?"
+í•˜ê³ í•œìˆ¨ì„ ì‰¬ì—ˆë‹¤.
+"왜 그런 소릴 í•´. ì¸ì œ 나ì„걸."
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì˜ ëˆˆì„ ë“¤ì—¬ë‹¤ë³´ì•˜ë‹¤. 마치 슬픈 눈물 방울ì´ë‚˜ ì°¾ìœ¼ë ¤ëŠ” 듯ì´.
+"ì œê°€ ì§€ê¸ˆë„ ì—´ì´ ì‚¼ì‹íŒ” ë„ê°€ 넘습니다. ì •ì‹ ì´ í릿해지는 ê²ƒì„ ë³´ë‹ˆê¹Œ 아마 ë” ì˜¬ë¼ê°€ë‚˜ ë´ìš”. ê·¸ëž˜ë„ ê´œì°®ì•„ìš”. 오늘 하루야 못 ì‚´ë¼ê³ ìš”. 오늘 하루만 ì‚´ë©´ 괜찮아요. 최 ì„ ìƒë‹˜ë§Œ 한 번 ëµ™ê³ ì£½ìœ¼ë©´ 괜찮아요."
+"왜 그런 소릴 해?"
+í•˜ê³ ë‚˜ëŠ” ì±…ë§í•˜ëŠ” ë“¯ì´ ì–¸ì„±ì„ ë†’ì˜€ë‹¤.
+ì •ìž„ì€ ê¸°ì¹¨ì„ ì‹œìž‘í•˜ì˜€ë‹¤. 한바탕 ê¸°ì¹¨ì„ í•˜ê³ ëŠ” ê¸°ìš´ì´ ì§„í•œ ë“¯ì´ ë…¸íŒŒì—게 기대며 ì¡°ì„ ë§ë¡œ,
+"추워요."
+하였다. ì´ ì—¬í–‰ì´ ì–´ë–»ê²Œ ì •ìž„ì˜ ë³‘ì— ì¢‹ì§€ ëª»í• ê²ƒì€ ì˜ì‚¬ê°€ 아닌 ë‚˜ë¡œë„ ì§ìž‘í• ìˆ˜ê°€ 있었다. 그러나 나로는 ë” ì–´ì°Œí• ìˆ˜ê°€ 없었다.
+나는 외투를 벗어서 ì •ìž„ì—게 입혀 ì£¼ê³ ë…¸íŒŒëŠ” ì •ìž„ì„ ì•ˆì•„ì„œ ëª¸ì´ ëœ í”들리ë„ë¡ ë˜ ì¶¥ì§€ 않ë„ë¡ í•˜ì˜€ë‹¤.
+나는 ì •ìž„ì˜ ëª¨ì–‘ì„ ì• ì²˜ë¡œì›Œì„œ 차마 ë³¼ 수가 없었다. 그러나 ì´ê²ƒì€ 하나님밖ì—는 ì–´ì°Œí• ë„리가 없는 ì¼ì´ì—ˆë‹¤.
+얼마를 지나서 ì •ìž„ì€ ê°‘ìžê¸° ê³ ê°œë¥¼ ë“¤ê³ ì¼ì–´ë‚˜ë©°,
+"ì¸ì œ ëª¸ì´ ì¢€ 녹았습니다. ì„ ìƒë‹˜ ì¶”ìš°ì‹œê² ì–´ìš”. ì´ ì™¸íˆ¬ 입으셔요."
+í•˜ê³ ê·¸ì˜ ìž…ë§Œ 웃는 웃ìŒì„ 웃었다.
+"난 춥지 않아. 어서 ìž…ê³ ìžˆì–´."
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì´ê°€ 외투를 벗는 ê²ƒì„ ë§‰ì•˜ë‹¤. ì •ìž„ì€ ë” ê³ ì§‘í•˜ë ¤ê³ ë„ ì•„ë‹ˆí•˜ê³ ,
+"ì„ ìƒë‹˜ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ì€ ì°¸ 좋아요. 눈 ë®ì¸ ê²ƒì´ ë” ì¢‹ì€ ê²ƒ 같아요. ì €ëŠ” ì´ ì¸ì ì—†ê³ ìžìœ 로운 삼림 ì†ìœ¼ë¡œ 헤매어 ë³´ê³ ì‹¶ì–´ìš”."
+í•˜ê³ ì•„ê¹Œ í•˜ë˜ ê²ƒê³¼ ê°™ì€ ë§ì„ ë˜ í•˜ì˜€ë‹¤.
+"ë©°ì¹ ìž˜ ì •ì–‘í•˜ì—¬ì„œ, ë‚ ì´ë‚˜ ë”°ëœ»í•˜ê±°ë“ í•œ 번 산보나 í•´ ë³´ì§€."
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì˜ ë§ ëœ»ì´ ë‹¤ë¥¸ ë° ìžˆëŠ” ì¤„ì„ ì•Œë©´ì„œë„ ë¶€ëŸ¬ í‰ë²”하게 대답하였다.
+ì •ìž„ì€ ëŒ€ë‹µì´ ì—†ì—ˆë‹¤.
+"ì—¬ê¸°ì„œë„ ì•„ì§ ë©€ì–´ìš”?"
+í•˜ê³ ì •ìž„ì€ ëª¸ì´ í”들리는 ê²ƒì„ ì‹¬ížˆ 괴로워하는 모양으로 ë‘ ì†ì„ ìžë¦¬ì— ì§šì–´ ëª¸ì„ ë²„í‹°ë©´ì„œ ë§í•˜ì˜€ë‹¤.
+"ê³ ëŒ€ì•¼, 최 ì„ ìƒì´ ë°˜ê°€ì›Œí• í„°ì´ì§€. 오죽ì´ë‚˜ ë°˜ê°‘ê² ë‚˜."
+í•˜ê³ ë‚˜ëŠ” ì •ìž„ì„ ìœ„ë¡œí•˜ëŠ” 뜻으로 ë§í•˜ì˜€ë‹¤.
+"ì•„ì´ ì°¸ 미안해요. ì œê°€ 죄ì¸ì´ì•¼ìš”. ì € ë•Œë¬¸ì— ì• ë§¤í•œ ëˆ„ëª…ì„ ì“°ì‹œê³ ì €ë ‡ê²Œ ì‚¬ì—…ë„ ë²„ë¦¬ì‹œê³ ë³‘í™˜ê¹Œì§€ 나시니 ì €ëŠ” 어떡허면 ì´ ì£„ë¥¼ 씻습니까?"
+í•˜ê³ ëˆˆë¬¼ ê³ ì¸ ëˆˆìœ¼ë¡œ ì •ìž„ì€ ë‚˜ë¥¼ ì³ë‹¤ë³´ì•˜ë‹¤.
+나는 ì •ìž„ê³¼ 최ì„ì„ ì´ ìžìœ 로운 ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ ì†ì— ë‹¨ë‘˜ì´ ì‚´ê²Œ í•˜ê³ ì‹¶ì—ˆë‹¤. 그러나 최ì„ì€ ì‚´ì•„ë‚˜ê°€ê² ì§€ë§ˆëŠ” ì •ìž„ì´ê°€ ì‚´ì•„ë‚ ìˆ˜ê°€ 있ì„까, í•˜ê³ ë‚˜ëŠ” ì •ìž„ì˜ ì–´ê¹¨ë¥¼ ë°”ë¼ë³´ì•˜ë‹¤. ê·¸ì˜ ëª©ìˆ¨ì€ ì‹¤ë‚± ê°™ì€ ê²ƒ 같았다. 바람받ì´ì— ë†“ì¸ ë“±ìž”ë¶ˆê³¼ë§Œ ê°™ì€ ê²ƒ 같았다. ì´ ëª©ìˆ¨ì´ ëŠì–´ì§€ê¸° ì „ì— ì‚¬ëž‘í•˜ëŠ” ì´ì˜ ì–¼êµ´ì„ í•œ 번 ëŒ€í•˜ê² ë‹¤ëŠ” ê²ƒë°–ì— ì•„ë¬´ 소ì›ì´ 없는 ì •ìž„ì€ ì°¸ìœ¼ë¡œ 가엾어서 ê°€ìŠ´ì´ ë¯¸ì–´ì§€ëŠ” 것 같았다.
+"ì—¼ë ¤ ë§ì–´. 무슨 ê±±ì •ì´ì•¼? 최 ì„ ìƒë„ ë³‘ì´ ëŒë¦¬ê³ ì •ìž„ë„ ì¸ì œ 얼마 ì •ì–‘í•˜ë©´ ë‚˜ì„ ê²ƒ 아닌가. 아무 ì—¼ë ¤ ë§ì•„ìš”."
+í•˜ê³ ë‚˜ëŠ” ë”ìš± 최ì„ê³¼ ì •ìž„ê³¼ ë‘ ì‚¬ëžŒì˜ ì‚¬ëž‘ì„ ë‹¬í•˜ê²Œ í• ê²°ì‹¬ì„ í•˜ì˜€ë‹¤. 하나님께서 계시다면 ì´ ê°€ì—¾ì€ ê°„ì ˆí•œ ë‘ ì‚¬ëžŒì˜ ë§ˆìŒì„ 가슴 미어지게 아니 ìƒê°í• 리가 ì—†ë‹¤ê³ ìƒê°í•˜ì˜€ë‹¤. ìš°ì£¼ì˜ ëª¨ë“ ì¼ ì¤‘ì— ì •ìž„ì˜ ì •ê²½ë³´ë‹¤ ë” ìŠ¬í”„ê³ ë¶ˆìŒí•œ ì •ê²½ì´ ë˜ ìžˆì„까 하였다. 차디찬 눈으로 ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ê´‘ì•¼ì— ë³‘ë“ ì •ìž„ì˜ ì‚¬ëž‘ìœ¼ë¡œ 타는 불똥과 ê°™ì´ ë‚ ì•„ê°€ëŠ” ì´ ì •ê²½ì€ ì¸ìƒì´ 가질 수 있는 최대한 ë¹„ê·¹ì¸ ê²ƒ 같았다.
+ì •ìž„ì€ ì§€ì³ì„œ ê³ ê°œë¥¼ 숙ì´ê³ ìžˆë‹¤ê°€ë„ ê°€ë” ê³ ê°œë¥¼ 들어서는 기운 나는 ì–‘ì„ ë³´ì´ë ¤ê³ , ìœ ì¾Œí•œ ì–‘ì„ ë³´ì´ë ¤ê³ ì• ë¥¼ ì¼ë‹¤.
+"ì € 나무 보셔요. 오백 ë…„ì€ ì‚´ì•˜ê² ì§€ìš”?"
+ì´ëŸ° ë§ë„ 하였다. 그러나 ê·¸ê²ƒì€ ë‹¤ 억지로 지어서 하는 것ì´ì—ˆë‹¤. 그러다가는 ë˜ ê¸°ìš´ì´ ì§€ì³ì„œëŠ” ê³ ê°œë¥¼ 숙ì´ê³ , í˜¹ì€ ë…¸íŒŒì˜ ì–´ê¹¨ì— í˜¹ì€ ë‚´ ì–´ê¹¨ì— ì“°ëŸ¬ì¡Œë‹¤.
+마침내 우리가 í–¥í•˜ê³ ê°€ëŠ” ì›€ì§‘ì´ ë³´ì˜€ë‹¤.
+"ì •ìž„ì´, ì €ê¸°ì•¼."
+í•˜ê³ ë‚˜ëŠ” ì›€ì§‘ì„ ê°€ë¦¬ì¼°ë‹¤.
+"네�"
+í•˜ê³ ì •ìž„ì€ ë‚´ ì†ê°€ë½ 가는 ê³³ì„ ë³´ê³ ë‹¤ìŒì—는 ë‚´ ì–¼êµ´ì„ ë³´ì•˜ë‹¤. 잘 ë³´ì´ì§€ 않는 모양ì´ë‹¤.
+"ì €ê¸° ì €ê²ƒ ë§ì•¼. ì €ê¸° ì € ê³ ìž‘ í° ì „ë‚˜ë¬´ ë‘ ê°œê°€ 있지 않아? ê·¸ 사ì´ë¡œ ë³´ì´ëŠ” ì €, ì €ê±° ë§ì•¼. 옳지 옳지, ìˆœìž„ì´ ì§€ê¸ˆ 나오지 않아?"
+하였다.
+순임ì´ê°€ ë¬´ì—‡ì„ ê°€ì§€ëŸ¬ 나오는지 ë¬¸ì„ ì—´ê³ ë‚˜ì™€ì„œëŠ” ë°¥ ì§“ëŠë¼ê³ 지어 ë†“ì€ ì´ë¥¼í…Œë©´ 부엌ì—를 들어갔다가 나오는 ê¸¸ì— ì´ ìª½ì„ ë°”ë¼ë³´ë‹¤ê°€ 우리를 발견하였는지 몇 ê±¸ìŒ ë¹¨ë¦¬ 오다가는 서서 ë³´ê³ ì˜¤ë‹¤ê°€ëŠ” 서서 ë³´ë”니 ë‚´ê°€ 모ìžë¥¼ ë‚´ë‘르는 ê²ƒì„ ë³´ê³ ì•¼ 우리 ì¼í–‰ì¸ ê²ƒì„ í™•ì‹¤ížˆ ì•Œê³ ë‹¬ìŒë°•ì§ˆì„ ì³ì„œ 나온다.
+우리 ì°ë§¤ë¥¼ 만나ìž,
+"ì •ìž„ì´ì•¼? 어쩌면 ì´ ì¶”ìš´ë°."
+í•˜ê³ ìˆœìž„ì€ ì •ìž„ì„ ì•ˆê³ ê·¸ 안경으로 ì •ìž„ì˜ ëˆˆì„ ë“¤ì—¬ë‹¤ë³¸ë‹¤.
+"어쩌면 앓으면서 ì´ë ‡ê²Œ 와?"
+í•˜ê³ ìˆœìž„ì€ ë…¸íŒŒì™€ 나를 ì±…ë§í•˜ëŠ” ë“¯ì´ ëŒì•„보았다.
+"아버지 ì–´ë– ì‹œëƒ?"
+í•˜ê³ ë‚˜ëŠ” ì§ì„ ë“¤ê³ ì•žì„œì„œ 오면서 뒤따르는 순임ì—게 물었다.
+"아버지요?"
+í•˜ê³ ìˆœìž„ì€ ì–´ë¥¸ì—게 대한 ê²½ì˜ë¥¼ 표하노ë¼ê³ ë‚´ ê³ì— 와서 걸으며,
+"아버지께서 ì˜¤ëŠ˜ì€ ë§ì”€ì„ ë§Žì´ í•˜ì…¨ì–´ìš”. 순임ì´ê°€ ê³ ìƒí•˜ëŠ”êµ¬ë‚˜ ê³ ë§™ë‹¤, ì´ëŸ° ë§ì”€ë„ í•˜ì‹œê³ , 지금 같아서는 ì¼ì–´ë‚ ê²ƒë„ ê°™ì€ë° ê¸°ìš´ì´ ì—†ì–´ì„œ, ì´ëŸ° ë§ì”€ë„ í•˜ì‹œê³ , ë˜ ì„ ìƒë‹˜ì´ ì´ë¥´ì¿ ì¸ í¬ì—를 들어가셨으니 ë¬´ì—‡ì„ ì‚¬ 오실 듯싶으ëƒ, 알아맞혀 ë³´ì•„ë¼, ì´ëŸ° ë†ë‹´ë„ í•˜ì‹œê³ , ì •ìž„ì´ê°€ 어떤가 한 번 보았으면, ì´ëŸ° ë§ì”€ë„ í•˜ì‹œê² ì§€ìš”. ë˜ ìˆœìž„ì•„, ë‚´ê°€ 죽ë”ë¼ë„ ì •ìž„ì„ ë„¤ 친ë™ìƒìœ¼ë¡œ 알아서 부디 잘 사랑해 주어ë¼, ì •ìž„ì€ ë¶ˆìŒí•œ ì• ë‹¤, ì°¸ ì •ìž„ì€ ë¶ˆìŒí•´! ì´ëŸ° ë§ì”€ë„ í•˜ì‹œê² ì§€ìš”. ê·¸ë ‡ê²Œ 여러 가지 ë§ì”€ì„ ë§Žì´ í•˜ì‹œë”니, 순임아 ë‚´ê°€ ì£½ê±°ë“ ì„ ìƒë‹˜ì„ 아버지로 ì•Œê³ ê·¸ ì§€ë„를 받아ë¼, 그러시길래 ì œê°€ 아버지 안 ëŒì•„가셔요! 그랬ë”니 아버지께서 웃으시면서, 죽지 ë§ê¹Œ, í•˜ì‹œê³ ëŠ” 어째 ê°€ìŠ´ì´ ì¢€ ê±°ë¶í•œê°€, 하시ë”니 ìž ì´ ë“œì…¨ì–´ìš”. 한 시간ì´ë‚˜ ë˜ì—ˆì„까, 온."
+ì§‘ ì•žì— ê±°ì˜ ë‹¤ 가서는 ìˆœìž„ì€ ì •ìž„ì˜ íŒ”ì„ ê¼ˆë˜ ê²ƒì„ ë†“ê³ ë¹¨ë¦¬ 집으로 뛰어들어갔다.
+치마íì„ íŽ„ëŸê±°ë¦¬ê³ 뛰는 ì–‘ì—는 ì–´ë ¸ì„ ì ë§ê´„ëŸ‰ì´ ìˆœìž„ì˜ ëª¨ìŠµì´ ë‚¨ì•„ 있어서 나는 í˜¼ìž ì›ƒì—ˆë‹¤. ìˆœìž„ì€ ì •ìž„ì´ê°€ 왔다는 ê¸°ìœ ì†Œì‹ì„ 한 시ê°ì´ë¼ë„ 빨리 아버지께 ì „í•˜ê³ ì‹¶ì—ˆë˜ ê²ƒì´ë‹¤.
+"아버지, 주무시우? ì •ìž„ì´ê°€ 왔어요. ì •ìž„ì´ê°€ 왔습니다."
+í•˜ê³ ë¶€ë¥´ëŠ” 소리가 ë°–ì—ì„œë„ ë“¤ë ¸ë‹¤.
+ë‚˜ë„ ë°©ì— ë“¤ì–´ì„œê³ , ì •ìž„ë„ ë’¤ë”°ë¼ ë“¤ì–´ì„œê³ , 노파는 부엌으로 ë¬¼ê±´ì„ ë‘러 들어갔다.
+ë°©ì€ ì ˆë²½ê°™ì´ ì–´ë‘ì› ë‹¤.
+"순임아, ë¶ˆì„ ì¢€ ì¼œë ¤ë¬´ë‚˜."
+í•˜ê³ ìµœì„ì˜ ì–¼êµ´ì„ ì°¾ëŠë¼ê³ ëˆˆì„ í¬ê²Œ ëœ¨ê³ ê³ ê°œë¥¼ 숙ì´ë©°,
+"ìžë‚˜? ì •ìž„ì´ê°€ 왔네."
+í•˜ê³ ë¶ˆë €ë‹¤.
+ì •ìž„ë„ ê³ì— 와서 ì„ ë‹¤.
+최ì„ì€ ëŒ€ë‹µì´ ì—†ì—ˆë‹¤.
+순임ì´ê°€ ì´›ë¶ˆì„ ì¼œìž ìµœì„ì˜ ì–¼êµ´ì´ í™˜í•˜ê²Œ 보였다.
+"여보게, ì—¬ë´. ìžë‚˜?"
+í•˜ê³ ë‚˜ëŠ” 무서운 예ê°ì„ 가지면서 최ì„ì˜ ì–´ê¹¨ë¥¼ í”들었다.
+ê·¸ê²ƒì´ ë¬´ì—‡ì¸ì§€ 모르지마는 최ì„ì€ ì‹œì²´ë¼ í•˜ëŠ” ê²ƒì„ ë‚˜ëŠ” ë‚´ ì†ì„ 통해서 깨달았다.
+나는 ê¹œì§ ë†€ë¼ì„œ ì´ë¶ˆì„ ë²—ê¸°ê³ ìµœì„ì˜ íŒ”ì„ ìž¡ì•„ ë§¥ì„ ì§šì–´ 보았다. 거기는 ë§¥ì´ ì—†ì—ˆë‹¤.
+나는 최ì„ì˜ ìžë¦¬ì˜· ê°€ìŠ´ì„ í—¤ì¹˜ê³ ê·€ë¥¼ ê°€ìŠ´ì— ëŒ€ì—ˆë‹¤. ê·¸ ì‚´ì€ ì–¼ìŒê³¼ ê°™ì´ ì°¨ê³ ê·¸ ê°€ìŠ´ì€ ê³ ìš”í•˜ì˜€ë‹¤. ì‹¬ìž¥ì€ ë›°ê¸°ë¥¼ 그친 것ì´ì—ˆë‹¤.
+나는 최ì„ì˜ ê°€ìŠ´ì—서 귀를 ë–¼ê³ ì¼ì–´ì„œë©´ì„œ,
+"네 아버지는 ëŒì•„가셨다. 네 ì†ìœ¼ë¡œ 눈ì´ë‚˜ ê°ê²¨ ë“œë ¤ë¼."
+하였다. ë‚´ 눈ì—서는 ëˆˆë¬¼ì´ í˜ë €ë‹¤.
+"ì„ ìƒë‹˜!"
+í•˜ê³ ì •ìž„ì€ ì „ì—°ížˆ ì ˆì œí• íž˜ì„ ìžƒì–´ë²„ë¦° ë“¯ì´ ìµœì„ì˜ ê°€ìŠ´ì— ì—Žì–´ì¡Œë‹¤. ê·¸ëŸ¬ê³ ëŠ” 소리를 ë‚´ì–´ 울었다. 순임ì€,
+"아버지, 아버지!"
+í•˜ê³ ìµœì„ì˜ ë² ê°œ ê³ì— ì´ë§ˆë¥¼ ëŒ€ê³ ìš¸ì—ˆë‹¤.
+ì•„ë¼ì‚¬ ë…¸íŒŒë„ ìš¸ì—ˆë‹¤.
+ë°© 안ì—는 ì˜¤ì§ ìš¸ìŒ ì†Œë¦¬ë¿ì´ìš”, ë§ì´ 없었다. 최ì„ì€ ë²Œì¨ ì´ ìŠ¬í”ˆ ê´‘ê²½ë„ ëª°ë¼ë³´ëŠ” 사람ì´ì—ˆë‹¤.
+최ì„ì´ê°€ ìžê¸°ì˜ ì‹¸ì›€ì„ ì´ê¸°ê³ 죽었는지, ë˜ëŠ” ë까지 지다가 죽었는지 ê·¸ê²ƒì€ ì˜ì›í•œ 비밀ì´ì–´ì„œ 알 ë„리가 없었다. 그러나 ì´ê²ƒë§Œì€ 확실하다 ê·¸ì˜ ì˜ì‹ì´ 마지막으로 ë나는 ìˆœê°„ì— ê·¸ì˜ ì˜ì‹ê¸°ì— ë– ì˜¤ë¥´ë˜ ì˜¤ì§ í•˜ë‚˜ê°€ ì •ìž„ì´ì—ˆìœ¼ë¦¬ë¼ëŠ” 것만ì€.
+지금 ì •ìž„ì´ê°€ ê·¸ì˜ ê°€ìŠ´ì— ì—Žì–´ì ¸ 울지마는, ì •ìž„ì˜ ëœ¨ê±°ìš´ ëˆˆë¬¼ì´ ê·¸ì˜ ê°€ìŠ´ì„ ì 시건마는 최ì„ì˜ ê°€ìŠ´ì€ ë›¸ ì¤„ì„ ëª¨ë¥¸ë‹¤. ì´ê²ƒì´ 죽ìŒì´ëž€ 것ì´ë‹¤.
+ë’¤ì— ê²½ì°°ì˜ê°€ 와서 검사한 ê²°ê³¼ì— ì˜í•˜ë©´, 최ì„ì€ íë ´ìœ¼ë¡œ ì•“ë˜ ê²°ê³¼ë¡œ 심장마비를 ì¼ìœ¼í‚¨ 것ì´ë¼ê³ 하였다.
+나는 최ì„ì˜ ìž¥ë¡€ë¥¼ ëë‚´ê³ ìˆœìž„ê³¼ ì •ìž„ì„ ë°ë¦¬ê³ ì˜¤ë ¤ 하였으나 ì •ìž„ì€ ë“£ì§€ ì•„ë‹ˆí•˜ê³ ë…¸íŒŒì™€ ê°™ì´ ë°”ì´ì¹¼ 촌으로 ê°€ ë²„ë ¸ë‹¤.
+그런 뒤로는 ì •ìž„ì—게서는 ì¼ì²´ ìŒì‹ ì´ ì—†ë‹¤. 때때로 노파ì—게서 편지가 ì˜¤ëŠ”ë° ì •ìž„ì€ ìµœì„ì´ê°€ ìžˆë˜ ë°©ì— ê°€ë§Œížˆ ìžˆë‹¤ê³ ë§Œ 하였다.
+서투른 ì˜ì–´ê°€ ëœ»ì„ ì¶©ë¶„ížˆ 발표하지 못하는 것ì´ì—ˆë‹¤.
+나는 ì •ìž„ì—게 ì•ˆì‹¬í•˜ê³ ë³‘ì„ ì¹˜ë£Œí•˜ë¼ëŠ” íŽ¸ì§€ë„ í•˜ê³ ëˆì´ í•„ìš”í•˜ê±°ë“ ì²êµ¬í•˜ë¼ëŠ” íŽ¸ì§€ë„ í•˜ë‚˜ ì˜ ë‹µìž¥ì´ ì—†ë‹¤.
+ë§Œì¼ ì •ìž„ì´ê°€ 죽었다는 ê¸°ë³„ì´ ì˜¤ë©´ 나는 한 번 ë” ì‹œë² ë¦¬ì•„ì— ê°€ì„œ ë‘˜ì„ ê°€ì§€ëŸ°ížˆ ë¬»ê³ `ë‘ ë³„ 무ë¤'ì´ë¼ëŠ” 비를 세워 줄 ìƒê°ì´ë‹¤. 그러나 나는 ì •ìž„ì´ê°€ ì¡°ì„ ìœ¼ë¡œ 오기를 바란다.
+ì—¬ëŸ¬ë¶„ì€ ìµœì„ê³¼ ì •ìž„ì—게 대한 ì´ ê¸°ë¡ì„ ë¯¿ê³ ê·¸ ë‘ ì‚¬ëžŒì—게 대한 오해를 í’€ë¼.
+EOT;
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php
new file mode 100644
index 00000000..5f446408
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php
@@ -0,0 +1,131 @@
+generator->parse($format);
+ }
+
+ public static function country()
+ {
+ return static::randomElement(static::$country);
+ }
+
+ public static function postcode()
+ {
+ return static::toUpper(static::bothify(static::randomElement(static::$postcode)));
+ }
+
+ public static function regionSuffix()
+ {
+ return static::randomElement(static::$regionSuffix);
+ }
+
+ public static function region()
+ {
+ return static::randomElement(static::$region);
+ }
+
+ public static function citySuffix()
+ {
+ return static::randomElement(static::$citySuffix);
+ }
+
+ public function city()
+ {
+ return static::randomElement(static::$city);
+ }
+
+ public static function streetSuffix()
+ {
+ return static::randomElement(static::$streetSuffix);
+ }
+
+ public static function street()
+ {
+ return static::randomElement(static::$street);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php
new file mode 100644
index 00000000..4a110c2c
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php
@@ -0,0 +1,15 @@
+generator->parse(static::randomElement(static::$lastNameFormat));
+ }
+
+ /**
+ * Return male last name
+ * @return string
+ * @example 'Vasiliauskas'
+ */
+ public function lastNameMale()
+ {
+ return static::randomElement(static::$lastNameMale);
+ }
+
+ /**
+ * Return female last name
+ * @return string
+ * @example 'Žukauskaitė'
+ */
+ public function lastNameFemale()
+ {
+ return static::randomElement(static::$lastNameFemale);
+ }
+
+ /**
+ * Return driver license number
+ * @return string
+ * @example 12345678
+ */
+ public function driverLicence()
+ {
+ return $this->bothify("########");
+ }
+
+ /**
+ * Return passport number
+ * @return string
+ * @example 12345678
+ */
+ public function passportNumber()
+ {
+ return $this->bothify("########");
+ }
+
+ /**
+ * National Personal Identity number (asmens kodas)
+ * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania
+ * @link https://lt.wikipedia.org/wiki/Asmens_kodas
+ * @param string [male|female]
+ * @param \DateTime $birthdate
+ * @param string $randomNumber three integers
+ * @return string on format XXXXXXXXXXX
+ */
+ public function personalIdentityNumber($gender = 'male', \DateTime $birthdate = null, $randomNumber = '')
+ {
+ if (!$birthdate) {
+ $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
+ }
+
+ $genderNumber = ($gender == 'male') ? 1 : 0;
+ $firstNumber = (int) floor($birthdate->format('Y') / 100) * 2 - 34 - $genderNumber;
+
+ $datePart = $birthdate->format('ymd');
+ $randomDigits = (string) ( ! $randomNumber || strlen($randomNumber) < 3) ? static::numerify('###') : substr($randomNumber, 0, 3);
+ $partOfPerosnalCode = $firstNumber . $datePart . $randomDigits;
+
+ $sum = self::calculateSum($partOfPerosnalCode, 1);
+ $liekana = $sum % 11;
+
+ if ($liekana !== 10) {
+ $lastNumber = $liekana;
+ return $firstNumber . $datePart . $randomDigits . $lastNumber;
+ }
+
+ $sum = self::calculateSum($partOfPerosnalCode, 2);
+ $liekana = $sum % 11;
+
+ $lastNumber = ($liekana !== 10) ? $liekana : 0;
+ return $firstNumber . $datePart . $randomDigits . $lastNumber;
+ }
+
+ /**
+ * Calculate the sum of personal code
+ * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania
+ * @link https://lt.wikipedia.org/wiki/Asmens_kodas
+ * @param string $numbers
+ * @param int $time [1|2]
+ * @return int
+ */
+ private static function calculateSum($numbers, $time = 1)
+ {
+ if ($time == 1) {
+ $multipliers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 1 );
+ } else {
+ $multipliers = array(3, 4, 5, 6, 7, 8, 9, 1, 2, 3 );
+ }
+
+ $sum = 0;
+ for ($i=1; $i <= 10; $i++) {
+ $sum += $numbers[$i-1] * $multipliers[$i-1];
+ }
+
+ return (int) $sum;
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php
new file mode 100644
index 00000000..752eb78b
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php
@@ -0,0 +1,17 @@
+bothify("??######");
+ return static::bothify('??######');
}
public function passportNumber()
{
- return $this->bothify("??#######");
+ return static::bothify('??#######');
}
/**
@@ -70,7 +115,7 @@ class Person extends \Faker\Provider\Person
public function personalIdentityNumber(\DateTime $birthdate = null)
{
if (!$birthdate) {
- $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
+ $birthdate = DateTime::dateTimeThisCentury();
}
$datePart = $birthdate->format('dmy');
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php
index f6b61486..29c19f63 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php
@@ -4,10 +4,12 @@ namespace Faker\Provider\lv_LV;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
+ /**
+ * {@link} https://en.wikipedia.org/wiki/Telephone_numbers_in_Latvia
+ **/
protected static $formats = array(
- '##-###-###',
- '##-######',
'########',
- '+371 #######',
+ '## ### ###',
+ '+371 ########',
);
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php
index 5b9caf14..422207ea 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php
@@ -109,19 +109,11 @@ class Address extends \Faker\Provider\Address
return static::randomElement(static::$cityNames);
}
- /**
- * @example '77.147489'
- */
- public static function latitude()
+ public static function localCoordinates()
{
- return number_format(mt_rand(42430000, 42450000)/1000000, 6);
- }
-
- /**
- * @example '86.211205'
- */
- public static function longitude()
- {
- return number_format(mt_rand(19260000, 19270000)/1000000, 6);
+ return array(
+ 'latitude' => static::latitude(42.43, 42.45),
+ 'longitude' => static::longitude(19.16, 19.27)
+ );
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php
new file mode 100644
index 00000000..3042b5bb
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php
@@ -0,0 +1,100 @@
+generator->parse(static::$idNumberFormat));
+ }
+
+ /**
+ * @return string
+ * @example 'Ф'
+ */
+ public function alphabet()
+ {
+ return static::randomElement(static::$alphabet);
+ }
+
+ /**
+ * @return string
+ * @example 'Ð'
+ */
+ public function namePrefix()
+ {
+ return static::randomElement(static::$namePrefix);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php
new file mode 100644
index 00000000..dd0bb4ab
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php
@@ -0,0 +1,13 @@
+ Townships
+ * @link https://en.wikipedia.org/wiki/Template:Johor > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Kedah > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Kelantan > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Melaka > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Perak > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Penang > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Selangor > Townships
+ * @link https://en.wikipedia.org/wiki/Template:Terengganu > Townships
+ */
+ protected static $townshipPrefix = array(
+ 'Alam','Apartment','Ara',
+ 'Bandar','Bandar','Bandar','Bandar','Bandar','Bandar',
+ 'Bandar Bukit','Bandar Seri','Bandar Sri','Bandar Baru','Batu','Bukit',
+ 'Desa','Damansara',
+ 'Kampung','Kampung Baru','Kampung Baru','Kondominium','Kota',
+ 'Laman','Lembah',
+ 'Medan',
+ 'Pandan','Pangsapuri','Petaling','Puncak',
+ 'Seri','Sri',
+ 'Taman','Taman','Taman','Taman','Taman','Taman',
+ 'Taman Desa',
+ );
+ protected static $townshipSuffix = array(
+ 'Aman','Amanjaya','Anggerik','Angkasa','Antarabangsa','Awan',
+ 'Bahagia','Bangsar','Baru','Belakong','Bendahara','Bestari','Bintang','Brickfields',
+ 'Casa','Changkat','Country Heights',
+ 'Damansara','Damai','Dato Harun','Delima','Duta',
+ 'Flora',
+ 'Gembira','Genting',
+ 'Harmoni','Hartamas',
+ 'Impian','Indah','Intan',
+ 'Jasa','Jaya',
+ 'Keramat','Kerinchi','Kiara','Kinrara','Kuchai',
+ 'Laksamana',
+ 'Mahkota','Maluri','Manggis','Maxwell','Medan','Melawati','Menjalara','Meru','Mulia','Mutiara',
+ 'Pahlawan','Perdana','Pertama','Permai','Pelangi','Petaling','Pinang','Puchong','Puteri','Putra',
+ 'Rahman','Rahmat','Raya','Razak','Ria',
+ 'Saujana','Segambut','Selamat','Selatan','Semarak','Sentosa','Seputeh','Setapak','Setia Jaya','Sinar','Sungai Besi','Sungai Buaya','Sungai Long','Suria',
+ 'Tasik Puteri','Tengah','Timur','Tinggi','Tropika','Tun Hussein Onn','Tun Perak','Tunku',
+ 'Ulu','Utama','Utara',
+ 'Wangi',
+ );
+
+ /**
+ * @link https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur
+ * @link https://en.wikipedia.org/wiki/Template:Johor
+ * @link https://en.wikipedia.org/wiki/Template:Kedah
+ * @link https://en.wikipedia.org/wiki/Template:Kelantan
+ * @link https://en.wikipedia.org/wiki/Template:Labuan
+ * @link https://en.wikipedia.org/wiki/Template:Melaka
+ * @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan
+ * @link https://en.wikipedia.org/wiki/Template:Pahang
+ * @link https://en.wikipedia.org/wiki/Template:Perak
+ * @link https://en.wikipedia.org/wiki/Template:Perlis
+ * @link https://en.wikipedia.org/wiki/Template:Penang
+ * @link https://en.wikipedia.org/wiki/Template:Sabah
+ * @link https://en.wikipedia.org/wiki/Template:Sarawak
+ * @link https://en.wikipedia.org/wiki/Template:Selangor
+ * @link https://en.wikipedia.org/wiki/Template:Terengganu
+ */
+ protected static $towns = array(
+ 'johor' => array(
+ 'Ayer Hitam',
+ 'Batu Pahat','Bukit Gambir','Bukit Kepong','Bukit Naning',
+ 'Desaru',
+ 'Endau',
+ 'Gelang Patah','Gemas Baharu',
+ 'Iskandar Puteri',
+ 'Jementah','Johor Lama','Johor Bahru',
+ 'Kempas','Kluang','Kota Iskandar','Kota Tinggi','Kukup','Kulai',
+ 'Labis ','Larkin','Layang-Layang',
+ 'Mersing','Muar',
+ 'Pagoh','Paloh','Parit Jawa','Pasir Gudang','Pekan Nanas','Permas Jaya','Pontian Kechil',
+ 'Renggam',
+ 'Segamat','Senai','Simpang Renggam','Skudai','Sri Gading',
+ 'Tangkak','Tebrau',
+ 'Ulu Tiram',
+ 'Yong Peng',
+ ),
+ 'kedah' => array(
+ 'Alor Setar',
+ 'Baling','Bukit Kayu Hitam',
+ 'Changlun',
+ 'Durian Burung',
+ 'Gurun',
+ 'Jitra',
+ 'Kepala Batas','Kuah','Kuala Kedah','Kuala Ketil','Kulim',
+ 'Langgar','Lunas',
+ 'Merbok',
+ 'Padang Serai','Pendang',
+ 'Serdang','Sintok','Sungai Petani',
+ 'Tawar, Baling',
+ 'Yan',
+ ),
+ 'kelantan' => array(
+ 'Bachok','Bunut Payong',
+ 'Dabong',
+ 'Gua Musang',
+ 'Jeli',
+ 'Ketereh','Kota Bharu','Kuala Krai',
+ 'Lojing',
+ 'Machang',
+ 'Pasir Mas','Pasir Puteh',
+ 'Rantau Panjang',
+ 'Salor',
+ 'Tok Bali',
+ 'Wakaf Bharu','Wakaf Che Yeh',
+ ),
+ 'kl' => array(
+ 'Ampang',
+ 'Bandar Tasik Selatan','Bandar Tun Razak','Bangsar','Batu','Brickfields','Bukit Bintang','Bukit Jalil','Bukit Tunku',
+ 'Cheras','Chow Kit',
+ 'Damansara Town Centre','Dang Wangi','Desa Petaling','Desa Tun Hussein Onn',
+ 'Jinjang',
+ 'Kampung Baru','Kampung Kasipillay','Kampung Pandan','Kampung Sungai Penchala','Kepong','KLCC','Kuchai Lama',
+ 'Lake Gardens','Lembah Pantai',
+ 'Medan Tuanku','Mid Valley City','Mont Kiara',
+ 'Pantai Dalam','Pudu',
+ 'Salak South','Segambut','Semarak','Sentul','Setapak','Setiawangsa','Seputeh','Sri Hartamas','Sri Petaling','Sungai Besi',
+ 'Taman Desa','Taman Melawati','Taman OUG','Taman Tun Dr Ismail','Taman U-Thant','Taman Wahyu','Titiwangsa','Tun Razak Exchange',
+ 'Wangsa Maju',
+ ),
+ 'labuan' => array(
+ 'Batu Manikar',
+ 'Kiamsam',
+ 'Layang-Layang',
+ 'Rancha-Rancha'
+ ),
+ 'melaka' => array(
+ 'Alor Gajah',
+ 'Bandaraya Melaka','Batu Berendam','Bukit Beruang','Bukit Katil',
+ 'Cheng',
+ 'Durian Tunggal',
+ 'Hang Tuah Jaya',
+ 'Jasin',
+ 'Klebang',
+ 'Lubuk China',
+ 'Masjid Tanah',
+ 'Naning',
+ 'Pekan Asahan',
+ 'Ramuan China',
+ 'Simpang Ampat',
+ 'Tanjung Bidara','Telok Mas',
+ 'Umbai',
+ ),
+ 'nsembilan' => array(
+ 'Ayer Kuning','Ampangan',
+ 'Bahau','Batang Benar',
+ 'Chembong',
+ 'Dangi',
+ 'Gemas',
+ 'Juasseh',
+ 'Kuala Pilah',
+ 'Labu','Lenggeng','Linggi',
+ 'Mantin',
+ 'Nilai',
+ 'Pajam','Pedas','Pengkalan Kempas','Port Dickson',
+ 'Rantau','Rompin',
+ 'Senawang','Seremban','Sungai Gadut',
+ 'Tampin','Tiroi',
+ ),
+ 'pahang' => array(
+ 'Bandar Tun Razak','Bentong','Brinchang','Bukit Fraser','Bukit Tinggi',
+ 'Chendor',
+ 'Gambang','Genting Highlands','Genting Sempah',
+ 'Jerantut',
+ 'Karak','Kemayan','Kota Shahbandar','Kuala Lipis','Kuala Pahang','Kuala Rompin','Kuantan',
+ 'Lanchang','Lubuk Paku',
+ 'Maran','Mengkuang','Mentakab',
+ 'Nenasi',
+ 'Panching',
+ 'Pekan','Penor',
+ 'Raub',
+ 'Sebertak','Sungai Lembing',
+ 'Tanah Rata','Tanjung Sepat','Tasik Chini','Temerloh','Teriang','Tringkap',
+ ),
+ 'penang' => array(
+ 'Air Itam',
+ 'Balik Pulau','Batu Ferringhi','Batu Kawan','Bayan Lepas','Bukit Mertajam','Butterworth',
+ 'Gelugor','George Town',
+ 'Jelutong',
+ 'Kepala Batas',
+ 'Nibong Tebal',
+ 'Permatang Pauh','Pulau Tikus',
+ 'Simpang Ampat',
+ 'Tanjung Bungah','Tanjung Tokong',
+ ),
+ 'perak' => array(
+ 'Ayer Tawar',
+ 'Bagan Serai','Batu Gajah','Behrang','Bidor','Bukit Gantang','Bukit Merah',
+ 'Changkat Jering','Chemor','Chenderiang',
+ 'Damar Laut',
+ 'Gerik','Gopeng','Gua Tempurung',
+ 'Hutan Melintang',
+ 'Ipoh',
+ 'Jelapang',
+ 'Kamunting','Kampar','Kuala Kangsar',
+ 'Lekir','Lenggong','Lumut',
+ 'Malim Nawar','Manong','Menglembu',
+ 'Pantai Remis','Parit','Parit Buntar','Pasir Salak','Proton City',
+ 'Simpang Pulai','Sitiawan','Slim River','Sungai Siput','Sungkai',
+ 'Taiping','Tambun','Tanjung Malim','Tanjung Rambutan','Tapah','Teluk Intan',
+ 'Ulu Bernam',
+ ),
+ 'perlis' => array(
+ 'Arau',
+ 'Beseri',
+ 'Chuping',
+ 'Kaki Bukit','Kangar','Kuala Perlis',
+ 'Mata Ayer',
+ 'Padang Besar',
+ 'Sanglang','Simpang Empat',
+ 'Wang Kelian',
+ ),
+ 'putrajaya' => array(
+ 'Precinct 1','Precinct 4','Precinct 5',
+ 'Precinct 6','Precinct 8','Precinct 10',
+ 'Precinct 11','Precinct 12','Precinct 13',
+ 'Precinct 16','Precinct 18','Precinct 19',
+ ),
+ 'sabah' => array(
+ 'Beaufort','Bingkor',
+ 'Donggongon',
+ 'Inanam',
+ 'Kinabatangan','Kota Belud','Kota Kinabalu','Kuala Penyu','Kimanis','Kundasang',
+ 'Lahad Datu','Likas','Lok Kawi',
+ 'Manggatal',
+ 'Nabawan',
+ 'Papar','Pitas',
+ 'Ranau',
+ 'Sandakan','Sapulut','Semporna','Sepanggar',
+ 'Tambunan','Tanjung Aru','Tawau','Tenom','Tuaran',
+ 'Weston',
+ ),
+ 'sarawak' => array(
+ 'Asajaya',
+ 'Ba\'kelalan','Bario','Batu Kawa','Batu Niah','Betong','Bintulu',
+ 'Dalat','Daro',
+ 'Engkilili',
+ 'Julau',
+ 'Kapit','Kota Samarahan','Kuching',
+ 'Lawas','Limbang','Lubok Antu',
+ 'Marudi','Matu','Miri',
+ 'Oya',
+ 'Pakan',
+ 'Sadong Jaya','Sematan','Sibu','Siburan','Song','Sri Aman','Sungai Tujoh',
+ 'Tanjung Kidurong','Tanjung Manis','Tatau',
+ ),
+ 'selangor' => array(
+ 'Ampang','Assam Jawa',
+ 'Balakong','Bandar Baru Bangi','Bandar Baru Selayang','Bandar Sunway','Bangi','Banting','Batang Kali','Batu Caves','Bestari Jaya','Bukit Lanjan',
+ 'Cheras','Cyberjaya',
+ 'Damansara','Dengkil',
+ 'Ijok',
+ 'Jenjarom',
+ 'Kajang','Kelana Jaya','Klang','Kuala Kubu Bharu','Kuala Selangor','Kuang',
+ 'Lagong',
+ 'Morib',
+ 'Pandamaran','Paya Jaras','Petaling Jaya','Port Klang','Puchong',
+ 'Rasa','Rawang',
+ 'Salak Tinggi','Sekinchan','Selayang','Semenyih','Sepang','Serendah','Seri Kembangan','Shah Alam','Subang','Subang Jaya','Sungai Buloh',
+ 'Tanjung Karang','Tanjung Sepat',
+ 'Ulu Klang','Ulu Yam',
+ ),
+ 'terengganu' => array(
+ 'Ajil',
+ 'Bandar Ketengah Jaya','Bandar Permaisuri','Bukit Besi','Bukit Payong',
+ 'Chukai',
+ 'Jerteh',
+ 'Kampung Raja','Kerteh','Kijal','Kuala Besut','Kuala Berang','Kuala Dungun','Kuala Terengganu',
+ 'Marang','Merchang',
+ 'Pasir Raja',
+ 'Rantau Abang',
+ 'Teluk Kalung',
+ 'Wakaf Tapai',
+ )
+ );
+
+ /**
+ * @link https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia
+ */
+ protected static $states = array(
+ 'johor' => array(
+ 'Johor Darul Ta\'zim',
+ 'Johor'
+ ),
+ 'kedah' => array(
+ 'Kedah Darul Aman',
+ 'Kedah'
+ ),
+ 'kelantan' => array(
+ 'Kelantan Darul Naim',
+ 'Kelantan'
+ ),
+ 'kl' => array(
+ 'KL',
+ 'Kuala Lumpur',
+ 'WP Kuala Lumpur'
+ ),
+ 'labuan' => array(
+ 'Labuan'
+ ),
+ 'melaka' => array(
+ 'Malacca',
+ 'Melaka'
+ ),
+ 'nsembilan' => array(
+ 'Negeri Sembilan Darul Khusus',
+ 'Negeri Sembilan'
+ ),
+ 'pahang' => array(
+ 'Pahang Darul Makmur',
+ 'Pahang'
+ ),
+ 'penang' => array(
+ 'Penang',
+ 'Pulau Pinang'
+ ),
+ 'perak' => array(
+ 'Perak Darul Ridzuan',
+ 'Perak'
+ ),
+ 'perlis' => array(
+ 'Perlis Indera Kayangan',
+ 'Perlis'
+ ),
+ 'putrajaya' => array(
+ 'Putrajaya'
+ ),
+ 'sabah' => array(
+ 'Sabah'
+ ),
+ 'sarawak' => array(
+ 'Sarawak'
+ ),
+ 'selangor' => array(
+ 'Selangor Darul Ehsan',
+ 'Selangor'
+ ),
+ 'terengganu' => array(
+ 'Terengganu Darul Iman',
+ 'Terengganu'
+ )
+ );
+
+ /**
+ * @link https://ms.wikipedia.org/wiki/Senarai_negara_berdaulat
+ */
+ protected static $country = array(
+ 'Abkhazia','Afghanistan','Afrika Selatan','Republik Afrika Tengah','Akrotiri dan Dhekelia','Albania','Algeria','Amerika Syarikat','Andorra','Angola','Antigua dan Barbuda','Arab Saudi','Argentina','Armenia','Australia','Austria','Azerbaijan',
+ 'Bahamas','Bahrain','Bangladesh','Barbados','Belanda','Belarus','Belgium','Belize','Benin','Bhutan','Bolivia','Bonaire','Bosnia dan Herzegovina','Botswana','Brazil','Brunei Darussalam','Bulgaria','Burkina Faso','Burundi',
+ 'Cameroon','Chad','Chile','Republik Rakyat China','Republik China di Taiwan','Colombia','Comoros','Republik Demokratik Congo','Republik Congo','Kepulauan Cook','Costa Rica','Côte d\'Ivoire (Ivory Coast)','Croatia','Cuba','Curaçao','Cyprus','Republik Turki Cyprus Utara','Republik Czech',
+ 'Denmark','Djibouti','Dominika','Republik Dominika',
+ 'Ecuador','El Salvador','Emiriah Arab Bersatu','Eritrea','Estonia',
+ 'Kepulauan Faroe','Fiji','Filipina','Finland',
+ 'Gabon','Gambia','Georgia','Ghana','Grenada','Greece (Yunani)','Guatemala','Guinea','Guinea-Bissau','Guinea Khatulistiwa','Guiana Perancis','Guyana',
+ 'Habsyah (Etiopia)','Haiti','Honduras','Hungary',
+ 'Iceland','India','Indonesia','Iran','Iraq','Ireland','Israel','Itali',
+ 'Jamaika','Jepun','Jerman','Jordan',
+ 'Kanada','Kazakhstan','Kemboja','Kenya','Kiribati','Korea Selatan','Korea Utara','Kosovo','Kuwait','Kyrgyzstan',
+ 'Laos','Latvia','Lesotho','Liberia','Libya','Liechtenstein','Lithuania','Lubnan','Luxembourg',
+ 'Macedonia','Madagaskar','Maghribi','Malawi','Malaysia','Maldives','Mali','Malta','Kepulauan Marshall','Mauritania','Mauritius','Mesir','Mexico','Persekutuan Micronesia','Moldova','Monaco','Montenegro','Mongolia','Mozambique','Myanmar',
+ 'Namibia','Nauru','Nepal','New Zealand','Nicaragua','Niger','Nigeria','Niue','Norway',
+ 'Oman','Ossetia Selatan',
+ 'Pakistan','Palau','Palestin','Panama','Papua New Guinea','Paraguay','Perancis','Peru','Poland','Portugal',
+ 'Qatar',
+ 'Romania','Russia','Rwanda',
+ 'Sahara Barat','Saint Kitts dan Nevis','Saint Lucia','Saint Vincent dan Grenadines','Samoa','San Marino','São Tomé dan PrÃncipe','Scotland','Senegal','Sepanyol','Serbia','Seychelles','Sierra Leone','Singapura','Slovakia','Slovenia','Kepulauan Solomon','Somalia','Somaliland','Sri Lanka','Sudan','Sudan Selatan','Suriname','Swaziland','Sweden','Switzerland','Syria',
+ 'Tajikistan','Tanjung Verde','Tanzania','Thailand','Timor Leste','Togo','Tonga','Transnistria','Trinidad dan Tobago','Tunisia','Turki','Turkmenistan','Tuvalu',
+ 'Uganda','Ukraine','United Kingdom','Uruguay','Uzbekistan',
+ 'Vanuatu','Kota Vatican','Venezuela','Vietnam',
+ 'Yaman',
+ 'Zambia','Zimbabwe',
+ );
+
+ /**
+ * Return a building prefix
+ *
+ * @example 'No.'
+ *
+ * @return @string
+ */
+ public static function buildingPrefix()
+ {
+ return static::randomElement(static::$buildingPrefix);
+ }
+
+ /**
+ * Return a building number
+ *
+ * @example '123'
+ *
+ * @return @string
+ */
+ public static function buildingNumber()
+ {
+ return static::toUpper(static::lexify(static::numerify(static::randomElement(static::$buildingNumber))));
+ }
+
+ /**
+ * Return a street prefix
+ *
+ * @example 'Jalan'
+ */
+ public function streetPrefix()
+ {
+ $format = static::randomElement(static::$streetPrefix);
+
+ return $this->generator->parse($format);
+ }
+
+ /**
+ * Return a complete streename
+ *
+ * @example 'Jalan Utama 7'
+ *
+ * @return @string
+ */
+ public function streetName()
+ {
+ $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$streetNameFormats))));
+
+ return $this->generator->parse($format);
+ }
+
+ /**
+ * Return a randown township
+ *
+ * @example Taman Bahagia
+ *
+ * @return @string
+ */
+ public function township()
+ {
+ $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$townshipFormats))));
+
+ return $this->generator->parse($format);
+ }
+
+ /**
+ * Return a township prefix abbreviation
+ *
+ * @example 'USJ'
+ *
+ * @return @string
+ */
+ public function townshipPrefixAbbr()
+ {
+ return static::randomElement(static::$townshipPrefixAbbr);
+ }
+
+ /**
+ * Return a township prefix
+ *
+ * @example 'Taman'
+ *
+ * @return @string
+ */
+ public function townshipPrefix()
+ {
+ return static::randomElement(static::$townshipPrefix);
+ }
+
+ /**
+ * Return a township suffix
+ *
+ * @example 'Bahagia'
+ */
+ public function townshipSuffix()
+ {
+ return static::randomElement(static::$townshipSuffix);
+ }
+
+ /**
+ * Return a postcode based on state
+ *
+ * @example '55100'
+ * @link https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States
+ *
+ * @param null|string $state 'state' or null
+ *
+ * @return @string
+ */
+ public static function postcode($state = null)
+ {
+ $format = array(
+ 'perlis' => array( // (01000 - 02800)
+ '0' . mt_rand(1000, 2800)
+ ),
+ 'kedah' => array( // (05000 - 09810)
+ '0' . mt_rand(5000, 9810)
+ ),
+ 'penang' => array( // (10000 - 14400)
+ mt_rand(10000, 14400)
+ ),
+ 'kelantan' => array( // (15000 - 18500)
+ mt_rand(15000, 18500)
+ ),
+ 'terengganu' => array( // (20000 - 24300)
+ mt_rand(20000, 24300)
+ ),
+ 'pahang' => array( // (25000 - 28800 | 39000 - 39200 | 49000, 69000)
+ mt_rand(25000, 28800),
+ mt_rand(39000, 39200),
+ mt_rand(49000, 69000)
+ ),
+ 'perak' => array( // (30000 - 36810)
+ mt_rand(30000, 36810)
+ ),
+ 'selangor' => array( // (40000 - 48300 | 63000 - 68100)
+ mt_rand(40000, 48300),
+ mt_rand(63000, 68100)
+ ),
+ 'kl' => array( // (50000 - 60000)
+ mt_rand(50000, 60000),
+ ),
+ 'putrajaya' => array( // (62000 - 62988)
+ mt_rand(62000, 62988)
+ ),
+ 'nsembilan' => array( // (70000 - 73509)
+ mt_rand(70000, 73509)
+ ),
+ 'melaka' => array( // (75000 - 78309)
+ mt_rand(75000, 78309)
+ ),
+ 'johor' => array( // (79000 - 86900)
+ mt_rand(79000, 86900)
+ ),
+ 'labuan' => array( // (87000 - 87033)
+ mt_rand(87000, 87033)
+ ),
+ 'sabah' => array( // (88000 - 91309)
+ mt_rand(88000, 91309)
+ ),
+ 'sarawak' => array( // (93000 - 98859)
+ mt_rand(93000, 98859)
+ )
+ );
+
+ $postcode = is_null($state) ? static::randomElement($format) : $format[$state];
+ return (string)static::randomElement($postcode);
+ }
+
+ /**
+ * Return the complete town address with matching postcode and state
+ *
+ * @example 55100 Bukit Bintang, Kuala Lumpur
+ *
+ * @return @string
+ */
+ public function townState()
+ {
+ $state = static::randomElement(array_keys(static::$states));
+ $postcode = static::postcode($state);
+ $town = static::randomElement(static::$towns[$state]);
+ $state = static::randomElement(static::$states[$state]);
+
+ return $postcode . ' ' . $town . ', ' . $state;
+ }
+
+ /**
+ * Return a random city (town)
+ *
+ * @example 'Ampang'
+ *
+ * @return @string
+ */
+ public function city()
+ {
+ $state = static::randomElement(array_keys(static::$towns));
+ return static::randomElement(static::$towns[$state]);
+ }
+
+ /**
+ * Return a random state
+ *
+ * @example 'Johor'
+ *
+ * @return @string
+ */
+ public function state()
+ {
+ $state = static::randomElement(array_keys(static::$states));
+ return static::randomElement(static::$states[$state]);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php
new file mode 100644
index 00000000..0e681330
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php
@@ -0,0 +1,105 @@
+generator->parse($formats);
+ }
+
+ /**
+ * Return Peninsular prefix alphabet
+ *
+ * @example 'W'
+ *
+ * @return @string
+ */
+ public static function peninsularPrefix()
+ {
+ return static::randomElement(static::$peninsularPrefix);
+ }
+
+ /**
+ * Return Sarawak state prefix alphabet
+ *
+ * @example 'QA'
+ *
+ * @return @string
+ */
+ public static function sarawakPrefix()
+ {
+ return static::randomElement(static::$sarawakPrefix);
+ }
+
+ /**
+ * Return Sabah state prefix alphabet
+ *
+ * @example 'SA'
+ *
+ * @return @string
+ */
+ public static function sabahPrefix()
+ {
+ return static::randomElement(static::$sabahPrefix);
+ }
+
+ /**
+ * Return specialty licence plate prefix
+ *
+ * @example 'G1M'
+ *
+ * @return @string
+ */
+ public static function specialPrefix()
+ {
+ return static::randomElement(static::$specialPrefix);
+ }
+
+ /**
+ * Return a valid license plate alphabet
+ *
+ * @example 'A'
+ *
+ * @return @string
+ */
+ public static function validAlphabet()
+ {
+ return static::randomElement(static::$validAlphabets);
+ }
+
+ /**
+ * Return a valid number sequence between 1 and 9999
+ *
+ * @example '1234'
+ *
+ * @return @integer
+ */
+ public static function numberSequence()
+ {
+ return mt_rand(1, 9999);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php
new file mode 100644
index 00000000..4a46af16
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php
@@ -0,0 +1,244 @@
+generator->parse($formats);
+ }
+
+ /**
+ * Return a Malaysian Bank account number
+ *
+ * @example '1234567890123456'
+ *
+ * @return @string
+ */
+ public function bankAccountNumber()
+ {
+ $formats = static::randomElement(static::$bankAccountNumberFormats);
+
+ return static::numerify($formats);
+ }
+
+ /**
+ * Return a Malaysian Local Bank
+ *
+ * @example 'Public Bank'
+ *
+ * @return @string
+ */
+ public static function localBank()
+ {
+ return static::randomElement(static::$localBanks);
+ }
+
+ /**
+ * Return a Malaysian Foreign Bank
+ *
+ * @example 'Citibank Berhad'
+ *
+ * @return @string
+ */
+ public static function foreignBank()
+ {
+ return static::randomElement(static::$foreignBanks);
+ }
+
+ /**
+ * Return a Malaysian Government Bank
+ *
+ * @example 'Bank Simpanan Nasional'
+ *
+ * @return @string
+ */
+ public static function governmentBank()
+ {
+ return static::randomElement(static::$governmentBanks);
+ }
+
+ /**
+ * Return a Malaysian insurance company
+ *
+ * @example 'AIA Malaysia'
+ *
+ * @return @string
+ */
+ public static function insurance()
+ {
+ return static::randomElement(static::$insuranceCompanies);
+ }
+
+ /**
+ * Return a Malaysian Bank SWIFT Code
+ *
+ * @example 'MBBEMYKLXXX'
+ *
+ * @return @string
+ */
+ public static function swiftCode()
+ {
+ return static::toUpper(static::lexify(static::randomElement(static::$swiftCodes)));
+ }
+
+ /**
+ * Return the Malaysian currency symbol
+ *
+ * @example 'RM'
+ *
+ * @return @string
+ */
+ public static function currencySymbol()
+ {
+ return static::randomElement(static::$currencySymbol);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php
new file mode 100644
index 00000000..28d1092a
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php
@@ -0,0 +1,813 @@
+generator->parse(static::randomElement($formats));
+ }
+
+ /**
+ * Return a Malaysian I.C. No.
+ *
+ * @example '890123-45-6789'
+ *
+ * @link https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_(NRIC)
+ *
+ * @param string|null $gender 'male', 'female' or null for any
+ * @param bool|string|null $hyphen true, false, or any separator characters
+ *
+ * @return string
+ */
+ public static function myKadNumber($gender = null, $hyphen = false)
+ {
+ // year of birth
+ $yy = mt_rand(0, 99);
+
+ // month of birth
+ $mm = DateTime::month();
+
+ // day of birth
+ $dd = DateTime::dayOfMonth();
+
+ // place of birth (1-59 except 17-20)
+ while (in_array($pb = mt_rand(1, 59), array(17, 18, 19, 20))) {
+ }
+
+ // random number
+ $nnn = mt_rand(0, 999);
+
+ // gender digit. Odd = MALE, Even = FEMALE
+ $g = mt_rand(0, 9);
+ //Credit: https://gist.github.com/mauris/3629548
+ if ($gender === static::GENDER_MALE) {
+ $g = $g | 1;
+ } elseif ($gender === static::GENDER_FEMALE) {
+ $g = $g & ~1;
+ }
+
+ // formatting with hyphen
+ if ($hyphen === true) {
+ $hyphen = "-";
+ } elseif ($hyphen === false) {
+ $hyphen = "";
+ }
+
+ return sprintf("%02d%02d%02d%s%02d%s%03d%01d", $yy, $mm, $dd, $hyphen, $pb, $hyphen, $nnn, $g);
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php
new file mode 100644
index 00000000..f89111d9
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php
@@ -0,0 +1,217 @@
+generator->parse($format));
+ } else {
+ return static::numerify($this->generator->parse($format));
+ }
+ }
+
+ /**
+ * Return prefix digits for 011 numbers
+ *
+ * @example '10'
+ *
+ * @return string
+ */
+ public static function zeroOneOnePrefix()
+ {
+ return static::numerify(static::randomElement(static::$zeroOneOnePrefix));
+ }
+
+ /**
+ * Return prefix digits for 014 numbers
+ *
+ * @example '2'
+ *
+ * @return string
+ */
+ public static function zeroOneFourPrefix()
+ {
+ return static::numerify(static::randomElement(static::$zeroOneFourPrefix));
+ }
+
+ /**
+ * Return prefix digits for 015 numbers
+ *
+ * @example '1'
+ *
+ * @return string
+ */
+ public static function zeroOneFivePrefix()
+ {
+ return static::numerify(static::randomElement(static::$zeroOneFivePrefix));
+ }
+
+ /**
+ * Return a Malaysian Fixed Line Phone Number.
+ *
+ * @example '+603-4567-8912'
+ *
+ * @param bool $countryCodePrefix true, false
+ * @param bool $formatting true, false
+ *
+ * @return string
+ */
+ public function fixedLineNumber($countryCodePrefix = true, $formatting = true)
+ {
+ if ($formatting) {
+ $format = static::randomElement(static::$fixedLineNumberFormatsWithFormatting);
+ } else {
+ $format = static::randomElement(static::$fixedLineNumberFormats);
+ }
+
+ if ($countryCodePrefix) {
+ return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
+ } else {
+ return static::numerify($this->generator->parse($format));
+ }
+ }
+
+ /**
+ * Return a Malaysian VoIP Phone Number.
+ *
+ * @example '+6015-678-9234'
+ *
+ * @param bool $countryCodePrefix true, false
+ * @param bool $formatting true, false
+ *
+ * @return string
+ */
+ public function voipNumber($countryCodePrefix = true, $formatting = true)
+ {
+ if ($formatting) {
+ $format = static::randomElement(static::$voipNumberWithFormatting);
+ } else {
+ $format = static::randomElement(static::$voipNumber);
+ }
+
+ if ($countryCodePrefix) {
+ return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format));
+ } else {
+ return static::numerify($this->generator->parse($format));
+ }
+ }
+
+ /**
+ * Return a Malaysian Country Code Prefix.
+ *
+ * @example '+6'
+ *
+ * @param bool $formatting true, false
+ *
+ * @return string
+ */
+ public static function countryCodePrefix($formatting = true)
+ {
+ if ($formatting) {
+ return static::randomElement(static::$plusSymbol) . static::randomElement(static::$countryCodePrefix);
+ } else {
+ return static::randomElement(static::$countryCodePrefix);
+ }
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/no_NO/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php
similarity index 99%
rename from vendor/fzaninotto/faker/src/Faker/Provider/no_NO/Address.php
rename to vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php
index 845afc17..d1d8c9e4 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/no_NO/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php
@@ -1,6 +1,6 @@
format('dmy');
-
+
/**
* @todo These number should be random based on birth year
* @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer
*/
$randomDigits = (string)static::numerify('##');
-
- switch($gender) {
+
+ switch ($gender) {
case static::GENDER_MALE:
$genderDigit = static::randomElement(array(1,3,5,7,9));
break;
@@ -310,16 +310,16 @@ class Person extends \Faker\Provider\Person
default:
$genderDigit = (string)static::numerify('#');
}
-
-
+
+
$digits = $datePart.$randomDigits.$genderDigit;
-
+
/**
* @todo Calculate modulo 11 of $digits
* @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer
*/
$checksum = (string)static::numerify('##');
-
+
return $digits.$checksum;
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php
new file mode 100644
index 00000000..c97e720a
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php
@@ -0,0 +1,41 @@
+generator->parse($format));
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php
index 7f69a5bc..ee81af28 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php
@@ -78,7 +78,7 @@ class Address extends \Faker\Provider\Address
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
- 'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
+ 'Pakistan', 'Palau', 'Palestinian Territories', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php
index 0a88375e..706cd339 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php
@@ -45,11 +45,11 @@ class Person extends \Faker\Provider\Person
'Kabindra', 'Kailash', 'Kalyan', 'Kamal', 'Kamod', 'Kapil', 'Karan', 'Karna', 'Khagendra', 'Kishor', 'Kris', 'Krishna', 'Krisus', 'Kuber',
'Lakshman', 'Lalit', 'Lava', 'Lochan', 'Lokesh',
'Madhav', 'Madhukar', 'Madhur', 'Mandeep', 'Manish', 'Manjul', 'Manoj', 'Milan', 'Mohit', 'Mridul',
- 'Nabin', 'Nakul', 'Narayan', 'Narendra', 'Naresh', 'Neil', 'Nerain', 'Nirajan', 'Nirajan', 'Nirmal', 'Nirupam', 'Nischal', 'Nishad', 'Nishant', 'Nutan',
+ 'Nabin', 'Nakul', 'Narayan', 'Narendra', 'Naresh', 'Neil', 'Nerain', 'Nirajan', 'Nirmal', 'Nirupam', 'Nischal', 'Nishad', 'Nishant', 'Nutan',
'Om',
'Paras', 'Parikshit', 'Parimal', 'Pawan', 'Piyush', 'Prabal', 'Prabesh', 'Prabhat', 'Prabin', 'Prajwal', 'Prakash', 'Pramesh', 'Pramod', 'Pranaya', 'Pranil', 'Prasanna', 'Prashant', 'Prasun', 'Pratap', 'Pratik', 'Prayag', 'Prianshu', 'Prithivi', 'Purna', 'Pushkar',
'Raghab', 'Rahul', 'Rajan', 'Rajesh', 'Rakesh', 'Ramesh', 'Ranjan', 'Ranjit', 'Ricky', 'Rijan', 'Rishab', 'Rishikesh', 'Rohan', 'Rohit', 'Roshan',
- 'Sabin', 'Sachit', 'Safal', 'Sahaj', 'Sahan', 'Sajal', 'Sakar', 'Samir', 'Sanchit', 'Sandesh', 'Sanjay', 'Sanjeev', 'Sankalpa', 'Santosh', 'Sarad', 'Saroj', 'Sashi', 'Saumya', 'Sevak', 'Shailesh', 'Shakti', 'Shamundra', 'Shantanu', 'Shashank', 'Shashwat', 'Shekar', 'Shyam', 'Siddhartha', 'Sitaram', 'Sohan', 'Sohil', 'Soviet', 'Spandan', 'Subal', 'Subham', 'Subodh', 'Sudan', 'Sudhir', 'Sudin', 'Sudip', 'Sujan', 'Sujit', 'Sukanta', 'Sumel', 'Sunil', 'Suraj', 'Suraj', 'Surendra', 'Surya', 'Sushant', 'Sushil', 'Suyash', 'Suyog', 'Swagat', 'Swapnil', 'Swarup',
+ 'Sabin', 'Sachit', 'Safal', 'Sahaj', 'Sahan', 'Sajal', 'Sakar', 'Samir', 'Sanchit', 'Sandesh', 'Sanjay', 'Sanjeev', 'Sankalpa', 'Santosh', 'Sarad', 'Saroj', 'Sashi', 'Saumya', 'Sevak', 'Shailesh', 'Shakti', 'Shamundra', 'Shantanu', 'Shashank', 'Shashwat', 'Shekar', 'Shyam', 'Siddhartha', 'Sitaram', 'Sohan', 'Sohil', 'Soviet', 'Spandan', 'Subal', 'Subham', 'Subodh', 'Sudan', 'Sudhir', 'Sudin', 'Sudip', 'Sujan', 'Sujit', 'Sukanta', 'Sumel', 'Sunil', 'Suraj', 'Surendra', 'Surya', 'Sushant', 'Sushil', 'Suyash', 'Suyog', 'Swagat', 'Swapnil', 'Swarup',
'Tej', 'Tilak', 'Tirtha', 'Trailokya', 'Trilochan',
'Udit', 'Ujjwal', 'Umesh', 'Uttam',
'Yogendra', 'Yogesh', 'Yuvaraj',
@@ -80,7 +80,7 @@ class Person extends \Faker\Provider\Person
protected static $lastName = array(
'Acharya', 'Adhikari', 'Agarwal', 'Amatya', 'Aryal',
'Baidya', 'Bajracharya', 'Balami', 'Banepali', 'Baniya', 'Banjade', 'Baral', 'Basnet', 'Bastakoti', 'Bastola', 'Basyal', 'Belbase', 'Bhandari', 'Bhatta', 'Bhattarai', 'Bhusal', 'Bijukchhe', 'Bisht', 'Bohara', 'Budathoki', 'Byanjankar',
- 'Chalise', 'Chamling', 'Chapagain', 'Chaudhary', 'Chhetri', 'Chhetri',
+ 'Chalise', 'Chamling', 'Chapagain', 'Chaudhary', 'Chhetri',
'Dahal', 'Dangol', 'Dawadi', 'Devkota', 'Dhakal', 'Dhamla', 'Dhaubhadel', 'Dhungel',
'Gauchan', 'Gautam', 'Ghale', 'Ghimire', 'Giri', 'Golchha', 'Gurung', 'Gyalzen', 'Gyawali',
'Hamal', 'Himanshu', 'Humagain',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php
index 8b699644..d0f6d362 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php
@@ -4,7 +4,20 @@ namespace Faker\Provider\nl_BE;
class Address extends \Faker\Provider\Address
{
- protected static $postcode = array('####');
+ protected static $postcodes = array(
+ '2970', '3700', '7510', '9420', '8511', '3800', '9300', '9880', '3200', '8700', '8211', '2630', '4557',
+ '4280', '3930', '5590', '5362', '4219', '6280', '9991', '8660', '1790', '9051', '5544', '4317', '5310',
+ '6250', '5070', '3570', '5550', '4432', '1652', '8690', '4540', '6680', '6953', '4770', '6997', '7750',
+ '5300', '1070', '6150', '4821', '4031', '7387', '5537', '6721', '6890', '4430', '5500', '5520', '4520',
+ '4160', '7640', '2000', '2018', '2020', '2030', '2040', '2050', '2060', '2099', '7910', '8570', '9200',
+ '9400', '5170', '7811', '4990', '1390', '8850', '2370', '4601', '6700', '7181', '5060', '6870', '3665',
+ '9404', '9890', '7040', '1730', '8310', '1007', '9960', '6860', '3460', '5330', '9800', '7800', '6791',
+ '3404', '3384', '6717', '7941', '6790', '7972', '4880', '5660', '6880', '7382', '6706', '1367', '5580',
+ '8630', '8580', '4260', '3271', '4340', '4400', '6900', '4630', '4920', '3128', '9310', '2387', '4837',
+ '6464', '6460', '5555', '7730', '5377', '7380', '1470', '5190', '9860', '2490', '6951', '6500', '4671',
+ '5570', '7534', '5370', '6940', '7971', '4983', '4690', '9968', '7830', '6600', '3870', '4651', '7130',
+ '7331', '7870', '7604', '1401', '9520', '8531', '9150', '4052', '6980', '1320', '6594', '7532', '3960',
+ );
protected static $streetAddressFormats = array(
'{{streetName}} {{buildingNumber}}'
@@ -88,6 +101,11 @@ class Address extends \Faker\Provider\Address
'Wit-Rusland', 'Zambia', 'Zuid-Afrika', 'Zuid-Georgia en de Zuidelijke Sandwicheilanden', 'Zimbabwe'
);
+ public static function postcode()
+ {
+ return static::randomElement(static::$postcodes);
+ }
+
/**
* @example 'Gelderland'
*/
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php
index d587e675..f8eb2338 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php
@@ -16,4 +16,24 @@ class Payment extends \Faker\Provider\Payment
{
return static::iban($countryCode, $prefix, $length);
}
+
+ /**
+ * Value Added Tax (VAT)
+ *
+ * @example 'BE0123456789', ('spaced') 'BE 0123456789'
+ *
+ * @see http://ec.europa.eu/taxation_customs/vies/faq.html?locale=en#item_11
+ * @see http://www.iecomputersystems.com/ordering/eu_vat_numbers.htm
+ * @see http://en.wikipedia.org/wiki/VAT_identification_number
+ *
+ * @param bool $spacedNationalPrefix
+ *
+ * @return string VAT Number
+ */
+ public static function vat($spacedNationalPrefix = true)
+ {
+ $prefix = $spacedNationalPrefix ? "BE " : "BE";
+
+ return sprintf("%s0%d", $prefix, self::randomNumber(9, true));
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php
index c9ac865b..bde3bf64 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php
@@ -2,6 +2,8 @@
namespace Faker\Provider\nl_BE;
+use Faker\Provider\DateTime;
+
class Person extends \Faker\Provider\Person
{
protected static $firstNameMale = array(
@@ -69,4 +71,36 @@ class Person extends \Faker\Provider\Person
'Vermeersch', 'Vermeiren', 'Vermeulen', 'Verschueren', 'Verstraete', 'Verstraeten',
'Vervoort', 'Wauters', 'Willems', 'Wouters', 'Wuyts', 'Yildirim', 'Yilmaz'
);
+
+ /**
+ * Belgian Rijksregister numbers are used to identify each citizen,
+ * it consists of three parts, the person's day of birth, in the
+ * format 'ymd', followed by a number between 1 and 997, odd for
+ * males, even for females. The last part is used to check if it's
+ * a valid number.
+ *
+ * @link https://nl.wikipedia.org/wiki/Rijksregisternummer
+ *
+ * @param string|null $gender 'male', 'female' or null for any
+ * @return string
+ */
+ public static function rrn($gender = null)
+ {
+ $middle = self::numberBetween(1, 997);
+ if ($gender === static::GENDER_MALE) {
+ $middle = $middle %2 === 1 ? $middle : $middle+1;
+ } elseif ($gender === static::GENDER_FEMALE) {
+ $middle = $middle %2 === 0 ? $middle : $middle+1;
+ }
+ $middle = sprintf('%03d', $middle);
+
+ $date = DateTime::dateTimeThisCentury();
+ $dob = sprintf('%06d', $date->format('ymd'));
+ $help = $date->format('Y') >= 2000 ? 2 : null;
+
+ $check = intval($help.$dob.$middle);
+ $rest = sprintf('%02d', 97 - ($check % 97));
+
+ return $dob.$middle.$rest;
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php
new file mode 100644
index 00000000..d41104d1
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php
@@ -0,0 +1,25347 @@
+generator->lastName;
+ break;
+ }
+
+ if (0 !== static::numberBetween(0, 1)) {
+ return $companyName . ' ' . static::randomElement(static::$companySuffix);
+ }
+
+ return $companyName;
+ }
+
+ /**
+ * Belasting Toegevoegde Waarde (BTW) = VAT
+ *
+ * @example 'NL123456789B01'
+ *
+ * @see http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakelijk/btw/administratie_bijhouden/btw_nummers_controleren/uw_btw_nummer
+ *
+ * @return string VAT Number
+ */
+ public static function vat()
+ {
+ return sprintf("%s%d%s%d", 'NL', self::randomNumber(9, true), 'B', self::randomNumber(2, true));
+ }
+
+ /**
+ * Alias dutch vat number format
+ *
+ * @return string
+ */
+ public static function btw()
+ {
+ return self::vat();
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php
index 45f6074a..a3d7dc8a 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php
@@ -26,10 +26,26 @@ class Person extends \Faker\Provider\Person
'mr.', 'dr.', 'ir.', 'drs', 'bacc.', 'kand.', 'dr.h.c.', 'prof.', 'ds.', 'ing.', 'bc.'
);
- private static $suffix = array(
+ protected static $suffix = array(
'BA', 'Bsc', 'LLB', 'LLM', 'MA', 'Msc', 'MPhil', 'D', 'PhD', 'AD', 'B', 'M'
);
+ protected static $prefix = array("'s", "'t", 'a', 'aan', "aan 't", 'aan de', 'aan den', 'aan der', 'aan het',
+ "aan t", 'af', 'al', 'am', 'am de', 'auf', 'auf dem', 'auf den', 'auf der', 'auf ter', 'aus', "aus 'm",
+ 'aus dem', 'aus den', 'aus der', 'aus m', 'ben', 'bij', "bij 't", 'bij de', 'bij den', 'bij het', 'bij t',
+ 'bin', 'boven d', "boven d'", 'd', "d'", 'da', 'dal', 'dal’', 'dalla', 'das', 'de', 'de die', 'de die le',
+ 'de l', 'de l’', 'de la', 'de las', 'de le', 'de van der', 'deca', 'degli', 'dei', 'del', 'della', 'den',
+ 'der', 'des', 'di', 'die le', 'do', 'don', 'dos', 'du', 'el', 'het', 'i', 'im', 'in', "in 't", 'in de', 'in den',
+ 'in der', 'in het', 'in t', 'l', 'l’', 'la', 'las', 'le', 'les', 'lo', 'los', 'of', 'onder', "onder 't",
+ 'onder de', 'onder den', 'onder het', 'onder t', 'op', "op 't", 'op de', 'op den', 'op der', 'op gen', 'op het',
+ 'op t', 'op ten', 'over', "over 't", 'over de', 'over den', 'over het', 'over t', 's', "s'", 't', 'te', 'ten',
+ 'ter', 'tho', 'thoe', 'thor', 'to', 'toe', 'tot', 'uijt', "uijt 't", 'uijt de', 'uijt den', 'uijt te de',
+ 'uijt ten', 'uit', "uit 't", 'uit de', 'uit den', 'uit het', 'uit t', 'uit te de', 'uit ten', 'unter', 'van',
+ "van 't", 'van De', 'van de', 'van de l', "van de l'", 'van den', 'van der', 'van gen', 'van het', 'van la',
+ 'van t', 'van ter', 'van van de', 'ver', 'vom', 'von', "von 't", 'von dem', 'von den', 'von der', 'von t', 'voor',
+ "voor 't", 'voor de', 'voor den', "voor in 't", 'voor in t', 'vor', 'vor der', 'zu', 'zum', 'zur'
+ );
+
protected static $commonDutchLastNames = array(
'de Jong', 'Jansen', 'de Vries', 'van de Berg', 'van den Berg', 'van der Berg', 'van Dijk', 'Bakker', 'Janssen',
'Visser', 'Smit', 'Meijer', 'Meyer', 'de Boer', 'Mulder', 'de Groot', 'Bos', 'Vos', 'Peters', 'Hendriks',
@@ -70,7 +86,7 @@ class Person extends \Faker\Provider\Person
'Coreth von und zu Coredo und Starkenberg', 'Cornelisse', 'Cornelissen', 'Cornelisz', 'van den Corput',
'Corstiaens', 'Cosman', 'van de Coterlet', 'Courtier', 'van Cuijck', 'van Daal', 'Dachgelder', 'Dachgeldt',
'Dachgelt', 'van Dagsburg', 'van Dalem', 'van Dam', 'van de Darnau', 'David', 'Dekker', 'Demmendaal',
- 'Dennenberg', 'Die Bont', 'Diesbergen', 'van Dijk', 'Dijkman', 'van Dillen', 'Dircken', 'Dirksen', 'Dirven',
+ 'Dennenberg', 'die Bont', 'Diesbergen', 'van Dijk', 'Dijkman', 'van Dillen', 'Dircken', 'Dirksen', 'Dirven',
'Doesburg', 'van Dokkum', 'van Dommelen', 'van Dongen', 'van Dooren', 'Doorhof', 'Doornhem', 'Dorsman',
'Doyle', 'Draaisma', 'van Drenthe', 'Dries', 'Drysdale', 'Dubois', 'van Duivenvoorde', 'Duivenvoorden',
'van Duvenvoirde', 'van Duyvenvoorde', 'die Bont', 'die Pelser', 'die Witte', 'van Eck', 'Eckhardt', 'Eelman',
@@ -89,18 +105,18 @@ class Person extends \Faker\Provider\Person
'Groote', 'de Grote', 'Gruijl', 'de Gruijl', 'de Gruijter', 'de Gruil', 'de Grunt', 'de Gruson', 'le Guellec',
'Guit', 'le Gulcher', 'Höning', 'Haack', 'den Haag', 'van Haarlem', 'de Haas', 'van Haeften', 'Haengreve',
'van Hagen', 'Hagendoorn', 'Hak', 'Hakker', 'van Ham', 'van Hamaland', 'Haneberg', 'Hanegraaff', 'Haring',
- 'Haselaar', 'van Haspengouw Hesbaye', 'van Haspengouw', 'Hazenveld', 'de Heer', 'Heere', 'Heerkens',
+ 'Haselaar', 'van Haspengouw', 'Hazenveld', 'de Heer', 'Heere', 'Heerkens',
'Heerschop', 'Hehl', 'van der Heiden', 'van der Heijden', 'Heijman', 'Heijmans', 'Heijmen', 'Heinrichs',
- 'Hekker', 'Hellevoort', 'Helmerhorst', 'van Hemert', 'Hemma van Allemanië', 'Hendricks', 'Hendriks',
- 'Hendrikse', 'van Henegouwen', 'Henric van den Nuwenhuse', 'van den Henst', 'Heribert van Laon', 'd\' Heripon',
+ 'Hekker', 'Hellevoort', 'Helmerhorst', 'van Hemert', 'Hemma', 'Hendricks', 'Hendriks',
+ 'Hendrikse', 'van Henegouwen', 'van den Henst', 'Heribert van Laon', "d' Heripon",
'Hermans', 'van Herstal', 'van Heusden', 'Hexspoor', 'Heymans', 'Heyne', 'Hoedemakers', 'van den Hoek', 'Hoeks',
'Hoelen', 'Hoes', 'van Hoevel en van Zwindrecht', 'van der Hoeven', 'van Holland', 'Hollander', 'Holthuis',
'Hondeveld', 'Honing', 'de Hoog', 'Hoogers', 'de Hoogh', 'Hoppenbrouwer', 'Horrocks', 'van der Horst',
- 'van Hostaden', 'Houdijk', 'van \'t Houteveen', 'Huberts', 'Huel', 'Huijben', 'Huijbrechts', 'Huijs',
+ 'van Hostaden', 'Houdijk', "van 't Houteveen", 'Huberts', 'Huel', 'Huijben', 'Huijbrechts', 'Huijs',
'Huijzing', 'Huisman', 'Huls', 'Hulshouts', 'Hulskes', 'Hulst', 'van Hulten', 'Huurdeman', 'van het Heerenveen',
'Jaceps', 'Jacobi', 'Jacobs', 'Jacquot', 'de Jager', 'Jans', 'Jansdr', 'Janse', 'Jansen', 'Jansen', 'Jansse',
- 'Janssen', 'Janssens', 'Jasper dr.', 'Jdotte', 'Jeggij', 'Jekel', 'Jerusalem', 'Jochems', 'de Jode Vastraedsd',
- 'Jones', 'de Jong', 'Jonkman', 'Joosten', 'Jorlink', 'Jorrisen', 'van Jumiège', 'Jurrijens', 'Köster',
+ 'Janssen', 'Janssens', 'Jasper dr', 'Jdotte', 'Jeggij', 'Jekel', 'Jerusalem', 'Jochems',
+ 'Jones', 'de Jong', 'Jonkman', 'Joosten', 'Jorlink', 'Jorissen', 'van Jumiège', 'Jurrijens', 'Köster',
'van der Kaay', 'de Kale', 'Kallen', 'Kalman', 'Kamp', 'Kamper', 'Karels', 'Kas', 'van Kasteelen', 'Kathagen',
'Keijser', 'de Keijser', 'Keijzer', 'de Keijzer', 'Keltenie', 'van Kempen', 'Kerkhof', 'Ketel', 'Ketting',
'der Kijnder', 'van der Kint', 'Kirpenstein', 'Kisman', 'van Klaarwater', 'van de Klashorst', 'Kleibrink',
@@ -135,7 +151,7 @@ class Person extends \Faker\Provider\Person
'van de Plas', 'van der Plas', 'van der Ploeg', 'van der Pluijm', 'Poncelet', 'Ponci', 'Pons', 'van Poppel',
'Post', 'Potters', 'van der Pouw', 'van Praagh', 'Pratt', 'Prinsen', 'Puig', 'Rackham', 'Rademaker', 'Ramaker',
'Recer', 'Recers', 'de Reede', 'Rehorst', 'Reijers', 'Reimes', 'Rek', 'Remmers', 'van Rheineck', 'Ridder',
- 'Riem', 'van Riet', 'van \'t Riet', 'Rietveld', 'Rijcken', 'Rijks', 'Rijn', 'van Rijnsbergen', 'Rijntjes',
+ 'Riem', 'van Riet', "van 't Riet", 'Rietveld', 'Rijcken', 'Rijks', 'Rijn', 'van Rijnsbergen', 'Rijntjes',
'van Rijthoven', 'Rippey', 'Risma', 'Robbrechts Bruijne', 'Roessink', 'van Roijen', 'Romijn', 'de Roo',
'Roodesteijn', 'van Rooij', 'Room', 'de Roos', 'Roose', 'Roosenboom', 'van Rossum', 'Rotteveel', 'Roukes',
'Rousselet', 'Rouwenhorst', 'Rouwhorst', 'Rubben', 'Ruijs', 'Rutten', 'van Saksen', 'Salet', 'van Salm',
@@ -152,20 +168,20 @@ class Person extends \Faker\Provider\Person
'van Stralen', 'van der Strigt', 'de Strigter', 'Strijker', 'Strik', 'Stuivenberg', 'Suijker', 'van Suinvorde',
'van Susa', 'de Swart', 'Symons', 'Takkelenburg', 'Tammerijn', 'Tamsma', 'Terry', 'den Teuling', 'Teunissen',
'Texier', 'Thatcher', 'The Elder', 'Thomas', 'Thout', 'Tielemans', 'Tillmanno', 'Timmerman', 'Timmermans',
- 'Tins', 'Tirie', 'Totwiller', 'van Tours', 'van Tuijl', 'Tuithof', 'Uit de Willigen', 'Uittenbosch', 'Ulrich',
- 'Unruoch Hunerik', 'Uphaus', 'Uphuis', 'Uphus', 'VI', 'Vaessen', 'Vallenduuk', 'Van Bragt', 'Vandenbergh',
+ 'Tins', 'Tirie', 'Totwiller', 'van Tours', 'van Tuijl', 'Tuithof', 'Uittenbosch', 'Ulrich',
+ 'Uphaus', 'Uphuis', 'Uphus', 'VI', 'Vaessen', 'Vallenduuk', 'Van Bragt', 'Vandenbergh',
'Vastenhouw', 'Veenendaal', 'Vegt', 'van der Veiver', 'Velderman', 'van Velthoven', 'Veltman', 'van Velzen',
'van de Ven', 'van Venrooy', 'Verbeeck', 'Verbeek', 'Verboom', 'Verbruggen', 'Verda', 'van Verdun', 'Vergeer',
'Verhaar', 'Verhagen', 'Verharen', 'Verheij', 'Verheuvel', 'Verhoeven', 'Verkade', 'van Vermandois',
'Vermeulen', 'Verschuere', 'Verschut', 'Versluijs', 'Vertoor', 'Vertooren', 'Vervoort', 'Verwoert', 'Vial',
'Vierdag', 'Vignon', 'van Vlaanderen', 'Volcke', 'van Voorhout', 'van Voorst', 'Voortman', 'Vos', 'Vrancken',
'de Vries', 'de Vroege', 'de Vrome', 'ter Waarbeek', 'Waardeloo', 'van Waas', 'Wagenvoort', 'van Wallaert',
- 'Walsteijn', 'Walter', 'Waltrade Walderade', 'van Wassenaar', 'van de Water', 'Weeldenburg', 'Weerdenburg',
- 'Weijland', 'Weijters', 'van Wel', 'van \'t Wel', 'Welf', 'Wendt', 'Wensen', 'de Werd', 'Werdes',
- 'Werl-Arnsberg, van', 'van Wessex', 'West-Francië, van', 'Westerbeek', 'Westerburg', 'Westermann',
+ 'Walsteijn', 'Walter', 'van Wassenaar', 'van de Water', 'Weeldenburg', 'Weerdenburg',
+ 'Weijland', 'Weijters', 'van Wel', "van 't Wel", 'Welf', 'Wendt', 'Wensen', 'de Werd', 'Werdes',
+ 'van Wessex', 'Westerbeek', 'Westerburg', 'Westermann',
'van Westfalen', 'van de Weterink', 'Wever', 'Weyland', 'Weylant', 'van Wickerode', 'van de Wiel', 'Wigman',
'Wijland', 'van Wijland', 'Wilcken', 'Wildschut', 'Willems', 'Willems van Lier', 'Willemsen', 'Wilmont',
- 'Wilson', 'Winnrich', 'Winters', 'Wipstrik', 'de Wit', 'van den Wittenboer', 'Wolffel', 'Wolfsdr',
+ 'Wilson', 'Winnrich', 'Winters', 'Wipstrik', 'de Wit', 'van den Wittenboer', 'Wolffel',
'Wolfswinkel', 'Wolters', 'Wolzak', 'Wooning', 'Woudenberg', 'Wouters', 'Wouters van Eijndhoven', 'Woutersz',
'Wright', 'Wunderink', 'Wutke', 'Zaal', 'Zeemans', 'Zeldenrust', 'Zevenboom', 'van der Zijl', 'Zijlemans',
'Zijlmans', 'Zuidweg', 'Zuijdveld', 'van Zwaben', 'Zwart', 'Zwijsen'
@@ -248,14 +264,14 @@ class Person extends \Faker\Provider\Person
*/
public function lastName()
{
- $determinator = static::numberBetween(0, 3);
+ $determinator = static::numberBetween(0, 25);
if ($determinator === 0) {
$lastName = static::randomElement(static::$longLastNames);
- } elseif ($determinator === 1) {
+ } elseif ($determinator <= 10) {
$lastName = static::randomElement(static::$commonDutchLastNames);
- } elseif ($determinator === 2) {
+ } elseif ($determinator <= 15) {
$lastName = static::randomElement(static::$commonForeignLastNames);
- } elseif ($determinator === 3) {
+ } else {
$lastName = static::randomElement(static::$dutchLastNames);
}
@@ -272,7 +288,7 @@ class Person extends \Faker\Provider\Person
*/
public static function titleMale()
{
- return static::title();
+ return static::randomElement(static::$title);
}
/**
@@ -280,7 +296,7 @@ class Person extends \Faker\Provider\Person
*/
public static function titleFemale()
{
- return static::title();
+ return static::randomElement(static::$title);
}
/**
@@ -290,4 +306,44 @@ class Person extends \Faker\Provider\Person
{
return static::randomElement(static::$suffix);
}
+
+ /*
+ * @example 'van der'
+ */
+ public static function prefix()
+ {
+ return static::randomElement(static::$prefix);
+ }
+
+ /**
+ * @link https://nl.wikipedia.org/wiki/Burgerservicenummer#11-proef
+ *
+ * @return string
+ */
+ public function idNumber()
+ {
+ $return = '';
+ $nr = array();
+ $nr[] = 0;
+ while (count($nr) < 8) {
+ $nr[] = static::randomDigit();
+ }
+ $nr[] = mt_rand(0, 6);
+ if ($nr[7] == 0 && $nr[8] == 0) {
+ $nr[7] = 0;
+ }
+
+ $bsn = (9 * $nr[8]) + (8 * $nr[7]) + (7 * $nr[6]) + (6 * $nr[5]) + (5 * $nr[4]) + (4 * $nr[3]) + (3 * $nr[2]) + (2 * $nr[1]);
+ $nr[0] = floor($bsn - floor($bsn / 11) * 11);
+ if ($nr[0] > 9) {
+ if ($nr[1] > 0) {
+ $nr[0] = 8;
+ $nr[1]--;
+ } else {
+ $nr[0] = 1;
+ $nr[1]++;
+ }
+ }
+ return implode('', array_reverse($nr));
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php
new file mode 100644
index 00000000..4ac1f0b6
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php
@@ -0,0 +1,3932 @@
+ 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce',
- '249' => 'Alior Bank SA',
- '247' => 'Banco Espirito Santo de Investimento, S.A. Spółka Akcyjna Oddział w Polsce',
- '238' => 'Banco Mais S.A. (SA) Oddział w Polsce',
- '106' => 'Bank BPH SA',
- '219' => 'Bank DnB NORD Polska SA',
- '203' => 'Bank Gospodarki Żywnościowej SA',
- '113' => 'Bank Gospodarstwa Krajowego',
- '122' => 'Bank Handlowo - Kredytowy SA (w likwidacji 31.03.92)',
- '103' => 'Bank Handlowy w Warszawie SA',
- '116' => 'Bank Millennium SA',
- '154' => 'Bank Ochrony Åšrodowiska SA',
- '260' => 'Bank of China (Luxembourg)S.A. Spółka Akcyjna Oddział w Polsce',
- '221' => 'Bank of Tokyo-Mitsubishi UFJ (Polska) SA',
- '132' => 'Bank Pocztowy SA',
- '124' => 'Bank Polska Kasa Opieki SA',
- '193' => 'BANK POLSKIEJ SPÓÅDZIELCZOÅšCI SA',
- '109' => 'Bank Zachodni WBK SA',
- '224' => 'Banque PSA Finance SA Oddział w Polsce',
- '160' => 'BNP PARIBAS BANK POLSKA SA',
- '235' => 'BNP PARIBAS SA Oddział w Polsce',
- '243' => 'BNP Paribas Securities Services SKAOddział w Polsce',
- '229' => 'BPI Bank Polskich Inwestycji SA',
- '215' => 'BRE Bank Hipoteczny SA',
- '114' => 'BRE Bank SA',
- '239' => 'CAIXABANK, S.A. (SPÓÅKA AKCYJNA)ODDZIAÅ W POLSCE',
- '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce',
- '194' => 'Credit Agricole Bank Polska SA',
- '252' => 'CREDIT SUISSE (LUXEMBOURG) S.A. Spółka Akcyjna, Oddział w Polsce',
- '236' => 'Danske Bank A/S SA Oddział w Polsce',
- '191' => 'Deutsche Bank PBC SA',
- '188' => 'Deutsche Bank Polska SA',
- '174' => 'DZ BANK Polska SA',
- '241' => 'Elavon Financial Services Limited (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce',
- '147' => 'Euro Bank SA',
- '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce',
- '207' => 'FCE Bank Polska SA',
- '214' => 'Fiat Bank Polska SA',
- '253' => 'FM Bank SA',
- '248' => 'Getin Noble Bank SA',
- '128' => 'HSBC Bank Polska SA',
- '195' => 'Idea Bank SA',
- '255' => 'Ikano Bank GmbH (Sp. z o.o.) Oddział w Polsce',
- '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce',
- '105' => 'ING Bank ÅšlÄ…ski SA',
- '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce',
- '168' => 'INVEST - BANK SA',
- '258' => 'J.P. Morgan Europe Limited Sp. z o.o. Oddział w Polsce',
- '158' => 'Mercedes-Benz Bank Polska SA',
- '130' => 'Meritum Bank ICB SA',
'101' => 'Narodowy Bank Polski',
- '256' => 'Nordea Bank AB SA Oddział w Polsce',
- '144' => 'NORDEA BANK POLSKA SA',
- '232' => 'Nykredit Realkredit A/S SA - Oddział w Polsce',
- '189' => 'Pekao Bank Hipoteczny SA',
- '187' => 'Polski Bank Przedsiębiorczości SA',
'102' => 'Powszechna Kasa Oszczędności Bank Polski SA',
- '200' => 'Rabobank Polska SA',
- '175' => 'Raiffeisen Bank Polska SA',
- '167' => 'RBS Bank (Polska) SA',
- '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce',
- '212' => 'Santander Consumer Bank SA',
- '263' => 'Saxo Bank A/S Spółka Akcyjna Oddział w Polsce',
+ '103' => 'Bank Handlowy w Warszawie SA',
+ '105' => 'ING Bank ÅšlÄ…ski SA',
+ '106' => 'Bank BPH SA',
+ '109' => 'Bank Zachodni WBK SA',
+ '113' => 'Bank Gospodarstwa Krajowego',
+ '114' => 'mBank SA',
+ '116' => 'Bank Millennium SA',
+ '122' => 'Bank Handlowo-Kredytowy Spółka Akcyjna w Katowicach w likwidacji',
+ '124' => 'Bank Polska Kasa Opieki SA',
+ '128' => 'HSBC Bank Polska SA',
+ '132' => 'Bank Pocztowy SA',
+ '147' => 'Euro Bank SA',
+ '154' => 'Bank Ochrony Åšrodowiska SA',
+ '158' => 'Mercedes-Benz Bank Polska SA',
'161' => 'SGB-Bank SA',
- '237' => 'Skandinaviska Enskilda Banken AB (SA) - Oddział w Polsce',
+ '167' => 'RBS Bank (Polska) SA',
+ '168' => 'PLUS BANK SA',
+ '175' => 'Raiffeisen Bank Polska SA',
'184' => 'Societe Generale SA Oddział w Polsce',
- '225' => 'Svenska Handelsbanken AB SA Oddział w Polsce',
- '227' => 'Sygma Banque Societe Anonyme (SA) Oddział w Polsce',
- '216' => 'Toyota Bank Polska SA',
- '257' => 'UBS Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce',
- '261' => 'Vanquis Bank Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce',
+ '187' => 'Nest Bank S.A.',
+ '189' => 'Pekao Bank Hipoteczny SA',
+ '191' => 'Deutsche Bank Polska SA',
+ '193' => 'BANK POLSKIEJ SPÓÅDZIELCZOÅšCI SA',
+ '194' => 'Credit Agricole Bank Polska SA',
+ '195' => 'Idea Bank SA',
+ '203' => 'Bank BGÅ» BNP Paribas SA',
+ '212' => 'Santander Consumer Bank SA',
'213' => 'VOLKSWAGEN BANK POLSKA SA',
+ '214' => 'FCA-Group Bank Polska SA',
+ '215' => 'mBank Hipoteczny SA',
+ '216' => 'Toyota Bank Polska SA',
+ '219' => 'DNB Bank Polska SA',
+ '224' => 'Banque PSA Finance SA Oddział w Polsce',
+ '225' => 'Svenska Handelsbanken AB SA Oddział w Polsce',
+ '229' => 'BPI Bank Polskich Inwestycji SA',
+ '232' => 'Nykredit Realkredit A/S SA - Oddział w Polsce',
+ '235' => 'BNP PARIBAS SA Oddział w Polsce',
+ '236' => 'Danske Bank A/S SA Oddział w Polsce',
+ '237' => 'Skandinaviska Enskilda Banken AB (SA) - Oddział w Polsce',
+ '239' => 'CAIXABANK, S.A. (SPÓÅKA AKCYJNA)ODDZIAÅ W POLSCE',
+ '241' => 'Elavon Financial Services Designated Activity Company (spółka z o.o. o wyznaczonym przedmiocie działalności) Oddział w Polsce',
+ '243' => 'BNP Paribas Securities Services SKA Oddział w Polsce',
+ '247' => 'HAITONG BANK, S.A. Spółka Akcyjna Oddział w Polsce',
+ '248' => 'Getin Noble Bank SA',
+ '249' => 'Alior Bank SA',
+ '251' => 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce',
+ '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce',
+ '255' => 'Ikano Bank AB (publ) Spółka Akcyjna Oddział w Polsce',
+ '256' => 'Nordea Bank AB SA Oddział w Polsce',
+ '257' => 'UBS Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce',
+ '258' => 'J.P. Morgan Europe Limited Sp. z o.o. Oddział w Polsce',
+ '260' => 'Bank of China (Luxembourg) S.A. Spółka Akcyjna Oddział w Polsce',
+ '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce',
+ '263' => 'Saxo Bank A/S Spółka Akcyjna Oddział w Polsce w likwidacji',
+ '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce',
+ '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce',
+ '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce',
+ '267' => 'Western Union International Bank GmbH, Sp. z o.o. Oddział w Polsce',
+ '269' => 'PKO Bank Hipoteczny SA',
+ '270' => 'TF BANK AB (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce',
+ '271' => 'FCE Bank Spółka Akcyjna Oddział w Polsce',
+ '272' => 'AS Inbank Spółka Akcyjna - Oddział w Polsce',
+ '273' => 'China Construction Bank (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce',
+ '274' => 'MUFG Bank (Europe) N.V. S.A. Oddział w Polsce',
+ '275' => 'John Deere Bank S.A. Spółka Akcyjna Oddział w Polsce',
);
/**
@@ -105,7 +100,7 @@ class Payment extends \Faker\Provider\Payment
protected static function addBankCodeChecksum($iban, $countryCode = 'PL')
{
- if ($countryCode != "PL" || strlen($iban) <= 8) {
+ if ($countryCode != 'PL' || strlen($iban) <= 8) {
return $iban;
}
$checksum = 0;
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php
index c6b2402e..380f4d9f 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php
@@ -159,11 +159,12 @@ class Person extends \Faker\Provider\Person
for ($i = 6; $i < $length; $i++) {
$result[$i] = static::randomDigit();
}
- if ($sex == "M") {
- $result[$length - 1] |= 1;
- } elseif ($sex == "F") {
- $result[$length - 1] ^= 1;
+
+ $result[$length - 1] |= 1;
+ if ($sex == "F") {
+ $result[$length - 1] -= 1;
}
+
$checksum = 0;
for ($i = 0; $i < $length; $i++) {
$checksum += $weights[$i] * $result[$i];
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php
index 0f242105..9739b83e 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php
@@ -48,7 +48,7 @@ class Text extends \Faker\Provider\Text
*
*
*
- * Produced by Pawel Sobkowiak--Scanned and proofread by
+ * Produced by Pawel Sobkowiak - Scanned and proofread by
* Polska Biblioteka Internetowa
*
*
@@ -75,13 +75,13 @@ starszym bratem na pastwę białych od żaru i oszołamiających dni letnich.
Wertowaliśmy, odurzeni światłem, w tej wielkiej księdze wakacji, której
wszystkie karty pałały od blasku i miały na dnie słodki do omdlenia
miąższ złotych gruszek. Adela wracała w świetliste poranki, jak Pomona z
-ognia dnia rozżagwionego, wysypując z koszyka barwną urodę słońca--
+ognia dnia rozżagwionego, wysypując z koszyka barwną urodę słońca -
lśniące, pełne wody pod przejrzystą skórką czereśnie, tajemnicze, czarne
wiśnie, których woń przekraczała to, co ziszczało się w smaku; morele, w
których miąższu złotym był rdzeń długich popołudni; a obok tej czystej
poezji owoców wyładowywała nabrzmiałe siłą i pożywnością płaty mięsa z
klawiaturą żeber cielęcych, wodorosty jarzyn, niby zabite głowonogi i
-meduzy--surowy materiał obiadu o smaku jeszcze nie uformowanym i
+meduzy - surowy materiał obiadu o smaku jeszcze nie uformowanym i
jałowym, wegetatywne i telluryczne ingrediencje obiadu o zapachu dzikim
i polnym. Przez ciemne mieszkanie na pierwszym piętrze kamienicy w rynku
przechodziło co dzień na wskroś całe wielkie lato: cisza drgających
@@ -99,10 +99,10 @@ słoneczną kąpiel dnia. Przechodnie, brodząc w złocie, mieli oczy
zmrużone od żaru, jakby zalepione miodem, a podciągnięta górna warga
odsłaniała im dziąsła i zęby. I wszyscy brodzący w tym dniu złocistym
mieli ów grymas skwaru, jak gdyby słońce nałożyło swym wyznawcom jedną i
-tę samą maskę--złotą maskę bractwa słonecznego; i wszyscy, którzy szli
+tę samą maskę - złotą maskę bractwa słonecznego; i wszyscy, którzy szli
dziś ulicami, spotykali się, mijali, starcy i młodzi, dzieci i kobiety,
pozdrawiali się w przejściu tą maską, namalowaną grubą, złotą farbą na
-twarzy, szczerzyli do siebie ten grymas bakchiczny--barbarzyńską maskę
+twarzy, szczerzyli do siebie ten grymas bakchiczny - barbarzyńską maskę
kultu pogańskiego. Rynek był pusty i żółty od żaru, wymieciony z kurzu
gorącymi wiatrami, jak biblijna pustynia. Cierniste akacje, wyrosłe z
pustki żółtego placu, kipiały nad nim jasnym listowiem, bukietami
@@ -129,7 +129,7 @@ troskliwie chorego męża z rozpalonego siodła, ażeby go po chłodnych
schodach wnieść ostrożnie na pachnące szabasem piętro. Tak wędrowaliśmy
z matką przez dwie słoneczne strony rynku, wodząc nasze załamane cienie
po wszystkich domach, jak po klawiszach. Kwadraty bruku mijały powoli
-pod naszymi miękkimi i płaskimi krokami--jedne bladoróżowe jak skóra
+pod naszymi miękkimi i płaskimi krokami - jedne bladoróżowe jak skóra
ludzka, inne złote i sine, wszystkie płaskie, ciepłe, aksamitne na
słońcu, jak jakieś twarze słoneczne, zadeptane stopami aż do niepoznaki,
do błogiej nicości. Aż wreszcie na rogu ulicy Stryjskiej weszliśmy w
@@ -227,9 +227,9 @@ w dziwnie prostej syntezie życie tych ludzi, alembik rasy, gatunek krwi
i sekret ich losu, zawarty niedostrzegalnie w codziennym mijaniu ich
własnego, odrębnego czasu. Stare, mądre drzwi, których ciemne
westchnienia wpuszczały i wypuszczały tych ludzi, milczący świadkowie
-wchodzenia i wychodzenia matki, córek i synów--otworzyły się bezgłośnie
+wchodzenia i wychodzenia matki, córek i synów - otworzyły się bezgłośnie
jak odrzwia szafy i weszliśmy w ich życie. Siedzieli jakby w cieniu
-swego losu i nie bronili się--w pierwszych niezręcznych gestach
+swego losu i nie bronili się - w pierwszych niezręcznych gestach
wydalinam swoją tajemnicę. Czyż nie byliśmy krwią i losem spokrewnieni z
nimi? Pokój był ciemny i aksamitny od granatowych obić ze złotym
deseniem, lecz echo dnia płomiennego drgało i tutaj jeszcze mosiądzem na
@@ -288,7 +288,7 @@ oczyma, wychodząc do drugiego pokoju. Podążyłem za nim. Siedział nisko
na małej kozetce, z kolanami krzyżującymi się niemal na wysokości głowy,
łysej jak kula bilardowa. Zdawało się, że to ubranie samo leży,
fałdziste, zmięte, przerzucone przez fotel. Twarz jego była jak
-tchnienie twarzy--smuga, którą nieznany przechodzień zostawił w
+tchnienie twarzy - smuga, którą nieznany przechodzień zostawił w
powietrzu. Trzymał w bladych, emaliowanych błękitnie dłoniach portfel, w
którym coś oglądał. Z mgły twarzy wyłoniło się z trudem wypukłe bielmo
bladego oka, wabiąc mnie figlarnym mruganiem. Czułem doń nieprzepartą
@@ -301,13 +301,13 @@ i zbiegł mię dreszczem niepokoju, falą nagłego zrozumienia. Ale
tymczasem ta mgiełka uśmiechu, która się zarysowała pod miękkim i
pięknym jego wąsem, zawiązek pożądania, który napiął się na jego
skroniach pulsującą żyłą, natężenie trzymające przez chwilę jego rysy w
-skupieniu--upadły z powrotem w nicość i twarz odeszła w nieobecność,
+skupieniu - upadły z powrotem w nicość i twarz odeszła w nieobecność,
zapomniała o sobie, rozwiała się,
NAWIEDZENIE 1 Już wówczas miasto nasze popadało coraz bardziej w
chroniczną szarość zmierzchu, porastało na krawędziach liszajem cienia,
puszystą pleśnią i mchem koloru żelaza. Ledwo rozpowity z brunatnych
-dymów i mgieł poranka--przechylał się dzień od razu w niskie
+dymów i mgieł poranka - przechylał się dzień od razu w niskie
bursztynowe popołudnie, stawał się przez chwilę przezroczysty i złoty
jak ciemne piwo, ażeby potem zejść pod wielokrotnie rozczłonkowane,
fantastyczne sklepienia kolorowych i rozległych nocy. Mieszkaliśmy w
@@ -337,7 +337,7 @@ bokami po podłodze i ścianach; szedł budzić ciężko chrapiących z
twardego jak kamień snu. W świetle pozostawionej przezeń świecy wywijali
się leniwie z brudnej pościeli, wystawiali, siadając na łóżkach, bose i
brzydkie nogi i z skarpetką w ręce oddawali się jeszcze przez chwilę
-rozkoszy ziewania--ziewania przeciągniętego aż do lubieżności, do
+rozkoszy ziewania - ziewania przeciągniętego aż do lubieżności, do
bolesnego skurczu podniebienia, jak przy tęgich wymiotach. W kątach
siedziały nieruchomo wielkie karakony, wyogromnione własnym cieniem,
którym obarczała każdego płonąca świeca i który nie odłączał się od nich
@@ -365,7 +365,7 @@ bezradnie, jakby czegoś szukając. Wówczas bywało, że zbiegał po cichu z
to rodzaj klepsydry wodnej albo wielkiej fioli szklanej, podzielonej na
uncje i napełnionej ciemnym fluidem. Mój ojciec łączył się z tym
instrumentem długą kiszką gumową, jakby krętą, bolesną pępowiną, i tak
-połączony z żałosnym przyrządem--nieruchomiał w skupieniu, a oczy jego
+połączony z żałosnym przyrządem - nieruchomiał w skupieniu, a oczy jego
ciemniały, zaś na twarz przybladłą występował wyraz cierpienia czy
jakiejś występnej rozkoszy. Potem znów przychodziły dni cichej skupionej
pracy, przeplatanej samotnymi monologami. Gdy tak siedział w świetle
@@ -386,7 +386,7 @@ nocy tapety więdły, zwijały się, gubiły liście i kwiaty i przerzedzały
się jesiennie, przepuszczając dalekie świtanie. Wtedy wśród świergotu
tapetowych ptaków, w żółtym zimowym świcie zasypiał na parę godzin
gęstym, czarnym snem. Od dni, od tygodni, gdy zdawał się być pogrążonym
-w zawiłych konto-korrentach--myśl jego zapuszczała się tajnie w
+w zawiłych konto-korrentach - myśl jego zapuszczała się tajnie w
labirynty własnych wnętrzności. Wstrzymywał oddech i nasłuchiwał. I gdy
wzrok jego wracał zbielały i mętny z tamtych głębin, uspokajał go
uśmiechem. Nie wierzył jeszcze i odrzucał jak absurd te uroszczenia, te
@@ -405,7 +405,7 @@ który jeszcze urąga. Nie widziałem nigdy proroków Starego Testamentu,
ale na widok tego męża, którego gniew boży obalił, rozkraczonego szeroko
na ogromnym porcelanowym urynale, zakrytego wichrem ramion, chmurÄ…
rozpaczliwych łamańców, nad którymi wyżej jeszcze unosił się głos jego,
-obcy i twardy--zrozumiałem gniew boży świętych mężów. Był to dialog
+obcy i twardy - zrozumiałem gniew boży świętych mężów. Był to dialog
groźny jak mowa piorunów. ÅamaÅ„ce rak jego rozrywaÅ‚y niebo na sztuki, a
w szczelinach ukazywała się twarz Jehowy, wzdęta gniewem i plująca
przekleństwa. Nie patrząc widziałem go, groźnego Demiurga, jak leżąc na
@@ -491,14 +491,14 @@ pozostało, to trochę cielesnej powłoki i ta garść bezsensownych dziwactw
PTAKI Nadeszły żółte, pełne nudy dni zimowe. Zrudziałą ziemię pokrywał
dziurawy, przetarty, za krótki obrus śniegu. Na wiele dachów nie
starczyło go i stały czarne lub rdzawe, gontowe strzechy i arki kryjące
-w sobie zakopcone przestrzenie strychów--czarne, zwęglone katedry,
-najeżone żebrami krokwi, płatwi i bantów--ciemne płuca wichrów
+w sobie zakopcone przestrzenie strychów - czarne, zwęglone katedry,
+najeżone żebrami krokwi, płatwi i bantów - ciemne płuca wichrów
zimowych. Każdy świt odkrywał nowe kominy i dymniki, wyrosłe w nocy,
wydęte przez wicher nocny, czarne piszczałki organów diabelskich.
Kominiarze nie mogli opędzić się od wron, które na kształt żywych
czarnych liści obsiadały wieczorem gałęzie drzew pod kościołem, odrywały
się znów, trzepocąc, by wreszcie przylgnąć, każda do właściwego miejsca
-na właściwej gałęzi, a o świcie ulatywały wielkimi stadami--tumany
+na właściwej gałęzi, a o świcie ulatywały wielkimi stadami - tumany
sadzy, płatki kopciu, falujące i fantastyczne, plamiąc migotliwym
krakaniem mętnożółte smugi świtu. Dni stwardniały od zimna i nudy, jak
zeszłoroczne bochenki chleba. Napoczynano je tępymi nożami, bez apetytu,
@@ -507,8 +507,8 @@ studiował nigdy niezgłębioną istotę ognia, wyczuwał słony, metaliczny
posmak i wędzony zapach zimowych płomieni, chłodną pieszczotę
salamander, liżących błyszczącą sadzę w gardzieli komina. Z zamiłowaniem
wykonywał w owych dniach wszystkie reparatury w górnych regionach
-pokoju. O każdej porze dnia można go było widzieć, jak--przykucnięty na
-szczycie drabiny--majstrował coś przy suficie, przy kamiszach wysokich
+pokoju. O każdej porze dnia można go było widzieć, jak - przykucnięty na
+szczycie drabiny - majstrował coś przy suficie, przy kamiszach wysokich
okien, przy kulach i łańcuchach lamp wiszących. Zwyczajem malarzy
posługiwał się drabiną jak ogromnymi szczudłami i czuł się dobrze w tej
ptasiej perspektywie, w pobliżu malowanego nieba, arabesek i ptaków
@@ -519,7 +519,7 @@ słuchał jej z roztargnieniem, pełen niepokoju, z drgawkami w nieobecnej
twarzy. I bywało, że przerywał jej nagle zaklinającym gestem ręki, ażeby
pobiec w kąt pokoju, przylgnąć uchem do szpary w podłodze i z
podniesionymi palcami wskazującymi obu rąk, wyrażającymi najwyższą
-ważność badania--nasłuchiwać. Nie rozumieliśmy wówczas jeszcze smutnego
+ważność badania - nasłuchiwać. Nie rozumieliśmy wówczas jeszcze smutnego
tła tych ekstrawagancji, opłakanego kompleksu, który dojrzewał w głębi.
Matka nie miała nań żadnego wpływu, natomiast wielką czcią i uwagą
darzył Adelę. Sprzątanie pokoju było dlań wielką i ważną ceremonią,
@@ -546,11 +546,11 @@ na światło dzienne. Zaczęło się to od wylęgania jaj ptasich. Z wielkim
nakładem trudu i pieniędzy sprowadzał ojciec z Hamburga, z Holandii, z
afrykańskich stacji zoologicznych zapłodnione jaja ptasie, które dawał
do wylęgania ogromnym kurom belgijskim. Był to proceder nader zajmujący
-i dla mnie--to wykluwanie się piskląt, prawdziwych dziwotworów w
+i dla mnie - to wykluwanie się piskląt, prawdziwych dziwotworów w
kształcie i ubarwieniu. Nie podobna było dopatrzyć się w tych monstrach
o ogromnych, fantastycznych dziobach, które natychmiast po urodzeniu
rozdzierały się szeroko, sycząc żarłocznie czeluściami gardła, w tych
-jaszczurach o wątłym, nagim ciele garbusów--przyszłych pawi, bażantów,
+jaszczurach o wątłym, nagim ciele garbusów - przyszłych pawi, bażantów,
głuszców i kondorów. Umieszczony w koszykach, w wacie, smoczy ten pomiot
podnosił na cienkich szyjach ślepe, bielmem zarosle głowy, kwacząc
bezgłośnie z niemych gardzieli. Mój ojciec chodził wzdłuż półek w
@@ -575,13 +575,13 @@ godności w całym zachowaniu, kierujący się żelaznym ceremoniałem swego
wielkiego rodu. Gdy siedział naprzeciw ojca, nieruchomy w swej
monumentalnej pozycji odwiecznych bóstw egipskich, z okiem zawleczonym
białawym bielmem, które zasuwał z boku na źrenice, ażeby zamknąć się
-zupełnie w kontemplacji swej dostojnej samotności--wydawał się ze swym
+zupełnie w kontemplacji swej dostojnej samotności - wydawał się ze swym
kamiennym profilem starszym bratem mego ojca. Ta sama materia ciała,
ścięgien i pomarszczonej twardej skóry, ta sama twarz wyschła i
koścista, te same zrogowaciałe, głębokie oczodoły. Nawet ręce, silne w
węzłach, długie, chude dłonie ojca, z wypukłymi paznokciami, miały swój
analogon w szponach kondora. Nie mogłem się oprzeć wrażeniu, widząc go
-tak uśpionego, że mam przed sobą mumię--wyschłą i dlatego pomniejszoną
+tak uśpionego, że mam przed sobą mumię - wyschłą i dlatego pomniejszoną
mumię mego ojca. Sądzę, że i uwagi matki nie uszło to przedziwne
podobieństwo, chociaż nigdy nie poruszaliśmy tego tematu.
Charakterystyczne jest, że kondor używał wspólnego z moim ojcem naczynia
@@ -594,7 +594,7 @@ wszelkiego rodzaju skrzydlacze z dalekich stron. Nawet długo po
zlikwidowaniu ptasiego gospodarstwa utrzymywała się w świecie ptasim ta
tradycja naszego domu i w okresie wiosennych wędrówek spadały nieraz na
nasz dach całe chmary żurawi, pelikanów, pawi i wszelkiego ptactwa.
-Impreza ta wzięła jednak niebawem--po krótkiej świetności--smutny
+Impreza ta wzięła jednak niebawem - po krótkiej świetności - smutny
obrót. Wkrótce okazała się bowiem konieczna translokacja ojca do dwóch
pokojów na poddaszu, które służyły za rupieciarnie. Stamtąd dochodził
już o wczesnym świcie zmieszany klangor głosów ptasich. Drewniane pudła
@@ -618,7 +618,7 @@ przerażeniu próbował wznieść się w powietrze. Zwolna przerzedzał się
tuman skrzydlaty, aż w końcu na pobojowisku została sama Adela,
wyczerpana, dysząca, oraz mój ojciec z miną zafrasowaną i zawstydzoną,
gotów do przyjęcia każdej kapitulacji. W chwilę później schodził mój
-ojciec ze schodów swojego dominium--człowiek złamany, król-banita,
+ojciec ze schodów swojego dominium - człowiek złamany, król-banita,
który stracił tron i królowanie.
MANEKINY Ta ptasia impreza mego ojca była ostatnim wybuchem kolorowości,
@@ -698,7 +698,7 @@ fizjonomię. Subiekci spożywali go z namaszczeniem, z powagą
kalendarzowej ceremonii. Zapach pieprzu rozchodził się po pokoju. A gdy
wytarli bułką ostatek galarety ze swych talerzy, rozważając w myśli
heraldykę następnych dni tygodnia, i na półmisku zostawały tylko głowy z
-wygotowanymi oczyma--czuliśmy wszyscy, że dzień został wspólnymi siłami
+wygotowanymi oczyma - czuliśmy wszyscy, że dzień został wspólnymi siłami
pokonany i że reszta nie wchodziła już w rachubę. W samej rzeczy z
resztą tą, wydaną na jej łaskę, Adela nie robiła sobie długich
ceregieli. Wśród brzęku garnków i chlustów zimnej wody likwidowała z
@@ -732,7 +732,7 @@ lekkomyślnych i płochych, którymi zasypać mogły cale miasto, jak
kolorową fantastyczną śnieżycą. Nagle było im gorąco i otwierały okno,
ażeby w niecierpliwości swej samotni, w głodzie obcych twarzy,
przynajmniej bezimienną twarz zobaczyć, do okna przyciśniętą. Wachlowały
-rozpalone swe policzki przed wzbierajÄ…cÄ… firankami nocÄ… zimowÄ…--
+rozpalone swe policzki przed wzbierajÄ…cÄ… firankami nocÄ… zimowÄ… -
odsłaniały płonące dekolty, pełne nienawiści do siebie i rywalizacji,
gotowe stanąć do walki o tego pierrota, którego by ciemny powiew nocy
przywiał na okno. Ach! jak mało wymagały one od rzeczywistości. Miały
@@ -753,26 +753,26 @@ drzwi podniósł firanki u okna, panienki dawały się oglądać, kręcąc się
biodrach, polśniewając emalią oczu, lakiem skrzypiących pantofelków,
sprzączkami podwiązek pod wzdętą od wiatru sukienką; szmatki jęły umykać
po podłodze, jak szczury, ku uchylonym drzwiom ciemnego pokoju, a ojciec
-mój przyglądał się uważnie prychającym osóbkom, szepcąc półgłosem:--
+mój przyglądał się uważnie prychającym osóbkom, szepcąc półgłosem: -
Genus avium... jeśli się nie mylę, scansores albo pistacci... w
najwyższym stopniu godne uwagi. Przypadkowe to spotkanie stało się
początkiem całej serii seansów, podczas których ojciec mój zdołał rychło
oczarować obie panienki urokiem swej przedziwnej osobistości. Odpłacając
się za pełną galanterii i dowcipu konwersację, którą zapełniał im pustkę
-wieczorów--dziewczęta pozwalały zapalonemu badaczowi studiować
+wieczorów - dziewczęta pozwalały zapalonemu badaczowi studiować
strukturę swych szczupłych i tandetnych ciałek. Działo się to w toku
konwersacji, z powagą i wytwornością, która najryzykowniejszym punktom
tych badań odbierała dwuznaczny ich pozór. Odsuwając pończoszkę z kolana
Pauliny i studiując rozmiłowanymi oczyma zwięzłą i szlachetną
-konstrukcję przegubu, ojciec mój mówił:--Jakże pełna uroku i jak
+konstrukcję przegubu, ojciec mój mówił: - Jakże pełna uroku i jak
szczęśliwa jest forma bytu, którą panie obrały. Jakże piękna i prosta
jest teza, którą dano wam swym życiem ujawnić. Lecz za to z jakim
mistrzostwem, z jakÄ… finezjÄ… wywiÄ…zujÄ… siÄ™ panie z tego zadania. Gdybym
odrzucając respekt przed Stwórcą, chciał się zabawić w krytykę
-stworzenia, wołałbym:--mniej treści, więcej formy! Ach, jakby ulżył
+stworzenia, wołałbym: - mniej treści, więcej formy! Ach, jakby ulżył
światu ten ubytek treści. Więcej skromności w zamierzeniach, więcej
-wstrzemięźliwości w pretensjach--panowie demiurdzy--a świat byłby
-doskonalszy!--wołał mój ojciec akurat w momencie, gdy dłoń jego
+wstrzemięźliwości w pretensjach - panowie demiurdzy - a świat byłby
+doskonalszy! - wołał mój ojciec akurat w momencie, gdy dłoń jego
wyłuskiwała białą łydkę Pauliny z uwięzi pończoszki. W tej chwili Adela
stanęła w otwartych drzwiach jadalni, niosąc tacę z podwieczorkiem. Było
to pierwsze spotkanie dwu tych wrogich potęg od czasu wielkiej rozprawy.
@@ -802,8 +802,8 @@ należytą ostrożnością, i unikając zgorszenia, tę nader kacerską
doktrynę, która opętała wówczas na długie miesiące mego ojca i opanowała
wszystkie jego poczynania.
-TRAKTAT O MANEKINACH ALBO WTÓRA KSIĘGA RODZAJU Demiurgos--mówił mój
-ojciec--nie posiadł monopolu na tworzenie--tworzenie jest przywilejem
+TRAKTAT O MANEKINACH ALBO WTÓRA KSIĘGA RODZAJU Demiurgos - mówił mój
+ojciec - nie posiadł monopolu na tworzenie - tworzenie jest przywilejem
wszystkich duchów. Materii dana jest nieskończona płodność,
niewyczerpana moc życiowa i zarazem uwodna siła pokusy, która nas nęci
do formowania. W głębi materii kształtują się niewyraźne uśmiechy,
@@ -813,7 +813,7 @@ dreszczami. Czekając na ożywcze tchnienie ducha, przelewa się ona w
sobie bez końca, kusi tysiącem słodkich okrąglizn i miękkości, które z
siebie w ślepych rojeniach wymajacza. Pozbawiona własnej inicjatywy,
lubieżnie podatna, po kobiecemu plastyczna, uległa wobec wszystkich
-impulsów--stanowi ona teren wyjęty spod prawa, otwarty dla wszelkiego
+impulsów - stanowi ona teren wyjęty spod prawa, otwarty dla wszelkiego
rodzaju szarlatanerii i dyletantyzmów, domenę wszelkich nadużyć i
wÄ…tpliwych manipulacji demiurgicznych. Materia jest najbierniejszÄ… i
najbezbronniejszą istotą w kosmosie. Każdy może ją ugniatać, formować,
@@ -824,8 +824,8 @@ Jest ono nieraz koniecznym gwałtem wobec opornych i skostniałych form
bytu, które przestały być zajmujące. W interesie ciekawego i ważnego
eksperymentu może ono nawet stanowić zasługę. Tu jest punkt wyjścia dla
nowej apologii sadyzmu. Mój ojciec był niewyczerpany w gloryfikacji tego
-przedziwnego elementu, jakim była materia.--Nie ma materii martwej--
-nauczał--martwota jest jedynie pozorem, za którym ukrywają się nieznane
+przedziwnego elementu, jakim była materia. - Nie ma materii martwej -
+nauczał - martwota jest jedynie pozorem, za którym ukrywają się nieznane
formy życia. Skala tych form jest nieskończona, a odcienie i niuanse
niewyczerpane. Demiurgos był w posiadaniu ważnych i ciekawych recept
twórczych. Dzięki nim stworzył on mnogość rodzajów, odnawiających się
@@ -848,20 +848,20 @@ ironicznym palcem, póki nie dołaskotał się błysku zrozumienia i śmiechu,
kapitulować. Dziewczęta siedziały nieruchomo, lampa kopciła, sukno pod
igłą maszyny dawno się zsunęło, a maszyna stukotała pusto, stębnując
czarne, bezgwiezdne sukno, odwijajÄ…ce siÄ™ z postawu nocy zimowej za
-oknem.--Zbyt długo żyliśmy pod terrorem niedościgłej doskonałości
-Demiurga--mówił mój ojciec--zbyt długo doskonałość jego tworu
+oknem. - Zbyt długo żyliśmy pod terrorem niedościgłej doskonałości
+Demiurga - mówił mój ojciec - zbyt długo doskonałość jego tworu
paraliżowała naszą własną twórczość. Nie chcemy z nim konkurować. Nie
mamy ambicji mu dorównać. Chcemy być twórcami we własnej, niższej
sferze, pragniemy dla siebie twórczości, pragniemy rozkoszy twórczej,
-pragniemy--jednym słowem--demiurgii.--Nie wiem, w czyim imieniu
+pragniemy - jednym słowem - demiurgii. - Nie wiem, w czyim imieniu
proklamował mój ojciec te postulaty, jaka zbiorowość, jaka korporacja,
sekta czy zakon, nadawała swą solidarnością patos jego słowom. Co do
nas, to byliśmy dalecy od wszelkich zakusów demłurgicznych. Lecz ojciec
mój rozwinął tymczasem program tej wtórej demiurgii, obraz tej drugiej
generacji stworzeń, która stanąć miała w otwartej opozycji do panującej
-epoki.--Nie zależy nam--mówił on--na tworach o długim oddechu, na
+epoki. - Nie zależy nam - mówił on - na tworach o długim oddechu, na
istotach na daleką metę. Nasze kreatury nie będą bohaterami romansów w
-wielu tomach. Ich role będą krótkie, lapidarne, ich charaktery--bez
+wielu tomach. Ich role będą krótkie, lapidarne, ich charaktery - bez
dalszych planów. Często dla jednego gestu, dla jednego słowa podejmiemy
się trudu powołania ich do życia na tę jedną chwilę. Przyznajemy
otwarcie: nie będziemy kładli nacisku na trwałość ani solidność
@@ -876,9 +876,9 @@ powołamy do życia innego człowieka. Taki jest nasz smak, to będzie świat
według naszego gustu. Demiurgos kochał się w wytrawnych, doskonałych i
skomplikowanych materiałach, my dajemy pierwszeństwo tandecie. Po prostu
porywa nas, zachwyca taniość, lichota, tandetność materiału. Czy
-rozumiecie--pytał mój ojciec--głęboki sens tej słabości, tej pasji do
+rozumiecie - pytał mój ojciec - głęboki sens tej słabości, tej pasji do
pstrej bibułki, do papier mâ ché , do lakowej farby, do kłaków i
-trociny? To jest--mówił z bolesnym uśmiechem--nasza miłość do materii
+trociny? To jest - mówił z bolesnym uśmiechem - nasza miłość do materii
jako takiej, do jej puszystości i porowatości, do jej jedynej,
mistycznej konsystencji. Demiurgos, ten wielki mistrz i artysta, czyni
ją niewidzialną, każe jej zniknąć pod grą życia. My, przeciwnie, kochamy
@@ -887,8 +887,8 @@ gestem, pod każdym ruchem widzieć jej ociężały wysiłek, jej bezwład, jej
słodką niedźwiedziowatość. Dziewczęta siedziały nieruchomo z szklanymi
oczyma. Twarze ich były wyciągnięte i zgłupiałe zasłuchaniem, policzki
podmalowane wypiekami, trudno było w tej chwili ocenić, czy należą do
-pierwszej, czy do drugiej generacji stworzenia.--Słowem--konkludował
-mój ojciec--chcemy stworzyć po raz wtóry człowieka, na obraz i
+pierwszej, czy do drugiej generacji stworzenia. - Słowem - konkludował
+mój ojciec - chcemy stworzyć po raz wtóry człowieka, na obraz i
podobieństwo manekinu. Tu musimy dla wierności sprawozdawczej opisać
pewien drobny i błahy incydent, który zaszedł w tym punkcie prelekcji i
do którego nie przywiązujemy żadnej wagi. Incydent ten, całkowicie
@@ -907,11 +907,11 @@ po obu bokach. Wszystkie trzy patrzyły rozszerzonymi oczami na ojca. Mój
ojciec chrząknął, zamilkł, pochylił się i stał się nagle bardzo
czerwony. W jednej chwili lineatura jego twarzy, dopiero co tak
rozwichrzona i pełna wibracji, zamknęła się na spokorniałych rysach. On
-- herezjarcha natchniony, ledwo wypuszczony z wichru uniesienia--złożył
+- herezjarcha natchniony, ledwo wypuszczony z wichru uniesienia - złożył
się nagle w sobie, zapadł i zwinął. A może wymieniono go na innego. Ten
inny siedział sztywny, bardzo czerwony, ze spuszczonymi oczyma. Panna
Polda podeszła i pochyliła się nad nim. Klepiąc go lekko po plecach,
-mówiła tonem łagodnej zachęty:--Jakub będzie rozsądny, Jakub posłucha,
+mówiła tonem łagodnej zachęty: - Jakub będzie rozsądny, Jakub posłucha,
Jakub nie będzie uparty. No, proszę... Jakub, Jakub... Wypięty
pantofelek Adeli drżał lekko i błyszczał jak języczek węża. Mój ojciec
podniósł się powoli ze spuszczonymi oczyma, postąpił krok naprzód, jak
@@ -924,8 +924,8 @@ odnowioną swadą ciemny i zawiły swój temat. Lineatura jego zmarszczek
rozwijała się i zawijała z wyrafinowaną chytrością. W każdej spirali
ukryty był pocisk ironii. Ale czasami inspiracja rozszerzała kręgi jego
zmarszczek, które rosły jakąś ogromną wirującą grozą, uchodząc w
-milczących wolutach w głąb nocy zimowej.--Figury panopticum, moje panie
-- zaczął on--kalwaryjskie parodie manekinów, ale nawet w tej postaci
+milczących wolutach w głąb nocy zimowej. - Figury panopticum, moje panie
+- zaczął on - kalwaryjskie parodie manekinów, ale nawet w tej postaci
strzeżcie się lekko je traktować. Materia nie zna żartów. Jest ona
zawsze pełna tragicznej powagi. Kto ośmiela się myśleć, że można igrać z
materią, że kształtować ją można dla żartu, że żart nie wrasta w nią,
@@ -971,9 +971,9 @@ zażądała bardzo dobitnie... Panienki siedziały sztywno, ze spuszczonymi
oczyma, w dziwnej drętwości...
TRAKTAT O MANEKINACH Dokończenie Któregoś z następnych wieczorów ojciec
-mój w te słowa ciągnął dalej swą prelekcję:--Nie o tych
+mój w te słowa ciągnął dalej swą prelekcję: - Nie o tych
nieporozumieniach ucieleśnionych, nie o tych smutnych parodiach, moje
-panie, owocach prostackiej i wulgarnej niepowściągliwości--chciałem
+panie, owocach prostackiej i wulgarnej niepowściągliwości - chciałem
mówić zapowiadając mą rzecz o manekinach. Miałem na myśli coś innego. Tu
ojciec mój zaczął budować przed naszymi oczyma obraz tej wymarzonej
przez niego „generaiio aequivocaâ€, jakiegoÅ› pokolenia istot na wpół
@@ -984,8 +984,8 @@ mylił. Były to w istocie istoty amorfne, bez wewnętrznej struktury,
płody imitatywnej tendencji materii, która obdarzona pamięcią, powtarza
z przyzwyczajenia raz przyjęte kształty. Skala morfologii, której
podlega materia, jest w ogóle ograniczona i pewien zasób form powtarza
-się wciąż na różnych kondygnacjach bytu. Istoty te--ruchliwe, wrażliwe
-na bodźce, a jednak dalekie od prawdziwego życia--można było otrzymać
+się wciąż na różnych kondygnacjach bytu. Istoty te - ruchliwe, wrażliwe
+na bodźce, a jednak dalekie od prawdziwego życia - można było otrzymać
zawieszajÄ…c pewne skomplikowane koloidy w roztworach soli kuchennej.
Koloidy te po kilku dniach formowały się, organizowały w pewne
zagęszczenia substancji przypominającej niższe formy fauny. U istot tak
@@ -995,8 +995,8 @@ białkowych ani w ogóle związków węgla. Wszelako prymitywne te formy były
niczym w porównaniu z bogactwem kształtów i wspaniałości pseudofauny i
flory, która pojawia się niekiedy w pewnych ściśle określonych
środowiskach. Środowiskami tymi są stare mieszkania, przesycone
-emanacjami wielu żywotów i zdarzeń--zużyte atmosfery, bogate w
-specyficzne ingrediencje marzeń ludzkich--rumowiska, obfitujące w humus
+emanacjami wielu żywotów i zdarzeń - zużyte atmosfery, bogate w
+specyficzne ingrediencje marzeń ludzkich - rumowiska, obfitujące w humus
wspomnień, tęsknot, jałowej nudy. Na takiej glebie owa pseudowegetacja
kiełkowała szybko i powierzchownie, pasożytowała obficie i efemerycznie,
pędziła krótkotrwałe generacje, które rozkwitały raptownie i świetnie,
@@ -1006,15 +1006,15 @@ kadencjach rytmów; nic dziwnego, że schodzą na manowce dalekich,
ryzykownych rojeń. Rdzeń mebli, ich substancja musi już być rozluźniona,
zdegenerowana i podległa występnym pokusom: wtedy na tej chorej,
zmęczonej i zdziczałej glebie wykwita, jak piękna wysypka, nalot
-fantastyczny, kolorowa, bujająca pleśń.--Wiedzą panie--mówił ojciec
-mój--że w starych mieszkaniach bywają pokoje, o których się zapomina.
+fantastyczny, kolorowa, bujająca pleśń. - Wiedzą panie - mówił ojciec
+mój - że w starych mieszkaniach bywają pokoje, o których się zapomina.
Nie odwiedzane miesiącami, więdną w opuszczeniu między starymi murami i
zdarza się, że zasklepiają się w sobie, zarastają cegłą i, raz na zawsze
stracone dla naszej pamięci, powoli tracą też swą egzystencję. Drzwi,
prowadzące do nich z jakiegoś podestu tylnych schodów, mogą być tak
dhigo przeoczane przez domowników, aż wrastają, wchodzą w ścianę, która
-zaciera ich ślad w fantastycznym rysunku pęknięć i rys.--Wszedłem raz--
-mówił ojciec mój--wczesnym rankiem na schyłku zimy, po wielu miesiącach
+zaciera ich ślad w fantastycznym rysunku pęknięć i rys. - Wszedłem raz -
+mówił ojciec mój - wczesnym rankiem na schyłku zimy, po wielu miesiącach
nieobecności, do takiego na wpół zapomnianego traktu i zdumiony byłem
wyglądem tych pokojów. Z wszystkich szpar w podłodze, z wszystkich
gzymsów i framug wystrzelały cienkie pędy i napełniały szare powietrze
@@ -1026,14 +1026,14 @@ fontanny koronkowego listowia, bijące aż pod malowane niebo sufitu
rozpylonym chlorofilem. W przyspieszonym procesie kwitnienia kiełkowały
w tym listowiu ogromne, białe i różowe kwiaty, pączkowały w oczach,
bujały od środka różowym miąższem i przelewały się przez brzegi, gubiąc
-płatki i rozpadając się w prędkim przekwitaniu.--Byłem szczęśliwy--
-mówił mój ojciec--z tego niespodzianego rozkwitu, który napełnił
+płatki i rozpadając się w prędkim przekwitaniu. - Byłem szczęśliwy -
+mówił mój ojciec - z tego niespodzianego rozkwitu, który napełnił
powietrze migotliwym szelestem, łagodnym szumem, przesypującym się jak
kolorowe confetti przez cienkie rózgi gałązek. Widziałem, jak z drgania
powietrza, z fermentacji zbyt bogatej aury wydziela siÄ™ i materializuje
to pospieszne kwitnienie, przelewanie siÄ™ i rozpadanie fantastycznych
oleandrów, które napełniły pokój rzadką, leniwą śnieżycą wielkich,
-różowych kiści kwietnych.--Nim zapadł wieczór--kończył ojciec--nie
+różowych kiści kwietnych. - Nim zapadł wieczór - kończył ojciec - nie
było już śladu tego świetnego rozkwitu. Cała złudna ta fatamorgana była
tylko mistyfikacją, wypadkiem dziwnej symulacji materii, która podszywa
się pod pozór życia. Ojciec mój był dnia tego dziwnie ożywiony,
@@ -1043,8 +1043,8 @@ odcieni, jakie przybierała wielokształtna materia. Fascynowały go formy
graniczne, wątpliwe i problematyczne, jak ektoplazma somnambulików,
pseudomateria, emanacja kataleptyczna mózgu, która w pewnych wypadkach
rozrastała się z ust uśpionego na cały stół, napełniała cały pokój, jako
-bujająca, rzadka tkanka, astralne ciasto, na pograniczu ciała i ducha.--
-Kto wie--mówił--ile jest cierpiących, okaleczonych, fragmentarycznych
+bujająca, rzadka tkanka, astralne ciasto, na pograniczu ciała i ducha. -
+Kto wie - mówił - ile jest cierpiących, okaleczonych, fragmentarycznych
postaci życia, jak sztucznie sklecone, gwoździami na gwałt zbite życie
szaf i stołów, ukrzyżowanego drzewa, cichych męczenników okrutnej
pomysłowości ludzkiej. Straszliwe transplantacje obcych i nienawidzących
@@ -1056,9 +1056,9 @@ gdy to mówił, rozeszła się zamyśloną lineaturą zmarszczek, stała się
podobna do sęków i słojów starej deski, z której zheblowano wszystkie
wspomnienia. Przez chwilę myśleliśmy, że ojciec popadnie w stan
drętwoty, który nawiedzał go czasem, ale ocknął się nagle, opamiętał i
-tak ciągnął dalej:--Dawne, mistyczne plemiona balsamowały swych
+tak ciągnął dalej: - Dawne, mistyczne plemiona balsamowały swych
umarłych. W ściany ich mieszkań były wprawione, wmurowane ciała, twarze:
-w salonie stał ojciec--wypchany, wygarbowana żona-nieboszczka była
+w salonie stał ojciec - wypchany, wygarbowana żona-nieboszczka była
dywanem pod stołem. Znałem pewnego kapitana, który miał w swej kajucie
lampę-meluzynę, zrobioną przez malajskich balsamistów z jego
zamordowanej kochanki. Na głowie miała ogromne rogi jelenie. W ciszy
@@ -1068,8 +1068,8 @@ pękająca od cichego szeptu. Głowonogi, żółwie i ogromne kraby,
zawieszone na belkach sufitu jako kandelabry i pająki, przebierały w tej
ciszy bez końca nogami, szły i szły na miejscu... Twarz mojego ojca
przybrała naraz wyraz troski i smutku, gdy myśli jego na drogach nie
-wiedzieć jakich asocjacji przeszły do nowych przykładów:--Czy mam
-przemilczeć--mówił przyciszonym głosem--że brat mój na skutek długiej
+wiedzieć jakich asocjacji przeszły do nowych przykładów: - Czy mam
+przemilczeć - mówił przyciszonym głosem - że brat mój na skutek długiej
i nieuleczalnej choroby zamienił się stopniowo w zwój kiszek gumowych,
że biedna moja kuzynka dniem i nocą nosiła go w poduszkach, nucąc
nieszczęśliwemu stworzeniu nieskończone kołysanki nocy zimowych? Czy
@@ -1077,8 +1077,8 @@ może być coś smutniejszego niż człowiek zamieniony w kiszkę hegarową? Co
za rozczarowanie dla rodziców, co za dezorientacja dla ich uczuć, co za
rozwianie wszystkich nadziei, wiązanych z obiecującym młodzieńcem! A
jednak wierna miłość biednej kuzynki towarzyszyła mu i w tej przemianie.
-- Ach! nie mogę już dłużej, nie mogę tego słuchać!--jęknęła Polda
-przechylając się na krześle.--Ucisz go, Adelo... Dziewczęta wstały,
+- Ach! nie mogę już dłużej, nie mogę tego słuchać! - jęknęła Polda
+przechylając się na krześle. - Ucisz go, Adelo... Dziewczęta wstały,
Adela podeszła do ojca i wyciągniętym palcem uczyniła ruch zaznaczający
łaskotanie. Ojciec stropił się, zamilkł i zaczął, pełen przerażenia,
cofać się tyłem przed kiwającym się palcem Adeli. Ta szła za nim ciągle,
@@ -1095,9 +1095,9 @@ pierwszego wejrzenia zdobyła sobie ta kruszynka życia cały zachwyt, cały
entuzjazm chłopięcej duszy. Z jakiego nieba spadł tak niespodzianie ten
ulubieniec bogów, milszy sercu od najpiękniejszych zabawek? Że też
stare, zgoła nieinteresujące pomywaczki wpadają niekiedy na tak świetne
-pomysły i przynoszą z przedmieścia--o całkiem wczesnej,
-transcendentalnej porannej godzinie--takiego oto pieska do naszej
-kuchni! Ach! było się jeszcze--niestety--nieobecnym, nieurodzonym z
+pomysły i przynoszą z przedmieścia - o całkiem wczesnej,
+transcendentalnej porannej godzinie - takiego oto pieska do naszej
+kuchni! Ach! było się jeszcze - niestety - nieobecnym, nieurodzonym z
ciemnego łona snu, a już to szczęście ziściło się, już czekało na nas,
niedołężnie leżące na chłodnej podłodze kuchni, nie docenione przez
Adelę i domowników. Dlaczego nie obudzono mnie wcześniej! Talerzyk mleka
@@ -1131,16 +1131,16 @@ mordkę z kroplą mleka na brodzie i wycofać się niedołężnie z kąpieli
mlecznej. Chód jego był niezgrabnym toczeniem się, bokiem na ukos w
niezdecydowanym kierunku, po linii trochÄ™ pijanej i chwiejnej. DominantÄ…
jego nastroju była jakaś nieokreślona i zasadnicza żałość, sieroctwo i
-bezradność--niezdolność do zapełnienia czymś pustki życia pomiędzy
+bezradność - niezdolność do zapełnienia czymś pustki życia pomiędzy
sensacjami posiłków. Objawiało się to bezplanowością i niekonsekwencją
ruchów, irracjonalnymi napadami nostalgii z żałosnym skomleniem i
niemożnością znalezienia sobie miejsca. Nawet jeszcze w głębi snu, w
którym potrzebę oparcia się i przytulenia zaspokajać musiał używając do
-tego własnej swej osoby, zwiniętej w kłębek drżący--towarzyszyło mu
-poczucie osamotnienia i bezdomności. Ach, życie--młode i wątłe życie,
+tego własnej swej osoby, zwiniętej w kłębek drżący - towarzyszyło mu
+poczucie osamotnienia i bezdomności. Ach, życie - młode i wątłe życie,
wypuszczone z zaufanej ciemności, z przytulnego ciepła łona
macierzystego w wielki i obcy, świetlany świat, jakże kurczy się ono i
-cofa, jak wzdraga się zaakceptować tę imprezę, którą mu proponują--
+cofa, jak wzdraga się zaakceptować tę imprezę, którą mu proponują -
pełne awersji i zniechęcenia! Lecz zwolna mały Nemrod (otrzymał był to
dumne i wojownicze imię) zaczyna smakować w życiu. Wyłączne opanowanie
obrazem macierzystej prajedni ustępuje urokowi wielości. Świat zaczyna
@@ -1149,23 +1149,23 @@ czworobok porannego słońca na podłodze, na którym tak dobrze jest
położyć się, ruchy własnych członków, własne łapki, ogonek, figlarnie
wyzywający do zabawy z samym sobą, pieszczoty ręki ludzkiej, pod którymi
zwolna dojrzewa pewna swawolność, wesołość rozpierająca ciało i rodząca
-potrzebę zgoła nowych, gwałtownych i ryzykownych ruchów--wszystko to
+potrzebę zgoła nowych, gwałtownych i ryzykownych ruchów - wszystko to
przekupuje, przekonywa i zachęca do przyjęcia, do pogodzenia się z
eksperymentem życia. I jeszcze jedno. Nemrod zaczyna rozumieć, że to, co
mu się tu podsuwa, mimo pozorów nowości jest w gruncie rzeczy czymś, co
-już było--było wiele razy--nieskończenie wiele razy. Jego ciało
+już było - było wiele razy - nieskończenie wiele razy. Jego ciało
poznaje sytuacje, wrażenia i przedmioty. W gruncie rzeczy to wszystko
nie dziwi go zbytnio. W obliczu każdej nowej sytuacji daje nura w swoją
-pamięć, w głęboką pamięć ciała, i szuka omackiem, gorączkowo--i bywa,
+pamięć, w głęboką pamięć ciała, i szuka omackiem, gorączkowo - i bywa,
że znajduje w sobie odpowiednią reakcję już gotową: mądrość pokoleń,
złożoną w jego plazmie, w jego nerwach. Znajduje jakieś czyny, decyzje,
o których sam nie wiedział, że już w nim dojrzały, że czekały na to, by
wyskoczyć. Sceneria jego młodego życia, kuchnia z wonnymi cebrami, ze
ścierkami o skomplikowanej i intrygującej woni, z kłapaniem pantofli
-Adeli, z jej hałaśliwym krzątaniem się--nie straszy go więcej. Przywykł
+Adeli, z jej hałaśliwym krzątaniem się - nie straszy go więcej. Przywykł
uważać ją za swoją domenę, zadomowił się w niej i począł rozwijać w
stosunku do niej niejasne poczucie przynależności, ojczyzny. Chyba że
-niespodzianie spadał nań kataklizm w postaci szorowania podłogi--
+niespodzianie spadał nań kataklizm w postaci szorowania podłogi -
obalenie praw natury, chlusty ciepłego ługu, podmywające wszystkie
meble, i groźny szurgot szczotek Adeli. Ale niebezpieczeństwo mija,
szczotka uspokojona i nieruchoma leży cicho w kącie, schnąca podłoga
@@ -1191,13 +1191,13 @@ odwiecznym karakonim rytuałem. Wszelako uczucia nienawiści nie mają
jeszcze trwałości i mocy w duszy pieska. Nowoobudzona radość życia
przeistacza każde uczucie w wesołość. Nemrod szczeka jeszcze, lecz sens
tego szczekania zmienił się niepostrzeżenie, stało się ono swoją własną
-parodią--pragnąc w gruncie rzeczy wysłowić niewymowną udatność tej
+parodią - pragnąc w gruncie rzeczy wysłowić niewymowną udatność tej
świetnej imprezy życia, pełnej pikanterii, niespodzianych dreszczyków i
point.
PAN W kącie między tylnymi ścianami szop i przybudówek był zaułek
podwórza, najdalsza, ostatnia odnoga, zamknięta między komorę, wychodek
-i tylną ścianę kurnika--głucha zatoka, poza którą nie było już wyjścia.
+i tylną ścianę kurnika - głucha zatoka, poza którą nie było już wyjścia.
Był to najdalszy przylądek, Gibraltar tego podwórza, bijący rozpaczliwie
głową w ślepy parkan z poziomych desek, zamykającą i ostateczną ścianę
tego świata. Spod jego omszonych dyli wyciekała strużka czarnej,
@@ -1241,7 +1241,7 @@ chwastem wszelkim, aż w samym końcu między ścianami, w szerokiej
prostokątnej zatoce tracił wszelką miarę i wpadał w szał. Tam to nie był
już sad, tylko paroksyzm szaleństwa, wybuch wściekłości, cyniczny
bezwstyd i rozpusta. Tam, rozbestwione, dajÄ…c upust swej pasji,
-panoszyły się puste, zdziczałe kapusty łopuchów--ogromne wiedźmy,
+panoszyły się puste, zdziczałe kapusty łopuchów - ogromne wiedźmy,
rozdziewające się w biały dzień ze swych szerokich spódnic, zrzucając je
z siebie, spódnica za spódnicą, aż ich wzdęte, szelestne, dziurawe
łachmany oszalałymi płatami grzebały pod sobą kłótliwe to plemię
@@ -1258,13 +1258,13 @@ w obłęd. O tej godzinie opanowywał mnie szał łowienia motyli, pasja
ścigania tych migocących plamek, tych błędnych, białych płatków,
trzęsących się w rozognionym powietrzu niedołężnym gzygzakiem. I
zdarzyło się wówczas, że któraś z tych jaskrawych plamek rozpadła się w
-locie na dwie, potem na trzy--i ten drgający, oślepiająco biały
+locie na dwie, potem na trzy - i ten drgający, oślepiająco biały
trójpunkt wiódł mnie, jak błędny ognik, przez szał bodiaków, palących
się w słońcu. Dopiero na granicy łopuchów zatrzymałem się, nie śmiejąc
się pogrążyć w to głuche zapadlisko. Wtedy nagle ujrzałem go. Zanurzony
po pachy w łopuchach, kucał przede mną. Widziałem jego grube bary w
brudnej koszuli i niechlujny strzęp surduta. Przyczajony jak do skoku,
-siedział tak--z barami jakby wielkim ciężarem zgarbionymi. Ciało jego
+siedział tak - z barami jakby wielkim ciężarem zgarbionymi. Ciało jego
dyszało z natężenia, a z miedzianej, błyszczącej w słońcu twarzy lał się
pot. Nieruchomy, zdawał się ciężko pracować, mocować się bez ruchu z
jakimś ogromnym brzemieniem. Stałem, przygwożdżony jego wzrokiem, który
@@ -1283,7 +1283,7 @@ wybaczał się coraz bardziej, aż wyłamał się ryczącym, charczącym kaszlem
śmiechu. Do głębi wstrząśnięty, widziałem, jak hucząc śmiechem z
potężnych piersi, dźwignął się powoli z kucek i zgarbiony jak goryl, z
rękoma w opadających łachmanach spodni, uciekał, człapiąc przez łopocące
-blachy łopuchów, wielkimi skokami--Pan bez fletu, cofający się w
+blachy łopuchów, wielkimi skokami - Pan bez fletu, cofający się w
popłochu do swych ojczystych kniei.
PAN KAROL Po południu w sobotę mój wuj, Karol, wdowiec słomiany,
@@ -1305,17 +1305,17 @@ się o szarym świcie zdyszany, oblany potem, wyrzucony na brzeg tego
stosu pościeli, którego zmóc nie mógł w ciężkich zapasach nocnych. Tak
na wpół wyrzucony z toni snu, wisiał przez chwilę nieprzytomny na
krawędzi nocy, chwytając piersiami powietrze, a pościel rosła dokoła
-niego, puchła i nakisała--i zarastała go znowu zwałem ciężkiego,
+niego, puchła i nakisała - i zarastała go znowu zwałem ciężkiego,
białawego ciasta. Spał tak do późnego przedpołudnia, podczas gdy
poduszki układały się w wielką, białą, płaską równinę, po której
wędrował uspokojony sen jego. Tymi białymi gościńcami powracał powoli do
-siebie, do dnia, do jawy--i wreszcie otwierał oczy, jak śpiący pasażer,
+siebie, do dnia, do jawy - i wreszcie otwierał oczy, jak śpiący pasażer,
gdy pociąg zatrzymuje się na stacji. W pokoju panował odstały półmrok z
osadem wielu dni samotności i ciszy. Tylko okno kipiało od rannego
rojowiska much i story płonęły jaskrawo. Pan Karol wyziewał ze swego
ciała, z głębi jam cielesnych, resztki dnia wczorajszego. To ziewanie
chwytało go tak konwulsyjnie, jak gdyby chciało go odwrócić na nice. Tak
-wyrzucał z siebie ten piasek, te ciężary--nie strawione restancje dnia
+wyrzucał z siebie ten piasek, te ciężary - nie strawione restancje dnia
wczorajszego. Ulżywszy sobie w ten sposób, i swobodniejszy, wciągał do
notesu wydatki, kalkulował, obliczał i marzył. Potem leżał długo
nieruchomy, z szklanymi oczyma, które były koloru wody, wypukłe i
@@ -1346,7 +1346,7 @@ otumanieni z tych zatraconych dali powracał znów do siebie i do chwili;
widział swe stopy na dywanie, tłuste i delikatne jak u kobiety, i powoli
wyjmował złote spinki z mankietów dziennej koszuli. Potem szedł do
kuchni i znajdował tam w cienistym kącie wiaderko z wodą, krążek
-cichego, czujnego zwierciadła, które nań tam czekało--jedyna żywa i
+cichego, czujnego zwierciadła, które nań tam czekało - jedyna żywa i
wiedząca istota w tym pustym mieszkaniu. Nalewał do miednicy wody i
kosztował skórą jej młodej i odstałej, słodkawej mokrości. Długo i
starannie robił toaletę, nie spiesząc się i włączając pauzy między
@@ -1362,19 +1362,19 @@ toaletę wśród tych mebli, które tolerowały go w milczeniu, z nieobecną
miną, i wreszcie był gotów, to stojąc na odejściu z kapeluszem w ręku,
czuł się zażenowany, że i w ostatniej chwili nie mógł znaleźć słowa,
które by rozwiązało to wrogie milczenie, i odchodził ku drzwiom
-zrezygnowany, zwolna, ze spuszczoną głową--gdy w przeciwną stronę
-oddalał się tymczasem bez pośpiechu--w głąb zwierciadła--ktoś
-odwrócony na zawsze plecami--przez pustą amfiladę pokojów, które nie
+zrezygnowany, zwolna, ze spuszczoną głową - gdy w przeciwną stronę
+oddalał się tymczasem bez pośpiechu - w głąb zwierciadła - ktoś
+odwrócony na zawsze plecami - przez pustą amfiladę pokojów, które nie
istniały.
SKLEPY CYNAMONOWE W okresie najkrótszych, sennych dni zimowych, ujętych
z obu stron, od poranku i od wieczora, w futrzane krawędzie zmierzchów,
gdy miasto rozgałęziało się coraz głębiej w labirynty zimowych nocy, z
-trudem przywoływane przez krótki świt do opamiętania, do powrotu--
+trudem przywoływane przez krótki świt do opamiętania, do powrotu -
ojciec mój był już zatracony, zaprzedany, zaprzysiężony tamtej sferze.
Twarz jego i głowa zarastały wówczas bujnie i dziko siwym włosem,
sterczącym nieregularnie wiechciami, szczecinami, długimi pędzlami,
-strzelającymi z brodawek, z brwi, z dziurek od nosa--co nadawało jego
+strzelającymi z brodawek, z brwi, z dziurek od nosa - co nadawało jego
fizjonomii wygląd starego, nastroszonego lisa. Węch jego i słuch
zaostrzał się niepomiernie i znać było po grze jego milczącej i napiętej
twarzy, że za pośrednictwem tych zmysłów pozostaje on w ciągłym
@@ -1470,7 +1470,7 @@ spuszczonymi oczyma, w dyskretnym milczeniu, i pełni byli mądrości i
wyrozumienia dla ich najtajniejszych życzeń. Ale nade wszystko była tam
jedna księgarnia, w której raz oglądałem rzadkie i zakazane druki,
publikacje tajnych klubów, zdejmując zasłonę z tajemnic dręczących i
-upojnych. Tak rzadko zdarzała się sposobność odwiedzania tych sklepów--
+upojnych. Tak rzadko zdarzała się sposobność odwiedzania tych sklepów -
i w dodatku z małą, lecz wystarczającą sumą pieniędzy w kieszeni. Nie
można było pominąć tej okazji mimo ważności misji powierzonej naszej
gorliwości. Trzeba się było zapuścić według mego obliczenia w boczną
@@ -1484,7 +1484,7 @@ konfiguracja ulic nie odpowiadała oczekiwanemu obrazowi. Sklepów ani
śladu. Szedłem ulicą, której domy nie miały nigdzie bramy wchodowej,
tylko okna szczelnie zamknięte, ślepe odblaskiem księżyca. Po drugiej
stronie tych domów musi prowadzić właściwa ulica, od której te domy są
-dostępne--myślałem sobie. Z niepokojem przyspieszałem kroku, rezygnując
+dostępne - myślałem sobie. Z niepokojem przyspieszałem kroku, rezygnując
w duchu z myśli zwiedzenia sklepów. Byle tylko wydostać się stąd prędko
w znane okolice miasta. Zbliżałem się do wylotu, pełen niepokoju, gdzie
też ona mnie wyprowadzi. Wyszedłem na szeroki, rzadko zabudowany
@@ -1494,7 +1494,7 @@ ozdobne budynki bogaczy. W przerwach między nimi widniały parki i mury
sadów. Obraz przypominał z daleka ulicę Leszniańską w jej dolnych i
rzadko zwiedzanych okolicach. Światło księżyca, rozpuszczone w
tysiącznych barankach, w łuskach srebrnych na niebie, było blade i tak
-jasne jak w dzień--tylko parki i ogrody czerniały w tym srebrnym
+jasne jak w dzień - tylko parki i ogrody czerniały w tym srebrnym
krajobrazie. Przyjrzawszy się bacznie jednemu z budynków, doszedłem do
przekonania, że mam przed sobą tylną i nigdy nie widzianą stronę gmachu
gimnazjalnego. Właśnie dochodziłem do bramy, która ku memu zdziwieniu
@@ -1513,7 +1513,7 @@ stawiał zbyt ścisłych wymagań. Niektórzy przynosili sobie z domu
poduszki i układali się na ławkach do powierzchownej drzemki. I tylko
najpilniejsi rysowali pod samą świecą, w złotym kręgu jej blasku.
Czekaliśmy zazwyczaj długo na przyjście profesora, nudząc się wśród
-sennych rozmów. Wreszcie otwierały się drzwi jego pokoju i wchodził--
+sennych rozmów. Wreszcie otwierały się drzwi jego pokoju i wchodził -
mały, z piękną brodą, pełen ezoterycznych uśmiechów, dyskretnych
przemilczeń i aromatu tajemnicy. Szybko zaciskał za sobą drzwi gabinetu,
przez które w momencie otworzenia tłoczyła się za jego głową ciżba
@@ -1521,7 +1521,7 @@ gipsowych cieni, fragmentów klasycznych, bolesnych Niobid, Danaid i
Tantalidów, cały smutny i jałowy Olimp, więdnący od lat w tym muzeum
gipsów. Zmierzch tego pokoju mętniał i za dnia i przelewał się sennie od
gipsowych marzeń, pustych spojrzeń, blednących owali i zamyśleń
-odchodzących w nicość. Lubiliśmy nieraz podsłuchiwać pod drzwiami--
+odchodzących w nicość. Lubiliśmy nieraz podsłuchiwać pod drzwiami -
ciszy, pełnej westchnień i szeptów tego kruszejącego w pajęczynach
rumowiska, tego rozkładającego się w nudzie i monotonii zmierzchu bogów.
Profesor przechadzał się dostojnie, pełen namaszczenia, wzdłuż pustych
@@ -1587,7 +1587,7 @@ bijącym sercem, gotów do ucieczki za najlżejszym szmerem. Jakże mógłbym,
przyłapany, usprawiedliwić to moje nocne szpiegowanie, moje zuchwałe
wścibstwo? W którymś z głębokich pluszowych foteli mogła, nie
dostrzeżona i cicha, siedzieć córeczka dyrektora i podnieść nagle na
-mnie oczy znad książki--czarne, sybilińskie, spokojne oczy, których
+mnie oczy znad książki - czarne, sybilińskie, spokojne oczy, których
spojrzenia nikt z nas wytrzymać nie umiał. Ale cofnąć się w połowie
drogi, nie dokonawszy powziętego planu, poczytałbym był sobie za
tchórzostwo. Zresztą głęboka cisza panowała dookoła w pełnych przepychu
@@ -1611,7 +1611,7 @@ jeszcze nieskończoną drogę i, zatopiony w swych zawiłych procederach
niebieskich, nie myślał o świcie. Na ulicy czerniało kilka dorożek,
rozjechanych i rozklekotanych jak kalekie, drzemiÄ…ce kraby czy karakony.
Woźnica nachylił się z wysokiego kozła. Miał twarz drobną, czerwoną i
-dobroduszną.--Pojedziemy, paniczu?--zapytał. Powóz zadygotał we
+dobroduszną. - Pojedziemy, paniczu? - zapytał. Powóz zadygotał we
wszystkich stawach i przegubach swego wieloczłonkowego ciała i ruszył na
lekkich obręczach. Ale kto w taką noc powierza się kaprysom
nieobliczalnego dorożkarza? Wśród klekotu szprych, wśród dudnienia pudła
@@ -1622,8 +1622,8 @@ kiwając nań przyjaźnie rękami. Odpowiedział im coś radośnie, po czym nie
zatrzymując pojazdu, rzucił mi lejce na kolana, spuścił się z kozła i
przyłączył do gromady kolegów. Koń, stary mądry koń dorożkarski,
oglądnął się pobieżnie i pojechał dalej jednostajnym, dorożkarskim
-kłusem. Właściwie koń ten budził zaufanie--wydawał się mądrzejszy od
-woźnicy. Ale powozić nie umiałem--trzeba się było zdać na jego wolę.
+kłusem. Właściwie koń ten budził zaufanie - wydawał się mądrzejszy od
+woźnicy. Ale powozić nie umiałem - trzeba się było zdać na jego wolę.
Wjechaliśmy na podmiejską ulicę ujętą z obu stron w ogrody. Ogrody te
przechodziły zwolna, w miarę posuwania się, w parki wielkodrzewne, a te
w lasy. Nie zapomnę nigdy tej jazdy świetlistej w najjaśniejszą noc
@@ -1647,8 +1647,8 @@ zbierał się wał białej piany śnieżnej, coraz wyższy i wyższy. Z trudem
przekopywał się koń przez czystą i świeżą jego masę. Wreszcie ustał.
Wyszedłem z dorożki. Dyszał ciężko ze zwieszoną głową. Przytuliłem jego
łeb do piersi, w jego wielkich czarnych oczach lśniły łzy. Wtedy
-ujrzałem na jego brzuchu okrągłą czarną ranę.---Dlaczego mi nie
-powiedziałeś?--szepnąłem ze łzami.--Drogi mój--to dla ciebie--rzekł
+ujrzałem na jego brzuchu okrągłą czarną ranę. - -Dlaczego mi nie
+powiedziałeś? - szepnąłem ze łzami. - Drogi mój - to dla ciebie - rzekł
i stał się bardzo mały, jak konik z drzewa. Opuściłem go. Czułem się
dziwnie lekki i szczęśliwy. Zastanawiałem się, czy czekać na małą
kolejkę lokalną, która tu zajeżdżała, czy też pieszo wrócić do miasta.
@@ -1741,7 +1741,7 @@ intymności, brudnego zmieszania. Dzielnica ta była eldoradem takich
dezerterów moralnych, takich zbiegów spod sztandaru godności własnej.
Wszystko zdawało się tam podejrzane i dwuznaczne, wszystko zapraszało
sekretnym mrugnięciem, cynicznie artykułowanym gestem, wyraźnie
-przymrużonym perskim okiem--do nieczystych nadziei, wszystko wyzwalało
+przymrużonym perskim okiem - do nieczystych nadziei, wszystko wyzwalało
z pęt niską naturę. Mało kto, nie uprzedzony, spostrzegał dziwną
osobliwość tej dzielnicy: brak barw, jak gdyby w tym tandetnym, w
pośpiechu wyrosłym mieście nie można było sobie pozwolić na luksus
@@ -1753,11 +1753,11 @@ rubrykach komercjalnych ogłoszeń, wśród których zagnieździły się
pasożytniczo podejrzane anonse, drażliwe notatki, wątpliwe ilustracje; i
wędrówki te były równie jałowe i bez rezultatu jak ekscytacje fantazji,
pędzonej przez szpalty i kolumny pornograficznych druków. Wchodziło się
-do jakiegoś krawca, żeby zamówić ubranie--ubranie o taniej elegancji,
+do jakiegoś krawca, żeby zamówić ubranie - ubranie o taniej elegancji,
tak charakterystycznej dla tej dzielnicy. Lokal był wielki i pusty,
bardzo wysoki i bezbarwny. Ogromne wielopiętrowe półki wznoszą się jedne
nad drugimi w nie określoną wysokość tej hali. Kondygnacje pustych półek
-wyprowadzają wzrok w górę aż pod sufit, który może być niebem--lichym,
+wyprowadzają wzrok w górę aż pod sufit, który może być niebem - lichym,
bezbarwnym, odrapanym niebem tej dzielnicy. Natomiast dalsze magazyny,
które widać przez otwarte drzwi, pełne są aż pod sufit pudeł i kartonów,
piętrzących się ogromną kartoteką, która rozpada się w górze, pod
@@ -1888,7 +1888,7 @@ pertraktacje z przekupnymi urzędnikami linii żelaznej. Zanim te
negocjacje się kończą, pociąg rusza, odprowadzany przez wolno sunący,
rozczarowany tłum, który odprowadza go daleko, ażeby się wreszcie
rozproszyć. Ulica, zacieśniona na chwilę do tego zaimprowizowanego
-dworca, pełnego zmierzchu i tchnienia dalekich dróg--rozwidnia się
+dworca, pełnego zmierzchu i tchnienia dalekich dróg - rozwidnia się
znowu, rozszerza i przepuszcza znów swym korytem beztroski monotonny
tłum spacerowiczów, który wędruje wśród gwaru rozmów wzdłuż wystaw
sklepowych, tych brudnych, szarych czworoboków, pełnych tandetnych
@@ -1899,14 +1899,14 @@ drapieżnym, posuwistym krokiem i mają w niedobrych, zepsutych twarzach
nieznaczną skazę, która je przekreśla: zezują czarnym, krzywym zezem lub
mają usta rozdarte, lub brak im koniuszka nosa. Mieszkańcy miasta dumni
są z tego odoru zepsucia, którym tchnie Ulica Krokodyli. Nie mamy
-potrzeby niczego sobie odmawiać--myślą z dumą--stać nas i na prawdziwą
+potrzeby niczego sobie odmawiać - myślą z dumą - stać nas i na prawdziwą
wielkomiejską rozpustę. Twierdzą oni, że każda kobieta w tej dzielnicy
-jest kokotą. W istocie wystarczy zwrócić uwagę na którąś--a natychmiast
+jest kokotą. W istocie wystarczy zwrócić uwagę na którąś - a natychmiast
spotyka się to uporczywe, lepkie spojrzenie, które nas zmraża rozkoszną
pewnością. Nawet dziewczęta szkolne noszą tu w pewien charakterystyczny
sposób kokardy, stawiają swoistą manierą smukłe nogi i mają tę nieczystą
skazę w spojrzeniu, w której leży preformowane przyszłe zepsucie. A
-jednak--a jednak czy mamy zdradzić ostatnią tajemnicę tej dzielnicy,
+jednak - a jednak czy mamy zdradzić ostatnią tajemnicę tej dzielnicy,
troskliwie ukrywany sekret Ulicy Krokodyli? Kilkakrotnie w trakcie
naszego sprawozdania stawialiśmy pewne znaki ostrzegawcze, dawaliśmy w
delikatny sposób wyraz naszym zastrzeżeniom. Uważny czytelnik nie będzie
@@ -1919,7 +1919,7 @@ giętkość. Powiedzmy bez ogródek: fatalnością tej dzielnicy jest, że nic
w niej nie dochodzi do skutku, nic nie odbiega od swego definitivum,
wszystkie ruchy rozpoczęte zawisają w powietrzu, wszystkie gesty
wyczerpują się przedwcześnie i nie mogą przekroczyć pewnego martwego
-punktu. Mogliśmy już zauważyć wielką bujność i rozrzutność--w
+punktu. Mogliśmy już zauważyć wielką bujność i rozrzutność - w
intencjach, w projektach i antycypacjach, która cechuje tę dzielnicę.
Cała ona nie jest niczym innym jak fermentacją pragnień, przedwcześnie
wybujałą i dlatego bezsilną i pustą. W atmosferze nadmiernej łatwości
@@ -1973,11 +1973,11 @@ pierze, które Adela raz w tygodniu wymiatała wraz z bezimiennym kurzem
pokoju. W wyłysiałych miejscach widać było workowe, grube płótno, z
którego wyłaziły kłaki konopne. Miałem ukryty żal do matki za łatwość, z
jaką przeszła do porządku dziennego nad stratą ojca. Nigdy go nie
-kochała--myślałem--a ponieważ ojciec nie był zakorzeniony w sercu
+kochała - myślałem - a ponieważ ojciec nie był zakorzeniony w sercu
żadnej kobiety, przeto nie mógł też wróść w żadną realność i unosił się
wiecznie na peryferii życia, w półrealnych regionach, na krawędziach
-rzeczywistosci. Nawet na uczciwą obywatelską śmierć nie zasłużył sobie--
-myślałem--wszystko u niego musiało, być dziwaczne i wątpliwe.
+rzeczywistosci. Nawet na uczciwą obywatelską śmierć nie zasłużył sobie -
+myślałem - wszystko u niego musiało, być dziwaczne i wątpliwe.
Postanowiłem w stosownej chwili zaskoczyć matkę otwartą rozmową. Owego
dnia (był ciężki dzień zimowy i od rana już sypał się miękki puch
zmierzchu) matka miała migrenę i leżała na sofie samotnie w salonie. W
@@ -1998,21 +1998,21 @@ nie mogły się powstrzymać, robiły perskie oczko, dawały sobie znaki,
mówiły niemym, kolorowym alfabetem, pełnym sekretnych znaczeń. Irytowało
mnie to szydercze porozumienie, ta migotliwa zmowa poza mymi plecami. Z
kolanami przyciśniętymi do sofy matki, badając dwoma palcami, jakby w
-zamyśleniu, delikatną materię jej szlafroka, rzekłem niby mimochodem:--
-Chciałem cię już od dawna zapytać: prawda, że to jest on?--I chociaż
+zamyśleniu, delikatną materię jej szlafroka, rzekłem niby mimochodem: -
+Chciałem cię już od dawna zapytać: prawda, że to jest on? - I chociaż
nie wskazałem nawet spojrzeniem na kondora, matka odgadła od razu,
zmieszała się bardzo i spuściła oczy. Dałem umyślnie upłynąć chwili,
żeby wykosztować jej zmieszanie, po czym z całym spokojem, opanowując
-wzbierający gniew, spytałem:--Jaki sens mają w takim razie te wszystkie
+wzbierający gniew, spytałem: - Jaki sens mają w takim razie te wszystkie
plotki i kłamstwa, które rozsiewasz o ojcu? Lecz jej rysy, które w
pierwszej chwili rozpadły się były w panice, zaczęły się znowu
-porządkować.--Jakie kłamstwa?--spytała mrugając oczyma, które były
-puste, nalane ciemnym błękitem, bez białka.--Znam je od Adeli--rzekłem
+porządkować. - Jakie kłamstwa? - spytała mrugając oczyma, które były
+puste, nalane ciemnym błękitem, bez białka. - Znam je od Adeli - rzekłem
- ale wiem, że pochodzą od ciebie; chcę wiedzieć prawdę. Usta jej drżały
-lekko, źrenice, unikając mego wzroku, powędrowały w kąt oka.--Nie
-kłamałam--rzekła, a usta- jej napęczniały i stały się małe zarazem.
-Uczułem, że mnie kokietuje jak kobieta mężczyznę.--Z tymi karakonami to
-prawda--sam przecież pamiętasz...--Zmieszałem się. Pamiętałem w
+lekko, źrenice, unikając mego wzroku, powędrowały w kąt oka. - Nie
+kłamałam - rzekła, a usta- jej napęczniały i stały się małe zarazem.
+Uczułem, że mnie kokietuje jak kobieta mężczyznę. - Z tymi karakonami to
+prawda - sam przecież pamiętasz... - Zmieszałem się. Pamiętałem w
istocie tę inwazję karakonów, ten zalew czarnego rojowiska, które
napełniało ciemność nocną, pajęczą bieganiną. Wszystkie szpary pełne
były drgających wąsów, każda szczelina mogła wystrzelić z nagła
@@ -2052,18 +2052,18 @@ opętany fascynacją awersji, która go wciągała w głąb swych zawiłych
dróg. Mój ojciec poruszał się wieloczłonkowym, skomplikowanym ruchem
dziwnego rytuału, w którym ze zgrozą poznałem imitację ceremoniału
karakoniego. Od tego czasu wyrzekliśmy się ojca. Podobieństwo do
-karakona występowało z dniem każdym wyraźniej--mój ojciec zamieniał się
+karakona występowało z dniem każdym wyraźniej - mój ojciec zamieniał się
w karakona. Zaczęliśmy się przyzwyczajać do tego. Widywaliśmy go coraz
-rzadziej, całymi tygodniami znikał gdzieś na swych karakonich drogach--
+rzadziej, całymi tygodniami znikał gdzieś na swych karakonich drogach -
przestaliśmy go odróżniać, zlał się w zupełności z tym czarnym
niesamowitym plemieniem. Kto mógł powiedzieć, czy żył gdzieś jeszcze w
jakiejś szparze podłogi, czy przebiegał nocami pokoje, zaplątany w afery
karakonie, czy też był może między tymi martwymi owadami, które Adela co
rana znaj-dowała brzuchem do góry leżące i najeżone nogami i które ze
-wstrętem brała na śmietniczkę i wyrzucała?--A jednak--powiedziałem
-zdetonowany--jestem pewny, że ten kondor to on.--Matka spojrzała na
-mnie spod rzęs:--Nie dręcz mnie, drogi--mówiłam ci już przecież, że
-ojciec podróżuje jako komiwojażer po kraju--przecież wiesz, że czasem w
+wstrętem brała na śmietniczkę i wyrzucała? - A jednak - powiedziałem
+zdetonowany - jestem pewny, że ten kondor to on. - Matka spojrzała na
+mnie spod rzęs: - Nie dręcz mnie, drogi - mówiłam ci już przecież, że
+ojciec podróżuje jako komiwojażer po kraju - przecież wiesz, że czasem w
nocy przyjeżdża do domu, ażeby przed świtem jeszcze dalej odjechać.
WICHURA Tej długiej i pustej zimy obrodziła ciemność w naszym mieście
@@ -2094,9 +2094,9 @@ doklęły swego. Przywołane rechotem naczyń, rozplotkowanym od brzegu do
brzegu, nadeszły wreszcie karawany, nadciągnęły potężne tabory wichru i
stanęły nad nocą. Ogromne obozowisko, czarny ruchomy amfiteatr zstępować
zaczął w potężnych kręgach ku miastu. I wybuchła ciemność ogromną
-wzburzoną wichurą i szalała przez trzy dni i trzy noce...--Nie
-pójdziesz dziś do szkoły--rzekła rano matka--jest straszna wichura na
-dworze.--W pokoju unosił się delikatny welon dymu, pachnący żywicą. Piec
+wzburzoną wichurą i szalała przez trzy dni i trzy noce... - Nie
+pójdziesz dziś do szkoły - rzekła rano matka - jest straszna wichura na
+dworze. - W pokoju unosił się delikatny welon dymu, pachnący żywicą. Piec
wył i gwizdał, jak gdyby uwiązana w nim była cała sfora psów czy
demonów. Wielki bohomaz, wymalowany na jego pękatym brzuchu, wykrzywiał
się kolorowym grymasem i fantastyczniał wzdętymi policzkami. Pobiegłem
@@ -2141,8 +2141,8 @@ Pokój drżał z lekka, obrazy na ścianach brzęczały. Szyby lśniły się
tłustym odblaskiem lampy. Firanki na oknie wisiały wzdęte i pełne
tchnienia tej burzliwej nocy. Przypomnieliśmy sobie, że ojca od rana nie
widziano. Wczesnym rankiem, domyślaliśmy się, musiał udać się do sklepu,
-gdzie go zaskóczyła wichura, odcinając mu powrót.--Cały dzień nic nie
-jadł--biadała matka. Starszy subiekt Teodor podjął się wyprawić w noc i
+gdzie go zaskóczyła wichura, odcinając mu powrót. - Cały dzień nic nie
+jadł - biadała matka. Starszy subiekt Teodor podjął się wyprawić w noc i
wichurę, żeby zanieść mu posiłek. Brat mój przyłączył się do wyprawy.
Okutani w wielkie niedźwiedzie futra, obciążyli kieszenie żelazkami i
moździerzami, balastem, który miał zapobiec porwaniu ich przez wichurę.
@@ -2227,7 +2227,7 @@ grymasy, podnosił wysoko brwi i śmiał się do siebie.
NOC WIELKIEGO SEZONU Każdy wie, że w szeregu zwykłych, normalnych lat
rodzi niekiedy zdziwaczały czas ze swego łona lata inne, lata osobliwe,
-lata wyrodne, którym--jak szósty, mały palec u ręki--wyrasta kędyś
+lata wyrodne, którym - jak szósty, mały palec u ręki - wyrasta kędyś
trzynasty, fałszywy miesiąc. Mówimy fałszywy, gdyż rzadko dochodzi on do
pełnego rozwoju. Jak dzieci późno spłodzone, pozostaje on w tyle ze
wzrostem, miesiąc garbusek, odrośl w połowie uwiędła i raczej domyślna
@@ -2235,7 +2235,7 @@ niż rzeczywista. Winna jest temu starcza niepowściągliwość lata, jego
rozpustna i późna żywotność. Bywa czasem, że sierpień minie, a stary
gruby pień lata rodzi z przyzwyczajenia jeszcze dalej, pędzi ze swego
próchna te dni-dziczki, dni-chwasty, jałowe i idiotyczne, dorzuca na
-dokładkę, za darmo, dni-kaczany, puste i niejadalne--dni białe,
+dokładkę, za darmo, dni-kaczany, puste i niejadalne - dni białe,
zdziwione i niepotrzebne. Wyrastają one, nieregularne i nierówne, nie
wykształcone i zrośnięte z sobą, jak palce potworkowatej ręki,
pączkujące i zwinięte w figę. Inni porównywają te dni do apokryfów,
@@ -2316,7 +2316,7 @@ jaskrawo w wielkie, gulgocące, rozpluskane narośle albo wykogucić się w
głupią kogucią maskę, czerwoną i piejącą, w kolorowe jesienne maszkary
fantastyczne i absurdalne. Zdawało się, że tak nadęte i piejące wzniosą
się w powietrze długimi kolorowymi łańcuchami i jak jesienne klucze
-ptaków przeciągać będą nad miastem--fantastyczne flotylle z bibułki i
+ptaków przeciągać będą nad miastem - fantastyczne flotylle z bibułki i
pogody jesiennej. Albo woziły się wśród krzyków na małych zgiełkliwych
wózkach, grających kolorowym turkotem kółek, szprych i dyszli. Wózki
zjeżdżały naładowane ich krzykiem i staczały się w dół ulicy aż do nisko
@@ -2339,9 +2339,9 @@ cichej zamieszce, w panice prędkiego rozkładu, w górze utrzymywał się i
rósł coraz wyżej milczący alarm zorzy, drgający świergotem miliona
cichych dzwonków, wzbierających wzlotem miliona cichych skowronków
lecących razem w jedną wielką, srebrną nieskończoność. Potem była już
-nagle noc--wielka noc, rosnąca jeszcze podmuchami wiatru, które ją
+nagle noc - wielka noc, rosnąca jeszcze podmuchami wiatru, które ją
rozszerzały. W jej wielokrotnym labiryncie wyłupane były gniazda jasne:
-sklepy--wielkie, kolorowe latarnie, pełne spiętrzonego towaru i zgiełku
+sklepy - wielkie, kolorowe latarnie, pełne spiętrzonego towaru i zgiełku
kupujących. Przez jasne szyby tych latani można było śledzić zgiełkliwy
i pełen dziwacznego ceremoniału obrzęd zakupów jesiennych. Ta wielka,
fałdzista noc jesienna, rosnąca cieniami, roszerzona wiatrami, kryła w
@@ -2353,12 +2353,12 @@ tandety, złoconych błahostek, cynfolii, trąbek, andrutów i kolorowych
miętówek, były stacjami lekkomyślności, grzechotkami beztroski,
rozsianymi na wiszarach ogromnej, labiryntowej, rozłopotanej wiatrami
nocy. Wielkie i ciemne tłumy płynęły w ciemności, w hałaśliwym
-zmieszaniu, w szurgocie tysięcy nóg, w gwarze tysięcy ust--rojna,
+zmieszaniu, w szurgocie tysięcy nóg, w gwarze tysięcy ust - rojna,
splątana wędrówka, ciągnąca arteriami jesiennego miasta. Tak płynęła ta
rzeka, pełna gwaru, ciemnych spojrzeń, chytrych łypnięć, pokawałkowana
rozmową, posiekana gawędą, wielka miazga plotek, śmiechów i zgiełku.
Zdawało się, że to ruszyły tłumami jesienne, suche makówki sypiące
-makiem--głowygrzechotki, ludzie-kołatki. Mój ojciec chodził
+makiem - głowygrzechotki, ludzie-kołatki. Mój ojciec chodził
zdenerwowany i kolorowy od wypieków, z błyszczącymi oczyma, w jasno
oświetlonym sklepie, i nasłuchiwał. Przez szyby wystawy i portalu
dochodził tu z daleka szum miasta, stłumiony gwar płynącej ciżby. Nad
@@ -2407,7 +2407,7 @@ ojciec mój jednym skokiem wspiął się na półki z suknem i, uwisły wysoko
nad tłumem, dął z całej siły w wielki puzon z rogu i trąbił na alarm.
Ale sklepienie nie napełniło się szumem aniołów, śpieszących na pomoc, a
zamiast tego każdemu jękowi trąby odpowiadał wielki, roześmiany chór
-tłumu.--Jakubie, handlować! Jakubie, sprzedawać!--wołali wszyscy, a
+tłumu. - Jakubie, handlować! Jakubie, sprzedawać! - wołali wszyscy, a
wołanie to, wciąż powtarzane, rytmizowało się w chórze i przechodziło
powoli w melodię refrenu, śpiewaną przez wszystkie gardła. Wtedy mój
ojciec dał za wygraną, zeskoczył z wysokiego gzymsu i ruszył z krzykiem
@@ -2460,7 +2460,7 @@ był błysk uśmiechniętej ironii. Wśród tych grup przewijał się pospolity
lud, bezpostaciowy tłum, gawiedź bez twarzy i indywidualności. Wypełniał
on niejako luki w krajobrazie, wyścielał tło dzwonkami i grzechotkami
bezmyślnego gadania. Był to element błazeński, roztańczony tłum
-poliszynelów i arlekinów, który--sam bez poważnych intencyj handlowych
+poliszynelów i arlekinów, który - sam bez poważnych intencyj handlowych
- doprowadzał do absurdu gdzieniegdzie nawiązujące się tansakcje swymi
błazeńskimi figlami. Stopniowo jednak, znudzony błaznowaniem, wesoły ten
ludek rozpraszał się w dalszych okolicach krajobrazu i tam powoli gubił
@@ -2475,7 +2475,7 @@ ciemne ich sylwety zaludniały całą tę pustynną wyżynę, nad którą zwisł
ciężkie i ciemne niebo, sfałdowane i chmurne, poorane w długie
równoległe bruzdy, w srebrne i białe skiby, ukazujące w głębi coraz
dalsze pokłady swego uwarstwienia. Światło lampy stwarzało sztuczny
-dzień w owej krainie--dzień dziwny, dzień bez świtu i wieczoru. Ojciec
+dzień w owej krainie - dzień dziwny, dzień bez świtu i wieczoru. Ojciec
mój uspokajał się powoli. Gniew jego układał się i zastygał w pokładach
i warstwach krajobrazu. Siedział teraz na galeriach wysokich półek i
patrzył w jesienniejący, rozległy kraj. Widział, jak na dalekich
@@ -2536,7 +2536,7 @@ wachlarzami, w które niepojętym sposobem tchnięto jakiś pozór życia.
Widziałem smutny powrót mego ojca. Sztuczny dzień zabarwiał się już
powoli kolorami zwyczajnego poranka. W spustoszałym sklepie najwyższe
półki syciły się barwami rannego nieba. Wśród fragmentów zgasłego
-pejzażu, wśród zburzonych kulis nocnej scenerii--ojciec widział
+pejzażu, wśród zburzonych kulis nocnej scenerii - ojciec widział
wstających ze snu subiektów. Podnosili się spomiędzy bali sukna i
ziewali do słońca. W kuchni, na piętrze, Adela, ciepła od snu i ze
zmierzwionymi włosami, mełła kawę na młynku, przyciskając go do białej
@@ -2552,7 +2552,7 @@ EOT;
Corrected EDITIONS of our eBooks get a new NUMBER, sklep11.txt
VERSIONS based on separate sources get new LETTER, sklep10a.txt
- Produced by Pawel Sobkowiak--Scanned and proofread by
+ Produced by Pawel Sobkowiak - Scanned and proofread by
Polska Biblioteka Internetowa
Project Gutenberg eBooks are often created from several printed
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php
index 2f3593f5..68b6df07 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php
@@ -24,6 +24,12 @@ class Address extends \Faker\Provider\Address
'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC',
'SP', 'SE', 'TO'
);
+ protected static $region = array(
+ 'Centro-Oeste', 'Nordeste', 'Norte', 'Sudeste', 'Sul'
+ );
+ protected static $regionAbbr = array(
+ 'CO', 'N', 'NE', 'SE', 'S'
+ );
protected static $country = array(
'Afeganistão', 'Ãfrica do Sul', 'Albânia', 'Alemanha', 'Andorra',
'Angola', 'Antigua e Barbuda', 'Arabia Saudita', 'Argélia',
@@ -129,4 +135,20 @@ class Address extends \Faker\Provider\Address
{
return static::randomElement(static::$stateAbbr);
}
+
+ /**
+ * @example 'Nordeste'
+ */
+ public static function region()
+ {
+ return static::randomElement(static::$region);
+ }
+
+ /**
+ * @example 'NE'
+ */
+ public static function regionAbbr()
+ {
+ return static::randomElement(static::$regionAbbr);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php
index 79592aeb..74f3567f 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php
@@ -10,11 +10,11 @@ class Company extends \Faker\Provider\Company
'{{lastName}} {{companySuffix}}',
'{{lastName}}-{{lastName}}',
'{{lastName}} e {{lastName}}',
- '{{lastName}} de {{lastName}}',
- '{{lastName}}, {{lastName}} e {{lastName}}'
+ '{{lastName}} e {{lastName}} {{companySuffix}}',
+ '{{lastName}} Comercial Ltda.'
);
- protected static $companySuffix = array('e Filho', 'e Filha', 'e Filhos', 'e Associados', 'e Flia.', 'SRL', 'SA', 'S. de H.');
+ protected static $companySuffix = array('e Filhos', 'e Associados', 'Ltda.', 'S.A.');
/**
* A random CNPJ number.
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php
index 51b909fb..1a525613 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php
@@ -4,6 +4,59 @@ namespace Faker\Provider\pt_BR;
class Payment extends \Faker\Provider\Payment
{
+ protected static $cardVendors = array(
+ 'Visa', 'Visa', 'Visa', 'Visa', 'Visa',
+ 'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard',
+ 'American Express', 'Discover Card', 'Diners', 'Elo', 'Hipercard'
+ );
+
+ // see https://gist.github.com/erikhenrique/5931368 / http://pt.stackoverflow.com/q/3715/26461
+ protected static $cardParams = array(
+ 'Visa' => array(
+ "4##############"
+ ),
+ 'MasterCard' => array(
+ "5##############"
+ ),
+ 'American Express' => array(
+ "34############",
+ "37############"
+ ),
+ 'Discover Card' => array(
+ "6011###########",
+ "622############",
+ "64#############",
+ "65#############"
+ ),
+ 'Diners' => array(
+ "301############",
+ "301##########",
+ "305############",
+ "305##########",
+ "36#############",
+ "36###########",
+ "38#############",
+ "38###########",
+ ),
+ 'Elo' => array(
+ "636368#########",
+ "438935#########",
+ "504175#########",
+ "451416#########",
+ "636297#########",
+ "5067###########",
+ "4576###########",
+ "4011###########",
+ ),
+ 'Hipercard' => array(
+ "38#############",
+ "60#############",
+ ),
+ "Aura" => array(
+ "50#############"
+ )
+ );
+
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
@@ -16,4 +69,78 @@ class Payment extends \Faker\Provider\Payment
{
return static::iban($countryCode, $prefix, $length);
}
+
+
+ /**
+ * @see list of Brazilians banks (2018-02-15), source: https://pt.wikipedia.org/wiki/Lista_de_bancos_do_Brasil
+ */
+ protected static $banks = array(
+ 'BADESUL Desenvolvimento S.A. – Agência de Fomento/RS',
+ 'Banco Central do Brasil',
+ 'Banco da Amazônia',
+ 'Banco de BrasÃlia',
+ 'Banco de Desenvolvimento de Minas Gerais',
+ 'Banco de Desenvolvimento do EspÃrito Santo',
+ 'Banco de Desenvolvimento do Paraná',
+ 'Banco do Brasil',
+ 'Banco do Estado de Sergipe Banese Estadual',
+ 'Banco do Estado do EspÃrito Santo Banestes',
+ 'Banco do Estado do Pará',
+ 'Banco do Estado do Rio Grande do Sul',
+ 'Banco do Nordeste do Brasil',
+ 'Banco Nacional de Desenvolvimento Econômico e Social',
+ 'Banco Regional de Desenvolvimento do Extremo Sul',
+ 'Caixa Econômica Federal',
+ 'Banco ABN Amro S.A.',
+ 'Banco Alfa',
+ 'Banco Banif',
+ 'Banco BBM',
+ 'Banco BMG',
+ 'Banco Bonsucesso',
+ 'Banco BTG Pactual',
+ 'Banco Cacique',
+ 'Banco Caixa Geral - Brasil',
+ 'Banco Citibank',
+ 'Banco Credibel',
+ 'Banco Credit Suisse',
+ 'Góis Monteiro & Co',
+ 'Banco Fator',
+ 'Banco Fibra',
+ 'Agibank',
+ 'Banco Guanabara',
+ 'Banco Industrial do Brasil',
+ 'Banco Industrial e Comercial',
+ 'Banco Indusval',
+ 'Banco Inter',
+ 'Banco Itaú BBA',
+ 'Banco ItaúBank',
+ 'Banco Itaucred Financiamentos',
+ 'Banco Mercantil do Brasil',
+ 'Banco Modal Modal',
+ 'Banco Morada',
+ 'Banco Pan',
+ 'Banco Paulista',
+ 'Banco Pine',
+ 'Banco Renner',
+ 'Banco Ribeirão Preto',
+ 'Banco Safra',
+ 'Banco Santander',
+ 'Banco Sofisa',
+ 'Banco Topázio',
+ 'Banco Votorantim',
+ 'Bradesco Bradesco',
+ 'Itaú Unibanco',
+ 'Banco Original',
+ 'Banco Neon',
+ 'Nu Pagamentos S.A',
+ 'XP Investimentos Corretora de Câmbio TÃtulos e Valores Mobiliários S.A',
+ );
+
+ /**
+ * @example 'Banco Neon'
+ */
+ public static function bank()
+ {
+ return static::randomElement(static::$banks);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php
index c66b0096..4949eef3 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php
@@ -4,46 +4,42 @@ namespace Faker\Provider\pt_BR;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
-
- protected static $landlineFormats = array('2###-####', '3###-####');
-
- protected static $cellphoneFormats = array('7###-####', '8###-####', '9###-####');
+ protected static $landlineFormats = array('2###-####', '3###-####', '4###-####');
/**
- * Extracted from http://portal.embratel.com.br/embratel/9-digito/ (point 11)
- */
- protected static $ninthDigitAreaCodes = array(
- 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 21, 22, 24, 27, 28,
- 91, 92, 93, 94, 95, 96, 97, 98, 99,
- //31, 32, 33, 34, 35, 37, 38, 71, 73, 74, 75, 77, 79, 81, 82, 83, 84, 85, 86, 87, 88, 89, //by dec/2015
- //41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 54, 55, 61,62, 63, 64, 65, 66, 67, 68, 69 //by dec/2016
- );
+ * Since december 2016 all mobile phone numbers in brazil begin with 9 and landlines 2, 3 or 4.
+ * @link http://www.anatel.gov.br/Portal/exibirPortalPaginaEspecial.do?org.apache.struts.taglib.html.TOKEN=9594e1d11fbc996d52bda44e608bb744&codItemCanal=1794&pastaSelecionada=2984
+ */
+ protected static $cellphoneFormats = array('9####-####');
/**
* Generates a 2-digit area code not composed by zeroes.
+ * @link http://www.anatel.gov.br/legislacao/resolucoes/16-2001/383-resolucao-263.
* @return string
*/
public static function areaCode()
{
- return static::randomDigitNotNull().static::randomDigitNotNull();
+ $areaCodes = array(
+ '11', '12', '13', '14', '15', '16', '17', '18', '19', '21', '22', '24',
+ '27', '28', '31', '32', '33', '34', '35', '37', '38', '41', '42', '43',
+ '44', '45', '46', '47', '48', '49', '51', '53', '54', '55', '61', '62',
+ '63', '64', '65', '66', '67', '68', '69', '71', '73', '74', '75', '77',
+ '79', '81', '82', '83', '84', '85', '86', '87', '88', '89', '91', '92',
+ '93', '94', '95', '96', '97', '98', '99'
+ );
+
+ return self::randomElement($areaCodes);
}
/**
- * Generates a 8/9-digit cellphone number without formatting characters.
+ * Generates a 9-digit cellphone number without formatting characters.
* @param bool $formatted [def: true] If it should return a formatted number or not.
- * @param bool $ninth [def: false] If the number should have a nine in the beginning or not.
- * If the generated number begins with 7 this is ignored.
* @return string
*/
- public static function cellphone($formatted = true, $ninth = false)
+ public static function cellphone($formatted = true)
{
$number = static::numerify(static::randomElement(static::$cellphoneFormats));
- if ($ninth && $number[0] != 7) {
- $number = "9$number";
- }
-
if (!$formatted) {
$number = strtr($number, array('-' => ''));
}
@@ -52,7 +48,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
}
/**
- * Generates an 8-digit landline number without formatting characters.
+ * Generates an 9-digit landline number without formatting characters.
* @param bool $formatted [def: true] If it should return a formatted number or not.
* @return string
*/
@@ -93,15 +89,14 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
{
$area = static::areaCode();
$number = ($type == 'cellphone')?
- static::cellphone($formatted, in_array($area, static::$ninthDigitAreaCodes)) :
+ static::cellphone($formatted) :
static::landline($formatted);
return $formatted? "($area) $number" : $area.$number;
}
/**
- * Concatenates {@link areaCode} and {@link cellphone} into a national cellphone number. The ninth digit is
- * derived from the area code.
+ * Concatenates {@link areaCode} and {@link cellphone} into a national cellphone number.
* @param bool $formatted [def: true] If it should return a formatted number or not.
* @return string
*/
@@ -124,7 +119,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
* Randomizes between complete cellphone and landline numbers.
* @return mixed
*/
- public static function phoneNumber()
+ public function phoneNumber()
{
$method = static::randomElement(array('cellphoneNumber', 'landlineNumber'));
return call_user_func("static::$method", true);
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php
index 4de0e93d..d804ff2c 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php
@@ -4,7 +4,7 @@ namespace Faker\Provider\pt_PT;
class Address extends \Faker\Provider\Address
{
- protected static $streetPrefix = array('Av.', 'Avenida', 'R.', 'Rua', 'Travessa', 'Largo');
+ protected static $streetPrefix = array('Av.', 'Avenida', 'R.', 'Rua', 'Tv.', 'Travessa', 'Lg.', 'Largo');
protected static $streetNameFormats = array(
'{{streetPrefix}} {{lastName}}',
@@ -22,7 +22,7 @@ class Address extends \Faker\Provider\Address
/** @link http://www.univ-ab.pt/PINTAC/carta_normas.htm address example in letters **/
protected static $addressFormats = array(
- "{{streetAddress}}\n{{postcode}} {{city}}",
+ "{{streetAddress}} {{postcode}} {{city}}",
);
/** @link http://www.mapadeportugal.net/indicecidades.asp **/
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php
new file mode 100644
index 00000000..971d18f5
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php
@@ -0,0 +1,16 @@
+getDateOfBirth($dateOfBirth);
+
+ if (is_null($county)) {
$countyCode = static::randomElement(array_values(static::$cnpCountyCodes));
+ } elseif (!array_key_exists($county, static::$cnpCountyCodes)) {
+ throw new \InvalidArgumentException("Invalid county code '{$county}' received");
} else {
$countyCode = static::$cnpCountyCodes[$county];
}
- $cnp = (string) static::cnpFirstDigit($gender, $century)
- . static::numerify('##')
- . sprintf('%02d', $this->generator->month())
- . sprintf('%02d', $this->generator->dayOfMonth())
- . $countyCode
- . static::numerify('##%')
+ $cnp = (string)$this->getGenderDigit($date, $gender, $isResident)
+ . $date->format('ymd')
+ . $countyCode
+ . static::numerify('##%')
;
- $cnp = static::cnpAddChecksum($cnp);
+ $checksum = $this->getChecksumDigit($cnp);
- return $cnp;
+ return $cnp.$checksum;
}
/**
- * Calculates the first digit for the Personal Numerical Code (CNP) based on
- * the gender and century
- *
- * @param string $gender Valid values: m, f, 1, 2
- * @param integer $century Valid values: 1800, 1900, 2000, 1, 2, 3, 4, 5, 6
- * @return integer
+ * @param $dateOfBirth
+ * @return \DateTime
*/
- protected static function cnpFirstDigit($gender = null, $century = null)
+ protected function getDateOfBirth($dateOfBirth)
{
- switch ($century) {
- case 1800:
+ if (empty($dateOfBirth)) {
+ $dateOfBirthParts = array(static::numberBetween(1800, 2099));
+ } else {
+ $dateOfBirthParts = explode('-', $dateOfBirth);
+ }
+ $baseDate = \Faker\Provider\DateTime::dateTimeBetween("first day of {$dateOfBirthParts[0]}", "last day of {$dateOfBirthParts[0]}");
+
+ switch (count($dateOfBirthParts)) {
+ case 1:
+ $dateOfBirthParts[] = $baseDate->format('m');
+ //don't break, we need the day also
+ case 2:
+ $dateOfBirthParts[] = $baseDate->format('d');
+ //don't break, next line will
case 3:
- case 4:
- $centuryCode = 2;
- break;
- case 1900:
- case 1:
- case 2:
- $centuryCode = 0;
- break;
- case 2000:
- case 5:
- case 6:
- $centuryCode = 4;
break;
default:
- $centuryCode = static::randomElement(array(0, 2, 4, 6, 9));
+ throw new \InvalidArgumentException("Invalid date of birth - must be null or in the 'Y-m-d', 'Y-m', 'Y' format");
}
- switch (strtolower($gender)) {
- case 'm':
- case 1:
- $genderCode = 1;
- break;
- case 'f':
- case 2:
- $genderCode = 2;
- break;
- default:
- $genderCode = static::randomElement(array(1, 2));
+ if ($dateOfBirthParts[0] < 1800 || $dateOfBirthParts[0] > 2099) {
+ throw new \InvalidArgumentException("Invalid date of birth - year must be between 1900 and 2099, '{$dateOfBirthParts[0]}' received");
}
- $firstDigit = $centuryCode + $genderCode;
+ $dateOfBirthFinal = implode('-', $dateOfBirthParts);
+ $date = \DateTime::createFromFormat('Y-m-d', $dateOfBirthFinal);
+ //a full (invalid) date might have been supplied, check if it converts
+ if ($date->format('Y-m-d') !== $dateOfBirthFinal) {
+ throw new \InvalidArgumentException("Invalid date of birth - '{$date->format('Y-m-d')}' generated based on '{$dateOfBirth}' received");
+ }
- return ($firstDigit > 9) ? 9 : $firstDigit;
+ return $date;
+ }
+
+ /**
+ *
+ * https://ro.wikipedia.org/wiki/Cod_numeric_personal#S
+ *
+ * @param \DateTime $dateOfBirth
+ * @param bool $isResident
+ * @param string $gender
+ * @return int
+ */
+ protected static function getGenderDigit(\DateTime $dateOfBirth, $gender, $isResident)
+ {
+ if (!$isResident) {
+ return 9;
+ }
+
+ if ($dateOfBirth->format('Y') < 1900) {
+ if ($gender == Person::GENDER_MALE) {
+ return 3;
+ }
+ return 4;
+ }
+
+ if ($dateOfBirth->format('Y') < 2000) {
+ if ($gender == Person::GENDER_MALE) {
+ return 1;
+ }
+ return 2;
+ }
+
+ if ($gender == Person::GENDER_MALE) {
+ return 5;
+ }
+ return 6;
}
/**
* Calculates a checksum for the Personal Numerical Code (CNP).
*
- * @param string $cnp Randomly generated CNP
- * @return string CNP with the last digit altered to a proper checksum
+ * @param string $value 12 digit CNP
+ * @return int checksum digit
*/
- protected static function cnpAddChecksum($cnp)
+ protected function getChecksumDigit($value)
{
$checkNumber = 279146358279;
$checksum = 0;
foreach (range(0, 11) as $digit) {
- $checksum += substr($cnp, $digit, 1) * substr($checkNumber, $digit, 1);
+ $checksum += (int)substr($value, $digit, 1) * (int)substr($checkNumber, $digit, 1);
}
$checksum = $checksum % 11;
- return substr($cnp, 0, 12) . ($checksum == 10 ? 1 : $checksum);
+ return $checksum == 10 ? 1 : $checksum;
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php
index 9e3c07fe..377e2245 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php
@@ -43,12 +43,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
/**
* @link http://en.wikipedia.org/wiki/Telephone_numbers_in_Romania#Last_years
*/
- public static function phoneNumber()
+ public function phoneNumber()
{
$type = static::randomElement(array_keys(static::$normalFormats));
- $number = static::numerify(static::randomElement(static::$normalFormats[$type]));
- return $number;
+ return static::numerify(static::randomElement(static::$normalFormats[$type]));
}
public static function tollFreePhoneNumber()
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php
new file mode 100644
index 00000000..410c6f9b
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php
@@ -0,0 +1,154 @@
+middleNameMale();
+ } elseif ($gender === static::GENDER_FEMALE) {
+ return $this->middleNameFemale();
+ }
+
+ return $this->middleName(static::randomElement(array(
+ static::GENDER_MALE,
+ static::GENDER_FEMALE,
+ )));
+ }
+
+ /**
+ * Return last name for the specified gender.
+ *
+ * @param string|null $gender A gender of the last name should be generated
+ * for. If the argument is skipped a random gender will be used.
+ * @return string Last name
+ */
+ public function lastName($gender = null)
+ {
+ $lastName = static::randomElement(static::$lastName);
+
+ if (static::GENDER_FEMALE === $gender) {
+ return $lastName . 'a';
+ } elseif (static::GENDER_MALE === $gender) {
+ return $lastName;
+ }
+
+ return $lastName . static::randomElement(static::$lastNameSuffix);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php
index 871f7a13..7a989c28 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php
@@ -4,6 +4,13 @@ namespace Faker\Provider\ru_RU;
class Text extends \Faker\Provider\Text
{
+ public function realText($maxNbChars = 200, $indexSize = 2)
+ {
+ $realText = parent::realText($maxNbChars, $indexSize);
+
+ return iconv('UTF-8', 'UTF-8//IGNORE', $realText);
+ }
+
/**
* From ru.wikisource.org
*
@@ -21,7 +28,6 @@ class Text extends \Faker\Provider\Text
*
* Language: Russian
*
- * @licence Creative Commons Attribution-ShareAlike https://creativecommons.org/licenses/by-sa/3.0/deed.ru
* @see https://wikimediafoundation.org/wiki/Terms_of_Use/
* @link http://ru.wikisource.org/wiki/%D0%9C%D1%91%D1%80%D1%82%D0%B2%D1%8B%D0%B5_%D0%B4%D1%83%D1%88%D0%B8_(%D0%93%D0%BE%D0%B3%D0%BE%D0%BB%D1%8C)/%D0%A2%D0%BE%D0%BC_I/%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_I
* @var string
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php
index 1f5fad2e..53091d55 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php
@@ -46,7 +46,7 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
}
/**
@@ -59,6 +59,6 @@ class Company extends \Faker\Provider\Company
$result[] = static::randomElement($word);
}
- return join($result, ' ');
+ return join(' ', $result);
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php
index 2a3e658c..2ed758ac 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php
@@ -74,9 +74,9 @@ class Person extends \Faker\Provider\Person
'Cyprich', 'CÃger', 'Dacej', 'Danko', 'Debnár', 'Dej', 'Dekýš', 'Doležal', 'Dostál', 'DoÄolomanský', 'Drajna', 'Droppa', 'Dubovský',
'Dudek', 'Dula', 'Dulla', 'DusÃk', 'DvonÄ', 'Dzurjanin', 'Dávid', 'Fabian', 'Fabián', 'Fajnor', 'FarkaÅ¡ovský', 'Feldek', 'Fico', 'Filc',
'Filip', 'Finka', 'Ftorek', 'Galis', 'Gallo', 'GaÅ¡par', 'GaÅ¡paroviÄ', 'GocnÃk', 'Golonka', 'GreguÅ¡', 'Grznár', 'Hablák', 'HabÅ¡uda',
- 'HaluÅ¡ka', 'Halák', 'Hanko', 'Hanzal', 'Hanzel', 'Hanzel', 'HaÅ¡Äák', 'Heretik', 'HeÄko', 'HeÄková', 'HlaváÄek', 'Hlinka', 'Hochschorner',
+ 'HaluÅ¡ka', 'Halák', 'Hanko', 'Hanzal', 'Hanzel', 'Hanzel', 'HaÅ¡Äák', 'Heretik', 'HeÄko', 'HlaváÄek', 'Hlinka', 'Hochschorner',
'Holub', 'Holuby', 'Horváth', 'Hossa', 'HraÅ¡ko', 'Hric', 'Hrmo', 'HruÅ¡ovský', 'Huba', 'HudáÄek', 'Hála', 'IhnaÄák', 'JanoÅ¡ka', 'JantoÅ¡oviÄ',
- 'JanÃk', 'Jonata', 'Jurina', 'Jurinová', 'JurÃk', 'Jáni', 'JánoÅ¡Ãk', 'Kaliský', 'Karul', 'KarvaÅ¡', 'KenÞ', 'Klapka', 'Klaus', 'KolnÃk',
+ 'JanÃk', 'Jonata', 'Jurina', 'JurÃk', 'Jáni', 'JánoÅ¡Ãk', 'Kaliský', 'Karul', 'KarvaÅ¡', 'KenÞ', 'Klapka', 'Klaus', 'KolnÃk',
'Konstantinidis', 'Korec', 'Kostrec', 'KováÄ', 'KováÄik', 'Koza', 'KubÃk', 'KuÄera', 'Labuda', 'LangoÅ¡', 'LepÅ¡Ãk', 'Lexa', 'Lintner',
'Lubina', 'LukáÄ', 'Lupták', 'LÃÅ¡ka', 'Majeský', 'Malachovský', 'MalÃÅ¡ek', 'Marián', 'Masaryk', 'Maslo', 'MatiaÅ¡ko', 'MedveÄ', 'Menyhért',
'MeÄiar', 'MeÄÃÅ™', 'MikloÅ¡ko', 'MikulÃk', 'MikuÅ¡', 'Mikúš', 'MiÅ¡Ãk', 'MojžiÅ¡', 'MokroÅ¡', 'Molnár', 'MoravÄÃk', 'Musil', 'Mydlo', 'Nagy',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php
old mode 100755
new mode 100644
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php
new file mode 100644
index 00000000..0e899bfe
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php
@@ -0,0 +1,14 @@
+middleNameMale();
+ } elseif ($gender === static::GENDER_FEMALE) {
+ return $this->middleNameFemale();
+ }
+
+ return $this->middleName(static::randomElement(array(
+ static::GENDER_MALE,
+ static::GENDER_FEMALE,
+ )));
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php
index b18a9b53..24187f33 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php
@@ -4,26 +4,48 @@ namespace Faker\Provider\uk_UA;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
+ /**
+ * @see list of Ukraine mobile formats (2017-08-08), source: https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BB%D0%B0%D0%BD_%D0%BD%D1%83%D0%BC%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D1%8B
+ */
protected static $formats = array(
// International format (mobile)
'+38050#######',
+ '+38066#######',
+ '+38068#######',
'+38096#######',
'+38067#######',
+ '+38091#######',
+ '+38092#######',
'+38093#######',
+ '+38094#######',
+ '+38095#######',
+ '+38096#######',
+ '+38097#######',
+ '+38098#######',
'+38063#######',
'+38099#######',
// Internal country format (mobile)
'050#######',
+ '066#######',
+ '068#######',
'096#######',
'067#######',
+ '091#######',
+ '092#######',
'093#######',
+ '094#######',
+ '095#######',
+ '096#######',
+ '097#######',
+ '098#######',
'063#######',
'099#######',
// More generic formats
'+38(0##)#######',
- '+38(0###)######'
+ '+38(0###)######',
+ '+38(0####)#####'
);
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php
index 38f686bf..337df3e5 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php
@@ -21,7 +21,6 @@ class Text extends \Faker\Provider\Text
*
* Language: Ukrainian
*
- * @licence Creative Commons Attribution-ShareAlike https://creativecommons.org/licenses/by-sa/3.0/deed.ru
* @see https://wikimediafoundation.org/wiki/Terms_of_Use/
* @link http://uk.wikisource.org/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80_%D0%91%D0%B5%D1%80%D0%BA%D1%83%D1%82
* @var string
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php
index a520dcef..47414f1f 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php
@@ -104,7 +104,7 @@ class Address extends \Faker\Provider\Address
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
- 'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
+ 'Pakistan', 'Palau', 'Palestinian Territories', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php
index 694e3951..5f9f60a1 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php
@@ -46,7 +46,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
),
);
- public static function phoneNumber()
+ public function phoneNumber()
{
$areaCode = static::randomElement(static::$areaCodes);
$areaCodeLength = strlen($areaCode);
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php
index f36a49a6..19d1c941 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php
@@ -5,12 +5,108 @@ namespace Faker\Provider\zh_CN;
class Address extends \Faker\Provider\Address
{
- protected static $cites = array('北京', '上海', '天津', 'é‡åº†', '哈尔滨', '长春', '沈阳', '呼和浩特', '石家庄', 'ä¹Œé²æœ¨é½', 'å…°å·ž', '西å®', '西安', 'é“¶å·', '郑州', '济å—', '太原', 'åˆè‚¥', 'æ¦æ±‰', 'é•¿æ²™', 'å—京', 'æˆéƒ½', '贵阳', '昆明', 'å—å®', '拉è¨', 'æå·ž', 'å—æ˜Œ', '广州', 'ç¦å·ž', 'æµ·å£', '香港', '澳门');
+ protected static $cites = array(
+ '北京', '上海', '天津', 'é‡åº†',
+ '哈尔滨', '长春', '沈阳', '呼和浩特',
+ '石家庄', 'ä¹Œé²æœ¨é½', 'å…°å·ž', '西å®',
+ '西安', 'é“¶å·', '郑州', '济å—',
+ '太原', 'åˆè‚¥', 'æ¦æ±‰', 'é•¿æ²™',
+ 'å—京', 'æˆéƒ½', '贵阳', '昆明',
+ 'å—å®', '拉è¨', 'æå·ž', 'å—æ˜Œ',
+ '广州', 'ç¦å·ž', 'æµ·å£',
+ '香港', '澳门'
+ );
- protected static $areas = array('西å¤åŒº', 'æ°¸å·åŒº', '秀英区', '高港区', '清城区', '兴山区', '锡山区', '清河区', 'é¾™æ½åŒº', 'åŽé¾™åŒº', '海陵区', '滨城区', '东丽区', '高åªåŒº', '沙湾区', '平山区', '城北区', '海港区', '沙市区', 'åŒæ»¦åŒº', '长寿区', 'å±±äºåŒº', 'å—æ¹–区', '浔阳区', 'å—长区', 'å‹å¥½åŒº', '安次区', '翔安区', '沈河区', 'é都区', '西峰区', 'è§å±±åŒº', '金平区', '沈北新区', 'åå—区', '上街区', '城东区', '牧野区', '大东区', '白云区', '花溪区', 'å‰åˆ©åŒº', '新城区', '怀柔区', 'å…æžç‰¹åŒº', '涪城区', '清浦区', 'å—æºªåŒº', 'æ·„å·åŒº', '高明区');
+ protected static $states = array(
+ '北京市', '天津市', '河北çœ', '山西çœ',
+ '内蒙å¤è‡ªæ²»åŒº', 'è¾½å®çœ', '剿ž—çœ',
+ '黑龙江çœ', '上海市', '江è‹çœ',
+ '浙江çœ', '安徽çœ', 'ç¦å»ºçœ', '江西çœ',
+ '山东çœ', 'æ²³å—çœ', '湖北çœ', 'æ¹–å—çœ',
+ '广东çœ', '广西壮æ—自治区', 'æµ·å—çœ',
+ 'é‡åº†å¸‚', 'å››å·çœ', '贵州çœ', '云å—çœ',
+ '西è—自治区', '陕西çœ', '甘肃çœ', 'é’æµ·çœ',
+ 'å®å¤å›žæ—自治区', '新疆维å¾å°”自治区',
+ '香港特别行政区', '澳门特别行政区', 'å°æ¹¾çœ'
+ );
+
+ protected static $stateAbbr = array(
+ '京', 'çš–', 'æ¸', 'é—½',
+ '甘', '粤', '桂', '黔',
+ 'ç¼', '冀', '豫', '黑',
+ 'é„‚', '湘', 'å‰', 'è‹',
+ 'èµ£', 'è¾½', 'è’™', 'å®',
+ 'é’', 'é²', '晋', '陕',
+ '沪', 'å·', 'æ´¥', 'è—',
+ '新', '滇', '浙', '港',
+ 'æ¾³', 'å°'
+ );
+
+ protected static $areas = array(
+ '西å¤åŒº', 'æ°¸å·åŒº', '秀英区', '高港区',
+ '清城区', '兴山区', '锡山区', '清河区',
+ 'é¾™æ½åŒº', 'åŽé¾™åŒº', '海陵区', '滨城区',
+ '东丽区', '高åªåŒº', '沙湾区', '平山区',
+ '城北区', '海港区', '沙市区', 'åŒæ»¦åŒº',
+ '长寿区', 'å±±äºåŒº', 'å—æ¹–区', '浔阳区',
+ 'å—长区', 'å‹å¥½åŒº', '安次区', '翔安区',
+ '沈河区', 'é都区', '西峰区', 'è§å±±åŒº',
+ '金平区', '沈北新区', 'åå—区', '上街区',
+ '城东区', '牧野区', '大东区', '白云区',
+ '花溪区', 'å‰åˆ©åŒº', '新城区', '怀柔区',
+ 'å…æžç‰¹åŒº', '涪城区', '清浦区', 'å—æºªåŒº',
+ 'æ·„å·åŒº', '高明区', '金水区', 'ä¸åŽŸåŒº',
+ '高新开å‘区', 'ç»æµŽå¼€å‘新区', '新区'
+ );
protected static $country = array(
- '阿富汗', 'é˜¿æ‹‰æ–¯åŠ ', '阿尔巴尼亚', '阿尔åŠåˆ©äºš', '安é“å°”', '安哥拉', 'å®‰åœæ‹‰å²›è‹±', '安æç“œå’Œå·´å¸ƒè¾¾', 'é˜¿æ ¹å»·', '亚美尼亚', '阿é²å·´å²›', '阿森æ¾', '澳大利亚', '奥地利', '阿塞拜疆', 'å·´æž—', 'åŸåŠ æ‹‰å›½', '巴巴多斯', '白俄罗斯', '比利时', '伯利兹', 'è´å®', '百慕大群岛', 'ä¸ä¸¹', '玻利维亚', '波斯尼亚和黑塞哥维那', 'åšèŒ¨ç“¦çº³', '巴西', 'ä¿åŠ åˆ©äºš', '布基纳法索', '布隆迪', '喀麦隆', 'åŠ æ‹¿å¤§', 'åŠ é‚£åˆ©ç¾¤å²›', '佛得角', '开曼群岛', 'ä¸éž', 'ä¹å¾—', '智利', '圣诞岛', '科科斯岛', '哥伦比亚', '巴哈马国', '多米尼克国', 'ç§‘æ‘©ç½—', '刚果', '科克群岛', 'å“¥æ–¯è¾¾é»ŽåŠ ', '克罗地亚', 'å¤å·´', '塞浦路斯', 'æ·å…‹', '丹麦', 'è¿ªæˆˆåŠ è¥¿äºšå²›', 'å‰å¸ƒæ', 'å¤šç±³å°¼åŠ å…±å’Œå›½', '厄瓜多尔', '埃åŠ', 'è¨å°”瓦多', '赤é“å‡ å†…äºš', '厄立特里亚', '爱沙尼亚', '埃塞俄比亚', 'ç¦å…‹å…°ç¾¤å²›', '法罗群岛', 'æ–æµŽ', '芬兰', '法国', '法属åœäºšé‚£', '法属波里尼西亚', 'åŠ è“¬', '冈比亚', 'æ ¼é²å‰äºš', '德国', 'åŠ çº³', '直布罗陀', '希腊', 'æ ¼é™µå…°å²›', 'æ ¼æž—çº³è¾¾', '瓜德罗普岛', '关岛', 'å±åœ°é©¬æ‹‰', 'å‡ å†…äºš', 'å‡ å†…äºšæ¯”ç»', 'åœäºšé‚£', '海地', 'å¤å¨å¤·', '洪都拉斯', '匈牙利', '冰岛', 'å°åº¦', 'å°åº¦å°¼è¥¿äºš', '伊郎', '伊拉克', '爱尔兰', '以色列', 'æ„大利', '科特迪瓦', 'ç‰™ä¹°åŠ ', '日本', '约旦', '柬埔塞', '哈è¨å…‹æ–¯å¦', '肯尼亚', '基里巴斯', 'æœé²œ', '韩国', 'ç§‘å¨ç‰¹', 'å‰å°”剿–¯æ–¯å¦', 'è€æŒ', '拉脱维亚', '黎巴嫩', '莱索托', '利比里亚', '利比亚', '列支敦士登', 'ç«‹é™¶å®›', '墿£®å ¡', '马其顿', 'é©¬è¾¾åŠ æ–¯åŠ ', '马拉维', '马æ¥è¥¿äºš', '马尔代夫', '马里', '马耳他', '马里亚纳群岛', '马ç»å°”群岛', '马æå°¼å…‹', '毛里塔尼亚', '毛里求斯', '马约特岛', '墨西哥', '密克罗尼西亚', 'ä¸é€”å²›', '摩尔多瓦', '摩纳哥', 'è’™å¤', '蒙特塞拉特岛', '摩洛哥', '莫桑比克', '缅甸', '纳米比亚', 'ç‘™é²', '尼泊尔', 'è·å…°', 'è·å±žå®‰çš„列斯群岛', '新喀里多尼亚群岛', '新西兰', 'å°¼åŠ æ‹‰ç“œ', '尼日尔', '尼日利亚', '纽埃岛', '诺ç¦å…‹å²›', '挪å¨', '阿曼', '帕劳', '巴拿马', 'å·´å¸ƒäºšæ–°å‡ å†…äºš', '巴拉åœ', '秘é²', 'è²å¾‹å®¾', '波兰', 'è‘¡è„牙', '巴基斯å¦', '波多黎å„', 'å¡å¡”å°”', '留尼汪岛', '罗马尼亚', 'ä¿„ç½—æ–¯', '墿—ºè¾¾', 'ä¸œè¨æ‘©äºš', 'è¥¿è¨æ‘©äºš', '圣马力诺', '圣皮埃尔岛åŠå¯†å…‹éš†å²›', '圣多美和普林西比', '沙特阿拉伯', 'å¡žå†…åŠ å°”', '塞舌尔', 'æ–°åŠ å¡', '斯洛ä¼å…‹', '斯洛文尼亚', '所罗门群岛', '索马里', 'å—éž', '西ç牙', '斯里兰å¡', '圣克里斯托弗和尼维斯', '圣赫勒拿', '圣å¢è¥¿äºš', '圣文森特岛', 'è‹ä¸¹', 'è‹é‡Œå—', 'æ–¯å¨å£«å…°', '瑞典', '瑞士', 'å™åˆ©äºš', 'å¡”å‰å…‹æ–¯å¦', '妿¡‘尼亚', '泰国', '阿拉伯è”åˆé…‹é•¿å›½', '多哥', '托克劳群岛', 'æ±¤åŠ ', '特立尼达和多巴哥', 'çªå°¼æ–¯', '土耳其', '土库曼斯å¦', '特克斯和凯科斯群岛(', '图瓦å¢', '美国', '乌干达', '乌克兰', '英国', '乌拉åœ', '乌兹别克斯å¦', '瓦努阿图', '梵蒂冈', '委内瑞拉', 'è¶Šå—', '维尔京群岛', '维尔京群岛和圣罗克伊', 'å¨å…‹å²›', '瓦里斯和富士那群岛', '西撒哈拉', '也门', 'å—æ–¯æ‹‰å¤«', '扎伊尔', '赞比亚', '桑给巴尔', '津巴布韦', 'ä¸åŽäººæ°‘共和国', 'ä¸å›½'
+ '阿富汗', 'é˜¿æ‹‰æ–¯åŠ ', '阿尔巴尼亚', '阿尔åŠåˆ©äºš',
+ '安é“å°”', '安哥拉', 'å®‰åœæ‹‰å²›è‹±', '安æç“œå’Œå·´å¸ƒè¾¾',
+ 'é˜¿æ ¹å»·', '亚美尼亚', '阿é²å·´å²›', '阿森æ¾', '澳大利亚',
+ '奥地利', '阿塞拜疆', 'å·´æž—', 'åŸåŠ æ‹‰å›½', '巴巴多斯',
+ '白俄罗斯', '比利时', '伯利兹', 'è´å®', '百慕大群岛',
+ 'ä¸ä¸¹', '玻利维亚', '波斯尼亚和黑塞哥维那', 'åšèŒ¨ç“¦çº³',
+ '巴西', 'ä¿åŠ åˆ©äºš', '布基纳法索', '布隆迪', '喀麦隆',
+ 'åŠ æ‹¿å¤§', 'åŠ é‚£åˆ©ç¾¤å²›', '佛得角', '开曼群岛', 'ä¸éž',
+ 'ä¹å¾—', '智利', '圣诞岛', '科科斯岛', '哥伦比亚',
+ '巴哈马国', '多米尼克国', '科摩罗', '刚果', '科克群岛',
+ 'å“¥æ–¯è¾¾é»ŽåŠ ', '克罗地亚', 'å¤å·´', '塞浦路斯', 'æ·å…‹',
+ '丹麦', 'è¿ªæˆˆåŠ è¥¿äºšå²›', 'å‰å¸ƒæ', 'å¤šç±³å°¼åŠ å…±å’Œå›½',
+ '厄瓜多尔', '埃åŠ', 'è¨å°”瓦多', '赤é“å‡ å†…äºš',
+ '厄立特里亚', '爱沙尼亚', '埃塞俄比亚', 'ç¦å…‹å…°ç¾¤å²›',
+ '法罗群岛', 'æ–æµŽ', '芬兰', '法国', '法属åœäºšé‚£',
+ '法属波里尼西亚', 'åŠ è“¬', '冈比亚', 'æ ¼é²å‰äºš', '德国',
+ 'åŠ çº³', '直布罗陀', '希腊', 'æ ¼é™µå…°å²›', 'æ ¼æž—çº³è¾¾',
+ '瓜德罗普岛', '关岛', 'å±åœ°é©¬æ‹‰', 'å‡ å†…äºš', 'å‡ å†…äºšæ¯”ç»',
+ 'åœäºšé‚£', '海地', 'å¤å¨å¤·', '洪都拉斯', '匈牙利', '冰岛',
+ 'å°åº¦', 'å°åº¦å°¼è¥¿äºš', '伊郎', '伊拉克', '爱尔兰', '以色列',
+ 'æ„大利', '科特迪瓦', 'ç‰™ä¹°åŠ ', '日本', '约旦', '柬埔塞',
+ '哈è¨å…‹æ–¯å¦', '肯尼亚', '基里巴斯', 'æœé²œ', '韩国', 'ç§‘å¨ç‰¹',
+ 'å‰å°”剿–¯æ–¯å¦', 'è€æŒ', '拉脱维亚', '黎巴嫩', '莱索托',
+ '利比里亚', '利比亚', '列支敦士登', 'ç«‹é™¶å®›', '墿£®å ¡',
+ '马其顿', 'é©¬è¾¾åŠ æ–¯åŠ ', '马拉维', '马æ¥è¥¿äºš', '马尔代夫',
+ '马里', '马耳他', '马里亚纳群岛', '马ç»å°”群岛', '马æå°¼å…‹',
+ '毛里塔尼亚', '毛里求斯', '马约特岛', '墨西哥', '密克罗尼西亚',
+ 'ä¸é€”å²›', '摩尔多瓦', '摩纳哥', 'è’™å¤', '蒙特塞拉特岛',
+ '摩洛哥', '莫桑比克', '缅甸', '纳米比亚', 'ç‘™é²', '尼泊尔',
+ 'è·å…°', 'è·å±žå®‰çš„列斯群岛', '新喀里多尼亚群岛', '新西兰',
+ 'å°¼åŠ æ‹‰ç“œ', '尼日尔', '尼日利亚', '纽埃岛', '诺ç¦å…‹å²›',
+ '挪å¨', '阿曼', '帕劳', '巴拿马', 'å·´å¸ƒäºšæ–°å‡ å†…äºš', '巴拉åœ',
+ '秘é²', 'è²å¾‹å®¾', '波兰', 'è‘¡è„牙', '巴基斯å¦', '波多黎å„',
+ 'å¡å¡”å°”', '留尼汪岛', '罗马尼亚', 'ä¿„ç½—æ–¯', '墿—ºè¾¾',
+ 'ä¸œè¨æ‘©äºš', 'è¥¿è¨æ‘©äºš', '圣马力诺', '圣皮埃尔岛åŠå¯†å…‹éš†å²›',
+ '圣多美和普林西比', '沙特阿拉伯', 'å¡žå†…åŠ å°”', '塞舌尔',
+ 'æ–°åŠ å¡', '斯洛ä¼å…‹', '斯洛文尼亚', '所罗门群岛', '索马里',
+ 'å—éž', '西ç牙', '斯里兰å¡', '圣克里斯托弗和尼维斯',
+ '圣赫勒拿', '圣å¢è¥¿äºš', '圣文森特岛', 'è‹ä¸¹', 'è‹é‡Œå—',
+ 'æ–¯å¨å£«å…°', '瑞典', '瑞士', 'å™åˆ©äºš', 'å¡”å‰å…‹æ–¯å¦', '妿¡‘尼亚',
+ '泰国', '阿拉伯è”åˆé…‹é•¿å›½', '多哥', '托克劳群岛', 'æ±¤åŠ ',
+ '特立尼达和多巴哥', 'çªå°¼æ–¯', '土耳其', '土库曼斯å¦',
+ '特克斯和凯科斯群岛(', '图瓦å¢', '美国', '乌干达', '乌克兰',
+ '英国', '乌拉åœ', '乌兹别克斯å¦', '瓦努阿图', '梵蒂冈',
+ '委内瑞拉', 'è¶Šå—', '维尔京群岛', '维尔京群岛和圣罗克伊',
+ 'å¨å…‹å²›', '瓦里斯和富士那群岛', '西撒哈拉', '也门', 'å—æ–¯æ‹‰å¤«',
+ '扎伊尔', '赞比亚', '桑给巴尔', '津巴布韦', 'ä¸åŽäººæ°‘共和国', 'ä¸å›½'
);
public function city()
@@ -18,6 +114,16 @@ class Address extends \Faker\Provider\Address
return static::randomElement(static::$cites);
}
+ public function state()
+ {
+ return static::randomElement(static::$states);
+ }
+
+ public function stateAbbr()
+ {
+ return static::randomElement(static::$stateAbbr);
+ }
+
public static function area()
{
return static::randomElement(static::$areas);
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php
new file mode 100644
index 00000000..12d29e32
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php
@@ -0,0 +1,66 @@
+format('a') === 'am' ? '上åˆ' : '下åˆ';
+ }
+
+ public static function dayOfWeek($max = 'now')
+ {
+ $map = array(
+ 'Sunday' => '星期日',
+ 'Monday' => '星期一',
+ 'Tuesday' => '星期二',
+ 'Wednesday' => '星期三',
+ 'Thursday' => '星期四',
+ 'Friday' => '星期五',
+ 'Saturday' => '星期å…',
+ );
+ $week = static::dateTime($max)->format('l');
+ return isset($map[$week]) ? $map[$week] : $week;
+ }
+
+ public static function monthName($max = 'now')
+ {
+ $map = array(
+ 'January' => '一月',
+ 'February' => '二月',
+ 'March' => '三月',
+ 'April' => '四月',
+ 'May' => '五月',
+ 'June' => 'å…æœˆ',
+ 'July' => '七月',
+ 'August' => '八月',
+ 'September' => '乿œˆ',
+ 'October' => 'åæœˆ',
+ 'November' => 'å一月',
+ 'December' => 'å二月',
+ );
+ $month = static::dateTime($max)->format('F');
+ return isset($map[$month]) ? $map[$month] : $month;
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php
index 10251dd2..ca10822c 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php
@@ -4,8 +4,13 @@ namespace Faker\Provider\zh_CN;
class Internet extends \Faker\Provider\Internet
{
- protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com');
- protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org');
+ protected static $freeEmailDomain = array(
+ 'gmail.com', 'yahoo.com', 'hotmail.com', '126.com', '163.com', 'qq.com', 'sohu.com', 'sina.com'
+ );
+ protected static $tld = array(
+ 'com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'cn',
+ 'com.cn', 'edu.cn', 'net.cn', 'biz.cn', 'gov.cn', 'org.cn'
+ );
protected static $userNameFormats = array(
'{{word}}.{{word}}',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php
new file mode 100644
index 00000000..183fff13
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php
@@ -0,0 +1,41 @@
+ array(
- '桃園市', 'ä¸å£¢å¸‚', '大溪鎮', '楊梅鎮', '蘆竹鄉',
- '大園鄉', '龜山鄉', '八德市', '龿½é„‰', '平鎮市',
- '新屋鄉', '觀音鄉', '復興鄉',
+ '桃園市' => array(
+ '桃園å€', 'ä¸å£¢å€', '大溪å€', '楊梅å€', '蘆竹å€',
+ '大園å€', '龜山å€', 'å…«å¾·å€', '龿½å€', '平鎮å€',
+ '新屋å€', '觀音å€', '復興å€',
),
'新竹縣' => array(
'竹北市', '竹æ±éŽ®', '新埔鎮', '關西鎮', 'æ¹–å£é„‰',
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php
index 2cefdcb4..26704ab5 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php
@@ -250,4 +250,16 @@ class Company extends \Faker\Provider\Company
}
return $result;
}
+
+ /**
+ * return standard VAT / Tax ID / Uniform Serial Number
+ *
+ * @example 28263822
+ *
+ * @return int
+ */
+ public function VAT()
+ {
+ return static::randomNumber(8, true);
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php
index 71f248b3..e0071bef 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php
@@ -4,6 +4,39 @@ namespace Faker\Provider\zh_TW;
class Person extends \Faker\Provider\Person
{
+ /**
+ * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89
+ */
+ public static $idBirthplaceCode = array(
+ 'A' => 10,
+ 'B' => 11,
+ 'C' => 12,
+ 'D' => 13,
+ 'E' => 14,
+ 'F' => 15,
+ 'G' => 16,
+ 'H' => 17,
+ 'I' => 34,
+ 'J' => 18,
+ 'K' => 19,
+ 'M' => 21,
+ 'N' => 22,
+ 'O' => 35,
+ 'P' => 23,
+ 'Q' => 24,
+ 'T' => 27,
+ 'U' => 28,
+ 'V' => 29,
+ 'W' => 32,
+ 'X' => 30,
+ 'Z' => 33
+ );
+
+ /**
+ * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89
+ */
+ public static $idDigitValidator = array(1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1);
+
protected static $maleNameFormats = array(
'{{lastName}}{{firstNameMale}}',
);
@@ -129,4 +162,40 @@ class Person extends \Faker\Provider\Person
{
return '';
}
+
+ /**
+ * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
+ *
+ * @see https://en.wikipedia.org/wiki/National_Identification_Card_(Republic_of_China)
+ *
+ * @return string Length 10 alphanumeric characters, begins with 1 latin character (birthplace),
+ * 1 number (gender) and then 8 numbers (the last one is check digit).
+ */
+ public function personalIdentityNumber($gender = null)
+ {
+ $birthPlace = self::randomKey(self::$idBirthplaceCode);
+ $birthPlaceCode = self::$idBirthplaceCode[$birthPlace];
+
+ $gender = ($gender != null) ? $gender : self::randomElement(array(self::GENDER_FEMALE, self::GENDER_MALE));
+ $genderCode = ($gender === self::GENDER_MALE) ? 1 : 2;
+
+ $randomNumberCode = self::randomNumber(7, true);
+
+ $codes = str_split($birthPlaceCode . $genderCode . $randomNumberCode);
+ $total = 0;
+
+ foreach ($codes as $key => $code) {
+ $total += $code * self::$idDigitValidator[$key];
+ }
+
+ $checkSumDigit = 10 - ($total % 10);
+
+ if ($checkSumDigit == 10) {
+ $checkSumDigit = 0;
+ }
+
+ $id = $birthPlace . $genderCode . $randomNumberCode . $checkSumDigit;
+
+ return $id;
+ }
}
diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php
index b35903f6..887d12bb 100644
--- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php
+++ b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php
@@ -15,110 +15,884 @@ class Text extends \Faker\Provider\Text
protected static $notBeginPunct = array('ã€', '。', 'ã€', 'ã€', 'ï¼', '?', 'ー', ',', ':', 'ï¼›');
/**
- * Title: 三國演義 Romance of the Three Kingdoms
- * Author: ç¾…è²«ä¸ Luo Guanzhong
- * Language: Chinese
- *
- * @see http://www.gutenberg.org/cache/epub/11/pg11.txt
+ * Title: å¶å–Š Call to Arms (1922)
+ * Author: é¯è¿… Lu Xun
+ * Language: Traditional Chinese
+ * @see https://zh.wikisource.org/wiki/%E5%90%B6%E5%96%8A
* @var string
*/
protected static $baseText = <<<'EOT'
-第一回:宴桃園豪傑三çµç¾©ï¼Œæ–¬é»ƒå·¾è‹±é›„首立功
+æˆ‘åœ¨å¹´é’æ™‚候也曾經åšéŽè¨±å¤šå¤¢ï¼Œå¾Œä¾†å¤§åŠå¿˜å»äº†ï¼Œä½†è‡ªå·±ä¹Ÿä¸¦ä¸ä»¥çˆ²å¯æƒœã€‚所謂回憶者,雖說å¯ä»¥ä½¿äººæ¡æ¬£ï¼Œæœ‰æ™‚也ä¸å…使人寂寞,使精神的絲縷還牽著已é€çš„å¯‚å¯žçš„æ™‚å…‰ï¼Œåˆæœ‰ä»€éº¼æ„味呢,而我å苦于ä¸èƒ½å…¨å¿˜å»ï¼Œé€™ä¸èƒ½å…¨å¿˜çš„一部分,到ç¾åœ¨ä¾¿æˆäº†ã€Šå¶å–Šã€‹çš„來由。
+我有四年多,曾經常常,——幾乎是æ¯å¤©ï¼Œå‡ºå…¥äºŽè³ªé‹ªå’Œè—¥åº—è£ï¼Œå¹´ç´€å¯æ˜¯å¿˜å»äº†ï¼Œç¸½ä¹‹æ˜¯è—¥åº—的櫃臺æ£å’Œæˆ‘一樣高,質鋪的是比我高一å€ï¼Œæˆ‘從一å€é«˜çš„æ«ƒè‡ºå¤–é€ä¸Šè¡£æœæˆ–首飾去,在侮蔑裡接了錢,å†åˆ°ä¸€æ¨£é«˜çš„æ«ƒè‡ºä¸Šçµ¦æˆ‘久病的父親去買藥。回家之後,åˆé ˆå¿™åˆ¥çš„äº‹äº†ï¼Œå› çˆ²é–‹æ–¹çš„é†«ç”Ÿæ˜¯æœ€æœ‰åçš„ï¼Œä»¥æ¤æ‰€ç”¨çš„è—¥å¼•ä¹Ÿå¥‡ç‰¹ï¼šå†¬å¤©çš„è˜†æ ¹ï¼Œç¶“éœœä¸‰å¹´çš„ç”˜è”—ï¼ŒèŸ‹èŸ€è¦åŽŸå°çš„,çµåçš„å¹³åœ°æœ¨ï¼Œâ€¦â€¦å¤šä¸æ˜¯å®¹æ˜“辦到的æ±è¥¿ã€‚然而我的父親終于日é‡ä¸€æ—¥çš„亡故了。
+有誰從å°åº·äººå®¶è€Œå¢œå…¥å›°é “的麼,我以爲在這途路ä¸ï¼Œå¤§æ¦‚å¯ä»¥çœ‹è¦‹ä¸–人的真é¢ç›®ï¼›æˆ‘è¦åˆ°N進Kå¸å ‚去了,仿佛是想走異路,逃異地,去尋求別樣的人們。我的æ¯è¦ªæ²’有法,辦了八元的å·è³‡ï¼Œèªªæ˜¯ç”±æˆ‘的自便;然而伊å“äº†ï¼Œé€™æ£æ˜¯æƒ…ç†ä¸çš„äº‹ï¼Œå› çˆ²é‚£æ™‚è®€æ›¸æ‡‰è©¦æ˜¯æ£è·¯ï¼Œæ‰€è¬‚叿´‹å‹™ï¼Œç¤¾æœƒä¸Šä¾¿ä»¥çˆ²æ˜¯ä¸€ç¨®èµ°æŠ•無路的人,åªå¾—å°‡éˆé‚賣給鬼å,è¦åŠ å€çš„奚è½è€Œä¸”排斥的,而æ³ä¼Šåˆçœ‹ä¸è¦‹è‡ªå·±çš„å…’å了。然而我也顧ä¸å¾—這些事,終于到N去進了Kå¸å ‚了,在這å¸å ‚è£ï¼Œæˆ‘纔知é“ä¸–ä¸Šé‚„æœ‰æ‰€è¬‚æ ¼è‡´ï¼Œç®—å¸ï¼Œåœ°ç†ï¼Œæ·å²ï¼Œç¹ªåœ–和體æ“。生ç†å¸ä¸¦ä¸æ•™ï¼Œä½†æˆ‘們å»çœ‹åˆ°äº›æœ¨ç‰ˆçš„《全體新論》和《化å¸è¡›ç”Ÿè«–》之類了。我還記得先å‰çš„醫生的è°è«–和方藥,和ç¾åœ¨æ‰€çŸ¥é“的比較起來,便漸漸的悟得ä¸é†«ä¸éŽæ˜¯ä¸€ç¨®æœ‰æ„的或無æ„的騙åï¼ŒåŒæ™‚åˆå¾ˆèµ·äº†å°äºŽè¢«é¨™çš„病人和他的家æ—çš„åŒæƒ…;而且從è¯å‡ºçš„æ·å²ä¸Šï¼ŒåˆçŸ¥é“äº†æ—¥æœ¬ç¶æ–°æ˜¯å¤§åŠç™¼ç«¯äºŽè¥¿æ–¹é†«å¸çš„事實。
+å› çˆ²é€™äº›å¹¼ç¨šçš„çŸ¥è˜ï¼Œå¾Œä¾†ä¾¿ä½¿æˆ‘çš„å¸ç±åˆ—在日本一個鄉間的醫å¸å°ˆé–€å¸æ ¡è£äº†ã€‚我的夢很美滿,é 備咿¥å›žä¾†ï¼Œæ•‘æ²»åƒæˆ‘çˆ¶è¦ªä¼¼çš„è¢«èª¤çš„ç—…äººçš„ç–¾è‹¦ï¼Œæˆ°çˆæ™‚候便去當è»é†«ï¼Œä¸€é¢åˆä¿ƒé€²äº†åœ‹äººå°äºŽç¶æ–°çš„信仰。我已ä¸çŸ¥é“教授微生物å¸çš„æ–¹æ³•,ç¾åœ¨åˆæœ‰äº†æ€Žæ¨£çš„進æ¥äº†ï¼Œç¸½ä¹‹é‚£æ™‚æ˜¯ç”¨äº†é›»å½±ï¼Œä¾†é¡¯ç¤ºå¾®ç”Ÿç‰©çš„å½¢ç‹€çš„ï¼Œå› æ¤æœ‰æ™‚講義的一段è½å·²å®Œï¼Œè€Œæ™‚é–“é‚„æ²’æœ‰åˆ°ï¼Œæ•™å¸«ä¾¿æ˜ äº›é¢¨æ™¯æˆ–æ™‚äº‹çš„ç•«ç‰‡çµ¦å¸ç”Ÿçœ‹ï¼Œä»¥ç”¨åŽ»é€™å¤šé¤˜çš„å…‰é™°ã€‚å…¶æ™‚æ£ç•¶æ—¥ä¿„戰çˆçš„æ™‚å€™ï¼Œé—œäºŽæˆ°äº‹çš„ç•«ç‰‡è‡ªç„¶ä¹Ÿå°±æ¯”è¼ƒçš„å¤šäº†ï¼Œæˆ‘åœ¨é€™ä¸€å€‹è¬›å ‚ä¸ï¼Œä¾¿é ˆå¸¸å¸¸éš¨å–œæˆ‘é‚£åŒå¸å€‘çš„æ‹æ‰‹å’Œå–采。有一回,我竟在畫片上忽然會見我久é•的許多ä¸åœ‹äººäº†ï¼Œä¸€å€‹ç¶åœ¨ä¸é–“,許多站在左å³ï¼Œä¸€æ¨£æ˜¯å¼·å£¯çš„é«”æ ¼ï¼Œè€Œé¡¯å‡ºéº»æœ¨çš„ç¥žæƒ…ã€‚æ“šè§£èªªï¼Œå‰‡ç¶è‘—的是替俄國åšäº†è»äº‹ä¸Šçš„åµæŽ¢ï¼Œæ£è¦è¢«æ—¥è»ç 下é 顱來示衆,而åœè‘—的便是來賞鑑這示衆的盛舉的人們。
+這一å¸å¹´æ²’有完畢,我已經到了æ±äº¬äº†ï¼Œå› 爲從那一回以後,我便覺得醫å¸ä¸¦éžä¸€ä»¶ç·Šè¦äº‹ï¼Œå‡¡æ˜¯æ„šå¼±çš„國民,å½ä½¿é«”æ ¼å¦‚ä½•å¥å…¨ï¼Œå¦‚何èŒå£¯ï¼Œä¹Ÿåªèƒ½åšæ¯«ç„¡æ„ç¾©çš„ç¤ºè¡†çš„ææ–™å’Œçœ‹å®¢ï¼Œç—…æ»å¤šå°‘是ä¸å¿…以爲ä¸å¹¸çš„。所以我們的第一è¦è‘—ï¼Œæ˜¯åœ¨æ”¹è®Šä»–å€‘çš„ç²¾ç¥žï¼Œè€Œå–„äºŽæ”¹è®Šç²¾ç¥žçš„æ˜¯ï¼Œæˆ‘é‚£æ™‚ä»¥çˆ²ç•¶ç„¶è¦æŽ¨æ–‡è—,于是想æå€¡æ–‡è—é‹å‹•了。在æ±äº¬çš„ç•™å¸ç”Ÿå¾ˆæœ‰å¸æ³•政ç†åŒ–以至è¦å¯Ÿå·¥æ¥çš„,但沒有人治文å¸å’Œç¾Žè¡“ï¼›å¯æ˜¯åœ¨å†·æ·¡çš„空氣ä¸ï¼Œä¹Ÿå¹¸è€Œå°‹åˆ°å¹¾å€‹åŒå¿—了,æ¤å¤–åˆé‚€é›†äº†å¿…é ˆçš„å¹¾å€‹äººï¼Œå•†é‡ä¹‹å¾Œï¼Œç¬¬ä¸€æ¥ç•¶ç„¶æ˜¯å‡ºé›œèªŒï¼Œå目是å–“新的生命â€çš„æ„æ€ï¼Œå› 爲我們那時大抵帶些復å¤çš„傾å‘,所以åªè¬‚之《新生》。
+《新生》的出版之期接近了,但最先就隱去了若干擔當文å—的人,接ç€åˆé€ƒèµ°äº†è³‡æœ¬ï¼Œçµæžœåªå‰©ä¸‹ä¸å一錢的三個人。創始時候旣已背時,失敗時候當然無å¯å¿èªžï¼Œè€Œå…¶å¾Œå»é€£é€™ä¸‰å€‹äººä¹Ÿéƒ½çˆ²å„自的é‹å‘½æ‰€é©…ç–,ä¸èƒ½åœ¨ä¸€è™•縱談將來的好夢了,這就是我們的並未產生的《新生》的çµå±€ã€‚
+我感到未嘗經驗的無èŠï¼Œæ˜¯è‡ªæ¤ä»¥å¾Œçš„äº‹ã€‚æˆ‘ç•¶åˆæ˜¯ä¸çŸ¥å…¶æ‰€ä»¥ç„¶çš„;後來想,凡有一人的主張,得了贊和,是促其å‰é€²çš„,得了åå°ï¼Œæ˜¯ä¿ƒå…¶å¥®é¬çš„ï¼Œç¨æœ‰å«å–ŠäºŽç”Ÿäººä¸ï¼Œè€Œç”Ÿäººä¸¦ç„¡å應,既éžè´ŠåŒï¼Œä¹Ÿç„¡åå°ï¼Œå¦‚置身毫無邊際的è’åŽŸï¼Œç„¡å¯æŽªæ‰‹çš„äº†ï¼Œé€™æ˜¯æ€Žæ¨£çš„æ‚²å“€å‘µï¼Œæˆ‘äºŽæ˜¯ä»¥æˆ‘æ‰€æ„Ÿåˆ°è€…çˆ²å¯‚å¯žã€‚
+這寂寞åˆä¸€å¤©ä¸€å¤©çš„長大起來,如大毒蛇,çºä½äº†æˆ‘çš„éˆé‚了。
+然而我雖然自有無端的悲哀,å»ä¹Ÿä¸¦ä¸æ†¤æ‡£ï¼Œå› 爲這經驗使我åçœï¼Œçœ‹è¦‹è‡ªå·±äº†ï¼šå°±æ˜¯æˆ‘æ±ºä¸æ˜¯ä¸€å€‹æŒ¯è‡‚一呼應者雲集的英雄。
+åªæ˜¯æˆ‘自己的寂寞是ä¸å¯ä¸é©…é™¤çš„ï¼Œå› çˆ²é€™äºŽæˆ‘å¤ªç—›è‹¦ã€‚æˆ‘äºŽæ˜¯ç”¨äº†ç¨®ç¨®æ³•ï¼Œä¾†éº»é†‰è‡ªå·±çš„éˆé‚,使我沈入于國民ä¸ï¼Œä½¿æˆ‘回到å¤ä»£åŽ»ï¼Œå¾Œä¾†ä¹Ÿè¦ªæ·æˆ–æ—è§€éŽå¹¾æ¨£æ›´å¯‚寞更悲哀的事,都爲我所ä¸é¡˜è¿½æ‡·ï¼Œç”˜å¿ƒä½¿ä»–å€‘å’Œæˆ‘çš„è…¦ä¸€åŒæ¶ˆæ»…在泥土è£çš„,但我的麻醉法å»ä¹Ÿä¼¼ä¹Žå·²ç¶“å¥äº†åŠŸï¼Œå†æ²’有é’å¹´æ™‚å€™çš„æ…·æ…¨æ¿€æ˜‚çš„æ„æ€äº†ã€‚
+Sæœƒé¤¨è£æœ‰ä¸‰é–“屋,相傳是往昔曾在院åè£çš„æ§æ¨¹ä¸Šç¸Šæ»éŽä¸€å€‹å¥³äººçš„,ç¾åœ¨æ§æ¨¹å·²ç¶“高ä¸å¯æ”€äº†ï¼Œè€Œé€™å±‹é‚„沒有人ä½ï¼›è¨±å¤šå¹´ï¼Œæˆ‘便寓在這屋è£éˆ”å¤ç¢‘。客ä¸å°‘有人來,å¤ç¢‘ä¸ä¹Ÿé‡ä¸åˆ°ä»€éº¼å•題和主義,而我的生命å»å±…然暗暗的消去了,這也就是我惟一的願望。å¤å¤œï¼ŒèšŠå多了,便æ–著蒲扇ååœ¨æ§æ¨¹ä¸‹ï¼Œå¾žå¯†è‘‰ç¸«è£¡çœ‹é‚£ä¸€é»žä¸€é»žçš„é’天,晚出的æ§è ¶åˆæ¯æ¯å†°å†·çš„è½åœ¨é é ¸ä¸Šã€‚
+é‚£æ™‚å¶æˆ–ä¾†è«‡çš„æ˜¯ä¸€å€‹è€æœ‹å‹é‡‘心異,將手æçš„å¤§çš®å¤¾æ”¾åœ¨ç ´æ¡Œä¸Šï¼Œè„«ä¸‹é•·è¡«ï¼Œå°é¢åä¸‹äº†ï¼Œå› çˆ²æ€•ç‹—ï¼Œä¼¼ä¹Žå¿ƒæˆ¿é‚„åœ¨æ€¦æ€¦çš„è·³å‹•ã€‚
+â€œä½ éˆ”äº†é€™äº›æœ‰ä»€éº¼ç”¨ï¼Ÿâ€æœ‰ä¸€å¤œï¼Œä»–翻著我那å¤ç¢‘çš„éˆ”æœ¬ï¼Œç™¼äº†ç ”ç©¶çš„è³ªå•了。“沒有什麼用。â€â€œé‚£éº¼ï¼Œä½ éˆ”ä»–æ˜¯ä»€éº¼æ„æ€å‘¢ï¼Ÿâ€â€œæ²’æœ‰ä»€éº¼æ„æ€ã€‚â€â€œæˆ‘æƒ³ï¼Œä½ å¯ä»¥åšé»žæ–‡ç« ……â€
+æˆ‘æ‡‚å¾—ä»–çš„æ„æ€äº†ï¼Œä»–們æ£è¾¦ã€Šæ–°é’年》,然而那時仿佛ä¸ç‰¹æ²’有人來贊åŒï¼Œä¸¦ä¸”也還沒有人來åå°ï¼Œæˆ‘想,他們許是感到寂寞了,但是說:
+“å‡å¦‚一間éµå±‹å,是絕無窗戶而è¬é›£ç ´æ¯€çš„,è£é¢æœ‰è¨±å¤šç†Ÿç¡çš„人們,ä¸ä¹…éƒ½è¦æ‚¶æ»äº†ï¼Œç„¶è€Œæ˜¯å¾žæ˜ç¡å…¥æ»æ»…ï¼Œä¸¦ä¸æ„Ÿåˆ°å°±æ»çš„æ‚²å“€ã€‚ç¾åœ¨ä½ 大嚷起來,驚起了較爲清醒的幾個人,使這ä¸å¹¸çš„少數者來å—ç„¡å¯æŒ½æ•‘çš„è‡¨çµ‚çš„è‹¦æ¥šï¼Œä½ å€’ä»¥çˆ²å°å¾—起他們麼?â€
+â€œç„¶è€Œå¹¾å€‹äººæ—£ç„¶èµ·ä¾†ï¼Œä½ ä¸èƒ½èªªæ±ºæ²’有毀壞這éµå±‹çš„希望。â€
+æ˜¯çš„ï¼Œæˆ‘é›–ç„¶è‡ªæœ‰æˆ‘çš„ç¢ºä¿¡ï¼Œç„¶è€Œèªªåˆ°å¸Œæœ›ï¼Œå»æ˜¯ä¸èƒ½æŠ¹æ®ºçš„ï¼Œå› çˆ²å¸Œæœ›æ˜¯åœ¨äºŽå°‡ä¾†ï¼Œæ±ºä¸èƒ½ä»¥æˆ‘ä¹‹å¿…ç„¡çš„è‰æ˜Žï¼Œä¾†æŠ˜æœäº†ä»–ä¹‹æ‰€è¬‚å¯æœ‰ï¼ŒäºŽæ˜¯æˆ‘çµ‚äºŽç”æ‡‰ä»–ä¹Ÿåšæ–‡ç« 了,這便是最åˆçš„一篇《狂人日記》。從æ¤ä»¥å¾Œï¼Œä¾¿ä¸€ç™¼è€Œä¸å¯æ”¶ï¼Œæ¯å¯«äº›å°èªªæ¨¡æ¨£çš„æ–‡ç« ï¼Œä»¥æ•·è¡æœ‹å‹å€‘的囑托,ç©ä¹…就有了å餘篇。
+在我自己,本以爲ç¾åœ¨æ˜¯å·²ç¶“並éžä¸€å€‹åˆ‡è¿«è€Œä¸èƒ½å·²äºŽè¨€çš„人了,但或者也還未能忘懷于當日自己的寂寞的悲哀罷,所以有時候ä»ä¸å…å¶å–Šå¹¾è²ï¼ŒèŠä»¥æ…°è—‰é‚£åœ¨å¯‚寞è£å¥”é¦³çš„çŒ›å£«ï¼Œä½¿ä»–ä¸æ†šäºŽå‰é©…ã€‚è‡³äºŽæˆ‘çš„å–Šè²æ˜¯å‹‡çŒ›æˆ–æ˜¯æ‚²å“€ï¼Œæ˜¯å¯æ†Žæˆ–是å¯ç¬‘ï¼Œé‚£å€’æ˜¯ä¸æš‡é¡§åŠçš„;但旣然是å¶å–Šï¼Œå‰‡ç•¶ç„¶é ˆè½å°‡ä»¤çš„äº†ï¼Œæ‰€ä»¥æˆ‘å¾€å¾€ä¸æ¤ç”¨äº†æ›²ç†ï¼Œåœ¨ã€Šè—¥ã€‹çš„瑜兒的墳上平空添上一個花環,在《明天》è£ä¹Ÿä¸æ•單四嫂å竟沒有åšåˆ°çœ‹è¦‹å…’åçš„å¤¢ï¼Œå› çˆ²é‚£æ™‚çš„ä¸»å°‡æ˜¯ä¸ä¸»å¼µæ¶ˆæ¥µçš„。至于自己,å»ä¹Ÿä¸¦ä¸é¡˜å°‡è‡ªä»¥çˆ²è‹¦çš„寂寞,å†ä¾†å‚³æŸ“çµ¦ä¹Ÿå¦‚æˆ‘é‚£å¹´é’æ™‚候似的æ£åšè‘—好夢的é’年。
+這樣說來,我的å°èªªå’Œè—è¡“çš„è·é›¢ä¹‹é ï¼Œä¹Ÿå°±å¯æƒ³è€ŒçŸ¥äº†ï¼Œç„¶è€Œåˆ°ä»Šæ—¥é‚„能蒙ç€å°èªªçš„å,甚而至于且有æˆé›†çš„æ©Ÿæœƒï¼Œç„¡è«–如何總ä¸èƒ½ä¸èªªæ˜¯ä¸€ä»¶å¾¼å¹¸çš„事,但徼幸雖使我ä¸å®‰äºŽå¿ƒï¼Œè€Œæ‡¸æ£äººé–“暫時還有讀者,則究竟也ä»ç„¶æ˜¯é«˜èˆˆçš„。
+所以我竟將我的çŸç¯‡å°èªªçµé›†èµ·ä¾†ï¼Œè€Œä¸”付å°äº†ï¼Œåˆå› çˆ²ä¸Šé¢æ‰€èªªçš„緣由,便稱之爲《å¶å–Šã€‹ã€‚
+é¯éŽçš„é…’åº—çš„æ ¼å±€ï¼Œæ˜¯å’Œåˆ¥è™•ä¸åŒçš„:都是當街一個曲尺形的大櫃臺,櫃è£é¢è±«å‚™ç€ç†±æ°´ï¼Œå¯ä»¥éš¨æ™‚溫酒。åšå·¥çš„人,å‚åˆå‚æ™šæ•£äº†å·¥ï¼Œæ¯æ¯èŠ±å››æ–‡éŠ…éŒ¢ï¼Œè²·ä¸€ç¢—é…’ï¼Œâ€”â€”é€™æ˜¯äºŒå多年å‰çš„事,ç¾åœ¨æ¯ç¢—è¦æ¼²åˆ°åæ–‡ï¼Œâ€”â€”é æ«ƒå¤–ç«™ç€ï¼Œç†±ç†±çš„å–了休æ¯ï¼›å€˜è‚¯å¤šèŠ±ä¸€æ–‡ï¼Œä¾¿å¯ä»¥è²·ä¸€ç¢Ÿé¹½ç…®ç,或者茴香豆,åšä¸‹é…’物了,如果出到å幾文,那就能買一樣葷èœï¼Œä½†é€™äº›é¡§å®¢ï¼Œå¤šæ˜¯çŸè¡£å¹«ï¼Œå¤§æŠµæ²’æœ‰é€™æ¨£é—Šç¶½ã€‚åªæœ‰ç©¿é•·è¡«çš„,纔踱進店é¢éš”å£çš„æˆ¿åè£ï¼Œè¦é…’è¦èœï¼Œæ…¢æ…¢åœ°åå–。
+我從å二æ²èµ·ï¼Œä¾¿åœ¨éŽå£çš„咸亨酒店è£ç•¶å¤¥è¨ˆï¼ŒæŽŒæ«ƒèªªï¼Œæ¨£å太傻,怕ä¾å€™ä¸äº†é•·è¡«ä¸»é¡§ï¼Œå°±åœ¨å¤–é¢åšé»žäº‹ç½·ã€‚外é¢çš„çŸè¡£ä¸»é¡§ï¼Œé›–然容易說話,但嘮嘮å¨å¨çºå¤¾ä¸æ¸…的也很ä¸å°‘。他們往往è¦è¦ªçœ¼çœ‹ç€é»ƒé…’從罎åè£èˆ€å‡ºï¼Œçœ‹éŽå£ºååº•è£æœ‰æ°´æ²’有,åˆè¦ªçœ‹å°‡å£ºå放在熱水è£ï¼Œç„¶å¾Œæ”¾å¿ƒï¼šåœ¨é€™åš´é‡ç›£ç£ä¸‹ï¼Œç¾¼æ°´ä¹Ÿå¾ˆçˆ²é›£ã€‚所以éŽäº†å¹¾å¤©ï¼ŒæŽŒæ«ƒåˆèªªæˆ‘å¹¹ä¸äº†é€™äº‹ã€‚幸虧薦é 的情é¢å¤§ï¼Œè¾é€€ä¸å¾—,便改爲專管溫酒的一種無èŠè·å‹™äº†ã€‚
+我從æ¤ä¾¿æ•´å¤©çš„站在櫃臺è£ï¼Œå°ˆç®¡æˆ‘çš„è·å‹™ã€‚雖然沒有什麼失è·ï¼Œä½†ç¸½è¦ºå¾—有些單調,有些無èŠã€‚掌櫃是一副凶臉å”ï¼Œä¸»é¡§ä¹Ÿæ²’æœ‰å¥½è²æ°£ï¼Œæ•™äººæ´»æ½‘ä¸å¾—ï¼›åªæœ‰å”乙己到店,纔å¯ä»¥ç¬‘å¹¾è²ï¼Œæ‰€ä»¥è‡³ä»Šé‚„記得。
+å”乙己是站ç€å–酒而穿長衫的唯一的人。他身æå¾ˆé«˜å¤§ï¼›é’白臉色,皺紋間時常夾些傷痕;一部亂蓬蓬的花白的é¬åã€‚ç©¿çš„é›–ç„¶æ˜¯é•·è¡«ï¼Œå¯æ˜¯åˆé«’åˆç ´ï¼Œä¼¼ä¹Žå多年沒有補,也沒有洗。他å°äººèªªè©±ï¼Œç¸½æ˜¯æ»¿å£ä¹‹ä¹Žè€…ä¹Ÿï¼Œæ•™äººåŠæ‡‚䏿‡‚çš„ã€‚å› çˆ²ä»–å§“å”,別人便從æç´…紙上的「上大人å”乙己ã€é€™åŠæ‡‚䏿‡‚的話è£ï¼Œæ›¿ä»–å–下一個綽號,å«ä½œå”乙己。å”乙己一到店,所有å–酒的人便都看ç€ä»–笑,有的å«é“,「å”ä¹™å·±ï¼Œä½ è‡‰ä¸Šåˆæ·»ä¸Šæ–°å‚·ç–¤äº†ï¼ã€ä»–ä¸å›žç”ï¼Œå°æ«ƒè£èªªï¼Œã€Œæº«å…©ç¢—酒,è¦ä¸€ç¢ŸèŒ´é¦™è±†ã€‚ã€ä¾¿æŽ’å‡ºä¹æ–‡å¤§éŒ¢ã€‚ä»–å€‘åˆæ•…æ„的高è²åš·é“ï¼Œã€Œä½ ä¸€å®šåˆå·äº†äººå®¶çš„æ±è¥¿äº†ï¼ã€å”乙己çœå¤§çœ¼ç›èªªï¼Œã€Œä½ 怎麼這樣憑空汚人清白……ã€ã€Œä»€éº¼æ¸…白?我å‰å¤©è¦ªçœ¼è¦‹ä½ å·äº†ä½•å®¶çš„æ›¸ï¼Œå¼”ç€æ‰“。ã€å”乙己便漲紅了臉,é¡ä¸Šçš„é’ç‹æ¢æ¢ç¶»å‡ºï¼Œçˆè¾¯é“,「竊書ä¸èƒ½ç®—å·â€¦â€¦ç«Šæ›¸ï¼â€¦â€¦è®€æ›¸äººçš„事,能算å·éº¼ï¼Ÿã€æŽ¥é€£ä¾¿æ˜¯é›£æ‡‚的話,什麼「å›å固窮ã€ï¼Œä»€éº¼ã€Œè€…乎ã€ä¹‹é¡žï¼Œå¼•得衆人都哄笑起來:店內外充滿了快活的空氣。
+è½äººå®¶èƒŒåœ°è£è«‡è«–,å”ä¹™å·±åŽŸä¾†ä¹Ÿè®€éŽæ›¸ï¼Œä½†çµ‚于沒有進å¸ï¼Œåˆä¸æœƒç‡Ÿç”Ÿï¼›äºŽæ˜¯æ„ˆéŽæ„ˆçª®ï¼Œå¼„到將è¦è¨Žé£¯äº†ã€‚幸而寫得一ç†å¥½å—,便替人家鈔鈔書,æ›ä¸€ç¢—é£¯å–«ã€‚å¯æƒœä»–åˆæœ‰ä¸€æ¨£å£žè„¾æ°£ï¼Œä¾¿æ˜¯å¥½å–嬾åšã€‚åä¸åˆ°å¹¾å¤©ï¼Œä¾¿é€£äººå’Œæ›¸ç±ç´™å¼µç†ç¡¯ï¼Œä¸€é½Šå¤±è¹¤ã€‚如是幾次,å«ä»–鈔書的人也沒有了。å”乙己沒有法,便å…ä¸äº†å¶ç„¶åšäº›å·ç«Šçš„事。但他在我們店è£ï¼Œå“è¡Œå»æ¯”åˆ¥äººéƒ½å¥½ï¼Œå°±æ˜¯å¾žä¸æ‹–æ¬ ï¼›é›–ç„¶é–“æˆ–æ²’æœ‰ç¾éŒ¢ï¼Œæš«æ™‚記在粉æ¿ä¸Šï¼Œä½†ä¸å‡ºä¸€æœˆï¼Œå®šç„¶é‚„清,從粉æ¿ä¸Šæ‹åŽ»äº†å”乙己的åå—。
+å”乙己å–éŽåŠç¢—酒,漲紅的臉色漸漸復了原,æ—人便åˆå•é“,「å”ä¹™å·±ï¼Œä½ ç•¶çœžèªè˜å—麼?ã€å”乙己看ç€å•他的人,顯出ä¸å±‘置辯的神氣。他們便接ç€èªªé“ï¼Œã€Œä½ æ€Žçš„é€£åŠå€‹ç§€æ‰ä¹Ÿæ’ˆä¸åˆ°å‘¢ï¼Ÿã€å”ä¹™å·±ç«‹åˆ»é¡¯å‡ºé ¹å”ä¸å®‰æ¨¡æ¨£ï¼Œè‡‰ä¸Šç± 上了一層ç°è‰²ï¼Œå˜´è£èªªäº›è©±ï¼›é€™å›žå¯æ˜¯å…¨æ˜¯ä¹‹ä¹Žè€…ä¹Ÿä¹‹é¡žï¼Œä¸€äº›ä¸æ‡‚了。在這時候,衆人也都哄笑起來:店內外充滿了快活的空氣。
+在這些時候,我å¯ä»¥é™„å’Œç€ç¬‘,掌櫃是決ä¸è²¬å‚™çš„。而且掌櫃見了å”ä¹™å·±ï¼Œä¹Ÿæ¯æ¯é€™æ¨£å•他,引人發笑。å”乙己自己知é“ä¸èƒ½å’Œä»–們談天,便åªå¥½å‘å©åèªªè©±ã€‚æœ‰ä¸€å›žå°æˆ‘說é“ï¼Œã€Œä½ è®€éŽæ›¸éº¼ï¼Ÿã€æˆ‘略略點一點é ã€‚ä»–èªªï¼Œã€Œè®€éŽæ›¸ï¼Œâ€¦â€¦æˆ‘ä¾¿è€ƒä½ ä¸€è€ƒã€‚èŒ´é¦™è±†çš„èŒ´å—ï¼Œæ€Žæ¨£å¯«çš„ï¼Ÿã€æˆ‘想,討飯一樣的人,也é…考我麼?便回éŽè‡‰åŽ»ï¼Œä¸å†ç†æœƒã€‚å”乙己ç‰äº†è¨±ä¹…,很懇切的說é“,「ä¸èƒ½å¯«ç½·ï¼Ÿâ€¦â€¦æˆ‘æ•™çµ¦ä½ ï¼Œè¨˜ç€ï¼é€™äº›å—應該記ç€ã€‚å°‡ä¾†åšæŽŒæ«ƒçš„æ™‚å€™ï¼Œå¯«è³¬è¦ç”¨ã€‚ã€æˆ‘暗想我和掌櫃的ç‰ç´šé‚„很é 呢,而且我們掌櫃也從ä¸å°‡èŒ´é¦™è±†ä¸Šè³¬ï¼›åˆå¥½ç¬‘,åˆä¸è€ç…©ï¼Œå¬¾å¬¾çš„ç”ä»–é“,「誰è¦ä½ æ•™ï¼Œä¸æ˜¯è‰é 底下一個來回的回å—麼?ã€å”乙己顯出極高興的樣å,將兩個指é çš„é•·æŒ‡ç”²æ•²ç€æ«ƒè‡ºï¼Œé»žé 說,「å°å‘€å°å‘€ï¼â€¦â€¦å›žå—æœ‰å››æ¨£å¯«æ³•ï¼Œä½ çŸ¥é“éº¼ï¼Ÿã€æˆ‘愈ä¸è€ç…©äº†ï¼ŒåŠªç€å˜´èµ°é 。å”乙己剛用指甲蘸了酒,想在櫃上寫å—,見我毫ä¸ç†±å¿ƒï¼Œä¾¿åˆæŽä¸€å£æ°£ï¼Œé¡¯å‡ºæ¥µæƒ‹æƒœçš„æ¨£å。
+有幾回,鄰èˆå©åè½å¾—笑è²ï¼Œä¹Ÿè¶•熱鬧,åœä½äº†å”乙己。他便給他們茴香豆喫,一人一顆。å©å喫完豆,ä»ç„¶ä¸æ•£ï¼Œçœ¼ç›éƒ½æœ›ç€ç¢Ÿå。å”乙己ç€äº†æ…Œï¼Œä¼¸é–‹äº”指將碟å罩ä½ï¼Œå½Žè…°ä¸‹åŽ»èªªé“,「ä¸å¤šäº†ï¼Œæˆ‘已經ä¸å¤šäº†ã€‚ã€ç›´èµ·èº«åˆçœ‹ä¸€çœ‹è±†ï¼Œè‡ªå·±æ–é 說,「ä¸å¤šä¸å¤šï¼å¤šä¹Žå“‰ï¼Ÿä¸å¤šä¹Ÿã€‚ã€æ–¼æ˜¯é€™ä¸€ç¾£å©å都在笑è²è£èµ°æ•£äº†ã€‚
+å”ä¹™å·±æ˜¯é€™æ¨£çš„ä½¿äººå¿«æ´»ï¼Œå¯æ˜¯æ²’有他,別人也便這麼éŽã€‚
+有一天,大約是ä¸ç§‹å‰çš„兩三天,掌櫃æ£åœ¨æ…¢æ…¢çš„çµè³¬ï¼Œå–下粉æ¿ï¼Œå¿½ç„¶èªªï¼Œã€Œå”ä¹™å·±é•·ä¹…æ²’æœ‰ä¾†äº†ã€‚é‚„æ¬ åä¹å€‹éŒ¢å‘¢ï¼ã€æˆ‘纔也覺得他的確長久沒有來了。一個å–酒的人說é“ï¼Œã€Œä»–æ€Žéº¼æœƒä¾†ï¼Ÿâ€¦â€¦ä»–æ‰“æŠ˜äº†è…¿äº†ã€‚ã€æŽŒæ«ƒèªªï¼Œã€Œå“¦ï¼ã€ã€Œä»–總ä»èˆŠæ˜¯å·ã€‚這一回,是自己發æ˜ï¼Œç«Ÿå·åˆ°ä¸èˆ‰äººå®¶è£åŽ»äº†ã€‚ä»–å®¶çš„æ±è¥¿ï¼Œå·å¾—的麼?ã€ã€Œå¾Œä¾†æ€Žéº¼æ¨£ï¼Ÿã€ã€Œæ€Žéº¼æ¨£ï¼Ÿå…ˆå¯«æœè¾¯ï¼Œå¾Œä¾†æ˜¯æ‰“,打了大åŠå¤œï¼Œå†æ‰“折了腿。ã€ã€Œå¾Œä¾†å‘¢ï¼Ÿã€ã€Œå¾Œä¾†æ‰“折了腿了。ã€ã€Œæ‰“折了怎樣呢?ã€ã€Œæ€Žæ¨£ï¼Ÿâ€¦â€¦èª°æ›‰å¾—?許是æ»äº†ã€‚ã€æŽŒæ«ƒä¹Ÿä¸å†å•,ä»ç„¶æ…¢æ…¢çš„算他的賬。
+ä¸ç§‹ä¹‹å¾Œï¼Œç§‹é¢¨æ˜¯ä¸€å¤©æ¶¼æ¯”一天,看看將近åˆå†¬ï¼›æˆ‘整天的é ç€ç«ï¼Œä¹Ÿé ˆç©¿ä¸Šæ£‰è¥–了。一天的下åŠå¤©ï¼Œæ²’有一個顧客,我æ£åˆäº†çœ¼åç€ã€‚忽然間è½å¾—一個è²éŸ³ï¼Œã€Œæº«ä¸€ç¢—酒。ã€é€™è²éŸ³é›–然極低,å»å¾ˆè€³ç†Ÿã€‚看時åˆå…¨æ²’有人。站起來å‘外一望,那å”乙己便在櫃臺下å°äº†é–€æª»åç€ã€‚ä»–è‡‰ä¸Šé»‘è€Œä¸”ç˜¦ï¼Œå·²ç¶“ä¸æˆæ¨£åï¼›ç©¿ä¸€ä»¶ç ´å¤¾è¥–ï¼Œç›¤ç€å…©è…¿ï¼Œä¸‹é¢å¢Šä¸€å€‹è’²åŒ…,用è‰ç¹©åœ¨è‚©ä¸ŠæŽ›ä½ï¼›è¦‹äº†æˆ‘,åˆèªªé“ï¼Œã€Œæº«ä¸€ç¢—é…’ã€‚ã€æŽŒæ«ƒä¹Ÿä¼¸å‡ºé 去,一é¢èªªï¼Œã€Œå”ä¹™å·±éº¼ï¼Ÿä½ é‚„æ¬ åä¹å€‹éŒ¢å‘¢ï¼ã€å”ä¹™å·±å¾ˆé ¹å”的仰é¢ç”é“,「這……下回還清罷。這一回是ç¾éŒ¢ï¼Œé…’è¦å¥½ã€‚ã€æŽŒæ«ƒä»ç„¶åŒå¹³å¸¸ä¸€æ¨£ï¼Œç¬‘ç€å°ä»–說,「å”ä¹™å·±ï¼Œä½ åˆå·äº†æ±è¥¿äº†ï¼ã€ä½†ä»–這回å»ä¸å分分辯,單說了一å¥ã€Œä¸è¦å–笑ï¼ã€ã€Œå–ç¬‘ï¼Ÿè¦æ˜¯ä¸å·ï¼Œæ€Žéº¼æœƒæ‰“斷腿?ã€å”乙己低è²èªªé“,「跌斷,跌,跌……ã€ä»–çš„çœ¼è‰²ï¼Œå¾ˆåƒæ‡‡æ±‚掌櫃,ä¸è¦å†æã€‚æ¤æ™‚已經èšé›†äº†å¹¾å€‹äººï¼Œä¾¿å’ŒæŽŒæ«ƒéƒ½ç¬‘äº†ã€‚æˆ‘æº«äº†é…’ï¼Œç«¯å‡ºåŽ»ï¼Œæ”¾åœ¨é–€æª»ä¸Šã€‚ä»–å¾žç ´è¡£è¢‹è£æ‘¸å‡ºå››æ–‡å¤§éŒ¢ï¼Œæ”¾åœ¨æˆ‘手è£ï¼Œè¦‹ä»–滿手是泥,原來他便用這手走來的。ä¸ä¸€æœƒï¼Œä»–å–完酒,便åˆåœ¨æ—人的說笑è²ä¸ï¼Œåç€ç”¨é€™æ‰‹æ…¢æ…¢èµ°åŽ»äº†ã€‚
+自æ¤ä»¥å¾Œï¼Œåˆé•·ä¹…沒有看見å”乙己。到了年關,掌櫃å–下粉æ¿èªªï¼Œã€Œå”ä¹™å·±é‚„æ¬ åä¹å€‹éŒ¢å‘¢ï¼ã€åˆ°ç¬¬äºŒå¹´çš„端åˆï¼Œåˆèªªã€Œå”ä¹™å·±é‚„æ¬ åä¹å€‹éŒ¢å‘¢ï¼ã€åˆ°ä¸ç§‹å¯æ˜¯æ²’有說,å†åˆ°å¹´é—œä¹Ÿæ²’有看見他。
+我到ç¾åœ¨çµ‚于沒有見——大約å”乙己的確æ»äº†ã€‚
+秋天的後åŠå¤œï¼Œæœˆäº®ä¸‹åŽ»äº†ï¼Œå¤ªé™½é‚„æ²’æœ‰å‡ºï¼Œåªå‰©ä¸‹ä¸€ç‰‡çƒè—的天;除了夜éŠçš„æ±è¥¿ï¼Œä»€éº½éƒ½ç¡è‘—。è¯è€æ “忽然å起身,擦ç€ç«æŸ´ï¼Œé»žä¸Šé身油膩的燈盞,茶館的兩間屋åè£ï¼Œä¾¿å½Œæ»¿äº†é’白的光。
+ã€Œå°æ “çš„çˆ¹ï¼Œä½ å°±åŽ»éº½ï¼Ÿã€æ˜¯ä¸€å€‹è€å¥³äººçš„è²éŸ³ã€‚è£é‚Šçš„å°å±‹åè£ï¼Œä¹Ÿç™¼å‡ºä¸€é™£å’³å—½ã€‚「唔。ã€è€æ “一é¢è½ï¼Œä¸€é¢æ‡‰ï¼Œä¸€é¢æ‰£ä¸Šè¡£æœï¼›ä¼¸æ‰‹éŽåŽ»èªªï¼Œã€Œä½ çµ¦æˆ‘ç½·ã€‚ã€
+è¯å¤§åª½åœ¨æž•é 底下æŽäº†åŠå¤©ï¼ŒæŽå‡ºä¸€åŒ…æ´‹éŒ¢ï¼Œäº¤çµ¦è€æ “ï¼Œè€æ “接了,抖抖的è£å…¥è¡£è¢‹ï¼Œåˆåœ¨å¤–颿Œ‰äº†å…©ä¸‹ï¼›ä¾¿é»žä¸Šç‡ˆç± ,å¹ç†„燈盞,走å‘è£å±‹å去了。那屋åè£é¢ï¼Œæ£åœ¨çª¸çª¸çª£çª£çš„éŸ¿ï¼ŒæŽ¥è‘—ä¾¿æ˜¯ä¸€é€šå’³å—½ã€‚è€æ “候他平éœä¸‹åŽ»ï¼Œæ‰ä½Žä½Žçš„å«é“ï¼Œã€Œå°æ “â€¦â€¦ä½ ä¸è¦èµ·ä¾†ã€‚â€¦â€¦åº—éº½ï¼Ÿä½ å¨˜æœƒå®‰æŽ’çš„ã€‚ã€
+è€æ “è½å¾—å…’åä¸å†èªªè©±ï¼Œæ–™ä»–安心ç¡äº†ï¼›ä¾¿å‡ºäº†é–€ï¼Œèµ°åˆ°è¡—ä¸Šã€‚è¡—ä¸Šé»‘æ²ˆæ²ˆçš„ä¸€ç„¡æ‰€æœ‰ï¼Œåªæœ‰ä¸€æ¢ç°ç™½çš„路,看得分明。燈光照ç€ä»–的兩腳,一å‰ä¸€å¾Œçš„走。有時也é‡åˆ°å¹¾éš»ç‹—ï¼Œå¯æ˜¯ä¸€éš»ä¹Ÿæ²’有å«ã€‚天氣比屋åè£å†·å¤šäº†ï¼›è€æ “å€’è¦ºçˆ½å¿«ï¼Œå½·å½¿ä¸€æ—¦è®Šäº†å°‘å¹´ï¼Œå¾—äº†ç¥žé€šï¼Œæœ‰çµ¦äººç”Ÿå‘½çš„æœ¬é ˜ä¼¼çš„ï¼Œè·¨æ¥æ ¼å¤–高é 。而且路也愈走愈分明,天也愈走愈亮了。
+è€æ “æ£åœ¨å°ˆå¿ƒèµ°è·¯ï¼Œå¿½ç„¶åƒäº†ä¸€é©šï¼Œé é è£çœ‹è¦‹ä¸€æ¢ä¸å—街,明明白白橫著。他便退了幾æ¥ï¼Œå°‹åˆ°ä¸€å®¶é—œç€é–€çš„鋪å,蹩進簷下,é 門立ä½äº†ã€‚好一會,身上覺得有些發冷。「哼,è€é å。ã€ã€Œå€’高興……。ã€
+è€æ “åˆå–«ä¸€é©šï¼Œçœçœ¼çœ‹æ™‚,幾個人從他é¢å‰éŽåŽ»äº†ã€‚ä¸€å€‹é‚„å›žé 看他,樣åä¸ç”šåˆ†æ˜Žï¼Œä½†å¾ˆåƒä¹…餓的人見了食物一般,眼è£é–ƒå‡ºä¸€ç¨®æ”«å–çš„å…‰ã€‚è€æ “çœ‹çœ‹ç‡ˆç± ï¼Œå·²ç¶“ç†„äº†ã€‚æŒ‰ä¸€æŒ‰è¡£è¢‹ï¼Œç¡¬ç¡¬çš„é‚„åœ¨ã€‚ä»°èµ·é å…©é¢ä¸€æœ›ï¼Œåªè¦‹è¨±å¤šå¤æ€ªçš„人,三三兩兩,鬼似的在那è£å¾˜å¾Šï¼›å®šç›å†çœ‹ï¼Œå»ä¹Ÿçœ‹ä¸å‡ºä»€éº¼åˆ¥çš„奇怪。
+沒有多久,åˆè¦‹å¹¾å€‹å…µï¼Œåœ¨é‚£é‚Šèµ°å‹•;衣æœå‰å¾Œçš„一個大白圓圈,é 地è£ä¹Ÿçœ‹å¾—清楚,走éŽé¢å‰çš„,並且看出號衣上暗紅的鑲邊。——一陣腳æ¥è²éŸ¿ï¼Œä¸€çœ¨çœ¼ï¼Œå·²ç¶“æ“éŽäº†ä¸€å¤§ç°‡äººã€‚那三三兩兩的人,也忽然åˆä½œä¸€å †ï¼Œæ½®ä¸€èˆ¬å‘å‰è¶•;將到ä¸å—è¡—å£ï¼Œä¾¿çªç„¶ç«‹ä½ï¼Œç°‡æˆä¸€å€‹åŠåœ“。
+è€æ “也å‘那邊看,å»åªè¦‹ä¸€å †äººçš„å¾ŒèƒŒï¼›é ¸é …éƒ½ä¼¸å¾—å¾ˆé•·ï¼Œå½·å½¿è¨±å¤šé´¨ï¼Œè¢«ç„¡å½¢çš„æ‰‹æ‘ä½äº†çš„,å‘上æç€ã€‚éœäº†ä¸€æœƒï¼Œä¼¼ä¹Žæœ‰é»žè²éŸ³ï¼Œä¾¿åˆå‹•æ–起來,轟的一è²ï¼Œéƒ½å‘å¾Œé€€ï¼›ä¸€ç›´æ•£åˆ°è€æ “ç«‹ç€çš„åœ°æ–¹ï¼Œå¹¾ä¹Žå°‡ä»–æ“ å€’äº†ã€‚
+「喂ï¼ä¸€æ‰‹äº¤éŒ¢ï¼Œä¸€æ‰‹äº¤è²¨ï¼ã€ä¸€å€‹æ¸¾èº«é»‘è‰²çš„äººï¼Œç«™åœ¨è€æ “é¢å‰ï¼Œçœ¼å…‰æ£åƒå…©æŠŠåˆ€ï¼Œåˆºå¾—è€æ “縮å°äº†ä¸€åŠã€‚那人一隻大手,å‘他攤ç€ï¼›ä¸€é𻿉‹å»æ’®ç€ä¸€å€‹é®®ç´…的饅é ,那紅的還是一點一點的往下滴。
+è€æ “慌忙摸出洋錢,抖抖的想交給他,å»åˆä¸æ•¢åŽ»æŽ¥ä»–çš„æ±è¥¿ã€‚那人便焦急起來,嚷é“ï¼Œã€Œæ€•ä»€éº¼ï¼Ÿæ€Žçš„ä¸æ‹¿ï¼ã€è€æ “還躊躇ç€ï¼›é»‘的人便æ¶éŽç‡ˆç± ,一把扯下紙罩,裹了饅é ï¼Œå¡žèˆ‡è€æ “ï¼›ä¸€æ‰‹æŠ“éŽæ´‹éŒ¢ï¼Œæ‘一æ‘,轉身去了。嘴è£å“¼ç€èªªï¼Œã€Œé€™è€æ±è¥¿â€¦â€¦ã€‚ã€
+「這給誰治病的呀?ã€è€æ “也似乎è½å¾—有人å•他,但他並ä¸ç”應;他的精神,ç¾åœ¨åªåœ¨ä¸€å€‹åŒ…上,彷彿抱ç€ä¸€å€‹å世單傳的嬰兒,別的事情,都已置之度外了。他ç¾åœ¨è¦å°‡é€™åŒ…è£çš„æ–°çš„生命,移æ¤åˆ°ä»–å®¶è£ï¼Œæ”¶ç©«è¨±å¤šå¹¸ç¦ã€‚太陽也出來了;在他é¢å‰ï¼Œé¡¯å‡ºä¸€æ¢å¤§é“,直到他家ä¸ï¼Œå¾Œé¢ä¹Ÿç…§è¦‹ä¸å—è¡—é ç ´åŒ¾ä¸Šã€Œå¤å£äºå£ã€é€™å››å€‹é»¯æ·¡çš„金å—。
+è€æ “èµ°åˆ°å®¶ï¼Œåº—é¢æ—©ç¶“æ”¶æ‹¾ä¹¾æ·¨ï¼Œä¸€æŽ’ä¸€æŽ’çš„èŒ¶æ¡Œï¼Œæ»‘æºœæºœçš„ç™¼å…‰ã€‚ä½†æ˜¯æ²’æœ‰å®¢äººï¼›åªæœ‰å°æ “ååœ¨è£æŽ’çš„æ¡Œå‰åƒé£¯ï¼Œå¤§ç²’的汗,從é¡ä¸Šæ»¾ä¸‹ï¼Œå¤¾è¥–也帖ä½äº†è„Šå¿ƒï¼Œå…©å¡Šè‚©èƒ›éª¨é«˜é«˜å‡¸å‡ºï¼Œå°æˆä¸€å€‹é™½æ–‡çš„「八å—ã€ã€‚è€æ “見這樣å,ä¸å…皺一皺展開的眉心。他的女人,從竈下急急走出,çœç€çœ¼ç›ï¼Œå˜´å”‡æœ‰äº›ç™¼æŠ–。「得了麼?ã€ã€Œå¾—了。ã€
+兩個人一齊走進竈下,商é‡äº†ä¸€æœƒï¼›è¯å¤§åª½ä¾¿å‡ºåŽ»äº†ï¼Œä¸å¤šæ™‚,æ‹ç€ä¸€ç‰‡è€è·è‘‰å›žä¾†ï¼Œæ”¤åœ¨æ¡Œä¸Šã€‚è€æ “ä¹Ÿæ‰“é–‹ç‡ˆç± ç½©ï¼Œç”¨è·è‘‰é‡æ–°åŒ…了那紅的饅é ã€‚å°æ “也åƒå®Œé£¯ï¼Œä»–çš„æ¯è¦ªæ…Œå¿™èªªï¼šã€Œå°æ “â€”â€”ä½ åç€ï¼Œä¸è¦åˆ°é€™è£ä¾†ã€‚ã€ä¸€é¢æ•´é “了竈ç«ï¼Œè€æ “ä¾¿æŠŠä¸€å€‹ç¢§ç¶ çš„åŒ…ï¼Œä¸€å€‹ç´…ç´…ç™½ç™½çš„ç ´ç‡ˆç± ï¼Œä¸€åŒå¡žåœ¨ç«ˆè£ï¼›ä¸€é™£ç´…黑的ç«ç„°éŽåŽ»æ™‚ï¼Œåº—å±‹è£æ•£æ»¿äº†ä¸€ç¨®å¥‡æ€ªçš„香味。
+「好香ï¼ä½ 們åƒä»€éº¼é»žå¿ƒå‘€ï¼Ÿã€é€™æ˜¯é§èƒŒäº”少爺到了。這人æ¯å¤©ç¸½åœ¨èŒ¶é¤¨è£éŽæ—¥ï¼Œä¾†å¾—最早,去得最é²ï¼Œæ¤æ™‚æ°æ°è¹©åˆ°è‡¨è¡—çš„å£è§’的桌邊,便å下å•è©±ï¼Œç„¶è€Œæ²’æœ‰äººç”æ‡‰ä»–。「炒米粥麽?ã€ä»ç„¶æ²’æœ‰äººæ‡‰ã€‚è€æ “匆匆走出,給他泡上茶。
+ã€Œå°æ “進來罷ï¼ã€è¯å¤§åª½å«å°æ “進了è£é¢çš„屋å,ä¸é–“放好一æ¢å‡³ï¼Œå°æ “å了。他的æ¯è¦ªç«¯éŽä¸€ç¢Ÿçƒé»‘的圓æ±è¥¿ï¼Œè¼•輕說:——「喫下去罷,——病便好了。ã€
+å°æ “撮起這黑æ±è¥¿ï¼Œçœ‹äº†ä¸€æœƒï¼Œä¼¼ä¹Žæ‹ç€è‡ªå·±çš„æ€§å‘½ä¸€èˆ¬ï¼Œå¿ƒè£èªªä¸å‡ºçš„奇怪。å分å°å¿ƒçš„æ‹—開了,焦皮è£é¢ç«„出一é“白氣,白氣散了,是兩åŠå€‹ç™½éºµçš„饅é 。——ä¸å¤šå·¥å¤«ï¼Œå·²ç¶“全在肚è£äº†ï¼Œå»å…¨å¿˜äº†ä»€éº¼å‘³ï¼›é¢å‰åªå‰©ä¸‹ä¸€å¼µç©ºç›¤ã€‚ä»–çš„æ—邊,一é¢ç«‹ç€ä»–的父親,一é¢ç«‹ç€ä»–çš„æ¯è¦ªï¼Œå…©äººçš„眼光,都彷彿è¦åœ¨ä»–èº«è£æ³¨é€²ä»€éº½åˆè¦å–出什麽似的;便ç¦ä¸ä½å¿ƒè·³èµ·ä¾†ï¼ŒæŒ‰ç€èƒ¸è†›ï¼Œåˆæ˜¯ä¸€é™£å’³å—½ã€‚
+「ç¡ä¸€æœƒç½·ï¼Œâ€”—便好了。ã€
+å°æ “ä¾ä»–æ¯è¦ªçš„話,咳ç€ç¡äº†ã€‚è¯å¤§åª½å€™ä»–喘氣平éœï¼Œæ‰è¼•輕的給他蓋上了滿幅補釘的夾被。
+店è£åç€è¨±å¤šäººï¼Œè€æ “也忙了,æç€å¤§éŠ…å£ºï¼Œä¸€è¶Ÿä¸€è¶Ÿçš„çµ¦å®¢äººæ²–èŒ¶ï¼›å…©å€‹çœ¼çœ¶ï¼Œéƒ½åœç€ä¸€åœˆé»‘線。
+ã€Œè€æ “ï¼Œä½ æœ‰äº›ä¸èˆ’æœéº½ï¼Ÿâ€”â€”ä½ ç”Ÿç—…éº½ï¼Ÿã€ä¸€å€‹èŠ±ç™½é¬å的人說。「沒有。ã€
+「沒有?——我想笑嘻嘻的,原也ä¸åƒâ€¦â€¦ã€èŠ±ç™½é¬åä¾¿å–æ¶ˆäº†è‡ªå·±çš„話。
+ã€Œè€æ “åªæ˜¯å¿™ã€‚è¦æ˜¯ä»–的兒å……ã€é§èƒŒäº”少爺話還未完,çªç„¶é—–進了一個滿臉橫肉的人,披一件玄色布衫,散ç€ç´æ‰£ï¼Œç”¨å¾ˆå¯¬çš„玄色腰帶,胡亂æ†åœ¨è…°é–“。剛進門,便å°è€æ “åš·é“:
+「åƒäº†éº½ï¼Ÿå¥½äº†éº½ï¼Ÿè€æ “ï¼Œå°±æ˜¯é‹æ°£äº†ä½ ï¼ä½ 鋿°£ï¼Œè¦ä¸æ˜¯æˆ‘ä¿¡æ¯éˆâ€¦â€¦ã€‚ã€
+è€æ “一手æäº†èŒ¶å£ºï¼Œä¸€æ‰‹æææ•¬æ•¬çš„åž‚ç€ï¼›ç¬‘嘻嘻的è½ã€‚æ»¿åº§çš„äººï¼Œä¹Ÿéƒ½æææ•¬æ•¬çš„è½ã€‚è¯å¤§åª½ä¹Ÿé»‘ç€çœ¼çœ¶ï¼Œç¬‘嘻嘻的é€å‡ºèŒ¶ç¢—èŒ¶è‘‰ä¾†ï¼ŒåŠ ä¸Šä¸€å€‹æ©„æ¬–ï¼Œè€æ “便去沖了水。
+「這是包好ï¼é€™æ˜¯èˆ‡çœ¾ä¸åŒçš„ã€‚ä½ æƒ³ï¼Œè¶ç†±çš„æ‹ä¾†ï¼Œè¶ç†±åƒä¸‹ã€‚ã€æ©«è‚‰çš„äººåªæ˜¯åš·ã€‚
+ã€ŒçœŸçš„å‘¢ï¼Œè¦æ²’有康大å”照顧,怎麽會這樣……ã€è¯å¤§åª½ä¹Ÿå¾ˆæ„Ÿæ¿€çš„è¬ä»–。
+「包好,包好ï¼é€™æ¨£çš„è¶ç†±åƒä¸‹ã€‚這樣的人血饅é ,什麽癆病都包好ï¼ã€
+è¯å¤§åª½è½åˆ°ã€Œç™†ç—…ã€é€™å…©å€‹å—,變了一點臉色,似乎有些ä¸é«˜èˆˆï¼›ä½†åˆç«‹åˆ»å †ä¸Šç¬‘,æè¨•ç€èµ°é–‹äº†ã€‚這康大å”廿²’有覺察,ä»ç„¶æé«˜äº†å–‰åš¨åªæ˜¯åš·ï¼Œåš·å¾—è£é¢ç¡ç€çš„å°æ “也åˆå¤¥å’³å—½èµ·ä¾†ã€‚
+ã€ŒåŽŸä¾†ä½ å®¶å°æ “ç¢°åˆ°äº†é€™æ¨£çš„å¥½é‹æ°£äº†ã€‚這病自然一定全好;怪ä¸å¾—è€æ “整天的笑ç€å‘¢ã€‚ã€èŠ±ç™½é¬å一é¢èªªï¼Œä¸€é¢èµ°åˆ°åº·å¤§å”é¢å‰ï¼Œä½Žè²ä¸‹æ°£çš„å•é“,「康大å”——è½èªªä»Šå¤©çµæžœçš„一個犯人,便是å¤å®¶çš„å©å,那是誰的å©å?究竟是什麼事?ã€
+「誰的?ä¸å°±æ˜¯å¤å››å¥¶å¥¶çš„å…’å麽?那個å°å‚¢ä¼™ï¼ã€åº·å¤§å”見眾人都è³èµ·è€³æœµè½ä»–ï¼Œä¾¿æ ¼å¤–é«˜èˆˆï¼Œæ©«è‚‰å¡Šå¡Šé£½ç¶»ï¼Œè¶Šç™¼å¤§è²èªªï¼Œã€Œé€™å°æ±è¥¿ä¸è¦å‘½ï¼Œä¸è¦å°±æ˜¯äº†ã€‚æˆ‘å¯æ˜¯é€™ä¸€å›žä¸€é»žæ²’有得到好處;連å‰ä¸‹ä¾†çš„è¡£æœï¼Œéƒ½çµ¦ç®¡ç‰¢çš„紅眼ç›é˜¿ç¾©æ‹åŽ»äº†ã€‚â€”â€”ç¬¬ä¸€è¦ç®—æˆ‘å€‘æ “å”鋿°£ï¼›ç¬¬äºŒæ˜¯å¤ä¸‰çˆºè³žäº†äºŒå五兩雪白的銀å,ç¨è‡ªè½è…°åŒ…,一文ä¸èŠ±ã€‚ã€
+å°æ “慢慢的從å°å±‹åè£èµ°å‡ºï¼Œå…©æ‰‹æŒ‰äº†èƒ¸å£ï¼Œä¸ä½çš„咳嗽;走到竈下,盛出一碗冷飯,泡上熱水,å下便åƒã€‚è¯å¤§åª½è·Ÿç€ä»–走,輕輕的å•é“ï¼Œã€Œå°æ “ï¼Œä½ å¥½äº›éº½ï¼Ÿâ€”â€”ä½ ä»èˆŠåªæ˜¯è‚šé¤“?……ã€
+「包好,包好ï¼ã€åº·å¤§å”çž¥äº†å°æ “一眼,ä»ç„¶å›žéŽè‡‰ï¼Œå°çœ¾äººèªªï¼Œã€Œå¤ä¸‰çˆºçœŸæ˜¯ä¹–è§’å…’ï¼Œè¦æ˜¯ä»–ä¸å…ˆå‘Šå®˜ï¼Œé€£ä»–滿門抄斬。ç¾åœ¨æ€Žæ¨£ï¼ŸéŠ€åï¼â€”â€”é€™å°æ±è¥¿ä¹ŸçœŸä¸æˆæ±è¥¿ï¼é—œåœ¨ç‰¢è£ï¼Œé‚„è¦å‹¸ç‰¢é é€ å。ã€
+「阿呀,那還了得。ã€å在後排的一個二å多æ²çš„人,很ç¾å‡ºæ°£æ†¤æ¨¡æ¨£ã€‚
+ã€Œä½ è¦æ›‰å¾—紅眼ç›é˜¿ç¾©æ˜¯åŽ»ç›¤ç›¤åº•ç´°çš„ï¼Œä»–å»å’Œä»–æ”€è«‡äº†ã€‚ä»–èªªï¼šé€™å¤§æ¸…çš„å¤©ä¸‹æ˜¯æˆ‘å€‘å¤§å®¶çš„ã€‚ä½ æƒ³ï¼šé€™æ˜¯äººè©±éº½ï¼Ÿç´…çœ¼ç›åŽŸçŸ¥é“ä»–å®¶è£åªæœ‰ä¸€å€‹è€å¨˜ï¼Œå¯æ˜¯æ²’有料到他竟會那麽窮,æ¾ä¸å‡ºä¸€é»žæ²¹æ°´ï¼Œå·²ç¶“æ°£ç ´è‚šçš®äº†ã€‚ä»–é‚„è¦è€è™Žé 上æ”癢,便給他兩個嘴巴ï¼ã€
+ã€Œç¾©å“¥æ˜¯ä¸€æ‰‹å¥½æ‹³æ£’ï¼Œé€™å…©ä¸‹ï¼Œä¸€å®šå¤ ä»–å—用了。ã€å£è§’çš„é§èƒŒå¿½ç„¶é«˜èˆˆèµ·ä¾†ã€‚
+ã€Œä»–é€™è³¤éª¨é æ‰“䏿€•,還è¦èªªå¯æ†å¯æ†å“©ã€‚ã€
+花白é¬å的人說,「打了這種æ±è¥¿ï¼Œæœ‰ä»€éº½å¯æ†å‘¢ï¼Ÿã€
+康大å”顯出看他ä¸ä¸Šçš„æ¨£å,冷笑ç€èªªï¼Œã€Œä½ æ²’æœ‰è½æ¸…æˆ‘çš„è©±ï¼›çœ‹ä»–ç¥žæ°£ï¼Œæ˜¯èªªé˜¿ç¾©å¯æ†å“©ï¼ã€
+è½ç€çš„äººçš„çœ¼å…‰ï¼Œå¿½ç„¶æœ‰äº›æ¿æ»¯ï¼›è©±ä¹Ÿåœé “äº†ã€‚å°æ “已經åƒå®Œé£¯ï¼Œåƒå¾—æ»¿èº«æµæ±—,é 上都冒出蒸氣來。
+ã€Œé˜¿ç¾©å¯æ†â€”—瘋話,簡直是發了瘋了。ã€èŠ±ç™½é¬åæç„¶å¤§æ‚Ÿä¼¼çš„說。
+「發了瘋了。ã€äºŒå多æ²çš„人也æç„¶å¤§æ‚Ÿçš„說。
+店è£çš„å客,便åˆç¾å‡ºæ´»æ°£ï¼Œè«‡ç¬‘èµ·ä¾†ã€‚å°æ “也è¶ç€ç†±é¬§ï¼Œæ‹šå‘½å’³å—½ï¼›åº·å¤§å”走上å‰ï¼Œæ‹ä»–肩膀說:
+「包好ï¼å°æ “â€”â€”ä½ ä¸è¦é€™éº¼å’³ã€‚包好ï¼ã€
+「瘋了。ã€é§èƒŒäº”少爺點ç€é 說。
+西關外é ç€åŸŽæ ¹çš„地é¢ï¼Œæœ¬æ˜¯ä¸€å¡Šå®˜åœ°ï¼›ä¸é–“æªæªæ–œæ–œä¸€æ¢ç´°è·¯ï¼Œæ˜¯è²ªèµ°ä¾¿é“çš„äººï¼Œç”¨éž‹åº•é€ æˆçš„ï¼Œä½†å»æˆäº†è‡ªç„¶çš„界é™ã€‚è·¯çš„å·¦é‚Šï¼Œéƒ½åŸ‹ç€æ»åˆ‘å’Œç˜æ–ƒçš„人,å³é‚Šæ˜¯çª®äººçš„å¢å¡šã€‚å…©é¢éƒ½å·²åŸ‹åˆ°å±¤å±¤ç–Šç–Šï¼Œå®›ç„¶é—Šäººå®¶è£ç¥å£½æ™‚候的饅é 。
+這一年的清明,分外寒冷;楊柳æ‰å出åŠç²’米大的新芽。天明未久,è¯å¤§åª½å·²åœ¨å³é‚Šçš„䏀忖°å¢³å‰é¢ï¼ŒæŽ’出四碟èœï¼Œä¸€ç¢—飯,å“äº†ä¸€å ´ã€‚åŒ–éŽç´™ï¼Œå‘†å‘†çš„å在地上;彷彿ç‰å€™ä»€éº½ä¼¼çš„,但自己也說ä¸å‡ºç‰å€™ä»€éº½ã€‚微風起來,å¹å‹•ä»–çŸé«®ï¼Œç¢ºä¹Žæ¯”去年白得多了。
+å°è·¯ä¸Šåˆä¾†äº†ä¸€å€‹å¥³äººï¼Œä¹Ÿæ˜¯åŠç™½é 髮,襤褸的衣裙;æä¸€å€‹ç ´èˆŠçš„æœ±æ¼†åœ“ç±ƒï¼Œå¤–æŽ›ä¸€ä¸²ç´™éŒ ï¼Œä¸‰æ¥ä¸€æ‡çš„走。忽然見è¯å¤§åª½å在地上看他,便有些躊躇,慘白的臉上,ç¾å‡ºäº›ç¾žæ„§çš„é¡è‰²ï¼›ä½†çµ‚於硬ç€é 皮,走到左邊的一å墳å‰ï¼Œæ”¾ä¸‹äº†ç±ƒå。
+é‚£å¢³èˆ‡å°æ “的墳,一å—兒排ç€ï¼Œä¸é–“åªéš”一æ¢å°è·¯ã€‚è¯å¤§åª½çœ‹ä»–排好四碟èœï¼Œä¸€ç¢—飯,立ç€å“了一通,化éŽç´™éŒ ï¼›å¿ƒè£æš—æš—地想,「這墳è£çš„也是兒å了。ã€é‚£è€å¥³äººå¾˜å¾Šè§€æœ›äº†ä¸€å›žï¼Œå¿½ç„¶æ‰‹è…³æœ‰äº›ç™¼æŠ–,蹌蹌踉踉退下幾æ¥ï¼Œçžªç€çœ¼åªæ˜¯ç™¼æ€”。
+è¯å¤§åª½è¦‹é€™æ¨£å,生怕他傷心到快è¦ç™¼ç‹‚了;便å¿ä¸ä½ç«‹èµ·èº«ï¼Œè·¨éŽå°è·¯ï¼Œä½Žè²å°ä»–èªªï¼Œã€Œä½ é€™ä½è€å¥¶å¥¶ä¸è¦å‚·å¿ƒäº†ï¼Œâ€”—我們還是回去罷。ã€
+那人點一點é ,眼ç›ä»ç„¶å‘上瞪ç€ï¼›ä¹Ÿä½Žè²åƒåƒçš„說é“ï¼Œã€Œä½ çœ‹ï¼Œâ€”â€”çœ‹é€™æ˜¯ä»€éº½å‘¢ï¼Ÿã€
+è¯å¤§åª½è·Ÿäº†ä»–指é 看去,眼光便到了å‰é¢çš„å¢³ï¼Œé€™å¢³ä¸Šè‰æ ¹é‚„沒有全åˆï¼Œéœ²å‡ºä¸€å¡Šä¸€å¡Šçš„黃土,煞是難看。å†å¾€ä¸Šä»”細看時,å»ä¸è¦ºä¹Ÿåƒä¸€é©šï¼›â€”—分明有一圈紅白的花,åœç€é‚£å°–åœ“çš„å¢³é ‚ã€‚
+他們的眼ç›éƒ½å·²è€èŠ±å¤šå¹´äº†ï¼Œä½†æœ›é€™ç´…ç™½çš„èŠ±ï¼Œå»é‚„能明白看見。花也ä¸å¾ˆå¤šï¼Œåœ“圓的排æˆä¸€å€‹åœˆï¼Œä¸å¾ˆç²¾ç¥žï¼Œå€’也整齊。è¯å¤§åª½å¿™çœ‹ä»–å…’å和別人的墳,å»åªæœ‰ä¸æ€•冷的幾點é’白å°èŠ±ï¼Œé›¶æ˜Ÿé–‹ç€ï¼›ä¾¿è¦ºå¾—心è£å¿½ç„¶æ„Ÿåˆ°ä¸€ç¨®ä¸è¶³å’Œç©ºè™›ï¼Œä¸é¡˜æ„æ ¹ç©¶ã€‚é‚£è€å¥³äººåˆèµ°è¿‘å¹¾æ¥ï¼Œç´°çœ‹äº†ä¸€éï¼Œè‡ªè¨€è‡ªèªžçš„èªªï¼Œã€Œé€™æ²’æœ‰æ ¹ï¼Œä¸åƒè‡ªå·±é–‹çš„。——這地方有誰來呢?å©å䏿œƒä¾†çŽ©ï¼›â€”â€”è¦ªæˆšæœ¬å®¶æ—©ä¸ä¾†äº†ã€‚——這是怎麼一回事呢?ã€ä»–æƒ³äº†åˆæƒ³ï¼Œå¿½åˆæµä¸‹æ·šä¾†ï¼Œå¤§è²èªªé“:
+ã€Œç‘œå…’ï¼Œä»–å€‘éƒ½å†¤æž‰äº†ä½ ï¼Œä½ é‚„æ˜¯å¿˜ä¸äº†ï¼Œå‚·å¿ƒä¸éŽï¼Œä»Šå¤©ç‰¹æ„顯點éˆï¼Œè¦æˆ‘知é“麽?ã€ä»–å››é¢ä¸€çœ‹ï¼Œåªè¦‹ä¸€éš»çƒé´‰ï¼Œç«™åœ¨ä¸€æ ªæ²’有葉的樹上,便接ç€èªªï¼Œã€Œæˆ‘知é“äº†ã€‚â€”â€”ç‘œå…’ï¼Œå¯æ†ä»–們å‘äº†ä½ ï¼Œä»–å€‘å°‡ä¾†ç¸½æœ‰å ±æ‡‰ï¼Œå¤©éƒ½çŸ¥é“ï¼›ä½ é–‰äº†çœ¼ç›å°±æ˜¯äº†ã€‚â€”â€”ä½ å¦‚æžœçœŸåœ¨é€™è£ï¼Œè½åˆ°æˆ‘的話,——便教這çƒé´‰é£›ä¸Šä½ çš„å¢³é ‚ï¼Œçµ¦æˆ‘çœ‹ç½·ã€‚ã€
+å¾®é¢¨æ—©ç¶“åœæ¯äº†ï¼›æž¯è‰æ”¯æ”¯ç›´ç«‹ï¼Œæœ‰å¦‚銅絲。一絲發抖的è²éŸ³ï¼Œåœ¨ç©ºæ°£ä¸æ„ˆé¡«æ„ˆç´°ï¼Œç´°åˆ°æ²’有,周åœä¾¿éƒ½æ˜¯æ»ä¸€èˆ¬éœã€‚兩人站在枯è‰å¢è£ï¼Œä»°é¢çœ‹é‚£çƒé´‰ï¼›é‚£çƒé´‰ä¹Ÿåœ¨ç†ç›´çš„æ¨¹æžé–“,縮ç€é ,éµé‘„一般站著。
+許多的工夫éŽåŽ»äº†ï¼›ä¸Šå¢³çš„äººæ¼¸æ¼¸å¢žå¤šï¼Œå¹¾å€‹è€çš„å°çš„,在土墳間出沒。
+è¯å¤§åª½ä¸çŸ¥æ€Žçš„,似乎å¸ä¸‹äº†ä¸€æŒ‘釿“”,便想到è¦èµ°ï¼›ä¸€é¢å‹¸ç€èªªï¼Œã€Œæˆ‘們還是回去罷。ã€
+é‚£è€å¥³äººå˜†ä¸€å£æ°£ï¼Œç„¡ç²¾æ‰“采的收起飯èœï¼›åˆé²ç–‘了一刻,終於慢慢地走了。嘴è£è‡ªè¨€è‡ªèªžçš„說,「這是怎麼一回事呢?……ã€
+他們走ä¸ä¸ŠäºŒä¸‰åæ¥é ,忽è½å¾—背後「啞——ã€çš„一è²å¤§å«ï¼›å…©å€‹äººéƒ½ç«¦ç„¶çš„回éŽé ,åªè¦‹é‚£çƒé´‰å¼µé–‹å…©ç¿…,一挫身,直å‘ç€é 處的天空,ç®ä¹Ÿä¼¼çš„飛去了。
+ä½åœ¨æˆ‘們後進院åè£çš„三太太,在å¤é–“買了一å°ç™½å…”,是給伊的å©å們看的。
+這一å°ç™½å…”,似乎離娘並ä¸ä¹…,雖然是異類,也å¯ä»¥çœ‹å‡ºä»–們的天真爛熳來。但也豎直了å°å°çš„通紅的長耳朵,動著鼻å,眼ç›è£é —ç¾äº›é©šç–‘的神色,大約究竟覺得人地生ç–,沒有在è€å®¶æ™‚候的安心了。這種æ±è¥¿ï¼Œå€˜åˆ°å»Ÿæœƒæ—¥æœŸè‡ªå·±å‡ºåŽ»è²·ï¼Œæ¯å€‹è‡³å¤šä¸éŽå…©å¼”錢,而三太太å»èŠ±äº†ä¸€å…ƒï¼Œå› ç‚ºæ˜¯å«å°ä½¿ä¸Šåº—買來的。
+å©å們自然大得æ„了,嚷著åœä½äº†çœ‹ï¼›å¤§äººä¹Ÿéƒ½åœè‘—看;還有一匹å°ç‹—åå«S的也跑來,闖éŽåŽ»ä¸€å—…ï¼Œæ‰“äº†ä¸€å€‹å™´åšï¼Œé€€äº†å¹¾æ¥ã€‚三太太å†å–é“,「S,è½è‘—,ä¸å‡†ä½ 咬他ï¼ã€æ–¼æ˜¯åœ¨ä»–é 上打了一拳,S便退開了,從æ¤ä¸¦ä¸å’¬ã€‚
+這一å°å…”總是關在後窗後é¢çš„å°é™¢åè£çš„æ™‚候多,è½èªªæ˜¯å› ç‚ºå¤ªå–œæ¡æ’•å£ç´™ï¼Œä¹Ÿå¸¸å¸¸å•ƒæœ¨å™¨è…³ã€‚這å°é™¢åè£æœ‰ä¸€æ ªé‡Žæ¡‘樹,桑åè½åœ°ï¼Œä»–們最愛åƒï¼Œä¾¿é€£å–‚他們的è èœä¹Ÿä¸åƒäº†ã€‚çƒé´‰å–œéµ²æƒ³è¦ä¸‹ä¾†æ™‚,他們便躬著身å用後腳在地上使å‹çš„ä¸€å½ˆï¼Œç ‰çš„ä¸€è²ç›´è·³ä¸Šä¾†ï¼Œåƒé£›èµ·äº†ä¸€åœ˜é›ªï¼Œé´‰éµ²åš‡å¾—趕緊走,這樣的幾回,å†ä¹Ÿä¸æ•¢è¿‘ä¾†äº†ã€‚ä¸‰å¤ªå¤ªèªªï¼Œé´‰éµ²åˆ°ä¸æ‰“緊,至多也ä¸éŽæ¶åƒä¸€é»žé£Ÿæ–™ï¼Œå¯æƒ¡çš„æ˜¯ä¸€åŒ¹å¤§é»‘è²“ï¼Œå¸¸åœ¨çŸ®ç‰†ä¸Šæƒ¡ç‹ ç‹ çš„çœ‹ï¼Œé€™å»è¦é˜²çš„,幸而S和貓是å°é ,或者還ä¸è‡³æ–¼æœ‰ä»€éº¼ç½·ã€‚
+å©å們時時æ‰ä»–們來玩è€ï¼›ä»–們很和氣,豎起耳朵,動著鼻åï¼Œé¦´è‰¯çš„ç«™åœ¨å°æ‰‹çš„圈åè£ï¼Œä½†ä¸€æœ‰ç©ºï¼Œå»ä¹Ÿå°±æºœé–‹åŽ»äº†ã€‚ä»–å€‘å¤œè£çš„è‡¥æ¦»æ˜¯ä¸€å€‹å°æœ¨ç®±ï¼Œè£é¢é‹ªäº›ç¨»è‰ï¼Œå°±åœ¨å¾Œçª—的房æªä¸‹ã€‚
+這樣的幾個月之後,他們忽而自己掘土了,掘得éžå¸¸å¿«ï¼Œå‰è…³ä¸€æŠ“,後腳一踢,ä¸åˆ°åŠå¤©ï¼Œå·²ç¶“掘æˆä¸€å€‹æ·±æ´žã€‚å¤§å®¶éƒ½å¥‡æ€ªï¼Œå¾Œä¾†ä»”ç´°çœ‹æ™‚ï¼ŒåŽŸä¾†ä¸€å€‹çš„è‚šåæ¯”別一個的大得多了。他們第二天便將乾è‰å’Œæ¨¹è‘‰éŠœé€²æ´žè£åŽ»ï¼Œå¿™äº†å¤§åŠå¤©ã€‚
+å¤§å®¶éƒ½é«˜èˆˆï¼Œèªªåˆæœ‰å°å…”å¯çœ‹äº†ï¼›ä¸‰å¤ªå¤ªä¾¿å°å©å們下了戒嚴令,從æ¤ä¸è¨±å†åŽ»æ‰ã€‚我的æ¯è¦ªä¹Ÿå¾ˆå–œæ¡ä»–們家æ—çš„ç¹æ¦®ï¼Œé‚„說待生下來的離了乳,也è¦åŽ»è¨Žå…©åŒ¹ä¾†é¤Šåœ¨è‡ªå·±çš„çª—å¤–é¢ã€‚
+他們從æ¤ä¾¿ä½åœ¨è‡ªé€ 的洞府è£ï¼Œæœ‰æ™‚也出來åƒäº›é£Ÿï¼Œå¾Œä¾†ä¸è¦‹äº†ï¼Œå¯ä¸çŸ¥é“他們是é å…ˆé‹ç³§å˜åœ¨è£é¢å‘¢é‚„是竟ä¸åƒã€‚éŽäº†åå¤šå¤©ï¼Œä¸‰å¤ªå¤ªå°æˆ‘說,那兩匹åˆå‡ºä¾†äº†ï¼Œå¤§ç´„å°å…”是生下來åˆéƒ½æ»æŽ‰äº†ï¼Œå› 為雌的一匹的奶éžå¸¸å¤šï¼Œå»ä¸¦ä¸è¦‹æœ‰é€²åŽ»å“ºé¤Šå©åçš„å½¢è·¡ã€‚ä¼Šè¨€èªžä¹‹é–“é —æ°£æ†¤ï¼Œç„¶è€Œä¹Ÿæ²’æœ‰æ³•ã€‚
+有一天,太陽很溫暖,也沒有風,樹葉都ä¸å‹•,我忽è½å¾—許多人在那è£ç¬‘,尋è²çœ‹æ™‚,å»è¦‹è¨±å¤šäººéƒ½é 著三太太的後窗看:原來有一個å°å…”,在院åè£è·³èºäº†ã€‚這比他的父æ¯è²·ä¾†çš„æ™‚候還å°å¾—é ,但也已經能用後腳一彈地,迸跳起來了。å©å們çˆè‘—告訴我說,還看見一個å°å…”到洞å£ä¾†æŽ¢ä¸€æŽ¢é ,但是å³åˆ»ä¾¿ç¸®å›žåŽ»äº†ï¼Œé‚£è©²æ˜¯ä»–çš„å¼Ÿå¼Ÿç½·ã€‚
+é‚£å°çš„也撿些è‰è‘‰åƒï¼Œç„¶è€Œå¤§çš„似乎ä¸è¨±ä»–,往往夾å£çš„æ¶åŽ»äº†ï¼Œè€Œè‡ªå·±ä¸¦ä¸åƒã€‚å©å們笑得響,那å°çš„終於åƒé©šäº†ï¼Œä¾¿è·³è‘—鑽進洞è£åŽ»ï¼›å¤§çš„ä¹Ÿè·Ÿåˆ°æ´žé–€å£ï¼Œç”¨å‰è…³æŽ¨è‘—ä»–çš„å©å的脊樑,推進之後,åˆçˆ¬é–‹æ³¥åœŸä¾†å°äº†æ´žã€‚
+從æ¤å°é™¢åè£æ›´ç†±é¬§ï¼Œçª—å£ä¹Ÿæ™‚時有人窺探了。
+然而竟åˆå…¨ä¸è¦‹äº†é‚£å°çš„å’Œå¤§çš„ã€‚é€™æ™‚æ˜¯é€£æ—¥çš„é™°å¤©ï¼Œä¸‰å¤ªå¤ªåˆæ…®åˆ°é了那大黑貓的毒手的事去。我說ä¸ç„¶ï¼Œé‚£æ˜¯å¤©æ°£å†·ï¼Œç•¶ç„¶éƒ½èº²è‘—,太陽一齣,一定出來的。
+太陽出來了,他們å»éƒ½ä¸è¦‹ã€‚於是大家就忘å»äº†ã€‚
+惟有三太太是常在那è£å–‚他們è èœçš„,所以常想到。伊有一回走進窗後的å°é™¢å去,忽然在牆角發見了一個別的洞,å†çœ‹èˆŠæ´žå£ï¼Œå»ä¾ç¨€çš„é‚„è¦‹æœ‰è¨±å¤šçˆªç—•ã€‚é€™çˆªç—•å€˜èªªæ˜¯å¤§å…”çš„ï¼Œçˆªè©²ä¸æœƒæœ‰é€™æ¨£å¤§ï¼Œä¼Šåˆç–‘心到那常在牆上的大黑貓去了,伊於是也就ä¸èƒ½ä¸å®šä¸‹ç™¼æŽ˜çš„æ±ºå¿ƒäº†ã€‚伊終於出來å–了鋤å,一路掘下去,雖然疑心,å»ä¹Ÿå¸Œæœ›è‘—æ„外的見了å°ç™½å…”的,但是待到底,å»åªè¦‹ä¸€å †çˆ›è‰å¤¾äº›å…”æ¯›ï¼Œæ€•é‚„æ˜¯è‡¨è“æ™‚候所鋪的罷,æ¤å¤–是冷清清的,全沒有什麼雪白的å°å…”的蹤跡,以åŠä»–é‚£éš»ä¸€æŽ¢é æœªå‡ºæ´žå¤–的弟弟了。
+氣憤和失望和淒涼,使伊ä¸èƒ½ä¸å†æŽ˜é‚£ç‰†è§’上的新洞了。一動手,那大的兩匹便先竄出洞外é¢ã€‚伊以為他們æ¬äº†å®¶äº†ï¼Œå¾ˆé«˜èˆˆï¼Œç„¶è€Œä»ç„¶æŽ˜ï¼Œå¾…見底,那è£é¢ä¹Ÿé‹ªè‘—è‰è‘‰å’Œå…”毛,而上é¢å»ç¡è‘—七個很å°çš„兔,é身肉紅色,細看時,眼ç›å…¨éƒ½æ²’有開。
+一切都明白了,三太太先å‰çš„é æ–™æžœä¸éŒ¯ã€‚伊為é 防å±éšªèµ·è¦‹ï¼Œä¾¿å°‡ä¸ƒå€‹å°çš„都è£åœ¨æœ¨ç®±ä¸ï¼Œæ¬é€²è‡ªå·±çš„æˆ¿è£ï¼Œåˆå°‡å¤§çš„也æºé€²ç®±è£é¢ï¼Œå‹’令伊去哺乳。
+三太太從æ¤ä¸ä½†æ·±æ¨é»‘è²“ï¼Œè€Œä¸”é —ä¸ä»¥å¤§å…”為然了。據說當åˆé‚£å…©å€‹è¢«å®³ä¹‹å…ˆï¼Œæ»æŽ‰çš„è©²é‚„æœ‰ï¼Œå› ç‚ºä»–å€‘ç”Ÿä¸€å›žï¼Œæ±ºä¸è‡³æ–¼åªå…©å€‹ï¼Œä½†ç‚ºäº†å“ºä¹³ä¸å‹»ï¼Œä¸èƒ½çˆé£Ÿçš„就先æ»äº†ã€‚這大概也ä¸éŒ¯çš„,ç¾åœ¨ä¸ƒå€‹ä¹‹ä¸ï¼Œå°±æœ‰å…©å€‹å¾ˆç˜¦å¼±ã€‚所以三太太一有閑空,便æ‰ä½æ¯å…”,將å°å…”一個一個輪æµçš„æ“ºåœ¨è‚šå上來å–奶,ä¸å‡†æœ‰å¤šå°‘。
+æ¯è¦ªå°æˆ‘說,那樣麻煩的養兔法,伊æ·ä¾†é€£è½ä¹Ÿæœªæ›¾è½åˆ°éŽï¼Œææ€•是å¯ä»¥æ”¶å…¥ã€Šç„¡é›™èœã€‹çš„。
+ç™½å…”çš„å®¶æ—æ›´ç¹æ¦®ï¼›å¤§å®¶ä¹Ÿåˆéƒ½é«˜èˆˆäº†ã€‚
+但自æ¤ä¹‹å¾Œï¼Œæˆ‘總覺得淒涼。夜åŠåœ¨ç‡ˆä¸‹å著想,那兩æ¢å°æ€§å‘½ï¼Œç«Ÿæ˜¯äººä¸çŸ¥é¬¼ä¸è¦ºçš„æ—©åœ¨ä¸çŸ¥ä»€éº¼æ™‚候喪失了,生物å²ä¸Šä¸è‘—一些痕跡,並S也ä¸å«ä¸€è²ã€‚æˆ‘æ–¼æ˜¯è¨˜èµ·èˆŠäº‹ä¾†ï¼Œå…ˆå‰æˆ‘ä½åœ¨æœƒé¤¨è£ï¼Œæ¸…早起身,åªè¦‹å¤§æ§æ¨¹ä¸‹ä¸€ç‰‡æ•£äº‚çš„é´¿åæ¯›ï¼Œé€™æ˜Žæ˜Žæ˜¯è†æ–¼é·¹å»çš„了,上åˆé•·ç來一打掃,便什麼都ä¸è¦‹ï¼Œèª°çŸ¥é“曾有一個生命斷é€åœ¨é€™è£å‘¢ï¼Ÿæˆ‘åˆæ›¾è·¯éŽè¥¿å››ç‰Œæ¨“,看見一匹å°ç‹—被馬車軋得快æ»ï¼Œå¾…回來時,什麼也ä¸è¦‹äº†ï¼Œæ¬æŽ‰äº†ç½·ï¼ŒéŽå¾€è¡Œäººæ†§æ†§çš„èµ°è‘—ï¼Œèª°çŸ¥é“æ›¾æœ‰ä¸€å€‹ç”Ÿå‘½æ–·é€åœ¨é€™è£å‘¢ï¼Ÿå¤å¤œï¼Œçª—外é¢ï¼Œå¸¸è½åˆ°è’¼è …çš„æ‚ é•·çš„å±å±çš„å«è²ï¼Œé€™ä¸€å®šæ˜¯çµ¦è …虎咬ä½äº†ï¼Œç„¶è€Œæˆ‘å‘來無所容心於其間,而別人並且ä¸è½åˆ°â€¦â€¦
+å‡ä½¿é€ 物也å¯ä»¥è²¬å‚™ï¼Œé‚£éº¼ï¼Œæˆ‘ä»¥ç‚ºä»–å¯¦åœ¨å°‡ç”Ÿå‘½é€ å¾—å¤ªæ¿«äº†ï¼Œæ¯€å¾—å¤ªæ¿«äº†ã€‚
+嗥的一è²ï¼Œåˆæ˜¯å…©æ¢è²“在窗外打起架來。「迅兒ï¼ä½ åˆåœ¨é‚£è£æ‰“貓了?ã€ã€Œä¸ï¼Œä»–å€‘è‡ªå·±å’¬ã€‚ä»–é‚£è£æœƒçµ¦æˆ‘打呢。ã€
+我的æ¯è¦ªæ˜¯ç´ 來很ä¸ä»¥æˆ‘çš„è™å¾…貓為然的,ç¾åœ¨å¤§ç´„ç–‘å¿ƒæˆ‘è¦æ›¿å°å…”抱ä¸å¹³ï¼Œä¸‹ä»€éº¼è¾£æ‰‹ï¼Œä¾¿èµ·ä¾†æŽ¢å•了。而我在全家的å£ç¢‘上,å»çš„確算一個貓敵。我曾經害éŽè²“,平時也常打貓,尤其是在他們é…åˆçš„æ™‚å€™ã€‚ä½†æˆ‘ä¹‹æ‰€ä»¥æ‰“çš„åŽŸå› ä¸¦éžå› 為他們é…åˆï¼Œæ˜¯å› 為他們嚷,嚷到使我ç¡ä¸è‘—,我以為é…åˆæ˜¯ä¸å¿…這樣大嚷而特嚷的。
+æ³ä¸”黑貓害了å°å…”,我更是「師出有åã€çš„了。我覺得æ¯è¦ªå¯¦åœ¨å¤ªä¿®å–„,於是ä¸ç”±çš„就說出模棱的近乎ä¸ä»¥ç‚ºç„¶çš„ç”話來。
+é€ ç‰©å¤ªèƒ¡é¬§ï¼Œæˆ‘ä¸èƒ½ä¸å抗他了,雖然也許是倒是幫他的忙……
+那黑貓是ä¸èƒ½ä¹…在矮牆上高視闊æ¥çš„了,我決定的想,於是åˆä¸ç”±çš„一瞥那è—在書箱è£çš„一瓶é’酸鉀。
+我在倒數上去的二åå¹´ä¸ï¼Œåªçœ‹éŽå…©å›žä¸åœ‹æˆ²ï¼Œå‰å年是絕ä¸çœ‹ï¼Œå› ç‚ºæ²’æœ‰çœ‹æˆ²çš„æ„æ€å’Œæ©Ÿæœƒï¼Œé‚£å…©å›žå…¨åœ¨å¾Œå年,然而都沒有看出什麼來就走了。
+第一回是民國元年我åˆåˆ°åŒ—京的時候,當時一個朋å‹å°æˆ‘èªªï¼ŒåŒ—äº¬æˆ²æœ€å¥½ï¼Œä½ ä¸åŽ»è¦‹è¦‹ä¸–é¢éº½ï¼Ÿæˆ‘想,看戲是有味的,而æ³åœ¨åŒ—äº¬å‘¢ã€‚æ–¼æ˜¯éƒ½èˆˆç·»å‹ƒå‹ƒçš„è·‘åˆ°ä»€éº¼åœ’ï¼Œæˆ²æ–‡å·²ç¶“é–‹å ´äº†ï¼Œåœ¨å¤–é¢ä¹Ÿæ—©è½åˆ°é¼•é¼•åœ°éŸ¿ã€‚æˆ‘å€‘æŒ¨é€²é–€ï¼Œå¹¾å€‹ç´…çš„ç¶ çš„åœ¨æˆ‘çš„çœ¼å‰ä¸€é–ƒçˆï¼Œä¾¿åˆçœ‹è¦‹æˆ²è‡ºä¸‹æ»¿æ˜¯è¨±å¤šé ,å†å®šç¥žå››é¢çœ‹ï¼Œå»è¦‹ä¸é–“ä¹Ÿé‚„æœ‰å¹¾å€‹ç©ºåº§ï¼Œæ“ éŽåŽ»è¦åæ™‚ï¼Œåˆæœ‰äººå°æˆ‘發è°è«–ï¼Œæˆ‘å› ç‚ºè€³æœµå·²ç¶“å–¤çš„éŸ¿è‘—äº†ï¼Œç”¨äº†å¿ƒï¼Œçº”è½åˆ°ä»–是說「有人,ä¸è¡Œï¼ã€ã€‚
+我們退到後é¢ï¼Œä¸€å€‹è¾®å很光的å»ä¾†é ˜æˆ‘們到了å´é¢ï¼ŒæŒ‡å‡ºä¸€å€‹åœ°ä½ä¾†ã€‚這所謂地ä½è€…,原來是一æ¢é•·å‡³ï¼Œç„¶è€Œä»–é‚£åæ¿æ¯”æˆ‘çš„ä¸Šè…¿è¦ç‹¹åˆ°å››åˆ†ä¹‹ä¸‰ï¼Œä»–的腳比我的下腿è¦é•·éŽä¸‰åˆ†ä¹‹äºŒã€‚æˆ‘å…ˆæ˜¯æ²’æœ‰çˆ¬ä¸ŠåŽ»çš„å‹‡æ°£ï¼ŒæŽ¥è‘—ä¾¿è¯æƒ³åˆ°ç§åˆ‘拷打的刑具,ä¸ç”±çš„æ¯›éª¨æ‚šç„¶çš„走出了。
+走了許多路,忽è½å¾—我的朋å‹çš„è²éŸ³é“ï¼Œã€Œç©¶ç«Ÿæ€Žçš„ï¼Ÿã€æˆ‘回éŽè‡‰åŽ»ï¼ŒåŽŸä¾†ä»–ä¹Ÿè¢«æˆ‘å¸¶å‡ºä¾†äº†ã€‚ä»–å¾ˆè©«ç•°çš„èªªï¼Œã€Œæ€Žéº¼ç¸½æ˜¯èµ°ï¼Œä¸ç”æ‡‰ï¼Ÿã€æˆ‘說,「朋å‹ï¼Œå°ä¸èµ·ï¼Œæˆ‘耳朵åªåœ¨é¼•鼕喤喤的響,並沒有è½åˆ°ä½ 的話。ã€
+後來我æ¯ä¸€æƒ³åˆ°ï¼Œä¾¿å¾ˆä»¥ç‚ºå¥‡æ€ªï¼Œä¼¼ä¹Žé€™æˆ²å¤ªä¸å¥½ï¼Œâ€”—å¦å‰‡ä¾¿æ˜¯æˆ‘近來在戲臺下ä¸é©æ–¼ç”Ÿå˜äº†ã€‚
+ç¬¬äºŒå›žå¿˜è¨˜äº†é‚£ä¸€å¹´ï¼Œç¸½ä¹‹æ˜¯å‹Ÿé›†æ¹–åŒ—æ°´ç½æè€Œèšå«å¤©é‚„沒有æ»ã€‚ææ³•是兩元錢買一張戲票,å¯ä»¥åˆ°ç¬¬ä¸€èˆžè‡ºåŽ»çœ‹æˆ²ï¼Œæ‰®æ¼”çš„å¤šæ˜¯å角,其一就是å°å«å¤©ã€‚æˆ‘è²·äº†ä¸€å¼µç¥¨ï¼Œæœ¬æ˜¯å°æ–¼å‹¸å‹ŸäººèŠä»¥å¡žè²¬çš„ï¼Œç„¶è€Œä¼¼ä¹Žåˆæœ‰å¥½äº‹å®¶ä¹˜æ©Ÿå°æˆ‘說了些å«å¤©ä¸å¯ä¸çœ‹çš„大法è¦äº†ã€‚我於是忘了å‰å¹¾å¹´çš„鼕鼕喤喤之ç½ï¼Œç«Ÿåˆ°ç¬¬ä¸€èˆžè‡ºåŽ»äº†ï¼Œä½†å¤§ç´„ä¸€åŠä¹Ÿå› 為é‡åƒ¹è³¼ä¾†çš„寶票,總得使用了纔舒æœã€‚我打è½å¾—å«å¤©å‡ºè‡ºæ˜¯é²çš„ï¼Œè€Œç¬¬ä¸€èˆžè‡ºå»æ˜¯æ–°å¼æ§‹é€ ,用ä¸è‘—çˆåº§ä½ï¼Œä¾¿æ”¾äº†å¿ƒï¼Œå»¶å®•到ä¹é»žé˜çº”去,誰料照例,人都滿了,連立足也難,我åªå¾—æ“ åœ¨é 處的人å¢ä¸çœ‹ä¸€å€‹è€æ—¦åœ¨è‡ºä¸Šå”±ã€‚é‚£è€æ—¦å˜´é‚Šæ’著兩個點ç«çš„紙撚å,æ—邊有一個鬼å’,我費盡æ€é‡ï¼Œçº”疑心他或者是目連的æ¯è¦ªï¼Œå› 為後來åˆå‡ºä¾†äº†ä¸€å€‹å’Œå°šã€‚然而我åˆä¸çŸ¥é“é‚£åè§’æ˜¯èª°ï¼Œå°±åŽ»å•æ“ å°åœ¨æˆ‘的左邊的一ä½èƒ–紳士。他很看ä¸èµ·ä¼¼çš„æ–œçž¥äº†æˆ‘一眼,說é“, 「龔雲甫ï¼ã€æˆ‘深愧淺陋而且粗ç–ï¼Œè‡‰ä¸Šä¸€ç†±ï¼ŒåŒæ™‚腦裡也制出了決ä¸å†å•çš„å®šç« ï¼Œæ–¼æ˜¯çœ‹å°æ—¦å”±ï¼Œçœ‹èŠ±æ—¦å”±ï¼Œçœ‹è€ç”Ÿå”±ï¼Œçœ‹ä¸çŸ¥ä»€éº¼è§’色唱,看一大ç人亂打,看兩三個人互打,從ä¹é»žå¤šåˆ°å點,從å點到å一點,從å一點到å一點åŠï¼Œå¾žå一點åŠåˆ°å二點,——然而å«å¤©ç«Ÿé‚„沒有來。
+我å‘來沒有這樣å¿è€çš„ç‰å¾…éŽä»€éº¼äº‹ç‰©ï¼Œè€Œæ³é€™èº«é‚Šçš„胖紳士的ååçš„å–˜æ°£ï¼Œé€™è‡ºä¸Šçš„é¼•é¼•å–¤å–¤çš„æ•²æ‰“ï¼Œç´…ç´…ç¶ ç¶ çš„æ™ƒè•©ï¼ŒåŠ ä¹‹ä»¥å二點,忽而使我çœèª¤åˆ°åœ¨é€™è£¡ä¸é©æ–¼ç”Ÿå˜äº†ã€‚æˆ‘åŒæ™‚便機械的擰轉身å,用力往外åªä¸€æ“ ,覺得背後便已滿滿的,大約那彈性的胖紳士早在我的空處胖開了他的å³åŠèº«äº†ã€‚æˆ‘å¾Œç„¡è¿´è·¯ï¼Œè‡ªç„¶æ“ è€Œåˆæ“ ,終於出了大門。街上除了專ç‰çœ‹å®¢çš„車輛之外,幾乎沒有什麼行人了,大門å£å»é‚„有å幾個人昂著é çœ‹æˆ²ç›®ï¼Œåˆ¥æœ‰ä¸€å †äººç«™è‘—ä¸¦ä¸çœ‹ä»€éº¼ï¼Œæˆ‘想:他們大概是看散戲之後出來的女人們的,而å«å¤©å»é‚„沒有來……
+然而夜氣很清爽,真所謂「æ²äººå¿ƒè„¾ã€ï¼Œæˆ‘在北京é‡è‘—這樣的好空氣,仿佛這是第一é了。
+é€™ä¸€å¤œï¼Œå°±æ˜¯æˆ‘å°æ–¼ä¸åœ‹æˆ²å‘Šäº†åˆ¥çš„一夜,æ¤å¾Œå†æ²’有想到他,å³ä½¿å¶è€Œç¶“éŽæˆ²åœ’ï¼Œæˆ‘å€‘ä¹Ÿæ¼ ä¸ç›¸é—œï¼Œç²¾ç¥žä¸Šæ—©å·²ä¸€åœ¨å¤©ä¹‹å—一在地之北了。
+但是å‰å¹¾å¤©ï¼Œæˆ‘忽在無æ„之ä¸çœ‹åˆ°ä¸€æœ¬æ—¥æœ¬æ–‡çš„æ›¸ï¼Œå¯æƒœå¿˜è¨˜äº†æ›¸å和著者,總之是關於ä¸åœ‹æˆ²çš„ã€‚å…¶ä¸æœ‰ä¸€ç¯‡ï¼Œå¤§æ„仿佛說,ä¸åœ‹æˆ²æ˜¯å¤§æ•²ï¼Œå¤§å«ï¼Œå¤§è·³ï¼Œä½¿çœ‹å®¢é æ˜è…¦çœ©ï¼Œå¾ˆä¸é©æ–¼åŠ‡å ´ï¼Œä½†è‹¥åœ¨é‡Žå¤–æ•£æ¼«çš„æ‰€åœ¨ï¼Œé é çš„çœ‹èµ·ä¾†ï¼Œä¹Ÿè‡ªæœ‰ä»–çš„é¢¨è‡´ã€‚æˆ‘ç•¶æ™‚è¦ºè‘—é€™æ£æ˜¯èªªäº†åœ¨æˆ‘æ„ä¸è€Œæœªæ›¾æƒ³åˆ°çš„è©±ï¼Œå› ç‚ºæˆ‘ç¢ºè¨˜å¾—åœ¨é‡Žå¤–çœ‹éŽå¾ˆå¥½çš„æˆ²ï¼Œåˆ°åŒ—京以後的連進兩回戲園去,也許還是å—äº†é‚£æ™‚çš„å½±éŸ¿å“©ã€‚å¯æƒœæˆ‘ä¸çŸ¥é“怎麼一來,竟將書å忘å»äº†ã€‚
+至於我看好戲的時候,å»å¯¦åœ¨å·²ç¶“是「é 哉é™é™ã€çš„äº†ï¼Œå…¶æ™‚ææ€•我還ä¸éŽå一二æ²ã€‚我們é¯éŽ®çš„ç¿’æ…£ï¼Œæœ¬ä¾†æ˜¯å‡¡æœ‰å‡ºå«çš„女兒,倘自己還未當家,å¤é–“便大抵回到æ¯å®¶åŽ»æ¶ˆå¤ã€‚那時我的祖æ¯é›–然還康建,但æ¯è¦ªä¹Ÿå·²åˆ†æ“”äº†äº›å®¶å‹™ï¼Œæ‰€ä»¥å¤æœŸä¾¿ä¸èƒ½å¤šæ—¥çš„æ¸çœäº†ï¼Œåªå¾—在掃墓完畢之後,抽空去ä½å¹¾å¤©ï¼Œé€™æ™‚我便æ¯å¹´è·Ÿäº†æˆ‘çš„æ¯è¦ªä½åœ¨å¤–祖æ¯çš„家裡。那地方å«å¹³æ©‹æ‘,是一個離海邊ä¸é ,極ååƒ»çš„ï¼Œè‡¨æ²³çš„å°æ‘èŽŠï¼›ä½æˆ¶ä¸æ»¿ä¸‰å家,都種田,打éšï¼Œåªæœ‰ä¸€å®¶å¾ˆå°çš„é›œè²¨åº—ã€‚ä½†åœ¨æˆ‘æ˜¯æ¨‚åœŸï¼šå› ç‚ºæˆ‘åœ¨é€™è£¡ä¸ä½†å¾—到優待,åˆå¯ä»¥å…念「秩秩斯乾幽幽å—å±±ã€äº†ã€‚
+和我一åŒçŽ©çš„æ˜¯è¨±å¤šå°æœ‹å‹ï¼Œå› 為有了é 客,他們也都從父æ¯é‚£è£¡å¾—了減少工作的許å¯ï¼Œä¼´æˆ‘ä¾†éŠæˆ²ã€‚åœ¨å°æ‘裡,一家的客,幾乎也就是公共的。我們年紀都相仿,但論起行輩來,å»è‡³å°‘是å”åï¼Œæœ‰å¹¾å€‹é‚„æ˜¯å¤ªå…¬ï¼Œå› ç‚ºä»–å€‘åˆæ‘都åŒå§“,是本家。然而我們是朋å‹ï¼Œå³ä½¿å¶è€Œåµé¬§èµ·ä¾†ï¼Œæ‰“了太公,一æ‘çš„è€è€å°‘少,也決沒有一個會想出「犯上ã€é€™å…©å€‹å—來,而他們也百分之ä¹åä¹ä¸è˜å—。
+我們æ¯å¤©çš„事情大概是掘蚯蚓,掘來穿在銅絲åšçš„å°é‰¤ä¸Šï¼Œä¼åœ¨æ²³æ²¿ä¸Šå޻釣è¦ã€‚è¦æ˜¯æ°´ä¸–界裡的呆åï¼Œæ±ºä¸æ†šç”¨äº†è‡ªå·±çš„兩個鉗æ§è‘—鉤尖é€åˆ°å˜´è£¡åŽ»çš„ï¼Œæ‰€ä»¥ä¸åŠå¤©ä¾¿å¯ä»¥é‡£åˆ°ä¸€å¤§ç¢—。這è¦ç…§ä¾‹æ˜¯æ¸æˆ‘åƒçš„。其次便是一åŒåŽ»æ”¾ç‰›ï¼Œä½†æˆ–è€…å› ç‚ºé«˜ç‰å‹•ç‰©äº†çš„ç·£æ•…ç½·ï¼Œé»ƒç‰›æ°´ç‰›éƒ½æ¬ºç”Ÿï¼Œæ•¢æ–¼æ¬ºä¾®æˆ‘ï¼Œå› æ¤æˆ‘ä¹Ÿç¸½ä¸æ•¢èµ°è¿‘身,åªå¥½é é åœ°è·Ÿè‘—ï¼Œç«™è‘—ã€‚é€™æ™‚å€™ï¼Œå°æœ‹å‹å€‘便ä¸å†åŽŸè«’æˆ‘æœƒè®€ã€Œç§©ç§©æ–¯å¹²ã€ï¼Œå»å…¨éƒ½å˜²ç¬‘起來了。
+至於我在那裡所第一盼望的,å»åœ¨åˆ°è¶™èŽŠåŽ»çœ‹æˆ²ã€‚è¶™èŽŠæ˜¯é›¢å¹³æ©‹æ‘五里的較大的æ‘莊;平橋æ‘太å°ï¼Œè‡ªå·±æ¼”ä¸èµ·æˆ²ï¼Œæ¯å¹´ç¸½ä»˜çµ¦è¶™èŽŠå¤šå°‘éŒ¢ï¼Œç®—ä½œåˆåšçš„ã€‚ç•¶æ™‚æˆ‘ä¸¦ä¸æƒ³åˆ°ä»–å€‘ç‚ºä»€éº¼å¹´å¹´è¦æ¼”戲。ç¾åœ¨æƒ³ï¼Œé‚£æˆ–者是春賽,是社戲了。
+就在我åä¸€äºŒæ²æ™‚候的這一年,這日期也看看ç‰åˆ°äº†ã€‚䏿–™é€™ä¸€å¹´çœŸå¯æƒœï¼Œåœ¨æ—©ä¸Šå°±å«ä¸åˆ°èˆ¹ã€‚平橋æ‘åªæœ‰ä¸€é𻿗©å‡ºæ™šæ¸çš„航船是大船,決沒有留用的é“ç†ã€‚其餘的都是å°èˆ¹ï¼Œä¸åˆç”¨ï¼›å¤®äººåˆ°é„°æ‘去å•,也沒有,早都給別人定下了。外祖æ¯å¾ˆæ°£æƒ±ï¼Œæ€ªå®¶è£¡çš„äººä¸æ—©å®šï¼Œçµ®å¨èµ·ä¾†ã€‚æ¯è¦ªä¾¿å¯¬æ…°ä¼Šï¼Œèªªæˆ‘們é¯éŽ®çš„æˆ²æ¯”å°æ‘è£¡çš„å¥½å¾—å¤šï¼Œä¸€å¹´çœ‹å¹¾å›žï¼Œä»Šå¤©å°±ç®—äº†ã€‚åªæœ‰æˆ‘急得è¦å“,æ¯è¦ªå»ç«åŠ›çš„å›‘å’æˆ‘,說è¬ä¸èƒ½è£æ¨¡è£æ¨£ï¼Œæ€•åˆæ‹›å¤–祖æ¯ç”Ÿæ°£ï¼Œåˆä¸å‡†å’Œåˆ¥äººä¸€åŒåŽ»ï¼Œèªªæ˜¯æ€•å¤–ç¥–æ¯è¦æ“”心。
+總之,是完了。到下åˆï¼Œæˆ‘的朋å‹éƒ½åŽ»äº†ï¼Œæˆ²å·²ç¶“é–‹å ´äº†ï¼Œæˆ‘ä¼¼ä¹Žè½åˆ°é‘¼é¼“çš„è²éŸ³ï¼Œè€Œä¸”知é“他們在戲臺下買豆漿å–。
+這一天我ä¸é‡£è¦ï¼Œæ±è¥¿ä¹Ÿå°‘åƒã€‚æ¯è¦ªå¾ˆç‚ºé›£ï¼Œæ²’æœ‰æ³•åæƒ³ã€‚到晚飯時候,外祖æ¯ä¹Ÿçµ‚於覺察了,並且說我應當ä¸é«˜èˆˆï¼Œä»–å€‘å¤ªæ€ æ…¢ï¼Œæ˜¯å¾…å®¢çš„ç¦®æ•¸è£¡å¾žä¾†æ²’æœ‰çš„ã€‚åƒé£¯ä¹‹å¾Œï¼Œçœ‹éŽæˆ²çš„å°‘å¹´å€‘ä¹Ÿéƒ½èšæ”ä¾†äº†ï¼Œé«˜é«˜èˆˆèˆˆçš„ä¾†è¬›æˆ²ã€‚åªæœ‰æˆ‘ä¸é–‹å£ï¼›ä»–們都嘆æ¯è€Œä¸”è¡¨åŒæƒ…ã€‚å¿½ç„¶é–“ï¼Œä¸€å€‹æœ€è°æ˜Žçš„雙喜大悟似的æè°äº†ï¼Œä»–說,「大船?八å”çš„èˆªèˆ¹ä¸æ˜¯å›žä¾†äº†éº½ï¼Ÿã€å幾個別的少年也大悟,立刻攛掇起來,說å¯ä»¥å了這航船和我一åŒåŽ»ã€‚æˆ‘é«˜èˆˆäº†ã€‚ç„¶è€Œå¤–ç¥–æ¯åˆæ€•都是å©å,ä¸å¯é ï¼›æ¯è¦ªåˆèªªæ˜¯è‹¥å«å¤§äººä¸€åŒåŽ»ï¼Œä»–å€‘ç™½å¤©å…¨æœ‰å·¥ä½œï¼Œè¦ä»–熬夜,是ä¸åˆæƒ…ç†çš„。在這é²ç–‘之ä¸ï¼Œé›™å–œå¯åˆçœ‹å‡ºåº•細來了,便åˆå¤§è²çš„說é“,「我寫包票ï¼èˆ¹åˆå¤§ï¼›è¿…哥兒å‘來ä¸äº‚跑;我們åˆéƒ½æ˜¯è˜æ°´æ€§çš„ï¼ã€
+èª ç„¶ï¼é€™åå¤šå€‹å°‘å¹´ï¼Œå§”å¯¦æ²’æœ‰ä¸€å€‹ä¸æœƒé³§æ°´çš„,而且兩三個還是弄潮的好手。
+外祖æ¯å’Œæ¯è¦ªä¹Ÿç›¸ä¿¡ï¼Œä¾¿ä¸å†é§å›žï¼Œéƒ½å¾®ç¬‘了。我們立刻一哄的出了門。
+我的很é‡çš„心忽而輕鬆了,身體也似乎舒展到說ä¸å‡ºçš„大。一出門,便望見月下的平橋內泊著一隻白篷的航船,大家跳下船,雙喜拔å‰ç¯™ï¼Œé˜¿ç™¼æ‹”後篙,年幼的都陪我å在艙ä¸ï¼Œè¼ƒå¤§çš„èšåœ¨èˆ¹å°¾ã€‚æ¯è¦ªé€å‡ºä¾†å©å’「è¦å°å¿ƒã€çš„æ™‚候,我們已經點開船,在橋石上一磕,退後幾尺,å³åˆä¸Šå‰å‡ºäº†æ©‹ã€‚於是架起兩支櫓,一支兩人,一里一æ›ï¼Œæœ‰èªªç¬‘çš„ï¼Œæœ‰åš·çš„ï¼Œå¤¾è‘—æ½ºæ½ºçš„èˆ¹é æ¿€æ°´çš„è²éŸ³ï¼Œåœ¨å·¦å³éƒ½æ˜¯ç¢§ç¶ 的豆麥田地的河æµä¸ï¼Œé£›ä¸€èˆ¬å¾‘å‘趙莊å‰é€²äº†ã€‚
+å…©å²¸çš„è±†éº¥å’Œæ²³åº•çš„æ°´è‰æ‰€ç™¼æ•£å‡ºä¾†çš„æ¸…é¦™ï¼Œå¤¾é›œåœ¨æ°´æ°£ä¸æ’²é¢çš„å¹ä¾†ï¼›æœˆè‰²ä¾¿æœ¦æœ§åœ¨é€™æ°´æ°£è£¡ã€‚淡黑的起ä¼çš„連山,仿佛是踴èºçš„éµçš„ç¸è„Šä¼¼çš„,都é é çš„å‘船尾跑去了,但我å»é‚„以為船慢。他們æ›äº†å››å›žæ‰‹ï¼Œæ¼¸æœ›è¦‹ä¾ç¨€çš„趙莊,而且似乎è½åˆ°æŒå¹äº†ï¼Œé‚„有幾點ç«ï¼Œæ–™æƒ³ä¾¿æ˜¯æˆ²è‡ºï¼Œä½†æˆ–者也許是æ¼ç«ã€‚
+é‚£è²éŸ³å¤§æ¦‚æ˜¯æ©«ç¬›ï¼Œå®›è½‰ï¼Œæ‚ æšï¼Œä½¿æˆ‘的心也沉éœï¼Œç„¶è€Œåˆè‡ªå¤±èµ·ä¾†ï¼Œè¦ºå¾—è¦å’Œä»–彌散在å«è‘—豆麥蘊藻之香的夜氣裡。
+é‚£ç«æŽ¥è¿‘äº†ï¼Œæžœç„¶æ˜¯æ¼ç«ï¼›æˆ‘çº”è¨˜å¾—å…ˆå‰æœ›è¦‹çš„ä¹Ÿä¸æ˜¯è¶™èŽŠã€‚é‚£æ˜¯æ£å°èˆ¹é çš„ä¸€å¢æ¾æŸæž—,我去年也曾經去éŠçŽ©éŽï¼Œé‚„çœ‹è¦‹ç ´çš„çŸ³é¦¬å€’åœ¨åœ°ä¸‹ï¼Œä¸€å€‹çŸ³ç¾Šè¹²åœ¨è‰è£¡å‘¢ã€‚éŽäº†é‚£æž—ï¼Œèˆ¹ä¾¿å½Žé€²äº†å‰æ¸¯ï¼Œæ–¼æ˜¯è¶™èŽŠä¾¿çœŸåœ¨çœ¼å‰äº†ã€‚
+最惹眼的是屹立在莊外臨河的空地上的一座戲臺,模胡在é 處的月夜ä¸ï¼Œå’Œç©ºé–“幾乎分ä¸å‡ºç•Œé™ï¼Œæˆ‘疑心畫上見éŽçš„仙境,就在這裡出ç¾äº†ã€‚這時船走得更快,ä¸å¤šæ™‚ï¼Œåœ¨è‡ºä¸Šé¡¯å‡ºäººç‰©ä¾†ï¼Œç´…ç´…ç¶ ç¶ çš„å‹•ï¼Œè¿‘è‡ºçš„æ²³è£¡ä¸€æœ›çƒé»‘的是看戲的人家的船篷。
+「近臺沒有什麼空了,我們é é 的看罷。ã€é˜¿ç™¼èªªã€‚
+這時船慢了,ä¸ä¹…就到,果然近ä¸å¾—å°æ—,大家åªèƒ½ä¸‹äº†ç¯™ï¼Œæ¯”é‚£æ£å°æˆ²è‡ºçš„神棚還è¦é 。其實我們這白篷的航船,本也ä¸é¡˜æ„å’Œçƒç¯·çš„èˆ¹åœ¨ä¸€è™•ï¼Œè€Œæ³æ²’有空地呢……
+在åœèˆ¹çš„匆忙ä¸ï¼Œçœ‹è¦‹è‡ºä¸Šæœ‰ä¸€å€‹é»‘的長é¬å的背上æ’著四張旗,æè‘—é•·æ§ï¼Œå’Œä¸€ç¾¤èµ¤è†Šçš„äººæ£æ‰“仗。雙喜說,那就是有åçš„éµé è€ç”Ÿï¼Œèƒ½é€£ç¿»å…«åå››å€‹ç‹æ–—,他日裡親自數éŽçš„。
+æˆ‘å€‘ä¾¿éƒ½æ“ åœ¨èˆ¹é 上看打仗,但那éµé è€ç”Ÿå»åˆä¸¦ä¸ç¿»ç‹æ–—ï¼Œåªæœ‰å¹¾å€‹èµ¤è†Šçš„äººç¿»ï¼Œç¿»äº†ä¸€é™£ï¼Œéƒ½é€²åŽ»äº†ï¼ŒæŽ¥è‘—èµ°å‡ºä¸€å€‹å°æ—¦ä¾†ï¼Œå’¿å’¿å‘€å‘€çš„唱。雙喜說,「晚上看客少,éµé è€ç”Ÿä¹Ÿæ‡ˆäº†ï¼Œèª°è‚¯é¡¯æœ¬é ˜çµ¦ç™½åœ°çœ‹å‘¢ï¼Ÿã€æˆ‘相信這話å°ï¼Œå› 為其時臺下已經ä¸å¾ˆæœ‰äººï¼Œé„‰ä¸‹äººç‚ºäº†æ˜Žå¤©çš„工作,熬ä¸å¾—夜,早都ç¡è¦ºåŽ»äº†ï¼Œç–ç–æœ—朗的站著的ä¸éŽæ˜¯å¹¾å個本æ‘和鄰æ‘的閑漢。çƒç¯·èˆ¹è£¡çš„那些土財主的家眷固然在,然而他們也ä¸åœ¨ä¹Žçœ‹æˆ²ï¼Œå¤šåŠæ˜¯å°ˆåˆ°æˆ²è‡ºä¸‹ä¾†åƒç³•餅水果和瓜å的。所以簡直å¯ä»¥ç®—白地。
+ç„¶è€Œæˆ‘çš„æ„æ€å»ä¹Ÿä¸¦ä¸åœ¨ä¹Žçœ‹ç¿»ç‹æ–—。我最願æ„看的是一個人蒙了白布,兩手在é 上æ§è‘—一支棒似的蛇é 的蛇精,其次是套了黃布衣跳è€è™Žã€‚但是ç‰äº†è¨±å¤šæ™‚都ä¸è¦‹ï¼Œå°æ—¦é›–然進去了,立刻åˆå‡ºä¾†äº†ä¸€å€‹å¾ˆè€çš„å°ç”Ÿã€‚我有些疲倦了,託桂生買豆漿去。他去了一刻,回來說,「沒有。賣豆漿的è¾å也回去了。日裡倒有,我還å–了兩碗呢。ç¾åœ¨åŽ»èˆ€ä¸€ç“¢æ°´ä¾†çµ¦ä½ å–罷。ã€
+我ä¸å–水,支æ’è‘—ä»ç„¶çœ‹ï¼Œä¹Ÿèªªä¸å‡ºè¦‹äº†äº›ä»€éº¼ï¼Œåªè¦ºå¾—戲åçš„è‡‰éƒ½æ¼¸æ¼¸çš„æœ‰äº›ç¨€å¥‡äº†ï¼Œé‚£äº”å®˜æ¼¸ä¸æ˜Žé¡¯ï¼Œä¼¼ä¹Žèžæˆä¸€ç‰‡çš„冿²’有什麼高低。年紀å°çš„å¹¾å€‹å¤šæ‰“å‘µæ¬ äº†ï¼Œå¤§çš„ä¹Ÿå„管自己談話。忽而一個紅衫的å°ä¸‘被ç¶åœ¨è‡ºæŸ±å上,給一個花白é¬åçš„ç”¨é¦¬éžæ‰“èµ·ä¾†äº†ï¼Œå¤§å®¶çº”åˆæŒ¯ä½œç²¾ç¥žçš„笑著看。在這一夜裡,我以為這實在è¦ç®—是最好的一折。
+ç„¶è€Œè€æ—¦çµ‚æ–¼å‡ºè‡ºäº†ã€‚è€æ—¦æœ¬ä¾†æ˜¯æˆ‘所最怕的æ±è¥¿ï¼Œå°¤å…¶æ˜¯æ€•ä»–å下了唱。這時候,看見大家也都很掃興,纔知é“他們的æ„è¦‹æ˜¯å’Œæˆ‘ä¸€è‡´çš„ã€‚é‚£è€æ—¦ç•¶åˆé‚„åªæ˜¯è¸±ä¾†è¸±åŽ»çš„å”±ï¼Œå¾Œä¾†ç«Ÿåœ¨ä¸é–“的一把交椅上å下了。我很擔心;雙喜他們å»å°±ç ´å£å–ƒå–ƒçš„罵。我å¿è€çš„ç‰è‘—,許多工夫,åªè¦‹é‚£è€æ—¦å°‡æ‰‹ä¸€æŠ¬ï¼Œæˆ‘以為就è¦ç«™èµ·ä¾†äº†ï¼Œä¸æ–™ä»–å»åˆæ…¢æ…¢çš„æ”¾ä¸‹åœ¨åŽŸåœ°æ–¹ï¼Œä»èˆŠå”±ã€‚全船裡幾個人ä¸ä½çš„åæ°£ï¼Œå…¶é¤˜çš„ä¹Ÿæ‰“èµ·å“ˆæ¬ ä¾†ã€‚é›™å–œçµ‚æ–¼ç†¬ä¸ä½äº†ï¼Œèªªé“,怕他會唱到天明還ä¸å®Œï¼Œé‚„是我們走的好罷。大家立刻都贊æˆï¼Œå’Œé–‹èˆ¹æ™‚候一樣踴èºï¼Œä¸‰å››äººå¾‘奔船尾,拔了篙,點退幾丈,迴轉船é ï¼Œé§•èµ·æ«“ï¼Œç½µè‘—è€æ—¦ï¼Œåˆå‘é‚£æ¾æŸæž—å‰é€²äº†ã€‚
+月還沒有è½ï¼Œä»¿ä½›çœ‹æˆ²ä¹Ÿä¸¦ä¸å¾ˆä¹…似的,而一離趙莊,月光åˆé¡¯å¾—æ ¼å¤–çš„çšŽæ½”ã€‚å›žæœ›æˆ²è‡ºåœ¨ç‡ˆç«å…‰ä¸ï¼Œå»åˆå¦‚åˆä¾†æœªåˆ°æ™‚å€™ä¸€èˆ¬ï¼Œåˆæ¼‚渺得åƒä¸€åº§ä»™å±±æ¨“閣,滿被紅霞罩著了。å¹åˆ°è€³é‚Šä¾†çš„åˆæ˜¯æ©«ç¬›ï¼Œå¾ˆæ‚ æšï¼›æˆ‘ç–‘å¿ƒè€æ—¦å·²ç¶“進去了,但也ä¸å¥½æ„æ€èªªå†å›žåŽ»çœ‹ã€‚
+ä¸å¤šä¹…ï¼Œæ¾æŸæž—æ—©åœ¨èˆ¹å¾Œäº†ï¼Œèˆ¹è¡Œä¹Ÿä¸¦ä¸æ…¢ï¼Œä½†å‘¨åœçš„é»‘æš—åªæ˜¯æ¿ƒï¼Œå¯çŸ¥å·²ç¶“到了深夜。他們一é¢è°è«–著戲å,或罵,或笑,一é¢åŠ ç·Šçš„æ–船。這一次船é çš„æ¿€æ°´è²æ›´å…¶éŸ¿äº®äº†ï¼Œé‚£èˆªèˆ¹ï¼Œå°±åƒä¸€æ¢å¤§ç™½éšèƒŒè‘—一群å©å在浪花裡躥,連夜æ¼çš„å¹¾å€‹è€æ¼çˆ¶ï¼Œä¹Ÿåœäº†è‰‡å看著å–采起來。
+離平橋æ‘é‚„æœ‰ä¸€é‡Œæ¨¡æ¨£ï¼Œèˆ¹è¡Œå»æ…¢äº†ï¼Œæ–船的都說很疲ä¹ï¼Œå› 為太用力,而且許久沒有æ±è¥¿åƒã€‚é€™å›žæƒ³å‡ºä¾†çš„æ˜¯æ¡‚ç”Ÿï¼Œèªªæ˜¯ç¾…æ¼¢è±†æ£æ—ºç›¸ï¼ŒæŸ´ç«åˆç¾æˆï¼Œæˆ‘們å¯ä»¥å·ä¸€é»žä¾†ç…®åƒã€‚大家都贊æˆï¼Œç«‹åˆ»è¿‘岸åœäº†èˆ¹ï¼›å²¸ä¸Šçš„ç”°è£¡ï¼Œçƒæ²¹æ²¹çš„都是çµå¯¦çš„羅漢豆。
+ã€Œé˜¿é˜¿ï¼Œé˜¿ç™¼ï¼Œé€™é‚Šæ˜¯ä½ å®¶çš„ï¼Œé€™é‚Šæ˜¯è€å…一家的,我們å·é‚£ä¸€é‚Šçš„呢?ã€é›™å–œå…ˆè·³ä¸‹åŽ»äº†ï¼Œåœ¨å²¸ä¸Šèªªã€‚
+我們也都跳上岸。阿發一é¢è·³ï¼Œä¸€é¢èªªé“,「且慢,讓我來看一看罷,ã€ä»–於是往來的摸了一回,直起身來說é“ï¼Œã€Œå·æˆ‘們的罷,我們的大得多呢。ã€ä¸€è²ç”æ‡‰ï¼Œå¤§å®¶ä¾¿æ•£é–‹åœ¨é˜¿ç™¼å®¶çš„è±†ç”°è£¡ï¼Œå„æ‘˜äº†ä¸€å¤§æ§ï¼Œæ‹‹å…¥èˆ¹è‰™ä¸ã€‚雙喜以為å†å¤šå·ï¼Œå€˜çµ¦é˜¿ç™¼çš„å¨˜çŸ¥é“æ˜¯è¦å“罵的,於是å„人便到å…一公公的田裡åˆå„å·äº†ä¸€å¤§æ§ã€‚
+我們ä¸é–“幾個年長的ä»ç„¶æ…¢æ…¢çš„æ–è‘—èˆ¹ï¼Œå¹¾å€‹åˆ°å¾Œè‰™åŽ»ç”Ÿç«ï¼Œå¹´å¹¼çš„和我都å‰è±†ã€‚ä¸ä¹…豆熟了,便任憑航船浮在水é¢ä¸Šï¼Œéƒ½åœèµ·ä¾†ç”¨æ‰‹æ’®è‘—åƒã€‚åƒå®Œè±†ï¼Œåˆé–‹èˆ¹ï¼Œä¸€é¢æ´—器具,豆莢豆殼全拋在河水裡,什麼痕跡也沒有了。雙喜所慮的是用了八公公船上的鹽和柴,這è€é å很細心,一定è¦çŸ¥é“,會罵的。然而大家è°è«–之後,æ¸çµæ˜¯ä¸æ€•。他如果罵,我們便è¦ä»–æ¸é‚„åŽ»å¹´åœ¨å²¸é‚Šæ‹¾åŽ»çš„ä¸€æžæž¯æ¡•樹,而且當é¢å«ä»–「八癩åã€ã€‚
+「都回來了ï¼é‚£è£¡æœƒéŒ¯ã€‚我原說éŽå¯«åŒ…票的ï¼ã€é›™å–œåœ¨èˆ¹é 上忽而大è²çš„說。
+我å‘船é 一望,å‰é¢å·²ç¶“æ˜¯å¹³æ©‹ã€‚æ©‹è…³ä¸Šç«™è‘—ä¸€å€‹äººï¼Œå»æ˜¯æˆ‘çš„æ¯è¦ªï¼Œé›™å–œä¾¿æ˜¯å°ä¼Šèªªè‘—話。我走出å‰è‰™åŽ»ï¼Œèˆ¹ä¹Ÿå°±é€²äº†å¹³æ©‹äº†ï¼Œåœäº†èˆ¹ï¼Œæˆ‘們紛紛都上岸。æ¯è¦ªé —有些生氣,說是éŽäº†ä¸‰æ›´äº†ï¼Œæ€Žéº¼å›žä¾†å¾—這樣é²ï¼Œä½†ä¹Ÿå°±é«˜èˆˆäº†ï¼Œç¬‘著邀大家去åƒç‚’米。
+大家都說已經åƒäº†é»žå¿ƒï¼Œåˆæ¸´ç¡ï¼Œä¸å¦‚åŠæ—©ç¡çš„好,å„自回去了。
+第二天,我å‘åˆçº”起來,並沒有è½åˆ°ä»€éº¼é—œä¿‚八公公鹽柴事件的糾葛,下åˆä»ç„¶å޻釣è¦ã€‚
+ã€Œé›™å–œï¼Œä½ å€‘é€™çå°é¬¼ï¼Œæ˜¨å¤©å·äº†æˆ‘的豆了罷?åˆä¸è‚¯å¥½å¥½çš„æ‘˜ï¼Œè¹‹å£žäº†ä¸å°‘。〠我抬é 看時,是å…一公公棹著å°èˆ¹ï¼Œè³£äº†è±†å›žä¾†äº†ï¼Œèˆ¹è‚šè£¡é‚„æœ‰å‰©ä¸‹çš„ä¸€å †è±†ã€‚
+「是的。我們請客。我們當åˆé‚„ä¸è¦ä½ çš„å‘¢ã€‚ä½ çœ‹ï¼Œä½ æŠŠæˆ‘çš„è¦åš‡è·‘了ï¼ã€é›™å–œèªªã€‚
+å…一公公看見我,便åœäº†æ¥«ï¼Œç¬‘é“ï¼Œã€Œè«‹å®¢ï¼Ÿâ€”â€”é€™æ˜¯æ‡‰è©²çš„ã€‚ã€æ–¼æ˜¯å°æˆ‘說, 「迅哥兒,昨天的戲å¯å¥½éº½ï¼Ÿã€
+我點一點é ,說é“,「好。ã€ã€Œè±†å¯ä¸åƒå‘¢ï¼Ÿã€æˆ‘åˆé»žä¸€é»žé ,說é“,「很好。ã€
+䏿–™å…一公公竟éžå¸¸æ„Ÿæ¿€èµ·ä¾†ï¼Œå°‡å¤§æ‹‡æŒ‡ä¸€ç¿¹ï¼Œå¾—æ„的說é“ï¼Œã€Œé€™çœŸæ˜¯å¤§å¸‚éŽ®è£¡å‡ºä¾†çš„è®€éŽæ›¸çš„人纔è˜è²¨ï¼æˆ‘的豆種是粒粒挑é¸éŽçš„,鄉下人ä¸è˜å¥½æ¹ï¼Œé‚„說我的豆比ä¸ä¸Šåˆ¥äººçš„呢。我今天也è¦é€äº›çµ¦æˆ‘們的姑奶奶嘗嘗去……ã€ä»–於是打著楫åéŽåŽ»äº†ã€‚
+待到æ¯è¦ªå«æˆ‘å›žåŽ»åƒæ™šé£¯çš„æ™‚候,桌上便有一大碗煮熟了的羅漢豆,就是å…一公公é€çµ¦æ¯è¦ªå’Œæˆ‘åƒçš„。è½èªªä»–é‚„å°æ¯è¦ªæ¥µå£èª‡çŽæˆ‘,說「å°å°å¹´ç´€ä¾¿æœ‰è¦‹è˜ï¼Œå°‡ä¾†ä¸€å®šè¦ä¸ç‹€å…ƒã€‚å§‘å¥¶å¥¶ï¼Œä½ çš„ç¦æ°£æ˜¯å¯ä»¥å¯«åŒ…票的了。ã€ä½†æˆ‘åƒäº†è±†ï¼Œå»ä¸¦æ²’有昨夜的豆那麼好。
+真的,一直到ç¾åœ¨ï¼Œæˆ‘å¯¦åœ¨å†æ²’有åƒåˆ°é‚£å¤œä¼¼çš„好豆,——也ä¸å†çœ‹åˆ°é‚£å¤œä¼¼çš„好戲了。
+方玄綽近來愛說「差ä¸å¤šã€é€™ä¸€å¥è©±ï¼Œå¹¾ä¹Žæˆäº†ã€Œå£é 禪ã€ä¼¼çš„;而且ä¸ä½†èªªï¼Œçš„確也盤據在他腦è£äº†ã€‚他最åˆèªªçš„æ˜¯ã€Œéƒ½ä¸€æ¨£ã€ï¼Œå¾Œä¾†å¤§ç´„è¦ºå¾—æ¬ ç©©ç•¶äº†ï¼Œä¾¿æ”¹ç‚ºã€Œå·®ä¸å¤šã€ï¼Œä¸€ç›´ä½¿ç”¨åˆ°ç¾åœ¨ã€‚
+他自從發見了這一å¥å¹³å‡¡çš„è¦å¥ä»¥å¾Œï¼Œé›–然引起了ä¸å°‘çš„æ–°æ„Ÿæ…¨ï¼ŒåŒæ™‚å»ä¹Ÿåˆ°è¨±å¤šæ–°æ…°å®‰ã€‚è¬å¦‚看見è€è¼©å¨å£“é’å¹´ï¼Œåœ¨å…ˆæ˜¯è¦æ†¤æ†¤çš„,但ç¾åœ¨å»å°±è½‰å¿µé“ï¼Œå°‡ä¾†é€™å°‘å¹´æœ‰äº†å…’å«æ™‚ï¼Œå¤§æŠµä¹Ÿè¦æ“ºé€™æž¶åçš„ç½·ï¼Œä¾¿å†æ²’有什麼ä¸å¹³äº†ã€‚åˆå¦‚çœ‹è¦‹å…µå£«æ‰“è»Šå¤«ï¼Œåœ¨å…ˆä¹Ÿè¦æ†¤æ†¤çš„,但ç¾åœ¨ä¹Ÿå°±è½‰å¿µé“,倘使這車夫當了兵,這兵拉了車,大抵也就這麼打,便å†ä¹Ÿä¸æ”¾åœ¨å¿ƒä¸Šäº†ã€‚ä»–é€™æ¨£æƒ³è‘—çš„æ™‚å€™ï¼Œæœ‰æ™‚ä¹Ÿç–‘å¿ƒæ˜¯å› ç‚ºè‡ªå·±æ²’æœ‰å’Œæƒ¡ç¤¾æœƒå¥®é¬¥çš„å‹‡æ°£ï¼Œæ‰€ä»¥çžžå¿ƒæ˜§å·±çš„æ•…æ„é€ å‡ºä¾†çš„ä¸€æ¢é€ƒè·¯ï¼Œå¾ˆè¿‘於「無是éžä¹‹å¿ƒã€ï¼Œé ä¸å¦‚改æ£äº†å¥½ã€‚然而這æ„見總å而在他腦è£ç”Ÿé•·èµ·ä¾†ã€‚
+他將這「差ä¸å¤šèªªã€æœ€åˆå…¬è¡¨çš„æ™‚å€™æ˜¯åœ¨åŒ—äº¬é¦–å–„å¸æ ¡çš„è¬›å ‚ä¸Šï¼Œå…¶æ™‚å¤§æ¦‚æ˜¯æèµ·é—œæ–¼æ·å²ä¸Šçš„事情來,於是說到「å¤ä»Šäººä¸ç›¸é ã€ï¼Œèªªåˆ°å„色人ç‰çš„「性相近ã€ï¼Œçµ‚於牽扯到å¸ç”Ÿå’Œå®˜åƒšèº«ä¸Šï¼Œå¤§ç™¼å…¶è°è«–é“:
+「ç¾åœ¨ç¤¾æœƒä¸Šæ™‚髦的都通行罵官僚,而å¸ç”Ÿç½µå¾—å°¤åˆ©å®³ã€‚ç„¶è€Œå®˜åƒšä¸¦ä¸æ˜¯å¤©ç”Ÿçš„特別種æ—,就是平民變就的。ç¾åœ¨å¸ç”Ÿå‡ºèº«çš„官僚就ä¸å°‘,和è€å®˜åƒšæœ‰ä»€éº¼å…©æ¨£å‘¢ï¼Ÿã€Žæ˜“地則皆然ã€ï¼Œæ€æƒ³è¨€è«–舉動è±é‡‡éƒ½æ²’有什麼大å€åˆ¥â€¦â€¦ä¾¿æ˜¯å¸ç”Ÿåœ˜é«”新辦的許多事æ¥ï¼Œä¸æ˜¯ä¹Ÿå·²ç¶“難å…出弊病,大åŠç…™æ¶ˆç«æ»…了麽?差ä¸å¤šçš„。但ä¸åœ‹å°‡ä¾†ä¹‹å¯æ…®å°±åœ¨æ¤â€¦â€¦ã€
+æ•£ååœ¨è¬›å ‚è£çš„二å多個è½è¬›è€…,有的悵然了,或者是以為這話å°ï¼›æœ‰çš„勃然了,大約是以為侮辱了神è–çš„é’年;有幾個å»å°ä»–å¾®ç¬‘äº†ï¼Œå¤§ç´„ä»¥ç‚ºé€™æ˜¯ä»–æ›¿è‡ªå·±çš„è¾¯è§£ï¼šå› ç‚ºæ–¹çŽ„ç¶½å°±æ˜¯å…¼åšå®˜åƒšçš„。
+è€Œå…¶å¯¦å»æ˜¯éƒ½éŒ¯èª¤ã€‚這ä¸éŽæ˜¯ä»–的一種新ä¸å¹³ï¼›é›–說ä¸å¹³ï¼Œåˆåªæ˜¯ä»–的一種安分的空論。他自己雖然ä¸çŸ¥é“æ˜¯å› ç‚ºæ‡¶ï¼Œé‚„æ˜¯å› ç‚ºç„¡ç”¨ï¼Œç¸½ä¹‹è¦ºå¾—æ˜¯ä¸€å€‹ä¸è‚¯é‹å‹•,å分安分守己的人。總長冤他有神經病,åªè¦åœ°ä½é‚„ä¸è‡³æ–¼å‹•æ–,他決ä¸é–‹ä¸€é–‹å£ï¼›æ•™å“¡çš„è–ªæ°´æ¬ åˆ°å¤§åŠå¹´äº†ï¼Œåªè¦åˆ¥æœ‰å®˜ä¿¸æ”¯æŒï¼Œä»–也決ä¸é–‹ä¸€é–‹å£ã€‚ä¸ä½†ä¸é–‹å£ï¼Œç•¶æ•™å“¡è¯åˆç´¢è–ªçš„æ™‚候,他還暗地è£ä»¥ç‚ºæ¬ 斟酌,太嚷嚷;直到è½å¾—åŒå¯®éŽåˆ†çš„奚è½ä»–å€‘äº†ï¼Œé€™çº”ç•¥æœ‰äº›å°æ„Ÿæ…¨ï¼Œå¾Œä¾†ä¸€è½‰å¿µï¼Œé€™æˆ–è€…å› ç‚ºè‡ªå·±æ£ç¼ºéŒ¢ï¼Œè€Œåˆ¥çš„官並ä¸å…¼åšæ•™å“¡çš„ç·£æ•…ç½·ï¼Œæ–¼æ˜¯å°±é‡‹ç„¶äº†ã€‚
+ä»–é›–ç„¶ä¹Ÿç¼ºéŒ¢ï¼Œä½†å¾žæ²’æœ‰åŠ å…¥æ•™å“¡çš„åœ˜é«”å…§ï¼Œå¤§å®¶è°æ±ºç½·èª²ï¼Œå¯æ˜¯ä¸åŽ»ä¸Šèª²äº†ã€‚æ”¿åºœèªªã€Œä¸Šäº†èª²çº”çµ¦éŒ¢ã€ï¼Œä»–纔略æ¨ä»–們的類乎用果åè€çŒ´å;一個大教育家說é“「教員一手挾書包一手è¦éŒ¢ä¸é«˜å°šã€ï¼Œä»–çº”å°æ–¼ä»–的太太æ£å¼çš„發牢騷了。
+ã€Œå–‚ï¼Œæ€Žéº¼åªæœ‰å…©ç›¤ï¼Ÿã€è½äº†ã€Œä¸é«˜å°šèªªã€é€™ä¸€æ—¥çš„æ™šé¤æ™‚候,他看著èœè”¬èªªã€‚
+他們是沒有å—éŽæ–°æ•™è‚²çš„,太太並無å¸å或雅號,所以也就沒有什麼稱呼了,照è€ä¾‹é›–然也å¯ä»¥å«ã€Œå¤ªå¤ªã€ä½†ä»–åˆä¸é¡˜æ„太守舊,於是就發明çžä¸€å€‹ã€Œå–‚ã€å—。太太å°ä»–å»é€£ã€Œå–‚ã€å—也沒有,åªè¦è‡‰å‘è‘—ä»–èªªè©±ï¼Œä¾æ“šç¿’慣法,他就知é“這話是å°ä»–而發的。
+ã€Œå¯æ˜¯ä¸Šæœˆé ˜ä¾†çš„一æˆåŠéƒ½å®Œäº†â€¦â€¦æ˜¨å¤©çš„米,也還是好容易纔賒來的呢。ã€ä¼Šç«™åœ¨æ¡Œæ—臉å°è‘—他說。
+ã€Œä½ çœ‹ï¼Œé‚„èªªæ•™æ›¸çš„è¦è–ªæ°´æ˜¯å‘鄙哩。這種æ±è¥¿ä¼¼ä¹Žé€£äººè¦åƒé£¯ï¼Œé£¯è¦ç±³åšï¼Œç±³è¦éŒ¢è²·é€™ä¸€é»žç²—淺事情都ä¸çŸ¥é“……ã€
+「å°å•¦ã€‚沒有錢怎麼買米,沒有米怎麼煮……ã€
+ä»–å…©é °éƒ½é¼“èµ·ä¾†äº†ï¼Œä»¿ä½›æ°£æƒ±é€™ç”æ¡ˆæ£å’Œä»–çš„è°è«–「差ä¸å¤šã€ï¼Œè¿‘乎隨è²é™„和模樣;接著便將é 轉å‘別一é¢åŽ»äº†ï¼Œä¾æ“šç¿’æ…£æ³•ï¼Œé€™æ˜¯å®£å‘Šè¨Žè«–ä¸æ¢çš„表示。
+å¾…åˆ°æ·’é¢¨å†·é›¨é€™ä¸€å¤©ï¼Œæ•™å“¡å€‘å› ç‚ºå‘æ”¿åºœåŽ»ç´¢æ¬ è–ªï¼Œåœ¨æ–°è¯é–€å‰çˆ›æ³¥è£è¢«åœ‹è»æ‰“å¾—é ç ´è¡€å‡ºä¹‹å¾Œï¼Œå€’å±…ç„¶ä¹Ÿç™¼äº†ä¸€é»žè–ªæ°´ã€‚æ–¹çŽ„ç¶½ä¸è²»èˆ‰æ‰‹ä¹‹å‹žçš„é ˜äº†éŒ¢ï¼Œé…Œé‚„äº›èˆŠå‚µï¼Œå»é‚„ç¼ºä¸€å¤§ç†æ¬¾ï¼Œé€™æ˜¯å› ç‚ºå®˜ä¿¸ä¹Ÿé —æœ‰äº›æ‹–æ¬ äº†ã€‚ç•¶æ˜¯æ™‚ï¼Œä¾¿æ˜¯å»‰åæ¸…官們也漸以為薪之ä¸å¯ä¸ç´¢ï¼Œè€Œæ³å…¼åšæ•™å“¡çš„æ–¹çŽ„ç¶½ï¼Œè‡ªç„¶æ›´è¡¨åŒæƒ…æ–¼å¸ç•Œèµ·ä¾†ï¼Œæ‰€ä»¥å¤§å®¶ä¸»å¼µç¹¼çºŒç½·èª²çš„æ™‚å€™ï¼Œä»–é›–ç„¶ä»æœªåˆ°å ´ï¼Œäº‹å¾Œå»å°¤å…¶å¿ƒæ‚…èª æœçš„確守了公共的決è°ã€‚
+然而政府竟åˆä»˜éŒ¢ï¼Œå¸æ ¡ä¹Ÿå°±é–‹èª²äº†ã€‚但在å‰å¹¾å¤©ï¼Œå»æœ‰å¸ç”Ÿç¸½æœƒä¸Šä¸€å€‹å‘ˆæ–‡çµ¦æ”¿åºœï¼Œèªªã€Œæ•™å“¡å€˜è‹¥ä¸ä¸Šèª²ï¼Œä¾¿è¦ä»˜æ¬ 薪。ã€é€™é›–然並無效,而方玄綽å»å¿½è€Œè¨˜èµ·å‰å›žæ”¿åºœæ‰€èªªçš„「上了課纔給錢ã€çš„話來,「差ä¸å¤šã€é€™ä¸€å€‹å½±å在他眼å‰åˆä¸€å¹Œï¼Œè€Œä¸”䏦䏿¶ˆæ»…ï¼Œæ–¼æ˜¯ä»–ä¾¿åœ¨è¬›å ‚ä¸Šå…¬è¡¨äº†ã€‚
+準æ¤ï¼Œå¯è¦‹å¦‚果將「差ä¸å¤šèªªã€é›ç…‰ç¾…織起來,自然也å¯ä»¥åˆ¤ä½œä¸€ç¨®æŒ¾å¸¶ç§å¿ƒçš„ä¸å¹³ï¼Œä½†ç¸½ä¸èƒ½èªªæ˜¯å°ˆç‚ºè‡ªå·±åšå®˜çš„è¾¯è§£ã€‚åªæ˜¯æ¯åˆ°é€™äº›æ™‚,他åˆå¸¸å¸¸å–œæ¡æ‹‰ä¸Šä¸åœ‹å°‡ä¾†çš„命é‹ä¹‹é¡žçš„å•題,一ä¸å°å¿ƒï¼Œä¾¿é€£è‡ªå·±ä¹Ÿä»¥ç‚ºæ˜¯ä¸€å€‹æ†‚國的志士;人們是æ¯è‹¦æ–¼æ²’有「自知之明ã€çš„。
+但是「差ä¸å¤šã€çš„事實åˆç™¼ç”Ÿäº†ï¼Œæ”¿åºœç•¶åˆé›–åªä¸ç†é‚£äº›æ‹›äººé 痛的教員,後來竟ä¸ç†åˆ°ç„¡é—œç—›ç™¢çš„官åï¼Œæ¬ è€Œåˆæ¬ ,終於逼得先å‰é„™è–„教員è¦éŒ¢çš„好官,也很有幾員化為索薪大會è£çš„é©å°‡äº†ã€‚æƒŸæœ‰å¹¾ç¨®æ—¥å ±ä¸Šå»å¾ˆç™¼äº†äº›é„™è–„è笑他們的文å—。方玄綽也毫ä¸ç‚ºå¥‡ï¼Œæ¯«ä¸ä»‹æ„ï¼Œå› ç‚ºä»–æ ¹æ“šäº†ä»–çš„ã€Œå·®ä¸å¤šèªªã€ï¼ŒçŸ¥é“這是新èžè¨˜è€…還未缺少潤ç†çš„緣故,è¬ä¸€æ”¿åºœæˆ–是闊人åœäº†æ´¥è²¼ï¼Œä»–們多åŠä¹Ÿè¦é–‹å¤§æœƒçš„。
+ä»–æ—¢å·²è¡¨åŒæƒ…於教員的索薪,自然也贊æˆåŒå¯®çš„索俸,然而他ä»å®‰å在衙門ä¸ï¼Œç…§ä¾‹çš„並ä¸ä¸€åŒåŽ»è¨Žå‚µã€‚è‡³æ–¼æœ‰äººç–‘å¿ƒä»–å¤é«˜ï¼Œé‚£å¯ä¹Ÿä¸éŽæ˜¯ä¸€ç¨®èª¤è§£ç½·äº†ã€‚ä»–è‡ªå·±èªªï¼Œä»–æ˜¯è‡ªå¾žå‡ºä¸–ä»¥ä¾†ï¼Œåªæœ‰äººå‘他來è¦å‚µï¼Œä»–從沒有å‘人去討éŽå‚µï¼Œæ‰€ä»¥é€™ä¸€ç«¯æ˜¯ã€Œéžå…¶æ‰€é•·ã€ã€‚è€Œä¸”ä»–æ˜¯ä¸æ•¢è¦‹æ‰‹æ¡ç¶“經濟之權的人物,這種人待到失了權勢之後,æ§è‘—一本《大乘起信論》講佛å¸çš„æ™‚候,固然也很是「藹然å¯è¦ªã€çš„了,但還在寶座上時,å»ç¸½æ˜¯ä¸€å‰¯é–»çŽ‹è‡‰ï¼Œå°‡åˆ¥äººéƒ½ç•¶å¥´æ‰çœ‹è‡ªä»¥ç‚ºæ‰‹æ“è‘—ä½ å€‘é€™äº›çª®å°åå€‘çš„ç”Ÿæ®ºä¹‹æ¬Šã€‚ä»–å› æ¤ä¸æ•¢è¦‹ï¼Œä¹Ÿä¸é¡˜è¦‹ä»–們。這種脾氣,雖然有時連自己也覺得是å¤é«˜ï¼Œä½†å¾€å¾€åŒæ™‚ä¹Ÿç–‘å¿ƒé€™å…¶å¯¦æ˜¯æ²’æœ¬é ˜ã€‚
+大家左索å³ç´¢ï¼Œç¸½è‡ªä¸€ç¯€ä¸€ç¯€çš„æŒ¨éŽåŽ»äº†ï¼Œä½†æ¯”èµ·å…ˆå‰ä¾†ï¼Œæ–¹çŽ„ç¶½ç©¶ç«Ÿæ˜¯è¬åˆ†çš„æ‹®æ®ï¼Œæ‰€ä»¥ä½¿ç”¨çš„å°å»å’Œäº¤æ˜“çš„åº—å®¶ä¸æ¶ˆèªªï¼Œä¾¿æ˜¯æ–¹å¤ªå¤ªå°æ–¼ä»–也漸漸的缺了敬æ„,åªè¦çœ‹ä¼Šè¿‘來ä¸å¾ˆé™„和,而且常常æå‡ºç¨å‰µçš„æ„è¦‹ï¼Œæœ‰äº›å”çªçš„舉動,也就å¯ä»¥çžç„¶äº†ã€‚到了陰曆五月åˆå››çš„åˆå‰ï¼Œä»–一回來,伊便將一疊賬單塞在他的鼻åè·Ÿå‰ï¼Œé€™ä¹Ÿæ˜¯å¾€å¸¸æ‰€æ²’有的。
+「一總總得一百八åå¡ŠéŒ¢çº”å¤ é–‹æ¶ˆâ€¦â€¦ç™¼äº†éº½ï¼Ÿã€ä¼Šä¸¦ä¸å°è‘—他看的說。
+「哼,我明天ä¸åšå®˜äº†ã€‚éŒ¢çš„æ”¯ç¥¨æ˜¯é ˜ä¾†çš„äº†ï¼Œå¯æ˜¯ç´¢è–ªå¤§æœƒçš„代表ä¸ç™¼æ”¾ï¼Œå…ˆèªªæ˜¯æ²’有åŒåŽ»çš„äººéƒ½ä¸ç™¼ï¼Œå¾Œä¾†åˆèªªæ˜¯è¦åˆ°ä»–們跟å‰åŽ»è¦ªé ˜ã€‚ä»–å€‘ä»Šå¤©å–®æè‘—支票,就變了閻王臉了,我實在怕看見……我錢也ä¸è¦äº†ï¼Œå®˜ä¹Ÿä¸åšäº†ï¼Œé€™æ¨£ç„¡é™é‡çš„å‘屈……ã€
+方太太見了這少見的義憤,倒有些愕然了,但也就沉éœä¸‹ä¾†ã€‚
+「我想,還ä¸å¦‚åŽ»è¦ªé ˜ç½·ï¼Œé€™ç®—ä»€éº¼å‘¢ã€‚ã€ä¼Šçœ‹è‘—他的臉說。
+「我ä¸åŽ»ï¼é€™æ˜¯å®˜ä¿¸ï¼Œä¸æ˜¯è³žéŒ¢ï¼Œç…§ä¾‹æ‡‰è©²ç”±æœƒè¨ˆç§‘é€ä¾†çš„。ã€
+ã€Œå¯æ˜¯ä¸é€ä¾†åˆæ€Žéº¼å¥½å‘¢â€¦â€¦å“¦ï¼Œæ˜¨å¤œå¿˜è¨˜èªªäº†ï¼Œå©å們說那å¸è²»ï¼Œå¸æ ¡è£å·²ç¶“催éŽå¥½å¹¾æ¬¡äº†ï¼Œèªªæ˜¯å€˜è‹¥å†ä¸ç¹³â€¦â€¦ã€
+「胡說ï¼åšè€å的辦事教書都ä¸çµ¦éŒ¢ï¼Œå…’ååŽ»å¿µå¹¾å¥æ›¸å€’è¦éŒ¢ï¼Ÿã€
+伊覺得他已經ä¸å¾ˆé¡§å¿Œé“ç†ï¼Œä¼¼ä¹Žå°±è¦å°‡è‡ªå·±ç•¶ä½œæ ¡é•·ä¾†å‡ºæ°£ï¼ŒçНä¸ä¸Šï¼Œä¾¿ä¸å†è¨€èªžäº†ã€‚
+兩個默默的åƒäº†åˆé£¯ã€‚ä»–æƒ³äº†ä¸€æœƒï¼Œåˆæ‡Šæƒ±çš„出去了。
+照舊例,近年是æ¯é€¢ç¯€æ ¹æˆ–年關的å‰ä¸€å¤©ï¼Œä»–ä¸€å®šé ˆåœ¨å¤œè£çš„å二點é˜çº”回家,一é¢èµ°ï¼Œä¸€é¢æŽè‘—懷ä¸ï¼Œä¸€é¢å¤§è²çš„å«é“ï¼Œã€Œå–‚ï¼Œé ˜ä¾†äº†ï¼ã€æ–¼æ˜¯éžçµ¦ä¼Šä¸€ç–Šç°‡æ–°çš„ä¸äº¤ç¥¨ï¼Œè‡‰ä¸Šå¾ˆæœ‰äº›å¾—æ„的形色。誰知é“åˆå››é€™ä¸€å¤©å»ç ´äº†ä¾‹ï¼Œä»–ä¸åˆ°ä¸ƒé»žé˜ä¾¿å›žå®¶ä¾†ã€‚方太太很驚疑,以為他竟已è¾äº†è·äº†ï¼Œä½†æš—暗地察看他臉上,å»ä¹Ÿä¸¦ä¸è¦‹æœ‰ä»€éº¼æ ¼å¤–倒é‹çš„神情。「怎麼了?……這樣早?……ã€ä¼Šçœ‹å®šäº†ä»–說。「發ä¸åŠäº†ï¼Œé ˜ä¸å‡ºäº†ï¼ŒéŠ€è¡Œå·²ç¶“é—œäº†é–€ï¼Œå¾—ç‰åˆå…«ã€‚ã€ã€Œè¦ªé ˜ï¼Ÿâ€¦â€¦ã€ä¼Šæƒ´æƒ´çš„å•。
+ã€Œè¦ªé ˜é€™ä¸€å±¤ä¹Ÿå·²ç¶“å–æ¶ˆäº†ï¼Œè½èªªä»èˆŠç”±æœƒè¨ˆç§‘分é€ã€‚坿˜¯éŠ€è¡Œä»Šå¤©å·²ç¶“é—œäº†é–€ï¼Œä¼‘æ¯ä¸‰å¤©ï¼Œå¾—ç‰åˆ°åˆå…«çš„上åˆã€‚ã€ä»–å下,眼ç›çœ‹è‘—地é¢äº†ï¼Œå–éŽä¸€å£èŒ¶ï¼Œçº”åˆæ…¢æ…¢çš„é–‹å£èªªï¼Œã€Œå¹¸è€Œè¡™é–€è£ä¹Ÿæ²’有什麼å•題了,大約到åˆå…«å°±æº–有錢……å‘ä¸ç›¸å¹²çš„親戚朋å‹åŽ»å€ŸéŒ¢ï¼Œå¯¦åœ¨æ˜¯ä¸€ä»¶ç…©é›£äº‹ã€‚æˆ‘åˆå¾Œç¡¬è‘—é 皮去尋金永生,談了一會,他先æç¶æˆ‘ä¸åŽ»ç´¢è–ªï¼Œä¸è‚¯è¦ªé ˜ï¼Œéžå¸¸ä¹‹æ¸…é«˜ï¼Œä¸€å€‹äººæ£æ‡‰è©²é€™æ¨£åšï¼›å¾…åˆ°çŸ¥é“æˆ‘想è¦å‘他通èžäº”åå…ƒï¼Œå°±åƒæˆ‘在他嘴è£å¡žäº†ä¸€å¤§æŠŠé¹½ä¼¼çš„,凡有臉上å¯ä»¥æ‰“皺的地迫都打起皺來,說房租怎樣的收ä¸èµ·ï¼Œè²·è³£æ€Žæ¨£çš„è³ æœ¬ï¼Œåœ¨åŒäº‹é¢å‰è¦ªèº«é ˜æ¬¾ï¼Œä¹Ÿä¸ç®—什麼的,å³åˆ»å°‡æˆ‘支使出來了。ã€
+ã€Œé€™æ¨£ç·Šæ€¥çš„ç¯€æ ¹ï¼Œèª°é‚„è‚¯å€Ÿå‡ºéŒ¢åŽ»å‘¢ã€‚ã€æ–¹å¤ªå¤ªå»åªæ·¡æ·¡çš„說,並沒有什麼慨然。
+方玄綽低下é 來了,覺得這也無怪其然的,æ³ä¸”自己和金永生本來很ç–é 。他接著就記起去年年關的事來,那時有一個åŒé„‰ä¾†å€Ÿåå¡ŠéŒ¢ï¼Œä»–å…¶æ™‚æ˜Žæ˜Žå·²ç¶“æ”¶åˆ°äº†è¡™é–€çš„é ˜æ¬¾æ†‘å–®çš„äº†ï¼Œå› ç‚ºæ»æ€•這人將來未必會還錢,便è£äº†å‰¯ç‚ºé›£çš„神色,說é“è¡™é–€è£æ—¢ç„¶é ˜ä¸åˆ°ä¿¸éŒ¢ï¼Œå¸æ ¡è£åˆä¸ç™¼è–ªæ°´ï¼Œå¯¦åœ¨ã€Œæ„›èŽ«èƒ½åŠ©ã€ï¼Œå°‡ä»–空手é€èµ°äº†ã€‚他雖然自已並ä¸çœ‹è¦‹è£äº†æ€Žæ¨£çš„è‡‰ï¼Œä½†æ¤æ™‚å»è¦ºå¾—å¾ˆå±€ä¿ƒï¼Œå˜´å”‡å¾®å¾®ä¸€å‹•ï¼Œåˆæ–一æ–é 。
+然而ä¸å¤šä¹…,他忽而æç„¶å¤§æ‚Ÿä¼¼çš„發命令了:å«å°å»å³åˆ»ä¸Šè¡—去賒一瓶蓮花白。他知é“åº—å®¶å¸Œåœ–æ˜Žå¤©å¤šé‚„å¸³ï¼Œå¤§æŠµæ˜¯ä¸æ•¢ä¸è³’的,å‡å¦‚ä¸è³’,則明天分文ä¸é‚„ï¼Œæ£æ˜¯ä»–們應得的懲罰。蓮花白竟賒來了,他å–了兩æ¯ï¼Œé’白色的臉上泛了紅,åƒå®Œé£¯ï¼Œåˆé —有些高興了,他點上一æžå¤§è™Ÿå“ˆå¾·é–€é¦™ç…™ï¼Œå¾žæ¡Œä¸ŠæŠ“起一本《嘗試集》來,躺在床上就è¦çœ‹ã€‚
+「那麼明天怎麼å°ä»˜åº—å®¶å‘¢ï¼Ÿã€æ–¹å¤ªå¤ªè¿½ä¸ŠåŽ»ï¼Œç«™åœ¨åºŠé¢å‰çœ‹è‘—他的臉說。「店家?……教他們åˆå…«çš„下åŠå¤©ä¾†ã€‚ã€ã€Œæˆ‘å¯ä¸èƒ½é€™éº¼èªªã€‚他們ä¸ç›¸ä¿¡ï¼Œä¸ç”應的。ã€ã€Œæœ‰ä»€éº¼ä¸ç›¸ä¿¡ã€‚他們å¯ä»¥å•去,全衙門è£ä»€éº¼äººä¹Ÿæ²’æœ‰é ˜åˆ°ï¼Œéƒ½å¾—åˆå…«ï¼ã€ä»–戟著第二個指é 在帳åè£çš„空ä¸ç•«äº†ä¸€å€‹åŠåœ“,方太太跟著指é 也看了一個åŠåœ“,åªè¦‹é€™æ‰‹ä¾¿åŽ»ç¿»é–‹äº†ã€Šå˜—è©¦é›†ã€‹ã€‚
+方太太見他強橫到出乎情ç†ä¹‹å¤–了,也暫時開ä¸å¾—å£ã€‚
+「我想,這模樣是鬧ä¸ä¸‹åŽ»çš„ï¼Œå°‡ä¾†ç¸½å¾—æƒ³é»žæ³•ï¼Œåšé»žä»€éº¼åˆ¥çš„事……ã€ä¼Šçµ‚於尋到了別的路,說。「什麼法呢?我『文ä¸åƒè¬„錄生,æ¦ä¸åƒæ•‘ç«å…µã€ï¼Œåˆ¥çš„åšä»€éº¼ï¼Ÿã€ã€Œä½ 䏿˜¯çµ¦ä¸Šæµ·çš„æ›¸é‹ªååšéŽæ–‡ç« 麽?ã€
+「上海的書鋪å?買稿è¦ä¸€å€‹ä¸€å€‹çš„ç®—å—ï¼Œç©ºæ ¼ä¸ç®—æ•¸ã€‚ä½ çœ‹æˆ‘åšåœ¨é‚£è£çš„白話詩去,空白有多少,怕åªå€¼ä¸‰ç™¾å¤§éŒ¢ä¸€æœ¬ç½·ã€‚收版權稅åˆåŠå¹´å…月沒消æ¯ï¼Œã€Žé æ°´æ•‘ä¸å¾—è¿‘ç«ã€ï¼Œèª°è€ç…©ã€‚ã€ã€Œé‚£éº¼ï¼Œçµ¦é€™è£çš„å ±é¤¨è£â€¦â€¦ã€
+ã€Œçµ¦å ±é¤¨è£ï¼Ÿä¾¿åœ¨é€™è£å¾ˆå¤§çš„å ±é¤¨è£ï¼Œæˆ‘é 著一個å¸ç”Ÿåœ¨é‚£è£åšç·¨è¼¯çš„大情é¢ï¼Œä¸€åƒå—也就是這幾個錢,å³ä½¿ä¸€æ—©åšåˆ°å¤œï¼Œèƒ½å¤ é¤Šæ´»ä½ å€‘éº½ï¼Ÿæ³ä¸”我肚åè£ä¹Ÿæ²’æœ‰é€™è¨±å¤šæ–‡ç« ã€‚ã€
+「那麼,éŽäº†ç¯€æ€Žéº¼è¾¦å‘¢ï¼Ÿã€ã€ŒéŽäº†ç¯€éº½ï¼Ÿâ€”—ä»èˆŠåšå®˜â€¦â€¦æ˜Žå¤©åº—家來è¦éŒ¢ï¼Œä½ åªè¦èªªåˆå…«çš„下åˆã€‚ã€
+ä»–åˆè¦çœ‹ã€Šå˜—試集》了。方太太怕失了機會,連忙åžåžåå的說:「我想,éŽäº†ç¯€ï¼Œåˆ°äº†åˆå…«ï¼Œæˆ‘們……倒ä¸å¦‚去買一張彩票……ã€ã€Œèƒ¡èªªï¼æœƒèªªå‡ºé€™æ¨£ç„¡æ•™è‚²çš„……ã€
+這時候,他忽而åˆè¨˜èµ·è¢«é‡‘永生支使出來以後的事了。那時他惘惘的走éŽç¨»é¦™æ‘,看店門å£è±Žè‘—許多斗大的å—的廣告é“「é 彩幾è¬å…ƒã€ï¼Œä»¿ä½›è¨˜å¾—心è£ä¹Ÿä¸€å‹•,或者也許放慢了腳æ¥çš„ç½·ï¼Œä½†ä¼¼ä¹Žå› ç‚ºæ¨ä¸å¾—皮夾è£åƒ…å˜çš„å…角錢,所以竟也毅然決然的走é 了。他臉色一變,方太太料想他是在惱著伊的無教育,便趕緊退開,沒有說完話。方玄綽也沒有說完話,將腰一伸,咿咿嗚嗚的就念《嘗試集》。
+我冒了嚴寒,回到相隔二åƒé¤˜é‡Œï¼Œåˆ¥äº†äºŒå餘年的故鄉去。
+時候既然是深冬;漸近故鄉時,天氣åˆé™°æ™¦äº†ï¼Œå†·é¢¨å¹é€²èˆ¹è‰™ä¸ï¼Œå—šå—šçš„響,從蓬隙å‘外一望,蒼黃的天底下,é 近橫著幾個è•ç´¢çš„è’æ‘,沒有一些活氣。我的心ç¦ä¸ä½æ‚²æ¶¼èµ·ä¾†äº†ã€‚
+阿ï¼é€™ä¸æ˜¯æˆ‘二å年來時時記得的故鄉?
+我所記得的故鄉全ä¸å¦‚æ¤ã€‚æˆ‘çš„æ•…é„‰å¥½å¾—å¤šäº†ã€‚ä½†è¦æˆ‘記起他的美麗,說出他的佳處來,å»åˆæ²’有影åƒï¼Œæ²’有言è¾äº†ã€‚仿佛也就如æ¤ã€‚於是我自己解釋說:故鄉本也如æ¤ï¼Œâ€”—雖然沒有進æ¥ï¼Œä¹Ÿæœªå¿…æœ‰å¦‚æˆ‘æ‰€æ„Ÿçš„æ‚²æ¶¼ï¼Œé€™åªæ˜¯æˆ‘è‡ªå·±å¿ƒæƒ…çš„æ”¹è®Šç½·äº†ï¼Œå› ç‚ºæˆ‘é€™æ¬¡å›žé„‰ï¼Œæœ¬æ²’æœ‰ä»€éº¼å¥½å¿ƒç·’ã€‚
+æˆ‘é€™æ¬¡æ˜¯å°ˆç‚ºäº†åˆ¥ä»–è€Œä¾†çš„ã€‚æˆ‘å€‘å¤šå¹´èšæ—而居的è€å±‹ï¼Œå·²ç¶“å…¬åŒè³£çµ¦åˆ¥å§“了,交屋的期é™ï¼Œåªåœ¨æœ¬å¹´ï¼Œæ‰€ä»¥å¿…é ˆè¶•åœ¨æ£æœˆåˆä¸€ä»¥å‰ï¼Œæ°¸åˆ¥äº†ç†Ÿè˜çš„è€å±‹ï¼Œè€Œä¸”é 離了熟è˜çš„æ•…鄉,æ¬å®¶åˆ°æˆ‘在謀食的異地去。
+第二日清早晨我到了我家的門å£äº†ã€‚瓦楞上許多枯è‰çš„æ–·èŽ–ç•¶é¢¨æŠ–è‘—ï¼Œæ£åœ¨èªªæ˜Žé€™è€å±‹é›£å…æ˜“ä¸»çš„åŽŸå› ã€‚å¹¾æˆ¿çš„æœ¬å®¶å¤§ç´„å·²ç¶“æ¬èµ°äº†ï¼Œæ‰€ä»¥å¾ˆå¯‚éœã€‚我到了自家的房外,我的æ¯è¦ªæ—©å·²è¿Žè‘—出來了,接著便飛出了八æ²çš„侄兒å®å…’。
+我的æ¯è¦ªå¾ˆé«˜èˆˆï¼Œä½†ä¹Ÿè—著許多淒涼的神情,教我åä¸‹ï¼Œæ‡æ¯ï¼Œå–茶,且ä¸è«‡æ¬å®¶çš„事。å®å…’æ²’æœ‰è¦‹éŽæˆ‘,é é çš„å°é¢ç«™è‘—åªæ˜¯çœ‹ã€‚
+但我們終於談到æ¬å®¶çš„事。我說外間的寓所已經租定了,åˆè²·äº†å¹¾ä»¶å‚¢å…·ï¼Œæ¤å¤–é ˆå°‡å®¶è£¡æ‰€æœ‰çš„æœ¨å™¨è³£åŽ»ï¼Œå†åŽ»å¢žæ·»ã€‚æ¯è¦ªä¹Ÿèªªå¥½ï¼Œè€Œä¸”行æŽä¹Ÿç•¥å·²é½Šé›†ï¼Œæœ¨å™¨ä¸ä¾¿æ¬é‹çš„,也å°åŠè³£åŽ»äº†ï¼Œåªæ˜¯æ”¶ä¸èµ·éŒ¢ä¾†ã€‚
+ã€Œä½ ä¼‘æ¯ä¸€å…©å¤©ï¼ŒåŽ»æ‹œæœ›è¦ªæˆšæœ¬å®¶ä¸€å›žï¼Œæˆ‘å€‘ä¾¿å¯ä»¥èµ°äº†ã€‚ã€æ¯è¦ªèªªã€‚
+「是的。ã€
+「還有é–土,他æ¯åˆ°æˆ‘家來時,總å•èµ·ä½ ï¼Œå¾ˆæƒ³è¦‹ä½ ä¸€å›žé¢ã€‚æˆ‘å·²ç¶“å°‡ä½ åˆ°å®¶çš„å¤§ç´„æ—¥æœŸé€šçŸ¥ä»–ï¼Œä»–ä¹Ÿè¨±å°±è¦ä¾†äº†ã€‚ã€
+這時候,我的腦裡忽然閃出一幅神異的圖畫來:深è—çš„å¤©ç©ºä¸æŽ›è‘—ä¸€è¼ªé‡‘é»ƒçš„åœ“æœˆï¼Œä¸‹éºµæ˜¯æµ·é‚Šçš„æ²™åœ°ï¼Œéƒ½ç¨®è‘—ä¸€æœ›ç„¡éš›çš„ç¢§ç¶ çš„è¥¿ç“œï¼Œå…¶é–“æœ‰ä¸€å€‹å一二æ²çš„å°‘å¹´ï¼Œé …å¸¶éŠ€åœˆï¼Œæ‰‹æä¸€æŸ„鋼å‰ï¼Œå‘一匹猹盡力的刺去,那猹å»å°‡èº«ä¸€æ‰ï¼Œå從他的胯下逃走了。
+這少年便是é–土。我èªè˜ä»–時,也ä¸éŽå多æ²ï¼Œé›¢ç¾åœ¨å°‡æœ‰ä¸‰åå¹´äº†ï¼›é‚£æ™‚æˆ‘çš„çˆ¶è¦ªé‚„åœ¨ä¸–ï¼Œå®¶æ™¯ä¹Ÿå¥½ï¼Œæˆ‘æ£æ˜¯ä¸€å€‹å°‘爺。那一年,我家是一件大ç¥ç¥€çš„值年。這ç¥ç¥€ï¼Œèªªæ˜¯ä¸‰å多年æ‰èƒ½è¼ªåˆ°ä¸€å›žï¼Œæ‰€ä»¥å¾ˆé„é‡ï¼›æ£æœˆè£¡ä¾›ç¥–åƒï¼Œä¾›å“很多,ç¥å™¨å¾ˆè¬›ç©¶ï¼Œæ‹œçš„人也很多,ç¥å™¨ä¹Ÿå¾ˆè¦é˜²å·åŽ»ã€‚æˆ‘å®¶åªæœ‰ä¸€å€‹å¿™æœˆï¼ˆæˆ‘們這裡給人åšå·¥çš„分三種:整年給一定人家åšå·¥çš„å«é•·å·¥ï¼›æŒ‰æ—¥çµ¦äººåšå·¥çš„å«çŸå·¥ï¼›è‡ªå·±ä¹Ÿç¨®åœ°ï¼Œåªåœ¨éŽå¹´éŽç¯€ä»¥åŠæ”¶ç§Ÿæ™‚候來給一定人家åšå·¥çš„稱忙月),忙ä¸éŽä¾†ï¼Œä»–便å°çˆ¶è¦ªèªªï¼Œå¯ä»¥å«ä»–的兒åé–土來管ç¥å™¨çš„。
+我的父親å…è¨±äº†ï¼›æˆ‘ä¹Ÿå¾ˆé«˜èˆˆï¼Œå› ç‚ºæˆ‘æ—©è½åˆ°é–土這åå—,而且知é“ä»–å’Œæˆ‘ä»¿ä½›å¹´ç´€ï¼Œé–æœˆç”Ÿçš„,五行缺土,所以他的父親å«ä»–é–土。他是能è£å¼¶æ‰å°é³¥é›€çš„。
+我於是日日盼望新年,新年到,é–土也就到了。好容易到了年末,有一日,æ¯è¦ªå‘Šè¨´æˆ‘,é–土來了,我便飛跑的去看。他æ£åœ¨å»šæˆ¿è£¡ï¼Œç´«è‰²çš„åœ“è‡‰ï¼Œé æˆ´ä¸€é ‚å°æ°ˆå¸½ï¼Œé ¸ä¸Šå¥—ä¸€å€‹æ˜Žæ™ƒæ™ƒçš„éŠ€é …åœˆï¼Œé€™å¯è¦‹ä»–的父親å分愛他,怕他æ»åŽ»ï¼Œæ‰€ä»¥åœ¨ç¥žä½›é¢å‰è¨±ä¸‹é¡˜å¿ƒï¼Œç”¨åœˆå將他套ä½äº†ã€‚ä»–è¦‹äººå¾ˆæ€•ç¾žï¼Œåªæ˜¯ä¸æ€•我,沒有æ—人的時候,便和我說話,於是ä¸åˆ°åŠæ—¥ï¼Œæˆ‘們便熟è˜äº†ã€‚
+我們那時候ä¸çŸ¥é“談些什麼,åªè¨˜å¾—é–土很高興,說是上城之後,見了許多沒有見éŽçš„æ±è¥¿ã€‚
+第二日,我便è¦ä»–æ•鳥。他說:
+"這ä¸èƒ½ã€‚é ˆå¤§é›ªä¸‹äº†æ‰å¥½ã€‚æˆ‘å€‘æ²™åœ°ä¸Šï¼Œä¸‹äº†é›ªï¼Œæˆ‘æŽƒå‡ºä¸€å¡Šç©ºåœ°ä¾†ï¼Œç”¨çŸæ£’æ”¯èµ·ä¸€å€‹å¤§ç«¹åŒ¾ï¼Œæ’’ä¸‹ç§•ç©€ï¼Œçœ‹é³¥é›€ä¾†åƒæ™‚,我é é 地將縛在棒上的繩ååªä¸€æ‹‰ï¼Œé‚£é³¥é›€å°±ç½©åœ¨ç«¹åŒ¾ä¸‹äº†ã€‚什麼都有:稻雞,角雞,鵓鴣,è—背……"
+我於是åˆå¾ˆç›¼æœ›ä¸‹é›ªã€‚
+é–土åˆå°æˆ‘說:
+"ç¾åœ¨å¤ªå†·ï¼Œä½ å¤å¤©åˆ°æˆ‘å€‘é€™è£¡ä¾†ã€‚æˆ‘å€‘æ—¥è£¡åˆ°æµ·é‚Šæ’¿è²æ®¼åŽ»ï¼Œç´…çš„ç¶ çš„éƒ½æœ‰ï¼Œé¬¼è¦‹æ€•ä¹Ÿæœ‰ï¼Œè§€éŸ³æ‰‹ä¹Ÿæœ‰ã€‚æ™šä¸Šæˆ‘å’Œçˆ¹ç®¡è¥¿ç“œåŽ»ï¼Œä½ ä¹ŸåŽ»ã€‚"
+"管賊麽?"
+"䏿˜¯ã€‚èµ°è·¯çš„äººå£æ¸´äº†æ‘˜ä¸€å€‹ç“œåƒï¼Œæˆ‘們這裡是ä¸ç®—å·çš„。è¦ç®¡çš„æ˜¯ç¾è±¬ï¼ŒåˆºèŸï¼ŒçŒ¹ã€‚æœˆäº®åº•ä¸‹ï¼Œä½ è½ï¼Œå•¦å•¦çš„éŸ¿äº†ï¼ŒçŒ¹åœ¨å’¬ç“œäº†ã€‚ä½ ä¾¿æäº†èƒ¡å‰ï¼Œè¼•輕地走去……"
+我那時並ä¸çŸ¥é“這所謂猹的是怎麼一件æ±è¥¿â€”—便是ç¾åœ¨ä¹Ÿæ²’有知é“â€”â€”åªæ˜¯ç„¡ç«¯çš„覺得狀如å°ç‹—而很兇猛。
+"ä»–ä¸äººéº½ï¼Ÿ"
+"有胡å‰å‘¢ã€‚èµ°åˆ°äº†ï¼Œçœ‹è¦‹çŒ¹äº†ï¼Œä½ ä¾¿åˆºã€‚é€™ç•œç”Ÿå¾ˆä¼¶ä¿ï¼Œå€’å‘ä½ å¥”ä¾†ï¼Œå從胯下竄了。他的皮毛是油一般的滑……"
+æˆ‘ç´ ä¸çŸ¥é“å¤©ä¸‹æœ‰é€™è¨±å¤šæ–°é®®äº‹ï¼šæµ·é‚Šæœ‰å¦‚è¨±äº”è‰²çš„è²æ®¼ï¼›è¥¿ç“œæœ‰é€™æ¨£å±éšªçš„ç¶“æ·ï¼Œæˆ‘å…ˆå‰å–®çŸ¥é“他在水果店裡出賣罷了。
+"我們沙地裡,潮汛è¦ä¾†çš„æ™‚候,就有許多跳éšå…’åªæ˜¯è·³ï¼Œéƒ½æœ‰é’蛙似的兩個腳……"
+阿ï¼é–åœŸçš„å¿ƒè£¡æœ‰ç„¡çª®ç„¡ç›¡çš„å¸Œå¥‡çš„äº‹ï¼Œéƒ½æ˜¯æˆ‘å¾€å¸¸çš„æœ‹å‹æ‰€ä¸çŸ¥é“的。他們ä¸çŸ¥é“一些事,é–土在海邊時,他們都和我一樣åªçœ‹è¦‹é™¢å裡高牆上的四角的天空。
+坿ƒœæ£æœˆéŽåŽ»äº†ï¼Œé–åœŸé ˆå›žå®¶è£¡åŽ»ï¼Œæˆ‘æ€¥å¾—å¤§å“,他也躲到廚房裡,å“è‘—ä¸è‚¯å‡ºé–€ï¼Œä½†çµ‚æ–¼è¢«ä»–çˆ¶è¦ªå¸¶èµ°äº†ã€‚ä»–å¾Œä¾†é‚„æ‰˜ä»–çš„çˆ¶è¦ªå¸¶çµ¦æˆ‘ä¸€åŒ…è²æ®¼å’Œå¹¾æ”¯å¾ˆå¥½çœ‹çš„鳥毛,我也曾é€ä»–一兩次æ±è¥¿ï¼Œä½†å¾žæ¤æ²’有å†è¦‹é¢ã€‚
+ç¾åœ¨æˆ‘çš„æ¯è¦ªæèµ·äº†ä»–,我這兒時的記憶,忽而全都閃電似的蘇生éŽä¾†ï¼Œä¼¼ä¹Žçœ‹åˆ°äº†æˆ‘的美麗的故鄉了。我應è²èªªï¼š
+"這好極ï¼ä»–,——怎樣?……"
+"他?……他景æ³ä¹Ÿå¾ˆä¸å¦‚æ„……"æ¯è¦ªèªªè‘—ï¼Œä¾¿å‘æˆ¿å¤–看,"這些人åˆä¾†äº†ã€‚èªªæ˜¯è²·æœ¨å™¨ï¼Œé †æ‰‹ä¹Ÿå°±éš¨ä¾¿æ‹¿èµ°çš„ï¼Œæˆ‘å¾—åŽ»çœ‹çœ‹ã€‚"
+æ¯è¦ªç«™èµ·èº«ï¼Œå‡ºåŽ»äº†ã€‚é–€å¤–æœ‰å¹¾å€‹å¥³äººçš„è²éŸ³ã€‚我便招å®å…’èµ°è¿‘é¢å‰ï¼Œå’Œä»–閑話:å•他坿œƒå¯«å—,å¯é¡˜æ„出門。
+"我們åç«è»ŠåŽ»éº½ï¼Ÿ"
+"我們åç«è»ŠåŽ»ã€‚"
+"船呢?"
+"å…ˆå船,……"
+"哈ï¼é€™æ¨¡æ¨£äº†ï¼é¬å這麼長了ï¼"一種尖利的怪è²çªç„¶å¤§å«èµ·ä¾†ã€‚
+我åƒäº†ä¸€åš‡ï¼Œè¶•忙抬起é ,å»è¦‹ä¸€å€‹å‡¸é¡´éª¨ï¼Œè–„å˜´å”‡ï¼Œäº”åæ²ä¸Šä¸‹çš„å¥³äººç«™åœ¨æˆ‘é¢å‰ï¼Œå…©æ‰‹æåœ¨é«€é–“,沒有系裙,張著兩腳,æ£åƒä¸€å€‹ç•«åœ–儀器裡細腳伶仃的圓è¦ã€‚
+我愕然了。
+"ä¸èªè˜äº†éº½ï¼Ÿæˆ‘還抱éŽä½ å’§ï¼"
+æˆ‘æ„ˆåŠ æ„•ç„¶äº†ã€‚å¹¸è€Œæˆ‘çš„æ¯è¦ªä¹Ÿå°±é€²ä¾†ï¼Œå¾žæ—說:
+"他多年出門,統忘å»äº†ã€‚ä½ è©²è¨˜å¾—ç½·ï¼Œ"便å‘著我說,"這是斜å°é–€çš„æ¥ŠäºŒå«‚,……開豆è…店的。"
+哦,我記得了。我å©å時候,在斜å°é–€çš„豆è…店裡確乎終日å著一個楊二嫂,人都å«ä¼Š"豆è…西施"⑹。但是擦著白粉,顴骨沒有這麼高,嘴唇也沒有這麼薄,而且終日å著,我也從沒有見éŽé€™åœ“è¦å¼çš„å§¿å‹¢ã€‚é‚£æ™‚äººèªªï¼šå› ç‚ºä¼Šï¼Œé€™è±†è…店的買賣éžå¸¸å¥½ã€‚ä½†é€™å¤§ç´„å› ç‚ºå¹´é½¡çš„é—œä¿‚ï¼Œæˆ‘å»ä¸¦æœªè’™è‘—一毫感化,所以竟完全忘å»äº†ã€‚然而圓è¦å¾ˆä¸å¹³ï¼Œé¡¯å‡ºé„™å¤·çš„神色,仿佛嗤笑法國人ä¸çŸ¥é“æ‹¿ç ´ä¾–ï¼Œç¾Žåœ‹äººä¸çŸ¥é“è¯ç››é “似的,冷笑說:
+"忘了?這真是貴人眼高……"
+"那有這事……我……"我惶æè‘—,站起來說。
+"那麼,我å°ä½ èªªã€‚è¿…å“¥å…’ï¼Œä½ é—Šäº†ï¼Œæ¬å‹•åˆç¬¨é‡ï¼Œä½ é‚„è¦ä»€éº¼é€™äº›ç ´çˆ›æœ¨å™¨ï¼Œè®“æˆ‘æ‹¿åŽ»ç½·ã€‚æˆ‘å€‘å°æˆ¶äººå®¶ï¼Œç”¨å¾—著。"
+"æˆ‘ä¸¦æœ‰é—Šå“©ã€‚æˆ‘é ˆè³£äº†é€™äº›ï¼Œå†åŽ»â€¦â€¦"
+"é˜¿å‘€å‘€ï¼Œä½ æ”¾äº†é“å°äº†ï¼Œé‚„說ä¸é—Šï¼Ÿä½ ç¾åœ¨æœ‰ä¸‰æˆ¿å§¨å¤ªå¤ªï¼›å‡ºé–€ä¾¿æ˜¯å…«æŠ¬çš„大轎,還說ä¸é—Šï¼Ÿåš‡ï¼Œä»€éº¼éƒ½çžžä¸éŽæˆ‘。"
+我知é“無話å¯èªªäº†ï¼Œä¾¿é–‰äº†å£ï¼Œé»˜é»˜çš„站著。
+"阿呀阿呀,真是愈有錢,便愈是一毫ä¸è‚¯æ”¾é¬†ï¼Œæ„ˆæ˜¯ä¸€æ¯«ä¸è‚¯æ”¾é¬†ï¼Œä¾¿æ„ˆæœ‰éŒ¢â€¦â€¦"圓è¦ä¸€é¢æ†¤æ†¤çš„迴轉身,一é¢çµ®çµ®çš„說,慢慢å‘å¤–èµ°ï¼Œé †ä¾¿å°‡æˆ‘æ¯è¦ªçš„一副手套塞在褲腰裡,出去了。
+æ¤å¾Œåˆæœ‰è¿‘è™•çš„æœ¬å®¶å’Œè¦ªæˆšä¾†è¨ªå•æˆ‘ã€‚æˆ‘ä¸€é¢æ‡‰é…¬ï¼Œå·ç©ºä¾¿æ”¶æ‹¾äº›è¡ŒæŽï¼Œé€™æ¨£çš„éŽäº†ä¸‰å››å¤©ã€‚
+一日是天氣很冷的åˆå¾Œï¼Œæˆ‘åƒéŽåˆé£¯ï¼Œåè‘—å–èŒ¶ï¼Œè¦ºå¾—å¤–é¢æœ‰äººé€²ä¾†äº†ï¼Œä¾¿å›žé 去看。我看時,ä¸ç”±çš„éžå¸¸å‡ºé©šï¼Œæ…Œå¿™ç«™èµ·èº«ï¼Œè¿Žè‘—走去。
+這來的便是é–åœŸã€‚é›–ç„¶æˆ‘ä¸€è¦‹ä¾¿çŸ¥é“æ˜¯é–土,但åˆä¸æ˜¯æˆ‘這記憶上的é–土了。他身æå¢žåŠ äº†ä¸€å€ï¼›å…ˆå‰çš„紫色的圓臉,已經變作ç°é»ƒï¼Œè€Œä¸”åŠ ä¸Šäº†å¾ˆæ·±çš„çšºç´‹ï¼›çœ¼ç›ä¹Ÿåƒä»–父親一樣,周åœéƒ½è…«å¾—通紅,這我知é“,在海邊種地的人,終日å¹è‘—海風,大抵是這樣的。他é ä¸Šæ˜¯ä¸€é ‚ç ´æ°ˆå¸½ï¼Œèº«ä¸Šåªä¸€ä»¶æ¥µè–„的棉衣,渾身瑟索著;手裡æè‘—ä¸€å€‹ç´™åŒ…å’Œä¸€æ”¯é•·ç…™ç®¡ï¼Œé‚£æ‰‹ä¹Ÿä¸æ˜¯æˆ‘所記得的紅活圓實的手,å»åˆç²—åˆç¬¨è€Œä¸”é–‹è£‚ï¼Œåƒæ˜¯æ¾æ¨¹çš®äº†ã€‚
+我這時很興奮,但ä¸çŸ¥é“怎麼說æ‰å¥½ï¼Œåªæ˜¯èªªï¼š
-詞曰:滾滾長江æ±é€æ°´ï¼ŒæµªèŠ±æ·˜ç›¡è‹±é›„ã€‚æ˜¯éžæˆæ•—轉é 空:é’å±±ä¾èˆŠåœ¨ï¼Œå¹¾åº¦å¤•é™½ç´…ã€‚ç™½é«®æ¼æ¨µæ±Ÿæ¸šä¸Šï¼Œæ…£çœ‹ç§‹æœˆæ˜¥é¢¨ã€‚一壺æ¿é…’喜相逢:å¤ä»Šå¤šå°‘事,都付笑談ä¸ã€‚
+"阿ï¼é–åœŸå“¥ï¼Œâ€”â€”ä½ ä¾†äº†ï¼Ÿâ€¦â€¦"
-話說天下大勢,分久必åˆï¼Œåˆä¹…必分:周末七國分çˆï¼Œå¹¶å…¥æ–¼ç§¦ã€‚åŠç§¦æ»…ä¹‹å¾Œï¼Œæ¥šã€æ¼¢åˆ†çˆï¼Œåˆå¹¶å…¥æ–¼æ¼¢ã€‚æ¼¢æœè‡ªé«˜ç¥–斬白蛇而起義,一統天下。後來光æ¦ä¸èˆˆï¼Œå‚³è‡³ç»å¸ï¼Œé‚分為三國。推其致亂之由,殆始於桓ã€éˆäºŒå¸ã€‚æ¡“å¸ç¦éŒ®å–„é¡žï¼Œå´‡ä¿¡å®¦å®˜ã€‚åŠæ¡“å¸å´©ï¼Œéˆå¸å³ä½ï¼Œå¤§å°‡è»ç«‡æ¦ã€å¤ªå‚…陳蕃,共相輔ä½ã€‚時有宦官曹節ç‰å¼„權,竇æ¦ã€é™³è•ƒè¬€èª…之,作事ä¸å¯†ï¼Œåç‚ºæ‰€å®³ã€‚ä¸æ¶“è‡ªæ¤æ„ˆæ©«ã€‚
+我接著便有許多話,想è¦é€£ç 一般湧出:角雞,跳éšå…’ï¼Œè²æ®¼ï¼ŒçŒ¹ï¼Œâ€¦â€¦ä½†åˆç¸½è¦ºå¾—被什麼擋著似的,單在腦裡é¢è¿´æ—‹ï¼Œåä¸å‡ºå£å¤–去。
-建寧二年四月望日,å¸å¾¡æº«å¾·æ®¿ã€‚方陞座,殿角狂風驟起,åªè¦‹ä¸€æ¢å¤§é’蛇,從æ¢ä¸Šé£›å°‡ä¸‹ä¾†ï¼ŒèŸ 於椅上。å¸é©šå€’ï¼Œå·¦å³æ€¥æ•‘入宮,百官俱奔é¿ã€‚é ˆè‡¾ï¼Œè›‡ä¸è¦‹äº†ã€‚å¿½ç„¶å¤§é›·å¤§é›¨ï¼ŒåŠ ä»¥å†°é›¹ï¼Œè½åˆ°åŠå¤œæ–¹æ¢ï¼Œå£žå»æˆ¿å±‹ç„¡æ•¸ã€‚å»ºå¯§å››å¹´äºŒæœˆï¼Œæ´›é™½åœ°éœ‡ï¼›åˆæµ·æ°´æ³›æº¢ï¼Œæ²¿æµ·å±…民,盡被大浪æ²å…¥æµ·ä¸ã€‚å…‰å’Œå…ƒå¹´ï¼Œé›Œé›žåŒ–é›„ã€‚å…æœˆæœ”,黑氣å餘丈,飛入溫德殿ä¸ã€‚ç§‹ä¸ƒæœˆï¼Œæœ‰è™¹è¦‹æ–¼çŽ‰å ‚ï¼›äº”åŽŸå±±å²¸ï¼Œç›¡çš†å´©è£‚ã€‚ç¨®ç¨®ä¸ç¥¥ï¼Œéžæ¢ä¸€ç«¯ã€‚
-
-å¸ä¸‹è©”å•群臣以ç½ç•°ä¹‹ç”±ï¼Œè°éƒŽè”¡é‚•上ç–ï¼Œä»¥ç‚ºèœºå¢®é›žåŒ–ï¼Œä¹ƒå©¦å¯ºå¹²æ”¿ä¹‹æ‰€è‡´ï¼Œè¨€é —åˆ‡ç›´ã€‚å¸è¦½å¥æŽæ¯ï¼Œå› 起更衣。曹節在後竊視,悉宣告左å³ï¼Œé‚以他事陷邕於罪,放æ¸ç”°é‡Œã€‚å¾Œå¼µè®“ï¼Œè¶™å¿ ï¼Œå°è«ï¼Œæ®µçªï¼Œæ›¹ç¯€ï¼Œå€™è¦½ï¼Œè¹‡ç¢©ï¼Œç¨‹æ› ï¼Œå¤æƒ²ï¼Œéƒå‹å人朋比為奸,號為「å常ä¾ã€ã€‚å¸å°Šä¿¡å¼µè®“,呼為「阿父ã€ï¼Œæœæ”¿æ—¥éžï¼Œä»¥è‡´å¤©ä¸‹äººå¿ƒæ€äº‚,盜賊蜂起。
-
-時鉅鹿郡有兄弟三人:一å張角,一å張寶,一åå¼µæ¢ã€‚那張角本是個ä¸ç¬¬ç§€æ‰ã€‚å› å…¥å±±æŽ¡è—¥ï¼Œé‡ä¸€è€äººï¼Œç¢§çœ¼ç«¥é¡ï¼Œæ‰‹åŸ·è—œæ–,喚角至一洞ä¸ï¼Œä»¥å¤©æ›¸ä¸‰å·æŽˆä¹‹ï¼Œæ›°ï¼šã€Œæ¤å太平è¦è¡“。æ±å¾—之,當代天宣化,普救世人;若èŒç•°å¿ƒï¼Œå¿…ç²æƒ¡å ±ã€‚ã€è§’拜å•å§“å。è€äººæ›°ï¼šã€Œå¾ä¹ƒå—è¯è€ä»™ä¹Ÿã€‚ã€è¨€è¨–,化陣清風而去。
-
-è§’å¾—æ¤æ›¸ï¼Œæ›‰å¤œæ”»ç¿’,能呼風喚雨,號為太平é“人。ä¸å¹³å…ƒå¹´æ£æœˆå…§ï¼Œç–«æ°£æµè¡Œï¼Œå¼µè§’散施符水,為人治病,自稱大賢良師。角有徒弟五百餘人,雲游四方,皆能書符念咒。次後徒眾日多,角乃立三åå…æ–¹ï¼Œãƒ¼å¤§æ–¹è¬é¤˜äººï¼Œå°æ–¹å…七åƒãƒ¼ï¼Œå„ç«‹æ¸ å¸¥ï¼Œç¨±ç‚ºå°‡è»ã€‚訛言「蒼天已æ»ï¼Œé»ƒå¤©ç•¶ç«‹ã€‚ã€åˆäº‘「æ²åœ¨ç”²å,天下大å‰ã€‚ã€ä»¤äººå„以白土,書「甲åã€äºŒå—於家ä¸å¤§é–€ä¸Šã€‚é’ã€å¹½ã€å¾ã€å†€ã€èŠã€æšã€å…—ã€è±«å…«å·žä¹‹äººï¼Œå®¶å®¶ä¾å¥‰å¤§è³¢è‰¯å¸«å¼µè§’åå—。角é£å…¶é»¨é¦¬å…ƒç¾©ï¼Œæš—齎金帛,çµäº¤ä¸æ¶“å°è«ï¼Œä»¥ç‚ºå…§æ‡‰ã€‚è§’èˆ‡äºŒå¼Ÿå•†è°æ›°ï¼šã€Œè‡³é›£å¾—è€…ï¼Œæ°‘å¿ƒä¹Ÿã€‚ä»Šæ°‘å¿ƒå·²é †ï¼Œè‹¥ä¸ä¹˜å‹¢å–å¤©ä¸‹ï¼Œèª ç‚ºå¯æƒœã€‚ã€é‚一é¢ç§é€ 黃旗,約期舉事;一é¢ä½¿å¼Ÿåå”å·žï¼Œé¦³æ›¸å ±å°è«ã€‚å”州乃逕赴çœä¸å‘Šè®Šã€‚å¸å¬å¤§å°‡è»ä½•進調兵擒馬元義,斬之;次收å°è«ç‰ä¸€å¹²äººä¸‹ç„。
-
-張角èžçŸ¥äº‹éœ²ï¼Œæ˜Ÿå¤œèˆ‰å…µï¼Œè‡ªç¨±å¤©å…¬å°‡è»ï¼Œãƒ¼å¼µå¯¶ç¨±åœ°å…¬å°‡è»ï¼Œå¼µæ¢ç¨±äººå…¬å°‡è»ãƒ¼ã€‚申言於眾曰:「今漢é‹å°‡çµ‚,大è–人出;æ±ç‰çš†å®œé †å¾žå¤©æ„,以槳太平。ã€å››æ–¹ç™¾å§“,裹黃巾從張角å者,四五åè¬ã€‚è³Šå‹¢æµ©å¤§ï¼Œå®˜è»æœ›é¢¨è€Œé¡ã€‚何進å¥å¸ç«é€Ÿé™è©”,令å„處備禦,討賊立功;一é¢é£ä¸éƒŽå°‡ç›§æ¤ï¼Œçš‡ç”«åµ©ï¼Œæœ±é›‹ï¼Œå„引精兵,分三路討之。
-
-且說張角一è»ï¼Œå‰çŠ¯å¹½å·žç•Œåˆ†ã€‚å¹½å·žå¤ªå®ˆåŠ‰ç„‰ï¼Œä¹ƒæ±Ÿå¤ç«Ÿé™µäººæ°ï¼Œæ¼¢é¯æçŽ‹ä¹‹å¾Œä¹Ÿï¼›ç•¶æ™‚èžå¾—è³Šå…µå°‡è‡³ï¼Œå¬æ ¡å°‰é„’é–計è°ã€‚é–æ›°ï¼šã€Œè³Šå…µçœ¾ï¼Œæˆ‘å…µå¯¡ï¼Œæ˜Žå…¬å®œä½œé€Ÿæ‹›è»æ‡‰æ•µã€‚ã€åŠ‰ç„‰ç„¶å…¶èªªï¼Œéš¨å³å‡ºæ¦œæ‹›å‹Ÿç¾©å…µã€‚榜文行到涿縣,乃引出涿縣ä¸ä¸€å€‹è‹±é›„。
-
-那人ä¸ç”šå¥½è®€æ›¸ï¼›æ€§å¯¬å’Œï¼Œå¯¡è¨€èªžï¼Œå–œæ€’ä¸å½¢æ–¼è‰²ï¼›ç´ 有大志,專好çµäº¤å¤©ä¸‹è±ªå‚‘;生得身長七尺五寸,兩耳垂肩,雙手éŽè†ï¼Œç›®èƒ½è‡ªé¡§å…¶è€³ï¼Œé¢å¦‚å† çŽ‰ï¼Œè„£è‹¥å¡—è„‚ï¼›ä¸å±±é–王劉å‹ä¹‹å¾Œï¼Œæ¼¢æ™¯å¸é–£ä¸‹çŽ„å«ï¼›å§“劉,å備,å—玄德。昔劉å‹ä¹‹ååŠ‰è²žï¼Œæ¼¢æ¦æ™‚å°æ¶¿é¹¿äºä¾¯ï¼Œå¾Œåé…¬é‡‘å¤±ä¾¯ï¼Œå› æ¤éºé€™ä¸€æžåœ¨æ¶¿ç¸£ã€‚玄德祖劉雄,父劉弘。弘曾舉å廉,亦嘗作å,早喪。玄德幼å¤ï¼Œäº‹æ¯è‡³å;家貧,販屨織蓆為æ¥ã€‚家使œ¬ç¸£æ¨“æ¡‘æ‘。其家之æ±å—ï¼Œæœ‰ä¸€å¤§æ¡‘æ¨¹ï¼Œé«˜äº”ä¸ˆé¤˜ï¼Œé™æœ›ä¹‹ï¼Œç«¥ç«¥å¦‚車蓋。相者云:「æ¤å®¶å¿…出貴人。ã€
-
-玄德幼時,與鄉ä¸å°å…’戲於樹下,曰:「我為天å,當乘æ¤è»Šè“‹ã€‚ã€å”父劉元起奇其言,曰:「æ¤å…’éžå¸¸äººä¹Ÿï¼ã€å› 見玄德家貧,常資給之。年å五æ²ï¼Œæ¯ä½¿æ¸¸å¸ï¼Œå˜—師事é„玄ã€ç›§æ¤ï¼›èˆ‡å…¬å«ç“šç‰ç‚ºå‹ã€‚åŠåŠ‰ç„‰ç™¼æ¦œæ‹›è»æ™‚,玄德年己二åå…«æ²çŸ£ã€‚當日見了榜文,慨然長æŽã€‚隨後一人厲è²è¨€æ›°ï¼šã€Œå¤§ä¸ˆå¤«ä¸èˆ‡åœ‹å®¶å‡ºåŠ›ï¼Œä½•æ•…é•·æŽï¼Ÿã€
-
-玄德回視其人:身長八尺,豹é ç’°çœ¼ï¼Œç‡•é ·è™Žé¬šï¼Œè²è‹¥å·¨é›·ï¼Œå‹¢å¦‚奔馬。玄德見他形貌異常,å•å…¶å§“å。其人曰:「æŸå§“張,å飛,å—ç¿¼å¾·ã€‚ä¸–å±…æ¶¿éƒ¡ï¼Œé —æœ‰èŽŠç”°ï¼Œè³£é…’å± è±¬ï¼Œå°ˆå¥½çµäº¤å¤©ä¸‹è±ªå‚‘。é©çº”見公看榜而æŽï¼Œæ•…æ¤ç›¸å•。ã€çŽ„å¾·æ›°ï¼šã€Œæˆ‘æœ¬æ¼¢å®¤å®—è¦ªï¼Œå§“åŠ‰ï¼Œå備。今èžé»ƒå·¾å€¡äº‚ï¼Œæœ‰å¿—æ¬²ç ´è³Šå®‰æ°‘ï¼›æ¨åŠ›ä¸èƒ½ï¼Œæ•…é•·æŽè€³ã€‚ã€é£›æ›°ï¼šã€Œå¾é —有資財,當招募鄉勇,與公åŒèˆ‰å¤§äº‹ï¼Œå¦‚何?ã€çŽ„å¾·ç”šå–œï¼Œé‚與åŒå…¥æ‘店ä¸é£²é…’。
-
-æ£é£²é–“,見一大漢,推著一輛車å,到店門首æ‡äº†ï¼›å…¥åº—å下,便喚酒ä¿ï¼šã€Œå¿«æ–Ÿé…’來åƒï¼Œæˆ‘待趕入城去投è»ã€‚ã€çŽ„å¾·çœ‹å…¶äººï¼šèº«é•·ä¹å°ºï¼Œé«¯é•·äºŒå°ºï¼šé¢å¦‚釿£—ï¼Œè„£è‹¥å¡—è„‚ï¼›ä¸¹é³³çœ¼ï¼Œè‡¥è ¶çœ‰ï¼šç›¸è²Œå ‚å ‚ï¼Œå¨é¢¨å‡œå‡œã€‚玄德就邀他åŒå,å©å…¶å§“å。其人曰:「å¾å§“關,å羽,å—壽長,後改雲長,河æ±è§£è‰¯äººä¹Ÿã€‚å› æœ¬è™•å‹¢è±ªï¼Œå€šå‹¢å‡Œäººï¼Œè¢«å¾æ®ºäº†ï¼›é€ƒé›£æ±Ÿæ¹–,五å…å¹´çŸ£ã€‚ä»Šèžæ¤è™•æ‹›è»ç ´è³Šï¼Œç‰¹ä¾†æ‡‰å‹Ÿã€‚ã€çބ德é‚以己志告之。雲長大喜。åŒåˆ°å¼µé£›èŽŠä¸Šï¼Œå…±è°å¤§äº‹ã€‚
-
-飛曰:「å¾èŽŠå¾Œæœ‰ä¸€æ¡ƒåœ’ï¼ŒèŠ±é–‹æ£ç››ï¼›æ˜Žæ—¥ç•¶æ–¼åœ’ä¸ç¥å‘Šå¤©åœ°ï¼Œæˆ‘三人çµç‚ºå…„弟,å”力åŒå¿ƒï¼Œç„¶å¾Œå¯åœ–大事。ã€çބ德ã€é›²é•·ã€é½Šè²æ‡‰æ›°ï¼šã€Œå¦‚æ¤ç”šå¥½ã€‚ã€æ¬¡æ—¥ï¼Œæ–¼æ¡ƒåœ’ä¸ï¼Œå‚™ä¸‹çƒç‰›ç™½é¦¬ç¥ç¦®ç‰é …ï¼Œä¸‰äººç„šé¦™ï¼Œå†æ‹œè€Œèªªèª“曰:「念劉備ã€é—œç¾½ã€å¼µé£›ï¼Œé›–然異姓,既çµç‚ºå…„弟,則åŒå¿ƒå”力,救困扶å±ï¼›ä¸Šå ±åœ‹å®¶ï¼Œä¸‹å®‰é»Žåº¶ï¼›ä¸æ±‚åŒå¹´åŒæœˆåŒæ—¥ç”Ÿï¼Œä½†é¡˜åŒå¹´åŒæœˆåŒæ—¥æ»ã€‚皇天åŽåœŸï¼Œå¯¦é‘’æ¤å¿ƒã€‚背義忘æ©ï¼Œå¤©äººå…±æˆ®ã€‚ã€èª“畢,拜玄德為兄,關羽次之,張飛為弟。ç¥ç½·å¤©åœ°ï¼Œå¾©å®°ç‰›è¨é…’,èšé„‰ä¸å‹‡å£«ï¼Œå¾—三百餘人,就桃園ä¸ç—›é£²ä¸€é†‰ã€‚來日收拾è»å™¨ï¼Œä½†æ¨ç„¡é¦¬åŒ¹å¯ä¹˜ã€‚
-
-æ£æ€æ…®é–“ï¼Œäººå ±ã€Œæœ‰å…©å€‹å®¢äººï¼Œå¼•ä¸€å¤¥ä¼´å„…ï¼Œè¶•ä¸€ç¾¤é¦¬ï¼ŒæŠ•èŽŠä¸Šä¾†ã€‚ã€çŽ„å¾·æ›°ï¼šã€Œæ¤å¤©ä½‘我也ï¼ã€ä¸‰äººå‡ºèŽŠè¿ŽæŽ¥ã€‚åŽŸä¾†äºŒå®¢ä¹ƒä¸å±±å¤§å•†ï¼šä¸€å張世平,一å蘇雙,æ¯å¹´å¾€åŒ—è²©é¦¬ï¼Œè¿‘å› å¯‡ç™¼è€Œå›žã€‚çŽ„å¾·è«‹äºŒäººåˆ°èŽŠï¼Œç½®é…’ç®¡å¾…ï¼Œè¨´èªªæ¬²è¨Žè³Šå®‰æ°‘ä¹‹æ„。二客大喜,願將良馬五å匹相é€ï¼›åˆè´ˆé‡‘銀五百兩,鑌éµä¸€åƒæ–¤ï¼Œä»¥è³‡å™¨ç”¨ã€‚玄德è¬åˆ¥äºŒå®¢ï¼Œä¾¿å‘½è‰¯åŒ æ‰“é€ é›™è‚¡åŠã€‚é›²é•·é€ é’é¾åƒæœˆåˆ€ï¼Œåˆå冷豔鋸,é‡å…«åäºŒæ–¤ã€‚å¼µé£›é€ ä¸ˆå…«é»žé‹¼çŸ›ã€‚å„置全身鎧甲。共èšé„‰å‹‡äº”百餘人,來見鄒é–。鄒é–引見太守劉焉。三人åƒè¦‹ç•¢ï¼Œå„通姓å。玄德說起宗派,劉焉大喜,é‚èªçŽ„å¾·ç‚ºå§ªã€‚
-
-䏿•¸æ—¥ï¼Œäººå ±é»ƒå·¾è³Šå°‡ç¨‹é 志統兵五è¬ä¾†çŠ¯æ¶¿éƒ¡ã€‚åŠ‰ç„‰ä»¤é„’é–引玄德ç‰ä¸‰äººï¼Œçµ±å…µäº”百,å‰åŽ»ç ´æ•µã€‚çŽ„å¾·ç‰æ¬£ç„¶é ˜è»å‰é€²ï¼Œç›´è‡³å¤§èˆˆå±±ä¸‹ï¼Œèˆ‡è³Šç›¸è¦‹ã€‚賊眾皆披髮,以黃巾抹é¡ã€‚當下兩è»ç›¸å°ï¼ŒçŽ„å¾·å‡ºé¦¬ï¼Œãƒ¼å·¦æœ‰é›²é•·ï¼Œå³æœ‰ç¿¼å¾·ãƒ¼ï¼Œæšéžå¤§ç½µï¼šã€Œååœ‹é€†è³Šï¼Œä½•ä¸æ—©é™ï¼ã€
-
-程é 志大怒,é£å‰¯å°‡é„§èŒ‚出戰。張飛挺丈八蛇矛直出,手起處,刺ä¸é„§èŒ‚心窩,翻身è½é¦¬ã€‚程é 志見折了鄧茂,æ‹é¦¬èˆžåˆ€ï¼Œç›´å–張飛。雲長舞動大刀,縱馬飛迎。程é 志見了,早åƒä¸€é©šï¼›æŽªæ‰‹ä¸åŠï¼Œè¢«é›²é•·åˆ€èµ·è™•,æ®ç‚ºå…©æ®µã€‚後人有詩讚二人曰:
-
-英雄發穎在今æœï¼Œä¸€è©¦çŸ›å…®ä¸€è©¦åˆ€ã€‚åˆå‡ºä¾¿å°‡å¨åŠ›å±•ï¼Œä¸‰åˆ†å¥½æŠŠå§“åæ¨™ã€‚
-
-眾賊見程é 志被斬,皆倒戈而走。玄德æ®è»è¿½è¶•,投é™è€…ä¸è¨ˆå…¶æ•¸ï¼Œå¤§å‹è€Œå›žã€‚劉焉親自迎接,賞勞è»å£«ã€‚次日,接得é’州太守龔景牒文,言黃巾賊åœåŸŽå°‡é™·ï¼Œä¹žè³œæ•‘æ´ã€‚劉焉與玄德商è°ã€‚玄德曰:「備願往救之。ã€åŠ‰ç„‰ä»¤é„’é–將兵五åƒï¼ŒåŒçŽ„å¾·ï¼Œé—œï¼Œå¼µï¼ŒæŠ•é’州來。賊眾見救è»è‡³ï¼Œåˆ†å…µæ··æˆ°ã€‚玄德兵寡ä¸å‹ï¼Œé€€ä¸‰å里下寨。玄德謂關ã€å¼µæ›°ã€ã€Œè³Šçœ¾æˆ‘寡,必出奇兵,方å¯å–å‹ã€‚ã€ä¹ƒåˆ†é—œå…¬å¼•一åƒè»ä¼å±±å·¦ï¼Œå¼µé£›å¼•一åƒè»ä¼å±±å³ï¼Œé³´é‡‘為號,齊出接應。
-
-次日,玄德與鄒é–,引è»é¼“èŸè€Œé€²ã€‚賊眾迎戰,玄德引è»ä¾¿é€€ã€‚賊眾乘勢追趕,方éŽå±±å¶ºï¼Œçބ德è»ä¸ä¸€é½Šé³´é‡‘,左å³å…©è»é½Šå‡ºï¼ŒçŽ„å¾·éº¾è»å›žèº«å¾©æ®ºã€‚三路夾攻,賊眾大潰。直趕至é’州城下,太守龔景亦率民兵出城助戰。賊勢大敗,剿戮極多,é‚è§£é’州之åœã€‚後人有詩讚玄德曰:
-
-é‹ç±Œæ±ºç®—æœ‰ç¥žåŠŸï¼ŒäºŒè™Žé‚„é ˆéœä¸€é¾ã€‚åˆå‡ºä¾¿èƒ½åž‚å‰ç¸¾ï¼Œè‡ªæ‡‰åˆ†é¼Žåœ¨å¤çª®ã€‚
-
-龔景犒è»ç•¢ï¼Œé„’é–æ¬²å›žã€‚玄德曰:「近èžä¸éƒŽå°‡ç›§æ¤èˆ‡è³Šé¦–張角戰於廣宗,備昔曾師事盧æ¤ï¼Œæ¬²å¾€åŠ©ä¹‹ã€‚ã€æ–¼æ˜¯é„’é–引è»è‡ªå›žï¼ŒçŽ„å¾·èˆ‡é—œã€å¼µå¼•本部五百人投廣宗來。至盧æ¤è»ä¸ï¼Œå…¥å¸³æ–½ç¦®ï¼Œå…·é“來æ„。盧æ¤å¤§å–œï¼Œç•™åœ¨å¸³å‰è½èª¿ã€‚
-
-時張角賊眾å五è¬ï¼Œæ¤å…µäº”è¬ï¼Œç›¸æ‹’於廣宗,未見å‹è² 。æ¤è¬‚玄德曰:「我今åœè³Šåœ¨æ¤ï¼Œè³Šå¼Ÿå¼µæ¢ï¼Œå¼µå¯¶åœ¨æ½å·ï¼Œèˆ‡çš‡ç”«åµ©ã€æœ±é›‹å°å£˜ã€‚æ±å¯å¼•本部人馬,我更助æ±ä¸€åƒå®˜è»ï¼Œå‰åŽ»æ½å·æ‰“探消æ¯ï¼Œç´„期剿æ•。ã€çŽ„å¾·é ˜å‘½ï¼Œå¼•è»æ˜Ÿå¤œæŠ•æ½å·ä¾†ã€‚æ™‚çš‡ç”«åµ©ã€æœ±é›‹é ˜è»æ‹’賊,賊戰ä¸åˆ©ï¼Œé€€å…¥é•·ç¤¾ï¼Œä¾è‰çµç‡Ÿã€‚嵩與雋計曰:「賊ä¾è‰çµç‡Ÿï¼Œç•¶ç”¨ç«æ”»ä¹‹ã€‚ã€é‚令è»å£«ï¼Œæ¯äººæŸè‰ä¸€æŠŠï¼Œæš—地埋ä¼ã€‚其夜大風忽起。二更以後,一齊縱ç«ï¼Œåµ©èˆ‡é›‹å„引兵攻擊賊寨,ç«ç‡„張天,賊眾驚慌,馬ä¸åŠéžï¼Œäººä¸åŠç”²ï¼Œå››æ•£å¥”走。殺到天明,張æ¢ã€å¼µå¯¶å¼•敗殘è»å£«ï¼Œå¥ªè·¯è€Œèµ°ã€‚
-
-忽見一彪è»é¦¬ï¼Œç›¡æ‰“紅旗,當é 來到,截往去路。為首閃出一將,身長七尺,細眼長髯;官拜騎都尉;沛國è™éƒ¡äººä¹Ÿï¼šå§“æ›¹ï¼Œåæ“ï¼Œå—åŸå¾·ã€‚æ“父曹嵩,本姓å¤ä¾¯æ°ï¼›å› 為ä¸å¸¸ä¾æ›¹é¨°ä¹‹é¤Šå,故冒姓曹。曹嵩生æ“,å°å—阿瞞,一åå‰åˆ©ã€‚æ“幼時,好游çµï¼Œå–œæŒèˆžï¼›æœ‰æ¬Šè¬€ï¼Œå¤šæ©Ÿè®Šã€‚æ“æœ‰å”çˆ¶ï¼Œè¦‹æ“æ¸¸è•©ç„¡åº¦ï¼Œå˜—怒之,言於曹嵩。嵩責æ“。æ“忽心生一計:見å”父來,è©å€’於地,作ä¸é¢¨ä¹‹ç‹€ã€‚å”çˆ¶é©šå‘Šåµ©ï¼Œåµ©æ€¥è¦–ä¹‹ï¼Œæ“æ•…ç„¡æ™ã€‚嵩曰:「å”言æ±ä¸é¢¨ï¼Œä»Šå·±æ„ˆä¹Žï¼Ÿã€æ“曰:「兒自來無æ¤ç—…ï¼›å› å¤±æ„›æ–¼å”父,故見罔耳。ã€åµ©ä¿¡å…¶è¨€ã€‚後å”父但言æ“éŽï¼Œåµ©ä¸¦ä¸è½ã€‚å› æ¤ï¼Œæ“å¾—æ£æ„放蕩。
-
-æ™‚äººæœ‰æ©‹çŽ„è€…ï¼Œè¬‚æ“æ›°ï¼šã€Œå¤©ä¸‹å°‡äº‚,éžå‘½ä¸–之æ‰ï¼Œä¸èƒ½æ¿Ÿã€‚能安之者,其在å›ä¹Žï¼Ÿã€å—陽何顒見æ“,言:「漢室將亡,安天下者,必æ¤äººä¹Ÿã€‚ã€æ±å—許åŠï¼Œæœ‰çŸ¥äººä¹‹å。æ“å¾€è¦‹ä¹‹ï¼Œå•æ›°ï¼šã€Œæˆ‘何如人?ã€åŠä¸ç”。åˆå•ï¼ŒåŠæ›°ï¼šã€Œåæ²»ä¸–ä¹‹èƒ½è‡£ï¼Œäº‚ä¸–ä¹‹å¥¸é›„ä¹Ÿã€‚ã€æ“èžè¨€å¤§å–œã€‚年二å,舉å廉,為郎,除洛陽北都尉。åˆåˆ°ä»»ï¼Œå³è¨äº”色棒åé¤˜æ¢æ–¼ç¸£ä¹‹å››é–€ã€‚有犯ç¦è€…,ä¸é¿è±ªè²´ï¼Œçš†è²¬ä¹‹ã€‚ä¸å¸¸ä¾è¹‡ç¢©ä¹‹å”,æåˆ€å¤œè¡Œï¼Œæ“巡夜æ‹ä½ï¼Œå°±æ£’責之。由是,內外莫敢犯者,å¨åé —éœ‡ã€‚å¾Œç‚ºé “ä¸˜ä»¤ã€‚å› é»ƒå·¾èµ·ï¼Œæ‹œç‚ºé¨Žéƒ½å°‰ï¼Œå¼•é¦¬æ¥è»äº”åƒï¼Œå‰ä¾†æ½å·åŠ©æˆ°ã€‚æ£å€¼å¼µæ¢ã€å¼µå¯¶æ•—èµ°ï¼Œæ›¹æ“æ””ä½ï¼Œå¤§æ®ºä¸€é™£ï¼Œæ–¬é¦–è¬é¤˜ç´šï¼Œå¥ªå¾—æ——æ—›ã€é‡‘鼓馬匹極多。張æ¢ã€å¼µå¯¶æ»æˆ°å¾—脫。æ“見éŽçš‡ç”«åµ©ï¼Œæœ±é›‹ï¼Œéš¨å³å¼•兵追襲張æ¢ã€å¼µå¯¶åŽ»äº†ã€‚
-
-å»èªªçŽ„å¾·å¼•é—œã€å¼µä¾†æ½å·ï¼Œè½å¾—喊殺之è²ï¼Œåˆæœ›è¦‹ç«å…‰ç‡å¤©ï¼Œæ€¥å¼•兵來時,賊已敗散。玄德見皇甫嵩,朱雋,其é“ç›§æ¤ä¹‹æ„。嵩曰:「張æ¢ã€å¼µå¯¶å‹¢çª®åŠ›ä¹ï¼Œå¿…投廣宗去ä¾å¼µè§’。玄德å¯å³æ˜Ÿå¤œå¾€åŠ©ã€‚ã€
-
-çŽ„å¾·é ˜å‘½ï¼Œé‚引兵復回。到得åŠè·¯ï¼Œåªè¦‹ä¸€ç°‡è»é¦¬ï¼Œè·é€ä¸€è¼›æª»è»Šï¼Œè»Šä¸ä¹‹å›šï¼Œä¹ƒç›§æ¤ä¹Ÿã€‚玄德大驚,滾éžä¸‹é¦¬ï¼Œå•å…¶ç·£æ•…ã€‚æ¤æ›°ï¼šã€Œæˆ‘åœå¼µè§’,將次å¯ç ´ï¼›å› 角用妖術,未能å³å‹ã€‚æœå»·å·®é»ƒé–€å·¦è±å‰ä¾†é«”æŽ¢ï¼Œå•æˆ‘ç´¢å–è³„è³‚ã€‚æˆ‘ç”æ›°ï¼šã€Žè»ç³§å°šç¼ºï¼Œå®‰æœ‰é¤˜éŒ¢å¥‰æ‰¿å¤©ä½¿ï¼Ÿã€å·¦è±æŒ¾æ¨ï¼Œå›žå¥æœå»·ï¼Œèªªæˆ‘é«˜å£˜ä¸æˆ°ï¼Œæƒ°æ…¢è»å¿ƒï¼›å› æ¤æœå»·éœ‡æ€’,é£ä¸éƒŽå°‡è‘£å“ä¾†ä»£å°‡æˆ‘å…µï¼Œå–æˆ‘回京å•罪。ã€
-
-張飛è½ç½·ï¼Œå¤§æ€’ï¼Œè¦æ–¬è·é€è»äººï¼Œä»¥æ•‘ç›§æ¤ã€‚玄德急æ¢ä¹‹æ›°ï¼šã€Œæœå»·è‡ªæœ‰å…¬è«–,æ±è±ˆå¯é€ 次?ã€è»å£«ç°‡æ“ç›§æ¤åŽ»äº†ã€‚é—œå…¬æ›°ï¼šã€Œç›§ä¸éƒŽå·²è¢«é€®ï¼Œåˆ¥äººé ˜å…µï¼Œæˆ‘ç‰åŽ»ç„¡æ‰€ä¾ï¼Œä¸å¦‚且回涿郡。ã€çŽ„å¾·å¾žå…¶è¨€ï¼Œé‚引è»åŒ—行。
-
-行無二日,忽èžå±±å¾Œå–Šè²å¤§éœ‡ã€‚玄德引關ã€å¼µç¸±é¦¬ä¸Šé«˜å²¡æœ›ä¹‹ï¼Œè¦‹æ¼¢è»å¤§æ•—ï¼Œå¾Œé¢æ¼«å±±å¡žé‡Žï¼Œé»ƒå·¾è“‹åœ°è€Œä¾†ï¼Œæ——上大書「天公將è»ã€ã€‚玄德曰:「æ¤å¼µè§’也ï¼å¯é€Ÿæˆ°ï¼ã€
-
-三人飛馬引è»è€Œå‡ºã€‚å¼µè§’æ£æ®ºæ•—è‘£å“,乘勢趕來,忽é‡ä¸‰äººè¡æ®ºï¼Œè§’è»å¤§äº‚,敗走五å餘里。三人救了董å“回寨。å“å•三人ç¾å±…何è·ã€‚玄德曰:「白身。ã€å“甚輕之,ä¸ç‚ºç¦®ã€‚玄德出,張飛大怒曰:「我ç‰è¦ªèµ´è¡€æˆ°ï¼Œæ•‘了這å»ï¼Œä»–å»å¦‚æ¤ç„¡ç¦®ï¼›è‹¥ä¸æ®ºä¹‹ï¼Œé›£æ¶ˆæˆ‘æ°£ï¼ã€ä¾¿è¦æåˆ€å…¥å¸³ä¾†æ®ºè‘£å“ã€‚æ£æ˜¯ï¼šäººæƒ…勢利å¤çŒ¶ä»Šï¼Œèª°è˜è‹±é›„æ˜¯ç™½èº«ï¼Ÿå®‰å¾—å¿«äººå¦‚ç¿¼å¾·ï¼Œç›¡èª…ä¸–ä¸Šè² å¿ƒäººï¼ç•¢ç«Ÿè‘£å“性命如何,且看下文分解。
+ä»–ç«™ä½äº†ï¼Œè‡‰ä¸Šç¾å‡ºæ¡å–œå’Œæ·’æ¶¼çš„ç¥žæƒ…ï¼›å‹•è‘—å˜´å”‡ï¼Œå»æ²’有作è²ã€‚ä»–çš„æ…‹åº¦çµ‚æ–¼ææ•¬èµ·ä¾†äº†ï¼Œåˆ†æ˜Žçš„å«é“:
+"è€çˆºï¼â€¦â€¦"
+我似乎打了一個寒噤;我就知é“ï¼Œæˆ‘å€‘ä¹‹é–“å·²ç¶“éš”äº†ä¸€å±¤å¯æ‚²çš„厚障å£äº†ã€‚我也說ä¸å‡ºè©±ã€‚
+他回éŽé 去說,"水生,給è€çˆºç£•é 。"便拖出躲在背後的å©åä¾†ï¼Œé€™æ£æ˜¯ä¸€å€‹å»¿å¹´å‰çš„é–åœŸï¼Œåªæ˜¯é»ƒç˜¦äº›ï¼Œé ¸å上沒有銀圈罷了。"這是第五個å©å,沒有見éŽä¸–é¢ï¼Œèº²èº²é–ƒé–ƒâ€¦â€¦"
+æ¯è¦ªå’Œå®å…’樓來了,他們大約也è½åˆ°äº†è²éŸ³ã€‚
+"è€å¤ªå¤ªã€‚信是早收到了。我實在喜æ¡çš„ä¸å¾—了,知é“è€çˆºå›žä¾†â€¦â€¦"é–土說。
+"é˜¿ï¼Œä½ æ€Žçš„é€™æ¨£å®¢æ°£èµ·ä¾†ã€‚ä½ å€‘å…ˆå‰ä¸æ˜¯å“¥å¼Ÿç¨±å‘¼éº½ï¼Ÿé‚„是照舊:迅哥兒。"æ¯è¦ªé«˜èˆˆçš„說。
+"阿呀,è€å¤ªå¤ªçœŸæ˜¯â€¦â€¦é€™æˆä»€éº¼è¦çŸ©ã€‚那時是å©åï¼Œä¸æ‡‚事……"é–土說著,åˆå«æ°´ç”Ÿä¸Šä¾†æ‰“拱,那å©åå»å®³ç¾žï¼Œç·Šç·Šçš„åªè²¼åœ¨ä»–背後。
+"他就是水生?第五個?都是生人,怕生也難怪的;還是å®å…’和他去走走。"æ¯è¦ªèªªã€‚
+å®å…’è½å¾—這話,便來招水生,水生å»é¬†é¬†çˆ½çˆ½åŒä»–一路出去了。æ¯è¦ªå«é–土å,他é²ç–‘了一回,終於就了å,將長煙管é 在桌æ—,éžéŽç´™åŒ…來,說:
+"冬天沒什麼æ±è¥¿äº†ã€‚這一點乾é’豆倒是自家曬在那裡的,請è€çˆºâ€¦â€¦"
+我å•å•他的景æ³ã€‚ä»–åªæ˜¯æ–é 。
+"éžå¸¸é›£ã€‚第å…個å©å也會幫忙了,å»ç¸½æ˜¯åƒä¸å¤ ……åˆä¸å¤ªå¹³â€¦â€¦ä»€éº¼åœ°æ–¹éƒ½è¦éŒ¢ï¼Œæ²’有è¦å®šâ€¦â€¦æ”¶æˆåˆå£žã€‚種出æ±è¥¿ä¾†ï¼ŒæŒ‘åŽ»è³£ï¼Œç¸½è¦æå¹¾å›žéŒ¢ï¼ŒæŠ˜äº†æœ¬ï¼›ä¸åŽ»è³£ï¼Œåˆåªèƒ½çˆ›æŽ‰â€¦â€¦"
+ä»–åªæ˜¯æ–é ;臉上雖然刻著許多皺紋,å»å…¨ç„¶ä¸å‹•,仿佛石åƒä¸€èˆ¬ã€‚ä»–å¤§ç´„åªæ˜¯è¦ºå¾—苦,å»åˆå½¢å®¹ä¸å‡ºï¼Œæ²‰é»˜äº†ç‰‡æ™‚,便拿起煙管來默默的å¸ç…™äº†ã€‚
+æ¯è¦ªå•他,知é“ä»–çš„å®¶è£¡äº‹å‹™å¿™ï¼Œæ˜Žå¤©ä¾¿å¾—å›žåŽ»ï¼›åˆæ²’有åƒéŽåˆé£¯ï¼Œä¾¿å«ä»–自己到廚下炒飯åƒåŽ»ã€‚
+他出去了;æ¯è¦ªå’Œæˆ‘都嘆æ¯ä»–的景æ³ï¼šå¤šå,饑è’,苛稅,兵,匪,官,紳,都苦得他åƒä¸€å€‹æœ¨å¶äººäº†ã€‚æ¯è¦ªå°æˆ‘說,凡是ä¸å¿…æ¬èµ°çš„æ±è¥¿ï¼Œç›¡å¯ä»¥é€ä»–,å¯ä»¥è½ä»–è‡ªå·±åŽ»æ€æ“‡ã€‚
+下åˆï¼Œä»–æ€å¥½äº†å¹¾ä»¶æ±è¥¿ï¼šå…©æ¢é•·æ¡Œï¼Œå››å€‹æ¤…å,一副香çˆå’Œç‡è‡ºï¼Œä¸€æ¡¿æŠ¬ç§¤ã€‚ä»–åˆè¦æ‰€æœ‰çš„è‰ç°ï¼ˆæˆ‘們這裡煮飯是燒稻è‰çš„,那ç°ï¼Œå¯ä»¥åšæ²™åœ°çš„è‚¥æ–™ï¼‰ï¼Œå¾…æˆ‘å€‘å•Ÿç¨‹çš„æ™‚å€™ï¼Œä»–ç”¨èˆ¹ä¾†è¼‰åŽ»ã€‚
+夜間,我們åˆè«‡äº›é–‘天,都是無關緊è¦çš„è©±ï¼›ç¬¬äºŒå¤©æ—©æ™¨ï¼Œä»–å°±é ˜äº†æ°´ç”Ÿå›žåŽ»äº†ã€‚
+åˆéŽäº†ä¹æ—¥ï¼Œæ˜¯æˆ‘們啟程的日期。é–土早晨便到了,水生沒有åŒä¾†ï¼Œå»åªå¸¶è‘—一個五æ²çš„å¥³å…’ç®¡èˆ¹éš»ã€‚æˆ‘å€‘çµ‚æ—¥å¾ˆå¿™ç¢Œï¼Œå†æ²’有談天的工夫。來客也ä¸å°‘,有é€è¡Œçš„,有拿æ±è¥¿çš„,有é€è¡Œå…¼æ‹¿æ±è¥¿çš„ã€‚å¾…åˆ°å‚æ™šæˆ‘們上船的時候,這è€å±‹è£¡çš„æ‰€æœ‰ç ´èˆŠå¤§å°ç²—ç´°æ±è¥¿ï¼Œå·²ç¶“一掃而空了。
+我們的船å‘å‰èµ°ï¼Œå…©å²¸çš„é’山在黃æ˜ä¸ï¼Œéƒ½è£æˆäº†æ·±é»›é¡è‰²ï¼Œé€£è‘—退å‘船後梢去。
+å®å…’和我é 著船窗,åŒçœ‹å¤–颿¨¡ç³Šçš„風景,他忽然å•é“:
+"å¤§ä¼¯ï¼æˆ‘們什麼時候回來?"
+"å›žä¾†ï¼Ÿä½ æ€Žéº¼é‚„æ²’æœ‰èµ°å°±æƒ³å›žä¾†äº†ã€‚"
+"坿˜¯ï¼Œæ°´ç”Ÿç´„我到他家玩去咧……"ä»–çœè‘—大的黑眼ç›ï¼Œç™¡ç™¡çš„æƒ³ã€‚
+我和æ¯è¦ªä¹Ÿéƒ½æœ‰äº›æƒ˜ç„¶ï¼Œæ–¼æ˜¯åˆæèµ·é–土來。æ¯è¦ªèªªï¼Œé‚£è±†è…西施的楊二嫂,自從我家收拾行æŽä»¥ä¾†ï¼Œæœ¬æ˜¯æ¯æ—¥å¿…到的,å‰å¤©ä¼Šåœ¨ç°å †è£¡ï¼ŒæŽå‡ºå多個碗碟來,è°è«–之後,便定說是é–土埋著的,他å¯ä»¥åœ¨é‹ç°çš„æ™‚候,一齊æ¬å›žå®¶è£¡åŽ»ï¼›æ¥ŠäºŒå«‚ç™¼è¦‹äº†é€™ä»¶äº‹ï¼Œè‡ªå·±å¾ˆä»¥ç‚ºåŠŸï¼Œä¾¿æ‹¿äº†é‚£ç‹—æ°£æ®ºï¼ˆé€™æ˜¯æˆ‘å€‘é€™è£¡é¤Šé›žçš„å™¨å…·ï¼Œæœ¨ç›¤ä¸Šé¢æœ‰è‘—柵欄,內盛食料,雞å¯ä»¥ä¼¸é€²é ¸å去啄,狗å»ä¸èƒ½ï¼Œåªèƒ½çœ‹è‘—æ°£æ»ï¼‰ï¼Œé£›ä¹Ÿä¼¼çš„跑了,虧伊è£è‘—這麼高低的å°è…³ï¼Œç«Ÿè·‘得這樣快。
+è€å±‹é›¢æˆ‘愈é 了;故鄉的山水也都漸漸é 離了我,但我å»ä¸¦ä¸æ„Ÿåˆ°æ€Žæ¨£çš„留戀。我åªè¦ºå¾—æˆ‘å››é¢æœ‰çœ‹ä¸è¦‹çš„高牆,將我隔æˆå¤èº«ï¼Œä½¿æˆ‘éžå¸¸æ°£æ‚¶ï¼›é‚£è¥¿ç“œåœ°ä¸Šçš„éŠ€é …åœˆçš„å°è‹±é›„的影åƒï¼Œæˆ‘本來å分清楚,ç¾åœ¨å»å¿½åœ°æ¨¡ç³Šäº†ï¼Œåˆä½¿æˆ‘éžå¸¸çš„æ‚²å“€ã€‚
+æ¯è¦ªå’Œå®å…’都ç¡è‘—了。
+我躺著,è½èˆ¹åº•潺潺的水è²ï¼ŒçŸ¥é“我在走我的路。我想:我竟與é–土隔絕到這地æ¥äº†ï¼Œä½†æˆ‘們的後輩還是一氣,å®å…’䏿˜¯æ£åœ¨æƒ³å¿µæ°´ç”Ÿéº½ã€‚我希望他們ä¸å†åƒæˆ‘,åˆå¤§å®¶éš”膜起來……然而我åˆä¸é¡˜æ„ä»–å€‘å› ç‚ºè¦ä¸€æ°£ï¼Œéƒ½å¦‚我的辛苦展轉而生活,也ä¸é¡˜æ„他們都如é–土的辛苦麻木而生活,也ä¸é¡˜æ„都如別人的辛苦æ£ç¢è€Œç”Ÿæ´»ã€‚他們應該有新的生活,為我們所未經生活éŽçš„。
+我想到希望,忽然害怕起來了。é–土è¦é¦™çˆå’Œç‡è‡ºçš„æ™‚候,我還暗地裡笑他,以為他總是崇拜å¶åƒï¼Œä»€éº¼æ™‚候都ä¸å¿˜å»ã€‚ç¾åœ¨æˆ‘所謂希望,ä¸ä¹Ÿæ˜¯æˆ‘自己手製的å¶åƒéº½ï¼Ÿåªæ˜¯ä»–的願望切近,我的願望茫é 罷了。
+我在朦朧ä¸ï¼Œçœ¼å‰å±•é–‹ä¸€ç‰‡æµ·é‚Šç¢§ç¶ çš„æ²™åœ°ä¾†ï¼Œä¸Šé¢æ·±è—çš„å¤©ç©ºä¸æŽ›è‘—ä¸€è¼ªé‡‘é»ƒçš„åœ“æœˆã€‚æˆ‘æƒ³ï¼šå¸Œæœ›æœ¬æ˜¯ç„¡æ‰€è¬‚æœ‰ï¼Œç„¡æ‰€è¬‚ç„¡çš„ã€‚é€™æ£å¦‚地上的路;其實地上本沒有路,走的人多了,也便æˆäº†è·¯ã€‚
+è‡¨æ²³çš„åœŸå ´ä¸Šï¼Œå¤ªé™½æ¼¸æ¼¸çš„æ”¶äº†ä»–é€šé»ƒçš„å…‰ç·šäº†ã€‚å ´é‚Šé æ²³çš„çƒæ¡•æ¨¹è‘‰ï¼Œä¹¾å·´å·´çš„çº”å–˜éŽæ°£ä¾†ï¼Œå¹¾å€‹èŠ±è…³èšŠå在下é¢å“¼è‘—é£›èˆžã€‚é¢æ²³çš„農家的煙çªè£ï¼Œé€æ¼¸æ¸›å°‘了炊煙,女人å©å們都在自己門å£çš„åœŸå ´ä¸Šæ³¢äº›æ°´ï¼Œæ”¾ä¸‹å°æ¡Œå和矮凳;人知é“,這已經是晚飯的時候了。
+è€äººç”·äººå在矮凳上,æ–著大èŠè•‰æ‰‡é–‘談,å©åé£›ä¹Ÿä¼¼çš„è·‘ï¼Œæˆ–è€…è¹²åœ¨çƒæ¡•樹下è³çŽ©çŸ³å。女人端出çƒé»‘的蒸乾èœå’Œæ¾èŠ±é»ƒçš„ç±³é£¯ï¼Œç†±è“¬è“¬å†’ç…™ã€‚æ²³è£é§›éŽæ–‡äººçš„酒船,文豪見了,大發詩興,說:「無æ€ç„¡æ…®ï¼Œé€™çœŸæ˜¯ç”°å®¶æ¨‚呵ï¼ã€
+但文豪的話有些ä¸åˆäº‹å¯¦ï¼Œå°±å› 為他們沒有è½åˆ°ä¹æ–¤è€å¤ªçš„è©±ã€‚é€™æ™‚å€™ï¼Œä¹æ–¤è€å¤ªæ£åœ¨å¤§æ€’ï¼Œæ‹¿ç ´èŠè•‰æ‰‡æ•²è‘—凳腳說:
+「我活到七å乿²äº†ï¼Œæ´»å¤ 了,ä¸é¡˜æ„眼見這些敗家相,——還是æ»çš„好。立刻就è¦å–«é£¯äº†ï¼Œé‚„喫炒豆å,喫窮了一家åï¼ã€
+伊的曾å«å¥³å…’å…æ–¤æè‘—一把豆,æ£å¾žå°é¢è·‘來,見這情形,便直奔河邊,è—åœ¨çƒæ¡•樹後,伸出雙丫角的å°é ,大è²èªªï¼Œã€Œé€™è€ä¸æ»çš„ï¼ã€
+乿–¤è€å¤ªé›–然高壽,耳朵å»é‚„ä¸å¾ˆè¾ï¼Œä½†ä¹Ÿæ²’有è½åˆ°å©å的話,ä»èˆŠè‡ªå·±èªªï¼Œã€Œé€™çœŸæ˜¯ä¸€ä»£ä¸å¦‚一代ï¼ã€
+這æ‘莊的習慣有點特別,女人生下å©å,多喜æ¡ç”¨ç§¤ç¨±äº†è¼•é‡ï¼Œä¾¿ç”¨æ–¤æ•¸ç•¶ä½œå°åã€‚ä¹æ–¤è€å¤ªè‡ªå¾žæ…¶ç¥äº†äº”å大壽以後,便漸漸的變了ä¸å¹³å®¶ï¼Œå¸¸èªªä¼Šå¹´é’的時候,天氣沒有ç¾åœ¨é€™èˆ¬ç†±ï¼Œè±†å也沒有ç¾åœ¨é€™èˆ¬ç¡¬ï¼›ç¸½ä¹‹ç¾åœ¨çš„æ™‚世是ä¸å°äº†ã€‚何æ³å…斤比伊的曾祖,少了三斤,比伊父親七斤,åˆå°‘了一斤,這真是一æ¢é¡›æ’²ä¸ç ´çš„實例。所以伊åˆç”¨å‹èªªï¼Œã€Œé€™çœŸæ˜¯ä¸€ä»£ä¸å¦‚一代ï¼ã€
+ä¼Šçš„å…’åª³ä¸ƒæ–¤å«‚åæ£æ§è‘—é£¯ç±ƒèµ°åˆ°æ¡Œé‚Šï¼Œä¾¿å°‡é£¯ç±ƒåœ¨æ¡Œä¸Šä¸€æ‘”ï¼Œæ†¤æ†¤çš„èªªï¼Œã€Œä½ è€äººå®¶åˆé€™éº¼èªªäº†ã€‚å…æ–¤ç”Ÿä¸‹ä¾†çš„æ™‚å€™ï¼Œä¸æ˜¯å…æ–¤äº”å…©éº½ï¼Ÿä½ å®¶çš„ç§¤åˆæ˜¯ç§ç§¤ï¼ŒåŠ é‡ç¨±ï¼Œå八兩秤;用了準åå…ï¼Œæˆ‘å€‘çš„å…æ–¤è©²æœ‰ä¸ƒæ–¤å¤šå“©ã€‚我想便是太公和公公,也ä¸è¦‹å¾—æ£æ˜¯ä¹æ–¤å…«æ–¤å足,用的秤也許是å四兩……ã€
+「一代ä¸å¦‚一代ï¼ã€
+七斤嫂還沒有ç”話,忽然看見七斤從å°å··å£è½‰å‡ºï¼Œä¾¿ç§»äº†æ–¹å‘,å°ä»–åš·é“ï¼Œã€Œä½ é€™æ»å±æ€Žéº¼é€™æ™‚候纔回來,æ»åˆ°é‚£è£åŽ»äº†ï¼ä¸ç®¡äººå®¶ç‰è‘—ä½ é–‹é£¯ï¼ã€
+七斤雖然ä½åœ¨è¾²æ‘ï¼Œå»æ—©æœ‰äº›é£›é»ƒé¨°é”çš„æ„æ€ã€‚å¾žä»–çš„ç¥–çˆ¶åˆ°ä»–ï¼Œä¸‰ä»£ä¸æé‹¤é æŸ„了;他也照例的幫人æ’è‘—èˆªèˆ¹ï¼Œæ¯æ—¥ä¸€å›žï¼Œæ—©æ™¨å¾žé¯éŽ®é€²åŸŽï¼Œå‚æ™šåˆå›žåˆ°é¯éŽ®ï¼Œå› æ¤å¾ˆçŸ¥é“些時事:例如什麼地方,雷公劈æ»äº†èœˆèš£ç²¾ï¼›ä»€éº¼åœ°æ–¹ï¼Œé–¨å¥³ç”Ÿäº†ä¸€å€‹å¤œå‰ä¹‹é¡žã€‚他在æ‘人è£é¢ï¼Œçš„確已經是一åå‡ºå ´äººç‰©äº†ã€‚ä½†å¤å¤©å–«é£¯ä¸é»žç‡ˆï¼Œå»é‚„守著農家習慣,所以回家太é²ï¼Œæ˜¯è©²ç½µçš„。
+七斤一手æè‘—象牙嘴白銅斗å…尺多長的湘妃竹煙管,低著é ,慢慢地走來,ååœ¨çŸ®å‡³ä¸Šã€‚å…æ–¤ä¹Ÿè¶å‹¢æºœå‡ºï¼Œå在他身邊,å«ä»–爹爹。七斤沒有應。
+「一代ä¸å¦‚一代ï¼ã€ä¹æ–¤è€å¤ªèªªã€‚
+七斤慢慢地抬起é ä¾†ï¼Œå˜†ä¸€å£æ°£èªªï¼Œã€Œçš‡å¸å了é¾åºäº†ã€‚ã€
+七斤嫂呆了一刻,忽而æç„¶å¤§æ‚Ÿçš„é“,「這å¯å¥½äº†ï¼Œé€™ä¸æ˜¯åˆè¦çš‡æ©å¤§èµ¦äº†éº½ï¼ã€
+七斤åˆå˜†ä¸€å£æ°£ï¼Œèªªï¼Œã€Œæˆ‘沒有辮å。ã€
+「皇å¸è¦è¾®å麽?ã€
+「皇å¸è¦è¾®å。ã€
+ã€Œä½ æ€Žéº¼çŸ¥é“呢?ã€ä¸ƒæ–¤å«‚有些著急,趕忙的å•。
+「咸亨酒店è£çš„人,都說è¦çš„。ã€
+七斤嫂這時從直覺上覺得事情似乎有些ä¸å¦™äº†ï¼Œå› 為咸亨酒店是消æ¯éˆé€šçš„æ‰€åœ¨ã€‚伊一轉眼瞥見七斤的光é ,便å¿ä¸ä½å‹•怒,怪他æ¨ä»–怨他;忽然åˆçµ•望起來,è£å¥½ä¸€ç¢—飯,æ¡åœ¨ä¸ƒæ–¤çš„é¢å‰é“ï¼Œã€Œé‚„æ˜¯è¶•å¿«å–«ä½ çš„é£¯ç½·ï¼å“喪著臉,就會長出辮å來麽?ã€
+å¤ªé™½æ”¶ç›¡äº†ä»–æœ€æœ«çš„å…‰ç·šäº†ï¼Œæ°´é¢æš—æš—åœ°å›žè¦†éŽæ¶¼æ°£ä¾†ï¼›åœŸå ´ä¸Šä¸€ç‰‡ç¢—ç·è²éŸ¿ï¼Œäººäººçš„脊樑上åˆéƒ½å出汗粒。七斤嫂喫完三碗飯,å¶ç„¶æŠ¬èµ·é ,心åŽè£ä¾¿ç¦ä¸ä½çªçªåœ°ç™¼è·³ã€‚伊é€éŽçƒæ¡•葉,看見åˆçŸ®åˆèƒ–的趙七爺æ£å¾žç¨æœ¨æ©‹ä¸Šèµ°ä¾†ï¼Œè€Œä¸”穿著寶è—色竹布的長衫。
+趙七爺是鄰æ‘茂æºé…’åº—çš„ä¸»äººï¼Œåˆæ˜¯é€™ä¸‰åè£æ–¹åœ“以內的唯一的出色人物兼å¸å•å®¶ï¼›å› ç‚ºæœ‰å¸å•ï¼Œæ‰€ä»¥åˆæœ‰äº›éºè€çš„è‡å‘³ã€‚他有å多本金è–嘆批評的《三國志》,時常å著一個å—一個å—的讀;他ä¸ä½†èƒ½èªªå‡ºäº”虎將姓å,甚而至於還知é“é»ƒå¿ è¡¨å—æ¼¢æ˜‡å’Œé¦¬è¶…表å—åŸèµ·ã€‚é©å‘½ä»¥å¾Œï¼Œä»–便將辮åç›¤åœ¨é ‚ä¸Šï¼Œåƒé“士一般;常常嘆æ¯èªªï¼Œå€˜è‹¥è¶™åé¾åœ¨ä¸–ï¼Œå¤©ä¸‹ä¾¿ä¸æœƒäº‚到這地æ¥äº†ã€‚七斤嫂眼ç›å¥½ï¼Œæ—©æœ›è¦‹ä»Šå¤©çš„è¶™ä¸ƒçˆºå·²ç¶“ä¸æ˜¯é“士,å»è®Šæˆå…‰æ»‘é 皮,çƒé»‘é«®é ‚ï¼›ä¼Šä¾¿çŸ¥é“這一定是皇å¸å了é¾åºï¼Œè€Œä¸”ä¸€å®šé ˆæœ‰è¾®å,而且七斤一定是éžå¸¸å±éšªã€‚å› ç‚ºè¶™ä¸ƒçˆºçš„é€™ä»¶ç«¹å¸ƒé•·è¡«ï¼Œè¼•æ˜“æ˜¯ä¸å¸¸ç©¿çš„,三年以來,åªç©¿éŽå…©æ¬¡ï¼šä¸€æ¬¡æ˜¯å’Œä»–嘔氣的麻åé˜¿å››ç—…äº†çš„æ™‚å€™ï¼Œä¸€æ¬¡æ˜¯æ›¾ç¶“ç ¸çˆ›ä»–é…’åº—çš„é¯å¤§çˆºæ»äº†çš„æ™‚候;ç¾åœ¨æ˜¯ç¬¬ä¸‰æ¬¡äº†ï¼Œé€™ä¸€å®šåˆæ˜¯æ–¼ä»–有慶,於他的仇家有殃了。
+七斤嫂記得,兩年å‰ä¸ƒæ–¤å–醉了酒,曾經罵éŽè¶™ä¸ƒçˆºæ˜¯ã€Œè³¤èƒŽã€ï¼Œæ‰€ä»¥é€™æ™‚便立刻直覺到七斤的å±éšªï¼Œå¿ƒåŽè£çªçªåœ°ç™¼èµ·è·³ä¾†ã€‚
+趙七爺一路走來,å著喫飯的人都站起身,拿ç·å點著自己的飯碗說,「七爺,請在我們這è£ç”¨é£¯ï¼ã€ä¸ƒçˆºä¹Ÿä¸€è·¯é»žé ,說é“「請請ã€ï¼Œå»ä¸€å¾‘走到七斤家的桌æ—。七斤們連忙招呼,七爺也微笑著說「請請ã€ï¼Œä¸€é¢ç´°ç´°çš„ç ”ç©¶ä»–å€‘çš„é£¯èœã€‚
+「好香的èœä¹¾ï¼Œâ€”—è½åˆ°äº†é¢¨è²äº†éº½ï¼Ÿã€è¶™ä¸ƒçˆºç«™åœ¨ä¸ƒæ–¤çš„後é¢ä¸ƒæ–¤å«‚çš„å°é¢èªªã€‚
+「皇å¸å了é¾åºäº†ã€‚ã€ä¸ƒæ–¤èªªã€‚
+七斤嫂看著七爺的臉,ç«åŠ›é™ªç¬‘é“,「皇å¸å·²ç¶“å了é¾åºï¼Œå¹¾æ™‚皇æ©å¤§èµ¦å‘¢ï¼Ÿã€
+「皇æ©å¤§èµ¦ï¼Ÿâ€”—大赦是慢慢的總è¦å¤§èµ¦ç½·ã€‚ã€ä¸ƒçˆºèªªåˆ°é€™è£ï¼Œè²è‰²å¿½ç„¶åš´åŽ²èµ·ä¾†ï¼Œã€Œä½†æ˜¯ä½ å®¶ä¸ƒæ–¤çš„è¾®å呢,辮å?這倒是è¦ç·Šçš„äº‹ã€‚ä½ å€‘çŸ¥é“:長毛時候,留髮ä¸ç•™é ,留é ä¸ç•™é«®ï¼Œâ€¦â€¦ã€
+ä¸ƒæ–¤å’Œä»–çš„å¥³äººæ²’æœ‰è®€éŽæ›¸ï¼Œä¸å¾ˆæ‡‚得這å¤å…¸çš„奧妙,但覺得有å¸å•的七爺這麼說,事情自然éžå¸¸é‡å¤§ï¼Œç„¡å¯è¼“回,便仿佛å—了æ»åˆ‘宣告似的,耳朵è£å—¡çš„一è²ï¼Œå†ä¹Ÿèªªä¸å‡ºä¸€å¥è©±ã€‚
+「一代ä¸å¦‚一代,——ã€ä¹æ–¤è€å¤ªæ£åœ¨ä¸å¹³ï¼Œè¶é€™æ©Ÿæœƒï¼Œä¾¿å°è¶™ä¸ƒçˆºèªªï¼Œã€Œç¾åœ¨çš„é•·æ¯›ï¼Œåªæ˜¯å‰ªäººå®¶çš„è¾®å,僧ä¸åƒ§ï¼Œé“ä¸é“的。從å‰çš„長毛,這樣的麽?我活到七å乿²äº†ï¼Œæ´»å¤ 了。從å‰çš„長毛是——整匹的紅緞å裹é ,拖下去,拖下去,一直拖到腳跟;王爺是黃緞å,拖下去,黃緞å;紅緞å,黃緞å,—— æˆ‘æ´»å¤ äº†ï¼Œä¸ƒå乿²äº†ã€‚ã€
+七斤嫂站起身,自言自語的說,「這怎麼好呢?這樣的一çè€å°ï¼Œéƒ½é 他養活的人,……ã€
+趙七爺æ–é é“,「那也沒法。沒有辮å,該當何罪,書上都一æ¢ä¸€æ¢æ˜Žæ˜Žç™½ç™½å¯«è‘—的。ä¸ç®¡ä»–å®¶è£æœ‰äº›ä»€éº¼äººã€‚ã€
+七斤嫂è½åˆ°æ›¸ä¸Šå¯«è‘—,å¯çœŸæ˜¯å®Œå…¨çµ•æœ›äº†ï¼›è‡ªå·±æ€¥å¾—æ²’æ³•ï¼Œä¾¿å¿½ç„¶åˆæ¨åˆ°ä¸ƒæ–¤ã€‚伊用ç·å指著他的鼻尖說,「這æ»å±è‡ªä½œè‡ªå—ï¼é€ å的時候,我本來說,ä¸è¦æ’船了,ä¸è¦ä¸ŠåŸŽäº†ã€‚ä»–åè¦æ»é€²åŸŽåŽ»ï¼Œæ»¾é€²åŸŽåŽ»ï¼Œé€²åŸŽä¾¿è¢«äººå‰ªåŽ»äº†è¾®åã€‚å¾žå‰æ˜¯çµ¹å…‰çƒé»‘的辮å,ç¾åœ¨å¼„得僧ä¸åƒ§é“ä¸é“的。這囚徒自作自å—ï¼Œå¸¶ç´¯äº†æˆ‘å€‘åˆæ€Žéº¼èªªå‘¢ï¼Ÿé€™æ´»æ»å±çš„囚徒……ã€
+æ‘人看見趙七爺到æ‘,都趕緊喫完飯,èšåœ¨ä¸ƒæ–¤å®¶é£¯æ¡Œçš„周åœã€‚ä¸ƒæ–¤è‡ªå·±çŸ¥é“æ˜¯å‡ºå ´äººç‰©ï¼Œè¢«å¥³äººç•¶å¤§çœ¾é€™æ¨£è¾±ç½µï¼Œå¾ˆä¸é›…觀,便åªå¾—抬起é ,慢慢地說é“:
+ã€Œä½ ä»Šå¤©èªªç¾æˆè©±ï¼Œé‚£æ™‚ä½ â€¦â€¦ã€
+ã€Œä½ é€™æ´»æ»å±çš„囚徒……ã€
+看客ä¸é–“,八一嫂是心腸最好的人,抱著伊的兩周æ²çš„éºè…¹å,æ£åœ¨ä¸ƒæ–¤å«‚èº«é‚Šçœ‹ç†±é¬§ï¼›é€™æ™‚éŽæ„ä¸åŽ»ï¼Œé€£å¿™è§£å‹¸èªªï¼Œã€Œä¸ƒæ–¤å«‚ï¼Œç®—äº†ç½·ã€‚äººä¸æ˜¯ç¥žä»™ï¼Œèª°çŸ¥é“未來事呢?便是七斤嫂,那時ä¸ä¹Ÿèªªï¼Œæ²’有辮å倒也沒有什麼醜麽?æ³ä¸”衙門è£çš„大è€çˆºä¹Ÿé‚„沒有告示,……ã€
+七斤嫂沒有è½å®Œï¼Œå…©å€‹è€³æœµæ—©é€šç´…了;便將ç·å轉éŽå‘來,指著八一嫂的鼻å,說,「阿呀,這是什麼話呵ï¼å…«ä¸€å«‚,我自己看來倒還是一個人,會說出這樣æ˜èª•胡塗話麽?那時我是,整整å“äº†ä¸‰å¤©ï¼Œèª°éƒ½çœ‹è¦‹ï¼›é€£å…æ–¤é€™å°é¬¼ä¹Ÿéƒ½å“,……ã€å…æ–¤å‰›å–«å®Œä¸€å¤§ç¢—é£¯ï¼Œæ‹¿äº†ç©ºç¢—ï¼Œä¼¸æ‰‹åŽ»åš·è‘—è¦æ·»ã€‚ä¸ƒæ–¤å«‚æ£æ²’好氣,便用ç·å在伊的雙丫角ä¸é–“,直紮下去,大å–é“,「誰è¦ä½ 來多嘴ï¼ä½ 這巿¼¢çš„å°å¯¡å©¦ï¼ã€
+撲的一è²ï¼Œå…斤手è£çš„空碗è½åœ¨åœ°ä¸Šäº†ï¼Œæ°å·§åˆç¢°è‘—ä¸€å¡Šç£šè§’ï¼Œç«‹åˆ»ç ´æˆä¸€å€‹å¾ˆå¤§çš„缺å£ã€‚ä¸ƒæ–¤ç›´è·³èµ·ä¾†ï¼Œæ’¿èµ·ç ´ç¢—ï¼Œåˆä¸Šæª¢æŸ¥ä¸€å›žï¼Œä¹Ÿå–é“,「入娘的ï¼ã€ä¸€å·´æŽŒæ‰“å€’äº†å…æ–¤ã€‚å…æ–¤èººè‘—å“ï¼Œä¹æ–¤è€å¤ªæ‹‰äº†ä¼Šçš„æ‰‹ï¼Œé€£èªªè‘—「一代ä¸å¦‚一代ã€ï¼Œä¸€åŒèµ°äº†ã€‚
+八一嫂也發怒,大è²èªªï¼Œã€Œä¸ƒæ–¤å«‚ï¼Œä½ ã€Žæ¨æ£’打人ã€â€¦â€¦ã€
+趙七爺本來是笑著æ—觀的;但自從八一嫂說了「衙門è£çš„大è€çˆºæ²’有告示ã€é€™è©±ä»¥å¾Œï¼Œå»æœ‰äº›ç”Ÿæ°£äº†ã€‚這時他已經繞出桌æ—ï¼ŒæŽ¥è‘—èªªï¼Œã€Œã€Žæ¨æ£’打人ã€ï¼Œç®—什麼呢。大兵是就è¦åˆ°çš„ã€‚ä½ å¯çŸ¥é“,這回ä¿é§•的是張大帥,張大帥就是燕人張翼德的後代,他一支丈八蛇矛,就有è¬å¤«ä¸ç•¶ä¹‹å‹‡ï¼Œèª°èƒ½æŠµæ“‹ä»–?ã€ä»–å…©æ‰‹åŒæ™‚æèµ·ç©ºæ‹³ï¼Œä»¿ä½›æ¡è‘—無形的蛇矛模樣,å‘八一嫂æ¶é€²å¹¾æ¥é“ï¼Œã€Œä½ èƒ½æŠµæ“‹ä»–éº½ï¼ã€
+å…«ä¸€å«‚æ£æ°£å¾—抱著å©å發抖,忽然見趙七爺滿臉油汗,瞪著眼,準å°ä¼Šè¡éŽä¾†ï¼Œä¾¿ååˆ†å®³æ€•ï¼Œä¸æ•¢èªªå®Œè©±ï¼Œå›žèº«èµ°äº†ã€‚è¶™ä¸ƒçˆºä¹Ÿè·Ÿè‘—èµ°åŽ»ï¼Œçœ¾äººä¸€é¢æ€ªå…«ä¸€å«‚多事,一é¢è®“開路,幾個剪éŽè¾®å釿–°ç•™èµ·çš„便趕快躲在人å¢å¾Œé¢ï¼Œæ€•他看見。趙七爺也ä¸ç´°å¿ƒå¯Ÿè¨ªï¼Œé€šéŽäººå¢ï¼Œå¿½ç„¶è½‰å…¥çƒæ¡•樹後,說é“ã€Œä½ èƒ½æŠµæ“‹ä»–éº½ï¼ã€ è·¨ä¸Šç¨æœ¨æ©‹ï¼Œæšé•·åŽ»äº†ã€‚
+æ‘人們呆呆站著,心è£è¨ˆç®—,都覺得自己確乎抵ä¸ä½å¼µç¿¼å¾·ï¼Œå› æ¤ä¹Ÿæ±ºå®šä¸ƒæ–¤ä¾¿è¦æ²’有性命。七斤既然犯了皇法,想起他往常å°äººè«‡è«–城ä¸çš„æ–°èžçš„æ™‚候,就ä¸è©²å«è‘—長煙管顯出那般驕傲模樣,所以å°ä¸ƒæ–¤çš„犯法,也覺得有些暢快。他們也仿佛想發些è°è«–,å»åˆè¦ºå¾—沒有什麼è°è«–å¯ç™¼ã€‚嗡嗡的一陣亂嚷,蚊å都撞éŽèµ¤è†Šèº«åï¼Œé—–åˆ°çƒæ¡•樹下去åšå¸‚;他們也就慢慢地走散回家,關上門去ç¡è¦ºã€‚七斤嫂咕噥著,也收了傢伙和桌å矮凳回家,關上門ç¡è¦ºäº†ã€‚
+ä¸ƒæ–¤å°‡ç ´ç¢—æ‹¿å›žå®¶è£ï¼Œå在門檻上å¸ç…™ï¼›ä½†éžå¸¸æ†‚æ„,忘å»äº†å¸ç…™ï¼Œè±¡ç‰™å˜´å…尺多長湘妃竹煙管的白銅鬥è£çš„ç«å…‰ï¼Œæ¼¸æ¼¸ç™¼é»‘了。他心è£ä½†è¦ºå¾—事情似乎ååˆ†å±æ€¥ï¼Œä¹Ÿæƒ³æƒ³äº›æ–¹æ³•,想些計畫,但總是éžå¸¸æ¨¡ç³Šï¼Œè²«ç©¿ä¸å¾—:「辮å呢辮å?丈八蛇矛。一代ä¸å¦‚一代ï¼çš‡å¸åé¾åºã€‚ç ´çš„ç¢—é ˆå¾—ä¸ŠåŸŽåŽ»é‡˜å¥½ã€‚èª°èƒ½æŠµæ“‹ä»–ï¼Ÿæ›¸ä¸Šä¸€æ¢ä¸€æ¢å¯«è‘—。入娘的ï¼â€¦â€¦ã€
+第二日清晨,七斤ä¾èˆŠå¾žé¯éŽ®æ’èˆªèˆ¹é€²åŸŽï¼Œå‚æ™šå›žåˆ°é¯éŽ®ï¼Œåˆæ‹¿è‘—å…尺多長的湘妃竹煙管和一個飯碗回æ‘。他在晚飯å¸ä¸Šï¼Œå°ä¹æ–¤è€å¤ªèªªï¼Œé€™ç¢—是在城內釘åˆçš„ï¼Œå› ç‚ºç¼ºå£å¤§ï¼Œæ‰€ä»¥è¦åå…個銅釘,三文一個,一總用了四åå…«æ–‡å°éŒ¢ã€‚
+乿–¤è€å¤ªå¾ˆä¸é«˜èˆˆçš„說,「一代ä¸å¦‚ä¸€ä»£ï¼Œæˆ‘æ˜¯æ´»å¤ äº†ã€‚ä¸‰æ–‡éŒ¢ä¸€å€‹é‡˜ï¼›å¾žå‰çš„釘,這樣的麽?從å‰çš„釘是……我活了七å乿²äº†ï¼Œâ€”—ã€
+æ¤å¾Œä¸ƒæ–¤é›–然是照例日日進城,但家景總有些黯淡,æ‘人大抵迴é¿è‘—,ä¸å†ä¾†è½ä»–從城內得來的新èžã€‚ä¸ƒæ–¤å«‚ä¹Ÿæ²’æœ‰å¥½è²æ°£ï¼Œé‚„時常å«ä»–「囚徒ã€ã€‚
+éŽäº†å多日,七斤從城內回家,看見他的女人éžå¸¸é«˜èˆˆï¼Œå•ä»–èªªï¼Œã€Œä½ åœ¨åŸŽè£å¯è½åˆ°äº›ä»€éº¼ï¼Ÿã€
+「沒有è½åˆ°äº›ä»€éº¼ã€‚ã€
+「皇å¸å了é¾åºæ²’有呢?ã€
+「他沒有說。ã€
+「咸亨酒店è£ä¹Ÿæ²’有人說麽?ã€
+「也沒人說。ã€
+「我想皇å¸ä¸€å®šæ˜¯ä¸åé¾åºäº†ã€‚我今天走éŽè¶™ä¸ƒçˆºçš„店å‰ï¼Œçœ‹è¦‹ä»–åˆå著念書了,辮ååˆç›¤åœ¨é ‚上了,也沒有穿長衫。ã€
+「…………ã€
+ã€Œä½ æƒ³ï¼Œä¸åé¾åºäº†ç½·ï¼Ÿã€
+「我想,ä¸å了罷。ã€
+ç¾åœ¨çš„七斤,是七斤嫂和æ‘人åˆéƒ½æ—©çµ¦ä»–相當的尊敬,相當的待é‡äº†ã€‚到å¤å¤©ï¼Œä»–們ä»èˆŠåœ¨è‡ªå®¶é–€å£çš„åœŸå ´ä¸Šå–«é£¯ï¼›å¤§å®¶è¦‹äº†ï¼Œéƒ½ç¬‘å˜»å˜»çš„æ‹›å‘¼ã€‚ä¹æ–¤è€å¤ªæ—©å·²åšéŽå…«å大壽,ä»ç„¶ä¸å¹³è€Œä¸”å¥åº·ã€‚å…æ–¤çš„雙丫角,已經變æˆä¸€æ”¯å¤§è¾®å了;伊雖然新近裹腳,å»é‚„能幫åŒä¸ƒæ–¤å«‚åšäº‹ï¼Œæ§è‘—åå…«å€‹éŠ…é‡˜çš„é£¯ç¢—ï¼Œåœ¨åœŸå ´ä¸Šä¸€ç˜¤ä¸€æ‹çš„往來。
+星期日的早晨,我æåŽ»ä¸€å¼µéš”å¤œçš„æ—¥æ›†ï¼Œå‘著新的那一張上看了åˆçœ‹çš„說:
+â€œå•Šï¼Œåæœˆåæ—¥ï¼Œâ€”â€”ä»Šå¤©åŽŸä¾†æ£æ˜¯é›™å節。這è£å»ä¸€é»žæ²’有記載ï¼â€
+我的一ä½å‰è¼©å…ˆç”ŸN,æ£èµ°åˆ°æˆ‘的寓è£ä¾†è«‡é–‘天,一è½é€™è©±ï¼Œä¾¿å¾ˆä¸é«˜èˆˆçš„å°æˆ‘說:
+“他們å°ï¼ä»–們ä¸è¨˜å¾—ï¼Œä½ æ€Žæ¨£ä»–ï¼›ä½ è¨˜å¾—ï¼Œåˆæ€Žæ¨£å‘¢ï¼Ÿâ€
+這ä½N先生本來脾氣有點乖張,時常生些無謂的氣,說些ä¸é€šä¸–故的話。當這時候,我大抵任他自言自語,ä¸è´Šä¸€è¾ï¼›ä»–ç¨è‡ªç™¼å®Œè°è«–,也就算了。
+他說:
+“我最佩æœåŒ—京雙å節的情形。早晨,員è¦åˆ°é–€ï¼Œå©å’é“:『掛旗ï¼ã€ã€Žæ˜¯ï¼ŒæŽ›æ——ï¼ã€â€å„å®¶å¤§åŠæ‡¶æ´‹æ´‹çš„踱出一個國民來,撅起一塊斑é§é™¸é›¢çš„æ´‹å¸ƒã€‚這樣一直到夜,——收了旗關門;幾家å¶ç„¶å¿˜å»çš„,便掛到第二天的上åˆã€‚
+“他們忘å»äº†ç´€å¿µï¼Œç´€å¿µä¹Ÿå¿˜å»äº†ä»–們ï¼â€
+“我也是忘å»äº†ç´€å¿µçš„一個人。倘使紀念起來,那第一個雙å節å‰å¾Œçš„事,便都上我的心é ,使我åç«‹ä¸ç©©äº†ã€‚â€
+“多少故人的臉,都浮在我眼å‰ã€‚幾個少年辛苦奔走了å多年,暗地è£ä¸€é¡†å½ˆä¸¸è¦äº†ä»–的性命;幾個少年一擊ä¸ä¸ï¼Œåœ¨ç›£ç‰¢è£èº«å—一個多月的苦刑;幾個少年懷著é 志,忽然蹤影全無,連å±é¦–也ä¸çŸ¥é‚£è£åŽ»äº†ã€‚â€”â€”â€
+“他們都在社會的冷笑惡罵迫害傾陷è£éŽäº†ä¸€ç”Ÿï¼›ç¾åœ¨ä»–們的墳墓也早在忘å»è£æ¼¸æ¼¸å¹³å¡Œä¸‹åŽ»äº†ã€‚â€
+“我ä¸å ªç´€å¿µé€™äº›äº‹ã€‚â€
+“我們還是記起一點得æ„的事來談談å§ã€‚â€
+N忽然ç¾å‡ºç¬‘容,伸手在自己é 上一摸,高è²èªªï¼š
+“我最得æ„的是自從第一個雙å節以後,我在路上走,ä¸å†è¢«äººç¬‘駡了。â€
+“è€å…„ï¼Œä½ å¯çŸ¥é“é 髮是我們ä¸åœ‹äººçš„寶è²å’Œå†¤å®¶ï¼Œå¤ä»Šä¾†å¤šå°‘人在這上é åƒäº›æ¯«ç„¡åƒ¹å€¼çš„苦呵ï¼â€
+“我們的很å¤çš„å¤äººï¼Œå°æ–¼é 髮似乎也還看輕。據刑法看來,最è¦ç·Šçš„自然是腦袋,所以大辟是上刑;次è¦ä¾¿æ˜¯ç”Ÿæ®–器了,所以宮刑和幽閉也是一件嚇人的罰;至於髡,那是微乎其微了,然而推想起來,æ£ä¸çŸ¥é“æ›¾æœ‰å¤šå°‘äººå€‘å› ç‚ºå…‰è‘—é 皮便被社會è¸è¸äº†ä¸€ç”Ÿä¸–。â€
+“我們講é©å‘½çš„æ™‚候,大談什麼æšå·žä¸‰æ—¥ï¼Œå˜‰å®šå± 城,其實也ä¸éŽä¸€ç¨®æ‰‹æ®µï¼›è€å¯¦èªªï¼šé‚£æ™‚ä¸åœ‹äººçš„åæŠ—ï¼Œä½•å˜—å› ç‚ºäº¡åœ‹ï¼Œåªæ˜¯å› 為拖辮å。â€
+â€œé ‘æ®ºç›¡äº†ï¼Œéºè€éƒ½å£½çµ‚äº†ï¼Œè¾®åæ—©ç•™å®šäº†ï¼Œæ´ªæ¥Šåˆé¬§èµ·ä¾†äº†ã€‚æˆ‘çš„ç¥–æ¯æ›¾å°æˆ‘說,那時åšç™¾å§“æ‰é›£å“©ï¼Œå…¨ç•™è‘—é 髮的被官兵殺,還是辮å的便被長毛殺ï¼â€
+“我ä¸çŸ¥é“有多少ä¸åœ‹äººåªå› 為這ä¸ç—›ä¸ç™¢çš„é 髮而åƒè‹¦ï¼Œå—難,滅亡。â€
+N兩眼望著屋樑,似乎想些事,ä»ç„¶èªªï¼š
+“誰知é“é 髮的苦輪到我了。â€
+“我出去留å¸ï¼Œä¾¿å‰ªæŽ‰äº†è¾®å,這並沒有別的奧妙,åªç‚ºä»–ä¸å¤ªä¾¿ç•¶ç½·äº†ã€‚䏿–™æœ‰å¹¾ä½è¾®å盤在é é ‚ä¸Šçš„åŒå¸å€‘ä¾¿å¾ˆåŽæƒ¡æˆ‘;監ç£ä¹Ÿå¤§æ€’,說è¦åœäº†æˆ‘的官費,é€å›žä¸åœ‹åŽ»ã€‚â€
+“ä¸å¹¾å¤©ï¼Œé€™ä½ç›£ç£å»è‡ªå·±è¢«äººå‰ªåŽ»è¾®å逃走了。去剪的人們è£é¢ï¼Œä¸€å€‹ä¾¿æ˜¯åšã€Šé©å‘½è»ã€‹çš„é„’å®¹ï¼Œé€™äººä¹Ÿå› æ¤ä¸èƒ½å†ç•™å¸ï¼Œå›žåˆ°ä¸Šæµ·ä¾†ï¼Œå¾Œä¾†æ»åœ¨è¥¿ç‰¢è£ã€‚ä½ ä¹Ÿæ—©å¿˜å»äº†ç½·ï¼Ÿâ€
+“éŽäº†å¹¾å¹´ï¼Œæˆ‘的家景大ä¸å¦‚å‰äº†ï¼Œéžè¬€é»žäº‹åšä¾¿è¦å—餓,åªå¾—也回到ä¸åœ‹ä¾†ã€‚我一到上海,便買定一æ¢å‡è¾®å,那時是二元的市價,帶著回家。我的æ¯è¦ªå€’也ä¸èªªä»€éº¼ï¼Œç„¶è€Œæ—人一見é¢ï¼Œä¾¿éƒ½é¦–å…ˆç ”ç©¶é€™è¾®åï¼Œå¾…åˆ°çŸ¥é“æ˜¯å‡ï¼Œå°±ä¸€è²å†·ç¬‘,將我擬為殺é 的罪åï¼›æœ‰ä¸€ä½æœ¬å®¶ï¼Œé‚„é å‚™åŽ»å‘Šå®˜ï¼Œä½†å¾Œä¾†å› ç‚ºææ€•é©å‘½é»¨çš„é€ åæˆ–è€…è¦æˆåŠŸï¼Œé€™æ‰ä¸æ¢äº†ã€‚â€
+“我想,å‡çš„ä¸å¦‚真的直截爽快,我便索性廢了å‡è¾®å,穿著西è£åœ¨è¡—上走。â€
+“一路走去,一路便是笑駡的è²éŸ³ï¼Œæœ‰çš„還跟在後é¢ç½µï¼šã€Žé€™å†’失鬼ï¼ã€ã€Žå‡æ´‹é¬¼åï¼ã€â€
+“我於是ä¸ç©¿æ´‹æœäº†ï¼Œæ”¹äº†å¤§è¡«ï¼Œä»–們罵得更厲害。â€
+â€œåœ¨é€™æ—¥æš®é€”çª®çš„æ™‚å€™ï¼Œæˆ‘çš„æ‰‹è£æ‰æ·»å‡ºä¸€æ”¯æ‰‹æ–來,拚命的打了幾回,他們漸漸的ä¸ç½µäº†ã€‚åªæ˜¯èµ°åˆ°æ²’有打éŽçš„生地方還是罵。â€
+“這件事很使我悲哀,至今還時時記得哩。我在留å¸çš„æ™‚å€™ï¼Œæ›¾ç¶“çœ‹è¦‹æ—¥å ±ä¸Šç™»è¼‰ä¸€å€‹éŠæ·å—æ´‹å’Œä¸åœ‹çš„æœ¬å¤šåšå£«çš„事;這ä½åšå£«æ˜¯ä¸æ‡‚ä¸åœ‹å’Œé¦¬ä¾†èªžçš„,人å•ä»–ï¼Œä½ ä¸æ‡‚話,怎麼走路呢?他拿起手æ–ä¾†èªªï¼Œé€™ä¾¿æ˜¯ä»–å€‘çš„è©±ï¼Œä»–å€‘éƒ½æ‡‚ï¼æˆ‘å› æ¤æ°£æ†¤äº†å¥½å¹¾å¤©ï¼Œèª°çŸ¥é“我竟ä¸çŸ¥ä¸è¦ºçš„自己也åšäº†ï¼Œè€Œä¸”那些人都懂了。……â€
+“宣統åˆå¹´ï¼Œæˆ‘在本地的ä¸å¸æ ¡åšç›£å¸ï¼ŒåŒäº‹æ˜¯é¿ä¹‹æƒŸæä¸é ,官僚是防之惟æä¸åš´ï¼Œæˆ‘終日如å在冰窖åè£ï¼Œå¦‚ç«™åœ¨åˆ‘å ´æ—邊,其實並éžåˆ¥çš„,åªå› 為缺少了一æ¢è¾®åï¼â€
+“有一日,幾個å¸ç”Ÿå¿½ç„¶èµ°åˆ°æˆ‘的房è£ä¾†ï¼Œèªªï¼šã€Žå…ˆç”Ÿï¼Œæˆ‘們è¦å‰ªè¾®åäº†ã€‚ã€æˆ‘說:『ä¸è¡Œï¼ã€ã€Žæœ‰è¾®å好呢,沒有辮å好呢?ã€ã€Žæ²’有辮å好……ã€ã€Žä½ 怎麼說ä¸è¡Œå‘¢ï¼Ÿã€ã€ŽçНä¸ä¸Šï¼Œä½ 們還是ä¸å‰ªä¸Šç®—,——ç‰ä¸€ç‰ç½·ã€‚ã€â€ä»–們ä¸èªªä»€éº¼ï¼Œæ’…著嘴唇走出房去,然而終於剪掉了。
+“呵ï¼ä¸å¾—了了,人言嘖嘖了;我å»åªè£ä½œä¸çŸ¥é“,一任他們光著é 皮,和許多辮åä¸€é½Šä¸Šè¬›å ‚ã€‚â€
+“然而這剪辮病傳染了;第三天,師範å¸å ‚çš„å¸ç”Ÿå¿½ç„¶ä¹Ÿå‰ªä¸‹äº†å…æ¢è¾®å,晚上便開除了å…個å¸ç”Ÿã€‚這å…å€‹äººï¼Œç•™æ ¡ä¸èƒ½ï¼Œå›žå®¶ä¸å¾—,一直挨到第一個雙å節之後åˆä¸€å€‹å¤šæœˆï¼Œæ‰æ¶ˆåŽ»äº†çŠ¯ç½ªçš„ç«çƒ™å°ã€‚â€
+â€œæˆ‘å‘¢ï¼Ÿä¹Ÿä¸€æ¨£ï¼Œåªæ˜¯å…ƒå¹´å†¬å¤©åˆ°åŒ—京,還被人罵éŽå¹¾æ¬¡ï¼Œå¾Œä¾†ç½µæˆ‘的人也被員è¦å‰ªåŽ»äº†è¾®å,我就ä¸å†è¢«äººè¾±é§¡äº†ï¼›ä½†æˆ‘沒有到鄉間去。â€N顯出éžå¸¸å¾—æ„æ¨¡æ¨£ï¼Œå¿½è€Œåˆæ²‰ä¸‹è‡‰ä¾†ï¼šâ€œç¾åœ¨ä½ å€‘é€™äº›ç†æƒ³å®¶ï¼Œåˆåœ¨é‚£è£åš·ä»€éº¼å¥³å剪髮了,åˆè¦é€ 出許多毫無所得而痛苦的人ï¼â€â€œç¾åœ¨ä¸æ˜¯å·²ç¶“有剪掉é ç™¼çš„å¥³äººï¼Œå› æ¤è€ƒä¸é€²å¸æ ¡åŽ»ï¼Œæˆ–è€…è¢«å¸æ ¡é™¤äº†å麼?â€â€œæ”¹é©å˜›ï¼Œæ¦å™¨åœ¨é‚£è£ï¼Ÿå·¥è®€éº¼ï¼Œå·¥å» 在那è£ï¼Ÿâ€â€œä»ç„¶ç•™èµ·ï¼Œå«çµ¦äººå®¶åšåª³å©¦åŽ»ï¼šå¿˜å»äº†ä¸€åˆ‡é‚„是幸ç¦ï¼Œå€˜ä½¿ä¼Šè¨˜è‘—些平ç‰è‡ªç”±çš„話,便è¦è‹¦ç—›ä¸€ç”Ÿä¸–ï¼â€â€œæˆ‘è¦å€Ÿäº†é˜¿çˆ¾å¿—è·‹ç¶å¤«çš„話å•ä½ å€‘ï¼šã€Žä½ å€‘å°‡é»ƒé‡‘æ™‚ä»£çš„å‡ºç¾è±«ç´„給這些人們的åå«äº†ï¼Œä½†æœ‰ä»€éº¼çµ¦é€™äº›äººå€‘自己呢?ã€â€â€œå•Šï¼Œé€ ç‰©çš„çš®éžæ²’有到ä¸åœ‹çš„脊樑上時,ä¸åœ‹ä¾¿æ°¸é 是這一樣的ä¸åœ‹ï¼Œçµ•ä¸è‚¯è‡ªå·±æ”¹è®Šä¸€é𻿝«æ¯›ï¼â€â€œä½ å€‘çš„å˜´è£æ—¢ç„¶ä¸¦ç„¡æ¯’牙,何以åè¦åœ¨é¡ä¸Šå¸–起『è®è›‡ã€å…©å€‹å¤§å—,引乞ä¸ä¾†æ‰“殺?……â€N愈說愈離奇了,但一見到我ä¸å¾ˆé¡˜è½çš„神情,便立刻閉了å£ï¼Œç«™èµ·ä¾†å–帽å。我說:“回去麼?â€ä»–ç”é“:“是的,天è¦ä¸‹é›¨äº†ã€‚â€æˆ‘默默的é€ä»–到門å£ã€‚他戴上帽å說:“å†è¦‹ï¼è«‹ä½ æ•æˆ‘æ‰“æ”ªï¼Œå¥½åœ¨æ˜Žå¤©ä¾¿ä¸æ˜¯é›™å節,我們統å¯ä»¥å¿˜å»äº†ã€‚â€
+我從鄉下跑到京城è£ï¼Œä¸€è½‰çœ¼å·²ç¶“å…年了。其間耳èžç›®ç¹çš„æ‰€è¬‚國家大事,算起來也很ä¸å°‘;但在我心è£ï¼Œéƒ½ä¸ç•™ä»€éº¼ç—•è·¡ï¼Œå€˜è¦æˆ‘å°‹å‡ºé€™äº›äº‹çš„å½±éŸ¿ä¾†èªªï¼Œä¾¿åªæ˜¯å¢žé•·äº†æˆ‘的壞脾氣,——è€å¯¦èªªï¼Œä¾¿æ˜¯æ•™æˆ‘一天比一天的看ä¸èµ·äººã€‚
+但有一件å°äº‹ï¼Œå»æ–¼æˆ‘有æ„ç¾©ï¼Œå°‡æˆ‘å¾žå£žè„¾æ°£è£æ‹–開,使我至今忘記ä¸å¾—。
+這是民國å…年的冬天,大北風颳得æ£çŒ›ï¼Œæˆ‘å› ç‚ºç”Ÿè¨ˆé—œä¿‚ï¼Œä¸å¾—ä¸ä¸€æ—©åœ¨è·¯ä¸Šèµ°ã€‚一路幾乎é‡ä¸è¦‹äººï¼Œå¥½å®¹æ˜“æ‰é›‡å®šäº†ä¸€è¼›äººåŠ›è»Šï¼Œæ•™ä»–æ‹‰åˆ°S門去。ä¸ä¸€æœƒï¼ŒåŒ—風å°äº†ï¼Œè·¯ä¸Šæµ®å¡µæ—©å·²åˆ®æ·¨ï¼Œå‰©ä¸‹ä¸€æ¢æ½”白的大é“來,車夫也跑得更快。剛近S門,忽而車把上帶著一個人,慢慢地倒了。
+跌倒的是一個女人,花白é 髮,衣æœéƒ½å¾ˆç ´çˆ›ã€‚伊從馬路上çªç„¶å‘è»Šå‰æ©«æˆªéŽä¾†ï¼›è»Šå¤«å·²ç¶“讓開é“ï¼Œä½†ä¼Šçš„ç ´æ£‰èƒŒå¿ƒæ²’æœ‰ä¸Šæ‰£ï¼Œå¾®é¢¨å¹è‘—,å‘å¤–å±•é–‹ï¼Œæ‰€ä»¥çµ‚æ–¼å…œè‘—è»ŠæŠŠã€‚å¹¸è€Œè»Šå¤«æ—©æœ‰é»žåœæ¥ï¼Œå¦å‰‡ä¼Šå®šè¦æ ½ä¸€å€‹å¤§æ–¤æ–—,跌到é ç ´è¡€å‡ºäº†ã€‚
+伊ä¼åœ¨åœ°ä¸Šï¼›è»Šå¤«ä¾¿ä¹Ÿç«‹ä½è…³ã€‚我料定這è€å¥³äººä¸¦æ²’æœ‰å‚·ï¼Œåˆæ²’有別人看見,便很怪他多事,è¦è‡ªå·±æƒ¹å‡ºæ˜¯éžï¼Œä¹Ÿèª¤äº†æˆ‘的路。
+我便å°ä»–說,"æ²’æœ‰ä»€éº¼çš„ã€‚èµ°ä½ çš„ç½·ï¼"
+車夫毫ä¸ç†æœƒï¼Œâ€”—或者並沒有è½åˆ°ï¼Œâ€”â€”å»æ”¾ä¸‹è»Šå,扶那è€å¥³äººæ…¢æ…¢èµ·ä¾†ï¼Œæ”™è‘—臂膊立定,å•伊說:"ä½ æ€Žéº¼å•¦ï¼Ÿ""我摔壞了。"
+æˆ‘æƒ³ï¼Œæˆ‘çœ¼è¦‹ä½ æ…¢æ…¢å€’åœ°ï¼Œæ€Žéº¼æœƒæ‘”å£žå‘¢ï¼Œè£è…”ä½œå‹¢ç½·äº†ï¼Œé€™çœŸå¯æ†Žæƒ¡ã€‚è»Šå¤«å¤šäº‹ï¼Œä¹Ÿæ£æ˜¯è‡ªè¨Žè‹¦åƒï¼Œç¾åœ¨ä½ 自己想法去。
+車夫è½äº†é€™è€å¥³äººçš„è©±ï¼Œå»æ¯«ä¸èºŠèº‡ï¼Œä»ç„¶æ”™è‘—伊的臂膊,便一æ¥ä¸€æ¥çš„å‘å‰èµ°ã€‚我有些詫異,忙看å‰é¢ï¼Œæ˜¯ä¸€æ‰€å·¡è¦åˆ†é§æ‰€ï¼Œå¤§é¢¨ä¹‹å¾Œï¼Œå¤–é¢ä¹Ÿä¸è¦‹äººã€‚這車夫扶著那è€å¥³äººï¼Œä¾¿æ£æ˜¯å‘那大門走去。
+我這時çªç„¶æ„Ÿåˆ°ä¸€ç¨®ç•°æ¨£çš„æ„Ÿè¦ºï¼Œè¦ºå¾—他滿身ç°å¡µçš„å¾Œå½±ï¼Œå‰Žæ™‚é«˜å¤§äº†ï¼Œè€Œä¸”æ„ˆèµ°æ„ˆå¤§ï¼Œé ˆä»°è¦–æ‰è¦‹ã€‚è€Œä¸”ä»–å°æ–¼æˆ‘,漸漸的åˆå¹¾ä¹Žè®Šæˆä¸€ç¨®å¨å£“ï¼Œç”šè€Œè‡³æ–¼è¦æ¦¨å‡ºçš®è¢ä¸‹é¢è—è‘—çš„"å°"來。
+æˆ‘çš„æ´»åŠ›é€™æ™‚å¤§ç´„æœ‰äº›å‡æ»¯äº†ï¼Œåè‘—æ²’æœ‰å‹•ï¼Œä¹Ÿæ²’æœ‰æƒ³ï¼Œç›´åˆ°çœ‹è¦‹åˆ†é§æ‰€è£èµ°å‡ºä¸€å€‹å·¡è¦ï¼Œæ‰ä¸‹äº†è»Šã€‚
+å·¡è¦èµ°è¿‘我說,"ä½ è‡ªå·±é›‡è»Šç½·ï¼Œä»–ä¸èƒ½æ‹‰ä½ 了。"
+我沒有æ€ç´¢çš„å¾žå¤–å¥—è¢‹è£æŠ“å‡ºä¸€å¤§æŠŠéŠ…å…ƒï¼Œäº¤çµ¦å·¡è¦ï¼Œèªªï¼Œ"è«‹ä½ çµ¦ä»–â€¦â€¦"
+風全ä½äº†ï¼Œè·¯ä¸Šé‚„很éœã€‚æˆ‘èµ°è‘—ï¼Œä¸€é¢æƒ³ï¼Œå¹¾ä¹Žæ€•敢想到自己。以å‰çš„äº‹å§‘ä¸”æ“±èµ·ï¼Œé€™ä¸€å¤§æŠŠéŠ…å…ƒåˆæ˜¯ä»€éº¼æ„æ€ï¼ŸçŽä»–麼?我還能è£åˆ¤è»Šå¤«éº¼ï¼Ÿæˆ‘ä¸èƒ½å›žç”自己。
+這事到了ç¾åœ¨ï¼Œé‚„æ˜¯æ™‚æ™‚è¨˜èµ·ã€‚æˆ‘å› æ¤ä¹Ÿæ™‚æ™‚ç…žäº†è‹¦ç—›ï¼ŒåŠªåŠ›çš„è¦æƒ³åˆ°æˆ‘自己。幾年來的文治æ¦åŠ›ï¼Œåœ¨æˆ‘æ—©å¦‚å¹¼å°æ™‚候所讀éŽçš„"åæ›°è©©äº‘"一般,背ä¸ä¸ŠåŠå¥äº†ã€‚ç¨æœ‰é€™ä¸€ä»¶å°äº‹ï¼Œå»ç¸½æ˜¯æµ®åœ¨æˆ‘眼å‰ï¼Œæœ‰æ™‚åæ›´åˆ†æ˜Žï¼Œæ•™æˆ‘慚愧,催我自新,並且增長我的勇氣和希望。
+「沒有è²éŸ³ï¼Œâ€”â€”å°æ±è¥¿æ€Žäº†ï¼Ÿã€ç´…é¼»åè€æ‹±æ‰‹è£æ“Žäº†ä¸€ç¢—黃酒,說著,å‘é–“å£åŠªä¸€åŠªå˜´ã€‚è—皮阿五便放下酒碗,在他脊æ¢ä¸Šç”¨æ»å‹çš„æ‰“了一掌,å«å«ç³Šç³Šåš·é“ï¼šã€Œä½ â€¦â€¦ä½ ä½ åˆåœ¨æƒ³å¿ƒæ€ã€‚……ã€
+原來é¯éŽ®æ˜¯åƒ»éœåœ°æ–¹ï¼Œé‚„有些å¤é¢¨ï¼šä¸ä¸Šä¸€æ›´ï¼Œå¤§å®¶ä¾¿éƒ½é—œé–€ç¡è¦ºã€‚深更åŠå¤œæ²’有ç¡çš„åªæœ‰å…©å®¶ï¼šä¸€å®¶æ˜¯å’¸äº¨é…’店,幾個酒肉朋å‹åœè‘—櫃臺,åƒå–å¾—æ£é«˜èˆˆï¼›ä¸€å®¶ä¾¿æ˜¯é–“å£çš„單四嫂å,他自從å‰å¹´å®ˆäº†å¯¡ï¼Œä¾¿é ˆå°ˆé 著自己的一雙手紡出綿紗來,養活他自己和他三æ²çš„å…’å,所以ç¡çš„也é²ã€‚
+這幾天,確鑿沒有紡紗的è²éŸ³äº†ã€‚但夜深沒有ç¡çš„æ—¢ç„¶åªæœ‰å…©å®¶ï¼Œé€™å–®å››å«‚å家有è²éŸ³ï¼Œä¾¿è‡ªç„¶åªæœ‰è€æ‹±å€‘è½åˆ°ï¼Œæ²’有è²éŸ³ï¼Œä¹Ÿåªæœ‰è€æ‹±å€‘è½åˆ°ã€‚
+è€æ‹±æŒ¨äº†æ‰“,仿佛很舒æœä¼¼çš„å–了一大å£é…’ï¼Œå—šå—šçš„å”±èµ·å°æ›²ä¾†ã€‚
+é€™æ™‚å€™ï¼Œå–®å››å«‚åæ£æŠ±è‘—ä»–çš„å¯¶å…’ï¼Œå在床沿上,紡車éœéœçš„立在地上。黑沉沉的燈光,照著寶兒的臉,緋紅è£å¸¶ä¸€é»žé’。單四嫂å心è£è¨ˆç®—:神簽也求éŽäº†ï¼Œé¡˜å¿ƒä¹Ÿè¨±éŽäº†ï¼Œå–®æ–¹ä¹ŸåƒéŽäº†ï¼Œè¦æ˜¯é‚„ä¸è¦‹æ•ˆï¼Œæ€Žéº¼å¥½ï¼Ÿâ€”—那隻有去診何å°ä»™äº†ã€‚但寶兒也許是日輕夜é‡ï¼Œåˆ°äº†æ˜Žå¤©ï¼Œå¤ªé™½ä¸€å‡ºï¼Œç†±ä¹Ÿæœƒé€€ï¼Œæ°£å–˜ä¹Ÿæœƒå¹³çš„:這實在是病人常有的事。
+å–®å››å«‚åæ˜¯ä¸€å€‹ç²—ç¬¨å¥³äººï¼Œä¸æ˜Žç™½é€™ã€Œä½†ã€å—çš„å¯æ€•:許多壞事固然幸虧有了他æ‰è®Šå¥½ï¼Œè¨±å¤šå¥½äº‹å»ä¹Ÿå› 為有了他都弄糟。å¤å¤©å¤œçŸï¼Œè€æ‹±å€‘嗚嗚的唱完了ä¸å¤šæ™‚ï¼Œæ±æ–¹å·²ç¶“發白;ä¸ä¸€æœƒï¼Œçª—縫è£é€é€²äº†éŠ€ç™½è‰²çš„æ›™å…‰ã€‚
+單四嫂åç‰å€™å¤©æ˜Žï¼Œå»ä¸åƒåˆ¥äººé€™æ¨£å®¹æ˜“,覺得éžå¸¸ä¹‹æ…¢ï¼Œå¯¶å…’的一呼å¸ï¼Œå¹¾ä¹Žé•·éŽä¸€å¹´ã€‚ç¾åœ¨å±…然明亮了;天的明亮,壓倒了燈光,——看見寶兒的鼻翼,已經一放一收的扇動。
+單四嫂å知é“ä¸å¦™ï¼Œæš—æš—å«ä¸€è²ã€Œé˜¿å‘€ï¼ã€å¿ƒè£è¨ˆç®—ï¼šæ€Žéº¼å¥½ï¼Ÿåªæœ‰åŽ»è¨ºä½•å°ä»™é€™ä¸€æ¢è·¯äº†ã€‚他雖然是粗笨女人,心è£å»æœ‰æ±ºæ–·ï¼Œä¾¿ç«™èµ·èº«ï¼Œå¾žæœ¨æŸœå里æŽå‡ºæ¯å¤©ç¯€çœä¸‹ä¾†çš„å三個å°éŠ€å…ƒå’Œä¸€ç™¾å…«å銅錢,都è£åœ¨è¡£è¢‹é‡Œï¼ŒéŽ–ä¸Šé–€ï¼ŒæŠ±è‘—å¯¶å…’ç›´å‘何家奔éŽåŽ»ã€‚
+天氣還早,何家已經å著四個病人了。他摸出四角銀元,買了號簽,第五個輪到寶兒。何å°ä»™ä¼¸é–‹å…©å€‹æŒ‡é æŒ‰è„ˆï¼ŒæŒ‡ç”²è¶³æœ‰å››å¯¸å¤šé•·ï¼Œå–®å››å«‚åæš—地ç´ç½•,心è£è¨ˆç®—:寶兒該有活命了。但總å…ä¸äº†è‘—急,å¿ä¸ä½è¦å•,便局局促促的說:
+「先生,——我家的寶兒什麼病呀?ã€ã€Œä»–ä¸ç„¦å¡žè‘—。ã€ã€Œä¸å¦¨äº‹éº½ï¼Ÿä»–……ã€ã€Œå…ˆåŽ»åƒå…©å¸–。ã€ã€Œä»–å–˜ä¸éŽæ°£ä¾†ï¼Œé¼»ç¿…å都扇著呢。ã€é€™æ˜¯ç«å…‹é‡‘……ã€
+何å°ä»™èªªäº†åŠå¥è©±ï¼Œä¾¿é–‰ä¸Šçœ¼ç›ï¼›å–®å››å«‚å也ä¸å¥½æ„æ€å†å•。在何å°ä»™å°é¢å著的一個三å多æ²çš„äººï¼Œæ¤æ™‚已經開好一張藥方,指著紙角上的幾個å—說é“:
+「這第一味ä¿å¬°æ´»å‘½ä¸¸ï¼Œé ˆæ˜¯è³ˆå®¶æ¿Ÿä¸–è€åº—æ‰æœ‰ï¼ã€å–®å››å«‚åæŽ¥éŽè—¥æ–¹ï¼Œä¸€é¢èµ°ï¼Œä¸€é¢æƒ³ã€‚他雖是粗笨女人,å»çŸ¥é“何家與濟世è€åº—èˆ‡è‡ªå·±çš„å®¶ï¼Œæ£æ˜¯ä¸€å€‹ä¸‰è§’點;自然是買了藥回去便宜了。於是åˆå¾‘呿¿Ÿä¸–è€åº—奔éŽåŽ»ã€‚åº—å¤¥ä¹Ÿç¿¹äº†é•·æŒ‡ç”²æ…¢æ…¢çš„çœ‹æ–¹ï¼Œæ…¢æ…¢çš„åŒ…è—¥ã€‚å–®å››å«‚åæŠ±äº†å¯¶å…’ç‰è‘—ï¼›å¯¶å…’å¿½ç„¶æ“Žèµ·å°æ‰‹ä¾†ï¼Œç”¨åŠ›æ‹”ä»–æ•£äº‚è‘—çš„ä¸€ç¶¹é é«®ï¼Œé€™æ˜¯å¾žä¾†æ²’æœ‰çš„èˆ‰å‹•ï¼Œå–®å››å«‚åæ€•得發怔。
+å¤ªé™½æ—©å‡ºäº†ã€‚å–®å››å«‚åæŠ±äº†å©å,帶著藥包,越走覺得越é‡ï¼›å©ååˆä¸ä½çš„æŽ™æ‰Žï¼Œè·¯ä¹Ÿè¦ºå¾—越長。沒奈何å在路æ—一家公館的門檻上,休æ¯äº†ä¸€æœƒï¼Œè¡£æœæ¼¸æ¼¸çš„冰著肌膚,æ‰çŸ¥é“自己出了一身汗;寶兒å»ä»¿ä½›ç¡è‘—了。他å†èµ·ä¾†æ…¢æ…¢åœ°èµ°ï¼Œä»ç„¶æ”¯æ’ä¸å¾—,耳朵邊忽然è½å¾—人說:
+「單四嫂åï¼Œæˆ‘æ›¿ä½ æŠ±å‹ƒç¾…ï¼ã€ä¼¼ä¹Žæ˜¯è—皮阿五的è²éŸ³ã€‚
+他抬é çœ‹æ™‚ï¼Œæ£æ˜¯è—皮阿五,ç¡çœ¼æœ¦æœ§çš„跟著他走。
+單四嫂å在這時候,雖然很希望é™ä¸‹ä¸€å“¡å¤©å°‡ï¼ŒåŠ©ä»–ä¸€è‡‚ä¹‹åŠ›ï¼Œå»ä¸é¡˜æ˜¯é˜¿äº”ã€‚ä½†é˜¿äº”æœ‰äº›ä¿ æ°£ï¼Œç„¡è«–å¦‚ä½•ï¼Œç¸½æ˜¯åè¦å¹«å¿™ï¼Œæ‰€ä»¥æŽ¨è®“了一會,終於得了許å¯äº†ã€‚他便伸開臂膊,從單四嫂å的乳房和å©å之間,直伸下去,抱去了å©å。單四嫂å便覺乳房上發了一æ¢ç†±ï¼Œå‰Žæ™‚é–“ç›´ç†±åˆ°è‡‰ä¸Šå’Œè€³æ ¹ã€‚
+他們兩人離開了二尺五寸多地,一åŒèµ°è‘—。阿五說些話,單四嫂åå»å¤§åŠæ²’有ç”。走了ä¸å¤šæ™‚候,阿五åˆå°‡å©å還給他,說是昨天與朋å‹ç´„定的åƒé£¯æ™‚候到了;單四嫂å便接了å©å。幸而ä¸é 便是家,早看見å°é–€çš„王ä¹åª½åœ¨è¡—邊å著,é é 地說話:
+「單四嫂å,å©å怎了?——看éŽå…ˆç”Ÿäº†éº½ï¼Ÿã€ã€Œçœ‹æ˜¯çœ‹äº†ã€‚——王ä¹åª½ï¼Œä½ 有年紀,見的多,ä¸å¦‚è«‹ä½ è€æ³•眼看一看,怎樣……ã€ã€Œå””……ã€ã€Œæ€Žæ¨£â€¦â€¦ï¼Ÿã€ã€Œå””……ã€çŽ‹ä¹åª½ç«¯è©³äº†ä¸€ç•ªï¼ŒæŠŠé 點了兩點,æ–了兩æ–。
+寶兒åƒä¸‹è—¥ï¼Œå·²ç¶“是åˆå¾Œäº†ã€‚單四嫂å留心看他神情,似乎仿佛平穩了ä¸å°‘;到得下åˆï¼Œå¿½ç„¶çœé–‹çœ¼å«ä¸€è²ã€Œåª½ï¼ã€åˆä»ç„¶åˆä¸Šçœ¼ï¼Œåƒæ˜¯ç¡åŽ»äº†ã€‚ä»–ç¡äº†ä¸€åˆ»ï¼Œé¡ä¸Šé¼»å°–都æ²å‡ºä¸€ç²’一粒的汗ç ,單四嫂åè¼•è¼•ä¸€æ‘¸ï¼Œè† æ°´èˆ¬ç²˜è‘—æ‰‹ï¼›æ…Œå¿™åŽ»æ‘¸èƒ¸å£ï¼Œä¾¿ç¦ä¸ä½å—šå’½èµ·ä¾†ã€‚
+寶兒的呼å¸å¾žå¹³ç©©åˆ°æ²’有,單四嫂åçš„è²éŸ³ä¹Ÿå°±å¾žå—šå’½è®Šæˆè™Ÿå••。這時èšé›†äº†å¹¾å †äººï¼šé–€å…§æ˜¯çŽ‹ä¹åª½è—çš®é˜¿äº”ä¹‹é¡žï¼Œé–€å¤–æ˜¯å’¸äº¨çš„æŽŒæŸœå’Œç´…é¼»è€æ‹±ä¹‹é¡žã€‚王ä¹åª½ä¾¿ç™¼å‘½ä»¤ï¼Œç‡’了一串紙錢;åˆå°‡å…©æ¢æ¿å‡³å’Œäº”ä»¶è¡£æœä½œæŠµï¼Œæ›¿å–®å››å«‚å借了兩塊洋錢,給幫忙的人備飯。
+第一個å•題是棺木。單四嫂å還有一副銀耳環和一支裹金的銀簪,都交給了咸亨的掌柜,托他作一個ä¿ï¼ŒåŠç¾åŠè³’的買一具棺木。è—皮阿五也伸出手來,很願æ„自告奮勇;王ä¹åª½å»ä¸è¨±ä»–,åªå‡†ä»–明天抬棺æçš„差使,阿五罵了一è²ã€Œè€ç•œç”Ÿã€ï¼Œæ€æ€çš„åŠªäº†å˜´ç«™è‘—ã€‚æŽŒæŸœä¾¿è‡ªåŽ»äº†ï¼›æ™šä¸Šå›žä¾†ï¼Œèªªæ£ºæœ¨é ˆå¾—ç¾åšï¼Œå¾ŒåŠå¤œæ‰æˆåŠŸã€‚
+掌柜回來的時候,幫忙的人早åƒéŽé£¯ï¼›å› 為é¯éŽ®é‚„æœ‰äº›å¤é¢¨ï¼Œæ‰€ä»¥ä¸ä¸Šä¸€æ›´ï¼Œä¾¿éƒ½å›žå®¶ç¡è¦ºäº†ã€‚åªæœ‰é˜¿äº”é‚„é 著咸亨的櫃臺å–é…’ï¼Œè€æ‹±ä¹Ÿå—šå—šçš„唱。
+這時候,單四嫂åå在床沿上å“著,寶兒在床上躺著,紡車éœéœçš„在地上立著。許多工夫,單四嫂å的眼淚宣告完çµäº†ï¼Œçœ¼ç›å¼µå¾—很大,看看四é¢çš„æƒ…å½¢ï¼Œè¦ºå¾—å¥‡æ€ªï¼šæ‰€æœ‰çš„éƒ½æ˜¯ä¸æœƒæœ‰çš„事。他心è£è¨ˆç®—:ä¸éŽæ˜¯å¤¢ç½·äº†ï¼Œé€™äº›äº‹éƒ½æ˜¯å¤¢ã€‚明天醒éŽä¾†ï¼Œè‡ªå·±å¥½å¥½çš„ç¡åœ¨åºŠä¸Šï¼Œå¯¶å…’也好好的ç¡åœ¨è‡ªå·±èº«é‚Šã€‚他也醒éŽä¾†ï¼Œå«ä¸€è²ã€Œåª½ã€ï¼Œç”Ÿé¾æ´»è™Žä¼¼çš„跳去玩了。
+è€æ‹±çš„æŒè²æ—©ç¶“寂éœï¼Œå’¸äº¨ä¹Ÿç†„了燈。單四嫂å張著眼,總ä¸ä¿¡æ‰€æœ‰çš„事。——雞也å«äº†ï¼›æ±æ–¹æ¼¸æ¼¸ç™¼ç™½ï¼Œçª—縫è£é€é€²äº†éŠ€ç™½è‰²çš„æ›™å…‰ã€‚
+éŠ€ç™½çš„æ›™å…‰åˆæ¼¸æ¼¸é¡¯å‡ºç·‹ç´…,太陽光接著照到屋脊。單四嫂å張著眼,呆呆åè‘—ï¼›è½å¾—打門è²éŸ³ï¼Œæ‰åƒäº†ä¸€åš‡ï¼Œè·‘出去開門。門外一個ä¸èªè˜çš„人,背了一件æ±è¥¿ï¼›å¾Œé¢ç«™è‘—王ä¹åª½ã€‚
+哦,他們背了棺æä¾†äº†ã€‚
+下åŠå¤©ï¼Œæ£ºæœ¨æ‰åˆä¸Šè“‹ï¼šå› 為單四嫂åå“一回,看一回,總ä¸è‚¯æ»å¿ƒå¡Œåœ°çš„蓋上;幸虧王ä¹åª½ç‰å¾—ä¸è€ç…©ï¼Œæ°£æ†¤æ†¤çš„跑上å‰ï¼Œä¸€æŠŠæ‹–開他,æ‰ä¸ƒæ‰‹å…«è…³çš„蓋上了。
+但單四嫂åå¾…ä»–çš„å¯¶å…’ï¼Œå¯¦åœ¨å·²ç¶“ç›¡äº†å¿ƒï¼Œå†æ²’有什麼缺陷。昨天燒éŽä¸€ä¸²ç´™éŒ¢ï¼Œä¸Šåˆåˆç‡’了四å乿²ã€Šå¤§æ‚²å’’ã€‹ï¼›æ”¶æ–‚çš„æ™‚å€™ï¼Œçµ¦ä»–ç©¿ä¸Šé ‚æ–°çš„è¡£è£³ï¼Œå¹³æ—¥å–œæ¡çš„玩æ„å…’ï¼Œâ€”â€”ä¸€å€‹æ³¥äººï¼Œå…©å€‹å°æœ¨ç¢—ï¼Œå…©å€‹çŽ»ç’ƒç“¶ï¼Œâ€”â€”éƒ½æ”¾åœ¨æž•é æ—邊。後來王ä¹åª½æŽè‘—指é å細推敲,也終於想ä¸å‡ºä¸€äº›ä»€éº¼ç¼ºé™·ã€‚
+這日里,è—皮阿五簡直整天沒有到;咸亨掌柜便替單四嫂å雇了兩å腳夫,æ¯å二百å¦å個大錢,抬棺木到義冢地上安放。王ä¹åª½åˆå¹«ä»–ç…®äº†é£¯ï¼Œå‡¡æ˜¯å‹•éŽæ‰‹é–‹éŽå£çš„人都åƒäº†é£¯ã€‚太陽漸漸顯出è¦è½å±±çš„é¡è‰²ï¼›åƒéŽé£¯çš„人也ä¸è¦ºéƒ½é¡¯å‡ºè¦å›žå®¶çš„é¡è‰²ï¼Œâ€”—於是他們終於都回了家。
+單四嫂å很覺得é çœ©ï¼Œæ‡æ¯äº†ä¸€æœƒï¼Œå€’居然有點平穩了。但他接連著便覺得很異樣:é‡åˆ°äº†å¹³ç”Ÿæ²’有é‡åˆ°éŽçš„事,ä¸åƒæœƒæœ‰çš„事,然而的確出ç¾äº†ã€‚ä»–è¶Šæƒ³è¶Šå¥‡ï¼Œåˆæ„Ÿåˆ°ä¸€ä»¶ç•°æ¨£çš„事——這屋å忽然太éœäº†ã€‚
+他站起身,點上燈ç«ï¼Œå±‹å越顯得éœã€‚ä»–æ˜æ˜çš„走去關上門,回來å在床沿上,紡車éœéœçš„立在地上。他定一定神,四é¢ä¸€çœ‹ï¼Œæ›´è¦ºå¾—åç«‹ä¸å¾—,屋åä¸ä½†å¤ªéœï¼Œè€Œä¸”也太大了,æ±è¥¿ä¹Ÿå¤ªç©ºäº†ã€‚太大的屋å四麵包åœè‘—他,太空的æ±è¥¿å››é¢å£“著他,å«ä»–喘氣ä¸å¾—。
+ä»–ç¾åœ¨çŸ¥é“他的寶兒確乎æ»äº†ï¼›ä¸é¡˜æ„見這屋å,å¹ç†„了燈,躺著。他一é¢å“ï¼Œä¸€é¢æƒ³ï¼šæƒ³é‚£æ™‚候,自己紡著棉紗,寶兒å在身邊åƒèŒ´é¦™è±†ï¼Œçžªè‘—一雙å°é»‘çœ¼ç›æƒ³äº†ä¸€åˆ»ï¼Œä¾¿èªªï¼Œã€Œåª½ï¼çˆ¹è³£é¤›é£©ï¼Œæˆ‘å¤§äº†ä¹Ÿè³£é¤›é£©ï¼Œè³£è¨±å¤šè¨±å¤šéŒ¢ï¼Œâ€”â€”æˆ‘éƒ½çµ¦ä½ ã€‚ã€é‚£æ™‚å€™ï¼ŒçœŸæ˜¯é€£ç´¡å‡ºçš„æ£‰ç´—ï¼Œä¹Ÿä»¿ä½›å¯¸å¯¸éƒ½æœ‰æ„æ€ï¼Œå¯¸å¯¸éƒ½æ´»è‘—。但ç¾åœ¨æ€Žéº¼äº†ï¼Ÿç¾åœ¨çš„事,單四嫂åå»å¯¦åœ¨æ²’有想到什麼。——我早經說éŽï¼šä»–是粗笨女人。他能想出什麼呢?他單覺得這屋å太éœï¼Œå¤ªå¤§ï¼Œå¤ªç©ºç½·äº†ã€‚
+但單四嫂å雖然粗笨,å»çŸ¥é“還邿˜¯ä¸èƒ½æœ‰çš„事,他的寶兒也的確ä¸èƒ½å†è¦‹äº†ã€‚å˜†ä¸€å£æ°£ï¼Œè‡ªè¨€è‡ªèªžçš„èªªï¼Œã€Œå¯¶å…’ï¼Œä½ è©²é‚„åœ¨é€™è£ï¼Œä½ 給我夢è£è¦‹è¦‹ç½·ã€‚ã€æ–¼æ˜¯åˆä¸Šçœ¼ï¼Œæƒ³è¶•å¿«ç¡åŽ»ï¼Œæœƒä»–çš„å¯¶å…’ï¼Œè‹¦è‹¦çš„å‘¼å¸é€šéŽäº†éœå’Œå¤§å’Œç©ºè™›ï¼Œè‡ªå·±è½å¾—明白。
+單四嫂å終於朦朦朧朧的走入ç¡é„‰ï¼Œå…¨å±‹å都很éœã€‚這時紅鼻åè€æ‹±çš„å°æ›²ï¼Œä¹Ÿæ—©ç¶“唱完;蹌蹌踉踉出了咸亨,å»åˆæå°–了喉嚨,唱é“:
+「我的冤家呀ï¼â€”â€”å¯æ†ä½ ,——å¤å¦å¦çš„……ã€
+è—皮阿五便伸手æªä½äº†è€æ‹±çš„è‚©é ,兩個人七æªå…«æ–œçš„ç¬‘è‘—æ“ è‘—èµ°åŽ»ã€‚
+單四嫂志©ç¡è‘—äº†ï¼Œè€æ‹±å€‘也走了,咸亨也關上門了。這時的é¯éŽ®ï¼Œä¾¿å®Œå…¨è½åœ¨å¯‚éœé‡Œã€‚åªæœ‰é‚£æš—å¤œç‚ºæƒ³è®Šæˆæ˜Žå¤©ï¼Œå»ä»åœ¨é€™å¯‚éœé‡Œå¥”æ³¢ï¼›å¦æœ‰å¹¾æ¢ç‹—,也躲在暗地è£å—šå—šçš„å«ã€‚
+陳士æˆçœ‹éŽç¸£è€ƒçš„æ¦œã€å›žåˆ°å®¶è£çš„æ™‚候,已經是下åˆäº†ã€‚他去得本很早,一見榜,便先在這上é¢å°‹é™³å—。陳å—也ä¸å°‘,似乎也都çˆå…ˆæå¾Œçš„跳進他眼ç›è£ä¾†ï¼Œç„¶è€ŒæŽ¥è‘—çš„å»å…¨ä¸æ˜¯å£«æˆé€™å…©å€‹å—ã€‚ä»–æ–¼æ˜¯é‡æ–°å†åœ¨å二張榜的圓圖è£ç´°ç´°åœ°æœå°‹ï¼Œçœ‹çš„人全已散盡了,而陳士æˆåœ¨æ¦œä¸Šçµ‚於沒有見,單站在試院的照å£çš„é¢å‰ã€‚
+涼風雖然拂拂的å¹å‹•他斑白的çŸé«®ï¼Œåˆå†¬çš„太陽å»é‚„æ˜¯å¾ˆæº«å’Œçš„ä¾†æ›¬ä»–ã€‚ä½†ä»–ä¼¼ä¹Žè¢«å¤ªé™½æ›¬å¾—é æšˆäº†ï¼Œè‡‰è‰²è¶ŠåŠ è®Šæˆç°ç™½ï¼Œå¾žå‹žä¹çš„紅腫的兩眼è£ï¼Œç™¼å‡ºå¤æ€ªçš„閃光。這時他其實早已ä¸çœ‹åˆ°ä»€éº¼ç‰†ä¸Šçš„æ¦œæ–‡äº†ï¼Œåªè¦‹æœ‰è¨±å¤šçƒé»‘çš„åœ“åœˆï¼Œåœ¨çœ¼å‰æ³›æ³›çš„éŠèµ°ã€‚
+雋了秀æ‰ï¼Œä¸ŠçœåŽ»é„‰è©¦ï¼Œä¸€å¾‘è¯æ·ä¸ŠåŽ»ï¼Œâ€¦â€¦ç´³å£«å€‘æ—¢ç„¶åƒæ–¹ç™¾è¨ˆçš„來攀親,人們åˆéƒ½åƒçœ‹è¦‹ç¥žæ˜Žä¼¼çš„æ•¬ç•,深悔先å‰çš„輕薄,發æ˜ï¼Œâ€¦â€¦è¶•走了租ä½åœ¨è‡ªå·±ç ´å®…é–€è£çš„雜姓——那是ä¸å‹žèªªè¶•,自己就æ¬çš„ï¼Œâ€”â€”å±‹å®‡å…¨æ–°äº†ï¼Œé–€å£æ˜¯æ——ç«¿å’Œæ‰é¡ï¼Œâ€¦â€¦è¦æ¸…高å¯ä»¥åšäº¬å®˜ï¼Œå¦å‰‡ä¸å¦‚謀外放。……他平日安排åœç•¶çš„å‰ç¨‹ï¼Œé€™æ™‚候åˆåƒå—潮的糖塔一般,剎時倒塌,åªå‰©ä¸‹ä¸€å †ç¢Žç‰‡äº†ã€‚ä»–ä¸è‡ªè¦ºçš„æ—‹è½‰äº†è¦ºå¾—æ¸™æ•£äº†èº«è»€ï¼Œæƒ˜æƒ˜çš„èµ°å‘æ¸å®¶çš„路。
+他剛到自己的房門å£ï¼Œä¸ƒå€‹å¸ç«¥ä¾¿ä¸€é½Šæ”¾é–‹å–‰åš¨ï¼Œå±çš„念起書來。他大åƒä¸€é©šï¼Œè€³æœµé‚Šä¼¼ä¹Žæ•²äº†ä¸€è²ç£¬ï¼Œåªè¦‹ä¸ƒå€‹é 拖了å°è¾®å在眼å‰å¹Œï¼Œå¹Œå¾—滿房,黑圈å也夾著跳舞。他å下了,他們é€ä¸Šæ™šèª²ä¾†ï¼Œè‡‰ä¸Šéƒ½é¡¯å‡ºå°è¦·ä»–的神色。
+「回去罷。ã€ä»–é²ç–‘äº†ç‰‡æ™‚ï¼Œé€™æ‰æ‚²æ…˜çš„說。
+他們胡亂的包了書包,挾著,一溜煙跑走了。
+陳士æˆé‚„看見許多å°é 夾著黑圓圈在眼å‰è·³èˆžï¼Œæœ‰æ™‚雜亂,有時也擺æˆç•°æ¨£çš„陣圖,然而漸漸的減少了,模胡了。
+「這回åˆå®Œäº†ï¼ã€
+他大åƒä¸€é©šï¼Œç›´è·³èµ·ä¾†ï¼Œåˆ†æ˜Žå°±åœ¨è€³é‚Šçš„話,回éŽé 去å»ä¸¦æ²’有什麼人,仿佛åˆè½å¾—嗡的敲了一è²ç£¬ï¼Œè‡ªå·±çš„嘴也說é“:
+「這回åˆå®Œäº†ï¼ã€
+他忽而舉起一隻手來,屈指計數著想,å一,å三回,連今年是åå…å›žï¼Œç«Ÿæ²’æœ‰ä¸€å€‹è€ƒå®˜æ‡‚å¾—æ–‡ç« ï¼Œæœ‰çœ¼ç„¡ç ï¼Œä¹Ÿæ˜¯å¯æ†çš„事,便ä¸ç”±å˜»å˜»çš„失了笑。然而他憤然了,驀地從書包布底下抽出謄真的制è—和試帖來,拿著往外走,剛近房門,å»çœ‹è¦‹æ»¿çœ¼éƒ½æ˜Žäº®ï¼Œé€£ä¸€ç¾¤é›žä¹Ÿæ£åœ¨ç¬‘他,便ç¦ä¸ä½å¿ƒé çªçªçš„狂跳,åªå¥½ç¸®å›žè£é¢äº†ã€‚
+ä»–åˆå°±äº†åï¼Œçœ¼æ ¼å¤–çš„é–ƒçˆï¼›ä»–ç›®ç¹è‘—許多æ±è¥¿ï¼Œç„¶è€Œå¾ˆæ¨¡èƒ¡ï¼Œâ€”—是倒塌了的糖塔一般的å‰ç¨‹èººåœ¨ä»–é¢å‰ï¼Œé€™å‰ç¨‹åˆåªæ˜¯å»£å¤§èµ·ä¾†ï¼Œé˜»ä½äº†ä»–的一切路。
+別家的炊煙早消æ‡äº†ï¼Œç¢—ç·ä¹Ÿæ´—éŽäº†ï¼Œè€Œé™³å£«æˆé‚„ä¸åŽ»åšé£¯ã€‚寓在這è£çš„雜姓是知é“è€ä¾‹çš„,凡é‡åˆ°ç¸£è€ƒçš„å¹´é ,看見發榜後的這樣的眼光,ä¸å¦‚åŠæ—©é—œäº†é–€ï¼Œä¸è¦å¤šç®¡äº‹ã€‚最先就絕了人è²ï¼ŒæŽ¥è‘—是陸續的熄了燈ç«ï¼Œç¨æœ‰æœˆäº®ï¼Œå»ç·©ç·©çš„出ç¾åœ¨å¯’夜的空ä¸ã€‚
+空ä¸é’ç¢§åˆ°å¦‚ä¸€ç‰‡æµ·ï¼Œç•¥æœ‰äº›æµ®é›²ï¼Œä»¿ä½›æœ‰èª°å°‡ç²‰ç†æ´—åœ¨ç†æ´—è£ä¼¼çš„æ–æ›³ã€‚æœˆäº®å°è‘—陳士æˆè¨»ä¸‹å¯’冷的光波來,當åˆä¹Ÿä¸éŽåƒæ˜¯ä¸€é¢æ–°ç£¨çš„éµé¡ç½·äº†ï¼Œè€Œé€™é¡å»è©ç§˜çš„ç…§é€äº†é™³å£«æˆçš„å…¨èº«ï¼Œå°±åœ¨ä»–èº«ä¸Šæ˜ å‡ºéµçš„æœˆäº®çš„影。
+他還在房外的院åè£å¾˜å¾Šï¼Œçœ¼è£é —清éœäº†ï¼Œå››è¿‘也寂éœã€‚但這寂éœå¿½åˆç„¡ç«¯çš„紛擾起來,他耳邊åˆç¢ºé‘¿è½åˆ°æ€¥ä¿ƒçš„低è²èªªï¼š
+「左彎å³å½Žâ€¦â€¦ã€
+ä»–è³ç„¶äº†ï¼Œå‚¾è€³è½æ™‚,那è²éŸ³å»åˆæé«˜çš„複述é“:「å³å½Žï¼ã€
+他記得了。這院å,是他家還未如æ¤é›•零的時候,一到å¤å¤©çš„夜間,夜夜和他的祖æ¯åœ¨æ¤ç´æ¶¼çš„院å。那時他ä¸éŽåæ²æœ‰é›¶çš„å©å,躺在竹榻上,祖æ¯ä¾¿å在榻æ—邊,講給他有趣的故事è½ã€‚伊說是曾經è½å¾—伊的祖æ¯èªªï¼Œé™³æ°çš„祖宗是巨富的,這屋å便是祖基,祖宗埋著無數的銀åï¼Œæœ‰ç¦æ°£çš„åå«ä¸€å®šæœƒå¾—到的罷,然而至今還沒有ç¾ã€‚至於處所,那是è—在一個謎語的ä¸é–“:
+「左彎å³å½Žï¼Œå‰èµ°å¾Œèµ°ï¼Œé‡é‡‘é‡éŠ€ä¸è«–斗。ã€
+å°æ–¼é€™è¬Žèªžï¼Œé™³å£«æˆä¾¿åœ¨å¹³æ™‚,本也常常暗地è£åŠ ä»¥æ£æ¸¬çš„ï¼Œå¯æƒœå¤§æŠµå‰›ä»¥ç‚ºå¯ä»¥é€šï¼Œå»åˆç«‹åˆ»è¦ºå¾—ä¸åˆäº†ã€‚有一回,他確有把æ¡ï¼ŒçŸ¥é“這是在租給å”家的房底下的了,然而總沒有å‰åŽ»ç™¼æŽ˜çš„å‹‡æ°£ï¼›éŽäº†å¹¾æ™‚,å¯åˆè¦ºå¾—太ä¸ç›¸åƒäº†ã€‚至於他自己房åè£çš„幾個掘éŽçš„舊痕跡,那å»å…¨æ˜¯å…ˆå‰å¹¾å›žä¸‹ç¬¬ä»¥å¾Œçš„發了怔忡的舉動,後來自己一看到,也還感到慚愧而且羞人。
+但今天éµçš„光罩ä½äº†é™³å£«æˆï¼Œåˆè»Ÿè»Ÿçš„來勸他了,他或者å¶ä¸€é²ç–‘,便給他æ£ç¶“çš„è‰æ˜Žï¼ŒåˆåŠ ä¸Šé™°æ£®çš„æ‘§é€¼ï¼Œä½¿ä»–ä¸å¾—ä¸åˆå‘自己的房è£è½‰éŽçœ¼å…‰åŽ»ã€‚
+ç™½å…‰å¦‚ä¸€æŸ„ç™½åœ˜æ‰‡ï¼Œæ–æ–擺擺的閃起在他房è£äº†ã€‚
+「也終於在這è£ï¼ã€
+他說著,ç…å似的趕快走進那房è£åŽ»ï¼Œä½†è·¨é€²è£é¢çš„æ™‚候,便ä¸è¦‹äº†ç™½å…‰çš„å½±è¹¤ï¼Œåªæœ‰èŽ½è’¼è’¼çš„ä¸€é–“èˆŠæˆ¿ï¼Œå’Œå¹¾å€‹ç ´æ›¸æ¡Œéƒ½æ²’åœ¨æ˜æš—è£ã€‚他爽然的站著,慢慢的å†å®šç›ï¼Œç„¶è€Œç™½å…‰å»åˆ†æ˜Žçš„åˆèµ·ä¾†äº†ï¼Œé€™å›žæ›´å»£å¤§ï¼Œæ¯”ç¡«é»ƒç«æ›´ç™½å‡ˆï¼Œæ¯”æœéœ§æ›´éœå¾®ï¼Œè€Œä¸”ä¾¿åœ¨é æ±ç‰†çš„一張書桌下。
+陳士æˆç…å似的奔到門後邊,伸手去摸鋤é ,撞著一æ¢é»‘影。他ä¸çŸ¥æ€Žçš„æœ‰äº›æ€•了,張惶的點了燈,看鋤é ç„¡éžå€šè‘—。他移開桌å,用鋤é 一氣掘起四塊大方磚,蹲身一看,照例是黃澄澄的細沙,æŽäº†è¢–爬開細沙,便露出下é¢çš„黑土來。他極å°å¿ƒçš„,幽éœçš„,一鋤一鋤往下掘,然而深夜究竟太寂éœäº†ï¼Œå°–éµè§¸åœŸçš„è²éŸ³ï¼Œç¸½æ˜¯éˆé‡çš„ä¸è‚¯çžžäººçš„發響。
+åœŸå‘æ·±åˆ°äºŒå°ºå¤šäº†ï¼Œä¸¦ä¸è¦‹æœ‰ç”•å£ï¼Œé™³å£«æˆæ£å¿ƒç„¦ï¼Œä¸€è²è„†éŸ¿ï¼Œé —éœ‡å¾—æ‰‹è…•ç—›ï¼Œé‹¤å°–ç¢°åˆ°ä»€éº¼å …ç¡¬çš„æ±è¥¿äº†ï¼›ä»–急忙拋下鋤é ,摸索著看時,一塊大方磚在下麵。他的心抖得很利害,èšç²¾æœƒç¥žçš„æŒ–起那方磚來,下麵也滿是先å‰ä¸€æ¨£çš„黑土,爬鬆了許多土,下麵似乎還無窮。但忽而åˆè§¸è‘—å …ç¡¬çš„å°æ±è¥¿äº†ï¼Œåœ“的,大約是一個銹銅錢;æ¤å¤–ä¹Ÿé‚„æœ‰å¹¾ç‰‡ç ´ç¢Žçš„ç£ç‰‡ã€‚
+陳士æˆå¿ƒè£ä»¿ä½›è¦ºå¾—ç©ºè™›äº†ï¼Œæ¸¾èº«æµæ±—,急èºçš„åªçˆ¬æ”;這其間,心在空ä¸ä¸€æŠ–動,åˆè§¸è‘—ä¸€ç¨®å¤æ€ªçš„å°æ±è¥¿äº†ï¼Œé€™ä¼¼ä¹Žç´„略有些馬掌形的,但觸手很鬆脆。他åˆèšç²¾æœƒç¥žçš„æŒ–èµ·é‚£æ±è¥¿ä¾†ï¼Œè¬¹æ…Žçš„æ’®è‘—,就燈光下仔細看時,那æ±è¥¿æ–‘æ–‘å‰å‰çš„åƒæ˜¯çˆ›éª¨é ,上é¢é‚„帶著一排零è½ä¸å…¨çš„牙齒。他已經誤到這許是下巴骨了,而那下巴骨也便在他手è£ç´¢ç´¢çš„動彈起來,而且笑åŸåŸçš„顯出笑影,終於è½å¾—ä»–é–‹å£é“:
+「這回åˆå®Œäº†ï¼ã€
+ä»–æ…„ç„¶çš„ç™¼äº†å¤§å†·ï¼ŒåŒæ™‚也放了手,下巴骨輕飄飄的回到å‘底è£ä¸å¤šä¹…,他也就逃到院åè£äº†ã€‚ä»–å·çœ‹æˆ¿è£é¢ï¼Œç‡ˆç«å¦‚æ¤è¼ç…Œï¼Œä¸‹å·´éª¨å¦‚æ¤å˜²ç¬‘,異乎尋常的怕人,便å†ä¸æ•¢å‘那邊看。他躲在é 處的簷下的陰影è£ï¼Œè¦ºå¾—較為安全了;但在這平安ä¸ï¼Œå¿½è€Œè€³æœµé‚Šåˆè½å¾—竊竊的低è²èªªï¼š
+ã€Œé€™è£æ²’有……到山è£åŽ»â€¦â€¦ã€
+陳士æˆä¼¼ä¹Žè¨˜å¾—白天在街上也曾è½å¾—有人說這種話,他ä¸å¾…å†è½å®Œï¼Œå·²ç¶“æç„¶å¤§æ‚Ÿäº†ã€‚ä»–çªç„¶ä»°é¢å‘天,月亮已å‘西高峰這方é¢éš±åŽ»ï¼Œé æƒ³é›¢åŸŽä¸‰å五里的西高峰æ£åœ¨çœ¼å‰ï¼Œæœç¬ä¸€èˆ¬é»‘é†é†çš„æŒºç«‹è‘—,周åœä¾¿æ”¾å‡ºæµ©å¤§é–ƒçˆçš„白光來。
+而且這白光åˆé é 的就在å‰é¢äº†ã€‚
+「是的,到山è£åŽ»ï¼ã€
+他決定的想,慘然的奔出去了。幾回的開門之後,門è£é¢ä¾¿å†ä¸èžä¸€äº›è²æ¯ã€‚燈ç«çµäº†å¤§ç‡ˆèŠ±ç…§è‘—ç©ºå±‹å’Œå‘æ´žï¼Œç•¢ç•¢å‰å‰çš„炸了幾è²ä¹‹å¾Œï¼Œä¾¿æ¼¸æ¼¸çš„縮å°ä»¥è‡³æ–¼ç„¡æœ‰ï¼Œé‚£æ˜¯æ®˜æ²¹å·²ç¶“燒盡了。
+「開城門來~~ã€
+å«è‘—å¤§å¸Œæœ›çš„ææ€–的悲è²ï¼ŒéŠçµ²ä¼¼çš„在西關門å‰çš„黎明ä¸ï¼Œæˆ°æˆ°å…¢å…¢çš„å«å–Šã€‚
+第二天的日ä¸ï¼Œæœ‰äººåœ¨é›¢è¥¿é–€åäº”é‡Œçš„è¬æµæ¹–è£çœ‹è¦‹ä¸€å€‹æµ®å±ï¼Œç•¶å³å‚³æšé–‹åŽ»ï¼Œçµ‚æ–¼å‚³åˆ°åœ°ä¿çš„耳朵è£äº†ï¼Œä¾¿å«é„‰ä¸‹äººæ’ˆå°‡ä¸Šä¾†ã€‚那是一個男å±ï¼Œäº”å多æ²ï¼Œã€Œèº«ä¸é¢ç™½ç„¡é¬šã€ï¼Œæ¸¾èº«ä¹Ÿæ²’有什麼衣褲。或者說這就是陳士æˆã€‚但鄰居懶得去看,也並無å±è¦ªèªé ˜ï¼Œæ–¼æ˜¯ç¶“縣委員相驗之後,便由地ä¿åŸ‹äº†ã€‚至於æ»å› ,那當然是沒有å•題的,å‰å–æ»å±çš„è¡£æœæœ¬ä¾†æ˜¯å¸¸æœ‰çš„äº‹ï¼Œå¤ ä¸ä¸Šç–‘å¿ƒåˆ°è¬€å®³åŽ»ï¼šè€Œä¸”ä»µä½œä¹Ÿè‰æ˜Žæ˜¯ç”Ÿå‰çš„è½æ°´ï¼Œå› ç‚ºä»–ç¢ºé‘¿æ›¾åœ¨æ°´åº•è£æŽ™å‘½ï¼Œæ‰€ä»¥å個指甲è£éƒ½æ»¿åµŒè‘—河底泥。
+有鬼似的。
+然而è¦åšé€™ä¸€ç¯‡é€Ÿæœ½çš„æ–‡ç« ,纔下ç†ï¼Œä¾¿æ„Ÿåˆ°è¬åˆ†çš„å›°é›£äº†ã€‚ç¬¬ä¸€æ˜¯æ–‡ç« çš„å目。å”åæ›°ï¼Œâ€œå䏿£å‰‡è¨€ä¸é †â€ã€‚這原是應該極註æ„的。傳的å目很ç¹å¤šï¼šåˆ—傳,自傳,內傳,外傳,別傳,家傳,å°å‚³â€¦â€¦ï¼Œè€Œå¯æƒœéƒ½ä¸åˆã€‚“列傳â€éº½ï¼Œé€™ä¸€ç¯‡ä¸¦éžå’Œè¨±å¤šé—ŠäººæŽ’在“æ£å²â€è£ï¼›â€œè‡ªå‚³â€éº½ï¼Œæˆ‘åˆä¸¦éžå°±æ˜¯é˜¿Q。說是“外傳â€ï¼Œâ€œå…§å‚³â€åœ¨é‚£è£å‘¢ï¼Ÿå€˜ç”¨â€œå…§å‚³â€ï¼Œé˜¿Qåˆæ±ºä¸æ˜¯ç¥žä»™ã€‚“別傳â€å‘¢ï¼Œé˜¿Q實在未曾有大總統上è«å®£ä»˜åœ‹å²é¤¨ç«‹â€œæœ¬å‚³â€â€”—雖說英國æ£å²ä¸Šä¸¦ç„¡â€œåšå¾’列傳â€ï¼Œè€Œæ–‡è±ªè¿æ›´å¸ä¹ŸåšéŽã€Šåšå¾’別傳》這一部書,但文豪則å¯ï¼Œåœ¨æˆ‘輩å»ä¸å¯ã€‚其次是“家傳â€ï¼Œå‰‡æˆ‘æ—¢ä¸çŸ¥èˆ‡é˜¿Q是å¦åŒå®—,也未曾å—ä»–åå«çš„æ‹œè¨—;或“å°å‚³â€ï¼Œå‰‡é˜¿Qåˆæ›´ç„¡åˆ¥çš„“大傳â€äº†ã€‚總而言之,這一篇也便是“本傳â€ï¼Œä½†å¾žæˆ‘çš„æ–‡ç« è‘—æƒ³ï¼Œå› ç‚ºæ–‡é«”å‘下,是“引車賣漿者æµâ€æ‰€ç”¨çš„è©±ï¼Œæ‰€ä»¥ä¸æ•¢åƒç¨±ï¼Œä¾¿å¾žä¸å…¥ä¸‰æ•™ä¹æµçš„å°èªªå®¶æ‰€è¬‚â€œé–‘è©±ä¼‘é¡Œè¨€æ¸æ£å‚³â€é€™ä¸€å¥å¥—話è£ï¼Œå–出“æ£å‚³â€å…©å€‹å—來,作為å目,å³ä½¿èˆ‡å¤äººæ‰€æ’°ã€Šæ›¸æ³•æ£å‚³ã€‹çš„“æ£å‚³â€å—é¢ä¸Šå¾ˆç›¸æ··ï¼Œä¹Ÿé¡§ä¸å¾—了。
+第二,立傳的通例,開首大抵該是“æŸï¼Œå—æŸï¼ŒæŸåœ°äººä¹Ÿâ€ï¼Œè€Œæˆ‘並ä¸çŸ¥é“阿Q姓什麼。有一回,他似乎是姓趙,但第二日便模糊了。那是趙太爺的兒å進了秀æ‰çš„æ™‚候,鑼è²éœéœçš„å ±åˆ°æ‘è£ä¾†ï¼Œé˜¿Qæ£å–äº†å…©ç¢—é»ƒé…’ï¼Œä¾¿æ‰‹èˆžè¶³è¹ˆçš„èªªï¼Œé€™æ–¼ä»–ä¹Ÿå¾ˆå…‰é‡‡ï¼Œå› ç‚ºä»–å’Œè¶™å¤ªçˆºåŽŸä¾†æ˜¯æœ¬å®¶ï¼Œç´°ç´°çš„æŽ’èµ·ä¾†ä»–é‚„æ¯”ç§€æ‰é•·ä¸‰è¼©å‘¢ã€‚其時幾個æ—è½äººå€’也肅然的有些起敬了。那知é“第二天,地ä¿ä¾¿å«é˜¿Q到趙太爺家è£åŽ»ï¼›å¤ªçˆºä¸€è¦‹ï¼Œæ»¿è‡‰æ¿ºæœ±ï¼Œå–é“:
+“阿Qï¼Œä½ é€™æ¸¾å°åï¼ä½ èªªæˆ‘æ˜¯ä½ çš„æœ¬å®¶éº½ï¼Ÿâ€é˜¿Qä¸é–‹å£ã€‚趙太爺愈看愈生氣了,æ¶é€²å¹¾æ¥èªªï¼šâ€œä½ æ•¢èƒ¡èªªï¼æˆ‘æ€Žéº¼æœƒæœ‰ä½ é€™æ¨£çš„æœ¬å®¶ï¼Ÿä½ å§“è¶™éº½ï¼Ÿâ€é˜¿Qä¸é–‹å£ï¼Œæƒ³å¾€å¾Œé€€äº†ï¼›è¶™å¤ªçˆºè·³éŽåŽ»ï¼Œçµ¦äº†ä»–ä¸€å€‹å˜´å·´ã€‚
+â€œä½ æ€Žéº¼æœƒå§“è¶™ï¼â€”â€”ä½ é‚£è£é…å§“è¶™ï¼â€
+阿Q並沒有抗辯他確鑿姓趙,åªç”¨æ‰‹æ‘¸è‘—å·¦é °ï¼Œå’Œåœ°ä¿é€€å‡ºåŽ»äº†ï¼›å¤–é¢åˆè¢«åœ°ä¿è¨“斥了一番,è¬äº†åœ°ä¿äºŒç™¾æ–‡é…’錢。知é“的人都說阿Q太è’å”,自己去招打;他大約未必姓趙,å³ä½¿çœŸå§“趙,有趙太爺在這è£ï¼Œä¹Ÿä¸è©²å¦‚æ¤èƒ¡èªªçš„。æ¤å¾Œä¾¿å†æ²’有人æèµ·ä»–çš„æ°æ—來,所以我終於ä¸çŸ¥é“阿Q究竟什麼姓。
+第三,我åˆä¸çŸ¥é“阿Qçš„åå—æ˜¯æ€Žéº¼å¯«çš„。他活著的時候,人都å«ä»–阿Quei,æ»äº†ä»¥å¾Œï¼Œä¾¿æ²’有一個人å†å«é˜¿Quei了,那è£é‚„會有“著之竹帛â€çš„事。若論“著之竹帛â€ï¼Œé€™ç¯‡æ–‡ç« è¦ç®—第一次,所以先é‡è‘—了這第一個難關。我曾仔細想:阿Quei,阿桂還是阿貴呢?倘使他號月äºï¼Œæˆ–者在八月間åšéŽç”Ÿæ—¥ï¼Œé‚£ä¸€å®šæ˜¯é˜¿æ¡‚äº†ï¼›è€Œä»–æ—¢æ²’æœ‰è™Ÿâ€”â€”ä¹Ÿè¨±æœ‰è™Ÿï¼Œåªæ˜¯æ²’有人知é“ä»–ï¼Œâ€”â€”åˆæœªå˜—æ•£éŽç”Ÿæ—¥å¾µæ–‡çš„帖åï¼šå¯«ä½œé˜¿æ¡‚ï¼Œæ˜¯æ¦æ–·çš„。åˆå€˜ä½¿ä»–有一ä½è€å…„或令弟å«é˜¿å¯Œï¼Œé‚£ä¸€å®šæ˜¯é˜¿è²´äº†ï¼›è€Œä»–åˆåªæ˜¯ä¸€å€‹äººï¼šå¯«ä½œé˜¿è²´ï¼Œä¹Ÿæ²’有ä½è‰çš„。其餘音Queiçš„ååƒ»å—æ¨£ï¼Œæ›´åŠ æ¹Šä¸ä¸Šäº†ã€‚å…ˆå‰ï¼Œæˆ‘也曾å•éŽè¶™å¤ªçˆºçš„å…’å茂æ‰å…ˆç”Ÿï¼Œèª°æ–™åšé›…如æ¤å…¬ï¼Œç«Ÿä¹ŸèŒ«ç„¶ï¼Œä½†æ“šçµè«–èªªï¼Œæ˜¯å› ç‚ºé™³ç¨ç§€è¾¦äº†ã€Šæ–°é’年》æå€¡æ´‹å—ï¼Œæ‰€ä»¥åœ‹ç²¹æ·ªäº¡ï¼Œç„¡å¯æŸ¥è€ƒäº†ã€‚æˆ‘çš„æœ€å¾Œçš„æ‰‹æ®µï¼Œåªæœ‰æ‰˜ä¸€å€‹åŒé„‰åŽ»æŸ¥é˜¿Q犯事的案å·ï¼Œå…«å€‹æœˆä¹‹å¾Œçº”有回信,說案å·è£ä¸¦ç„¡èˆ‡é˜¿Queiçš„è²éŸ³ç›¸è¿‘的人。我雖ä¸çŸ¥é“æ˜¯çœŸæ²’æœ‰ï¼Œé‚„æ˜¯æ²’æœ‰æŸ¥ï¼Œç„¶è€Œä¹Ÿå†æ²’æœ‰åˆ¥çš„æ–¹æ³•äº†ã€‚ç”Ÿæ€•è¨»éŸ³å—æ¯é‚„未通行,åªå¥½ç”¨äº†â€œæ´‹å—â€ï¼Œç…§è‹±åœ‹æµè¡Œçš„æ‹¼æ³•寫他為阿Quei,略作阿Q。這近於盲從《新é’年》,自己也很抱æ‰ï¼Œä½†èŒ‚æ‰å…¬å°šä¸”ä¸çŸ¥ï¼Œæˆ‘還有什麼好辦法呢。
+第四,是阿Qçš„ç±è²«äº†ã€‚倘他姓趙,則據ç¾åœ¨å¥½ç¨±éƒ¡æœ›çš„è€ä¾‹ï¼Œå¯ä»¥ç…§ã€Šéƒ¡å百家姓》上的註解,說是“隴西天水人也â€ï¼Œä½†å¯æƒœé€™å§“是ä¸ç”šå¯é çš„ï¼Œå› æ¤ç±è²«ä¹Ÿå°±æœ‰äº›æ±ºä¸å®šã€‚ä»–é›–ç„¶å¤šä½æœªèŽŠï¼Œç„¶è€Œä¹Ÿå¸¸å¸¸å®¿åœ¨åˆ¥è™•ï¼Œä¸èƒ½èªªæ˜¯æœªèŽŠäººï¼Œå³ä½¿èªªæ˜¯â€œæœªèŽŠäººä¹Ÿâ€ï¼Œä¹Ÿä»ç„¶æœ‰ä¹–岿³•的。
+我所èŠä»¥è‡ªæ…°çš„,是還有一個“阿â€å—éžå¸¸æ£ç¢ºï¼Œçµ•無附會å‡å€Ÿçš„ç¼ºé»žï¼Œé —å¯ä»¥å°±æ£æ–¼é€šäººã€‚至於其餘,å»éƒ½éžæ·ºå¸æ‰€èƒ½ç©¿é‘¿ï¼Œåªå¸Œæœ›æœ‰â€œæ·å²ç™–與考據癖â€çš„胡é©ä¹‹å…ˆç”Ÿçš„é–€äººå€‘ï¼Œå°‡ä¾†æˆ–è€…èƒ½å¤ å°‹å‡ºè¨±å¤šæ–°ç«¯ç·’ä¾†ï¼Œä½†æ˜¯æˆ‘é€™ã€Šé˜¿Qæ£å‚³ã€‹åˆ°é‚£æ™‚å»åˆæ€•早經消滅了。
+阿Qä¸ç¨æ˜¯å§“åç±è²«æœ‰äº›æ¸ºèŒ«ï¼Œé€£ä»–å…ˆå‰çš„“行狀â€ä¹Ÿæ¸ºèŒ«ã€‚å› ç‚ºæœªèŽŠçš„äººå€‘ä¹‹æ–¼é˜¿Q,åªè¦ä»–å¹«å¿™ï¼Œåªæ‹¿ä»–玩笑,從來沒有留心他的“行狀â€çš„。而阿Q自己也ä¸èªªï¼Œç¨æœ‰å’Œåˆ¥äººå£è§’的時候,間或瞪著眼ç›é“:
+“我先å‰â€”â€”æ¯”ä½ é—Šçš„å¤šå•¦ï¼ä½ 算是什麼æ±è¥¿ï¼â€
+阿Q沒有家,ä½åœ¨æœªèŽŠçš„åœŸç©€ç¥ è£ï¼›ä¹Ÿæ²’æœ‰å›ºå®šçš„è·æ¥ï¼Œåªçµ¦äººå®¶åšçŸå·¥ï¼Œå‰²éº¥ä¾¿å‰²éº¥ï¼Œèˆ‚米便舂米,æ’船便æ’船。工作略長久時,他也或ä½åœ¨è‡¨æ™‚主人的家è£ï¼Œä½†ä¸€å®Œå°±èµ°äº†ã€‚所以,人們忙碌的時候,也還記起阿Q來,然而記起的是åšå·¥ï¼Œä¸¦ä¸æ˜¯â€œè¡Œç‹€â€ï¼›ä¸€é–‘空,連阿Q都早忘å»ï¼Œæ›´ä¸å¿…說“行狀â€äº†ã€‚åªæ˜¯æœ‰ä¸€å›žï¼Œæœ‰ä¸€å€‹è€é åé Œæšèªªï¼šâ€œé˜¿Q真能åšï¼â€é€™æ™‚阿Q赤著膊,懶洋洋的瘦伶仃的æ£åœ¨ä»–é¢å‰ï¼Œåˆ¥äººä¹Ÿæ‘¸ä¸è‘—這話是真心還是è笑,然而阿Q很喜æ¡ã€‚
+阿Qåˆå¾ˆè‡ªå°Šï¼Œæ‰€æœ‰æœªèŽŠçš„å±…æ°‘ï¼Œå…¨ä¸åœ¨ä»–眼神è£ï¼Œç”šè€Œè‡³æ–¼å°æ–¼å…©ä½â€œæ–‡ç«¥â€ä¹Ÿæœ‰ä»¥ç‚ºä¸å€¼ä¸€ç¬‘çš„ç¥žæƒ…ã€‚å¤«æ–‡ç«¥è€…ï¼Œå°‡ä¾†ææ€•è¦è®Šç§€æ‰è€…也;趙太爺錢太爺大å—å±…æ°‘çš„å°Šæ•¬ï¼Œé™¤æœ‰éŒ¢ä¹‹å¤–ï¼Œå°±å› ç‚ºéƒ½æ˜¯æ–‡ç«¥çš„çˆ¹çˆ¹ï¼Œè€Œé˜¿Q在精神上ç¨ä¸è¡¨æ ¼å¤–çš„å´‡å¥‰ï¼Œä»–æƒ³ï¼šæˆ‘çš„å…’åæœƒé—Šå¾—多啦ï¼åŠ ä»¥é€²äº†å¹¾å›žåŸŽï¼Œé˜¿Qè‡ªç„¶æ›´è‡ªè² ï¼Œç„¶è€Œä»–åˆå¾ˆé„™è–„城è£äººï¼Œè¬å¦‚用三尺三寸寬的木æ¿åšæˆçš„凳å,未莊人å«â€œé•·å‡³â€ï¼Œä»–也å«â€œé•·å‡³â€ï¼ŒåŸŽè£äººå»å«â€œæ¢å‡³â€ï¼Œä»–想:這是錯的,å¯ç¬‘ï¼æ²¹ç…Žå¤§é éšï¼ŒæœªèŽŠéƒ½åŠ ä¸ŠåŠå¯¸é•·çš„蔥葉,城è£å»åŠ ä¸Šåˆ‡ç´°çš„è”¥çµ²ï¼Œä»–æƒ³ï¼šé€™ä¹Ÿæ˜¯éŒ¯çš„ï¼Œå¯ç¬‘ï¼ç„¶è€ŒæœªèŽŠäººçœŸæ˜¯ä¸è¦‹ä¸–é¢çš„å¯ç¬‘的鄉下人呵,他們沒有見éŽåŸŽè£çš„ç…Žéšï¼
+阿Q“先å‰é—Šâ€ï¼Œè¦‹è˜é«˜ï¼Œè€Œä¸”“真能åšâ€ï¼Œæœ¬ä¾†å¹¾ä¹Žæ˜¯ä¸€å€‹â€œå®Œäººâ€äº†ï¼Œä½†å¯æƒœä»–體質上還有一些缺點。最惱人的是在他é çš®ä¸Šï¼Œé —æœ‰å¹¾è™•ä¸çŸ¥æ–¼ä½•時的癩瘡疤。這雖然也在他身上,而看阿Qçš„æ„æ€ï¼Œå€’也似乎以為ä¸è¶³è²´çš„ï¼Œå› ç‚ºä»–è«±èªªâ€œç™©â€ä»¥åŠä¸€åˆ‡è¿‘於“賴â€çš„音,後來推而廣之,“光â€ä¹Ÿè«±ï¼Œâ€œäº®â€ä¹Ÿè«±ï¼Œå†å¾Œä¾†ï¼Œé€£â€œç‡ˆâ€â€œç‡â€éƒ½è«±äº†ã€‚一犯諱,ä¸å•有心與無心,阿Q便全疤通紅的發起怒來,估é‡äº†å°æ‰‹ï¼Œå£è¨¥çš„他便罵,氣力å°çš„他便打;然而ä¸çŸ¥æ€Žéº¼ä¸€å›žäº‹ï¼Œç¸½é‚„是阿Qåƒè™§çš„æ™‚候多。於是他漸漸的變æ›äº†æ–¹é‡ï¼Œå¤§æŠµæ”¹ç‚ºæ€’目而視了。
+誰知é“阿Q採用怒目主義之後,未莊的閑人們便愈喜æ¡çŽ©ç¬‘ä»–ã€‚ä¸€è¦‹é¢ï¼Œä»–們便å‡ä½œåƒé©šçš„說:
+“噲,亮起來了。â€
+阿Q照例的發了怒,他怒目而視了。
+“原來有ä¿éšªç‡ˆåœ¨é€™è£ï¼â€ä»–們䏦䏿€•。
+阿Q沒有法,åªå¾—å¦å¤–æƒ³å‡ºå ±è¤‡çš„è©±ä¾†ï¼š
+â€œä½ é‚„ä¸é………â€é€™æ™‚候,åˆä»¿ä½›åœ¨ä»–é 上的是一種高尚的光容的癩é 瘡,並éžå¹³å¸¸çš„癩é 瘡了;但上文說éŽï¼Œé˜¿Q是有見è˜çš„,他立刻知é“å’Œâ€œçŠ¯å¿Œâ€æœ‰é»žæŠµè§¸ï¼Œä¾¿ä¸å†å¾€åº•下說。
+閒人還ä¸å®Œï¼Œåªæ’©ä»–,於是終而至於打。阿Q在形å¼ä¸Šæ‰“敗了,被人æªä½é»ƒè¾®å,在å£ä¸Šç¢°äº†å››äº”個響é ,閒人這纔心滿æ„足的得å‹çš„走了,阿Qç«™äº†ä¸€åˆ»ï¼Œå¿ƒè£æƒ³ï¼Œâ€œæˆ‘ç¸½ç®—è¢«å…’åæ‰“了,ç¾åœ¨çš„世界真ä¸åƒæ¨£â€¦â€¦â€æ–¼æ˜¯ä¹Ÿå¿ƒæ»¿æ„足的得å‹çš„走了。
+阿Q想在心è£çš„ï¼Œå¾Œä¾†æ¯æ¯èªªå‡ºå£ä¾†ï¼Œæ‰€ä»¥å‡¡æ˜¯å’Œé˜¿Q玩笑的人們,幾乎全知é“他有這一種精神上的å‹åˆ©æ³•,æ¤å¾Œæ¯é€¢æªä½ä»–黃辮å的時候,人就先一著å°ä»–說:
+“阿Qï¼Œé€™ä¸æ˜¯å…’忉“è€å,是人打畜生。自己說:人打畜生ï¼â€
+阿Q兩隻手都æä½äº†è‡ªå·±çš„è¾®æ ¹ï¼Œæªè‘—é ,說é“:
+“打蟲豸,好ä¸å¥½ï¼Ÿæˆ‘æ˜¯èŸ²è±¸â€”â€”é‚„ä¸æ”¾éº½ï¼Ÿâ€
+ä½†é›–ç„¶æ˜¯èŸ²è±¸ï¼Œé–’äººä¹Ÿä¸¦ä¸æ”¾ï¼Œä»èˆŠåœ¨å°±è¿‘什麼地方給他碰了五å…個響é ,這纔心滿æ„足的得å‹çš„走了,他以為阿Q這回å¯é了瘟。然而ä¸åˆ°åç§’é˜ï¼Œé˜¿Q也心滿æ„足的得å‹çš„èµ°äº†ï¼Œä»–è¦ºå¾—ä»–æ˜¯ç¬¬ä¸€å€‹èƒ½å¤ è‡ªè¼•è‡ªè³¤çš„äººï¼Œé™¤äº†â€œè‡ªè¼•è‡ªè³¤â€ä¸ç®—外,餘下的就是“第一個â€ã€‚狀元ä¸ä¹Ÿæ˜¯â€œç¬¬ä¸€å€‹â€éº½ï¼Ÿâ€œä½ 算是什麼æ±è¥¿â€å‘¢ï¼ï¼Ÿ
+阿Q以如是ç‰ç‰å¦™æ³•å‰‹æœæ€¨æ•µä¹‹å¾Œï¼Œä¾¿æ„‰å¿«çš„跑到酒店è£å–幾碗酒,åˆå’Œåˆ¥äººèª¿ç¬‘一通,å£è§’一通,åˆå¾—了å‹ï¼Œæ„‰å¿«çš„å›žåˆ°åœŸç©€ç¥ ï¼Œæ”¾å€’é ç¡è‘—了。å‡ä½¿æœ‰éŒ¢ï¼Œä»–ä¾¿åŽ»æŠ¼ç‰Œå¯¶ï¼Œä¸€å †äººè¹²åœ¨åœ°é¢ä¸Šï¼Œé˜¿Q峿±—æµæ»¿é¢çš„夾在這ä¸é–“,è²éŸ³ä»–最響:
+“é’é¾å››ç™¾ï¼â€
+“咳~~開~~啦ï¼â€æ¨å®¶æé–‹ç›’åè“‹ï¼Œä¹Ÿæ˜¯æ±—æµæ»¿é¢çš„唱。“天門啦~~角回啦~~ï¼äººå’Œç©¿å ‚空在那è£å•¦ï½žï½žï¼é˜¿Q的銅錢拿éŽä¾†ï½žï½žï¼
+â€œç©¿å ‚ä¸€ç™¾â€”â€”ä¸€ç™¾äº”åï¼â€
+阿Q的錢便在這樣的æŒåŸä¹‹ä¸‹ï¼Œæ¼¸æ¼¸çš„è¼¸å…¥åˆ¥å€‹æ±—æµæ»¿é¢çš„人物的腰間。他終於åªå¥½æ“ å‡ºå †å¤–ï¼Œç«™åœ¨å¾Œé¢çœ‹ï¼Œæ›¿åˆ¥äººè‘—æ€¥ï¼Œä¸€ç›´åˆ°æ•£å ´ï¼Œç„¶å¾Œæˆ€æˆ€çš„å›žåˆ°åœŸç©€ç¥ ï¼Œç¬¬äºŒå¤©ï¼Œè…«è‘—çœ¼ç›åŽ»å·¥ä½œã€‚
+但真所謂“塞ç¿å¤±é¦¬å®‰çŸ¥éžç¦â€ç½·ï¼Œé˜¿Qä¸å¹¸è€Œè´äº†ä¸€å›žï¼Œä»–倒幾乎失敗了。
+é€™æ˜¯æœªèŽŠè³½ç¥žçš„æ™šä¸Šã€‚é€™æ™šä¸Šç…§ä¾‹æœ‰ä¸€è‡ºæˆ²ï¼Œæˆ²è‡ºå·¦è¿‘ï¼Œä¹Ÿç…§ä¾‹æœ‰è¨±å¤šçš„è³æ”¤ã€‚åšæˆ²çš„鑼鼓,在阿Q耳朵è£ä»¿ä½›åœ¨å里之外;他åªè½å¾—æ¨å®¶çš„æŒå”±äº†ã€‚ä»–è´è€Œåˆè´ï¼ŒéŠ…éŒ¢è®Šæˆè§’洋,角洋變æˆå¤§æ´‹ï¼Œå¤§æ´‹åˆæˆäº†ç–Šã€‚他興高采烈得éžå¸¸ï¼šâ€œå¤©é–€å…©å¡Šï¼â€
+ä»–ä¸çŸ¥é“èª°å’Œèª°ç‚ºä»€éº¼æ‰“èµ·æž¶ä¾†äº†ã€‚ç½µè²æ‰“è²è…³æ¥è²ï¼Œæ˜é æ˜è…¦çš„ä¸€å¤§é™£ï¼Œä»–çº”çˆ¬èµ·ä¾†ï¼Œè³æ”¤ä¸è¦‹äº†ï¼Œäººå€‘也ä¸è¦‹äº†ï¼Œèº«ä¸Šæœ‰å¹¾è™•很似乎有些痛,似乎也挨了幾拳幾腳似的,幾個人詫異的å°ä»–çœ‹ã€‚ä»–å¦‚æœ‰æ‰€å¤±çš„èµ°é€²åœŸç©€ç¥ ï¼Œå®šä¸€å®šç¥žï¼ŒçŸ¥é“ä»–çš„ä¸€å †æ´‹éŒ¢ä¸è¦‹äº†ã€‚è¶•è³½æœƒçš„è³æ”¤å¤šä¸æ˜¯æœ¬æ‘人,還到那è£åŽ»å°‹æ ¹æŸ¢å‘¢ï¼Ÿ
+å¾ˆç™½å¾ˆäº®çš„ä¸€å †æ´‹éŒ¢ï¼è€Œä¸”是他的——ç¾åœ¨ä¸è¦‹äº†ï¼èªªæ˜¯ç®—è¢«å…’åæ‹¿åŽ»äº†ç½·ï¼Œç¸½é‚„æ˜¯å¿½å¿½ä¸æ¨‚ï¼›èªªè‡ªå·±æ˜¯èŸ²è±¸ç½·ï¼Œä¹Ÿé‚„æ˜¯å¿½å¿½ä¸æ¨‚:他這回纔有些感到失敗的苦痛了。
+但他立刻轉敗為å‹äº†ã€‚ä»–æ“Žèµ·å³æ‰‹ï¼Œç”¨åŠ›çš„åœ¨è‡ªå·±è‡‰ä¸Šé€£æ‰“äº†å…©å€‹å˜´å·´ï¼Œç†±å‰Œå‰Œçš„æœ‰äº›ç—›ï¼›æ‰“å®Œä¹‹å¾Œï¼Œä¾¿å¿ƒå¹³æ°£å’Œèµ·ä¾†ï¼Œä¼¼ä¹Žæ‰“çš„æ˜¯è‡ªå·±ï¼Œè¢«æ‰“çš„æ˜¯åˆ¥ä¸€å€‹è‡ªå·±ï¼Œä¸ä¹…也就仿佛是自己打了別個一般,——雖然還有些熱剌剌,——心滿æ„足的得å‹çš„躺下了。他ç¡è‘—了。
+然而阿Q雖然常優å‹ï¼Œå»ç›´å¾…蒙趙太爺打他嘴巴之後,這纔出了å。
+他付éŽåœ°ä¿äºŒç™¾æ–‡é…’錢,憤憤的躺下了,後來想:“ç¾åœ¨çš„ä¸–ç•Œå¤ªä¸æˆè©±ï¼Œå…’忉“è€åâ€¦â€¦â€æ–¼æ˜¯å¿½è€Œæƒ³åˆ°è¶™å¤ªçˆºçš„å¨é¢¨ï¼Œè€Œç¾åœ¨æ˜¯ä»–的兒å了,便自己也漸漸的得æ„起來,爬起身,唱著《å°å¤å€ä¸Šå¢³ã€‹åˆ°é…’店去。這時候,他åˆè¦ºå¾—趙太爺高人一ç‰äº†ã€‚
+說也怪,從æ¤ä¹‹å¾Œï¼Œæžœç„¶å¤§å®¶ä¹Ÿä»¿ä½›æ ¼å¤–尊敬他。這在阿Qï¼Œæˆ–è€…ä»¥ç‚ºå› ç‚ºä»–æ˜¯è¶™å¤ªçˆºçš„çˆ¶è¦ªï¼Œè€Œå…¶å¯¦ä¹Ÿä¸ç„¶ã€‚未莊通例,倘如阿七打阿八,或者æŽå››æ‰“張三,å‘來本ä¸ç®—å£ç¢‘。一上å£ç¢‘,則打的既有å,被打的也就托庇有了å。至於錯在阿Q,那自然是ä¸å¿…èªªã€‚æ‰€ä»¥è€…ä½•ï¼Ÿå°±å› ç‚ºè¶™å¤ªçˆºæ˜¯ä¸æœƒéŒ¯çš„。但他既然錯,為什麼大家åˆä»¿ä½›æ ¼å¤–尊敬他呢?這å¯é›£è§£ï¼Œç©¿é‘¿èµ·ä¾†èªªï¼Œæˆ–è€…å› ç‚ºé˜¿Q說是趙太爺的本家,雖然挨了打,大家也還怕有些真,總ä¸å¦‚尊敬一些穩當。å¦å‰‡ï¼Œä¹Ÿå¦‚å”廟è£çš„å¤ªç‰¢ä¸€èˆ¬ï¼Œé›–ç„¶èˆ‡è±¬ç¾Šä¸€æ¨£ï¼ŒåŒæ˜¯ç•œç”Ÿï¼Œä½†æ—¢ç¶“è–äººä¸‹ç®¸ï¼Œå…ˆå„’å€‘ä¾¿ä¸æ•¢å¦„動了。
+阿Qæ¤å¾Œå€’å¾—æ„了許多年。
+æœ‰ä¸€å¹´çš„æ˜¥å¤©ï¼Œä»–é†‰é†ºé†ºçš„åœ¨è¡—ä¸Šèµ°ï¼Œåœ¨ç‰†æ ¹çš„æ—¥å…‰ä¸‹ï¼Œçœ‹è¦‹çŽ‹èƒ¡åœ¨é‚£è£èµ¤è‘—膊æ‰è¨å,他忽然覺得身上也癢起來了。這王胡,åˆç™©åˆèƒ¡ï¼Œåˆ¥äººéƒ½å«ä»–王癩胡,阿Qå»åˆªåŽ»äº†ä¸€å€‹ç™©å—,然而éžå¸¸æ¸ºè¦–他。阿Qçš„æ„æ€ï¼Œä»¥ç‚ºç™©æ˜¯ä¸è¶³ç‚ºå¥‡çš„ï¼Œåªæœ‰é€™ä¸€éƒ¨çµ¡è…®é¬å,實在太新奇,令人看ä¸ä¸Šçœ¼ã€‚他於是併排å下去了。倘是別的閑人們,阿Qæœ¬ä¸æ•¢å¤§æ„å下去。但這王胡æ—邊,他有什麼怕呢?è€å¯¦èªªï¼šä»–肯å下去,簡直還是抬舉他。
+阿Qä¹Ÿè„«ä¸‹ç ´å¤¾è¥–ä¾†ï¼Œç¿»æª¢äº†ä¸€å›žï¼Œä¸çŸ¥é“å› ç‚ºæ–°æ´—å‘¢é‚„æ˜¯å› ç‚ºç²—å¿ƒï¼Œè¨±å¤šå·¥å¤«ï¼Œåªæ‰åˆ°ä¸‰å››å€‹ã€‚ä»–çœ‹é‚£çŽ‹èƒ¡ï¼Œå»æ˜¯ä¸€å€‹åˆä¸€å€‹ï¼Œå…©å€‹åˆä¸‰å€‹ï¼Œåªæ”¾åœ¨å˜´è£ç•¢ç•¢å‰å‰çš„響。
+阿Qæœ€åˆæ˜¯å¤±æœ›ï¼Œå¾Œä¾†å»ä¸å¹³äº†ï¼šçœ‹ä¸ä¸Šçœ¼çš„王胡尚且那麼多,自己倒å這樣少,這是怎樣的大失體統的事呵ï¼ä»–很想尋一兩個大的,然而竟沒有,好容易纔æ‰åˆ°ä¸€å€‹ä¸çš„ï¼Œæ¨æ¨çš„塞在厚嘴唇è£ï¼Œç‹ 命一咬,劈的一è²ï¼Œåˆä¸åŠçŽ‹èƒ¡çš„éŸ¿ã€‚
+ä»–ç™©ç˜¡ç–¤å¡Šå¡Šé€šç´…äº†ï¼Œå°‡è¡£æœæ‘”在地上,å一å£å”¾æ²«ï¼Œèªªï¼š
+“這毛蟲ï¼â€
+â€œç™©çš®ç‹—ï¼Œä½ ç½µèª°ï¼Ÿâ€çŽ‹èƒ¡è¼•è”‘çš„æŠ¬èµ·çœ¼ä¾†èªªã€‚
+阿Q近來雖然比較的å—人尊敬,自己也更高傲些,但和那些打慣的閑人們見é¢é‚„è†½æ€¯ï¼Œç¨æœ‰é€™å›žå»éžå¸¸æ¦å‹‡äº†ã€‚這樣滿臉é¬åçš„æ±è¥¿ï¼Œä¹Ÿæ•¢å‡ºè¨€ç„¡ç‹€éº½ï¼Ÿ
+“誰èªä¾¿ç½µèª°ï¼â€ä»–站起來,兩手å‰åœ¨è…°é–“說。
+â€œä½ çš„éª¨é 癢了麽?â€çŽ‹èƒ¡ä¹Ÿç«™èµ·ä¾†ï¼ŒæŠ«ä¸Šè¡£æœèªªã€‚
+阿Q以為他è¦é€ƒäº†ï¼Œæ¶é€²åŽ»å°±æ˜¯ä¸€æ‹³ã€‚é€™æ‹³é 還未é”到身上,已經被他抓ä½äº†ï¼Œåªä¸€æ‹‰ï¼Œé˜¿Q蹌蹌踉踉的跌進去,立刻åˆè¢«çŽ‹èƒ¡æ‰ä½äº†è¾®åï¼Œè¦æ‹‰åˆ°ç‰†ä¸Šç…§ä¾‹åŽ»ç¢°é 。
+“‘å›åå‹•å£ä¸å‹•手’ï¼â€é˜¿Qæªè‘—é 說。
+çŽ‹èƒ¡ä¼¼ä¹Žä¸æ˜¯å›å,並ä¸ç†æœƒï¼Œä¸€é€£çµ¦ä»–碰了五下,åˆç”¨åŠ›çš„ä¸€æŽ¨ï¼Œè‡³æ–¼é˜¿Q跌出å…尺多é ,這纔滿足的去了。
+在阿Q的記憶上,這大約è¦ç®—æ˜¯ç”Ÿå¹³ç¬¬ä¸€ä»¶çš„å±ˆè¾±ï¼Œå› ç‚ºçŽ‹èƒ¡ä»¥çµ¡è…®é¬å的缺點,å‘來åªè¢«ä»–奚è½ï¼Œå¾žæ²’有奚è½ä»–,更ä¸å¿…說動手了。而他ç¾åœ¨ç«Ÿå‹•手,很æ„外,難é“真如市上所說,皇å¸å·²ç¶“åœäº†ï¼Œä¸è¦ç§€æ‰å’Œèˆ‰äººäº†ï¼Œå› æ¤è¶™å®¶æ¸›äº†å¨é¢¨ï¼Œå› æ¤ä»–們也便å°è¦·äº†ä»–麽?
+阿Qç„¡å¯é©å¾žçš„站著。
+é é 的走來了一個人,他的å°é åˆåˆ°äº†ã€‚這也是阿Qæœ€åŽæƒ¡çš„一個人,就是錢太爺的大兒å。他先å‰è·‘上城è£åŽ»é€²æ´‹å¸å ‚,ä¸çŸ¥æ€Žéº¼åˆè·‘åˆ°æ±æ´‹åŽ»äº†ï¼ŒåŠå¹´ä¹‹å¾Œä»–回到家è£ä¾†ï¼Œè…¿ä¹Ÿç›´äº†ï¼Œè¾®å也ä¸è¦‹äº†ï¼Œä»–çš„æ¯è¦ªå¤§å“了åå¹¾å ´ï¼Œä»–çš„è€å©†è·³äº†ä¸‰å›žäº•。後來,他的æ¯è¦ªåˆ°è™•èªªï¼Œâ€œé€™è¾®åæ˜¯è¢«å£žäººçŒé†‰äº†é…’剪去了。本來å¯ä»¥åšå¤§å®˜ï¼Œç¾åœ¨åªå¥½ç‰ç•™é•·å†èªªäº†ã€‚â€ç„¶è€Œé˜¿Qä¸è‚¯ä¿¡ï¼Œåç¨±ä»–â€œå‡æ´‹é¬¼åâ€ï¼Œä¹Ÿå«ä½œâ€œè£é€šå¤–國的人â€ï¼Œä¸€è¦‹ä»–,一定在肚åè£æš—æš—的咒罵。
+阿Q尤其“深惡而痛絕之â€çš„,是他的一æ¢å‡è¾®å。辮å而至於å‡ï¼Œå°±æ˜¯æ²’有了åšäººçš„è³‡æ ¼ï¼›ä»–çš„è€å©†ä¸è·³ç¬¬å››å›žäº•ï¼Œä¹Ÿä¸æ˜¯å¥½å¥³äººã€‚
+é€™â€œå‡æ´‹é¬¼åâ€è¿‘來了。
+“禿兒。驢……â€é˜¿Qæ·ä¾†æœ¬åªåœ¨è‚šåè£ç½µï¼Œæ²’有出éŽè²ï¼Œé€™å›žå› ç‚ºæ£æ°£å¿¿ï¼Œå› 為è¦å ±ä»‡ï¼Œä¾¿ä¸ç”±çš„輕輕的說出來了。
+䏿–™é€™ç¦¿å…’廿‹¿è‘—一支黃漆的æ£å——就是阿Q所謂å“喪棒——大蹋æ¥èµ°äº†éŽä¾†ã€‚阿Q在這剎那,便知é“å¤§ç´„è¦æ‰“了,趕緊抽緊ç‹éª¨ï¼Œè³äº†è‚©è†€ç‰å€™è‘—,果然,æ‹çš„一è²ï¼Œä¼¼ä¹Žç¢ºé‘¿æ‰“在自己é 上了。
+“我說他ï¼â€é˜¿Q指著近æ—的一個å©å,分辯說。
+æ‹ï¼æ‹æ‹ï¼
+在阿Q的記憶上,這大約è¦ç®—æ˜¯ç”Ÿå¹³ç¬¬äºŒä»¶çš„å±ˆè¾±ã€‚å¹¸è€Œæ‹æ‹çš„響了之後,於他倒似乎完çµäº†ä¸€ä»¶äº‹ï¼Œå而覺得輕鬆些,而且“忘å»â€é€™ä¸€ä»¶ç¥–傳的寶è²ä¹Ÿç™¼ç”Ÿäº†æ•ˆåŠ›ï¼Œä»–æ…¢æ…¢çš„èµ°ï¼Œå°‡åˆ°é…’åº—é–€å£ï¼Œæ—©å·²æœ‰äº›é«˜èˆˆäº†ã€‚
+但å°é¢èµ°ä¾†äº†éœä¿®åºµè£çš„å°å°¼å§‘。阿Q便在平時,看見伊也一定è¦å”¾ç½µï¼Œè€Œæ³åœ¨å±ˆè¾±ä¹‹å¾Œå‘¢ï¼Ÿä»–於是發生了回憶,åˆç™¼ç”Ÿäº†æ•µæ„¾äº†ã€‚
+“我ä¸çŸ¥é“æˆ‘ä»Šå¤©ç‚ºä»€éº¼é€™æ¨£æ™¦æ°£ï¼ŒåŽŸä¾†å°±å› ç‚ºè¦‹äº†ä½ ï¼â€ä»–想。
+他迎上去,大è²çš„å一å£å”¾æ²«ï¼š
+“咳,呸ï¼â€
+å°å°¼å§‘å…¨ä¸ç¬ï¼Œä½Žäº†é åªæ˜¯èµ°ã€‚阿Q走近伊身æ—,çªç„¶ä¼¸å‡ºæ‰‹åŽ»æ‘©è‘—ä¼Šæ–°å‰ƒçš„é 皮,呆笑著,說:
+“禿兒ï¼å¿«å›žåŽ»ï¼Œå’Œå°šç‰è‘—ä½ â€¦â€¦â€
+â€œä½ æ€Žéº¼å‹•æ‰‹å‹•è…³â€¦â€¦â€å°¼å§‘滿臉通紅的說,一é¢è¶•快走。
+酒店è£çš„人大笑了。阿Q看見自己的勛æ¥å¾—了賞è˜ï¼Œä¾¿æ„ˆåŠ èˆˆé«˜é‡‡çƒˆèµ·ä¾†ï¼š
+“和尚動得,我動ä¸å¾—?â€ä»–æ‰ä½ä¼Šçš„é¢é °ã€‚
+酒店è£çš„人大笑了。阿Qæ›´å¾—æ„,而且為了滿足那些賞鑒家起見,å†ç”¨åŠ›çš„ä¸€æ“°ï¼Œçº”æ”¾æ‰‹ã€‚
+他這一戰,早忘å»äº†çŽ‹èƒ¡ï¼Œä¹Ÿå¿˜å»äº†å‡æ´‹é¬¼åï¼Œä¼¼ä¹Žå°æ–¼ä»Šå¤©çš„一切“晦氣â€éƒ½å ±äº†ä»‡ï¼›è€Œä¸”奇怪,åˆä»¿ä½›å…¨èº«æ¯”æ‹æ‹çš„響了之後輕鬆,飄飄然的似乎è¦é£›åŽ»äº†ã€‚
+“這斷å絕å«çš„阿Qï¼â€é é 地è½å¾—å°å°¼å§‘的帶å“çš„è²éŸ³ã€‚
+“哈哈哈ï¼â€é˜¿Qå分得æ„的笑。
+“哈哈哈ï¼â€é…’店è£çš„人也ä¹åˆ†å¾—æ„的笑。
+有人說:有些å‹åˆ©è€…ï¼Œé¡˜æ„æ•µæ‰‹å¦‚虎,如鷹,他纔感得å‹åˆ©çš„æ¡å–œï¼›å‡ä½¿å¦‚羊,如å°é›žï¼Œä»–便å覺得å‹åˆ©çš„ç„¡èŠã€‚åˆæœ‰äº›å‹åˆ©è€…,當剋æœä¸€åˆ‡ä¹‹å¾Œï¼Œçœ‹è¦‹æ»çš„æ»äº†ï¼Œé™çš„é™äº†ï¼Œâ€œè‡£èª æƒ¶èª ææ»ç½ªæ»ç½ªâ€ï¼Œä»–æ–¼æ˜¯æ²’æœ‰äº†æ•µäººï¼Œæ²’æœ‰äº†å°æ‰‹ï¼Œæ²’有了朋å‹ï¼Œåªæœ‰è‡ªå·±åœ¨ä¸Šï¼Œä¸€å€‹ï¼Œå¤å¦å¦ï¼Œæ·’涼,寂寞,便å而感到了å‹åˆ©çš„æ‚²å“€ã€‚然而我們的阿Q廿²’有這樣ä¹ï¼Œä»–是永é å¾—æ„的:這或者也是ä¸åœ‹ç²¾ç¥žæ–‡æ˜Žå† 於全çƒçš„ä¸€å€‹è‰æ“šäº†ã€‚
+看那,他飄飄然的似乎è¦é£›åŽ»äº†ï¼
+然而這一次的å‹åˆ©ï¼Œå»åˆä½¿ä»–有些異樣。他飄飄然的飛了大åŠå¤©ï¼Œé£„é€²åœŸç©€ç¥ ï¼Œç…§ä¾‹æ‡‰è©²èººä¸‹ä¾¿æ‰“é¼¾ã€‚èª°çŸ¥é“這一晚,他很ä¸å®¹æ˜“åˆçœ¼ï¼Œä»–è¦ºå¾—è‡ªå·±çš„å¤§æ‹‡æŒ‡å’Œç¬¬äºŒæŒ‡æœ‰é»žå¤æ€ªï¼šä»¿ä½›æ¯”平常滑膩些。ä¸çŸ¥é“是å°å°¼å§‘的臉上有一點滑膩的æ±è¥¿ç²˜åœ¨ä»–指上,還是他的指é 在å°å°¼å§‘臉上磨得滑膩了?……
+“斷å絕å«çš„阿Qï¼â€
+阿Q的耳朵è£åˆè½åˆ°é€™å¥è©±ã€‚他想:ä¸éŒ¯ï¼Œæ‡‰è©²æœ‰ä¸€å€‹å¥³äººï¼Œæ–·å絕å«ä¾¿æ²’有人供一碗飯,……應該有一個女人。夫“ä¸å有三無後為大â€ï¼Œè€Œâ€œè‹¥æ•–之鬼餒而â€ï¼Œä¹Ÿæ˜¯ä¸€ä»¶äººç”Ÿçš„å¤§å“€ï¼Œæ‰€ä»¥ä»–é‚£æ€æƒ³ï¼Œå…¶å¯¦æ˜¯æ¨£æ¨£åˆæ–¼è–經賢傳的,åªå¯æƒœå¾Œä¾†æœ‰äº›â€œä¸èƒ½æ”¶å…¶æ”¾å¿ƒâ€äº†ã€‚
+“女人,女人ï¼â€¦â€¦â€ä»–想。
+“……和尚動得……女人,女人ï¼â€¦â€¦å¥³äººï¼â€ä»–åˆæƒ³ã€‚
+我們ä¸èƒ½çŸ¥é“這晚上阿Q在什麼時候纔打鼾。但大約他從æ¤ç¸½è¦ºå¾—æŒ‡é æœ‰äº›æ»‘膩,所以他從æ¤ç¸½æœ‰äº›é£„飄然;“女……â€ä»–想。
+峿¤ä¸€ç«¯ï¼Œæˆ‘們便å¯ä»¥çŸ¥é“女人是害人的æ±è¥¿ã€‚
+ä¸åœ‹çš„男人,本來大åŠéƒ½å¯ä»¥åšè–è³¢ï¼Œå¯æƒœå…¨è¢«å¥³äººæ¯€æŽ‰äº†ã€‚商是妲己鬧亡的;周是褒姒弄壞的;秦……雖然å²ç„¡æ˜Žæ–‡ï¼Œæˆ‘們也å‡å®šä»–å› ç‚ºå¥³äººï¼Œå¤§ç´„æœªå¿…å分錯;而董å“坿˜¯çš„確給貂蟬害æ»äº†ã€‚
+阿Q本來也是æ£äººï¼Œæˆ‘們雖然ä¸çŸ¥é“他曾蒙什麼明師指授éŽï¼Œä½†ä»–å°æ–¼â€œç”·å¥³ä¹‹å¤§é˜²â€å»æ·ä¾†éžå¸¸åš´ï¼›ä¹Ÿå¾ˆæœ‰æŽ’斥異端——如å°å°¼å§‘åŠå‡æ´‹é¬¼åä¹‹é¡žâ€”â€”çš„æ£æ°£ã€‚ä»–çš„å¸èªªæ˜¯ï¼šå‡¡å°¼å§‘,一定與和尚ç§é€šï¼›ä¸€å€‹å¥³äººåœ¨å¤–é¢èµ°ï¼Œä¸€å®šæƒ³å¼•誘野男人;一男一女在那è£è¬›è©±ï¼Œä¸€å®šè¦æœ‰å‹¾ç•¶äº†ã€‚為懲治他們起見,所以他往往怒目而視,或者大è²èªªå¹¾å¥â€œèª…心â€è©±ï¼Œæˆ–è€…åœ¨å†·åƒ»è™•ï¼Œä¾¿å¾žå¾Œé¢æ“²ä¸€å¡Šå°çŸ³é 。
+誰知é“他將到“而立â€ä¹‹å¹´ï¼Œç«Ÿè¢«å°å°¼å§‘å®³å¾—é£„é£„ç„¶äº†ã€‚é€™é£„é£„ç„¶çš„ç²¾ç¥žï¼Œåœ¨ç¦®æ•™ä¸Šæ˜¯ä¸æ‡‰è©²æœ‰çš„ï¼Œâ€”â€”æ‰€ä»¥å¥³äººçœŸå¯æƒ¡ï¼Œå‡ä½¿å°å°¼å§‘çš„è‡‰ä¸Šä¸æ»‘膩,阿Q便ä¸è‡³æ–¼è¢«è ±ï¼Œåˆå‡ä½¿å°å°¼å§‘的臉上蓋一層布,阿Q便也ä¸è‡³æ–¼è¢«è ±äº†ï¼Œâ€”—他五å…å¹´å‰ï¼Œæ›¾åœ¨æˆ²è‡ºä¸‹çš„人å¢ä¸æ“°éŽä¸€å€‹å¥³äººçš„å¤§è…¿ï¼Œä½†å› ç‚ºéš”ä¸€å±¤è¤²ï¼Œæ‰€ä»¥æ¤å¾Œä¸¦ä¸é£„飄然,——而å°å°¼å§‘並ä¸ç„¶ï¼Œé€™ä¹Ÿè¶³è¦‹ç•°ç«¯ä¹‹å¯æƒ¡ã€‚
+“女……â€é˜¿Q想。
+ä»–å°æ–¼ä»¥ç‚ºâ€œä¸€å®šæƒ³å¼•誘野男人â€çš„女人,時常留心看,然而伊並ä¸å°ä»–ç¬‘ã€‚ä»–å°æ–¼å’Œä»–講話的女人,也時常留心è½ï¼Œç„¶è€Œä¼Šåˆä¸¦ä¸æèµ·é—œæ–¼ä»€éº¼å‹¾ç•¶çš„è©±ä¾†ã€‚å“¦ï¼Œé€™ä¹Ÿæ˜¯å¥³äººå¯æƒ¡ä¹‹ä¸€ç¯€ï¼šä¼Šå€‘全都è¦è£â€œå‡æ£ç¶“â€çš„。
+這一天,阿Q在趙太爺家è£èˆ‚了一天米,åƒéŽæ™šé£¯ï¼Œä¾¿å在廚房è£å¸æ—±ç…™ã€‚倘在別家,åƒéŽæ™šé£¯æœ¬å¯ä»¥å›žåŽ»çš„äº†ï¼Œä½†è¶™åºœä¸Šæ™šé£¯æ—©ï¼Œé›–èªªå®šä¾‹ä¸å‡†æŽŒç‡ˆï¼Œä¸€åƒå®Œä¾¿ç¡è¦ºï¼Œç„¶è€Œå¶ç„¶ä¹Ÿæœ‰ä¸€äº›ä¾‹å¤–:其一,是趙大爺未進秀æ‰çš„æ™‚å€™ï¼Œå‡†å…¶é»žç‡ˆè®€æ–‡ç« ï¼›å…¶äºŒï¼Œä¾¿æ˜¯é˜¿Q來åšçŸå·¥çš„æ™‚å€™ï¼Œå‡†å…¶é»žç‡ˆèˆ‚ç±³ã€‚å› ç‚ºé€™ä¸€æ¢ä¾‹å¤–,所以阿Q在動手舂米之å‰ï¼Œé‚„å在廚房è£å¸æ—±ç…™ã€‚
+å³åª½ï¼Œæ˜¯è¶™å¤ªçˆºå®¶è£å”¯ä¸€çš„女僕,洗完了碗碟,也就在長凳上å下了,而且和阿Q談閑天:
+“太太兩天沒有åƒé£¯å“©ï¼Œå› 為è€çˆºè¦è²·ä¸€å€‹å°çš„……â€
+女人……å³åª½â€¦â€¦é€™å°å¤å€â€¦â€¦â€é˜¿Q想。
+“我們的少奶奶是八月è£è¦ç”Ÿå©å了……â€
+“女人……â€é˜¿Q想。
+阿Q放下煙管,站了起來。
+“我們的少奶奶……â€å³åª½é‚„嘮å¨èªªã€‚
+â€œæˆ‘å’Œä½ å›°è¦ºï¼Œæˆ‘å’Œä½ å›°è¦ºï¼â€é˜¿Q忽然æ¶ä¸ŠåŽ»ï¼Œå°ä¼Šè·ªä¸‹äº†ã€‚
+一剎時ä¸å¾ˆå¯‚然。
+“阿呀ï¼â€å³åª½æ¥žäº†ä¸€æ¯ï¼Œçªç„¶ç™¼æŠ–,大å«è‘—往外跑,且跑且嚷,似乎後來帶å“了。
+阿Qå°äº†ç‰†å£è·ªè‘—也發楞,於是兩手扶著空æ¿å‡³ï¼Œæ…¢æ…¢çš„站起來,仿佛覺得有些糟。他這時確也有些å¿å¿‘了,慌張的將煙管æ’在褲帶上,就想去舂米。蓬的一è²ï¼Œé 上著了很粗的一下,他急忙迴轉身去,那秀æ‰ä¾¿æ‹¿äº†ä¸€æ”¯å¤§ç«¹æ 站在他é¢å‰ã€‚
+â€œä½ åäº†ï¼Œâ€¦â€¦ä½ é€™â€¦â€¦â€
+大竹æ åˆå‘他劈下來了。阿Q兩手去抱é ,æ‹çš„æ£æ‰“åœ¨æŒ‡ç¯€ä¸Šï¼Œé€™å¯å¾ˆæœ‰äº›ç—›ã€‚ä»–è¡å‡ºå»šæˆ¿é–€ï¼Œä»¿ä½›èƒŒä¸Šåˆè‘—了一下似的。
+“忘八蛋ï¼â€ç§€æ‰åœ¨å¾Œé¢ç”¨äº†å®˜è©±é€™æ¨£ç½µã€‚
+阿Qå¥”å…¥èˆ‚ç±³å ´ï¼Œä¸€å€‹äººç«™è‘—ï¼Œé‚„è¦ºå¾—æŒ‡é 痛,還記得“忘八蛋â€ï¼Œå› 為這話是未莊的鄉下人從來ä¸ç”¨ï¼Œå°ˆæ˜¯è¦‹éŽå®˜åºœçš„é—Šäººç”¨çš„ï¼Œæ‰€ä»¥æ ¼å¤–æ€•ï¼Œè€Œå°è±¡ä¹Ÿæ ¼å¤–深。但這時,他那“女……â€çš„æ€æƒ³å»ä¹Ÿæ²’有了。而且打罵之後,似乎一件事也已經收æŸï¼Œå€’åè¦ºå¾—ä¸€ç„¡æŽ›ç¤™ä¼¼çš„ï¼Œä¾¿å‹•æ‰‹åŽ»èˆ‚ç±³ã€‚èˆ‚äº†ä¸€æœƒï¼Œä»–ç†±èµ·ä¾†äº†ï¼Œåˆæ‡äº†æ‰‹è„«è¡£æœã€‚
+脫下衣æœçš„æ™‚候,他è½å¾—外é¢å¾ˆç†±é¬§ï¼Œé˜¿Q生平本來最愛看熱鬧,便å³å°‹è²èµ°å‡ºåŽ»äº†ã€‚å°‹è²æ¼¸æ¼¸çš„尋到趙太爺的內院è£ï¼Œé›–然在æ˜é»ƒä¸ï¼Œå»è¾¨å¾—出許多人,趙府一家連兩日ä¸åƒé£¯çš„太太也在內,還有間å£çš„é„’ä¸ƒå«‚ï¼ŒçœŸæ£æœ¬å®¶çš„è¶™ç™½çœ¼ï¼Œè¶™å¸æ™¨ã€‚
+å°‘å¥¶å¥¶æ£æ‹–è‘—å³åª½èµ°å‡ºä¸‹æˆ¿ä¾†ï¼Œä¸€é¢èªªï¼š
+â€œä½ åˆ°å¤–é¢ä¾†ï¼Œâ€¦â€¦ä¸è¦èº²åœ¨è‡ªå·±æˆ¿è£æƒ³â€¦â€¦â€
+“誰ä¸çŸ¥é“ä½ æ£ç¶“,……çŸè¦‹æ˜¯è¬è¬å°‹ä¸å¾—的。â€é„’七嫂也從æ—說。
+å³åª½åªæ˜¯å“,夾些話,å»ä¸ç”šè½å¾—分明。
+阿Q想:“哼,有趣,這å°å¤å€ä¸çŸ¥é“鬧著什麼玩æ„兒了?â€ä»–想打è½ï¼Œèµ°è¿‘è¶™å¸æ™¨çš„身邊。這時他猛然間看見趙大爺å‘ä»–å¥”ä¾†ï¼Œè€Œä¸”æ‰‹è£æè‘—ä¸€æ”¯å¤§ç«¹æ 。他看見這一支大竹æ ï¼Œä¾¿çŒ›ç„¶é–“æ‚Ÿåˆ°è‡ªå·±æ›¾ç¶“è¢«æ‰“ï¼Œå’Œé€™ä¸€å ´ç†±é¬§ä¼¼ä¹Žæœ‰é»žç›¸é—œã€‚ä»–ç¿»èº«ä¾¿èµ°ï¼Œæƒ³é€ƒå›žèˆ‚ç±³å ´ï¼Œä¸åœ–這支竹æ 阻了他的去路,於是他åˆç¿»èº«ä¾¿èµ°ï¼Œè‡ªç„¶è€Œç„¶çš„走出後門,ä¸å¤šå·¥å¤«ï¼Œå·²åœ¨åœŸç©€ç¥ 內了。
+阿Qåäº†ä¸€æœƒï¼Œçš®è†šæœ‰äº›èµ·ç²Ÿï¼Œä»–è¦ºå¾—å†·äº†ï¼Œå› ç‚ºé›–åœ¨æ˜¥å£ï¼Œè€Œå¤œé–“é —æœ‰é¤˜å¯’ï¼Œå°šä¸å®œæ–¼èµ¤è†Šã€‚他也記得布衫留在趙家,但倘若去å–ï¼Œåˆæ·±æ€•ç§€æ‰çš„竹æ 。然而地ä¿é€²ä¾†äº†ã€‚
+“阿Qï¼Œä½ çš„åª½åª½çš„ï¼ä½ é€£è¶™å®¶çš„ç”¨äººéƒ½èª¿æˆ²èµ·ä¾†ï¼Œç°¡ç›´æ˜¯é€ å。害得我晚上沒有覺ç¡ï¼Œä½ 的媽媽的ï¼â€¦â€¦â€
+如是云云的教訓了一通,阿Qè‡ªç„¶æ²’æœ‰è©±ã€‚è‡¨æœ«ï¼Œå› ç‚ºåœ¨æ™šä¸Šï¼Œæ‡‰è©²é€åœ°ä¿åŠ å€é…’錢四百文,阿Qæ£æ²’有ç¾éŒ¢ï¼Œä¾¿ç”¨ä¸€é ‚æ°ˆå¸½åšæŠµæŠ¼ï¼Œä¸¦ä¸”è¨‚å®šäº†äº”æ¢ä»¶ï¼š
+一 明天用紅ç‡â€”—è¦ä¸€æ–¤é‡çš„——一å°ï¼Œé¦™ä¸€å°ï¼Œåˆ°è¶™åºœä¸ŠåŽ»è³ ç½ªã€‚
+二 趙府上請é“士祓除縊鬼,費用由阿Qè² æ“”ã€‚
+三 阿Q從æ¤ä¸å‡†è¸é€²è¶™åºœçš„門檻。四 å³åª½æ¤å¾Œå€˜æœ‰ä¸æ¸¬ï¼ŒæƒŸé˜¿Q是å•。
+五 阿Qä¸å‡†å†åŽ»ç´¢å–工錢和布衫。
+阿Qè‡ªç„¶éƒ½ç”æ‡‰äº†ï¼Œå¯æƒœæ²’有錢。幸而已經春天,棉被å¯ä»¥ç„¡ç”¨ï¼Œä¾¿è³ªäº†äºŒåƒå¤§éŒ¢ï¼Œå±¥è¡Œæ¢ç´„。赤膊磕é 之後,居然還剩幾文,他也ä¸å†è´–氈帽,統統å–了酒了。但趙家也並ä¸ç‡’香點ç‡ï¼Œå› 為太太拜佛的時候å¯ä»¥ç”¨ï¼Œç•™è‘—äº†ã€‚é‚£ç ´å¸ƒè¡«æ˜¯å¤§åŠåšäº†å°‘奶奶八月間生下來的å©å的襯尿布,那å°åŠç ´çˆ›çš„便都åšäº†å³åª½çš„鞋底。
+ç¬¬äº”ç« ã€€ç”Ÿè¨ˆå•題[编辑
+阿Q禮畢之後,ä»èˆŠå›žåˆ°åœŸç©€ç¥ ï¼Œå¤ªé™½ä¸‹åŽ»äº†ï¼Œæ¼¸æ¼¸è¦ºå¾—ä¸–ä¸Šæœ‰äº›å¤æ€ªã€‚ä»–ä»”ç´°ä¸€æƒ³ï¼Œçµ‚æ–¼çœæ‚ŸéŽä¾†ï¼šå…¶åŽŸå› è“‹åœ¨è‡ªå·±çš„èµ¤è†Šã€‚ä»–è¨˜å¾—ç ´å¤¾è¥–é‚„åœ¨ï¼Œä¾¿æŠ«åœ¨èº«ä¸Šï¼Œèººå€’äº†ï¼Œå¾…å¼µé–‹çœ¼ç›ï¼ŒåŽŸä¾†å¤ªé™½åˆå·²ç¶“照在西牆上é 了。他å起身,一é¢èªªé“,“媽媽的……â€
+他起來之後,也ä»èˆŠåœ¨è¡—ä¸Šé€›ï¼Œé›–ç„¶ä¸æ¯”赤膊之有切膚之痛,å»åˆæ¼¸æ¼¸çš„è¦ºå¾—ä¸–ä¸Šæœ‰äº›å¤æ€ªäº†ã€‚仿佛從這一天起,未莊的女人們忽然都怕了羞,伊們一見阿Q走來,便個個躲進門è£åŽ»ã€‚ç”šè€Œè‡³æ–¼å°‡è¿‘äº”åæ²çš„é„’ä¸ƒå«‚ï¼Œä¹Ÿè·Ÿè‘—åˆ¥äººäº‚é‘½ï¼Œè€Œä¸”å°‡å一æ²çš„女兒都å«é€²åŽ»äº†ã€‚é˜¿Q很以為奇,而且想:“這些æ±è¥¿å¿½ç„¶éƒ½å¸èµ·å°å§æ¨¡æ¨£ä¾†äº†ã€‚這娼婦們……â€
+ï¼Œå»æ˜¯è¨±å¤šæ—¥ä»¥å¾Œçš„事。其一,酒店ä¸è‚¯è³’æ¬ äº†ï¼›å…¶äºŒï¼Œç®¡åœŸç©€ç¥ çš„è€é å說些廢話,似乎å«ä»–èµ°ï¼›å…¶ä¸‰ï¼Œä»–é›–ç„¶è¨˜ä¸æ¸…多少日,但確乎有許多日,沒有一個人來å«ä»–åšçŸå·¥ã€‚酒店ä¸è³’,熬著也罷了;è€é åå‚¬ä»–èµ°ï¼Œåš•å›Œä¸€é€šä¹Ÿå°±ç®—äº†ï¼›åªæ˜¯æ²’有人來å«ä»–åšçŸå·¥ï¼Œå»ä½¿é˜¿Q肚å餓:這委實是一件éžå¸¸â€œåª½åª½çš„â€çš„事情。
+阿Qå¿ä¸ä¸‹åŽ»äº†ï¼Œä»–åªå¥½åˆ°è€ä¸»é¡§çš„å®¶è£åŽ»æŽ¢å•,——但ç¨ä¸è¨±è¸é€²è¶™åºœçš„門檻,——然而情形也異樣:一定走出一個男人來,ç¾äº†å分煩åŽçš„相貌,åƒå›žè¦†ä¹žä¸ä¸€èˆ¬çš„æ–æ‰‹é“:
+“沒有沒有ï¼ä½ 出去ï¼â€
+阿Q愈覺得稀奇了。他想,這些人家å‘來少ä¸äº†è¦å¹«å¿™ï¼Œä¸è‡³æ–¼ç¾åœ¨å¿½ç„¶éƒ½ç„¡äº‹ï¼Œé€™ç¸½è©²æœ‰äº›è¹Šè¹ºåœ¨è£é¢äº†ã€‚他留心打è½ï¼Œçº”知é“他們有事都去å«å°Don。這å°D,是一個窮å°å,åˆç˜¦åˆä¹ï¼Œåœ¨é˜¿Q的眼ç›è£ï¼Œä½ç½®æ˜¯åœ¨çŽ‹èƒ¡ä¹‹ä¸‹çš„ï¼Œèª°æ–™é€™å°å竟謀了他的飯碗去。所以阿Q這一氣,更與平常ä¸åŒï¼Œç•¶æ°£æ†¤æ†¤çš„走著的時候,忽然將手一æšï¼Œå”±é“:
+“我手執鋼éžå°‡ä½ 打ï¼â€¦â€¦â€
+幾天之後,他竟在錢府的照å£å‰é‡è¦‹äº†å°D。“仇人相見分外眼明â€ï¼Œé˜¿Q便迎上去,å°D也站ä½äº†ã€‚
+“畜生ï¼â€é˜¿Q怒目而視的說,嘴角上飛出唾沫來。
+“我是蟲豸,好麽?……â€å°D說。
+這謙éœå使阿Qæ›´åŠ æ†¤æ€’èµ·ä¾†ï¼Œä½†ä»–æ‰‹è£æ²’有鋼éžï¼Œæ–¼æ˜¯åªå¾—撲上去,伸手去拔å°D的辮å。å°D一手è·ä½äº†è‡ªå·±çš„è¾®æ ¹ï¼Œä¸€æ‰‹ä¹Ÿä¾†æ‹”é˜¿Q的辮å,阿Q便也將空著的一隻手è·ä½äº†è‡ªå·±çš„è¾®æ ¹ã€‚å¾žå…ˆå‰çš„阿Q看來,,å°D本來是ä¸è¶³é½’數的,但他近來挨了餓,åˆç˜¦åˆä¹å·²ç¶“ä¸ä¸‹æ–¼å°D,所以便æˆäº†å‹¢å‡åŠ›æ•µçš„ç¾è±¡ï¼Œå››é𻿉‹æ‹”著兩顆é ï¼Œéƒ½å½Žäº†è…°ï¼Œåœ¨éŒ¢å®¶ç²‰ç‰†ä¸Šæ˜ å‡ºä¸€å€‹è—色的虹形,至於åŠé»žé˜ä¹‹ä¹…了。
+“好了,好了ï¼â€çœ‹çš„人們說,大約是解勸的。
+“好,好ï¼â€çœ‹çš„人們說,ä¸çŸ¥é“æ˜¯è§£å‹¸ï¼Œæ˜¯é Œæšï¼Œé‚„是煽動。
+然而他們都ä¸è½ã€‚阿Q進三æ¥ï¼Œå°D便退三æ¥ï¼Œéƒ½ç«™è‘—ï¼›å°D進三æ¥ï¼Œé˜¿Q便退三æ¥ï¼Œåˆéƒ½ç«™è‘—。大約åŠé»žé˜ï¼Œâ€”—未莊少有自鳴é˜ï¼Œæ‰€ä»¥å¾ˆé›£èªªï¼Œæˆ–者二å分,——他們的é é«®è£ä¾¿éƒ½å†’煙,é¡ä¸Šä¾¿éƒ½æµæ±—,阿Q的手放鬆了,在åŒä¸€çž¬é–“,å°Dçš„æ‰‹ä¹Ÿæ£æ”¾é¬†äº†ï¼ŒåŒæ™‚ç›´èµ·ï¼ŒåŒæ™‚é€€é–‹ï¼Œéƒ½æ“ å‡ºäººå¢åŽ»ã€‚
+“記著罷,媽媽的……â€é˜¿Q回éŽé 去說。
+“媽媽的,記著罷……â€å°D也回éŽé 來說。
+é€™ä¸€å ´â€œé¾è™Žé¬¥â€ä¼¼ä¹Žä¸¦ç„¡å‹æ•—,也ä¸çŸ¥é“çœ‹çš„äººå¯æ»¿è¶³ï¼Œéƒ½æ²’有發什麼è°è«–,而阿Qå»ä»ç„¶æ²’有人來å«ä»–åšçŸå·¥ã€‚
+æœ‰ä¸€æ—¥å¾ˆæº«å’Œï¼Œå¾®é¢¨æ‹‚æ‹‚çš„é —æœ‰äº›å¤æ„了,阿Qå»è¦ºå¾—å¯’å†·èµ·ä¾†ï¼Œä½†é€™é‚„å¯æ“”當,第一倒是肚å餓。棉被,氈帽,布衫,早已沒有了,其次就賣了棉襖;ç¾åœ¨æœ‰è¤²å,å»è¬ä¸å¯è„«çš„ï¼›æœ‰ç ´å¤¾è¥–ï¼Œåˆé™¤äº†é€äººåšéž‹åº•之外,決定賣ä¸å‡ºéŒ¢ã€‚ä»–æ—©æƒ³åœ¨è·¯ä¸Šæ‹¾å¾—ä¸€è¨»éŒ¢ï¼Œä½†è‡³ä»Šé‚„æ²’æœ‰è¦‹ï¼›ä»–æƒ³åœ¨è‡ªå·±çš„ç ´å±‹è£å¿½ç„¶å°‹åˆ°ä¸€è¨»éŒ¢ï¼Œæ…Œå¼µçš„四顧,但屋內是空虛而且çžç„¶ã€‚於是他決計出門求食去了。
+他在路上走著è¦â€œæ±‚食â€ï¼Œçœ‹è¦‹ç†Ÿè˜çš„酒店,看見熟è˜çš„饅é ,但他都走éŽäº†ï¼Œä¸ä½†æ²’有暫åœï¼Œè€Œä¸”䏦䏿ƒ³è¦ã€‚ä»–æ‰€æ±‚çš„ä¸æ˜¯é€™é¡žæ±è¥¿äº†ï¼›ä»–求的是什麼æ±è¥¿ï¼Œä»–自己ä¸çŸ¥é“。
+æœªèŽŠæœ¬ä¸æ˜¯å¤§æ‘鎮,ä¸å¤šæ™‚便走盡了。æ‘å¤–å¤šæ˜¯æ°´ç”°ï¼Œæ»¿çœ¼æ˜¯æ–°ç§§çš„å«©ç¶ ï¼Œå¤¾è‘—å¹¾å€‹åœ“å½¢çš„æ´»å‹•çš„é»‘é»žï¼Œä¾¿æ˜¯è€•ç”°çš„è¾²å¤«ã€‚é˜¿Q並ä¸è³žé‘’這田家樂,å»åªæ˜¯èµ°ï¼Œå› 為他直覺的知é“這與他的“求食â€ä¹‹é“是很é¼é 的。但他終於走到éœä¿®åºµçš„牆外了。
+庵周åœä¹Ÿæ˜¯æ°´ç”°ï¼Œç²‰ç‰†çªå‡ºåœ¨æ–°ç¶ è£ï¼Œå¾Œé¢çš„ä½ŽåœŸç‰†è£æ˜¯èœåœ’。阿Qé²ç–‘了一會,四é¢ä¸€çœ‹ï¼Œä¸¦æ²’有人。他便爬上這矮牆去,扯著何首çƒè—¤ï¼Œä½†æ³¥åœŸä»ç„¶ç°Œç°Œçš„æŽ‰ï¼Œé˜¿Q的腳也索索的抖;終於攀著桑樹æžï¼Œè·³åˆ°è£é¢äº†ã€‚è£é¢çœŸæ˜¯é¬±é¬±è”¥è”¥ï¼Œä½†ä¼¼ä¹Žä¸¦æ²’有黃酒饅é ï¼Œä»¥åŠæ¤å¤–å¯åƒçš„之類。é 西牆是竹å¢ï¼Œä¸‹éºµè¨±å¤šç,åªå¯æƒœéƒ½æ˜¯ä¸¦æœªç…®ç†Ÿçš„ï¼Œé‚„æœ‰æ²¹èœæ—©ç¶“çµå,芥èœå·²å°‡é–‹èŠ±ï¼Œå°ç™½èœä¹Ÿå¾ˆè€äº†ã€‚
+阿Q仿佛文童è½ç¬¬ä¼¼çš„覺得很冤屈,他慢慢走近園門去,忽而éžå¸¸é©šå–œäº†ï¼Œé€™åˆ†æ˜Žæ˜¯ä¸€ç•¦è€è˜¿è””。他於是蹲下便拔,而門å£çªç„¶ä¼¸å‡ºä¸€å€‹å¾ˆåœ“çš„é 來,åˆå³ç¸®å›žåŽ»äº†ï¼Œé€™åˆ†æ˜Žæ˜¯å°å°¼å§‘。å°å°¼å§‘ä¹‹æµæ˜¯é˜¿Q本來視若è‰èŠ¥çš„ï¼Œä½†ä¸–äº‹é ˆâ€œé€€ä¸€æ¥æƒ³â€ï¼Œæ‰€ä»¥ä»–便趕緊拔起四個蘿蔔,擰下é’葉,兜在大襟è£ã€‚然而è€å°¼å§‘已經出來了。
+“阿彌陀佛,阿Qï¼Œä½ æ€Žéº¼è·³é€²åœ’è£ä¾†å·è˜¿è””ï¼â€¦â€¦é˜¿å‘€ï¼Œç½ªéŽå‘µï¼Œé˜¿å”·ï¼Œé˜¿å½Œé™€ä½›ï¼â€¦â€¦â€
+â€œæˆ‘ä»€éº¼æ™‚å€™è·³é€²ä½ çš„åœ’è£ä¾†å·è˜¿è””?â€é˜¿Q且看且走的說。
+“ç¾åœ¨â€¦â€¦é€™ä¸æ˜¯ï¼Ÿâ€è€å°¼å§‘指著他的衣兜。
+â€œé€™æ˜¯ä½ çš„ï¼Ÿä½ èƒ½å«å¾—ä»–ç”æ‡‰ä½ éº½ï¼Ÿä½ â€¦â€¦â€
+阿Q沒有說完話,拔æ¥ä¾¿è·‘;追來的是一匹很肥大的黑狗。這本來在å‰é–€çš„,ä¸çŸ¥æ€Žçš„到後園來了。黑狗哼而且追,已經è¦å’¬è‘—阿Q的腿,幸而從衣兜è£è½ä¸‹ä¸€å€‹è˜¿è””來,那狗給一嚇,略略一åœï¼Œé˜¿Q已經爬上桑樹,跨到土牆,連人和蘿蔔都滾出牆外é¢äº†ã€‚åªå‰©è‘—黑狗還在å°è‘—桑樹嗥,è€å°¼å§‘念著佛。
+阿Qæ€•å°¼å§‘åˆæ”¾å‡ºé»‘ç‹—ä¾†ï¼Œæ‹¾èµ·è˜¿è””ä¾¿èµ°ï¼Œæ²¿è·¯åˆæ’¿äº†å¹¾å¡Šå°çŸ³é ,但黑狗å»ä¸¦ä¸å†ç¾ã€‚阿Q於是拋了石塊,一é¢èµ°ä¸€é¢åƒï¼Œè€Œä¸”想é“,這è£ä¹Ÿæ²’有什麼æ±è¥¿å°‹ï¼Œä¸å¦‚進城去……
+待三個蘿蔔åƒå®Œæ™‚,他已經打定了進城的主æ„了。
+第å…ç« ã€€å¾žä¸èˆˆåˆ°æœ«è·¯[编辑]
+在未莊å†çœ‹è¦‹é˜¿Q出ç¾çš„æ™‚候,是剛éŽäº†é€™å¹´çš„ä¸ç§‹ã€‚人們都驚異,說是阿Q回來了,於是åˆå›žä¸ŠåŽ»æƒ³é“,他先å‰é‚£è£åŽ»äº†å‘¢ï¼Ÿé˜¿Qå‰å¹¾å›žçš„上城,大抵早就興高采烈的å°äººèªªï¼Œä½†é€™ä¸€æ¬¡å»ä¸¦ä¸ï¼Œæ‰€ä»¥ä¹Ÿæ²’有一個人留心到。他或者也曾告訴éŽç®¡åœŸç©€ç¥ çš„è€é å,然而未莊è€ä¾‹ï¼Œåªæœ‰è¶™å¤ªçˆºã€éŒ¢å¤ªçˆºå’Œç§€æ‰å¤§çˆºä¸ŠåŸŽçº”ç®—ä¸€ä»¶äº‹ã€‚å‡æ´‹é¬¼å尚且ä¸è¶³æ•¸ï¼Œä½•æ³æ˜¯é˜¿Qï¼šå› æ¤è€é åä¹Ÿå°±ä¸æ›¿ä»–宣傳,而未莊的社會上也就無從知é“了。
+但阿Q這回的回來,å»èˆ‡å…ˆå‰å¤§ä¸åŒï¼Œç¢ºä¹Žå¾ˆå€¼å¾—驚異。天色將黑,他ç¡çœ¼è’™æœ§çš„在酒店門å‰å‡ºç¾äº†ï¼Œä»–走近櫃臺,從腰間伸出手來,滿把是銀的和銅的,在櫃上一扔說,“ç¾éŒ¢ï¼æ‰“酒來ï¼â€ç©¿çš„æ˜¯æ–°å¤¾è¥–,看去腰間還掛著一個大æé€£ï¼Œæ²‰éˆ¿éˆ¿çš„將褲帶墜æˆäº†å¾ˆå½Žå¾ˆå½Žçš„弧線。未莊è€ä¾‹ï¼Œçœ‹è¦‹ç•¥æœ‰äº›é†’目的人物,是與其慢也寧敬的,ç¾åœ¨é›–ç„¶æ˜ŽçŸ¥é“æ˜¯é˜¿Qï¼Œä½†å› ç‚ºå’Œç ´å¤¾è¥–çš„é˜¿Q有些兩樣了,å¤äººäº‘,“士別三日便當刮目相待â€ï¼Œæ‰€ä»¥å ‚倌,掌櫃,酒客,路人,便自然顯出一種å‡è€Œä¸”敬的形態來。掌櫃既先之以點é ,åˆç¹¼ä¹‹ä»¥è«‡è©±ï¼š
+“è±ï¼Œé˜¿Qï¼Œä½ å›žä¾†äº†ï¼â€
+“回來了。â€
+â€œç™¼è²¡ç™¼è²¡ï¼Œä½ æ˜¯â€”â€”åœ¨â€¦â€¦â€
+“上城去了ï¼â€
+這一件新èžï¼Œç¬¬äºŒå¤©ä¾¿å‚³é了全未莊。人人都願æ„知é“ç¾éŒ¢å’Œæ–°å¤¾è¥–的阿Qçš„ä¸èˆˆå²ï¼Œæ‰€ä»¥åœ¨é…’店è£ï¼ŒèŒ¶é¤¨è£ï¼Œå»Ÿç°·ä¸‹ï¼Œä¾¿æ¼¸æ¼¸çš„æŽ¢è½å‡ºä¾†äº†ã€‚é€™çµæžœï¼Œæ˜¯é˜¿Q得了新敬ç•。
+據阿Q說,他是在舉人è€çˆºå®¶è£å¹«å¿™ã€‚這一節,è½çš„人都肅然了。這è€çˆºæœ¬å§“ç™½ï¼Œä½†å› ç‚ºåˆåŸŽè£åªæœ‰ä»–一個舉人,所以ä¸å¿…å†å† 姓,說起舉人來就是他。這也ä¸ç¨åœ¨æœªèŽŠæ˜¯å¦‚æ¤ï¼Œä¾¿æ˜¯ä¸€ç™¾é‡Œæ–¹åœ“之內也都如æ¤ï¼Œäººå€‘幾乎多以為他的姓åå°±å«èˆ‰äººè€çˆºçš„äº†ã€‚åœ¨é€™äººçš„åºœä¸Šå¹«å¿™ï¼Œé‚£ç•¶ç„¶æ˜¯å¯æ•¬çš„。但據阿Qåˆèªªï¼Œä»–å»ä¸é«˜èˆˆå†å¹«å¿™äº†ï¼Œå› 為這舉人è€çˆºå¯¦åœ¨å¤ªâ€œåª½åª½çš„â€äº†ã€‚這一節,è½çš„人都嘆æ¯è€Œä¸”å¿«æ„ï¼Œå› ç‚ºé˜¿Q本ä¸é…在舉人è€çˆºå®¶è£å¹«å¿™ï¼Œè€Œä¸å¹«å¿™æ˜¯å¯æƒœçš„。
+據阿Qèªªï¼Œä»–çš„å›žä¾†ï¼Œä¼¼ä¹Žä¹Ÿç”±æ–¼ä¸æ»¿æ„城è£äººï¼Œé€™å°±åœ¨ä»–們將長凳稱為æ¢å‡³ï¼Œè€Œä¸”ç…Žéšç”¨è”¥çµ²ï¼ŒåŠ ä»¥æœ€è¿‘è§€å¯Ÿæ‰€å¾—çš„ç¼ºé»žï¼Œæ˜¯å¥³äººçš„èµ°è·¯ä¹Ÿæ‰å¾—ä¸å¾ˆå¥½ã€‚ç„¶è€Œä¹Ÿå¶æœ‰å¤§å¯ä½©æœçš„地方,å³å¦‚未莊的鄉下人ä¸éŽæ‰“三åäºŒå¼µçš„ç«¹ç‰Œï¼Œåªæœ‰å‡æ´‹é¬¼åèƒ½å¤ å‰â€œéº»é†¬â€ï¼ŒåŸŽè£å»é€£å°çƒé¾œå都å‰å¾—ç²¾ç†Ÿçš„ã€‚ä»€éº¼å‡æ´‹é¬¼å,åªè¦æ”¾åœ¨åŸŽè£çš„åå¹¾æ²çš„å°çƒé¾œå的手è£ï¼Œä¹Ÿå°±ç«‹åˆ»æ˜¯â€œå°é¬¼è¦‹é–»çŽ‹â€ã€‚這一節,è½çš„人都赧然了。
+â€œä½ å€‘å¯çœ‹è¦‹éŽæ®ºé 麽?â€é˜¿Q說,“咳,好看。殺é©å‘½é»¨ã€‚唉,好看好看,……â€ä»–æ–æ–é ,將唾沫飛在æ£å°é¢çš„è¶™å¸æ™¨çš„臉上。這一節,è½çš„人都凜然了。但阿Qåˆå››é¢ä¸€çœ‹ï¼Œå¿½ç„¶æšèµ·å³æ‰‹ï¼Œç…§è‘—伸長脖åè½å¾—å‡ºç¥žçš„çŽ‹èƒ¡çš„å¾Œé …çª©ä¸Šç›´åŠˆä¸‹åŽ»é“:
+“嚓ï¼â€
+çŽ‹èƒ¡é©šå¾—ä¸€è·³ï¼ŒåŒæ™‚電光石ç«ä¼¼çš„趕快縮了é ,而è½çš„人åˆéƒ½æ‚šç„¶è€Œä¸”欣然了。從æ¤çŽ‹èƒ¡ç˜Ÿé 瘟腦的許多日,並且å†ä¸æ•¢èµ°è¿‘阿Q的身邊;別的人也一樣。
+阿Q這時在未莊人眼ç›è£çš„地ä½ï¼Œé›–䏿•¢èªªè¶…éŽè¶™å¤ªçˆºï¼Œä½†è¬‚之差ä¸å¤šï¼Œå¤§ç´„也就沒有什麼語病的了。
+然而ä¸å¤šä¹…,這阿Q的大å忽åˆå‚³é了未莊的閨ä¸ã€‚é›–ç„¶æœªèŽŠåªæœ‰éŒ¢è¶™å…©å§“是大屋,æ¤å¤–å之ä¹éƒ½æ˜¯æ·ºé–¨ï¼Œä½†é–¨ä¸ç©¶ç«Ÿæ˜¯é–¨ä¸ï¼Œæ‰€ä»¥ä¹Ÿç®—å¾—ä¸€ä»¶ç¥žç•°ã€‚å¥³äººå€‘è¦‹é¢æ™‚一定說,鄒七嫂在阿Qé‚£è£è²·äº†ä¸€æ¢è—綢裙,舊固然是舊的,但åªåŒ–了ä¹è§’錢。還有趙白眼的æ¯è¦ªï¼Œâ€”â€”ä¸€èªªæ˜¯è¶™å¸æ™¨çš„æ¯è¦ªï¼Œå¾…è€ƒï¼Œâ€”â€”ä¹Ÿè²·äº†ä¸€ä»¶å©åç©¿çš„å¤§ç´…æ´‹ç´—è¡«ï¼Œä¸ƒæˆæ–°ï¼Œåªç”¨ä¸‰ç™¾å¤§éŒ¢ä¹äºŒä¸²ã€‚於是伊們都眼巴巴的想見阿Q,缺綢裙的想å•ä»–è²·ç¶¢è£™ï¼Œè¦æ´‹ç´—衫的想å•他買洋紗衫,ä¸ä½†è¦‹äº†ä¸é€ƒé¿ï¼Œæœ‰æ™‚阿Q已經走éŽäº†ï¼Œä¹Ÿé‚„è¦è¿½ä¸ŠåŽ»å«ä½ä»–,å•é“:
+“阿Qï¼Œä½ é‚„æœ‰ç¶¢è£™éº½ï¼Ÿæ²’æœ‰ï¼Ÿç´—è¡«ä¹Ÿè¦çš„,有罷?â€
+後來這終於從淺閨傳進深閨è£åŽ»äº†ã€‚å› ç‚ºé„’ä¸ƒå«‚å¾—æ„之餘,將伊的綢裙請趙太太去鑒賞,趙太太åˆå‘Šè¨´äº†è¶™å¤ªçˆºè€Œä¸”著實æç¶äº†ä¸€ç•ªã€‚趙太爺便在晚飯桌上,和秀æ‰å¤§çˆºè¨Žè«–,以為阿Qå¯¦åœ¨æœ‰äº›å¤æ€ªï¼Œæˆ‘們門窗應該å°å¿ƒäº›ï¼›ä½†ä»–çš„æ±è¥¿ï¼Œä¸çŸ¥é“å¯é‚„有什麼å¯è²·ï¼Œä¹Ÿè¨±æœ‰é»žå¥½æ±è¥¿ç½·ã€‚åŠ ä»¥è¶™å¤ªå¤ªä¹Ÿæ£æƒ³è²·ä¸€ä»¶åƒ¹å»‰ç‰©ç¾Žçš„çš®èƒŒå¿ƒã€‚æ–¼æ˜¯å®¶æ—æ±ºè°ï¼Œä¾¿æ‰˜é„’七嫂å³åˆ»åŽ»å°‹é˜¿Qï¼Œè€Œä¸”ç‚ºæ¤æ–°é—¢äº†ç¬¬ä¸‰ç¨®çš„例外:這晚上也姑且特准點油燈。
+油燈幹了ä¸å°‘了,阿Qé‚„ä¸åˆ°ã€‚è¶™åºœçš„å…¨çœ·éƒ½å¾ˆç„¦æ€¥ï¼Œæ‰“è‘—å‘µæ¬ ï¼Œæˆ–æ¨é˜¿Q太飄忽,或怨鄒七嫂ä¸ä¸Šç·Šã€‚è¶™å¤ªå¤ªé‚„æ€•ä»–å› ç‚ºæ˜¥å¤©çš„æ¢ä»¶ä¸æ•¢ä¾†ï¼Œè€Œè¶™å¤ªçˆºä»¥ç‚ºä¸è¶³æ…®ï¼šå› 為這是“我â€åŽ»å«ä»–的。果然,到底趙太爺有見è˜ï¼Œé˜¿Q終於跟著鄒七嫂進來了。“他åªèªªæ²’æœ‰æ²’æœ‰ï¼Œæˆ‘èªªä½ è‡ªå·±ç•¶é¢èªªåŽ»ï¼Œä»–é‚„è¦èªªï¼Œæˆ‘說……â€é„’七嫂氣喘åå的走著說。
+“太爺ï¼â€é˜¿Q似笑éžç¬‘çš„å«äº†ä¸€è²ï¼Œåœ¨ç°·ä¸‹ç«™ä½äº†ã€‚
+“阿Q,è½èªªä½ 在外é¢ç™¼è²¡ï¼Œâ€è¶™å¤ªçˆºè¸±é–‹åŽ»ï¼Œçœ¼ç›æ‰“é‡è‘—他的全身,一é¢èªªã€‚“那很好,那很好的。這個,……è½èªªä½ 有些舊æ±è¥¿ï¼Œâ€¦â€¦å¯ä»¥éƒ½æ‹¿ä¾†çœ‹ä¸€çœ‹ï¼Œâ€¦â€¦é€™ä¹Ÿä¸¦ä¸æ˜¯åˆ¥çš„ï¼Œå› ç‚ºæˆ‘å€’è¦â€¦â€¦â€â€œæˆ‘å°é„’七嫂說éŽäº†ã€‚都完了。â€â€œå®Œäº†ï¼Ÿâ€è¶™å¤ªçˆºä¸è¦ºå¤±è²çš„èªªï¼Œâ€œé‚£è£æœƒå®Œå¾—這樣快呢?â€â€œé‚£æ˜¯æœ‹å‹çš„,本來ä¸å¤šã€‚他們買了些,……â€â€œç¸½è©²é‚„有一點罷。â€â€œç¾åœ¨ï¼Œåªå‰©äº†ä¸€å¼µé–€å¹•了。â€â€œå°±æ‹¿é–€å¹•來看看罷。â€è¶™å¤ªå¤ªæ…Œå¿™èªªã€‚
+“那麼,明天拿來就是,â€è¶™å¤ªçˆºå»ä¸ç”šç†±å¿ƒäº†ã€‚“阿Qï¼Œä½ ä»¥å¾Œæœ‰ä»€éº¼æ±è¥¿çš„æ™‚å€™ï¼Œä½ å„˜å…ˆé€ä¾†çµ¦æˆ‘們看,……â€
+â€œåƒ¹éŒ¢æ±ºä¸æœƒæ¯”別家出得少ï¼â€ç§€æ‰èªªã€‚ç§€æ‰å¨˜å忙一瞥阿Q的臉,看他感動了沒有。
+“我è¦ä¸€ä»¶çš®èƒŒå¿ƒã€‚â€è¶™å¤ªå¤ªèªªã€‚
+阿Qé›–ç„¶ç”æ‡‰è‘—ï¼Œå»æ‡¶æ´‹æ´‹çš„出去了,也ä¸çŸ¥é“ä»–æ˜¯å¦æ”¾åœ¨å¿ƒä¸Šã€‚é€™ä½¿è¶™å¤ªçˆºå¾ˆå¤±æœ›ï¼Œæ°£æ†¤è€Œä¸”æ“”å¿ƒï¼Œè‡³æ–¼åœæ¢äº†æ‰“å‘µæ¬ ã€‚ç§€æ‰å°æ–¼é˜¿Q的態度也很ä¸å¹³ï¼Œæ–¼æ˜¯èªªï¼Œé€™å¿˜å…«è›‹è¦æé˜²ï¼Œæˆ–者ä¸å¦‚å©å’地ä¿ï¼Œä¸è¨±ä»–ä½åœ¨æœªèŽŠã€‚ä½†è¶™å¤ªçˆºä»¥ç‚ºä¸ç„¶ï¼Œèªªé€™ä¹Ÿæ€•è¦çµæ€¨ï¼Œæ³ä¸”åšé€™è·¯ç”Ÿæ„的大概是“è€é·¹ä¸åƒçª©ä¸‹é£Ÿâ€ï¼Œæœ¬æ‘倒ä¸å¿…擔心的;åªè¦è‡ªå·±å¤œè£è¦é†’點就是了。秀æ‰è½äº†é€™â€œåºè¨“â€ï¼Œéžå¸¸ä¹‹ä»¥ç‚ºç„¶ï¼Œä¾¿å³åˆ»æ’¤éŠ·äº†é©…é€é˜¿Qçš„æè°ï¼Œè€Œä¸”å®å›‘鄒七嫂,請伊åƒè¬ä¸è¦å‘人æèµ·é€™ä¸€æ®µè©±ã€‚
+但第二日,鄒七嫂便將那è—裙去染了皂,åˆå°‡é˜¿Qå¯ç–‘之點傳æšå‡ºåŽ»äº†ï¼Œå¯æ˜¯ç¢ºæ²’有æèµ·ç§€æ‰è¦é©…é€ä»–這一節。然而這已經於阿Q很ä¸åˆ©ã€‚最先,地ä¿å°‹ä¸Šé–€äº†ï¼Œå–了他的門幕去,阿Q說是趙太太è¦çœ‹çš„,而地ä¿ä¹Ÿä¸é‚„並且è¦è°å®šæ¯æœˆçš„åæ•¬éŒ¢ã€‚其次,是æ‘äººå°æ–¼ä»–的敬ç•å¿½è€Œè®Šç›¸äº†ï¼Œé›–ç„¶é‚„ä¸æ•¢ä¾†æ”¾è‚†ï¼Œå»å¾ˆæœ‰é é¿çš„神情,而這神情和先å‰çš„防他來“嚓â€çš„æ™‚候åˆä¸åŒï¼Œé —混著“敬而é 之â€çš„分å了。
+åªæœ‰ä¸€ç閑人們å»é‚„è¦å°‹æ ¹ç©¶åº•的去探阿Q的底細。阿Q也並ä¸è«±é£¾ï¼Œå‚²ç„¶çš„說出他的經驗來。從æ¤ä»–們纔知é“,他ä¸éŽæ˜¯ä¸€å€‹å°è…³è‰²ï¼Œä¸ä½†ä¸èƒ½ä¸Šç‰†ï¼Œä¸¦ä¸”ä¸èƒ½é€²æ´žï¼Œåªç«™åœ¨æ´žå¤–接æ±è¥¿ã€‚æœ‰ä¸€å¤œï¼Œä»–å‰›çº”æŽ¥åˆ°ä¸€å€‹åŒ…ï¼Œæ£æ‰‹å†é€²åŽ»ï¼Œä¸ä¸€æœƒï¼Œåªè½å¾—è£é¢å¤§åš·èµ·ä¾†ï¼Œä»–便趕緊跑,連夜爬出城,逃回未莊來了,從æ¤ä¸æ•¢å†åŽ»åšã€‚ç„¶è€Œé€™æ•…äº‹å»æ–¼é˜¿Qæ›´ä¸åˆ©ï¼Œæ‘äººå°æ–¼é˜¿Q的“敬而é 之â€è€…ï¼Œæœ¬å› ç‚ºæ€•çµæ€¨ï¼Œèª°æ–™ä»–ä¸éŽæ˜¯ä¸€å€‹ä¸æ•¢å†å·çš„å·å…’呢?這實在是“斯亦ä¸è¶³ç•也矣â€ã€‚
+ç¬¬ä¸ƒç« ã€€é©å‘½[编辑]
+å®£çµ±ä¸‰å¹´ä¹æœˆå四日——å³é˜¿Qå°‡æé€£è³£çµ¦è¶™ç™½çœ¼çš„這一天——三更四點,有一隻大çƒç¯·èˆ¹åˆ°äº†è¶™åºœä¸Šçš„æ²³åŸ é 。這船從黑é†é†ä¸ç›ªä¾†ï¼Œé„‰ä¸‹äººç¡å¾—熟,都沒有知é“;出去時將近黎明,å»å¾ˆæœ‰å¹¾å€‹çœ‹è¦‹çš„äº†ã€‚æ“šæŽ¢é æŽ¢è…¦çš„èª¿æŸ¥ä¾†çš„çµæžœï¼ŒçŸ¥é“那竟是舉人è€çˆºçš„船ï¼
+那船便將大ä¸å®‰è¼‰çµ¦äº†æœªèŽŠï¼Œä¸åˆ°æ£åˆï¼Œå…¨æ‘的人心就很動æ–。船的使命,趙家本來是很秘密的,但茶åŠé…’肆è£å»éƒ½èªªï¼Œé©å‘½é»¨è¦é€²åŸŽï¼Œèˆ‰äººè€çˆºåˆ°æˆ‘們鄉下來逃難了。惟有鄒七嫂ä¸ä»¥ç‚ºç„¶ï¼Œèªªé‚£ä¸éŽæ˜¯å¹¾å£ç ´è¡£ç®±ï¼Œèˆ‰äººè€çˆºæƒ³ä¾†å¯„å˜çš„,å»å·²è¢«è¶™å¤ªçˆºå›žè¦†è½‰åŽ»ã€‚å…¶å¯¦èˆ‰äººè€çˆºå’Œè¶™ç§€æ‰ç´ ä¸ç›¸èƒ½ï¼Œåœ¨ç†æœ¬ä¸èƒ½æœ‰â€œå…±æ‚£é›£â€çš„æƒ…誼,æ³ä¸”鄒七嫂åˆå’Œè¶™å®¶æ˜¯é„°å±…,見èžè¼ƒç‚ºåˆ‡è¿‘,所以大概該是伊å°çš„。
+阿Q的耳朵è£ï¼Œæœ¬ä¾†æ—©è½åˆ°éŽé©å‘½é»¨é€™ä¸€å¥è©±ï¼Œä»Šå¹´åˆè¦ªçœ¼è¦‹éŽæ®ºæŽ‰é©å‘½é»¨ã€‚但他有一種ä¸çŸ¥å¾žé‚£è£ä¾†çš„æ„è¦‹ï¼Œä»¥ç‚ºé©å‘½é»¨ä¾¿æ˜¯é€ åï¼Œé€ åä¾¿æ˜¯èˆ‡ä»–ç‚ºé›£ï¼Œæ‰€ä»¥ä¸€å‘æ˜¯â€œæ·±æƒ¡è€Œç—›çµ•之â€çš„ã€‚æ®Šä¸æ–™é€™å»ä½¿ç™¾é‡Œèžå的舉人è€çˆºæœ‰é€™æ¨£æ€•,於是他未å…也有些“神往â€äº†ï¼Œæ³ä¸”未莊的一群鳥男女的慌張的神情,也使阿Qæ›´å¿«æ„。
+“é©å‘½ä¹Ÿå¥½ç½·ï¼Œâ€é˜¿Q想,“é©é€™å¤¥åª½åª½çš„çš„å‘½ï¼Œå¤ªå¯æƒ¡ï¼å¤ªå¯æ¨ï¼â€¦â€¦ä¾¿æ˜¯æˆ‘ï¼Œä¹Ÿè¦æŠ•é™é©å‘½é»¨äº†ã€‚â€
+阿Q近來用度窘,大約略略有些ä¸å¹³ï¼›åР以åˆé–“å–äº†å…©ç¢—ç©ºè‚šé…’ï¼Œæ„ˆåŠ é†‰å¾—å¿«ï¼Œä¸€é¢æƒ³ä¸€é¢èµ°ï¼Œä¾¿åˆé£„飄然起來。ä¸çŸ¥æ€Žéº¼ä¸€ä¾†ï¼Œå¿½è€Œä¼¼ä¹Žé©å‘½é»¨ä¾¿æ˜¯è‡ªå·±ï¼ŒæœªèŽŠäººå»éƒ½æ˜¯ä»–的俘虜了。他得æ„之餘,ç¦ä¸ä½å¤§è²çš„åš·é“:
+â€œé€ å了ï¼é€ å了ï¼â€
+未莊人都用了驚懼的眼光å°ä»–çœ‹ã€‚é€™ä¸€ç¨®å¯æ†çš„眼光,是阿Q從來沒有見éŽçš„,一見之下,åˆä½¿ä»–舒æœå¾—如兿œˆè£å–äº†é›ªæ°´ã€‚ä»–æ›´åŠ é«˜èˆˆçš„èµ°è€Œä¸”å–Šé“:
+“好,……我è¦ä»€éº¼å°±æ˜¯ä»€éº¼ï¼Œæˆ‘æ¡å–œèª°å°±æ˜¯èª°ã€‚得得,é˜é˜ï¼æ‚”ä¸è©²ï¼Œé…’醉錯斬了é„賢弟,悔ä¸è©²ï¼Œå‘€å‘€å‘€â€¦â€¦å¾—得,é˜é˜ï¼Œå¾—,é˜ä»¤é˜ï¼æˆ‘手執鋼éžå°‡ä½ 打……â€
+趙府上的兩ä½ç”·äººå’Œå…©å€‹çœŸæœ¬å®¶ï¼Œä¹Ÿæ£ç«™åœ¨å¤§é–€å£è«–é©å‘½ã€‚阿Q沒有見,昂了é ç›´å”±éŽåŽ»ã€‚â€œå¾—å¾—ï¼Œâ€¦â€¦â€
+“è€Q,â€è¶™å¤ªçˆºæ€¯æ€¯çš„迎著低è²çš„å«ã€‚“é˜é˜ï¼Œâ€é˜¿Qæ–™ä¸åˆ°ä»–çš„åå—æœƒå’Œâ€œè€â€å—è¯çµèµ·ä¾†ï¼Œä»¥ç‚ºæ˜¯ä¸€å¥åˆ¥çš„è©±ï¼Œèˆ‡å·±ç„¡å¹¹ï¼Œåªæ˜¯å”±ã€‚“得,é˜ï¼Œé˜ä»¤é˜ï¼Œé˜ï¼â€â€œè€Q。â€â€œæ‚”ä¸è©²â€¦â€¦â€
+“阿Qï¼â€ç§€æ‰åªå¾—直呼其å了。
+阿Q這纔站ä½ï¼Œæªè‘—é å•é“,“什麼?â€
+“è€Q,…ç¾åœ¨â€¦â€¦â€è¶™å¤ªçˆºå»åˆæ²’有話,“ç¾åœ¨â€¦â€¦ç™¼è²¡éº½ï¼Ÿâ€
+“發財?自然。è¦ä»€éº¼å°±æ˜¯ä»€éº¼â€¦â€¦â€
+“阿……Qå“¥ï¼Œåƒæˆ‘å€‘é€™æ¨£çª®æœ‹å‹æ˜¯ä¸è¦ç·Šçš„……â€è¶™ç™½çœ¼æƒ´æƒ´çš„說,似乎想探é©å‘½é»¨çš„å£é¢¨ã€‚
+“窮朋å‹ï¼Ÿä½ 總比我有錢。â€é˜¿Q說著自去了。
+大家都憮然,沒有話。趙太爺父å回家,晚上商é‡åˆ°é»žç‡ˆã€‚趙白眼回家,便從腰間扯下æé€£ä¾†ï¼Œäº¤çµ¦ä»–女人è—在箱底è£ã€‚
+阿Qé£„é£„ç„¶çš„é£›äº†ä¸€é€šï¼Œå›žåˆ°åœŸç©€ç¥ ï¼Œé…’å·²ç¶“é†’é€äº†ã€‚é€™æ™šä¸Šï¼Œç®¡ç¥ çš„è€é å也æ„外的和氣,請他å–茶;阿Q便å‘ä»–è¦äº†å…©å€‹é¤…,åƒå®Œä¹‹å¾Œï¼Œåˆè¦äº†ä¸€æ”¯é»žéŽçš„四兩ç‡å’Œä¸€å€‹æ¨¹ç‡è‡ºï¼Œé»žèµ·ä¾†ï¼Œç¨è‡ªèººåœ¨è‡ªå·±çš„å°å±‹è£ã€‚他說ä¸å‡ºçš„æ–°é®®è€Œä¸”高興,ç‡ç«åƒå…ƒå¤œä¼¼çš„é–ƒé–ƒçš„è·³ï¼Œä»–çš„æ€æƒ³ä¹Ÿè¿¸è·³èµ·ä¾†äº†ï¼š
+â€œé€ å?有趣,……來了一陣白盔白甲的é©å‘½é»¨ï¼Œéƒ½æ‹¿è‘—æ¿åˆ€ï¼Œé‹¼éžï¼Œç‚¸å½ˆï¼Œæ´‹ç‚®ï¼Œä¸‰å°–å…©åˆƒåˆ€ï¼Œé‰¤é®æ§ï¼Œèµ°éŽåœŸç©€ç¥ ,å«é“,‘阿Qï¼åŒåŽ»åŒåŽ»ï¼â€™æ–¼æ˜¯ä¸€åŒåŽ»ã€‚â€¦â€¦
+“這時未莊的一夥鳥男女纔好笑哩,跪下å«é“,‘阿Q,饒命ï¼â€™èª°è½ä»–ï¼ç¬¬ä¸€å€‹è©²æ»çš„æ˜¯å°D和趙太爺,還有秀æ‰ï¼Œé‚„æœ‰å‡æ´‹é¬¼å,……留幾æ¢éº½ï¼ŸçŽ‹èƒ¡æœ¬ä¾†é‚„å¯ç•™ï¼Œä½†ä¹Ÿä¸è¦äº†ã€‚……
+“æ±è¥¿ï¼Œâ€¦â€¦ç›´èµ°é€²åŽ»æ‰“é–‹ç®±å來:元寶,洋錢,洋紗衫,……秀æ‰å¨˜å的一張寧å¼åºŠå…ˆæ¬åˆ°åœŸç©€ç¥ ,æ¤å¤–便擺了錢家的桌椅,——或者也就用趙家的罷。自己是ä¸å‹•手的了,å«å°D來æ¬ï¼Œè¦æ¬å¾—快,æ¬å¾—ä¸å¿«æ‰“嘴巴。……
+â€œè¶™å¸æ™¨çš„妹å真醜。鄒七嫂的女兒éŽå¹¾å¹´å†èªªã€‚凿´‹é¬¼åçš„è€å©†æœƒå’Œæ²’有辮å的男人ç¡è¦ºï¼Œåš‡ï¼Œä¸æ˜¯å¥½æ±è¥¿ï¼ç§€æ‰çš„è€å©†æ˜¯çœ¼èƒžä¸Šæœ‰ç–¤çš„。……å³åª½é•·ä¹…ä¸è¦‹äº†ï¼Œä¸çŸ¥é“在那è£ï¼Œâ€”â€”å¯æƒœè…³å¤ªå¤§ã€‚â€
+阿Q沒有想得å分åœç•¶ï¼Œå·²ç¶“發了鼾è²ï¼Œå››å…©ç‡é‚„åªé»žåŽ»äº†å°åŠå¯¸ï¼Œç´…焰焰的光照著他張開的嘴。
+“è·è·ï¼â€é˜¿Q忽而大å«èµ·ä¾†ï¼ŒæŠ¬äº†é 倉皇的四顧,待到看見四兩ç‡ï¼Œå»åˆå€’é ç¡åŽ»äº†ã€‚
+第二天他起得很é²ï¼Œèµ°å‡ºè¡—上看時,樣樣都照舊。他也ä»ç„¶è‚šé¤“,他想著,想ä¸èµ·ä»€éº¼ä¾†ï¼›ä½†ä»–忽而似乎有了主æ„了,慢慢的跨開æ¥ï¼Œæœ‰æ„ç„¡æ„的走到éœä¿®åºµã€‚
+庵和春天時節一樣éœï¼Œç™½çš„牆å£å’Œæ¼†é»‘的門。他想了一想,å‰åŽ»æ‰“é–€ï¼Œä¸€éš»ç‹—åœ¨è£é¢å«ã€‚他急急拾了幾塊斷磚,å†ä¸ŠåŽ»è¼ƒç‚ºç”¨åŠ›çš„æ‰“ï¼Œæ‰“åˆ°é»‘é–€ä¸Šç”Ÿå‡ºè¨±å¤šéº»é»žçš„æ™‚å€™ï¼Œçº”è½å¾—有人來開門。
+阿Q連忙æå¥½ç£šé ,擺開馬æ¥ï¼Œæº–備和黑狗來開戰。但庵門åªé–‹äº†ä¸€æ¢ç¸«ï¼Œä¸¦ç„¡é»‘狗從ä¸è¡å‡ºï¼Œæœ›é€²åŽ»åªæœ‰ä¸€å€‹è€å°¼å§‘。
+â€œä½ åˆä¾†ä»€éº¼äº‹ï¼Ÿâ€ä¼Šå¤§åƒä¸€é©šçš„說。
+“é©å‘½äº†â€¦â€¦ä½ 知é“?……â€é˜¿Q說得很å«ç³Šã€‚
+“é©å‘½é©å‘½ï¼Œé©éŽä¸€é©çš„ï¼Œâ€¦â€¦ä½ å€‘è¦é©å¾—我們怎麼樣呢?â€è€å°¼å§‘兩眼通紅的說。
+“什麼?……â€é˜¿Q詫異了。
+â€œä½ ä¸çŸ¥é“,他們已經來é©éŽäº†ï¼â€
+“誰?……â€é˜¿Q更其詫異了。
+“那秀æ‰å’Œæ´‹é¬¼åï¼â€
+阿Q很出æ„外,ä¸ç”±çš„一錯愕;è€å°¼å§‘見他失了銳氣,便飛速的關了門,阿Qå†æŽ¨æ™‚ï¼Œç‰¢ä¸å¯é–‹ï¼Œå†æ‰“時,沒有回ç”了。
+那還是上åˆçš„äº‹ã€‚è¶™ç§€æ‰æ¶ˆæ¯éˆï¼Œä¸€çŸ¥é“é©å‘½é»¨å·²åœ¨å¤œé–“進城,便將辮åç›¤åœ¨é ‚ä¸Šï¼Œä¸€æ—©åŽ»æ‹œè¨ªé‚£æ·ä¾†ä¹Ÿä¸ç›¸èƒ½çš„錢洋鬼åã€‚é€™æ˜¯â€œå’¸èˆ‡ç¶æ–°â€çš„æ™‚候了,所以他們便談得很投機,立刻æˆäº†æƒ…投æ„åˆçš„åŒå¿—,也相約去é©å‘½ã€‚ä»–å€‘æƒ³è€Œåˆæƒ³ï¼Œçº”想出éœä¿®åºµè£æœ‰ä¸€å¡Šâ€œçš‡å¸è¬æ²è¬è¬æ²â€çš„é¾ç‰Œï¼Œæ˜¯æ‡‰è©²è¶•ç·Šé©æŽ‰çš„ï¼Œæ–¼æ˜¯åˆç«‹åˆ»åŒåˆ°åºµè£åŽ»é©å‘½ã€‚å› ç‚ºè€å°¼å§‘來阻擋,說了三å¥è©±ï¼Œä»–們便將伊當作滿政府,在é 上很給了ä¸å°‘çš„æ£åå’Œæ —é‘¿ã€‚å°¼å§‘å¾…ä»–å€‘èµ°å¾Œï¼Œå®šäº†ç¥žä¾†æª¢é»žï¼Œé¾ç‰Œå›ºç„¶å·²ç¶“碎在地上了,而且åˆä¸è¦‹äº†è§€éŸ³å¨˜å¨˜åº§å‰çš„一個宣德çˆã€‚
+這事阿Q後來纔知é“ã€‚ä»–é —æ‚”è‡ªå·±ç¡è‘—,但也深怪他們ä¸ä¾†æ‹›å‘¼ä»–。他åˆé€€ä¸€æ¥æƒ³é“:
+“難é“ä»–å€‘é‚„æ²’æœ‰çŸ¥é“æˆ‘已經投é™äº†é©å‘½é»¨éº½ï¼Ÿâ€
+ç¬¬å…«ç« ã€€ä¸å‡†é©å‘½[编辑]
+未莊的人心日見其安éœäº†ã€‚據傳來的消æ¯ï¼ŒçŸ¥é“é©å‘½é»¨é›–然進了城,倒還沒有什麼大異樣。知縣大è€çˆºé‚„是原官,ä¸éŽæ”¹ç¨±äº†ä»€éº¼ï¼Œè€Œä¸”舉人è€çˆºä¹Ÿåšäº†ä»€éº¼â€”—這些åç›®ï¼ŒæœªèŽŠäººéƒ½èªªä¸æ˜Žç™½â€”—官,帶兵的也還是先å‰çš„è€æŠŠç¸½ã€‚åªæœ‰ä¸€ä»¶å¯æ€•çš„äº‹æ˜¯å¦æœ‰å¹¾å€‹ä¸å¥½çš„é©å‘½é»¨å¤¾åœ¨è£é¢æ—亂,第二天便動手剪辮å,è½èªªé‚£é„°æ‘的航船七斤便著了é“兒,弄得ä¸åƒäººæ¨£å了。但這å»é‚„ä¸ç®—å¤§ææ€–ï¼Œå› ç‚ºæœªèŽŠäººæœ¬ä¾†å°‘ä¸ŠåŸŽï¼Œå³ä½¿å¶æœ‰æƒ³é€²åŸŽçš„,也就立刻變了計,碰ä¸è‘—這å±éšªã€‚阿Qæœ¬ä¹Ÿæƒ³é€²åŸŽåŽ»å°‹ä»–çš„è€æœ‹å‹ï¼Œä¸€å¾—這消æ¯ï¼Œä¹Ÿåªå¾—作罷了。
+但未莊也ä¸èƒ½èªªæ˜¯ç„¡æ”¹é©ã€‚幾天之後,將辮åç›¤åœ¨é ‚ä¸Šçš„é€æ¼¸å¢žåŠ èµ·ä¾†äº†ï¼Œæ—©ç¶“èªªéŽï¼Œæœ€å…ˆè‡ªç„¶æ˜¯èŒ‚æ‰å…¬ï¼Œå…¶æ¬¡ä¾¿æ˜¯è¶™å¸æ™¨å’Œè¶™ç™½çœ¼ï¼Œå¾Œä¾†æ˜¯é˜¿Q。倘在å¤å¤©ï¼Œå¤§å®¶å°‡è¾®å盤在é é ‚ä¸Šæˆ–è€…æ‰“ä¸€å€‹çµï¼Œæœ¬ä¸ç®—什麼稀奇事,但ç¾åœ¨æ˜¯æš®ç§‹ï¼Œæ‰€ä»¥é€™â€œç§‹è¡Œå¤ä»¤â€çš„æƒ…形,在盤辮家ä¸èƒ½ä¸èªªæ˜¯è¬åˆ†çš„英斷,而在未莊也ä¸èƒ½èªªç„¡é—œæ–¼æ”¹é©äº†ã€‚
+è¶™å¸æ™¨è…¦å¾Œç©ºè•©ç›ªçš„走來,看見的人大嚷說,
+“è±ï¼Œé©å‘½é»¨ä¾†äº†ï¼â€
+阿Qè½åˆ°äº†å¾ˆç¾¡æ…•。他雖然早知é“ç§€æ‰ç›¤è¾®çš„大新èžï¼Œä½†ç¸½æ²’有想到自己å¯ä»¥ç…§æ¨£åšï¼Œç¾åœ¨çœ‹è¦‹è¶™å¸æ™¨ä¹Ÿå¦‚æ¤ï¼Œçº”æœ‰äº†å¸æ¨£çš„æ„æ€ï¼Œå®šä¸‹å¯¦è¡Œçš„æ±ºå¿ƒã€‚他用一支竹ç·å°‡è¾®å盤在é é ‚ä¸Šï¼Œé²ç–‘多時,這纔放膽的走去。
+他在街上走,人也看他,然而ä¸èªªä»€éº¼è©±ï¼Œé˜¿Qç•¶åˆå¾ˆä¸å¿«ï¼Œå¾Œä¾†ä¾¿å¾ˆä¸å¹³ã€‚ä»–è¿‘ä¾†å¾ˆå®¹æ˜“é¬§è„¾æ°£äº†ï¼›å…¶å¯¦ä»–çš„ç”Ÿæ´»ï¼Œå€’ä¹Ÿä¸¦ä¸æ¯”é€ å之å‰å艱難,人見他也客氣,店鋪也ä¸èªªè¦ç¾éŒ¢ã€‚而阿Q總覺得自己太失æ„:既然é©äº†å‘½ï¼Œä¸æ‡‰è©²åªæ˜¯é€™æ¨£çš„。æ³ä¸”有一回看見å°Dï¼Œæ„ˆä½¿ä»–æ°£ç ´è‚šçš®äº†ã€‚
+å°D也將辮å盤在é é ‚ä¸Šäº†ï¼Œè€Œä¸”ä¹Ÿå±…ç„¶ç”¨ä¸€æ”¯ç«¹ç·ã€‚阿Qè¬æ–™ä¸åˆ°ä»–也敢這樣åšï¼Œè‡ªå·±ä¹Ÿæ±ºä¸å‡†ä»–這樣åšï¼å°D是什麼æ±è¥¿å‘¢ï¼Ÿä»–很想å³åˆ»æªä½ä»–,拗斷他的竹ç·ï¼Œæ”¾ä¸‹ä»–的辮å,並且批他幾個嘴巴,èŠä¸”懲罰他忘了生辰八å—,也敢來åšé©å‘½é»¨çš„罪。但他終於饒放了,單是怒目而視的å一å£å”¾æ²«é““呸ï¼â€
+這幾日è£ï¼Œé€²åŸŽåŽ»çš„åªæœ‰ä¸€å€‹å‡æ´‹é¬¼åã€‚è¶™ç§€æ‰æœ¬ä¹Ÿæƒ³é 著寄å˜ç®±å的淵æºï¼Œè¦ªèº«åŽ»æ‹œè¨ªèˆ‰äººè€çˆºçš„ï¼Œä½†å› ç‚ºæœ‰å‰ªè¾®çš„å±éšªï¼Œæ‰€ä»¥ä¹Ÿä¸æ¢äº†ã€‚他寫了一å°â€œé»ƒå‚˜æ ¼â€çš„ä¿¡ï¼Œæ‰˜å‡æ´‹é¬¼åå¸¶ä¸ŠåŸŽï¼Œè€Œä¸”æ‰˜ä»–çµ¦è‡ªå·±ç´¹ä»‹ç´¹ä»‹ï¼ŒåŽ»é€²è‡ªç”±é»¨ã€‚å‡æ´‹é¬¼å回來時,å‘ç§€æ‰è¨Žé‚„了四塊洋錢,秀æ‰ä¾¿æœ‰ä¸€å¡ŠéŠ€æ¡ƒåæŽ›åœ¨å¤§è¥Ÿä¸Šäº†ï¼›æœªèŽŠäººéƒ½é©šæœï¼Œèªªé€™æ˜¯æŸ¿æ²¹é»¨çš„é ‚åï¼ŒæŠµå¾—ä¸€å€‹ç¿°æž—ï¼›è¶™å¤ªçˆºå› æ¤ä¹Ÿé©Ÿç„¶å¤§é—Šï¼Œé éŽæ–¼ä»–å…’ååˆé›‹ç§€æ‰çš„æ™‚候,所以目空一切,見了阿Qï¼Œä¹Ÿå°±å¾ˆæœ‰äº›ä¸æ”¾åœ¨çœ¼è£äº†ã€‚
+阿Qæ£åœ¨ä¸å¹³ï¼Œåˆæ™‚時刻刻感著冷è½ï¼Œä¸€è½å¾—這銀桃åçš„å‚³èªªï¼Œä»–ç«‹å³æ‚Ÿå‡ºè‡ªå·±ä¹‹æ‰€ä»¥å†·è½çš„åŽŸå› äº†ï¼šè¦é©å‘½ï¼Œå–®èªªæŠ•é™ï¼Œæ˜¯ä¸è¡Œçš„;盤上辮å,也ä¸è¡Œçš„;第一著ä»ç„¶è¦å’Œé©å‘½é»¨åŽ»çµè˜ã€‚他生平所知é“çš„é©å‘½é»¨åªæœ‰å…©å€‹ï¼ŒåŸŽè£çš„一個早已“嚓â€çš„æ®ºæŽ‰äº†ï¼Œç¾åœ¨åªå‰©äº†ä¸€å€‹å‡æ´‹é¬¼å。他除å»è¶•ç·ŠåŽ»å’Œå‡æ´‹é¬¼å商é‡ä¹‹å¤–ï¼Œå†æ²’有別的é“路了。
+錢府的大門æ£é–‹è‘—,阿Q便怯怯的躄進去。他一到è£é¢ï¼Œå¾ˆåƒäº†é©šï¼Œåªè¦‹å‡æ´‹é¬¼åæ£ç«™åœ¨é™¢åçš„ä¸å¤®ï¼Œä¸€èº«çƒé»‘的大約是洋衣,身上也掛著一塊銀桃åï¼Œæ‰‹è£æ˜¯é˜¿Qæ›¾ç¶“é ˜æ•™éŽçš„æ£å,已經留到一尺多長的辮åéƒ½æ‹†é–‹äº†æŠ«åœ¨è‚©èƒŒä¸Šï¼Œè“¬é æ•£é«®çš„åƒä¸€å€‹åŠ‰æµ·ä»™ã€‚å°é¢æŒºç›´çš„站著趙白眼和三個閑人,æ£åœ¨å¿…æå¿…敬的è½èªªè©±ã€‚
+阿Qè¼•è¼•çš„èµ°è¿‘äº†ï¼Œç«™åœ¨è¶™ç™½çœ¼çš„èƒŒå¾Œï¼Œå¿ƒè£æƒ³æ‹›å‘¼ï¼Œå»ä¸çŸ¥é“怎麼說纔好:å«ä»–凿´‹é¬¼å固然是ä¸è¡Œçš„了,洋人也ä¸å¦¥ï¼Œé©å‘½é»¨ä¹Ÿä¸å¦¥ï¼Œæˆ–è€…å°±æ‡‰è©²å«æ´‹å…ˆç”Ÿäº†ç½·ã€‚
+æ´‹å…ˆç”Ÿå»æ²’æœ‰è¦‹ä»–ï¼Œå› ç‚ºç™½è‘—çœ¼ç›è¬›å¾—æ£èµ·å‹ï¼š
+“我是性急的,所以我們見é¢ï¼Œæˆ‘ç¸½æ˜¯èªªï¼šæ´ªå“¥ï¼æˆ‘們動手罷ï¼ä»–å»ç¸½èªªé“Noï¼â€”â€”é€™æ˜¯æ´‹è©±ï¼Œä½ å€‘ä¸æ‡‚的。å¦å‰‡æ—©å·²æˆåŠŸäº†ã€‚ç„¶è€Œé€™æ£æ˜¯ä»–åšäº‹å°å¿ƒçš„地方。他å†ä¸‰å†å››çš„請我上湖北,我還沒有肯。誰願æ„在這å°ç¸£åŸŽè£åšäº‹æƒ…。……â€
+“唔,……這個……â€é˜¿Q候他略åœï¼Œçµ‚於用å二分的勇氣開å£äº†ï¼Œä½†ä¸çŸ¥é“å› ç‚ºä»€éº¼ï¼Œåˆä¸¦ä¸å«ä»–洋先生。
+è½è‘—說話的四個人都åƒé©šçš„回顧他。洋先生也纔看見:
+“什麼?â€
+“我……â€
+“出去ï¼â€
+â€œæˆ‘è¦æŠ•â€¦â€¦â€
+“滾出去ï¼â€æ´‹å…ˆç”Ÿæšèµ·å“喪棒來了。
+趙白眼和閑人們便都å†å–é“:“先生å«ä½ æ»¾å‡ºåŽ»ï¼Œä½ é‚„ä¸è½éº½ï¼â€
+阿Q將手å‘é 上一é®ï¼Œä¸è‡ªè¦ºçš„逃出門外;洋先生倒也沒有追。他快跑了å…å多æ¥ï¼Œé€™çº”慢慢的走,於是心è£ä¾¿æ¹§èµ·äº†æ†‚æ„:洋先生ä¸å‡†ä»–é©å‘½ï¼Œä»–冿²’æœ‰åˆ¥çš„è·¯ï¼›å¾žæ¤æ±ºä¸èƒ½æœ›æœ‰ç™½ç›”白甲的人來å«ä»–ï¼Œä»–æ‰€æœ‰çš„æŠ±è² ï¼Œå¿—å‘,希望,å‰ç¨‹ï¼Œå…¨è¢«ä¸€ç†å‹¾éŠ·äº†ã€‚è‡³æ–¼é–‘äººå€‘å‚³æšé–‹åŽ»ï¼Œçµ¦å°D王胡ç‰è¼©ç¬‘話,倒是還在其次的事。
+他似乎從來沒有經驗éŽé€™æ¨£çš„ç„¡èŠã€‚ä»–å°æ–¼è‡ªå·±çš„盤辮å,仿佛也覺得無æ„味,è¦ä¾®è”‘ï¼›ç‚ºå ±ä»‡èµ·è¦‹ï¼Œå¾ˆæƒ³ç«‹åˆ»æ”¾ä¸‹è¾®å來,但也沒有竟放。他éŠåˆ°å¤œé–“,賒了兩碗酒,å–ä¸‹è‚šåŽ»ï¼Œæ¼¸æ¼¸çš„é«˜èˆˆèµ·ä¾†äº†ï¼Œæ€æƒ³è£çº”åˆå‡ºç¾ç™½ç›”白甲的碎片。
+有一天,他照例的混到夜深,待酒店è¦é—œé–€ï¼Œçº”è¸±å›žåœŸç©€ç¥ åŽ»ã€‚
+æ‹ï¼Œå§ï½žï½žï¼
+他忽而è½å¾—一種異樣的è²éŸ³ï¼Œåˆä¸æ˜¯çˆ†ç«¹ã€‚阿Q本來是愛看熱鬧,愛管閑事的,便在暗ä¸ç›´å°‹éŽåŽ»ã€‚ä¼¼ä¹Žå‰é¢æœ‰äº›è…³æ¥è²ï¼›ä»–æ£è½ï¼ŒçŒ›ç„¶é–“一個人從å°é¢é€ƒä¾†äº†ã€‚阿Q一看見,便趕緊翻身跟著逃。那人轉彎,阿Q也轉彎,那人站ä½äº†ï¼Œé˜¿Q也站ä½ã€‚他看後é¢ä¸¦ç„¡ä»€éº¼ï¼Œçœ‹é‚£äººä¾¿æ˜¯å°D。
+“什麼?â€é˜¿Qä¸å¹³èµ·ä¾†äº†ã€‚
+â€œè¶™â€¦â€¦è¶™å®¶éæ¶äº†ï¼â€å°D氣喘åå的說。
+阿Q的心怦怦的跳了。å°D說了便走;阿Qå»é€ƒè€Œåˆåœçš„兩三回。但他究竟是åšéŽâ€œé€™è·¯ç”Ÿæ„â€ï¼Œæ ¼å¤–膽大,於是躄出路角,仔細的è½ï¼Œä¼¼ä¹Žæœ‰äº›åš·åš·ï¼Œåˆä»”ç´°çš„çœ‹ï¼Œä¼¼ä¹Žè¨±å¤šç™½ç›”ç™½ç”²çš„äººï¼Œçµ¡ç¹¹çš„å°‡ç®±åæŠ¬å‡ºäº†ï¼Œå™¨å…·æŠ¬å‡ºäº†ï¼Œç§€æ‰å¨˜å的寧å¼åºŠä¹ŸæŠ¬å‡ºäº†ï¼Œä½†æ˜¯ä¸åˆ†æ˜Žï¼Œä»–還想上å‰ï¼Œå…©éš»è…³å»æ²’有動。
+這一夜沒有月,未莊在黑暗è£å¾ˆå¯‚éœï¼Œå¯‚éœåˆ°åƒç¾²çš‡æ™‚候一般太平。阿Q站著看到自己發煩,也似乎還是先å‰ä¸€æ¨£ï¼Œåœ¨é‚£è£ä¾†ä¾†å¾€å¾€çš„æ¬ï¼Œç®±åæŠ¬å‡ºäº†ï¼Œå™¨å…·æŠ¬å‡ºäº†ï¼Œç§€æ‰å¨˜å的寧å¼åºŠä¹ŸæŠ¬å‡ºäº†ï¼Œâ€¦â€¦æŠ¬å¾—他自己有些ä¸ä¿¡ä»–的眼ç›äº†ã€‚但他決計ä¸å†ä¸Šå‰ï¼Œå»å›žåˆ°è‡ªå·±çš„ç¥ è£åŽ»äº†ã€‚
+åœŸç©€ç¥ è£æ›´æ¼†é»‘;他關好大門,摸進自己的屋åè£ã€‚ä»–èººäº†å¥½ä¸€æœƒï¼Œé€™çº”å®šäº†ç¥žï¼Œè€Œä¸”ç™¼å‡ºé—œæ–¼è‡ªå·±çš„æ€æƒ³ä¾†ï¼šç™½ç›”白甲的人明明到了,並ä¸ä¾†æ‰“招呼,æ¬äº†è¨±å¤šå¥½æ±è¥¿ï¼Œåˆæ²’æœ‰è‡ªå·±çš„ä»½ï¼Œâ€”â€”é€™å…¨æ˜¯å‡æ´‹é¬¼å坿ƒ¡ï¼Œä¸å‡†æˆ‘é€ å,å¦å‰‡ï¼Œé€™æ¬¡ä½•至於沒有我的份呢?阿Q越想越氣,終於ç¦ä¸ä½æ»¿å¿ƒç—›æ¨èµ·ä¾†ï¼Œæ¯’毒的點一點é :“ä¸å‡†æˆ‘é€ å,åªå‡†ä½ é€ åï¼Ÿåª½åª½çš„å‡æ´‹é¬¼åï¼Œâ€”â€”å¥½ï¼Œä½ é€ åï¼é€ åæ˜¯æ®ºé 的罪å呵,我總è¦å‘Šä¸€ç‹€ï¼Œçœ‹ä½ 抓進縣è£åŽ»æ®ºé ,——滿門抄斬,——嚓ï¼åš“ï¼â€
+第ä¹ç«  大團圓[编辑]
+è¶™å®¶éæ¶ä¹‹å¾Œï¼ŒæœªèŽŠäººå¤§æŠµå¾ˆå¿«æ„è€Œä¸”ææ…Œï¼Œé˜¿Q也很快æ„è€Œä¸”ææ…Œã€‚但四天之後,阿Q在åŠå¤œè£å¿½è¢«æŠ“進縣城è£åŽ»äº†ã€‚é‚£æ™‚æ°æ˜¯æš—夜,一隊兵,一隊團ä¸ï¼Œä¸€éšŠå“¡è¦ï¼Œäº”å€‹åµæŽ¢ï¼Œæ‚„æ‚„åœ°åˆ°äº†æœªèŽŠï¼Œä¹˜æ˜æš—åœä½åœŸç©€ç¥ ,æ£å°é–€æž¶å¥½æ©Ÿé—œæ§ï¼›ç„¶è€Œé˜¿Qä¸è¡å‡ºã€‚許多時沒有動éœï¼ŒæŠŠç¸½ç„¦æ€¥èµ·ä¾†äº†ï¼Œæ‡¸äº†äºŒååƒçš„賞,纔有兩個團ä¸å†’äº†éšªï¼Œé€¾åž£é€²åŽ»ï¼Œè£æ‡‰å¤–åˆï¼Œä¸€æ“而入,將阿QæŠ“å‡ºä¾†ï¼›ç›´å¾…æ“’å‡ºç¥ å¤–é¢çš„æ©Ÿé—œæ§å·¦è¿‘,他纔有些清醒了。
+到進城,已經是æ£åˆï¼Œé˜¿Qè¦‹è‡ªå·±è¢«æ”™é€²ä¸€æ‰€ç ´è¡™é–€ï¼Œè½‰äº†äº”å…個彎,便推在一間å°å±‹è£ã€‚ä»–å‰›å‰›ä¸€è¹Œè¸‰ï¼Œé‚£ç”¨æ•´æ ªçš„æœ¨æ–™åšæˆçš„æŸµæ¬„門便跟著他的腳跟闔上了,其餘的三é¢éƒ½æ˜¯ç‰†å£ï¼Œä»”細看時,屋角上還有兩個人。
+阿Q雖然有些å¿å¿‘,å»ä¸¦ä¸å¾ˆè‹¦æ‚¶ï¼Œå› ç‚ºä»–é‚£åœŸç©€ç¥ è£çš„è‡¥å®¤ï¼Œä¹Ÿä¸¦æ²’æœ‰æ¯”é€™é–“å±‹åæ›´é«˜æ˜Žã€‚那兩個也仿佛是鄉下人,漸漸和他兜æèµ·ä¾†äº†ï¼Œä¸€å€‹èªªæ˜¯èˆ‰äººè€çˆºè¦è¿½ä»–ç¥–çˆ¶æ¬ ä¸‹ä¾†çš„é™³ç§Ÿï¼Œä¸€å€‹ä¸çŸ¥é“為了什麼事。他們å•阿Q,阿Q爽利的ç”é“ï¼Œâ€œå› ç‚ºæˆ‘æƒ³é€ å。â€
+他下åŠå¤©ä¾¿åˆè¢«æŠ“å‡ºæŸµæ¬„é–€åŽ»äº†ï¼Œåˆ°å¾—å¤§å ‚ï¼Œä¸Šé¢å著一個滿é 剃得精光的è€é å。阿Q疑心他是和尚,但看見下麵站著一排兵,兩æ—åˆç«™è‘—å幾個長衫人物,也有滿é 剃得精光åƒé€™è€é å的,也有將一尺來長的é 髮披在背後åƒé‚£å‡æ´‹é¬¼å的,都是一臉橫肉,怒目而視的看他;他便知é“這人一定有些來æ·ï¼Œè†é—œç¯€ç«‹åˆ»è‡ªç„¶è€Œç„¶çš„寬鬆,便跪了下去了。
+“站著說ï¼ä¸è¦è·ªï¼â€é•·è¡«äººç‰©éƒ½å†å–說。
+阿Q雖然似乎懂得,但總覺得站ä¸ä½ï¼Œèº«ä¸ç”±å·±çš„蹲了下去,而且終於è¶å‹¢æ”¹ç‚ºè·ªä¸‹äº†ã€‚
+“奴隸性ï¼â€¦â€¦â€é•·è¡«äººç‰©åˆé„™å¤·ä¼¼çš„說,但也沒有å«ä»–起來。
+â€œä½ å¾žå¯¦æ‹›ä¾†ç½·ï¼Œå…å¾—åƒè‹¦ã€‚我早都知é“了。招了å¯ä»¥æ”¾ä½ 。â€é‚£å…‰é çš„è€é å看定了阿Q的臉,沉éœçš„æ¸…楚的說。
+“招罷ï¼â€é•·è¡«äººç‰©ä¹Ÿå¤§è²èªªã€‚
+“我本來è¦â€¦â€¦ä¾†æŠ•……â€é˜¿Q胡è£èƒ¡å¡—的想了一通,這纔斷斷續續的說。
+“那麼,為什麼ä¸ä¾†çš„呢?â€è€é å和氣的å•。
+â€œå‡æ´‹é¬¼åä¸å‡†æˆ‘ï¼â€
+“胡說æ¤åˆ»èªªï¼Œä¹Ÿé²äº†ã€‚ç¾åœ¨ä½ çš„åŒé»¨åœ¨é‚£è£ï¼Ÿâ€
+“什麼?……
+“那一晚打劫趙家的一夥人。â€
+â€œä»–å€‘æ²’æœ‰ä¾†å«æˆ‘。他們自己æ¬èµ°äº†ã€‚â€é˜¿Qæèµ·ä¾†ä¾¿æ†¤æ†¤ã€‚
+“走到那è£åŽ»äº†å‘¢ï¼Ÿèªªå‡ºä¾†ä¾¿æ”¾ä½ äº†ã€‚â€è€é åæ›´å’Œæ°£äº†ã€‚
+“我ä¸çŸ¥é“ï¼Œâ€¦â€¦ä»–å€‘æ²’æœ‰ä¾†å«æˆ‘……â€
+然而è€é å使了一個眼色,阿Q便åˆè¢«æŠ“進柵欄門è£äº†ã€‚他第二次抓出柵欄門,是第二天的上åˆã€‚
+å¤§å ‚çš„æƒ…å½¢éƒ½ç…§èˆŠã€‚ä¸Šé¢ä»ç„¶åè‘—å…‰é çš„è€é å,阿Q也ä»ç„¶ä¸‹äº†è·ªã€‚
+è€é å和氣的å•é“ï¼Œâ€œä½ é‚„æœ‰ä»€éº¼è©±èªªéº½ï¼Ÿâ€
+阿Q一想,沒有話,便回ç”說,“沒有。â€
+於是一個長衫人物拿了一張紙,並一支ç†é€åˆ°é˜¿Qçš„é¢å‰ï¼Œè¦å°‡ç†å¡žåœ¨ä»–手è£ã€‚阿Q這時很åƒé©šï¼Œå¹¾ä¹Žâ€œé‚飛鄿•£â€äº†ï¼šå› 為他的手和ç†ç›¸é—œï¼Œé€™å›žæ˜¯åˆæ¬¡ã€‚ä»–æ£ä¸çŸ¥æ€Žæ¨£æ‹¿ï¼›é‚£äººå»åˆæŒ‡è‘—一處地方教他畫花押。
+“我……我……ä¸èªå¾—å—。â€é˜¿Q一把抓ä½äº†ç†ï¼Œæƒ¶æè€Œä¸”慚愧的說。
+â€œé‚£éº¼ï¼Œä¾¿å®œä½ ï¼Œç•«ä¸€å€‹åœ“åœˆï¼â€
+阿Qè¦ç•«åœ“圈了,那手æè‘—ç†å»åªæ˜¯æŠ–。於是那人替他將紙鋪在地上,阿Qä¼ä¸‹åŽ»ï¼Œä½¿ç›¡äº†å¹³ç”Ÿçš„åŠ›æ°£ç•«åœ“åœˆã€‚ä»–ç”Ÿæ€•è¢«äººç¬‘è©±ï¼Œç«‹å¿—è¦ç•«å¾—åœ“ï¼Œä½†é€™å¯æƒ¡çš„ç†ä¸ä½†å¾ˆæ²‰é‡ï¼Œä¸¦ä¸”ä¸è½è©±ï¼Œå‰›å‰›ä¸€æŠ–一抖的幾乎è¦åˆç¸«ï¼Œå»åˆå‘外一è³ï¼Œç•«æˆç“œå模樣了。
+阿Qæ£ç¾žæ„§è‡ªå·±ç•«å¾—ä¸åœ“,那人å»ä¸è¨ˆè¼ƒï¼Œæ—©å·²æŽ£äº†ç´™ç†åŽ»ï¼Œè¨±å¤šäººåˆå°‡ä»–第二次抓進柵欄門。
+他第二次進了柵欄,倒也並ä¸ååˆ†æ‡Šæƒ±ã€‚ä»–ä»¥ç‚ºäººç”Ÿå¤©åœ°ä¹‹é–“ï¼Œå¤§ç´„æœ¬ä¾†æœ‰æ™‚è¦æŠ“é€²æŠ“å‡ºï¼Œæœ‰æ™‚è¦åœ¨ç´™ä¸Šç•«åœ“圈的,惟有圈而ä¸åœ“ï¼Œå»æ˜¯ä»–“行狀â€ä¸Šçš„一個汙點。但ä¸å¤šæ™‚也就釋然了,他想:å«å纔畫得很圓的圓圈呢。於是他ç¡è‘—了。
+然而這一夜,舉人è€çˆºå而ä¸èƒ½ç¡ï¼šä»–和把總嘔了氣了。舉人è€çˆºä¸»å¼µç¬¬ä¸€è¦è¿½è´“,把總主張第一è¦ç¤ºçœ¾ã€‚把總近來很ä¸å°‡èˆ‰äººè€çˆºæ”¾åœ¨çœ¼è£äº†ï¼Œæ‹æ¡ˆæ‰“凳的說é“,“懲一儆百ï¼ä½ 看,我åšé©å‘½é»¨é‚„ä¸ä¸ŠäºŒåå¤©ï¼Œæ¶æ¡ˆå°±æ˜¯å幾件,全ä¸ç ´æ¡ˆï¼Œæˆ‘çš„é¢å在那è£ï¼Ÿç ´äº†æ¡ˆï¼Œä½ åˆä¾†è¿‚ã€‚ä¸æˆï¼é€™æ˜¯æˆ‘管的ï¼â€èˆ‰äººè€çˆºçª˜æ€¥äº†ï¼Œç„¶è€Œé‚„å …æŒï¼Œèªªæ˜¯å€˜è‹¥ä¸è¿½è´“,他便立刻è¾äº†å¹«è¾¦æ°‘政的è·å‹™ã€‚而把總å»é“,“請便罷ï¼â€æ–¼æ˜¯èˆ‰äººè€çˆºåœ¨é€™ä¸€å¤œç«Ÿæ²’有ç¡ï¼Œä½†å¹¸ç¬¬äºŒå¤©å€’也沒有è¾ã€‚
+阿Q第三次抓出柵欄門的時候,便是舉人è€çˆºç¡ä¸è‘—的那一夜的明天的上åˆäº†ã€‚ä»–åˆ°äº†å¤§å ‚ï¼Œä¸Šé¢é‚„å著照例的光é è€é å;阿Q也照例的下了跪。
+è€é å很和氣的å•é“ï¼Œâ€œä½ é‚„æœ‰ä»€éº¼è©±éº½ï¼Ÿâ€
+阿Q一想,沒有話,便回ç”說,“沒有。â€
+許多長衫和çŸè¡«äººç‰©ï¼Œå¿½ç„¶çµ¦ä»–ç©¿ä¸Šä¸€ä»¶æ´‹å¸ƒçš„ç™½èƒŒå¿ƒï¼Œä¸Šé¢æœ‰äº›é»‘å—。阿Qå¾ˆæ°£è‹¦ï¼šå› ç‚ºé€™å¾ˆåƒæ˜¯å¸¶åï¼Œè€Œå¸¶åæ˜¯æ™¦æ°£çš„ã€‚ç„¶è€ŒåŒæ™‚他的兩手åç¸›äº†ï¼ŒåŒæ™‚åˆè¢«ä¸€ç›´æŠ“出衙門外去了。
+阿Q被抬上了一輛沒有蓬的車,幾個çŸè¡£äººç‰©ä¹Ÿå’Œä»–åŒå在一處。這車立刻走動了,å‰é¢æ˜¯ä¸€ç背著洋炮的兵們和團ä¸ï¼Œå…©æ—æ˜¯è¨±å¤šå¼µè‘—å˜´çš„çœ‹å®¢ï¼Œå¾Œé¢æ€Žæ¨£ï¼Œé˜¿Q沒有見。但他çªç„¶è¦ºåˆ°äº†ï¼šé€™è±ˆä¸æ˜¯åŽ»æ®ºé 麽?他一急,兩眼發黑,耳朵è£å–¤çš„一è²ï¼Œä¼¼ä¹Žç™¼æ˜äº†ã€‚ç„¶è€Œä»–åˆæ²’有全發æ˜ï¼Œæœ‰æ™‚雖然著急,有時å»ä¹Ÿæ³°ç„¶ï¼›ä»–æ„æ€ä¹‹é–“,似乎覺得人生天地間,大約本來有時也未å…è¦æ®ºé 的。
+ä»–é‚„èªå¾—路,於是有些詫異了:怎麼ä¸å‘è‘—æ³•å ´èµ°å‘¢ï¼Ÿä»–ä¸çŸ¥é“這是在éŠè¡—,在示眾。但å³ä½¿çŸ¥é“也一樣,他ä¸éŽä¾¿ä»¥ç‚ºäººç”Ÿå¤©åœ°é–“,大約本來有時也未å…è¦éŠè¡—è¦ç¤ºçœ¾ç½·äº†
+ä»–çœæ‚Ÿäº†ï¼Œé€™æ˜¯ç¹žåˆ°æ³•å ´åŽ»çš„è·¯ï¼Œé€™ä¸€å®šæ˜¯â€œåš“â€çš„去殺é 。他惘惘的å‘å·¦å³çœ‹ï¼Œå…¨è·Ÿè‘—馬蟻似的人,而在無æ„ä¸ï¼Œå»åœ¨è·¯æ—的人å¢ä¸ç™¼è¦‹äº†ä¸€å€‹å³åª½ã€‚很久é•,伊原來在城è£åšå·¥äº†ã€‚阿Qå¿½ç„¶å¾ˆç¾žæ„§è‡ªå·±æ²’å¿—æ°£ï¼šç«Ÿæ²’æœ‰å”±å¹¾å¥æˆ²ã€‚ä»–çš„æ€æƒ³ä»¿ä½›æ—‹é¢¨ä¼¼çš„在腦è£ä¸€è¿´æ—‹ï¼šã€Šå°å¤å€ä¸Šå¢³ã€‹æ¬ å ‚çš‡ï¼Œã€Šé¾è™Žé¬¥ã€‹è£çš„“悔ä¸è©²â€¦â€¦â€ä¹Ÿå¤ªä¹ï¼Œé‚„是“手執鋼éžå°‡ä½ 打â€ç½·ã€‚ä»–åŒæ™‚想手一æšï¼Œçº”記得這兩手原來都æ†è‘—,於是“手執鋼éžâ€ä¹Ÿä¸å”±äº†ã€‚
+“éŽäº†äºŒåå¹´åˆæ˜¯ä¸€å€‹â€¦â€¦â€é˜¿Q在百忙ä¸ï¼Œâ€œç„¡å¸«è‡ªé€šâ€çš„說出åŠå¥å¾žä¾†ä¸èªªçš„話。
+“好ï¼ï¼ï¼â€å¾žäººå¢è£ï¼Œä¾¿ç™¼å‡ºè±ºç‹¼çš„å—¥å«ä¸€èˆ¬çš„è²éŸ³ä¾†ã€‚
+車åä¸ä½çš„å‰è¡Œï¼Œé˜¿Q在å–采è²ä¸ï¼Œè¼ªè½‰çœ¼ç›åŽ»çœ‹å³åª½ï¼Œä¼¼ä¹Žä¼Šä¸€å‘並沒有見他,å»åªæ˜¯å‡ºç¥žçš„看著兵們背上的洋炮。
+阿Q於是å†çœ‹é‚£äº›å–采的人們
+這剎那ä¸ï¼Œä»–çš„æ€æƒ³åˆä»¿ä½›æ—‹é¢¨ä¼¼çš„在腦è£ä¸€è¿´æ—‹äº†ã€‚四年之å‰ï¼Œä»–曾在山腳下é‡è¦‹ä¸€éš»é¤“狼,永是ä¸è¿‘ä¸é 的跟定他,è¦åƒä»–çš„è‚‰ã€‚ä»–é‚£æ™‚åš‡å¾—å¹¾ä¹Žè¦æ»ï¼Œå¹¸è€Œæ‰‹è£æœ‰ä¸€æŸ„斫柴刀,纔得仗這壯了膽,支æŒåˆ°æœªèŽŠï¼›å¯æ˜¯æ°¸é 記得那狼眼ç›ï¼Œåˆå‡¶åˆæ€¯ï¼Œé–ƒé–ƒçš„åƒå…©é¡†é¬¼ç«ï¼Œä¼¼ä¹Žé é 的來穿é€äº†ä»–的皮肉。而這回他åˆçœ‹è¦‹å¾žä¾†æ²’有見éŽçš„æ›´å¯æ€•的眼ç›äº†ï¼Œåˆéˆåˆé‹’利,ä¸ä½†å·²ç¶“咀嚼了他的話,並且還è¦å’€åš¼ä»–皮肉以外的æ±è¥¿ï¼Œæ°¸æ˜¯ä¸è¿‘ä¸é 的跟他走。
+這些ç›å€‘似乎連æˆä¸€æ°£ï¼Œå·²ç¶“在那è£å’¬ä»–çš„éˆé‚。
+“救命,……â€
+然而阿Q沒有說。他早就兩眼發黑,耳朵è£å—¡çš„一è²ï¼Œè¦ºå¾—全身仿佛微塵似的迸散了。
+至於當時的影響,最大的倒å在舉人è€çˆºï¼Œå› 為終於沒有追贓,他全家都號啕了。其次是趙府,éžç‰¹ç§€æ‰å› ç‚ºä¸ŠåŸŽåŽ»å ±å®˜ï¼Œè¢«ä¸å¥½çš„é©å‘½é»¨å‰ªäº†è¾®å,而且åˆç ´è²»äº†äºŒååƒçš„賞錢,所以全家也號啕了。從這一天以來,他們便漸漸的都發生了éºè€çš„æ°£å‘³ã€‚
+至於輿論,在未莊是無異è°ï¼Œè‡ªç„¶éƒ½èªªé˜¿Qå£žï¼Œè¢«æ§æ–ƒä¾¿æ˜¯ä»–çš„å£žçš„è‰æ“šï¼šä¸å£žåˆä½•è‡³æ–¼è¢«æ§æ–ƒå‘¢ï¼Ÿè€ŒåŸŽè£çš„輿論å»ä¸ä½³ï¼Œä»–們多åŠä¸æ»¿è¶³ï¼Œä»¥ç‚ºæ§æ–ƒä¸¦ç„¡æ®ºé 這般好看;而且那是怎樣的一個å¯ç¬‘çš„æ»å›šå‘µï¼Œæ¸¸äº†é‚£éº¼ä¹…çš„è¡—ï¼Œç«Ÿæ²’æœ‰å”±ä¸€å¥æˆ²ï¼šä»–們白跟一趟了。
EOT;
+ protected static $encoding = 'UTF-8';
+
protected static function explode($text)
{
$chars = array();
- foreach (preg_split('//u', preg_replace('/\s+/', '', $text)) as $char) {
- if ($char !== '') {
+
+ foreach (preg_split('//u', str_replace(PHP_EOL, '', $text)) as $char) {
+ if (! empty($char)) {
$chars[] = $char;
}
}
+
return $chars;
}
protected static function strlen($text)
{
- return function_exists('mb_strlen') ? mb_strlen($text, 'UTF-8') : count(static::explode($text));
+ return function_exists('mb_strlen')
+ ? mb_strlen($text, static::$encoding)
+ : count(static::explode($text));
}
protected static function validStart($word)
{
- return !in_array($word, static::$notBeginPunct);
+ return ! in_array($word, static::$notBeginPunct);
}
protected static function appendEnd($text)
{
+ $mbAvailable = extension_loaded('mbstring');
+
// extract the last char of $text
- if (function_exists('mb_substr')) {
- $last = mb_substr($text, mb_strlen($text)-1, 'UTF-8');
+ if ($mbAvailable) {
+ // in order to support php 5.3, third param use 1 instead of null
+ // https://secure.php.net/manual/en/function.mb-substr.php#refsect1-function.mb-substr-changelog
+ $last = mb_substr($text, mb_strlen($text, static::$encoding) - 1, 1, static::$encoding);
} else {
- $chars = static::split($text);
- $last = end($chars);
+ $chars = static::utf8Encoding($text);
+ $last = $chars[count($chars) - 1];
}
+
// if the last char is a not-valid-end punctuation, remove it
if (in_array($last, static::$notEndPunct)) {
- $text = preg_replace('/.$/u', '', $text);
+ if ($mbAvailable) {
+ $text = mb_substr($text, 0, mb_strlen($text, static::$encoding) - 1, static::$encoding);
+ } else {
+ array_pop($chars);
+ $text = implode('', $chars);
+ }
}
+
// if the last char is not a valid punctuation, append a default one.
- return in_array($last, static::$endPunct) ? $text : $text.'。';
+ return in_array($last, static::$endPunct) ? $text : $text . '。';
+ }
+
+ /**
+ * Convert original string to utf-8 encoding.
+ *
+ * @param string $text
+ * @return array
+ */
+ protected static function utf8Encoding($text)
+ {
+ $encoding = array();
+
+ $chars = str_split($text);
+
+ $countChars = count($chars);
+
+ for ($i = 0; $i < $countChars; ++$i) {
+ $temp = $chars[$i];
+
+ $ord = ord($chars[$i]);
+
+ switch (true) {
+ case $ord > 251:
+ $temp .= $chars[++$i];
+ // no break
+ case $ord > 247:
+ $temp .= $chars[++$i];
+ // no break
+ case $ord > 239:
+ $temp .= $chars[++$i];
+ // no break
+ case $ord > 223:
+ $temp .= $chars[++$i];
+ // no break
+ case $ord > 191:
+ $temp .= $chars[++$i];
+ // no break
+ }
+
+ $encoding[] = $temp;
+ }
+
+ return $encoding;
}
}
diff --git a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php b/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php
index 335882dd..431f7653 100644
--- a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php
+++ b/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php
@@ -12,7 +12,11 @@ class UniqueGenerator
protected $maxRetries;
protected $uniques = array();
- public function __construct(Generator $generator, $maxRetries)
+ /**
+ * @param Generator $generator
+ * @param integer $maxRetries
+ */
+ public function __construct(Generator $generator, $maxRetries = 10000)
{
$this->generator = $generator;
$this->maxRetries = $maxRetries;
@@ -20,6 +24,8 @@ class UniqueGenerator
/**
* Catch and proxy all generator calls but return only unique values
+ * @param string $attribute
+ * @return mixed
*/
public function __get($attribute)
{
@@ -28,6 +34,9 @@ class UniqueGenerator
/**
* Catch and proxy all generator calls with arguments but return only unique values
+ * @param string $name
+ * @param array $arguments
+ * @return mixed
*/
public function __call($name, $arguments)
{
@@ -41,8 +50,8 @@ class UniqueGenerator
if ($i > $this->maxRetries) {
throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a unique value', $this->maxRetries));
}
- } while (array_key_exists($res, $this->uniques[$name]));
- $this->uniques[$name][$res]= null;
+ } while (array_key_exists(serialize($res), $this->uniques[$name]));
+ $this->uniques[$name][serialize($res)]= null;
return $res;
}
diff --git a/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php b/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php
new file mode 100644
index 00000000..1352dfc0
--- /dev/null
+++ b/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php
@@ -0,0 +1,65 @@
+valid()
+ */
+class ValidGenerator
+{
+ protected $generator;
+ protected $validator;
+ protected $maxRetries;
+
+ /**
+ * @param Generator $generator
+ * @param callable|null $validator
+ * @param integer $maxRetries
+ */
+ public function __construct(Generator $generator, $validator = null, $maxRetries = 10000)
+ {
+ if (is_null($validator)) {
+ $validator = function () {
+ return true;
+ };
+ } elseif (!is_callable($validator)) {
+ throw new \InvalidArgumentException('valid() only accepts callables as first argument');
+ }
+ $this->generator = $generator;
+ $this->validator = $validator;
+ $this->maxRetries = $maxRetries;
+ }
+
+ /**
+ * Catch and proxy all generator calls but return only valid values
+ * @param string $attribute
+ *
+ * @return mixed
+ */
+ public function __get($attribute)
+ {
+ return $this->__call($attribute, array());
+ }
+
+ /**
+ * Catch and proxy all generator calls with arguments but return only valid values
+ * @param string $name
+ * @param array $arguments
+ *
+ * @return mixed
+ */
+ public function __call($name, $arguments)
+ {
+ $i = 0;
+ do {
+ $res = call_user_func_array(array($this->generator, $name), $arguments);
+ $i++;
+ if ($i > $this->maxRetries) {
+ throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a valid value', $this->maxRetries));
+ }
+ } while (!call_user_func($this->validator, $res));
+
+ return $res;
+ }
+}
diff --git a/vendor/fzaninotto/faker/src/autoload.php b/vendor/fzaninotto/faker/src/autoload.php
index 69324ba3..f55914de 100644
--- a/vendor/fzaninotto/faker/src/autoload.php
+++ b/vendor/fzaninotto/faker/src/autoload.php
@@ -10,7 +10,6 @@
spl_autoload_register(function ($className) {
$className = ltrim($className, '\\');
$fileName = '';
- $namespace = '';
if ($lastNsPos = strripos($className, '\\')) {
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
diff --git a/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php b/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php
deleted file mode 100644
index c2170172..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-assertInternalType('string', $checkDigit);
- $this->assertEquals($checkDigit, Luhn::computeCheckDigit($partialNumber));
- }
-
- public function validatorProvider()
- {
- return array(
- array('79927398710', false),
- array('79927398711', false),
- array('79927398712', false),
- array('79927398713', true),
- array('79927398714', false),
- array('79927398715', false),
- array('79927398716', false),
- array('79927398717', false),
- array('79927398718', false),
- array('79927398719', false),
- array(79927398713, true),
- array(79927398714, false),
- );
- }
-
- /**
- * @dataProvider validatorProvider
- */
- public function testIsValid($number, $isValid)
- {
- $this->assertEquals($isValid, Luhn::isValid($number));
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php b/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php
deleted file mode 100644
index 262243d1..00000000
--- a/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-assertSame(null, $generator->value);
- }
-
- public function testGeneratorReturnsDefaultValueForAnyPropertyGet()
- {
- $generator = new DefaultGenerator(123);
- $this->assertSame(123, $generator->foo);
- $this->assertNotSame(null, $generator->bar);
- }
-
- public function testGeneratorReturnsDefaultValueForAnyMethodCall()
- {
- $generator = new DefaultGenerator(123);
- $this->assertSame(123, $generator->foobar());
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php b/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php
deleted file mode 100644
index 9fea4f86..00000000
--- a/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php
+++ /dev/null
@@ -1,144 +0,0 @@
-addProvider(new FooProvider());
- $generator->addProvider(new BarProvider());
- $this->assertEquals('barfoo', $generator->format('fooFormatter'));
- }
-
- public function testGetFormatterReturnsCallable()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertTrue(is_callable($generator->getFormatter('fooFormatter')));
- }
-
- public function testGetFormatterReturnsCorrectFormatter()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $expected = array($provider, 'fooFormatter');
- $this->assertEquals($expected, $generator->getFormatter('fooFormatter'));
- }
-
- /**
- * @expectedException InvalidArgumentException
- */
- public function testGetFormatterThrowsExceptionOnIncorrectProvider()
- {
- $generator = new Generator;
- $generator->getFormatter('fooFormatter');
- }
-
- /**
- * @expectedException InvalidArgumentException
- */
- public function testGetFormatterThrowsExceptionOnIncorrectFormatter()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $generator->getFormatter('barFormatter');
- }
-
- public function testFormatCallsFormatterOnProvider()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('foobar', $generator->format('fooFormatter'));
- }
-
- public function testFormatTransfersArgumentsToFormatter()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('bazfoo', $generator->format('fooFormatterWithArguments', array('foo')));
- }
-
- public function testParseReturnsSameStringWhenItContainsNoCurlyBraces()
- {
- $generator = new Generator();
- $this->assertEquals('fooBar#?', $generator->parse('fooBar#?'));
- }
-
- public function testParseReturnsStringWithTokensReplacedByFormatters()
- {
- $generator = new Generator();
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('This is foobar a text with foobar', $generator->parse('This is {{fooFormatter}} a text with {{ fooFormatter }}'));
- }
-
- public function testMagicGetCallsFormat()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('foobar', $generator->fooFormatter);
- }
-
- public function testMagicCallCallsFormat()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('foobar', $generator->fooFormatter());
- }
-
- public function testMagicCallCallsFormatWithArguments()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('bazfoo', $generator->fooFormatterWithArguments('foo'));
- }
-
- public function testSeed()
- {
- $generator = new Generator;
-
- $generator->seed(0);
- $mtRandWithSeedZero = mt_rand();
- $generator->seed(0);
- $this->assertEquals($mtRandWithSeedZero, mt_rand(), 'seed(0) should be deterministic.');
-
- $generator->seed();
- $mtRandWithoutSeed = mt_rand();
- $this->assertNotEquals($mtRandWithSeedZero, $mtRandWithoutSeed, 'seed() should be different than seed(0)');
- $generator->seed();
- $this->assertNotEquals($mtRandWithoutSeed, mt_rand(), 'seed() should not be deterministic.');
- }
-}
-
-class FooProvider
-{
- public function fooFormatter()
- {
- return 'foobar';
- }
-
- public function fooFormatterWithArguments($value = '')
- {
- return 'baz' . $value;
- }
-}
-
-class BarProvider
-{
- public function fooFormatter()
- {
- return 'barfoo';
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php
deleted file mode 100644
index cbabce56..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addProvider(new Address($faker));
- $this->faker = $faker;
- }
-
- public function testLatitude()
- {
- $latitude = $this->faker->latitude();
- $this->assertInternalType('float', $latitude);
- $this->assertGreaterThanOrEqual(-90, $latitude);
- $this->assertLessThanOrEqual(90, $latitude);
- }
-
- public function testLongitude()
- {
- $longitude = $this->faker->longitude();
- $this->assertInternalType('float', $longitude);
- $this->assertGreaterThanOrEqual(-180, $longitude);
- $this->assertLessThanOrEqual(180, $longitude);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php
deleted file mode 100644
index a7ee6d98..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-addProvider(new Barcode($faker));
- $faker->seed(0);
- $this->faker = $faker;
- }
-
- public function testEan8()
- {
- $code = $this->faker->ean8();
- $this->assertRegExp('/^\d{8}$/i', $code);
- $codeWitoutChecksum = substr($code, 0, -1);
- $checksum = substr($code, -1);
- $this->assertEquals(TestableBarcode::eanChecksum($codeWitoutChecksum), $checksum);
- }
-
- public function testEan13()
- {
- $code = $this->faker->ean13();
- $this->assertRegExp('/^\d{13}$/i', $code);
- $codeWitoutChecksum = substr($code, 0, -1);
- $checksum = substr($code, -1);
- $this->assertEquals(TestableBarcode::eanChecksum($codeWitoutChecksum), $checksum);
- }
-}
-
-class TestableBarcode extends Barcode
-{
- public static function eanChecksum($input)
- {
- return parent::eanChecksum($input);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php
deleted file mode 100644
index 95e694ab..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php
+++ /dev/null
@@ -1,446 +0,0 @@
-assertTrue(is_integer(BaseProvider::randomDigit()));
- }
-
- public function testRandomDigitReturnsDigit()
- {
- $this->assertTrue(BaseProvider::randomDigit() >= 0);
- $this->assertTrue(BaseProvider::randomDigit() < 10);
- }
-
- public function testRandomDigitNotNullReturnsNotNullDigit()
- {
- $this->assertTrue(BaseProvider::randomDigitNotNull() > 0);
- $this->assertTrue(BaseProvider::randomDigitNotNull() < 10);
- }
-
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testRandomNumberThrowsExceptionWhenCalledWithAMax()
- {
- BaseProvider::randomNumber(5, 200);
- }
-
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testRandomNumberThrowsExceptionWhenCalledWithATooHighNumberOfDigits()
- {
- BaseProvider::randomNumber(10);
- }
-
- public function testRandomNumberReturnsInteger()
- {
- $this->assertTrue(is_integer(BaseProvider::randomNumber()));
- $this->assertTrue(is_integer(BaseProvider::randomNumber(5, false)));
- }
-
- public function testRandomNumberReturnsDigit()
- {
- $this->assertTrue(BaseProvider::randomNumber(3) >= 0);
- $this->assertTrue(BaseProvider::randomNumber(3) < 1000);
- }
-
- public function testRandomNumberAcceptsStrictParamToEnforceNumberSize()
- {
- $this->assertEquals(5, strlen((string) BaseProvider::randomNumber(5, true)));
- }
-
- public function testNumberBetween()
- {
- $min = 5;
- $max = 6;
-
- $this->assertGreaterThanOrEqual($min, BaseProvider::numberBetween($min, $max));
- $this->assertGreaterThanOrEqual(BaseProvider::numberBetween($min, $max), $max);
- }
-
- public function testNumberBetweenAcceptsZeroAsMax()
- {
- $this->assertEquals(0, BaseProvider::numberBetween(0, 0));
- }
-
- public function testRandomFloat()
- {
- $min = 4;
- $max = 10;
- $nbMaxDecimals = 8;
-
- $result = BaseProvider::randomFloat($nbMaxDecimals, $min, $max);
-
- $parts = explode('.', $result);
-
- $this->assertInternalType('float', $result);
- $this->assertGreaterThanOrEqual($min, $result);
- $this->assertLessThanOrEqual($max, $result);
- $this->assertLessThanOrEqual($nbMaxDecimals, strlen($parts[1]));
- }
-
- public function testRandomLetterReturnsString()
- {
- $this->assertTrue(is_string(BaseProvider::randomLetter()));
- }
-
- public function testRandomLetterReturnsSingleLetter()
- {
- $this->assertEquals(1, strlen(BaseProvider::randomLetter()));
- }
-
- public function testRandomLetterReturnsLowercaseLetter()
- {
- $lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz';
- $this->assertTrue(strpos($lowercaseLetters, BaseProvider::randomLetter()) !== false);
- }
-
- public function testRandomAsciiReturnsString()
- {
- $this->assertTrue(is_string(BaseProvider::randomAscii()));
- }
-
- public function testRandomAsciiReturnsSingleCharacter()
- {
- $this->assertEquals(1, strlen(BaseProvider::randomAscii()));
- }
-
- public function testRandomAsciiReturnsAsciiCharacter()
- {
- $lowercaseLetters = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
- $this->assertTrue(strpos($lowercaseLetters, BaseProvider::randomAscii()) !== false);
- }
-
- public function testRandomElementReturnsNullWhenArrayEmpty()
- {
- $this->assertNull(BaseProvider::randomElement(array()));
- }
-
- public function testRandomElementReturnsElementFromArray()
- {
- $elements = array('23', 'e', 32, '#');
- $this->assertContains(BaseProvider::randomElement($elements), $elements);
- }
-
- public function testRandomElementReturnsElementFromAssociativeArray()
- {
- $elements = array('tata' => '23', 'toto' => 'e', 'tutu' => 32, 'titi' => '#');
- $this->assertContains(BaseProvider::randomElement($elements), $elements);
- }
-
- public function testShuffleReturnsStringWhenPassedAStringArgument()
- {
- $this->assertInternalType('string', BaseProvider::shuffle('foo'));
- }
-
- public function testShuffleReturnsArrayWhenPassedAnArrayArgument()
- {
- $this->assertInternalType('array', BaseProvider::shuffle(array(1, 2, 3)));
- }
-
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testShuffleThrowsExceptionWhenPassedAnInvalidArgument()
- {
- BaseProvider::shuffle(false);
- }
-
- public function testShuffleArraySupportsEmptyArrays()
- {
- $this->assertEquals(array(), BaseProvider::shuffleArray(array()));
- }
-
- public function testShuffleArrayReturnsAnArrayOfTheSameSize()
- {
- $array = array(1, 2, 3, 4, 5);
- $this->assertSameSize($array, BaseProvider::shuffleArray($array));
- }
-
- public function testShuffleArrayReturnsAnArrayWithSameElements()
- {
- $array = array(2, 4, 6, 8, 10);
- $shuffleArray = BaseProvider::shuffleArray($array);
- $this->assertContains(2, $shuffleArray);
- $this->assertContains(4, $shuffleArray);
- $this->assertContains(6, $shuffleArray);
- $this->assertContains(8, $shuffleArray);
- $this->assertContains(10, $shuffleArray);
- }
-
- public function testShuffleArrayReturnsADifferentArrayThanTheOriginal()
- {
- $arr = array(1, 2, 3, 4, 5);
- $shuffledArray = BaseProvider::shuffleArray($arr);
- $this->assertNotEquals($arr, $shuffledArray);
- }
-
- public function testShuffleArrayLeavesTheOriginalArrayUntouched()
- {
- $arr = array(1, 2, 3, 4, 5);
- BaseProvider::shuffleArray($arr);
- $this->assertEquals($arr, array(1, 2, 3, 4, 5));
- }
-
- public function testShuffleStringSupportsEmptyStrings()
- {
- $this->assertEquals('', BaseProvider::shuffleString(''));
- }
-
- public function testShuffleStringReturnsAnStringOfTheSameSize()
- {
- $string = 'abcdef';
- $this->assertEquals(strlen($string), strlen(BaseProvider::shuffleString($string)));
- }
-
- public function testShuffleStringReturnsAnStringWithSameElements()
- {
- $string = 'acegi';
- $shuffleString = BaseProvider::shuffleString($string);
- $this->assertContains('a', $shuffleString);
- $this->assertContains('c', $shuffleString);
- $this->assertContains('e', $shuffleString);
- $this->assertContains('g', $shuffleString);
- $this->assertContains('i', $shuffleString);
- }
-
- public function testShuffleStringReturnsADifferentStringThanTheOriginal()
- {
- $string = 'abcdef';
- $shuffledString = BaseProvider::shuffleString($string);
- $this->assertNotEquals($string, $shuffledString);
- }
-
- public function testShuffleStringLeavesTheOriginalStringUntouched()
- {
- $string = 'abcdef';
- BaseProvider::shuffleString($string);
- $this->assertEquals($string, 'abcdef');
- }
-
- public function testNumerifyReturnsSameStringWhenItContainsNoHashSign()
- {
- $this->assertEquals('fooBar?', BaseProvider::numerify('fooBar?'));
- }
-
- public function testNumerifyReturnsStringWithHashSignsReplacedByDigits()
- {
- $this->assertRegExp('/foo\dBa\dr/', BaseProvider::numerify('foo#Ba#r'));
- }
-
- public function testNumerifyReturnsStringWithPercentageSignsReplacedByDigits()
- {
- $this->assertRegExp('/foo\dBa\dr/', BaseProvider::numerify('foo%Ba%r'));
- }
-
- public function testNumerifyReturnsStringWithPercentageSignsReplacedByNotNullDigits()
- {
- $this->assertNotEquals('0', BaseProvider::numerify('%'));
- }
-
- public function testNumerifyCanGenerateALargeNumberOfDigits()
- {
- $largePattern = str_repeat('#', 20); // definitely larger than PHP_INT_MAX on all systems
- $this->assertEquals(20, strlen(BaseProvider::numerify($largePattern)));
- }
-
- public function testLexifyReturnsSameStringWhenItContainsNoQuestionMark()
- {
- $this->assertEquals('fooBar#', BaseProvider::lexify('fooBar#'));
- }
-
- public function testLexifyReturnsStringWithQuestionMarksReplacedByLetters()
- {
- $this->assertRegExp('/foo[a-z]Ba[a-z]r/', BaseProvider::lexify('foo?Ba?r'));
- }
-
- public function testBothifyCombinesNumerifyAndLexify()
- {
- $this->assertRegExp('/foo[a-z]Ba\dr/', BaseProvider::bothify('foo?Ba#r'));
- }
-
- public function testAsciifyReturnsSameStringWhenItContainsNoStarSign()
- {
- $this->assertEquals('fooBar?', BaseProvider::asciify('fooBar?'));
- }
-
- public function testAsciifyReturnsStringWithStarSignsReplacedByAsciiChars()
- {
- $this->assertRegExp('/foo.Ba.r/', BaseProvider::asciify('foo*Ba*r'));
- }
-
- public function regexifyBasicDataProvider()
- {
- return array(
- array('azeQSDF1234', 'azeQSDF1234', 'does not change non regex chars'),
- array('foo(bar){1}', 'foobar', 'replaces regex characters'),
- array('', '', 'supports empty string'),
- array('/^foo(bar){1}$/', 'foobar', 'ignores regex delimiters')
- );
- }
-
- /**
- * @dataProvider regexifyBasicDataProvider
- */
- public function testRegexifyBasicFeatures($input, $output, $message)
- {
- $this->assertEquals($output, BaseProvider::regexify($input), $message);
- }
-
- public function regexifyDataProvider()
- {
- return array(
- array('\d', 'numbers'),
- array('\w', 'letters'),
- array('(a|b)', 'alternation'),
- array('[aeiou]', 'basic character class'),
- array('[a-z]', 'character class range'),
- array('[a-z1-9]', 'multiple character class range'),
- array('a*b+c?', 'single character quantifiers'),
- array('a{2}', 'brackets quantifiers'),
- array('a{2,3}', 'min-max brackets quantifiers'),
- array('[aeiou]{2,3}', 'brackets quantifiers on basic character class'),
- array('[a-z]{2,3}', 'brackets quantifiers on character class range'),
- array('(a|b){2,3}', 'brackets quantifiers on alternation'),
- array('\.\*\?\+', 'escaped characters'),
- array('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}', 'complex regex')
- );
- }
-
- /**
- * @dataProvider regexifyDataProvider
- */
- public function testRegexifySupportedRegexSyntax($pattern, $message)
- {
- $this->assertRegExp('/' . $pattern . '/', BaseProvider::regexify($pattern), 'Regexify supports ' . $message);
- }
-
- public function testOptionalReturnsProviderValueWhenCalledWithWeight1()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $this->assertNotNull($faker->optional(1)->randomDigit);
- }
-
- public function testOptionalReturnsNullWhenCalledWithWeight0()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $this->assertNull($faker->optional(0)->randomDigit);
- }
-
- public function testOptionalAllowsChainingPropertyAccess()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs
- $this->assertEquals(1, $faker->optional(1)->count);
- $this->assertNull($faker->optional(0)->count);
- }
-
- public function testOptionalAllowsChainingMethodCall()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs
- $this->assertEquals(1, $faker->optional(1)->count());
- $this->assertNull($faker->optional(0)->count());
- }
-
- public function testOptionalAllowsChainingProviderCallRandomlyReturnNull()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $values = array();
- for ($i=0; $i < 10; $i++) {
- $values[]= $faker->optional()->randomDigit;
- }
- $this->assertContains(null, $values);
- }
-
- public function testUniqueAllowsChainingPropertyAccess()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs
- $this->assertEquals(1, $faker->unique()->count);
- }
-
- public function testUniqueAllowsChainingMethodCall()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs
- $this->assertEquals(1, $faker->unique()->count());
- }
-
- public function testUniqueReturnsOnlyUniqueValues()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $values = array();
- for ($i=0; $i < 10; $i++) {
- $values[]= $faker->unique()->randomDigit;
- }
- sort($values);
- $this->assertEquals(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), $values);
- }
-
- /**
- * @expectedException OverflowException
- */
- public function testUniqueThrowsExceptionWhenNoUniqueValueCanBeGenerated()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- for ($i=0; $i < 11; $i++) {
- $faker->unique()->randomDigit;
- }
- }
-
- public function testUniqueCanResetUniquesWhenPassedTrueAsArgument()
- {
- $faker = new \Faker\Generator();
- $faker->addProvider(new \Faker\Provider\Base($faker));
- $values = array();
- for ($i=0; $i < 10; $i++) {
- $values[]= $faker->unique()->randomDigit;
- }
- $values[]= $faker->unique(true)->randomDigit;
- for ($i=0; $i < 9; $i++) {
- $values[]= $faker->unique()->randomDigit;
- }
- sort($values);
- $this->assertEquals(array(0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9), $values);
- }
-
- /**
- * @expectedException LengthException
- * @expectedExceptionMessage Cannot get 2 elements, only 1 in array
- */
- public function testRandomElementsThrowsWhenRequestingTooManyKeys()
- {
- BaseProvider::randomElements(array('foo'), 2);
- }
-
- public function testRandomElements()
- {
- $this->assertCount(1, BaseProvider::randomElements(), 'Should work without any input');
-
- $empty = BaseProvider::randomElements(array(), 0);
- $this->assertInternalType('array', $empty);
- $this->assertCount(0, $empty);
-
- $shuffled = BaseProvider::randomElements(array('foo', 'bar', 'baz'), 3);
- $this->assertContains('foo', $shuffled);
- $this->assertContains('bar', $shuffled);
- $this->assertContains('baz', $shuffled);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php
deleted file mode 100644
index 1f7a99ac..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-generator = new Generator();
- $this->generator->addProvider(new Biased($this->generator));
-
- $this->results = array_fill(1, self::MAX, 0);
- }
-
- public function performFake($function)
- {
- for($i = 0; $i < self::NUMBERS; $i++) {
- $this->results[$this->generator->biasedNumberBetween(1, self::MAX, $function)]++;
- }
- }
-
- public function testUnbiased()
- {
- $this->performFake(array('\Faker\Provider\Biased', 'unbiased'));
-
- // assert that all numbers are near the expected unbiased value
- foreach ($this->results as $number => $amount) {
- // integral
- $assumed = (1 / self::MAX * $number) - (1 / self::MAX * ($number - 1));
- // calculate the fraction of the whole area
- $assumed /= 1;
- $this->assertGreaterThan(self::NUMBERS * $assumed * .95, $amount, "Value was more than 5 percent under the expected value");
- $this->assertLessThan(self::NUMBERS * $assumed * 1.05, $amount, "Value was more than 5 percent over the expected value");
- }
- }
-
- public function testLinearHigh()
- {
- $this->performFake(array('\Faker\Provider\Biased', 'linearHigh'));
-
- foreach ($this->results as $number => $amount) {
- // integral
- $assumed = 0.5 * pow(1 / self::MAX * $number, 2) - 0.5 * pow(1 / self::MAX * ($number - 1), 2);
- // calculate the fraction of the whole area
- $assumed /= pow(1, 2) * .5;
- $this->assertGreaterThan(self::NUMBERS * $assumed * .9, $amount, "Value was more than 10 percent under the expected value");
- $this->assertLessThan(self::NUMBERS * $assumed * 1.1, $amount, "Value was more than 10 percent over the expected value");
- }
- }
-
- public function testLinearLow()
- {
- $this->performFake(array('\Faker\Provider\Biased', 'linearLow'));
-
- foreach ($this->results as $number => $amount) {
- // integral
- $assumed = -0.5 * pow(1 / self::MAX * $number, 2) - -0.5 * pow(1 / self::MAX * ($number - 1), 2);
- // shift the graph up
- $assumed += 1 / self::MAX;
- // calculate the fraction of the whole area
- $assumed /= pow(1, 2) * .5;
- $this->assertGreaterThan(self::NUMBERS * $assumed * .9, $amount, "Value was more than 10 percent under the expected value");
- $this->assertLessThan(self::NUMBERS * $assumed * 1.1, $amount, "Value was more than 10 percent over the expected value");
- }
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php
deleted file mode 100644
index cdb4ab1a..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-assertRegExp('/^#[a-f0-9]{6}$/i', Color::hexColor());
- }
-
- public function testSafeHexColor()
- {
- $this->assertRegExp('/^#[a-f0-9]{6}$/i', Color::safeHexColor());
- }
-
- public function testRgbColorAsArray()
- {
- $this->assertEquals(3, count(Color::rgbColorAsArray()));
- }
-
- public function testRgbColor()
- {
- $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])';
- $this->assertRegExp('/^' . $regexp . ',' . $regexp . ',' . $regexp . '$/i', Color::rgbColor());
- }
-
- public function testRgbCssColor()
- {
- $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])';
- $this->assertRegExp('/^rgb\(' . $regexp . ',' . $regexp . ',' . $regexp . '\)$/i', Color::rgbCssColor());
- }
-
- public function testSafeColorName()
- {
- $this->assertRegExp('/^[\w]+$/', Color::safeColorName());
- }
-
- public function testColorName()
- {
- $this->assertRegExp('/^[\w]+$/', Color::colorName());
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php
deleted file mode 100644
index 60310bde..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php
+++ /dev/null
@@ -1,122 +0,0 @@
-assertInternalType('int', $timestamp);
- $this->assertTrue($timestamp >= 0);
- $this->assertTrue($timestamp <= time());
- }
-
- public function testDateTime()
- {
- $date = DateTimeProvider::dateTime();
- $this->assertInstanceOf('\DateTime', $date);
- $this->assertGreaterThanOrEqual(new \DateTime('@0'), $date);
- $this->assertLessThanOrEqual(new \DateTime(), $date);
- }
-
- public function testDateTimeAD()
- {
- $date = DateTimeProvider::dateTimeAD();
- $this->assertInstanceOf('\DateTime', $date);
- $this->assertGreaterThanOrEqual(new \DateTime('0000-01-01 00:00:00'), $date);
- $this->assertLessThanOrEqual(new \DateTime(), $date);
- }
-
- public function testIso8601()
- {
- $date = DateTimeProvider::iso8601();
- $this->assertRegExp('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-Z](\d{4})?$/', $date);
- $this->assertGreaterThanOrEqual(new \DateTime('@0'), new \DateTime($date));
- $this->assertLessThanOrEqual(new \DateTime(), new \DateTime($date));
- }
-
- public function testDate()
- {
- $date = DateTimeProvider::date();
- $this->assertRegExp('/^\d{4}-\d{2}-\d{2}$/', $date);
- $this->assertGreaterThanOrEqual(new \DateTime('@0'), new \DateTime($date));
- $this->assertLessThanOrEqual(new \DateTime(), new \DateTime($date));
- }
-
- public function testTime()
- {
- $date = DateTimeProvider::time();
- $this->assertRegExp('/^\d{2}:\d{2}:\d{2}$/', $date);
- }
-
- /**
- *
- * @dataProvider providerDateTimeBetween
- */
- public function testDateTimeBetween($start, $end)
- {
- $date = DateTimeProvider::dateTimeBetween($start, $end);
- $this->assertInstanceOf('\DateTime', $date);
- $this->assertGreaterThanOrEqual(new \DateTime($start), $date);
- $this->assertLessThanOrEqual(new \DateTime($end), $date);
- }
-
- public function providerDateTimeBetween()
- {
- return array(
- array('-1 year', false),
- array('-1 year', null),
- array('-1 day', '-1 hour'),
- array('-1 day', 'now'),
- );
- }
-
- public function testFixedSeedWithMaximumTimestamp()
- {
- $max = '2018-03-01 12:00:00';
-
- mt_srand(1);
- $unixTime = DateTimeProvider::unixTime($max);
- $datetimeAD = DateTimeProvider::dateTimeAD($max);
- $dateTime1 = DateTimeProvider::dateTime($max);
- $dateTimeBetween = DateTimeProvider::dateTimeBetween('2014-03-01 06:00:00', $max);
- $date = DateTimeProvider::date('Y-m-d', $max);
- $time = DateTimeProvider::time('H:i:s', $max);
- $iso8601 = DateTimeProvider::iso8601($max);
- $dateTimeThisCentury = DateTimeProvider::dateTimeThisCentury($max);
- $dateTimeThisDecade = DateTimeProvider::dateTimeThisDecade($max);
- $dateTimeThisMonth = DateTimeProvider::dateTimeThisMonth($max);
- $amPm = DateTimeProvider::amPm($max);
- $dayOfMonth = DateTimeProvider::dayOfMonth($max);
- $dayOfWeek = DateTimeProvider::dayOfWeek($max);
- $month = DateTimeProvider::month($max);
- $monthName = DateTimeProvider::monthName($max);
- $year = DateTimeProvider::year($max);
- $dateTimeThisYear = DateTimeProvider::dateTimeThisYear($max);
- mt_srand();
-
- //regenerate Random Date with same seed and same maximum end timestamp
- mt_srand(1);
- $this->assertEquals($unixTime, DateTimeProvider::unixTime($max));
- $this->assertEquals($datetimeAD, DateTimeProvider::dateTimeAD($max));
- $this->assertEquals($dateTime1, DateTimeProvider::dateTime($max));
- $this->assertEquals($dateTimeBetween, DateTimeProvider::dateTimeBetween('2014-03-01 06:00:00', $max));
- $this->assertEquals($date, DateTimeProvider::date('Y-m-d', $max));
- $this->assertEquals($time, DateTimeProvider::time('H:i:s', $max));
- $this->assertEquals($iso8601, DateTimeProvider::iso8601($max));
- $this->assertEquals($dateTimeThisCentury, DateTimeProvider::dateTimeThisCentury($max));
- $this->assertEquals($dateTimeThisDecade, DateTimeProvider::dateTimeThisDecade($max));
- $this->assertEquals($dateTimeThisMonth, DateTimeProvider::dateTimeThisMonth($max));
- $this->assertEquals($amPm, DateTimeProvider::amPm($max));
- $this->assertEquals($dayOfMonth, DateTimeProvider::dayOfMonth($max));
- $this->assertEquals($dayOfWeek, DateTimeProvider::dayOfWeek($max));
- $this->assertEquals($month, DateTimeProvider::month($max));
- $this->assertEquals($monthName, DateTimeProvider::monthName($max));
- $this->assertEquals($year, DateTimeProvider::year($max));
- $this->assertEquals($dateTimeThisYear, DateTimeProvider::dateTimeThisYear($max));
- mt_srand();
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php
deleted file mode 100644
index 0535d4da..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-assertRegExp('#^http://lorempixel.com/640/480/#', Image::imageUrl());
- }
-
- public function testImageUrlAcceptsCustomWidthAndHeight()
- {
- $this->assertRegExp('#^http://lorempixel.com/800/400/#', Image::imageUrl(800, 400));
- }
-
- public function testImageUrlAcceptsCustomCategory()
- {
- $this->assertRegExp('#^http://lorempixel.com/800/400/nature/#', Image::imageUrl(800, 400, 'nature'));
- }
-
- public function testImageUrlAcceptsCustomText()
- {
- $this->assertRegExp('#^http://lorempixel.com/800/400/nature/Faker#', Image::imageUrl(800, 400, 'nature', false, 'Faker'));
- }
-
- public function testImageUrlAddsARandomGetParameterByDefault()
- {
- $url = Image::imageUrl(800, 400);
- $splitUrl = preg_split('/\?/', $url);
-
- $this->assertEquals(count($splitUrl), 2);
- $this->assertRegexp('#\d{5}#', $splitUrl[1]);
- }
-
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testUrlWithDimensionsAndBadCategory()
- {
- Image::imageUrl(800, 400, 'bullhonky');
- }
-
- public function testDownloadWithDefaults()
- {
- $file = Image::image(sys_get_temp_dir());
- $this->assertFileExists($file);
- if (function_exists('getimagesize')) {
- list($width, $height, $type, $attr) = getimagesize($file);
- $this->assertEquals(640, $width);
- $this->assertEquals(480, $height);
- $this->assertEquals(constant('IMAGETYPE_JPEG'), $type);
- } else {
- $this->assertEquals('jpg', pathinfo($file, PATHINFO_EXTENSION));
- }
- if (file_exists($file)) {
- unlink($file);
- }
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php
deleted file mode 100644
index fcd750b1..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php
+++ /dev/null
@@ -1,120 +0,0 @@
-addProvider(new Lorem($faker));
- $faker->addProvider(new Person($faker));
- $faker->addProvider(new Internet($faker));
- $faker->addProvider(new Company($faker));
- $this->faker = $faker;
- }
-
- public function localeDataProvider()
- {
- $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider');
- $localePaths = array_filter(glob($providerPath . '/*', GLOB_ONLYDIR));
- foreach ($localePaths as $path) {
- $parts = explode('/', $path);
- $locales[] = array($parts[count($parts) - 1]);
- }
-
- return $locales;
- }
-
- /**
- * @link http://stackoverflow.com/questions/12026842/how-to-validate-an-email-address-in-php
- *
- * @requires PHP 5.4
- * @dataProvider localeDataProvider
- */
- public function testEmailIsValid($locale)
- {
- $this->loadLocalProviders($locale);
- $pattern = '/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD';
- $emailAddress = $this->faker->email();
- $this->assertRegExp($pattern, $emailAddress);
- }
-
- /**
- * @requires PHP 5.4
- * @dataProvider localeDataProvider
- */
- public function testUsernameIsValid($locale)
- {
- $this->loadLocalProviders($locale);
- $pattern = '/^[A-Za-z0-9._]+$/';
- $username = $this->faker->username();
- $this->assertRegExp($pattern, $username);
- }
-
- public function loadLocalProviders($locale)
- {
- $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider');
- if (file_exists($providerPath.'/'.$locale.'/Internet.php')) {
- $internet = "\\Faker\\Provider\\$locale\\Internet";
- $this->faker->addProvider(new $internet($this->faker));
- }
- if (file_exists($providerPath.'/'.$locale.'/Person.php')) {
- $person = "\\Faker\\Provider\\$locale\\Person";
- $this->faker->addProvider(new $person($this->faker));
- }
- if (file_exists($providerPath.'/'.$locale.'/Company.php')) {
- $company = "\\Faker\\Provider\\$locale\\Company";
- $this->faker->addProvider(new $company($this->faker));
- }
- }
-
- public function testPasswordIsValid()
- {
- $this->assertRegexp('/^.{6}$/', $this->faker->password(6, 6));
- }
-
- public function testSlugIsValid()
- {
- $pattern = '/^[a-z0-9-]+$/';
- $slug = $this->faker->slug();
- $this->assertSame(preg_match($pattern, $slug), 1);
- }
-
- public function testUrlIsValid()
- {
- $url = $this->faker->url();
- $this->assertNotFalse(filter_var($url, FILTER_VALIDATE_URL));
- }
-
- public function testLocalIpv4()
- {
- $this->assertNotFalse(filter_var(Internet::localIpv4(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4));
- }
-
- public function testIpv4()
- {
- $this->assertNotFalse(filter_var($this->faker->ipv4(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4));
- }
-
- public function testIpv6()
- {
- $this->assertNotFalse(filter_var($this->faker->ipv6(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6));
- }
-
- public function testMacAddress()
- {
- $this->assertRegExp('/^([0-9A-F]{2}[:]){5}([0-9A-F]{2})$/i', Internet::macAddress());
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php
deleted file mode 100644
index 347b1351..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-assertNotNull($faker->name(), 'Localized Name Provider ' . $matches[1] . ' does not throw errors');
- }
- }
-
- public function testLocalizedAddressProvidersDoNotThrowErrors()
- {
- foreach (glob(__DIR__ . '/../../../src/Faker/Provider/*/Address.php') as $localizedAddress) {
- preg_match('#/([a-zA-Z_]+)/Address\.php#', $localizedAddress, $matches);
- $faker = Factory::create($matches[1]);
- $this->assertNotNull($faker->address(), 'Localized Address Provider ' . $matches[1] . ' does not throw errors');
- }
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php
deleted file mode 100644
index 62785d43..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php
+++ /dev/null
@@ -1,108 +0,0 @@
-assertEquals('Word word word word.', TestableLorem::text(24));
- }
-
- public function testTextReturnsSentencesWhenAskedSizeLessThan100()
- {
- $this->assertEquals('This is a test sentence. This is a test sentence. This is a test sentence.', TestableLorem::text(99));
- }
-
- public function testTextReturnsParagraphsWhenAskedSizeGreaterOrEqualThanThan100()
- {
- $this->assertEquals('This is a test paragraph. It has three sentences. Exactly three.', TestableLorem::text(100));
- }
-
- public function testSentenceWithZeroNbWordsReturnsEmptyString()
- {
- $this->assertEquals('', Lorem::sentence(0));
- }
-
- public function testSentenceWithNegativeNbWordsReturnsEmptyString()
- {
- $this->assertEquals('', Lorem::sentence(-1));
- }
-
- public function testParagraphWithZeroNbSentencesReturnsEmptyString()
- {
- $this->assertEquals('', Lorem::paragraph(0));
- }
-
- public function testParagraphWithNegativeNbSentencesReturnsEmptyString()
- {
- $this->assertEquals('', Lorem::paragraph(-1));
- }
-
- public function testSentenceWithPositiveNbWordsReturnsAtLeastOneWord()
- {
- $sentence = Lorem::sentence(1);
-
- $this->assertGreaterThan(1, strlen($sentence));
- $this->assertGreaterThanOrEqual(1, count(explode(' ', $sentence)));
- }
-
- public function testParagraphWithPositiveNbSentencesReturnsAtLeastOneWord()
- {
- $paragraph = Lorem::paragraph(1);
-
- $this->assertGreaterThan(1, strlen($paragraph));
- $this->assertGreaterThanOrEqual(1, count(explode(' ', $paragraph)));
- }
-
- public function testWordssAsText()
- {
- $words = TestableLorem::words(2, true);
-
- $this->assertEquals('word word', $words);
- }
-
- public function testSentencesAsText()
- {
- $sentences = TestableLorem::sentences(2, true);
-
- $this->assertEquals('This is a test sentence. This is a test sentence.', $sentences);
- }
-
- public function testParagraphsAsText()
- {
- $paragraphs = TestableLorem::paragraphs(2, true);
-
- $expected = "This is a test paragraph. It has three sentences. Exactly three.\n\nThis is a test paragraph. It has three sentences. Exactly three.";
- $this->assertEquals($expected, $paragraphs);
- }
-}
-
-class TestableLorem extends Lorem
-{
-
- public static function word()
- {
- return 'word';
- }
-
- public static function sentence($nbWords = 5, $variableNbWords = true)
- {
- return 'This is a test sentence.';
- }
-
- public static function paragraph($nbSentences = 3, $variableNbSentences = true)
- {
- return 'This is a test paragraph. It has three sentences. Exactly three.';
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php
deleted file mode 100644
index 6a4c5591..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-assertContains(Miscellaneous::boolean(), array(true, false));
- }
-
- public function testMd5()
- {
- $this->assertRegExp('/^[a-z0-9]{32}$/', Miscellaneous::md5());
- }
-
- public function testSha1()
- {
- $this->assertRegExp('/^[a-z0-9]{40}$/', Miscellaneous::sha1());
- }
-
- public function testSha256()
- {
- $this->assertRegExp('/^[a-z0-9]{64}$/', Miscellaneous::sha256());
- }
-
- public function testLocale()
- {
- $this->assertRegExp('/^[a-z]{2,3}_[A-Z]{2}$/', Miscellaneous::locale());
- }
-
- public function testCountryCode()
- {
- $this->assertRegExp('/^[A-Z]{2}$/', Miscellaneous::countryCode());
- }
-
- public function testCountryISOAlpha3()
- {
- $this->assertRegExp('/^[A-Z]{3}$/', Miscellaneous::countryISOAlpha3());
- }
-
- public function testLanguage()
- {
- $this->assertRegExp('/^[a-z]{2}$/', Miscellaneous::languageCode());
- }
-
- public function testCurrencyCode()
- {
- $this->assertRegExp('/^[A-Z]{3}$/', Miscellaneous::currencyCode());
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php
deleted file mode 100644
index 0f20d91f..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
-addProvider(new BaseProvider($faker));
- $faker->addProvider(new DateTimeProvider($faker));
- $faker->addProvider(new PersonProvider($faker));
- $faker->addProvider(new PaymentProvider($faker));
- $this->faker = $faker;
- }
-
- public function testCreditCardTypeReturnsValidVendorName()
- {
- $this->assertTrue(in_array($this->faker->creditCardType, array('Visa', 'MasterCard', 'American Express', 'Discover Card')));
- }
-
- public function creditCardNumberProvider()
- {
- return array(
- array('Discover Card', '/^6011\d{12}$/'),
- array('Visa', '/^4\d{12,15}$/'),
- array('MasterCard', '/^5[1-5]\d{14}$/')
- );
- }
-
- /**
- * @dataProvider creditCardNumberProvider
- */
- public function testCreditCardNumberReturnsValidCreditCardNumber($type, $regexp)
- {
- $cardNumber = $this->faker->creditCardNumber($type);
- $this->assertRegExp($regexp, $cardNumber);
- $this->assertTrue(Luhn::isValid($cardNumber));
- }
-
- public function testCreditCardNumberCanFormatOutput()
- {
- $this->assertRegExp('/^6011-\d{4}-\d{4}-\d{4}$/', $this->faker->creditCardNumber('Discover Card', true));
- }
-
- public function testCreditCardExpirationDateReturnsValidDateByDefault()
- {
- $expirationDate = $this->faker->creditCardExpirationDate;
- $this->assertTrue(intval($expirationDate->format('U')) > strtotime('now'));
- $this->assertTrue(intval($expirationDate->format('U')) < strtotime('+36 months'));
- }
-
- public function testRandomCard()
- {
- $cardDetails = $this->faker->creditCardDetails;
- $this->assertEquals(count($cardDetails), 4);
- $this->assertEquals(array('type', 'number', 'name', 'expirationDate'), array_keys($cardDetails));
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php
deleted file mode 100644
index a8d1c0f2..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-addProvider(new Person($faker));
- $this->assertContains($faker->firstName($gender), $expected);
- }
-
- public function firstNameProvider()
- {
- return array(
- array(null, array('John', 'Jane')),
- array('foobar', array('John', 'Jane')),
- array('male', array('John')),
- array('female', array('Jane')),
- );
- }
-
- public function testFirstNameMale()
- {
- $this->assertContains(Person::firstNameMale(), array('John'));
- }
-
- public function testFirstNameFemale()
- {
- $this->assertContains(Person::firstNameFemale(), array('Jane'));
- }
-
- /**
- * @dataProvider titleProvider
- */
- public function testTitle($gender, $expected)
- {
- $faker = new Generator();
- $faker->addProvider(new Person($faker));
- $this->assertContains($faker->title($gender), $expected);
- }
-
- public function titleProvider()
- {
- return array(
- array(null, array('Mr.', 'Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')),
- array('foobar', array('Mr.', 'Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')),
- array('male', array('Mr.', 'Dr.', 'Prof.')),
- array('female', array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')),
- );
- }
-
- public function testTitleMale()
- {
- $this->assertContains(Person::titleMale(), array('Mr.', 'Dr.', 'Prof.'));
- }
-
- public function testTitleFemale()
- {
- $this->assertContains(Person::titleFemale(), array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.'));
- }
-
- public function testLastNameReturnsDoe()
- {
- $faker = new Generator();
- $faker->addProvider(new Person($faker));
- $this->assertEquals($faker->lastName(), 'Doe');
- }
-
- public function testNameReturnsFirstNameAndLastName()
- {
- $faker = new Generator();
- $faker->addProvider(new Person($faker));
- $this->assertContains($faker->name(), array('John Doe', 'Jane Doe'));
- $this->assertContains($faker->name('foobar'), array('John Doe', 'Jane Doe'));
- $this->assertContains($faker->name('male'), array('John Doe'));
- $this->assertContains($faker->name('female'), array('Jane Doe'));
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php
deleted file mode 100644
index 68f75ae6..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php
+++ /dev/null
@@ -1,189 +0,0 @@
-
- */
-
-namespace Faker\Test\Provider;
-
-use Faker;
-
-/**
- * Class ProviderOverrideTest
- *
- * @package Faker\Test\Provider
- *
- * This class tests a large portion of all locale specific providers. It does not test the entire stack, because each
- * locale specific provider (can) has specific implementations. The goal of this test is to test the common denominator
- * and to try to catch possible invalid multi-byte sequences.
- */
-class ProviderOverrideTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * Constants with regular expression patterns for testing the output.
- *
- * Regular expressions are sensitive for malformed strings (e.g.: strings with incorrect encodings) so by using
- * PCRE for the tests, even though they seem fairly pointless, we test for incorrect encodings also.
- */
- const TEST_STRING_REGEX = '/.+/u';
-
- /**
- * Slightly more specific for e-mail, the point isn't to properly validate e-mails.
- */
- const TEST_EMAIL_REGEX = '/^(.+)@(.+)$/ui';
-
- /**
- * @dataProvider localeDataProvider
- * @param string $locale
- */
- public function testAddress($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->city);
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->postcode);
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->address);
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->country);
- }
-
-
- /**
- * @dataProvider localeDataProvider
- * @param string $locale
- */
- public function testCompany($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->company);
- }
-
-
- /**
- * @dataProvider localeDataProvider
- * @param string $locale
- */
- public function testDateTime($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->century);
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->timezone);
- }
-
-
- /**
- * @dataProvider localeDataProvider
- * @param string $locale
- */
- public function testInternet($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->userName);
-
- $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->email);
- $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->safeEmail);
- $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->freeEmail);
- $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->companyEmail);
- }
-
-
- /**
- * @dataProvider localeDataProvider
- * @param string $locale
- */
- public function testPerson($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->name);
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->title);
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->firstName);
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->lastName);
- }
-
-
- /**
- * @dataProvider localeDataProvider
- * @param string $locale
- */
- public function testPhoneNumber($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->phoneNumber);
- }
-
-
- /**
- * @dataProvider localeDataProvider
- * @param string $locale
- */
- public function testUserAgent($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->userAgent);
- }
-
-
- /**
- * @dataProvider localeDataProvider
- *
- * @param null $locale
- * @param string $locale
- */
- public function testUuid($locale = null)
- {
- $faker = Faker\Factory::create($locale);
-
- $this->assertRegExp(static::TEST_STRING_REGEX, $faker->uuid);
- }
-
-
- /**
- * @return array
- */
- public function localeDataProvider()
- {
- $locales = $this->getAllLocales();
- $data = array();
-
- foreach ($locales as $locale) {
- $data[] = array(
- $locale
- );
- }
-
- return $data;
- }
-
-
- /**
- * Returns all locales as array values
- *
- * @return array
- */
- private function getAllLocales()
- {
- static $locales = array();
-
- if ( ! empty($locales)) {
- return $locales;
- }
-
- // Finding all PHP files in the xx_XX directories
- $providerDir = __DIR__ .'/../../../src/Faker/Provider';
- foreach (glob($providerDir .'/*_*/*.php') as $file) {
- $localisation = basename(dirname($file));
-
- if (isset($locales[ $localisation ])) {
- continue;
- }
-
- $locales[ $localisation ] = $localisation;
- }
-
- return $locales;
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php
deleted file mode 100644
index 3baf49f3..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-addProvider(new Text($generator));
- $generator->seed(0);
-
- $lengths = array(10, 20, 50, 70, 90, 120, 150, 200, 500);
-
- foreach ($lengths as $length) {
- $this->assertLessThan($length, $generator->realText($length));
- }
- }
-
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testTextMaxIndex()
- {
- $generator = new Generator();
- $generator->addProvider(new Text($generator));
- $generator->seed(0);
- $generator->realText(200, 11);
- }
-
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testTextMinIndex()
- {
- $generator = new Generator();
- $generator->addProvider(new Text($generator));
- $generator->seed(0);
- $generator->realText(200, 0);
- }
-
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testTextMinLength()
- {
- $generator = new Generator();
- $generator->addProvider(new Text($generator));
- $generator->seed(0);
- $generator->realText(9);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php
deleted file mode 100644
index b45b9f86..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php
+++ /dev/null
@@ -1,38 +0,0 @@
-assertNotNull(UserAgent::userAgent());
- }
-
- public function testFirefoxUserAgent()
- {
- $this->stringContains(' Firefox/', UserAgent::firefox());
- }
-
- public function testSafariUserAgent()
- {
- $this->stringContains('Safari/', UserAgent::safari());
- }
-
- public function testInternetExplorerUserAgent()
- {
- $this->assertStringStartsWith('Mozilla/5.0 (compatible; MSIE ', UserAgent::internetExplorer());
- }
-
- public function testOperaUserAgent()
- {
- $this->assertStringStartsWith('Opera/', UserAgent::opera());
- }
-
- public function testChromeUserAgent()
- {
- $this->stringContains('(KHTML, like Gecko) Chrome/', UserAgent::chrome());
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php
deleted file mode 100644
index fceb8dfe..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-assertTrue($this->isUuid($uuid));
- }
-
- public function testUuidExpectedSeed()
- {
- mt_srand(123);
- $this->assertEquals("8e2e0c84-50dd-367c-9e66-f3ab455c78d6", BaseProvider::uuid());
- $this->assertEquals("073eb60a-902c-30ab-93d0-a94db371f6c8", BaseProvider::uuid());
- }
-
- protected function isUuid($uuid)
- {
- return is_string($uuid) && (bool) preg_match('/^[a-f0-9]{8,8}-(?:[a-f0-9]{4,4}-){3,3}[a-f0-9]{12,12}$/i', $uuid);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php
deleted file mode 100644
index afc8c27b..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-addProvider(new Payment($faker));
- $this->faker = $faker;
- }
-
- public function testVatIsValid()
- {
- $vat = $this->faker->vat();
- $unspacedVat = $this->faker->vat(false);
- $this->assertRegExp('/^(AT U\d{8})$/', $vat);
- $this->assertRegExp('/^(ATU\d{8})$/', $unspacedVat);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/be_BE/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/be_BE/PaymentTest.php
deleted file mode 100644
index d253b05c..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/be_BE/PaymentTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-addProvider(new Payment($faker));
- $this->faker = $faker;
- }
-
- public function testVatIsValid()
- {
- $vat = $this->faker->vat();
- $unspacedVat = $this->faker->vat(false);
- $this->assertRegExp('/^(BE 0\d{9})$/', $vat);
- $this->assertRegExp('/^(BE0\d{9})$/', $unspacedVat);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php
deleted file mode 100644
index 31c6325c..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-addProvider(new Payment($faker));
- $this->faker = $faker;
- }
-
- public function testVatIsValid()
- {
- $vat = $this->faker->vat();
- $unspacedVat = $this->faker->vat(false);
- $this->assertRegExp('/^(BG \d{9,10})$/', $vat);
- $this->assertRegExp('/^(BG\d{9,10})$/', $unspacedVat);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php
deleted file mode 100644
index 91ce5ca5..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-addProvider(new Person($faker));
- $faker->addProvider(new Internet($faker));
- $faker->addProvider(new Company($faker));
- $this->faker = $faker;
- }
-
- public function testEmailIsValid()
- {
- $email = $this->faker->email();
- $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL));
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php
deleted file mode 100644
index 2d61ad5e..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-addProvider(new PhoneNumber($faker));
- $this->faker = $faker;
- }
-
- public function testPhoneNumberFormat()
- {
- $number = $this->faker->phoneNumber;
- $this->assertRegExp('/^06\d{2} \d{7}|\+43 \d{4} \d{4}(-\d{2})?$/', $number);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php
deleted file mode 100644
index 5486cf9d..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php
+++ /dev/null
@@ -1,74 +0,0 @@
-addProvider(new Company($faker));
- $this->faker = $faker;
- }
-
- public function testSiretReturnsAValidSiret()
- {
- $siret = $this->faker->siret(false);
- $this->assertRegExp("/^\d{14}$/", $siret);
- $this->assertTrue(Luhn::isValid($siret));
- }
-
- public function testSiretReturnsAWellFormattedSiret()
- {
- $siret = $this->faker->siret();
- $this->assertRegExp("/^\d{3}\s\d{3}\s\d{3}\s\d{5}$/", $siret);
- $siret = str_replace(' ', '', $siret);
- $this->assertTrue(Luhn::isValid($siret));
- }
-
- public function testSirenReturnsAValidSiren()
- {
- $siren = $this->faker->siren(false);
- $this->assertRegExp("/^\d{9}$/", $siren);
- $this->assertTrue(Luhn::isValid($siren));
- }
-
- public function testSirenReturnsAWellFormattedSiren()
- {
- $siren = $this->faker->siren();
- $this->assertRegExp("/^\d{3}\s\d{3}\s\d{3}$/", $siren);
- $siren = str_replace(' ', '', $siren);
- $this->assertTrue(Luhn::isValid($siren));
- }
-
- public function testCatchPhraseReturnsValidCatchPhrase()
- {
- $this->assertTrue(TestableCompany::isCatchPhraseValid($this->faker->catchPhrase()));
- }
-
- public function testIsCatchPhraseValidReturnsFalseWhenAWordsAppearsTwice()
- {
- $isCatchPhraseValid = TestableCompany::isCatchPhraseValid('La sécurité de rouler en toute sécurité');
- $this->assertFalse($isCatchPhraseValid);
- }
-
- public function testIsCatchPhraseValidReturnsTrueWhenNoWordAppearsTwice()
- {
- $isCatchPhraseValid = TestableCompany::isCatchPhraseValid('La sécurité de rouler en toute simplicité');
- $this->assertTrue($isCatchPhraseValid);
- }
-}
-
-class TestableCompany extends Company
-{
- public static function isCatchPhraseValid($catchPhrase)
- {
- return parent::isCatchPhraseValid($catchPhrase);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php
deleted file mode 100644
index abd039f0..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-addProvider(new Person($faker));
- $this->faker = $faker;
- }
-
- public function testIfFirstNameMaleCanReturnData()
- {
- $firstNameMale = $this->faker->firstNameMale();
- $this->assertNotEmpty($firstNameMale);
- }
-
- public function testIfLastNameMaleCanReturnData()
- {
- $lastNameMale = $this->faker->lastNameMale();
- $this->assertNotEmpty($lastNameMale);
- }
-
- public function testIfFirstNameFemaleCanReturnData()
- {
- $firstNameFemale = $this->faker->firstNameFemale();
- $this->assertNotEmpty($firstNameFemale);
- }
-
- public function testIfLastNameFemaleCanReturnData()
- {
- $lastNameFemale = $this->faker->lastNameFemale();
- $this->assertNotEmpty($lastNameFemale);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php
deleted file mode 100755
index 97fc566c..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-addProvider(new Person($faker));
- $faker->seed(1);
-
- $this->assertEquals('アオタ ミノル', $faker->kanaName);
- }
-
- public function testFirstKanaNameReturnsHaruka()
- {
- $faker = new Generator();
- $faker->addProvider(new Person($faker));
- $faker->seed(1);
-
- $this->assertEquals('ãƒãƒ«ã‚«', $faker->firstKanaName);
- }
-
- public function testLastKanaNameReturnsNakajima()
- {
- $faker = new Generator();
- $faker->addProvider(new Person($faker));
- $faker->seed(1);
-
- $this->assertEquals('ナカジマ', $faker->lastKanaName);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php
deleted file mode 100644
index f59142bd..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-addProvider(new Company($faker));
- $this->faker = $faker;
- }
-
- public function testCnpjFormatIsValid()
- {
- $cnpj = $this->faker->cnpj(false);
- $this->assertRegExp('/\d{8}\d{4}\d{2}/', $cnpj);
- $cnpj = $this->faker->cnpj(true);
- $this->assertRegExp('/\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}/', $cnpj);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php
deleted file mode 100644
index 767c1887..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-addProvider(new Person($faker));
- $this->faker = $faker;
- }
-
- public function testCpfFormatIsValid()
- {
- $cpf = $this->faker->cpf(false);
- $this->assertRegExp('/\d{9}\d{2}/', $cpf);
- $cpf = $this->faker->cpf(true);
- $this->assertRegExp('/\d{3}\.\d{3}\.\d{3}-\d{2}/', $cpf);
- }
-
- public function testRgFormatIsValid()
- {
- $rg = $this->faker->rg(false);
- $this->assertRegExp('/\d{8}\d/', $rg);
- $rg = $this->faker->rg(true);
- $this->assertRegExp('/\d{2}\.\d{3}\.\d{3}-[0-9X]/', $rg);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php
deleted file mode 100644
index d2adc158..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-addProvider(new Address($faker));
- $this->faker = $faker;
- }
-
- public function testPostCodeIsValid()
- {
- $main = '[1-9]{1}[0-9]{2}[0,1,4,5,9]{1}';
- $pattern = "/^($main)|($main-[0-9]{3})+$/";
- $postcode = $this->faker->postcode();
- $this->assertSame(preg_match($pattern, $postcode), 1, $postcode);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php
deleted file mode 100644
index 9bfb7a2f..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-addProvider(new Person($faker));
- $this->faker = $faker;
- }
-
- public function testTaxpayerIdentificationNumberIsValid()
- {
- $tin = $this->faker->taxpayerIdentificationNumber();
- $this->assertTrue($this->isValidTin($tin), $tin);
- }
-
- /**
- *
- * @link http://pt.wikipedia.org/wiki/N%C3%BAmero_de_identifica%C3%A7%C3%A3o_fiscal
- *
- * @param type $tin
- *
- * @return boolean
- */
- public static function isValidTin($tin)
- {
- $regex = '(([1,2,3,5,6,8]{1}[0-9]{8})|((45)|(70)|(71)|(72)|(77)|(79)|(90|(98|(99))))[0-9]{7})';
- if (is_null($tin) || !is_numeric($tin) || !strlen($tin) == 9 || preg_match("/$regex/", $tin) !== 1) {
- return false;
- }
- $n = str_split($tin);
- // cd - Control Digit
- $cd = ($n[0] * 9 + $n[1] * 8 + $n[2] * 7 + $n[3] * 6 + $n[4] * 5 + $n[5] * 4 + $n[6] * 3 + $n[7] * 2) % 11;
- if ($cd === 0 || $cd === 1) {
- $cd = 0;
- } else {
- $cd = 11 - $cd;
- }
- if ($cd === intval($n[8])) {
- return true;
- }
-
- return false;
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php
deleted file mode 100644
index 04b2f63d..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-addProvider(new PhoneNumber($faker));
- $this->faker = $faker;
- }
-
- public function testPhoneNumberReturnsPhoneNumberWithOrWithoutPrefix()
- {
- $this->assertRegExp('/^(9[1,2,3,6][0-9]{7})|(2[0-9]{8})|(\+351 [2][0-9]{8})|(\+351 9[1,2,3,6][0-9]{7})/', $this->faker->phoneNumber());
- }
- public function testMobileNumberReturnsMobileNumberWithOrWithoutPrefix()
- {
- $this->assertRegExp('/^(9[1,2,3,6][0-9]{7})/', $this->faker->mobileNumber());
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php
deleted file mode 100644
index 5816b63c..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php
+++ /dev/null
@@ -1,95 +0,0 @@
-seed(1);
- $faker->addProvider(new DateTime($faker));
- $faker->addProvider(new Person($faker));
- $this->faker = $faker;
- }
-
- public function testCnpReturnsValidCnp()
- {
- $cnp = $this->faker->cnp;
- $this->assertTrue($this->isValidCnp($cnp));
- }
-
- public function testCnpReturnsMaleCnp()
- {
- $cnp = $this->faker->cnp('m');
- $this->assertRegExp('/^[1357]\d{12}$/', $cnp);
- }
-
- public function testCnpReturnsFemaleCnp()
- {
- $cnp = $this->faker->cnp('f');
- $this->assertRegExp('/^[2468]\d{12}$/', $cnp);
- }
-
- public function testCnpReturns1800sCnp()
- {
- $cnp = $this->faker->cnp(null, 1800);
- $this->assertRegExp('/^[34]\d{12}$/', $cnp);
- }
-
- public function testCnpReturns1900sCnp()
- {
- $cnp = $this->faker->cnp(null, 1900);
- $this->assertRegExp('/^[12]\d{12}$/', $cnp);
- }
-
- public function testCnpReturns2000sCnp()
- {
- $cnp = $this->faker->cnp(null, 2000);
- $this->assertRegExp('/^[56]\d{12}$/', $cnp);
- }
-
- public function testCnpReturnsBrasovCnp()
- {
- $cnp = $this->faker->cnp(null, null, 'BV');
- $this->assertRegExp('/^\d{7}08\d{4}$/', $cnp);
- }
-
- public function testCnpReturns2000sClujFemaleCnp()
- {
- $cnp = $this->faker->cnp('f', 2000, 'CJ');
- $this->assertRegExp('/^6\d{6}12\d{4}$/', $cnp);
- }
-
- protected function isValidCnp($cnp)
- {
- if (
- is_string($cnp)
- && (bool) preg_match(static::TEST_CNP_REGEX, $cnp)
- && checkdate(substr($cnp, 3, 2), substr($cnp, 5, 2), substr($cnp, 1, 2))
- ){
- $checkNumber = 279146358279;
-
- $checksum = 0;
- foreach (range(0, 11) as $digit) {
- $checksum += substr($cnp, $digit, 1) * substr($checkNumber, $digit, 1);
- }
- $checksum = $checksum % 11;
-
- if (
- ($checksum < 10 && $checksum == substr($cnp, -1))
- || ($checksum == 10 && substr($cnp, -1) == 1)
- ){
- return true;
- }
- }
-
- return false;
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php
deleted file mode 100644
index 97314d5f..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-addProvider(new PhoneNumber($faker));
- $this->faker = $faker;
- }
-
- public function testPhoneNumberReturnsNormalPhoneNumber()
- {
- $this->assertRegExp('/^0(?:[23][13-7]|7\d)\d{7}$/', $this->faker->phoneNumber());
- }
-
- public function testTollFreePhoneNumberReturnsTollFreePhoneNumber()
- {
- $this->assertRegExp('/^08(?:0[1267]|70)\d{6}$/', $this->faker->tollFreePhoneNumber());
- }
-
- public function testPremiumRatePhoneNumberReturnsPremiumRatePhoneNumber()
- {
- $this->assertRegExp('/^090[036]\d{6}$/', $this->faker->premiumRatePhoneNumber());
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php
deleted file mode 100644
index 623723a6..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-addProvider(new Person($faker));
- $this->faker = $faker;
- }
-
- public function provideSeedAndExpectedReturn()
- {
- return array(
- array(1, '720727', '720727-5798'),
- array(2, '710414', '710414-5664'),
- array(3, '591012', '591012-4519'),
- array(4, '180307', '180307-0356'),
- array(5, '820904', '820904-7748')
- );
- }
-
- /**
- * @dataProvider provideSeedAndExpectedReturn
- */
- public function testPersonalIdentityNumberUsesBirthDateIfProvided($seed, $birthdate, $expected)
- {
- $faker = $this->faker;
- $faker->seed($seed);
- $pin = $faker->personalIdentityNumber(\DateTime::createFromFormat('ymd', $birthdate));
- $this->assertEquals($expected, $pin);
- }
-
- public function testPersonalIdentityNumberGeneratesLuhnCompliantNumbers()
- {
- $pin = str_replace('-', '', $this->faker->personalIdentityNumber());
- $this->assertTrue(Luhn::isValid($pin));
- }
-
- public function testPersonalIdentityNumberGeneratesOddValuesForMales()
- {
- $pin = $this->faker->personalIdentityNumber(null, 'male');
- $this->assertEquals(1, $pin{9} % 2);
- }
-
- public function testPersonalIdentityNumberGeneratesEvenValuesForFemales()
- {
- $pin = $this->faker->personalIdentityNumber(null, 'female');
- $this->assertEquals(0, $pin{9} % 2);
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php
deleted file mode 100644
index a3e38d73..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-addProvider(new Address($faker));
- $this->faker = $faker;
- }
-
- public function testPostCodeIsValid()
- {
- $main = '[0-9]{5}';
- $pattern = "/^($main)|($main-[0-9]{3})+$/";
- $postcode = $this->faker->postcode;
- $this->assertRegExp($pattern, $postcode, 'Post code ' . $postcode . ' is wrong!');
- }
-
- public function testEmptySuffixes()
- {
- $this->assertEmpty($this->faker->citySuffix, 'City suffix should be empty!');
- $this->assertEmpty($this->faker->streetSuffix, 'Street suffix should be empty!');
- }
-
- public function testStreetCyrOnly()
- {
- $pattern = "/[0-9Ð-ЩЯІЇЄЮа-щÑіїєюьIVXCM][0-9Ð-ЩЯІЇЄЮа-щÑіїєюь \'-.]*[Ð-Яа-Ñ.]/u";
- $streetName = $this->faker->streetName;
- $this->assertSame(
- preg_match($pattern, $streetName),
- 1,
- 'Street name ' . $streetName . ' is wrong!'
- );
- }
-
- public function testCityNameCyrOnly()
- {
- $pattern = "/[Ð-ЩЯІЇЄЮа-щÑіїєюь][0-9Ð-ЩЯІЇЄЮа-щÑіїєюь \'-]*[Ð-Яа-Ñ]/u";
- $city = $this->faker->city;
- $this->assertSame(
- preg_match($pattern, $city),
- 1,
- 'City name ' . $city . ' is wrong!'
- );
- }
-
- public function testRegionNameCyrOnly()
- {
- $pattern = "/[Ð-ЩЯІЇЄЮ][Ð-ЩЯІЇЄЮа-щÑіїєюь]*а$/u";
- $regionName = $this->faker->region;
- $this->assertSame(
- preg_match($pattern, $regionName),
- 1,
- 'Region name ' . $regionName . ' is wrong!'
- );
- }
-
- public function testCountryCyrOnly()
- {
- $pattern = "/[Ð-ЩЯІЇЄЮа-щÑіїєюьIVXCM][Ð-ЩЯІЇЄЮа-щÑіїєюь \'-]*[Ð-Яа-Ñ.]/u";
- $country = $this->faker->country;
- $this->assertSame(
- preg_match($pattern, $country),
- 1,
- 'Country name ' . $country . ' is wrong!'
- );
- }
-}
diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php
deleted file mode 100644
index 13620c72..00000000
--- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-addProvider(new PhoneNumber($faker));
- $this->faker = $faker;
- }
-
- public function testPhoneNumberFormat()
- {
- $pattern = "/((\+38)(((\(\d{3}\))\d{7}|(\(\d{4}\))\d{6})|(\d{8})))|0\d{9}/";
- $phoneNumber = $this->faker->phoneNumber;
- $this->assertSame(
- preg_match($pattern, $phoneNumber),
- 1,
- 'Phone number format ' . $phoneNumber . ' is wrong!'
- );
-
- }
-
-}
diff --git a/vendor/fzaninotto/faker/test/documentor.php b/vendor/fzaninotto/faker/test/documentor.php
deleted file mode 100644
index 1051ea28..00000000
--- a/vendor/fzaninotto/faker/test/documentor.php
+++ /dev/null
@@ -1,16 +0,0 @@
-seed(1);
-$documentor = new Faker\Documentor($generator);
-?>
-getFormatters() as $provider => $formatters): ?>
-
-### ``
-
- $example): ?>
- //
-
-
-seed(5);
-
-echo '';
-?>
-+ * + * @deprecated Since Symfony 5.4, use Doctrine\Common\Cache\Psr6\CacheAdapter instead + */ +class DoctrineAdapter extends AbstractAdapter +{ + private $provider; + + public function __construct(CacheProvider $provider, string $namespace = '', int $defaultLifetime = 0) + { + trigger_deprecation('symfony/cache', '5.4', '"%s" is deprecated, use "%s" instead.', __CLASS__, CacheAdapter::class); + + parent::__construct('', $defaultLifetime); + $this->provider = $provider; + $provider->setNamespace($namespace); + } + + /** + * {@inheritdoc} + */ + public function reset() + { + parent::reset(); + $this->provider->setNamespace($this->provider->getNamespace()); + } + + /** + * {@inheritdoc} + */ + protected function doFetch(array $ids) + { + $unserializeCallbackHandler = ini_set('unserialize_callback_func', parent::class.'::handleUnserializeCallback'); + try { + return $this->provider->fetchMultiple($ids); + } catch (\Error $e) { + $trace = $e->getTrace(); + + if (isset($trace[0]['function']) && !isset($trace[0]['class'])) { + switch ($trace[0]['function']) { + case 'unserialize': + case 'apcu_fetch': + case 'apc_fetch': + throw new \ErrorException($e->getMessage(), $e->getCode(), \E_ERROR, $e->getFile(), $e->getLine()); + } + } + + throw $e; + } finally { + ini_set('unserialize_callback_func', $unserializeCallbackHandler); + } + } + + /** + * {@inheritdoc} + */ + protected function doHave(string $id) + { + return $this->provider->contains($id); + } + + /** + * {@inheritdoc} + */ + protected function doClear(string $namespace) + { + $namespace = $this->provider->getNamespace(); + + return isset($namespace[0]) + ? $this->provider->deleteAll() + : $this->provider->flushAll(); + } + + /** + * {@inheritdoc} + */ + protected function doDelete(array $ids) + { + $ok = true; + foreach ($ids as $id) { + $ok = $this->provider->delete($id) && $ok; + } + + return $ok; + } + + /** + * {@inheritdoc} + */ + protected function doSave(array $values, int $lifetime) + { + return $this->provider->saveMultiple($values, $lifetime); + } +} diff --git a/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php b/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php index bc8cbb6b..73f0ea6b 100644 --- a/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php +++ b/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php @@ -27,16 +27,16 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface { protected $maxIdLength = 255; - private MarshallerInterface $marshaller; - private Connection $conn; - private string $platformName; - private string $serverVersion; - private string $table = 'cache_items'; - private string $idCol = 'item_id'; - private string $dataCol = 'item_data'; - private string $lifetimeCol = 'item_lifetime'; - private string $timeCol = 'item_time'; - private string $namespace; + private $marshaller; + private $conn; + private $platformName; + private $serverVersion; + private $table = 'cache_items'; + private $idCol = 'item_id'; + private $dataCol = 'item_data'; + private $lifetimeCol = 'item_lifetime'; + private $timeCol = 'item_time'; + private $namespace; /** * You can either pass an existing database Doctrine DBAL Connection or @@ -52,9 +52,11 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface * * db_lifetime_col: The column where to store the lifetime [default: item_lifetime] * * db_time_col: The column where to store the timestamp [default: item_time] * + * @param Connection|string $connOrDsn + * * @throws InvalidArgumentException When namespace contains invalid characters */ - public function __construct(Connection|string $connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], MarshallerInterface $marshaller = null) + public function __construct($connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], MarshallerInterface $marshaller = null) { if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) { throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0])); @@ -62,11 +64,13 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface if ($connOrDsn instanceof Connection) { $this->conn = $connOrDsn; - } else { + } elseif (\is_string($connOrDsn)) { if (!class_exists(DriverManager::class)) { throw new InvalidArgumentException(sprintf('Failed to parse the DSN "%s". Try running "composer require doctrine/dbal".', $connOrDsn)); } $this->conn = DriverManager::getConnection(['url' => $connOrDsn]); + } else { + throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be "%s" or string, "%s" given.', __METHOD__, Connection::class, get_debug_type($connOrDsn))); } $this->table = $options['db_table'] ?? $this->table; @@ -88,7 +92,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface * * @throws DBALException When the table already exists */ - public function createTable(): void + public function createTable() { $schema = new Schema(); $this->addTableToSchema($schema); @@ -132,7 +136,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface try { $this->conn->executeStatement($deleteSql, $params, $paramTypes); - } catch (TableNotFoundException) { + } catch (TableNotFoundException $e) { } return true; @@ -209,7 +213,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface try { $this->conn->executeStatement($sql); - } catch (TableNotFoundException) { + } catch (TableNotFoundException $e) { } return true; @@ -223,7 +227,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface $sql = "DELETE FROM $this->table WHERE $this->idCol IN (?)"; try { $this->conn->executeStatement($sql, [array_values($ids)], [Connection::PARAM_STR_ARRAY]); - } catch (TableNotFoundException) { + } catch (TableNotFoundException $e) { } return true; @@ -232,7 +236,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doSave(array $values, int $lifetime): array|bool + protected function doSave(array $values, int $lifetime) { if (!$values = $this->marshaller->marshall($values, $failed)) { return $failed; @@ -274,7 +278,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface $lifetime = $lifetime ?: null; try { $stmt = $this->conn->prepare($sql); - } catch (TableNotFoundException) { + } catch (TableNotFoundException $e) { if (!$this->conn->isTransactionActive() || \in_array($platformName, ['pgsql', 'sqlite', 'sqlsrv'], true)) { $this->createTable(); } @@ -312,7 +316,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface foreach ($values as $id => $data) { try { $rowCount = $stmt->executeStatement(); - } catch (TableNotFoundException) { + } catch (TableNotFoundException $e) { if (!$this->conn->isTransactionActive() || \in_array($platformName, ['pgsql', 'sqlite', 'sqlsrv'], true)) { $this->createTable(); } @@ -321,7 +325,7 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface if (null === $platformName && 0 === $rowCount) { try { $insertStmt->executeStatement(); - } catch (DBALException) { + } catch (DBALException $e) { // A concurrent write won, let it be } } @@ -338,17 +342,28 @@ class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface $platform = $this->conn->getDatabasePlatform(); - return match (true) { - $platform instanceof \Doctrine\DBAL\Platforms\MySQLPlatform, - $platform instanceof \Doctrine\DBAL\Platforms\MySQL57Platform => $this->platformName = 'mysql', - $platform instanceof \Doctrine\DBAL\Platforms\SqlitePlatform => $this->platformName = 'sqlite', - $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform, - $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQL94Platform => $this->platformName = 'pgsql', - $platform instanceof \Doctrine\DBAL\Platforms\OraclePlatform => $this->platformName = 'oci', - $platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform, - $platform instanceof \Doctrine\DBAL\Platforms\SQLServer2012Platform => $this->platformName = 'sqlsrv', - default => $this->platformName = \get_class($platform), - }; + switch (true) { + case $platform instanceof \Doctrine\DBAL\Platforms\MySQLPlatform: + case $platform instanceof \Doctrine\DBAL\Platforms\MySQL57Platform: + return $this->platformName = 'mysql'; + + case $platform instanceof \Doctrine\DBAL\Platforms\SqlitePlatform: + return $this->platformName = 'sqlite'; + + case $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform: + case $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQL94Platform: + return $this->platformName = 'pgsql'; + + case $platform instanceof \Doctrine\DBAL\Platforms\OraclePlatform: + return $this->platformName = 'oci'; + + case $platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform: + case $platform instanceof \Doctrine\DBAL\Platforms\SQLServer2012Platform: + return $this->platformName = 'sqlsrv'; + + default: + return $this->platformName = \get_class($platform); + } } private function getServerVersion(): string diff --git a/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php b/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php index 2b5677d3..afde8437 100644 --- a/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php +++ b/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php @@ -44,7 +44,7 @@ class FilesystemTagAwareAdapter extends AbstractTagAwareAdapter implements Prune /** * {@inheritdoc} */ - protected function doClear(string $namespace): bool + protected function doClear(string $namespace) { $ok = $this->doClearCache($namespace); @@ -140,7 +140,7 @@ class FilesystemTagAwareAdapter extends AbstractTagAwareAdapter implements Prune continue; } - if (!@unlink($file)) { + if ((\PHP_VERSION_ID >= 70300 || '\\' !== \DIRECTORY_SEPARATOR) && !@unlink($file)) { fclose($h); continue; } @@ -159,12 +159,16 @@ class FilesystemTagAwareAdapter extends AbstractTagAwareAdapter implements Prune try { yield $id => '' === $meta ? [] : $this->marshaller->unmarshall($meta); - } catch (\Exception) { + } catch (\Exception $e) { yield $id => []; } } fclose($h); + + if (\PHP_VERSION_ID < 70300 && '\\' === \DIRECTORY_SEPARATOR) { + @unlink($file); + } } } diff --git a/vendor/symfony/cache/Adapter/MemcachedAdapter.php b/vendor/symfony/cache/Adapter/MemcachedAdapter.php index 7730f7e0..5c2933fc 100644 --- a/vendor/symfony/cache/Adapter/MemcachedAdapter.php +++ b/vendor/symfony/cache/Adapter/MemcachedAdapter.php @@ -39,9 +39,9 @@ class MemcachedAdapter extends AbstractAdapter \Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_PHP, ]; - private MarshallerInterface $marshaller; - private \Memcached $client; - private \Memcached $lazyClient; + private $marshaller; + private $client; + private $lazyClient; /** * Using a MemcachedAdapter with a TagAwareAdapter for storing tags is discouraged. @@ -90,9 +90,11 @@ class MemcachedAdapter extends AbstractAdapter * * @param array[]|string|string[] $servers An array of servers, a DSN, or an array of DSNs * + * @return \Memcached + * * @throws \ErrorException When invalid options or servers are provided */ - public static function createConnection(array|string $servers, array $options = []): \Memcached + public static function createConnection($servers, array $options = []) { if (\is_string($servers)) { $servers = [$servers]; @@ -240,7 +242,7 @@ class MemcachedAdapter extends AbstractAdapter /** * {@inheritdoc} */ - protected function doSave(array $values, int $lifetime): array|bool + protected function doSave(array $values, int $lifetime) { if (!$values = $this->marshaller->marshall($values, $failed)) { return $failed; @@ -261,7 +263,7 @@ class MemcachedAdapter extends AbstractAdapter /** * {@inheritdoc} */ - protected function doFetch(array $ids): iterable + protected function doFetch(array $ids) { try { $encodedIds = array_map([__CLASS__, 'encodeKey'], $ids); @@ -282,7 +284,7 @@ class MemcachedAdapter extends AbstractAdapter /** * {@inheritdoc} */ - protected function doHave(string $id): bool + protected function doHave(string $id) { return false !== $this->getClient()->get(self::encodeKey($id)) || $this->checkResultCode(\Memcached::RES_SUCCESS === $this->client->getResultCode()); } @@ -290,7 +292,7 @@ class MemcachedAdapter extends AbstractAdapter /** * {@inheritdoc} */ - protected function doDelete(array $ids): bool + protected function doDelete(array $ids) { $ok = true; $encodedIds = array_map([__CLASS__, 'encodeKey'], $ids); @@ -306,12 +308,12 @@ class MemcachedAdapter extends AbstractAdapter /** * {@inheritdoc} */ - protected function doClear(string $namespace): bool + protected function doClear(string $namespace) { return '' === $namespace && $this->getClient()->flush(); } - private function checkResultCode(mixed $result) + private function checkResultCode($result) { $code = $this->client->getResultCode(); @@ -324,7 +326,7 @@ class MemcachedAdapter extends AbstractAdapter private function getClient(): \Memcached { - if (isset($this->client)) { + if ($this->client) { return $this->client; } diff --git a/vendor/symfony/cache/Adapter/NullAdapter.php b/vendor/symfony/cache/Adapter/NullAdapter.php index 7827000b..15f7f8c4 100644 --- a/vendor/symfony/cache/Adapter/NullAdapter.php +++ b/vendor/symfony/cache/Adapter/NullAdapter.php @@ -40,7 +40,7 @@ class NullAdapter implements AdapterInterface, CacheInterface /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null): mixed + public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) { $save = true; @@ -50,7 +50,7 @@ class NullAdapter implements AdapterInterface, CacheInterface /** * {@inheritdoc} */ - public function getItem(mixed $key): CacheItem + public function getItem($key) { return (self::$createCacheItem)($key); } @@ -58,63 +58,77 @@ class NullAdapter implements AdapterInterface, CacheInterface /** * {@inheritdoc} */ - public function getItems(array $keys = []): iterable + public function getItems(array $keys = []) { return $this->generateItems($keys); } /** * {@inheritdoc} + * + * @return bool */ - public function hasItem(mixed $key): bool + public function hasItem($key) { return false; } /** * {@inheritdoc} + * + * @return bool */ - public function clear(string $prefix = ''): bool + public function clear(string $prefix = '') { return true; } /** * {@inheritdoc} + * + * @return bool */ - public function deleteItem(mixed $key): bool + public function deleteItem($key) { return true; } /** * {@inheritdoc} + * + * @return bool */ - public function deleteItems(array $keys): bool + public function deleteItems(array $keys) { return true; } /** * {@inheritdoc} + * + * @return bool */ - public function save(CacheItemInterface $item): bool + public function save(CacheItemInterface $item) { return true; } /** * {@inheritdoc} + * + * @return bool */ - public function saveDeferred(CacheItemInterface $item): bool + public function saveDeferred(CacheItemInterface $item) { return true; } /** * {@inheritdoc} + * + * @return bool */ - public function commit(): bool + public function commit() { return true; } diff --git a/vendor/symfony/cache/Adapter/PdoAdapter.php b/vendor/symfony/cache/Adapter/PdoAdapter.php index 8bf72210..5d107244 100644 --- a/vendor/symfony/cache/Adapter/PdoAdapter.php +++ b/vendor/symfony/cache/Adapter/PdoAdapter.php @@ -12,6 +12,9 @@ namespace Symfony\Component\Cache\Adapter; use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Schema\Schema; +use Psr\Cache\CacheItemInterface; +use Psr\Log\LoggerInterface; use Symfony\Component\Cache\Exception\InvalidArgumentException; use Symfony\Component\Cache\Marshaller\DefaultMarshaller; use Symfony\Component\Cache\Marshaller\MarshallerInterface; @@ -21,20 +24,22 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface { protected $maxIdLength = 255; - private MarshallerInterface $marshaller; - private \PDO|Connection $conn; - private string $dsn; - private string $driver; - private string $serverVersion; - private mixed $table = 'cache_items'; - private mixed $idCol = 'item_id'; - private mixed $dataCol = 'item_data'; - private mixed $lifetimeCol = 'item_lifetime'; - private mixed $timeCol = 'item_time'; - private mixed $username = ''; - private mixed $password = ''; - private mixed $connectionOptions = []; - private string $namespace; + private $marshaller; + private $conn; + private $dsn; + private $driver; + private $serverVersion; + private $table = 'cache_items'; + private $idCol = 'item_id'; + private $dataCol = 'item_data'; + private $lifetimeCol = 'item_lifetime'; + private $timeCol = 'item_time'; + private $username = ''; + private $password = ''; + private $connectionOptions = []; + private $namespace; + + private $dbalAdapter; /** * You can either pass an existing database connection as PDO instance or @@ -51,14 +56,19 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface * * db_password: The password when lazy-connect [default: ''] * * db_connection_options: An array of driver-specific connection options [default: []] * + * @param \PDO|string $connOrDsn + * * @throws InvalidArgumentException When first argument is not PDO nor Connection nor string * @throws InvalidArgumentException When PDO error mode is not PDO::ERRMODE_EXCEPTION * @throws InvalidArgumentException When namespace contains invalid characters */ - public function __construct(\PDO|string $connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], MarshallerInterface $marshaller = null) + public function __construct($connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], MarshallerInterface $marshaller = null) { - if (\is_string($connOrDsn) && str_contains($connOrDsn, '://')) { - throw new InvalidArgumentException(sprintf('Usage of Doctrine DBAL URL with "%s" is not supported. Use a PDO DSN or "%s" instead. Got "%s".', __CLASS__, DoctrineDbalAdapter::class, $connOrDsn)); + if ($connOrDsn instanceof Connection || (\is_string($connOrDsn) && str_contains($connOrDsn, '://'))) { + trigger_deprecation('symfony/cache', '5.4', 'Usage of a DBAL Connection with "%s" is deprecated and will be removed in symfony 6.0. Use "%s" instead.', __CLASS__, DoctrineDbalAdapter::class); + $this->dbalAdapter = new DoctrineDbalAdapter($connOrDsn, $namespace, $defaultLifetime, $options, $marshaller); + + return; } if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) { @@ -71,8 +81,10 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface } $this->conn = $connOrDsn; - } else { + } elseif (\is_string($connOrDsn)) { $this->dsn = $connOrDsn; + } else { + throw new InvalidArgumentException(sprintf('"%s" requires PDO or Doctrine\DBAL\Connection instance or DSN string as first argument, "%s" given.', __CLASS__, get_debug_type($connOrDsn))); } $this->table = $options['db_table'] ?? $this->table; @@ -89,6 +101,166 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface parent::__construct($namespace, $defaultLifetime); } + /** + * {@inheritDoc} + */ + public function getItem($key) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->getItem($key); + } + + return parent::getItem($key); + } + + /** + * {@inheritDoc} + */ + public function getItems(array $keys = []) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->getItems($keys); + } + + return parent::getItems($keys); + } + + /** + * {@inheritDoc} + */ + public function hasItem($key) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->hasItem($key); + } + + return parent::hasItem($key); + } + + /** + * {@inheritDoc} + */ + public function deleteItem($key) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->deleteItem($key); + } + + return parent::deleteItem($key); + } + + /** + * {@inheritDoc} + */ + public function deleteItems(array $keys) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->deleteItems($keys); + } + + return parent::deleteItems($keys); + } + + /** + * {@inheritDoc} + */ + public function clear(string $prefix = '') + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->clear($prefix); + } + + return parent::clear($prefix); + } + + /** + * {@inheritDoc} + */ + public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->get($key, $callback, $beta, $metadata); + } + + return parent::get($key, $callback, $beta, $metadata); + } + + /** + * {@inheritDoc} + */ + public function delete(string $key): bool + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->delete($key); + } + + return parent::delete($key); + } + + /** + * {@inheritDoc} + */ + public function save(CacheItemInterface $item) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->save($item); + } + + return parent::save($item); + } + + /** + * {@inheritDoc} + */ + public function saveDeferred(CacheItemInterface $item) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->saveDeferred($item); + } + + return parent::saveDeferred($item); + } + + /** + * {@inheritDoc} + */ + public function setLogger(LoggerInterface $logger): void + { + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->setLogger($logger); + + return; + } + + parent::setLogger($logger); + } + + /** + * {@inheritDoc} + */ + public function commit() + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->commit(); + } + + return parent::commit(); + } + + /** + * {@inheritDoc} + */ + public function reset() + { + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->reset(); + + return; + } + + parent::reset(); + } + /** * Creates the table to store cache items which can be called once for setup. * @@ -100,31 +272,64 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface */ public function createTable() { + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->createTable(); + + return; + } + // connect if we are not yet $conn = $this->getConnection(); - $sql = match ($this->driver) { - // We use varbinary for the ID column because it prevents unwanted conversions: - // - character set conversions between server and client - // - trailing space removal - // - case-insensitivity - // - language processing like é == e - 'mysql' => "CREATE TABLE $this->table ($this->idCol VARBINARY(255) NOT NULL PRIMARY KEY, $this->dataCol MEDIUMBLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB", - 'sqlite' => "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - 'pgsql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - 'oci' => "CREATE TABLE $this->table ($this->idCol VARCHAR2(255) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - 'sqlsrv' => "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)", - default => throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver)), - }; + switch ($this->driver) { + case 'mysql': + // We use varbinary for the ID column because it prevents unwanted conversions: + // - character set conversions between server and client + // - trailing space removal + // - case-insensitivity + // - language processing like é == e + $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(255) NOT NULL PRIMARY KEY, $this->dataCol MEDIUMBLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB"; + break; + case 'sqlite': + $sql = "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; + break; + case 'pgsql': + $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; + break; + case 'oci': + $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR2(255) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; + break; + case 'sqlsrv': + $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; + break; + default: + throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver)); + } $conn->exec($sql); } + /** + * Adds the Table to the Schema if the adapter uses this Connection. + * + * @deprecated since symfony/cache 5.4 use DoctrineDbalAdapter instead + */ + public function configureSchema(Schema $schema, Connection $forConnection): void + { + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->configureSchema($schema, $forConnection); + } + } + /** * {@inheritdoc} */ - public function prune(): bool + public function prune() { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->prune(); + } + $deleteSql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= :time"; if ('' !== $this->namespace) { @@ -135,7 +340,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface try { $delete = $connection->prepare($deleteSql); - } catch (\PDOException) { + } catch (\PDOException $e) { return true; } $delete->bindValue(':time', time(), \PDO::PARAM_INT); @@ -145,7 +350,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface } try { return $delete->execute(); - } catch (\PDOException) { + } catch (\PDOException $e) { return true; } } @@ -153,7 +358,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doFetch(array $ids): iterable + protected function doFetch(array $ids) { $connection = $this->getConnection(); @@ -199,7 +404,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doHave(string $id): bool + protected function doHave(string $id) { $connection = $this->getConnection(); @@ -216,7 +421,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doClear(string $namespace): bool + protected function doClear(string $namespace) { $conn = $this->getConnection(); @@ -232,7 +437,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface try { $conn->exec($sql); - } catch (\PDOException) { + } catch (\PDOException $e) { } return true; @@ -241,14 +446,14 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doDelete(array $ids): bool + protected function doDelete(array $ids) { $sql = str_pad('', (\count($ids) << 1) - 1, '?,'); $sql = "DELETE FROM $this->table WHERE $this->idCol IN ($sql)"; try { $stmt = $this->getConnection()->prepare($sql); $stmt->execute(array_values($ids)); - } catch (\PDOException) { + } catch (\PDOException $e) { } return true; @@ -257,7 +462,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doSave(array $values, int $lifetime): array|bool + protected function doSave(array $values, int $lifetime) { if (!$values = $this->marshaller->marshall($values, $failed)) { return $failed; @@ -301,7 +506,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface $lifetime = $lifetime ?: null; try { $stmt = $conn->prepare($sql); - } catch (\PDOException) { + } catch (\PDOException $e) { if (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { $this->createTable(); } @@ -336,7 +541,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface foreach ($values as $id => $data) { try { $stmt->execute(); - } catch (\PDOException) { + } catch (\PDOException $e) { if (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { $this->createTable(); } @@ -345,7 +550,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface if (null === $driver && !$stmt->rowCount()) { try { $insertStmt->execute(); - } catch (\PDOException) { + } catch (\PDOException $e) { // A concurrent write won, let it be } } @@ -356,17 +561,23 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface private function getConnection(): \PDO { - if (!isset($this->conn)) { + if (null === $this->conn) { $this->conn = new \PDO($this->dsn, $this->username, $this->password, $this->connectionOptions); $this->conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } - $this->driver ??= $this->conn->getAttribute(\PDO::ATTR_DRIVER_NAME); + if (null === $this->driver) { + $this->driver = $this->conn->getAttribute(\PDO::ATTR_DRIVER_NAME); + } return $this->conn; } private function getServerVersion(): string { - return $this->serverVersion ??= $this->conn->getAttribute(\PDO::ATTR_SERVER_VERSION); + if (null === $this->serverVersion) { + $this->serverVersion = $this->conn->getAttribute(\PDO::ATTR_SERVER_VERSION); + } + + return $this->serverVersion; } } diff --git a/vendor/symfony/cache/Adapter/PhpArrayAdapter.php b/vendor/symfony/cache/Adapter/PhpArrayAdapter.php index 72a3692c..8c8fb916 100644 --- a/vendor/symfony/cache/Adapter/PhpArrayAdapter.php +++ b/vendor/symfony/cache/Adapter/PhpArrayAdapter.php @@ -34,12 +34,12 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte use ContractsTrait; use ProxyTrait; - private string $file; - private array $keys; - private array $values; + private $file; + private $keys; + private $values; - private static \Closure $createCacheItem; - private static array $valuesCache = []; + private static $createCacheItem; + private static $valuesCache = []; /** * @param string $file The PHP file were values are cached @@ -68,8 +68,10 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte * * @param string $file The PHP file were values are cached * @param CacheItemPoolInterface $fallbackPool A pool to fallback on when an item is not hit + * + * @return CacheItemPoolInterface */ - public static function create(string $file, CacheItemPoolInterface $fallbackPool): CacheItemPoolInterface + public static function create(string $file, CacheItemPoolInterface $fallbackPool) { if (!$fallbackPool instanceof AdapterInterface) { $fallbackPool = new ProxyAdapter($fallbackPool); @@ -81,9 +83,9 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null): mixed + public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) { - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } if (!isset($this->keys[$key])) { @@ -103,7 +105,7 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte if ($value instanceof \Closure) { return $value(); } - } catch (\Throwable) { + } catch (\Throwable $e) { unset($this->keys[$key]); goto get_from_pool; } @@ -114,12 +116,12 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} */ - public function getItem(mixed $key): CacheItem + public function getItem($key) { if (!\is_string($key)) { throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); } - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } if (!isset($this->keys[$key])) { @@ -134,7 +136,7 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte } elseif ($value instanceof \Closure) { try { $value = $value(); - } catch (\Throwable) { + } catch (\Throwable $e) { $value = null; $isHit = false; } @@ -146,14 +148,14 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} */ - public function getItems(array $keys = []): iterable + public function getItems(array $keys = []) { foreach ($keys as $key) { if (!\is_string($key)) { throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); } } - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } @@ -162,13 +164,15 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} + * + * @return bool */ - public function hasItem(mixed $key): bool + public function hasItem($key) { if (!\is_string($key)) { throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); } - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } @@ -177,13 +181,15 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} + * + * @return bool */ - public function deleteItem(mixed $key): bool + public function deleteItem($key) { if (!\is_string($key)) { throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', get_debug_type($key))); } - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } @@ -192,8 +198,10 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} + * + * @return bool */ - public function deleteItems(array $keys): bool + public function deleteItems(array $keys) { $deleted = true; $fallbackKeys = []; @@ -209,7 +217,7 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte $fallbackKeys[] = $key; } } - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } @@ -222,10 +230,12 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} + * + * @return bool */ - public function save(CacheItemInterface $item): bool + public function save(CacheItemInterface $item) { - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } @@ -234,10 +244,12 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} + * + * @return bool */ - public function saveDeferred(CacheItemInterface $item): bool + public function saveDeferred(CacheItemInterface $item) { - if (!isset($this->values)) { + if (null === $this->values) { $this->initialize(); } @@ -246,16 +258,20 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte /** * {@inheritdoc} + * + * @return bool */ - public function commit(): bool + public function commit() { return $this->pool->commit(); } /** * {@inheritdoc} + * + * @return bool */ - public function clear(string $prefix = ''): bool + public function clear(string $prefix = '') { $this->keys = $this->values = []; @@ -276,7 +292,7 @@ class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInte * * @return string[] A list of classes to preload on PHP 7.4+ */ - public function warmUp(array $values): array + public function warmUp(array $values) { if (file_exists($this->file)) { if (!is_file($this->file)) { @@ -401,7 +417,7 @@ EOF; } elseif ($value instanceof \Closure) { try { yield $key => $f($key, $value(), true); - } catch (\Throwable) { + } catch (\Throwable $e) { yield $key => $f($key, null, false); } } else { diff --git a/vendor/symfony/cache/Adapter/PhpFilesAdapter.php b/vendor/symfony/cache/Adapter/PhpFilesAdapter.php index 39468ce6..2fb08375 100644 --- a/vendor/symfony/cache/Adapter/PhpFilesAdapter.php +++ b/vendor/symfony/cache/Adapter/PhpFilesAdapter.php @@ -29,13 +29,13 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface doDelete as private doCommonDelete; } - private \Closure $includeHandler; - private bool $appendOnly; - private array $values = []; - private array $files = []; + private $includeHandler; + private $appendOnly; + private $values = []; + private $files = []; - private static int $startTime; - private static array $valuesCache = []; + private static $startTime; + private static $valuesCache = []; /** * @param $appendOnly Set to `true` to gain extra performance when the items stored in this pool never expire. @@ -61,7 +61,10 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface return \function_exists('opcache_invalidate') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(\ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN)); } - public function prune(): bool + /** + * @return bool + */ + public function prune() { $time = time(); $pruned = true; @@ -92,7 +95,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doFetch(array $ids): iterable + protected function doFetch(array $ids) { if ($this->appendOnly) { $now = 0; @@ -135,7 +138,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface foreach ($missingIds as $k => $id) { try { - $file = $this->files[$id] ??= $this->getFile($id); + $file = $this->files[$id] ?? $this->files[$id] = $this->getFile($id); if (isset(self::$valuesCache[$file])) { [$expiresAt, $this->values[$id]] = self::$valuesCache[$file]; @@ -168,7 +171,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doHave(string $id): bool + protected function doHave(string $id) { if ($this->appendOnly && isset($this->values[$id])) { return true; @@ -176,7 +179,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface set_error_handler($this->includeHandler); try { - $file = $this->files[$id] ??= $this->getFile($id); + $file = $this->files[$id] ?? $this->files[$id] = $this->getFile($id); $getExpiry = true; if (isset(self::$valuesCache[$file])) { @@ -190,7 +193,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface } elseif ($this->appendOnly) { $value = new LazyValue($file); } - } catch (\ErrorException) { + } catch (\ErrorException $e) { return false; } finally { restore_error_handler(); @@ -208,7 +211,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doSave(array $values, int $lifetime): array|bool + protected function doSave(array $values, int $lifetime) { $ok = true; $expiry = $lifetime ? time() + $lifetime : 'PHP_INT_MAX'; @@ -270,7 +273,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doClear(string $namespace): bool + protected function doClear(string $namespace) { $this->values = []; @@ -280,7 +283,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface /** * {@inheritdoc} */ - protected function doDelete(array $ids): bool + protected function doDelete(array $ids) { foreach ($ids as $id) { unset($this->values[$id]); @@ -318,7 +321,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface */ class LazyValue { - public string $file; + public $file; public function __construct(string $file) { diff --git a/vendor/symfony/cache/Adapter/ProxyAdapter.php b/vendor/symfony/cache/Adapter/ProxyAdapter.php index d2cd0b94..c715cade 100644 --- a/vendor/symfony/cache/Adapter/ProxyAdapter.php +++ b/vendor/symfony/cache/Adapter/ProxyAdapter.php @@ -28,25 +28,25 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa use ContractsTrait; use ProxyTrait; - private string $namespace = ''; - private int $namespaceLen; - private string $poolHash; - private int $defaultLifetime; + private $namespace = ''; + private $namespaceLen; + private $poolHash; + private $defaultLifetime; - private static \Closure $createCacheItem; - private static \Closure $setInnerItem; + private static $createCacheItem; + private static $setInnerItem; public function __construct(CacheItemPoolInterface $pool, string $namespace = '', int $defaultLifetime = 0) { $this->pool = $pool; - $this->poolHash = spl_object_hash($pool); + $this->poolHash = $poolHash = spl_object_hash($pool); if ('' !== $namespace) { \assert('' !== CacheItem::validateKey($namespace)); $this->namespace = $namespace; } $this->namespaceLen = \strlen($namespace); $this->defaultLifetime = $defaultLifetime; - self::$createCacheItem ??= \Closure::bind( + self::$createCacheItem ?? self::$createCacheItem = \Closure::bind( static function ($key, $innerItem, $poolHash) { $item = new CacheItem(); $item->key = $key; @@ -55,12 +55,20 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa return $item; } - $item->value = $innerItem->get(); + $item->value = $v = $innerItem->get(); $item->isHit = $innerItem->isHit(); $item->innerItem = $innerItem; $item->poolHash = $poolHash; - if (!$item->unpack() && $innerItem instanceof CacheItem) { + // Detect wrapped values that encode for their expiry and creation duration + // For compactness, these values are packed in the key of an array using + // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F + if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) array_key_first($v)) && "\x9D" === $k[0] && "\0" === $k[5] && "\x5F" === $k[9]) { + $item->value = $v[$k]; + $v = unpack('Ve/Nc', substr($k, 1, -1)); + $item->metadata[CacheItem::METADATA_EXPIRY] = $v['e'] + CacheItem::METADATA_EXPIRY_OFFSET; + $item->metadata[CacheItem::METADATA_CTIME] = $v['c']; + } elseif ($innerItem instanceof CacheItem) { $item->metadata = $innerItem->metadata; } $innerItem->set(null); @@ -70,10 +78,21 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa null, CacheItem::class ); - self::$setInnerItem ??= \Closure::bind( - static function (CacheItemInterface $innerItem, CacheItem $item, $expiry = null) { - $innerItem->set($item->pack()); - $innerItem->expiresAt(($expiry ?? $item->expiry) ? \DateTime::createFromFormat('U.u', sprintf('%.6F', $expiry ?? $item->expiry)) : null); + self::$setInnerItem ?? self::$setInnerItem = \Closure::bind( + /** + * @param array $item A CacheItem cast to (array); accessing protected properties requires adding the "\0*\0" PHP prefix + */ + static function (CacheItemInterface $innerItem, array $item) { + // Tags are stored separately, no need to account for them when considering this item's newly set metadata + if (isset(($metadata = $item["\0*\0newMetadata"])[CacheItem::METADATA_TAGS])) { + unset($metadata[CacheItem::METADATA_TAGS]); + } + if ($metadata) { + // For compactness, expiry and creation duration are packed in the key of an array, using magic numbers as separators + $item["\0*\0value"] = ["\x9D".pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME])."\x5F" => $item["\0*\0value"]]; + } + $innerItem->set($item["\0*\0value"]); + $innerItem->expiresAt(null !== $item["\0*\0expiry"] ? \DateTime::createFromFormat('U.u', sprintf('%.6F', $item["\0*\0expiry"])) : null); }, null, CacheItem::class @@ -83,7 +102,7 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null): mixed + public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) { if (!$this->pool instanceof CacheInterface) { return $this->doGet($this, $key, $callback, $beta, $metadata); @@ -92,7 +111,7 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa return $this->pool->get($this->getId($key), function ($innerItem, bool &$save) use ($key, $callback) { $item = (self::$createCacheItem)($key, $innerItem, $this->poolHash); $item->set($value = $callback($item, $save)); - (self::$setInnerItem)($innerItem, $item); + (self::$setInnerItem)($innerItem, (array) $item); return $value; }, $beta, $metadata); @@ -101,7 +120,7 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa /** * {@inheritdoc} */ - public function getItem(mixed $key): CacheItem + public function getItem($key) { $item = $this->pool->getItem($this->getId($key)); @@ -111,7 +130,7 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa /** * {@inheritdoc} */ - public function getItems(array $keys = []): iterable + public function getItems(array $keys = []) { if ($this->namespaceLen) { foreach ($keys as $i => $key) { @@ -124,16 +143,20 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa /** * {@inheritdoc} + * + * @return bool */ - public function hasItem(mixed $key): bool + public function hasItem($key) { return $this->pool->hasItem($this->getId($key)); } /** * {@inheritdoc} + * + * @return bool */ - public function clear(string $prefix = ''): bool + public function clear(string $prefix = '') { if ($this->pool instanceof AdapterInterface) { return $this->pool->clear($this->namespace.$prefix); @@ -144,16 +167,20 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa /** * {@inheritdoc} + * + * @return bool */ - public function deleteItem(mixed $key): bool + public function deleteItem($key) { return $this->pool->deleteItem($this->getId($key)); } /** * {@inheritdoc} + * + * @return bool */ - public function deleteItems(array $keys): bool + public function deleteItems(array $keys) { if ($this->namespaceLen) { foreach ($keys as $i => $key) { @@ -166,50 +193,55 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa /** * {@inheritdoc} + * + * @return bool */ - public function save(CacheItemInterface $item): bool + public function save(CacheItemInterface $item) { return $this->doSave($item, __FUNCTION__); } /** * {@inheritdoc} + * + * @return bool */ - public function saveDeferred(CacheItemInterface $item): bool + public function saveDeferred(CacheItemInterface $item) { return $this->doSave($item, __FUNCTION__); } /** * {@inheritdoc} + * + * @return bool */ - public function commit(): bool + public function commit() { return $this->pool->commit(); } - private function doSave(CacheItemInterface $item, string $method): bool + private function doSave(CacheItemInterface $item, string $method) { if (!$item instanceof CacheItem) { return false; } - $castItem = (array) $item; - - if (null === $castItem["\0*\0expiry"] && 0 < $this->defaultLifetime) { - $castItem["\0*\0expiry"] = microtime(true) + $this->defaultLifetime; + $item = (array) $item; + if (null === $item["\0*\0expiry"] && 0 < $this->defaultLifetime) { + $item["\0*\0expiry"] = microtime(true) + $this->defaultLifetime; } - if ($castItem["\0*\0poolHash"] === $this->poolHash && $castItem["\0*\0innerItem"]) { - $innerItem = $castItem["\0*\0innerItem"]; + if ($item["\0*\0poolHash"] === $this->poolHash && $item["\0*\0innerItem"]) { + $innerItem = $item["\0*\0innerItem"]; } elseif ($this->pool instanceof AdapterInterface) { // this is an optimization specific for AdapterInterface implementations // so we can save a round-trip to the backend by just creating a new item - $innerItem = (self::$createCacheItem)($this->namespace.$castItem["\0*\0key"], null, $this->poolHash); + $innerItem = (self::$createCacheItem)($this->namespace.$item["\0*\0key"], null, $this->poolHash); } else { - $innerItem = $this->pool->getItem($this->namespace.$castItem["\0*\0key"]); + $innerItem = $this->pool->getItem($this->namespace.$item["\0*\0key"]); } - (self::$setInnerItem)($innerItem, $item, $castItem["\0*\0expiry"]); + (self::$setInnerItem)($innerItem, $item); return $this->pool->$method($innerItem); } @@ -227,7 +259,7 @@ class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterfa } } - private function getId(mixed $key): string + private function getId($key): string { \assert('' !== CacheItem::validateKey($key)); diff --git a/vendor/symfony/cache/Adapter/Psr16Adapter.php b/vendor/symfony/cache/Adapter/Psr16Adapter.php index 664c18bb..a56aa393 100644 --- a/vendor/symfony/cache/Adapter/Psr16Adapter.php +++ b/vendor/symfony/cache/Adapter/Psr16Adapter.php @@ -30,7 +30,7 @@ class Psr16Adapter extends AbstractAdapter implements PruneableInterface, Resett */ protected const NS_SEPARATOR = '_'; - private object $miss; + private $miss; public function __construct(CacheInterface $pool, string $namespace = '', int $defaultLifetime = 0) { @@ -43,7 +43,7 @@ class Psr16Adapter extends AbstractAdapter implements PruneableInterface, Resett /** * {@inheritdoc} */ - protected function doFetch(array $ids): iterable + protected function doFetch(array $ids) { foreach ($this->pool->getMultiple($ids, $this->miss) as $key => $value) { if ($this->miss !== $value) { @@ -55,7 +55,7 @@ class Psr16Adapter extends AbstractAdapter implements PruneableInterface, Resett /** * {@inheritdoc} */ - protected function doHave(string $id): bool + protected function doHave(string $id) { return $this->pool->has($id); } @@ -63,7 +63,7 @@ class Psr16Adapter extends AbstractAdapter implements PruneableInterface, Resett /** * {@inheritdoc} */ - protected function doClear(string $namespace): bool + protected function doClear(string $namespace) { return $this->pool->clear(); } @@ -71,7 +71,7 @@ class Psr16Adapter extends AbstractAdapter implements PruneableInterface, Resett /** * {@inheritdoc} */ - protected function doDelete(array $ids): bool + protected function doDelete(array $ids) { return $this->pool->deleteMultiple($ids); } @@ -79,7 +79,7 @@ class Psr16Adapter extends AbstractAdapter implements PruneableInterface, Resett /** * {@inheritdoc} */ - protected function doSave(array $values, int $lifetime): array|bool + protected function doSave(array $values, int $lifetime) { return $this->pool->setMultiple($values, 0 === $lifetime ? null : $lifetime); } diff --git a/vendor/symfony/cache/Adapter/RedisAdapter.php b/vendor/symfony/cache/Adapter/RedisAdapter.php index 45bc3400..eb5950e5 100644 --- a/vendor/symfony/cache/Adapter/RedisAdapter.php +++ b/vendor/symfony/cache/Adapter/RedisAdapter.php @@ -20,7 +20,12 @@ class RedisAdapter extends AbstractAdapter { use RedisTrait; - public function __construct(\Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) + /** + * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis The redis client + * @param string $namespace The default namespace + * @param int $defaultLifetime The default lifetime + */ + public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) { $this->init($redis, $namespace, $defaultLifetime, $marshaller); } diff --git a/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php b/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php index ef2154d6..186b32e7 100644 --- a/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php +++ b/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php @@ -56,12 +56,17 @@ class RedisTagAwareAdapter extends AbstractTagAwareAdapter private const DEFAULT_CACHE_TTL = 8640000; /** - * detected eviction policy used on Redis server. + * @var string|null detected eviction policy used on Redis server */ - private string $redisEvictionPolicy; - private string $namespace; + private $redisEvictionPolicy; + private $namespace; - public function __construct(\Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) + /** + * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis The redis client + * @param string $namespace The default namespace + * @param int $defaultLifetime The default lifetime + */ + public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) { if ($redis instanceof \Predis\ClientInterface && $redis->getConnection() instanceof ClusterInterface && !$redis->getConnection() instanceof PredisCluster) { throw new InvalidArgumentException(sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', PredisCluster::class, get_debug_type($redis->getConnection()))); @@ -170,7 +175,7 @@ EOLUA; try { yield $id => !\is_string($result) || '' === $result ? [] : $this->marshaller->unmarshall($result); - } catch (\Exception) { + } catch (\Exception $e) { yield $id => []; } } @@ -292,7 +297,7 @@ EOLUA; private function getRedisEvictionPolicy(): string { - if (isset($this->redisEvictionPolicy)) { + if (null !== $this->redisEvictionPolicy) { return $this->redisEvictionPolicy; } diff --git a/vendor/symfony/cache/Adapter/TagAwareAdapter.php b/vendor/symfony/cache/Adapter/TagAwareAdapter.php index b12ebfef..ff22e5a8 100644 --- a/vendor/symfony/cache/Adapter/TagAwareAdapter.php +++ b/vendor/symfony/cache/Adapter/TagAwareAdapter.php @@ -19,73 +19,70 @@ use Symfony\Component\Cache\CacheItem; use Symfony\Component\Cache\PruneableInterface; use Symfony\Component\Cache\ResettableInterface; use Symfony\Component\Cache\Traits\ContractsTrait; +use Symfony\Component\Cache\Traits\ProxyTrait; use Symfony\Contracts\Cache\TagAwareCacheInterface; /** - * Implements simple and robust tag-based invalidation suitable for use with volatile caches. - * - * This adapter works by storing a version for each tags. When saving an item, it is stored together with its tags and - * their corresponding versions. When retrieving an item, those tag versions are compared to the current version of - * each tags. Invalidation is achieved by deleting tags, thereby ensuring that their versions change even when the - * storage is out of space. When versions of non-existing tags are requested for item commits, this adapter assigns a - * new random version to them. - * * @author Nicolas Grekas
- * @author Sergey Belyshkin
+ *
+ * @deprecated Use Doctrine\Common\Cache\Psr6\DoctrineProvider instead
+ */
+class DoctrineProvider extends CacheProvider implements PruneableInterface, ResettableInterface
+{
+ private $pool;
+
+ public function __construct(CacheItemPoolInterface $pool)
+ {
+ trigger_deprecation('symfony/cache', '5.4', '"%s" is deprecated, use "Doctrine\Common\Cache\Psr6\DoctrineProvider" instead.', __CLASS__);
+
+ $this->pool = $pool;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function prune()
+ {
+ return $this->pool instanceof PruneableInterface && $this->pool->prune();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function reset()
+ {
+ if ($this->pool instanceof ResetInterface) {
+ $this->pool->reset();
+ }
+ $this->setNamespace($this->getNamespace());
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return mixed
+ */
+ protected function doFetch($id)
+ {
+ $item = $this->pool->getItem(rawurlencode($id));
+
+ return $item->isHit() ? $item->get() : false;
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return bool
+ */
+ protected function doContains($id)
+ {
+ return $this->pool->hasItem(rawurlencode($id));
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return bool
+ */
+ protected function doSave($id, $data, $lifeTime = 0)
+ {
+ $item = $this->pool->getItem(rawurlencode($id));
+
+ if (0 < $lifeTime) {
+ $item->expiresAfter($lifeTime);
+ }
+
+ return $this->pool->save($item->set($data));
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return bool
+ */
+ protected function doDelete($id)
+ {
+ return $this->pool->deleteItem(rawurlencode($id));
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return bool
+ */
+ protected function doFlush()
+ {
+ return $this->pool->clear();
+ }
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return array|null
+ */
+ protected function doGetStats()
+ {
+ return null;
+ }
+}
diff --git a/vendor/symfony/cache/LockRegistry.php b/vendor/symfony/cache/LockRegistry.php
index c263a1c5..65f20bb7 100644
--- a/vendor/symfony/cache/LockRegistry.php
+++ b/vendor/symfony/cache/LockRegistry.php
@@ -43,6 +43,7 @@ final class LockRegistry
__DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ChainAdapter.php',
__DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'CouchbaseBucketAdapter.php',
__DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'CouchbaseCollectionAdapter.php',
+ __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'DoctrineAdapter.php',
__DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'DoctrineDbalAdapter.php',
__DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemAdapter.php',
__DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemTagAwareAdapter.php',
@@ -96,8 +97,8 @@ final class LockRegistry
return $callback($item, $save);
}
- self::$signalingException ??= unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}");
- self::$signalingCallback ??= function () { throw self::$signalingException; };
+ self::$signalingException ?? self::$signalingException = unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}");
+ self::$signalingCallback ?? self::$signalingCallback = function () { throw self::$signalingException; };
while (true) {
try {
@@ -106,7 +107,7 @@ final class LockRegistry
$locked = flock($lock, \LOCK_EX | \LOCK_NB, $wouldBlock);
if ($locked || !$wouldBlock) {
- $logger?->info(sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]);
+ $logger && $logger->info(sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]);
self::$lockedFiles[$key] = true;
$value = $callback($item, $save);
@@ -123,7 +124,7 @@ final class LockRegistry
return $value;
}
// if we failed the race, retry locking in blocking mode to wait for the winner
- $logger?->info('Item "{key}" is locked, waiting for it to be released', ['key' => $item->getKey()]);
+ $logger && $logger->info('Item "{key}" is locked, waiting for it to be released', ['key' => $item->getKey()]);
flock($lock, \LOCK_SH);
} finally {
flock($lock, \LOCK_UN);
@@ -132,7 +133,7 @@ final class LockRegistry
try {
$value = $pool->get($item->getKey(), self::$signalingCallback, 0);
- $logger?->info('Item "{key}" retrieved after lock was released', ['key' => $item->getKey()]);
+ $logger && $logger->info('Item "{key}" retrieved after lock was released', ['key' => $item->getKey()]);
$save = false;
return $value;
@@ -140,7 +141,7 @@ final class LockRegistry
if (self::$signalingException !== $e) {
throw $e;
}
- $logger?->info('Item "{key}" not found while lock was released, now retrying', ['key' => $item->getKey()]);
+ $logger && $logger->info('Item "{key}" not found while lock was released, now retrying', ['key' => $item->getKey()]);
}
}
diff --git a/vendor/symfony/cache/Marshaller/DefaultMarshaller.php b/vendor/symfony/cache/Marshaller/DefaultMarshaller.php
index 5c34fb2e..3202dd69 100644
--- a/vendor/symfony/cache/Marshaller/DefaultMarshaller.php
+++ b/vendor/symfony/cache/Marshaller/DefaultMarshaller.php
@@ -20,15 +20,15 @@ use Symfony\Component\Cache\Exception\CacheException;
*/
class DefaultMarshaller implements MarshallerInterface
{
- private bool $useIgbinarySerialize = true;
- private bool $throwOnSerializationFailure = false;
+ private $useIgbinarySerialize = true;
+ private $throwOnSerializationFailure;
public function __construct(bool $useIgbinarySerialize = null, bool $throwOnSerializationFailure = false)
{
if (null === $useIgbinarySerialize) {
- $useIgbinarySerialize = \extension_loaded('igbinary') && version_compare('3.1.6', phpversion('igbinary'), '<=');
- } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || version_compare('3.1.6', phpversion('igbinary'), '>'))) {
- throw new CacheException(\extension_loaded('igbinary') ? 'Please upgrade the "igbinary" PHP extension to v3.1.6 or higher.' : 'The "igbinary" PHP extension is not loaded.');
+ $useIgbinarySerialize = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.6', phpversion('igbinary'), '<='));
+ } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')))) {
+ throw new CacheException(\extension_loaded('igbinary') && \PHP_VERSION_ID >= 70400 ? 'Please upgrade the "igbinary" PHP extension to v3.1.6 or higher.' : 'The "igbinary" PHP extension is not loaded.');
}
$this->useIgbinarySerialize = $useIgbinarySerialize;
$this->throwOnSerializationFailure = $throwOnSerializationFailure;
@@ -62,7 +62,7 @@ class DefaultMarshaller implements MarshallerInterface
/**
* {@inheritdoc}
*/
- public function unmarshall(string $value): mixed
+ public function unmarshall(string $value)
{
if ('b:0;' === $value) {
return false;
@@ -71,7 +71,7 @@ class DefaultMarshaller implements MarshallerInterface
return null;
}
static $igbinaryNull;
- if ($value === $igbinaryNull ??= \extension_loaded('igbinary') ? igbinary_serialize(null) : false) {
+ if ($value === ($igbinaryNull ?? $igbinaryNull = \extension_loaded('igbinary') ? igbinary_serialize(null) : false)) {
return null;
}
$unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback');
diff --git a/vendor/symfony/cache/Marshaller/DeflateMarshaller.php b/vendor/symfony/cache/Marshaller/DeflateMarshaller.php
index 95e3d320..55448061 100644
--- a/vendor/symfony/cache/Marshaller/DeflateMarshaller.php
+++ b/vendor/symfony/cache/Marshaller/DeflateMarshaller.php
@@ -20,7 +20,7 @@ use Symfony\Component\Cache\Exception\CacheException;
*/
class DeflateMarshaller implements MarshallerInterface
{
- private MarshallerInterface $marshaller;
+ private $marshaller;
public function __construct(MarshallerInterface $marshaller)
{
@@ -42,7 +42,7 @@ class DeflateMarshaller implements MarshallerInterface
/**
* {@inheritdoc}
*/
- public function unmarshall(string $value): mixed
+ public function unmarshall(string $value)
{
if (false !== $inflatedValue = @gzinflate($value)) {
$value = $inflatedValue;
diff --git a/vendor/symfony/cache/Marshaller/MarshallerInterface.php b/vendor/symfony/cache/Marshaller/MarshallerInterface.php
index 5b81aad2..cdd6c402 100644
--- a/vendor/symfony/cache/Marshaller/MarshallerInterface.php
+++ b/vendor/symfony/cache/Marshaller/MarshallerInterface.php
@@ -32,7 +32,9 @@ interface MarshallerInterface
/**
* Unserializes a single value and throws an exception if anything goes wrong.
*
+ * @return mixed
+ *
* @throws \Exception Whenever unserialization fails
*/
- public function unmarshall(string $value): mixed;
+ public function unmarshall(string $value);
}
diff --git a/vendor/symfony/cache/Marshaller/SodiumMarshaller.php b/vendor/symfony/cache/Marshaller/SodiumMarshaller.php
index 4d8a04ee..dbf486a7 100644
--- a/vendor/symfony/cache/Marshaller/SodiumMarshaller.php
+++ b/vendor/symfony/cache/Marshaller/SodiumMarshaller.php
@@ -21,8 +21,8 @@ use Symfony\Component\Cache\Exception\InvalidArgumentException;
*/
class SodiumMarshaller implements MarshallerInterface
{
- private MarshallerInterface $marshaller;
- private array $decryptionKeys;
+ private $marshaller;
+ private $decryptionKeys;
/**
* @param string[] $decryptionKeys The key at index "0" is required and is used to decrypt and encrypt values;
@@ -66,7 +66,7 @@ class SodiumMarshaller implements MarshallerInterface
/**
* {@inheritdoc}
*/
- public function unmarshall(string $value): mixed
+ public function unmarshall(string $value)
{
foreach ($this->decryptionKeys as $k) {
if (false !== $decryptedValue = @sodium_crypto_box_seal_open($value, $k)) {
diff --git a/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php b/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php
index 576ccc11..f7eeb783 100644
--- a/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php
+++ b/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php
@@ -18,7 +18,7 @@ namespace Symfony\Component\Cache\Marshaller;
*/
class TagAwareMarshaller implements MarshallerInterface
{
- private MarshallerInterface $marshaller;
+ private $marshaller;
public function __construct(MarshallerInterface $marshaller = null)
{
@@ -67,7 +67,7 @@ class TagAwareMarshaller implements MarshallerInterface
/**
* {@inheritdoc}
*/
- public function unmarshall(string $value): mixed
+ public function unmarshall(string $value)
{
// detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
if (13 >= \strlen($value) || "\x9D" !== $value[0] || "\0" !== $value[5] || "\x5F" !== $value[9]) {
diff --git a/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php b/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php
index 9b94c4f1..6f11b8b5 100644
--- a/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php
+++ b/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php
@@ -23,22 +23,22 @@ use Symfony\Component\Messenger\Stamp\HandledStamp;
*/
class EarlyExpirationDispatcher
{
- private MessageBusInterface $bus;
- private ReverseContainer $reverseContainer;
- private ?\Closure $callbackWrapper;
+ private $bus;
+ private $reverseContainer;
+ private $callbackWrapper;
public function __construct(MessageBusInterface $bus, ReverseContainer $reverseContainer, callable $callbackWrapper = null)
{
$this->bus = $bus;
$this->reverseContainer = $reverseContainer;
- $this->callbackWrapper = null === $callbackWrapper ? null : $callbackWrapper(...);
+ $this->callbackWrapper = $callbackWrapper;
}
public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, LoggerInterface $logger = null)
{
if (!$item->isHit() || null === $message = EarlyExpirationMessage::create($this->reverseContainer, $callback, $item, $pool)) {
// The item is stale or the callback cannot be reversed: we must compute the value now
- $logger?->info('Computing item "{key}" online: '.($item->isHit() ? 'callback cannot be reversed' : 'item is stale'), ['key' => $item->getKey()]);
+ $logger && $logger->info('Computing item "{key}" online: '.($item->isHit() ? 'callback cannot be reversed' : 'item is stale'), ['key' => $item->getKey()]);
return null !== $this->callbackWrapper ? ($this->callbackWrapper)($callback, $item, $save, $pool, $setMetadata, $logger) : $callback($item, $save);
}
diff --git a/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php b/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php
index 9d2aaecc..1f0bd565 100644
--- a/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php
+++ b/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php
@@ -20,8 +20,8 @@ use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
*/
class EarlyExpirationHandler implements MessageHandlerInterface
{
- private ReverseContainer $reverseContainer;
- private array $processedNonces = [];
+ private $reverseContainer;
+ private $processedNonces = [];
public function __construct(ReverseContainer $reverseContainer)
{
@@ -59,7 +59,7 @@ class EarlyExpirationHandler implements MessageHandlerInterface
static $setMetadata;
- $setMetadata ??= \Closure::bind(
+ $setMetadata ?? $setMetadata = \Closure::bind(
function (CacheItem $item, float $startTime) {
if ($item->expiry > $endTime = microtime(true)) {
$item->newMetadata[CacheItem::METADATA_EXPIRY] = $item->expiry;
diff --git a/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php b/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php
index 6056ebab..e25c07e9 100644
--- a/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php
+++ b/vendor/symfony/cache/Messenger/EarlyExpirationMessage.php
@@ -20,16 +20,16 @@ use Symfony\Component\DependencyInjection\ReverseContainer;
*/
final class EarlyExpirationMessage
{
- private CacheItem $item;
- private string $pool;
- private string|array $callback;
+ private $item;
+ private $pool;
+ private $callback;
public static function create(ReverseContainer $reverseContainer, callable $callback, CacheItem $item, AdapterInterface $pool): ?self
{
try {
$item = clone $item;
$item->set(null);
- } catch (\Exception) {
+ } catch (\Exception $e) {
return null;
}
@@ -66,10 +66,7 @@ final class EarlyExpirationMessage
return $this->pool;
}
- /**
- * @return string|string[]
- */
- public function getCallback(): string|array
+ public function getCallback()
{
return $this->callback;
}
@@ -91,7 +88,7 @@ final class EarlyExpirationMessage
return $callback;
}
- private function __construct(CacheItem $item, string $pool, string|array $callback)
+ private function __construct(CacheItem $item, string $pool, $callback)
{
$this->item = $item;
$this->pool = $pool;
diff --git a/vendor/symfony/cache/PruneableInterface.php b/vendor/symfony/cache/PruneableInterface.php
index 3095c80f..42615253 100644
--- a/vendor/symfony/cache/PruneableInterface.php
+++ b/vendor/symfony/cache/PruneableInterface.php
@@ -16,5 +16,8 @@ namespace Symfony\Component\Cache;
*/
interface PruneableInterface
{
- public function prune(): bool;
+ /**
+ * @return bool
+ */
+ public function prune();
}
diff --git a/vendor/symfony/cache/Psr16Cache.php b/vendor/symfony/cache/Psr16Cache.php
index e36646ef..28c7de60 100644
--- a/vendor/symfony/cache/Psr16Cache.php
+++ b/vendor/symfony/cache/Psr16Cache.php
@@ -19,6 +19,10 @@ use Symfony\Component\Cache\Adapter\AdapterInterface;
use Symfony\Component\Cache\Exception\InvalidArgumentException;
use Symfony\Component\Cache\Traits\ProxyTrait;
+if (null !== (new \ReflectionMethod(CacheInterface::class, 'get'))->getReturnType()) {
+ throw new \LogicException('psr/simple-cache 3.0+ is not compatible with this version of symfony/cache. Please upgrade symfony/cache to 6.0+ or downgrade psr/simple-cache to 1.x or 2.x.');
+}
+
/**
* Turns a PSR-6 cache into a PSR-16 one.
*
@@ -28,9 +32,10 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
{
use ProxyTrait;
- private ?\Closure $createCacheItem = null;
- private ?CacheItem $cacheItemPrototype = null;
- private static \Closure $packCacheItem;
+ private const METADATA_EXPIRY_OFFSET = 1527506807;
+
+ private $createCacheItem;
+ private $cacheItemPrototype;
public function __construct(CacheItemPoolInterface $pool)
{
@@ -66,21 +71,14 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
return $createCacheItem($key, null, $allowInt)->set($value);
};
- self::$packCacheItem ??= \Closure::bind(
- static function (CacheItem $item) {
- $item->newMetadata = $item->metadata;
-
- return $item->pack();
- },
- null,
- CacheItem::class
- );
}
/**
* {@inheritdoc}
+ *
+ * @return mixed
*/
- public function get($key, $default = null): mixed
+ public function get($key, $default = null)
{
try {
$item = $this->pool->getItem($key);
@@ -99,8 +97,10 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
/**
* {@inheritdoc}
+ *
+ * @return bool
*/
- public function set($key, $value, $ttl = null): bool
+ public function set($key, $value, $ttl = null)
{
try {
if (null !== $f = $this->createCacheItem) {
@@ -122,8 +122,10 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
/**
* {@inheritdoc}
+ *
+ * @return bool
*/
- public function delete($key): bool
+ public function delete($key)
{
try {
return $this->pool->deleteItem($key);
@@ -136,16 +138,20 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
/**
* {@inheritdoc}
+ *
+ * @return bool
*/
- public function clear(): bool
+ public function clear()
{
return $this->pool->clear();
}
/**
* {@inheritdoc}
+ *
+ * @return iterable
*/
- public function getMultiple($keys, $default = null): iterable
+ public function getMultiple($keys, $default = null)
{
if ($keys instanceof \Traversable) {
$keys = iterator_to_array($keys, false);
@@ -171,7 +177,20 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
}
foreach ($items as $key => $item) {
- $values[$key] = $item->isHit() ? (self::$packCacheItem)($item) : $default;
+ if (!$item->isHit()) {
+ $values[$key] = $default;
+ continue;
+ }
+ $values[$key] = $item->get();
+
+ if (!$metadata = $item->getMetadata()) {
+ continue;
+ }
+ unset($metadata[CacheItem::METADATA_TAGS]);
+
+ if ($metadata) {
+ $values[$key] = ["\x9D".pack('VN', (int) (0.1 + $metadata[CacheItem::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[CacheItem::METADATA_CTIME])."\x5F" => $values[$key]];
+ }
}
return $values;
@@ -179,8 +198,10 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
/**
* {@inheritdoc}
+ *
+ * @return bool
*/
- public function setMultiple($values, $ttl = null): bool
+ public function setMultiple($values, $ttl = null)
{
$valuesIsArray = \is_array($values);
if (!$valuesIsArray && !$values instanceof \Traversable) {
@@ -230,8 +251,10 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
/**
* {@inheritdoc}
+ *
+ * @return bool
*/
- public function deleteMultiple($keys): bool
+ public function deleteMultiple($keys)
{
if ($keys instanceof \Traversable) {
$keys = iterator_to_array($keys, false);
@@ -250,8 +273,10 @@ class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterf
/**
* {@inheritdoc}
+ *
+ * @return bool
*/
- public function has($key): bool
+ public function has($key)
{
try {
return $this->pool->hasItem($key);
diff --git a/vendor/symfony/cache/Traits/AbstractAdapterTrait.php b/vendor/symfony/cache/Traits/AbstractAdapterTrait.php
index 9bddc458..a6814b5f 100644
--- a/vendor/symfony/cache/Traits/AbstractAdapterTrait.php
+++ b/vendor/symfony/cache/Traits/AbstractAdapterTrait.php
@@ -26,21 +26,21 @@ trait AbstractAdapterTrait
use LoggerAwareTrait;
/**
- * needs to be set by class, signature is function(string
@@ -24,9 +23,12 @@ trait FilesystemTrait
{
use FilesystemCommonTrait;
- private MarshallerInterface $marshaller;
+ private $marshaller;
- public function prune(): bool
+ /**
+ * @return bool
+ */
+ public function prune()
{
$time = time();
$pruned = true;
@@ -50,7 +52,7 @@ trait FilesystemTrait
/**
* {@inheritdoc}
*/
- protected function doFetch(array $ids): iterable
+ protected function doFetch(array $ids)
{
$values = [];
$now = time();
@@ -79,7 +81,7 @@ trait FilesystemTrait
/**
* {@inheritdoc}
*/
- protected function doHave(string $id): bool
+ protected function doHave(string $id)
{
$file = $this->getFile($id);
@@ -89,7 +91,7 @@ trait FilesystemTrait
/**
* {@inheritdoc}
*/
- protected function doSave(array $values, int $lifetime): array|bool
+ protected function doSave(array $values, int $lifetime)
{
$expiresAt = $lifetime ? (time() + $lifetime) : 0;
$values = $this->marshaller->marshall($values, $failed);
diff --git a/vendor/symfony/cache/Traits/ProxyTrait.php b/vendor/symfony/cache/Traits/ProxyTrait.php
index ba6f8cba..c86f360a 100644
--- a/vendor/symfony/cache/Traits/ProxyTrait.php
+++ b/vendor/symfony/cache/Traits/ProxyTrait.php
@@ -21,12 +21,12 @@ use Symfony\Contracts\Service\ResetInterface;
*/
trait ProxyTrait
{
- private object $pool;
+ private $pool;
/**
* {@inheritdoc}
*/
- public function prune(): bool
+ public function prune()
{
return $this->pool instanceof PruneableInterface && $this->pool->prune();
}
diff --git a/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php b/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php
index afcfb3a1..deba74f6 100644
--- a/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php
+++ b/vendor/symfony/cache/Traits/RedisClusterNodeProxy.php
@@ -24,10 +24,13 @@ namespace Symfony\Component\Cache\Traits;
*/
class RedisClusterNodeProxy
{
- private array $host;
- private \RedisCluster|RedisClusterProxy $redis;
+ private $host;
+ private $redis;
- public function __construct(array $host, \RedisCluster|RedisClusterProxy $redis)
+ /**
+ * @param \RedisCluster|RedisClusterProxy $redis
+ */
+ public function __construct(array $host, $redis)
{
$this->host = $host;
$this->redis = $redis;
diff --git a/vendor/symfony/cache/Traits/RedisClusterProxy.php b/vendor/symfony/cache/Traits/RedisClusterProxy.php
index b4b750cf..73c6a4fd 100644
--- a/vendor/symfony/cache/Traits/RedisClusterProxy.php
+++ b/vendor/symfony/cache/Traits/RedisClusterProxy.php
@@ -18,8 +18,8 @@ namespace Symfony\Component\Cache\Traits;
*/
class RedisClusterProxy
{
- private \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy $redis;
- private \Closure $initializer;
+ private $redis;
+ private $initializer;
public function __construct(\Closure $initializer)
{
@@ -28,35 +28,35 @@ class RedisClusterProxy
public function __call(string $method, array $args)
{
- $this->redis ??= ($this->initializer)();
+ $this->redis ?: $this->redis = $this->initializer->__invoke();
return $this->redis->{$method}(...$args);
}
public function hscan($strKey, &$iIterator, $strPattern = null, $iCount = null)
{
- $this->redis ??= ($this->initializer)();
+ $this->redis ?: $this->redis = $this->initializer->__invoke();
return $this->redis->hscan($strKey, $iIterator, $strPattern, $iCount);
}
public function scan(&$iIterator, $strPattern = null, $iCount = null)
{
- $this->redis ??= ($this->initializer)();
+ $this->redis ?: $this->redis = $this->initializer->__invoke();
return $this->redis->scan($iIterator, $strPattern, $iCount);
}
public function sscan($strKey, &$iIterator, $strPattern = null, $iCount = null)
{
- $this->redis ??= ($this->initializer)();
+ $this->redis ?: $this->redis = $this->initializer->__invoke();
return $this->redis->sscan($strKey, $iIterator, $strPattern, $iCount);
}
public function zscan($strKey, &$iIterator, $strPattern = null, $iCount = null)
{
- $this->redis ??= ($this->initializer)();
+ $this->redis ?: $this->redis = $this->initializer->__invoke();
return $this->redis->zscan($strKey, $iIterator, $strPattern, $iCount);
}
diff --git a/vendor/symfony/cache/Traits/RedisProxy.php b/vendor/symfony/cache/Traits/RedisProxy.php
index a477dc87..ec5cfabb 100644
--- a/vendor/symfony/cache/Traits/RedisProxy.php
+++ b/vendor/symfony/cache/Traits/RedisProxy.php
@@ -18,9 +18,9 @@ namespace Symfony\Component\Cache\Traits;
*/
class RedisProxy
{
- private \Redis $redis;
- private \Closure $initializer;
- private bool $ready = false;
+ private $redis;
+ private $initializer;
+ private $ready = false;
public function __construct(\Redis $redis, \Closure $initializer)
{
diff --git a/vendor/symfony/cache/Traits/RedisTrait.php b/vendor/symfony/cache/Traits/RedisTrait.php
index c745deb6..accee44b 100644
--- a/vendor/symfony/cache/Traits/RedisTrait.php
+++ b/vendor/symfony/cache/Traits/RedisTrait.php
@@ -30,7 +30,7 @@ use Symfony\Component\Cache\Marshaller\MarshallerInterface;
*/
trait RedisTrait
{
- private static array $defaultConnectionOptions = [
+ private static $defaultConnectionOptions = [
'class' => null,
'persistent' => 0,
'persistent_id' => null,
@@ -45,10 +45,13 @@ trait RedisTrait
'failover' => 'none',
'ssl' => null, // see https://php.net/context.ssl
];
- private \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis;
- private MarshallerInterface $marshaller;
+ private $redis;
+ private $marshaller;
- private function init(\Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller)
+ /**
+ * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis
+ */
+ private function init($redis, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller)
{
parent::__construct($namespace, $defaultLifetime);
@@ -56,6 +59,10 @@ trait RedisTrait
throw new InvalidArgumentException(sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0]));
}
+ if (!$redis instanceof \Redis && !$redis instanceof \RedisArray && !$redis instanceof \RedisCluster && !$redis instanceof \Predis\ClientInterface && !$redis instanceof RedisProxy && !$redis instanceof RedisClusterProxy) {
+ throw new InvalidArgumentException(sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, get_debug_type($redis)));
+ }
+
if ($redis instanceof \Predis\ClientInterface && $redis->getOptions()->exceptions) {
$options = clone $redis->getOptions();
\Closure::bind(function () { $this->options['exceptions'] = false; }, $options, $options)();
@@ -78,9 +85,11 @@ trait RedisTrait
*
* @param array $options See self::$defaultConnectionOptions
*
+ * @return \Redis|\RedisArray|\RedisCluster|RedisClusterProxy|RedisProxy|\Predis\ClientInterface According to the "class" option
+ *
* @throws InvalidArgumentException when the DSN is invalid
*/
- public static function createConnection(string $dsn, array $options = []): \Redis|\RedisArray|\RedisCluster|RedisClusterProxy|RedisProxy|\Predis\ClientInterface
+ public static function createConnection(string $dsn, array $options = [])
{
if (str_starts_with($dsn, 'redis:')) {
$scheme = 'redis';
@@ -94,13 +103,9 @@ trait RedisTrait
throw new CacheException(sprintf('Cannot find the "redis" extension nor the "predis/predis" package: "%s".', $dsn));
}
- $params = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:(?
- *
- * @internal
- */
-class ©
-{
- private const EXPIRY_OFFSET = 1648206727;
- private const INT32_MAX = 2147483647;
-
- public readonly mixed $value;
- public readonly array $metadata;
-
- public function __construct(mixed $value, array $metadata)
- {
- $this->value = $value;
- $this->metadata = $metadata;
- }
-
- public function __serialize(): array
- {
- // pack 31-bits ctime into 14bits
- $c = $this->metadata['ctime'] ?? 0;
- $c = match (true) {
- $c > self::INT32_MAX - 2 => self::INT32_MAX,
- $c > 0 => 1 + $c,
- default => 1,
- };
- $e = 0;
- while (!(0x40000000 & $c)) {
- $c <<= 1;
- ++$e;
- }
- $c = (0x7FE0 & ($c >> 16)) | $e;
-
- $pack = pack('Vn', (int) (0.1 + ($this->metadata['expiry'] ?: self::INT32_MAX + self::EXPIRY_OFFSET) - self::EXPIRY_OFFSET), $c);
-
- if (isset($this->metadata['tags'])) {
- $pack[4] = $pack[4] | "\x80";
- }
-
- return [$pack => $this->value] + ($this->metadata['tags'] ?? []);
- }
-
- public function __unserialize(array $data)
- {
- $pack = array_key_first($data);
- $this->value = $data[$pack];
-
- if ($hasTags = "\x80" === ($pack[4] & "\x80")) {
- unset($data[$pack]);
- $pack[4] = $pack[4] & "\x7F";
- }
-
- $metadata = unpack('Vexpiry/nctime', $pack);
- $metadata['expiry'] += self::EXPIRY_OFFSET;
-
- if (!$metadata['ctime'] = ((0x4000 | $metadata['ctime']) << 16 >> (0x1F & $metadata['ctime'])) - 1) {
- unset($metadata['ctime']);
- }
-
- if ($hasTags) {
- $metadata['tags'] = $data;
- }
-
- $this->metadata = $metadata;
- }
-}
diff --git a/vendor/symfony/cache/composer.json b/vendor/symfony/cache/composer.json
index 09dd1bbe..91296b04 100644
--- a/vendor/symfony/cache/composer.json
+++ b/vendor/symfony/cache/composer.json
@@ -16,41 +16,42 @@
}
],
"provide": {
- "psr/cache-implementation": "2.0|3.0",
- "psr/simple-cache-implementation": "1.0|2.0|3.0",
- "symfony/cache-implementation": "1.1|2.0|3.0"
+ "psr/cache-implementation": "1.0|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0",
+ "symfony/cache-implementation": "1.0|2.0"
},
"require": {
- "php": ">=8.1",
- "psr/cache": "^2.0|^3.0",
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0",
"psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2|^3",
+ "symfony/cache-contracts": "^1.1.7|^2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"require-dev": {
"cache/integration-tests": "dev-master",
+ "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.13.1|^3.0",
"predis/predis": "^1.1",
- "psr/simple-cache": "^1.0|^2.0|^3.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/filesystem": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "psr/simple-cache": "^1.0|^2.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/filesystem": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/messenger": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
},
"conflict": {
"doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/var-dumper": "<5.4"
+ "symfony/dependency-injection": "<4.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/var-dumper": "<4.4"
},
"autoload": {
"psr-4": { "Symfony\\Component\\Cache\\": "" },
- "classmap": [
- "Traits/ValueWrapper.php"
- ],
"exclude-from-classmap": [
"/Tests/"
]
diff --git a/vendor/symfony/css-selector/CssSelectorConverter.php b/vendor/symfony/css-selector/CssSelectorConverter.php
index 7120a295..bbb6afe2 100644
--- a/vendor/symfony/css-selector/CssSelectorConverter.php
+++ b/vendor/symfony/css-selector/CssSelectorConverter.php
@@ -26,11 +26,11 @@ use Symfony\Component\CssSelector\XPath\Translator;
*/
class CssSelectorConverter
{
- private Translator $translator;
- private array $cache;
+ private $translator;
+ private $cache;
- private static array $xmlCache = [];
- private static array $htmlCache = [];
+ private static $xmlCache = [];
+ private static $htmlCache = [];
/**
* @param bool $html Whether HTML support should be enabled. Disable it for XML documents
@@ -59,9 +59,11 @@ class CssSelectorConverter
*
* Optionally, a prefix can be added to the resulting XPath
* expression with the $prefix parameter.
+ *
+ * @return string
*/
- public function toXPath(string $cssExpr, string $prefix = 'descendant-or-self::'): string
+ public function toXPath(string $cssExpr, string $prefix = 'descendant-or-self::')
{
- return $this->cache[$prefix][$cssExpr] ??= $this->translator->cssToXPath($cssExpr, $prefix);
+ return $this->cache[$prefix][$cssExpr] ?? $this->cache[$prefix][$cssExpr] = $this->translator->cssToXPath($cssExpr, $prefix);
}
}
diff --git a/vendor/symfony/css-selector/Exception/SyntaxErrorException.php b/vendor/symfony/css-selector/Exception/SyntaxErrorException.php
index f73860ce..7deacf9c 100644
--- a/vendor/symfony/css-selector/Exception/SyntaxErrorException.php
+++ b/vendor/symfony/css-selector/Exception/SyntaxErrorException.php
@@ -23,27 +23,42 @@ use Symfony\Component\CssSelector\Parser\Token;
*/
class SyntaxErrorException extends ParseException
{
- public static function unexpectedToken(string $expectedValue, Token $foundToken): self
+ /**
+ * @return self
+ */
+ public static function unexpectedToken(string $expectedValue, Token $foundToken)
{
return new self(sprintf('Expected %s, but %s found.', $expectedValue, $foundToken));
}
- public static function pseudoElementFound(string $pseudoElement, string $unexpectedLocation): self
+ /**
+ * @return self
+ */
+ public static function pseudoElementFound(string $pseudoElement, string $unexpectedLocation)
{
return new self(sprintf('Unexpected pseudo-element "::%s" found %s.', $pseudoElement, $unexpectedLocation));
}
- public static function unclosedString(int $position): self
+ /**
+ * @return self
+ */
+ public static function unclosedString(int $position)
{
return new self(sprintf('Unclosed/invalid string at %s.', $position));
}
- public static function nestedNot(): self
+ /**
+ * @return self
+ */
+ public static function nestedNot()
{
return new self('Got nested ::not().');
}
- public static function stringAsFunctionArgument(): self
+ /**
+ * @return self
+ */
+ public static function stringAsFunctionArgument()
{
return new self('String not allowed as function argument.');
}
diff --git a/vendor/symfony/css-selector/Node/AbstractNode.php b/vendor/symfony/css-selector/Node/AbstractNode.php
index d99e80a8..1306aeac 100644
--- a/vendor/symfony/css-selector/Node/AbstractNode.php
+++ b/vendor/symfony/css-selector/Node/AbstractNode.php
@@ -23,10 +23,17 @@ namespace Symfony\Component\CssSelector\Node;
*/
abstract class AbstractNode implements NodeInterface
{
- private string $nodeName;
+ /**
+ * @var string
+ */
+ private $nodeName;
public function getNodeName(): string
{
- return $this->nodeName ??= preg_replace('~.*\\\\([^\\\\]+)Node$~', '$1', static::class);
+ if (null === $this->nodeName) {
+ $this->nodeName = preg_replace('~.*\\\\([^\\\\]+)Node$~', '$1', static::class);
+ }
+
+ return $this->nodeName;
}
}
diff --git a/vendor/symfony/css-selector/Node/AttributeNode.php b/vendor/symfony/css-selector/Node/AttributeNode.php
index bca9db70..0b6e0ee0 100644
--- a/vendor/symfony/css-selector/Node/AttributeNode.php
+++ b/vendor/symfony/css-selector/Node/AttributeNode.php
@@ -23,11 +23,11 @@ namespace Symfony\Component\CssSelector\Node;
*/
class AttributeNode extends AbstractNode
{
- private NodeInterface $selector;
- private ?string $namespace;
- private string $attribute;
- private string $operator;
- private ?string $value;
+ private $selector;
+ private $namespace;
+ private $attribute;
+ private $operator;
+ private $value;
public function __construct(NodeInterface $selector, ?string $namespace, string $attribute, string $operator, ?string $value)
{
diff --git a/vendor/symfony/css-selector/Node/ClassNode.php b/vendor/symfony/css-selector/Node/ClassNode.php
index b9284073..1efca808 100644
--- a/vendor/symfony/css-selector/Node/ClassNode.php
+++ b/vendor/symfony/css-selector/Node/ClassNode.php
@@ -23,8 +23,8 @@ namespace Symfony\Component\CssSelector\Node;
*/
class ClassNode extends AbstractNode
{
- private NodeInterface $selector;
- private string $name;
+ private $selector;
+ private $name;
public function __construct(NodeInterface $selector, string $name)
{
diff --git a/vendor/symfony/css-selector/Node/CombinedSelectorNode.php b/vendor/symfony/css-selector/Node/CombinedSelectorNode.php
index 33889948..a217a45e 100644
--- a/vendor/symfony/css-selector/Node/CombinedSelectorNode.php
+++ b/vendor/symfony/css-selector/Node/CombinedSelectorNode.php
@@ -23,9 +23,9 @@ namespace Symfony\Component\CssSelector\Node;
*/
class CombinedSelectorNode extends AbstractNode
{
- private NodeInterface $selector;
- private string $combinator;
- private NodeInterface $subSelector;
+ private $selector;
+ private $combinator;
+ private $subSelector;
public function __construct(NodeInterface $selector, string $combinator, NodeInterface $subSelector)
{
diff --git a/vendor/symfony/css-selector/Node/ElementNode.php b/vendor/symfony/css-selector/Node/ElementNode.php
index b05164fe..fbf8ea0f 100644
--- a/vendor/symfony/css-selector/Node/ElementNode.php
+++ b/vendor/symfony/css-selector/Node/ElementNode.php
@@ -23,8 +23,8 @@ namespace Symfony\Component\CssSelector\Node;
*/
class ElementNode extends AbstractNode
{
- private ?string $namespace;
- private ?string $element;
+ private $namespace;
+ private $element;
public function __construct(string $namespace = null, string $element = null)
{
diff --git a/vendor/symfony/css-selector/Node/FunctionNode.php b/vendor/symfony/css-selector/Node/FunctionNode.php
index 5bfca184..c464cf7c 100644
--- a/vendor/symfony/css-selector/Node/FunctionNode.php
+++ b/vendor/symfony/css-selector/Node/FunctionNode.php
@@ -25,9 +25,9 @@ use Symfony\Component\CssSelector\Parser\Token;
*/
class FunctionNode extends AbstractNode
{
- private NodeInterface $selector;
- private string $name;
- private array $arguments;
+ private $selector;
+ private $name;
+ private $arguments;
/**
* @param Token[] $arguments
diff --git a/vendor/symfony/css-selector/Node/HashNode.php b/vendor/symfony/css-selector/Node/HashNode.php
index 5f5923fb..94114c09 100644
--- a/vendor/symfony/css-selector/Node/HashNode.php
+++ b/vendor/symfony/css-selector/Node/HashNode.php
@@ -23,8 +23,8 @@ namespace Symfony\Component\CssSelector\Node;
*/
class HashNode extends AbstractNode
{
- private NodeInterface $selector;
- private string $id;
+ private $selector;
+ private $id;
public function __construct(NodeInterface $selector, string $id)
{
diff --git a/vendor/symfony/css-selector/Node/NegationNode.php b/vendor/symfony/css-selector/Node/NegationNode.php
index c75d052b..f00522fb 100644
--- a/vendor/symfony/css-selector/Node/NegationNode.php
+++ b/vendor/symfony/css-selector/Node/NegationNode.php
@@ -23,8 +23,8 @@ namespace Symfony\Component\CssSelector\Node;
*/
class NegationNode extends AbstractNode
{
- private NodeInterface $selector;
- private NodeInterface $subSelector;
+ private $selector;
+ private $subSelector;
public function __construct(NodeInterface $selector, NodeInterface $subSelector)
{
diff --git a/vendor/symfony/css-selector/Node/PseudoNode.php b/vendor/symfony/css-selector/Node/PseudoNode.php
index 6825f3a3..12b7bd26 100644
--- a/vendor/symfony/css-selector/Node/PseudoNode.php
+++ b/vendor/symfony/css-selector/Node/PseudoNode.php
@@ -23,8 +23,8 @@ namespace Symfony\Component\CssSelector\Node;
*/
class PseudoNode extends AbstractNode
{
- private NodeInterface $selector;
- private string $identifier;
+ private $selector;
+ private $identifier;
public function __construct(NodeInterface $selector, string $identifier)
{
diff --git a/vendor/symfony/css-selector/Node/SelectorNode.php b/vendor/symfony/css-selector/Node/SelectorNode.php
index b1d6c58e..6e52b2fa 100644
--- a/vendor/symfony/css-selector/Node/SelectorNode.php
+++ b/vendor/symfony/css-selector/Node/SelectorNode.php
@@ -23,8 +23,8 @@ namespace Symfony\Component\CssSelector\Node;
*/
class SelectorNode extends AbstractNode
{
- private NodeInterface $tree;
- private ?string $pseudoElement;
+ private $tree;
+ private $pseudoElement;
public function __construct(NodeInterface $tree, string $pseudoElement = null)
{
diff --git a/vendor/symfony/css-selector/Node/Specificity.php b/vendor/symfony/css-selector/Node/Specificity.php
index bb8e5e34..b00f6d28 100644
--- a/vendor/symfony/css-selector/Node/Specificity.php
+++ b/vendor/symfony/css-selector/Node/Specificity.php
@@ -29,9 +29,9 @@ class Specificity
public const B_FACTOR = 10;
public const C_FACTOR = 1;
- private int $a;
- private int $b;
- private int $c;
+ private $a;
+ private $b;
+ private $c;
public function __construct(int $a, int $b, int $c)
{
diff --git a/vendor/symfony/css-selector/Parser/Handler/HashHandler.php b/vendor/symfony/css-selector/Parser/Handler/HashHandler.php
index cde8cda2..7ae9b438 100644
--- a/vendor/symfony/css-selector/Parser/Handler/HashHandler.php
+++ b/vendor/symfony/css-selector/Parser/Handler/HashHandler.php
@@ -29,8 +29,8 @@ use Symfony\Component\CssSelector\Parser\TokenStream;
*/
class HashHandler implements HandlerInterface
{
- private TokenizerPatterns $patterns;
- private TokenizerEscaping $escaping;
+ private $patterns;
+ private $escaping;
public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
{
diff --git a/vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php b/vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php
index 2b9e02e0..7b2a14e2 100644
--- a/vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php
+++ b/vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php
@@ -29,8 +29,8 @@ use Symfony\Component\CssSelector\Parser\TokenStream;
*/
class IdentifierHandler implements HandlerInterface
{
- private TokenizerPatterns $patterns;
- private TokenizerEscaping $escaping;
+ private $patterns;
+ private $escaping;
public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
{
diff --git a/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php b/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php
index d3bbe5f4..8291a68d 100644
--- a/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php
+++ b/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php
@@ -28,7 +28,7 @@ use Symfony\Component\CssSelector\Parser\TokenStream;
*/
class NumberHandler implements HandlerInterface
{
- private TokenizerPatterns $patterns;
+ private $patterns;
public function __construct(TokenizerPatterns $patterns)
{
diff --git a/vendor/symfony/css-selector/Parser/Handler/StringHandler.php b/vendor/symfony/css-selector/Parser/Handler/StringHandler.php
index 341c75fc..6ce83cdc 100644
--- a/vendor/symfony/css-selector/Parser/Handler/StringHandler.php
+++ b/vendor/symfony/css-selector/Parser/Handler/StringHandler.php
@@ -31,8 +31,8 @@ use Symfony\Component\CssSelector\Parser\TokenStream;
*/
class StringHandler implements HandlerInterface
{
- private TokenizerPatterns $patterns;
- private TokenizerEscaping $escaping;
+ private $patterns;
+ private $escaping;
public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
{
diff --git a/vendor/symfony/css-selector/Parser/Parser.php b/vendor/symfony/css-selector/Parser/Parser.php
index df77e2ce..d73489ed 100644
--- a/vendor/symfony/css-selector/Parser/Parser.php
+++ b/vendor/symfony/css-selector/Parser/Parser.php
@@ -27,7 +27,7 @@ use Symfony\Component\CssSelector\Parser\Tokenizer\Tokenizer;
*/
class Parser implements ParserInterface
{
- private Tokenizer $tokenizer;
+ private $tokenizer;
public function __construct(Tokenizer $tokenizer = null)
{
diff --git a/vendor/symfony/css-selector/Parser/Reader.php b/vendor/symfony/css-selector/Parser/Reader.php
index c0b6923a..4b43effe 100644
--- a/vendor/symfony/css-selector/Parser/Reader.php
+++ b/vendor/symfony/css-selector/Parser/Reader.php
@@ -23,9 +23,9 @@ namespace Symfony\Component\CssSelector\Parser;
*/
class Reader
{
- private string $source;
- private int $length;
- private int $position = 0;
+ private $source;
+ private $length;
+ private $position = 0;
public function __construct(string $source)
{
@@ -60,7 +60,10 @@ class Reader
return false === $position ? false : $position - $this->position;
}
- public function findPattern(string $pattern): array|false
+ /**
+ * @return array|false
+ */
+ public function findPattern(string $pattern)
{
$source = substr($this->source, $this->position);
diff --git a/vendor/symfony/css-selector/Parser/Token.php b/vendor/symfony/css-selector/Parser/Token.php
index a538d07f..a053203c 100644
--- a/vendor/symfony/css-selector/Parser/Token.php
+++ b/vendor/symfony/css-selector/Parser/Token.php
@@ -31,9 +31,9 @@ class Token
public const TYPE_NUMBER = 'number';
public const TYPE_STRING = 'string';
- private ?string $type;
- private ?string $value;
- private ?int $position;
+ private $type;
+ private $value;
+ private $position;
public function __construct(?string $type, ?string $value, ?int $position)
{
diff --git a/vendor/symfony/css-selector/Parser/TokenStream.php b/vendor/symfony/css-selector/Parser/TokenStream.php
index 69f77780..2085f2dd 100644
--- a/vendor/symfony/css-selector/Parser/TokenStream.php
+++ b/vendor/symfony/css-selector/Parser/TokenStream.php
@@ -29,23 +29,34 @@ class TokenStream
/**
* @var Token[]
*/
- private array $tokens = [];
+ private $tokens = [];
/**
* @var Token[]
*/
- private array $used = [];
+ private $used = [];
- private int $cursor = 0;
- private ?Token $peeked;
- private bool $peeking = false;
+ /**
+ * @var int
+ */
+ private $cursor = 0;
+
+ /**
+ * @var Token|null
+ */
+ private $peeked;
+
+ /**
+ * @var bool
+ */
+ private $peeking = false;
/**
* Pushes a token.
*
* @return $this
*/
- public function push(Token $token): static
+ public function push(Token $token): self
{
$this->tokens[] = $token;
@@ -57,7 +68,7 @@ class TokenStream
*
* @return $this
*/
- public function freeze(): static
+ public function freeze(): self
{
return $this;
}
diff --git a/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php b/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php
index 35c96a48..e0dcc5bf 100644
--- a/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php
+++ b/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php
@@ -31,7 +31,7 @@ class Tokenizer
/**
* @var Handler\HandlerInterface[]
*/
- private array $handlers;
+ private $handlers;
public function __construct()
{
diff --git a/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php b/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php
index 8c4b9f74..013e827d 100644
--- a/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php
+++ b/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php
@@ -23,7 +23,7 @@ namespace Symfony\Component\CssSelector\Parser\Tokenizer;
*/
class TokenizerEscaping
{
- private TokenizerPatterns $patterns;
+ private $patterns;
public function __construct(TokenizerPatterns $patterns)
{
diff --git a/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php b/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php
index 0b2767a8..5f16ac48 100644
--- a/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php
+++ b/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php
@@ -23,18 +23,18 @@ namespace Symfony\Component\CssSelector\Parser\Tokenizer;
*/
class TokenizerPatterns
{
- private string $unicodeEscapePattern;
- private string $simpleEscapePattern;
- private string $newLineEscapePattern;
- private string $escapePattern;
- private string $stringEscapePattern;
- private string $nonAsciiPattern;
- private string $nmCharPattern;
- private string $nmStartPattern;
- private string $identifierPattern;
- private string $hashPattern;
- private string $numberPattern;
- private string $quotedStringPattern;
+ private $unicodeEscapePattern;
+ private $simpleEscapePattern;
+ private $newLineEscapePattern;
+ private $escapePattern;
+ private $stringEscapePattern;
+ private $nonAsciiPattern;
+ private $nmCharPattern;
+ private $nmStartPattern;
+ private $identifierPattern;
+ private $hashPattern;
+ private $numberPattern;
+ private $quotedStringPattern;
public function __construct()
{
diff --git a/vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php b/vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php
index b40a86bf..a9879f1b 100644
--- a/vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php
+++ b/vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php
@@ -32,14 +32,14 @@ class AttributeMatchingExtension extends AbstractExtension
public function getAttributeMatchingTranslators(): array
{
return [
- 'exists' => $this->translateExists(...),
- '=' => $this->translateEquals(...),
- '~=' => $this->translateIncludes(...),
- '|=' => $this->translateDashMatch(...),
- '^=' => $this->translatePrefixMatch(...),
- '$=' => $this->translateSuffixMatch(...),
- '*=' => $this->translateSubstringMatch(...),
- '!=' => $this->translateDifferent(...),
+ 'exists' => [$this, 'translateExists'],
+ '=' => [$this, 'translateEquals'],
+ '~=' => [$this, 'translateIncludes'],
+ '|=' => [$this, 'translateDashMatch'],
+ '^=' => [$this, 'translatePrefixMatch'],
+ '$=' => [$this, 'translateSuffixMatch'],
+ '*=' => [$this, 'translateSubstringMatch'],
+ '!=' => [$this, 'translateDifferent'],
];
}
diff --git a/vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php b/vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php
index e75da8b4..aee976e9 100644
--- a/vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php
+++ b/vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php
@@ -31,10 +31,10 @@ class CombinationExtension extends AbstractExtension
public function getCombinationTranslators(): array
{
return [
- ' ' => $this->translateDescendant(...),
- '>' => $this->translateChild(...),
- '+' => $this->translateDirectAdjacent(...),
- '~' => $this->translateIndirectAdjacent(...),
+ ' ' => [$this, 'translateDescendant'],
+ '>' => [$this, 'translateChild'],
+ '+' => [$this, 'translateDirectAdjacent'],
+ '~' => [$this, 'translateIndirectAdjacent'],
];
}
diff --git a/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php b/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php
index 4ed9c239..d3f7222a 100644
--- a/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php
+++ b/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php
@@ -36,12 +36,12 @@ class FunctionExtension extends AbstractExtension
public function getFunctionTranslators(): array
{
return [
- 'nth-child' => $this->translateNthChild(...),
- 'nth-last-child' => $this->translateNthLastChild(...),
- 'nth-of-type' => $this->translateNthOfType(...),
- 'nth-last-of-type' => $this->translateNthLastOfType(...),
- 'contains' => $this->translateContains(...),
- 'lang' => $this->translateLang(...),
+ 'nth-child' => [$this, 'translateNthChild'],
+ 'nth-last-child' => [$this, 'translateNthLastChild'],
+ 'nth-of-type' => [$this, 'translateNthOfType'],
+ 'nth-last-of-type' => [$this, 'translateNthLastOfType'],
+ 'contains' => [$this, 'translateContains'],
+ 'lang' => [$this, 'translateLang'],
];
}
diff --git a/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php b/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php
index 95289818..6edc0858 100644
--- a/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php
+++ b/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php
@@ -42,14 +42,14 @@ class HtmlExtension extends AbstractExtension
public function getPseudoClassTranslators(): array
{
return [
- 'checked' => $this->translateChecked(...),
- 'link' => $this->translateLink(...),
- 'disabled' => $this->translateDisabled(...),
- 'enabled' => $this->translateEnabled(...),
- 'selected' => $this->translateSelected(...),
- 'invalid' => $this->translateInvalid(...),
- 'hover' => $this->translateHover(...),
- 'visited' => $this->translateVisited(...),
+ 'checked' => [$this, 'translateChecked'],
+ 'link' => [$this, 'translateLink'],
+ 'disabled' => [$this, 'translateDisabled'],
+ 'enabled' => [$this, 'translateEnabled'],
+ 'selected' => [$this, 'translateSelected'],
+ 'invalid' => [$this, 'translateInvalid'],
+ 'hover' => [$this, 'translateHover'],
+ 'visited' => [$this, 'translateVisited'],
];
}
@@ -59,7 +59,7 @@ class HtmlExtension extends AbstractExtension
public function getFunctionTranslators(): array
{
return [
- 'lang' => $this->translateLang(...),
+ 'lang' => [$this, 'translateLang'],
];
}
diff --git a/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php b/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php
index 70f287b5..aa6f3f70 100644
--- a/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php
+++ b/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php
@@ -31,7 +31,7 @@ class NodeExtension extends AbstractExtension
public const ATTRIBUTE_NAME_IN_LOWER_CASE = 2;
public const ATTRIBUTE_VALUE_IN_LOWER_CASE = 4;
- private int $flags;
+ private $flags;
public function __construct(int $flags = 0)
{
@@ -41,7 +41,7 @@ class NodeExtension extends AbstractExtension
/**
* @return $this
*/
- public function setFlag(int $flag, bool $on): static
+ public function setFlag(int $flag, bool $on): self
{
if ($on && !$this->hasFlag($flag)) {
$this->flags += $flag;
@@ -65,15 +65,15 @@ class NodeExtension extends AbstractExtension
public function getNodeTranslators(): array
{
return [
- 'Selector' => $this->translateSelector(...),
- 'CombinedSelector' => $this->translateCombinedSelector(...),
- 'Negation' => $this->translateNegation(...),
- 'Function' => $this->translateFunction(...),
- 'Pseudo' => $this->translatePseudo(...),
- 'Attribute' => $this->translateAttribute(...),
- 'Class' => $this->translateClass(...),
- 'Hash' => $this->translateHash(...),
- 'Element' => $this->translateElement(...),
+ 'Selector' => [$this, 'translateSelector'],
+ 'CombinedSelector' => [$this, 'translateCombinedSelector'],
+ 'Negation' => [$this, 'translateNegation'],
+ 'Function' => [$this, 'translateFunction'],
+ 'Pseudo' => [$this, 'translatePseudo'],
+ 'Attribute' => [$this, 'translateAttribute'],
+ 'Class' => [$this, 'translateClass'],
+ 'Hash' => [$this, 'translateHash'],
+ 'Element' => [$this, 'translateElement'],
];
}
diff --git a/vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php b/vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php
index a9b6abc4..a50b0486 100644
--- a/vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php
+++ b/vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php
@@ -32,14 +32,14 @@ class PseudoClassExtension extends AbstractExtension
public function getPseudoClassTranslators(): array
{
return [
- 'root' => $this->translateRoot(...),
- 'first-child' => $this->translateFirstChild(...),
- 'last-child' => $this->translateLastChild(...),
- 'first-of-type' => $this->translateFirstOfType(...),
- 'last-of-type' => $this->translateLastOfType(...),
- 'only-child' => $this->translateOnlyChild(...),
- 'only-of-type' => $this->translateOnlyOfType(...),
- 'empty' => $this->translateEmpty(...),
+ 'root' => [$this, 'translateRoot'],
+ 'first-child' => [$this, 'translateFirstChild'],
+ 'last-child' => [$this, 'translateLastChild'],
+ 'first-of-type' => [$this, 'translateFirstOfType'],
+ 'last-of-type' => [$this, 'translateLastOfType'],
+ 'only-child' => [$this, 'translateOnlyChild'],
+ 'only-of-type' => [$this, 'translateOnlyOfType'],
+ 'empty' => [$this, 'translateEmpty'],
];
}
diff --git a/vendor/symfony/css-selector/XPath/Translator.php b/vendor/symfony/css-selector/XPath/Translator.php
index 128a4a93..8ce47303 100644
--- a/vendor/symfony/css-selector/XPath/Translator.php
+++ b/vendor/symfony/css-selector/XPath/Translator.php
@@ -30,23 +30,23 @@ use Symfony\Component\CssSelector\Parser\ParserInterface;
*/
class Translator implements TranslatorInterface
{
- private ParserInterface $mainParser;
+ private $mainParser;
/**
* @var ParserInterface[]
*/
- private array $shortcutParsers = [];
+ private $shortcutParsers = [];
/**
* @var Extension\ExtensionInterface[]
*/
- private array $extensions = [];
+ private $extensions = [];
- private array $nodeTranslators = [];
- private array $combinationTranslators = [];
- private array $functionTranslators = [];
- private array $pseudoClassTranslators = [];
- private array $attributeMatchingTranslators = [];
+ private $nodeTranslators = [];
+ private $combinationTranslators = [];
+ private $functionTranslators = [];
+ private $pseudoClassTranslators = [];
+ private $attributeMatchingTranslators = [];
public function __construct(ParserInterface $parser = null)
{
@@ -117,7 +117,7 @@ class Translator implements TranslatorInterface
/**
* @return $this
*/
- public function registerExtension(Extension\ExtensionInterface $extension): static
+ public function registerExtension(Extension\ExtensionInterface $extension): self
{
$this->extensions[$extension->getName()] = $extension;
@@ -145,7 +145,7 @@ class Translator implements TranslatorInterface
/**
* @return $this
*/
- public function registerParserShortcut(ParserInterface $shortcut): static
+ public function registerParserShortcut(ParserInterface $shortcut): self
{
$this->shortcutParsers[] = $shortcut;
diff --git a/vendor/symfony/css-selector/XPath/XPathExpr.php b/vendor/symfony/css-selector/XPath/XPathExpr.php
index a76e30be..e45ce7d8 100644
--- a/vendor/symfony/css-selector/XPath/XPathExpr.php
+++ b/vendor/symfony/css-selector/XPath/XPathExpr.php
@@ -23,9 +23,9 @@ namespace Symfony\Component\CssSelector\XPath;
*/
class XPathExpr
{
- private string $path;
- private string $element;
- private string $condition;
+ private $path;
+ private $element;
+ private $condition;
public function __construct(string $path = '', string $element = '*', string $condition = '', bool $starPrefix = false)
{
@@ -46,7 +46,7 @@ class XPathExpr
/**
* @return $this
*/
- public function addCondition(string $condition): static
+ public function addCondition(string $condition): self
{
$this->condition = $this->condition ? sprintf('(%s) and (%s)', $this->condition, $condition) : $condition;
@@ -61,7 +61,7 @@ class XPathExpr
/**
* @return $this
*/
- public function addNameTest(): static
+ public function addNameTest(): self
{
if ('*' !== $this->element) {
$this->addCondition('name() = '.Translator::getXpathLiteral($this->element));
@@ -74,7 +74,7 @@ class XPathExpr
/**
* @return $this
*/
- public function addStarPrefix(): static
+ public function addStarPrefix(): self
{
$this->path .= '*/';
@@ -86,7 +86,7 @@ class XPathExpr
*
* @return $this
*/
- public function join(string $combiner, self $expr): static
+ public function join(string $combiner, self $expr): self
{
$path = $this->__toString().$combiner;
diff --git a/vendor/symfony/css-selector/composer.json b/vendor/symfony/css-selector/composer.json
index c08fdc2c..f0b71249 100644
--- a/vendor/symfony/css-selector/composer.json
+++ b/vendor/symfony/css-selector/composer.json
@@ -20,7 +20,8 @@
}
],
"require": {
- "php": ">=8.1"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"autoload": {
"psr-4": { "Symfony\\Component\\CssSelector\\": "" },
diff --git a/vendor/symfony/deprecation-contracts/composer.json b/vendor/symfony/deprecation-contracts/composer.json
index f5de4eb4..cc7cc123 100644
--- a/vendor/symfony/deprecation-contracts/composer.json
+++ b/vendor/symfony/deprecation-contracts/composer.json
@@ -15,7 +15,7 @@
}
],
"require": {
- "php": ">=8.1"
+ "php": ">=7.1"
},
"autoload": {
"files": [
@@ -25,7 +25,7 @@
"minimum-stability": "dev",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
diff --git a/vendor/symfony/deprecation-contracts/function.php b/vendor/symfony/deprecation-contracts/function.php
index 2d56512b..d4371504 100644
--- a/vendor/symfony/deprecation-contracts/function.php
+++ b/vendor/symfony/deprecation-contracts/function.php
@@ -20,7 +20,7 @@ if (!function_exists('trigger_deprecation')) {
*
* @author Nicolas Grekas
*/
- function trigger_deprecation(string $package, string $version, string $message, mixed ...$args): void
+ function trigger_deprecation(string $package, string $version, string $message, ...$args): void
{
@trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED);
}
diff --git a/vendor/symfony/event-dispatcher-contracts/Event.php b/vendor/symfony/event-dispatcher-contracts/Event.php
index 384a650b..46dcb2ba 100644
--- a/vendor/symfony/event-dispatcher-contracts/Event.php
+++ b/vendor/symfony/event-dispatcher-contracts/Event.php
@@ -30,7 +30,7 @@ use Psr\EventDispatcher\StoppableEventInterface;
*/
class Event implements StoppableEventInterface
{
- private bool $propagationStopped = false;
+ private $propagationStopped = false;
/**
* {@inheritdoc}
diff --git a/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php b/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php
index 610d6ac0..351dc513 100644
--- a/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php
+++ b/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php
@@ -21,13 +21,11 @@ interface EventDispatcherInterface extends PsrEventDispatcherInterface
/**
* Dispatches an event to all registered listeners.
*
- * @template T of object
- *
- * @param T $event The event to pass to the event handlers/listeners
+ * @param object $event The event to pass to the event handlers/listeners
* @param string|null $eventName The name of the event to dispatch. If not supplied,
* the class of $event should be used instead.
*
- * @return T The passed $event MUST be returned
+ * @return object The passed $event MUST be returned
*/
public function dispatch(object $event, string $eventName = null): object;
}
diff --git a/vendor/symfony/event-dispatcher-contracts/composer.json b/vendor/symfony/event-dispatcher-contracts/composer.json
index 03ce8e45..660df81a 100644
--- a/vendor/symfony/event-dispatcher-contracts/composer.json
+++ b/vendor/symfony/event-dispatcher-contracts/composer.json
@@ -16,7 +16,7 @@
}
],
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
"psr/event-dispatcher": "^1"
},
"suggest": {
@@ -28,7 +28,7 @@
"minimum-stability": "dev",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
diff --git a/vendor/symfony/event-dispatcher/CHANGELOG.md b/vendor/symfony/event-dispatcher/CHANGELOG.md
index 76b2eab6..0f985989 100644
--- a/vendor/symfony/event-dispatcher/CHANGELOG.md
+++ b/vendor/symfony/event-dispatcher/CHANGELOG.md
@@ -1,11 +1,6 @@
CHANGELOG
=========
-6.0
----
-
- * Remove `LegacyEventDispatcherProxy`
-
5.4
---
diff --git a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
index 5005067e..acfbf619 100644
--- a/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
+++ b/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
@@ -13,7 +13,6 @@ namespace Symfony\Component\EventDispatcher\Debug;
use Psr\EventDispatcher\StoppableEventInterface;
use Psr\Log\LoggerInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
@@ -34,27 +33,29 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa
protected $stopwatch;
/**
- * @var \SplObjectStorage
+ *
+ * @deprecated since Symfony 5.1
+ */
+final class LegacyEventDispatcherProxy
+{
+ public static function decorate(?EventDispatcherInterface $dispatcher): ?EventDispatcherInterface
+ {
+ return $dispatcher;
+ }
+}
diff --git a/vendor/symfony/event-dispatcher/composer.json b/vendor/symfony/event-dispatcher/composer.json
index c05373f3..32b42e40 100644
--- a/vendor/symfony/event-dispatcher/composer.json
+++ b/vendor/symfony/event-dispatcher/composer.json
@@ -16,25 +16,27 @@
}
],
"require": {
- "php": ">=8.1",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
+ "symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/config": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0",
"psr/log": "^1|^2|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<4.4"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0|3.0"
+ "symfony/event-dispatcher-implementation": "2.0"
},
"suggest": {
"symfony/dependency-injection": "",
diff --git a/vendor/symfony/options-resolver/CHANGELOG.md b/vendor/symfony/options-resolver/CHANGELOG.md
index 791a402f..84c45946 100644
--- a/vendor/symfony/options-resolver/CHANGELOG.md
+++ b/vendor/symfony/options-resolver/CHANGELOG.md
@@ -1,11 +1,6 @@
CHANGELOG
=========
-6.0
----
-
- * Remove `OptionsResolverIntrospector::getDeprecationMessage()`
-
5.3
---
diff --git a/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php b/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php
index 837fae08..95909f32 100644
--- a/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php
+++ b/vendor/symfony/options-resolver/Debug/OptionsResolverIntrospector.php
@@ -41,9 +41,11 @@ class OptionsResolverIntrospector
}
/**
+ * @return mixed
+ *
* @throws NoConfigurationException on no configured value
*/
- public function getDefault(string $option): mixed
+ public function getDefault(string $option)
{
return ($this->get)('defaults', $option, sprintf('No default value was set for the "%s" option.', $option));
}
@@ -94,6 +96,20 @@ class OptionsResolverIntrospector
return ($this->get)('normalizers', $option, sprintf('No normalizer was set for the "%s" option.', $option));
}
+ /**
+ * @return string|\Closure
+ *
+ * @throws NoConfigurationException on no configured deprecation
+ *
+ * @deprecated since Symfony 5.1, use "getDeprecation()" instead.
+ */
+ public function getDeprecationMessage(string $option)
+ {
+ trigger_deprecation('symfony/options-resolver', '5.1', 'The "%s()" method is deprecated, use "getDeprecation()" instead.', __METHOD__);
+
+ return $this->getDeprecation($option)['message'];
+ }
+
/**
* @throws NoConfigurationException on no configured deprecation
*/
diff --git a/vendor/symfony/options-resolver/OptionConfigurator.php b/vendor/symfony/options-resolver/OptionConfigurator.php
index 37d51384..62f03d06 100644
--- a/vendor/symfony/options-resolver/OptionConfigurator.php
+++ b/vendor/symfony/options-resolver/OptionConfigurator.php
@@ -32,7 +32,7 @@ final class OptionConfigurator
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function allowedTypes(string ...$types): static
+ public function allowedTypes(string ...$types): self
{
$this->resolver->setAllowedTypes($this->name, $types);
@@ -48,7 +48,7 @@ final class OptionConfigurator
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function allowedValues(mixed ...$values): static
+ public function allowedValues(...$values): self
{
$this->resolver->setAllowedValues($this->name, $values);
@@ -58,11 +58,13 @@ final class OptionConfigurator
/**
* Sets the default value for this option.
*
+ * @param mixed $value The default value of the option
+ *
* @return $this
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function default(mixed $value): static
+ public function default($value): self
{
$this->resolver->setDefault($this->name, $value);
@@ -86,7 +88,7 @@ final class OptionConfigurator
*
* @return $this
*/
- public function deprecated(string $package, string $version, string|\Closure $message = 'The option "%name%" is deprecated.'): static
+ public function deprecated(string $package, string $version, $message = 'The option "%name%" is deprecated.'): self
{
$this->resolver->setDeprecated($this->name, $package, $version, $message);
@@ -100,7 +102,7 @@ final class OptionConfigurator
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function normalize(\Closure $normalizer): static
+ public function normalize(\Closure $normalizer): self
{
$this->resolver->setNormalizer($this->name, $normalizer);
@@ -114,7 +116,7 @@ final class OptionConfigurator
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function required(): static
+ public function required(): self
{
$this->resolver->setRequired($this->name);
@@ -128,7 +130,7 @@ final class OptionConfigurator
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function info(string $info): static
+ public function info(string $info): self
{
$this->resolver->setInfo($this->name, $info);
diff --git a/vendor/symfony/options-resolver/OptionsResolver.php b/vendor/symfony/options-resolver/OptionsResolver.php
index 205c15b4..3db291f9 100644
--- a/vendor/symfony/options-resolver/OptionsResolver.php
+++ b/vendor/symfony/options-resolver/OptionsResolver.php
@@ -187,11 +187,14 @@ class OptionsResolver implements Options
* // 'default' === $parent['connection']
* }
*
+ * @param string $option The name of the option
+ * @param mixed $value The default value of the option
+ *
* @return $this
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function setDefault(string $option, mixed $value): static
+ public function setDefault(string $option, $value)
{
// Setting is not possible once resolving starts, because then lazy
// options could manipulate the state of the object, leading to
@@ -262,7 +265,7 @@ class OptionsResolver implements Options
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function setDefaults(array $defaults): static
+ public function setDefaults(array $defaults)
{
foreach ($defaults as $option => $value) {
$this->setDefault($option, $value);
@@ -276,8 +279,10 @@ class OptionsResolver implements Options
*
* Returns true if {@link setDefault()} was called for this option.
* An option is also considered set if it was set to null.
+ *
+ * @return bool
*/
- public function hasDefault(string $option): bool
+ public function hasDefault(string $option)
{
return \array_key_exists($option, $this->defaults);
}
@@ -291,7 +296,7 @@ class OptionsResolver implements Options
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function setRequired(string|array $optionNames): static
+ public function setRequired($optionNames)
{
if ($this->locked) {
throw new AccessException('Options cannot be made required from a lazy option or normalizer.');
@@ -309,8 +314,10 @@ class OptionsResolver implements Options
* Returns whether an option is required.
*
* An option is required if it was passed to {@link setRequired()}.
+ *
+ * @return bool
*/
- public function isRequired(string $option): bool
+ public function isRequired(string $option)
{
return isset($this->required[$option]);
}
@@ -322,7 +329,7 @@ class OptionsResolver implements Options
*
* @see isRequired()
*/
- public function getRequiredOptions(): array
+ public function getRequiredOptions()
{
return array_keys($this->required);
}
@@ -333,8 +340,10 @@ class OptionsResolver implements Options
* An option is missing if it was passed to {@link setRequired()}, but not
* to {@link setDefault()}. This option must be passed explicitly to
* {@link resolve()}, otherwise an exception will be thrown.
+ *
+ * @return bool
*/
- public function isMissing(string $option): bool
+ public function isMissing(string $option)
{
return isset($this->required[$option]) && !\array_key_exists($option, $this->defaults);
}
@@ -344,7 +353,7 @@ class OptionsResolver implements Options
*
* @return string[]
*/
- public function getMissingOptions(): array
+ public function getMissingOptions()
{
return array_keys(array_diff_key($this->required, $this->defaults));
}
@@ -362,7 +371,7 @@ class OptionsResolver implements Options
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function setDefined(string|array $optionNames): static
+ public function setDefined($optionNames)
{
if ($this->locked) {
throw new AccessException('Options cannot be defined from a lazy option or normalizer.');
@@ -380,8 +389,10 @@ class OptionsResolver implements Options
*
* Returns true for any option passed to {@link setDefault()},
* {@link setRequired()} or {@link setDefined()}.
+ *
+ * @return bool
*/
- public function isDefined(string $option): bool
+ public function isDefined(string $option)
{
return isset($this->defined[$option]);
}
@@ -393,7 +404,7 @@ class OptionsResolver implements Options
*
* @see isDefined()
*/
- public function getDefinedOptions(): array
+ public function getDefinedOptions()
{
return array_keys($this->defined);
}
@@ -426,7 +437,7 @@ class OptionsResolver implements Options
*
* @return $this
*/
- public function setDeprecated(string $option, string $package, string $version, string|\Closure $message = 'The option "%name%" is deprecated.'): static
+ public function setDeprecated(string $option/* , string $package, string $version, $message = 'The option "%name%" is deprecated.' */): self
{
if ($this->locked) {
throw new AccessException('Options cannot be deprecated from a lazy option or normalizer.');
@@ -436,6 +447,19 @@ class OptionsResolver implements Options
throw new UndefinedOptionsException(sprintf('The option "%s" does not exist, defined options are: "%s".', $this->formatOptions([$option]), implode('", "', array_keys($this->defined))));
}
+ $args = \func_get_args();
+
+ if (\func_num_args() < 3) {
+ trigger_deprecation('symfony/options-resolver', '5.1', 'The signature of method "%s()" requires 2 new arguments: "string $package, string $version", not defining them is deprecated.', __METHOD__);
+
+ $message = $args[1] ?? 'The option "%name%" is deprecated.';
+ $package = $version = '';
+ } else {
+ $package = $args[1];
+ $version = $args[2];
+ $message = $args[3] ?? 'The option "%name%" is deprecated.';
+ }
+
if (!\is_string($message) && !$message instanceof \Closure) {
throw new InvalidArgumentException(sprintf('Invalid type for deprecation message argument, expected string or \Closure, but got "%s".', get_debug_type($message)));
}
@@ -526,7 +550,7 @@ class OptionsResolver implements Options
* @throws UndefinedOptionsException If the option is undefined
* @throws AccessException If called from a lazy option or normalizer
*/
- public function addNormalizer(string $option, \Closure $normalizer, bool $forcePrepend = false): static
+ public function addNormalizer(string $option, \Closure $normalizer, bool $forcePrepend = false): self
{
if ($this->locked) {
throw new AccessException('Normalizers cannot be set from a lazy option or normalizer.');
@@ -562,14 +586,15 @@ class OptionsResolver implements Options
* The closure receives the value as argument and should return true to
* accept the value and false to reject the value.
*
- * @param mixed $allowedValues One or more acceptable values/closures
+ * @param string $option The option name
+ * @param mixed $allowedValues One or more acceptable values/closures
*
* @return $this
*
* @throws UndefinedOptionsException If the option is undefined
* @throws AccessException If called from a lazy option or normalizer
*/
- public function setAllowedValues(string $option, mixed $allowedValues)
+ public function setAllowedValues(string $option, $allowedValues)
{
if ($this->locked) {
throw new AccessException('Allowed values cannot be set from a lazy option or normalizer.');
@@ -602,14 +627,15 @@ class OptionsResolver implements Options
* The closure receives the value as argument and should return true to
* accept the value and false to reject the value.
*
- * @param mixed $allowedValues One or more acceptable values/closures
+ * @param string $option The option name
+ * @param mixed $allowedValues One or more acceptable values/closures
*
* @return $this
*
* @throws UndefinedOptionsException If the option is undefined
* @throws AccessException If called from a lazy option or normalizer
*/
- public function addAllowedValues(string $option, mixed $allowedValues)
+ public function addAllowedValues(string $option, $allowedValues)
{
if ($this->locked) {
throw new AccessException('Allowed values cannot be added from a lazy option or normalizer.');
@@ -649,7 +675,7 @@ class OptionsResolver implements Options
* @throws UndefinedOptionsException If the option is undefined
* @throws AccessException If called from a lazy option or normalizer
*/
- public function setAllowedTypes(string $option, string|array $allowedTypes)
+ public function setAllowedTypes(string $option, $allowedTypes)
{
if ($this->locked) {
throw new AccessException('Allowed types cannot be set from a lazy option or normalizer.');
@@ -683,7 +709,7 @@ class OptionsResolver implements Options
* @throws UndefinedOptionsException If the option is undefined
* @throws AccessException If called from a lazy option or normalizer
*/
- public function addAllowedTypes(string $option, string|array $allowedTypes)
+ public function addAllowedTypes(string $option, $allowedTypes)
{
if ($this->locked) {
throw new AccessException('Allowed types cannot be added from a lazy option or normalizer.');
@@ -725,7 +751,7 @@ class OptionsResolver implements Options
* @throws UndefinedOptionsException If the option is undefined
* @throws AccessException If called from a lazy option or normalizer
*/
- public function setInfo(string $option, string $info): static
+ public function setInfo(string $option, string $info): self
{
if ($this->locked) {
throw new AccessException('The Info message cannot be set from a lazy option or normalizer.');
@@ -759,7 +785,7 @@ class OptionsResolver implements Options
*
* @throws AccessException If called from a lazy option, a normalizer or a root definition
*/
- public function setPrototype(bool $prototype): static
+ public function setPrototype(bool $prototype): self
{
if ($this->locked) {
throw new AccessException('The prototype property cannot be set from a lazy option or normalizer.');
@@ -790,7 +816,7 @@ class OptionsResolver implements Options
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function remove(string|array $optionNames): static
+ public function remove($optionNames)
{
if ($this->locked) {
throw new AccessException('Options cannot be removed from a lazy option or normalizer.');
@@ -811,7 +837,7 @@ class OptionsResolver implements Options
*
* @throws AccessException If called from a lazy option or normalizer
*/
- public function clear(): static
+ public function clear()
{
if ($this->locked) {
throw new AccessException('Options cannot be cleared from a lazy option or normalizer.');
@@ -843,6 +869,8 @@ class OptionsResolver implements Options
* - Options have invalid types;
* - Options have invalid values.
*
+ * @return array
+ *
* @throws UndefinedOptionsException If an option name is undefined
* @throws InvalidOptionsException If an option doesn't fulfill the
* specified validation rules
@@ -852,7 +880,7 @@ class OptionsResolver implements Options
* @throws NoSuchOptionException If a lazy option reads an unavailable option
* @throws AccessException If called from a lazy option or normalizer
*/
- public function resolve(array $options = []): array
+ public function resolve(array $options = [])
{
if ($this->locked) {
throw new AccessException('Options cannot be resolved from a lazy option or normalizer.');
@@ -904,6 +932,8 @@ class OptionsResolver implements Options
*
* @param bool $triggerDeprecation Whether to trigger the deprecation or not (true by default)
*
+ * @return mixed
+ *
* @throws AccessException If accessing this method outside of
* {@link resolve()}
* @throws NoSuchOptionException If the option is not set
@@ -912,7 +942,8 @@ class OptionsResolver implements Options
* @throws OptionDefinitionException If there is a cyclic dependency between
* lazy options and/or normalizers
*/
- public function offsetGet(mixed $option, bool $triggerDeprecation = true): mixed
+ #[\ReturnTypeWillChange]
+ public function offsetGet($option, bool $triggerDeprecation = true)
{
if (!$this->locked) {
throw new AccessException('Array access is only supported within closures of lazy options and normalizers.');
@@ -1132,9 +1163,9 @@ class OptionsResolver implements Options
return $value;
}
- private function verifyTypes(string $type, mixed $value, array &$invalidTypes, int $level = 0): bool
+ private function verifyTypes(string $type, $value, array &$invalidTypes, int $level = 0): bool
{
- if (\is_array($value) && str_ends_with($type, '[]')) {
+ if (\is_array($value) && '[]' === substr($type, -2)) {
$type = substr($type, 0, -2);
$valid = true;
@@ -1161,11 +1192,16 @@ class OptionsResolver implements Options
/**
* Returns whether a resolved option with the given name exists.
*
+ * @param string $option The option name
+ *
+ * @return bool
+ *
* @throws AccessException If accessing this method outside of {@link resolve()}
*
* @see \ArrayAccess::offsetExists()
*/
- public function offsetExists(mixed $option): bool
+ #[\ReturnTypeWillChange]
+ public function offsetExists($option)
{
if (!$this->locked) {
throw new AccessException('Array access is only supported within closures of lazy options and normalizers.');
@@ -1177,9 +1213,12 @@ class OptionsResolver implements Options
/**
* Not supported.
*
+ * @return void
+ *
* @throws AccessException
*/
- public function offsetSet(mixed $option, mixed $value): void
+ #[\ReturnTypeWillChange]
+ public function offsetSet($option, $value)
{
throw new AccessException('Setting options via array access is not supported. Use setDefault() instead.');
}
@@ -1187,9 +1226,12 @@ class OptionsResolver implements Options
/**
* Not supported.
*
+ * @return void
+ *
* @throws AccessException
*/
- public function offsetUnset(mixed $option): void
+ #[\ReturnTypeWillChange]
+ public function offsetUnset($option)
{
throw new AccessException('Removing options via array access is not supported. Use remove() instead.');
}
@@ -1199,11 +1241,14 @@ class OptionsResolver implements Options
*
* This may be only a subset of the defined options.
*
+ * @return int
+ *
* @throws AccessException If accessing this method outside of {@link resolve()}
*
* @see \Countable::count()
*/
- public function count(): int
+ #[\ReturnTypeWillChange]
+ public function count()
{
if (!$this->locked) {
throw new AccessException('Counting is only supported within closures of lazy options and normalizers.');
@@ -1218,8 +1263,10 @@ class OptionsResolver implements Options
* This method returns the equivalent PHP tokens for most scalar types
* (i.e. "false" for false, "1" for 1 etc.). Strings are always wrapped
* in double quotes (").
+ *
+ * @param mixed $value The value to format as string
*/
- private function formatValue(mixed $value): string
+ private function formatValue($value): string
{
if (\is_object($value)) {
return \get_class($value);
diff --git a/vendor/symfony/options-resolver/composer.json b/vendor/symfony/options-resolver/composer.json
index 3355b24e..a38d1bd0 100644
--- a/vendor/symfony/options-resolver/composer.json
+++ b/vendor/symfony/options-resolver/composer.json
@@ -16,8 +16,10 @@
}
],
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
},
"autoload": {
"psr-4": { "Symfony\\Component\\OptionsResolver\\": "" },
diff --git a/vendor/symfony/string/AbstractString.php b/vendor/symfony/string/AbstractString.php
index 29322127..13567c7b 100644
--- a/vendor/symfony/string/AbstractString.php
+++ b/vendor/symfony/string/AbstractString.php
@@ -74,7 +74,7 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
foreach ($values as $k => $v) {
if (\is_string($k) && '' !== $k && $k !== $j = (string) new static($k)) {
- $keys ??= array_keys($values);
+ $keys = $keys ?? array_keys($values);
$keys[$i] = $j;
}
@@ -92,17 +92,15 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $needle
+ *
+ * @return static
*/
- public function after(string|iterable $needle, bool $includeNeedle = false, int $offset = 0): static
+ public function after($needle, bool $includeNeedle = false, int $offset = 0): self
{
$str = clone $this;
$i = \PHP_INT_MAX;
- if (\is_string($needle)) {
- $needle = [$needle];
- }
-
- foreach ($needle as $n) {
+ foreach ((array) $needle as $n) {
$n = (string) $n;
$j = $this->indexOf($n, $offset);
@@ -125,17 +123,15 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $needle
+ *
+ * @return static
*/
- public function afterLast(string|iterable $needle, bool $includeNeedle = false, int $offset = 0): static
+ public function afterLast($needle, bool $includeNeedle = false, int $offset = 0): self
{
$str = clone $this;
$i = null;
- if (\is_string($needle)) {
- $needle = [$needle];
- }
-
- foreach ($needle as $n) {
+ foreach ((array) $needle as $n) {
$n = (string) $n;
$j = $this->indexOfLast($n, $offset);
@@ -156,21 +152,22 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return $this->slice($i);
}
- abstract public function append(string ...$suffix): static;
+ /**
+ * @return static
+ */
+ abstract public function append(string ...$suffix): self;
/**
* @param string|string[] $needle
+ *
+ * @return static
*/
- public function before(string|iterable $needle, bool $includeNeedle = false, int $offset = 0): static
+ public function before($needle, bool $includeNeedle = false, int $offset = 0): self
{
$str = clone $this;
$i = \PHP_INT_MAX;
- if (\is_string($needle)) {
- $needle = [$needle];
- }
-
- foreach ($needle as $n) {
+ foreach ((array) $needle as $n) {
$n = (string) $n;
$j = $this->indexOf($n, $offset);
@@ -193,17 +190,15 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $needle
+ *
+ * @return static
*/
- public function beforeLast(string|iterable $needle, bool $includeNeedle = false, int $offset = 0): static
+ public function beforeLast($needle, bool $includeNeedle = false, int $offset = 0): self
{
$str = clone $this;
$i = null;
- if (\is_string($needle)) {
- $needle = [$needle];
- }
-
- foreach ($needle as $n) {
+ foreach ((array) $needle as $n) {
$n = (string) $n;
$j = $this->indexOfLast($n, $offset);
@@ -234,14 +229,20 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return '' === $str->string ? [] : array_values(unpack('C*', $str->string));
}
- abstract public function camel(): static;
+ /**
+ * @return static
+ */
+ abstract public function camel(): self;
/**
* @return static[]
*/
abstract public function chunk(int $length = 1): array;
- public function collapseWhitespace(): static
+ /**
+ * @return static
+ */
+ public function collapseWhitespace(): self
{
$str = clone $this;
$str->string = trim(preg_replace("/(?:[ \n\r\t\x0C]{2,}+|[\n\r\t\x0C])/", ' ', $str->string), " \n\r\t\x0C");
@@ -252,7 +253,7 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $needle
*/
- public function containsAny(string|iterable $needle): bool
+ public function containsAny($needle): bool
{
return null !== $this->indexOf($needle);
}
@@ -260,9 +261,9 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $suffix
*/
- public function endsWith(string|iterable $suffix): bool
+ public function endsWith($suffix): bool
{
- if (\is_string($suffix)) {
+ if (!\is_array($suffix) && !$suffix instanceof \Traversable) {
throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
}
@@ -275,7 +276,10 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return false;
}
- public function ensureEnd(string $suffix): static
+ /**
+ * @return static
+ */
+ public function ensureEnd(string $suffix): self
{
if (!$this->endsWith($suffix)) {
return $this->append($suffix);
@@ -287,7 +291,10 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return $this->replaceMatches($regex.($this->ignoreCase ? 'i' : ''), '$1');
}
- public function ensureStart(string $prefix): static
+ /**
+ * @return static
+ */
+ public function ensureStart(string $prefix): self
{
$prefix = new static($prefix);
@@ -309,9 +316,9 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $string
*/
- public function equalsTo(string|iterable $string): bool
+ public function equalsTo($string): bool
{
- if (\is_string($string)) {
+ if (!\is_array($string) && !$string instanceof \Traversable) {
throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
}
@@ -324,9 +331,15 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return false;
}
- abstract public function folded(): static;
+ /**
+ * @return static
+ */
+ abstract public function folded(): self;
- public function ignoreCase(): static
+ /**
+ * @return static
+ */
+ public function ignoreCase(): self
{
$str = clone $this;
$str->ignoreCase = true;
@@ -337,9 +350,9 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $needle
*/
- public function indexOf(string|iterable $needle, int $offset = 0): ?int
+ public function indexOf($needle, int $offset = 0): ?int
{
- if (\is_string($needle)) {
+ if (!\is_array($needle) && !$needle instanceof \Traversable) {
throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
}
@@ -359,9 +372,9 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $needle
*/
- public function indexOfLast(string|iterable $needle, int $offset = 0): ?int
+ public function indexOfLast($needle, int $offset = 0): ?int
{
- if (\is_string($needle)) {
+ if (!\is_array($needle) && !$needle instanceof \Traversable) {
throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
}
@@ -383,7 +396,10 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return '' === $this->string;
}
- abstract public function join(array $strings, string $lastGlue = null): static;
+ /**
+ * @return static
+ */
+ abstract public function join(array $strings, string $lastGlue = null): self;
public function jsonSerialize(): string
{
@@ -392,7 +408,10 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
abstract public function length(): int;
- abstract public function lower(): static;
+ /**
+ * @return static
+ */
+ abstract public function lower(): self;
/**
* Matches the string using a regular expression.
@@ -403,15 +422,30 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
*/
abstract public function match(string $regexp, int $flags = 0, int $offset = 0): array;
- abstract public function padBoth(int $length, string $padStr = ' '): static;
+ /**
+ * @return static
+ */
+ abstract public function padBoth(int $length, string $padStr = ' '): self;
- abstract public function padEnd(int $length, string $padStr = ' '): static;
+ /**
+ * @return static
+ */
+ abstract public function padEnd(int $length, string $padStr = ' '): self;
- abstract public function padStart(int $length, string $padStr = ' '): static;
+ /**
+ * @return static
+ */
+ abstract public function padStart(int $length, string $padStr = ' '): self;
- abstract public function prepend(string ...$prefix): static;
+ /**
+ * @return static
+ */
+ abstract public function prepend(string ...$prefix): self;
- public function repeat(int $multiplier): static
+ /**
+ * @return static
+ */
+ public function repeat(int $multiplier): self
{
if (0 > $multiplier) {
throw new InvalidArgumentException(sprintf('Multiplier must be positive, %d given.', $multiplier));
@@ -423,17 +457,37 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return $str;
}
- abstract public function replace(string $from, string $to): static;
+ /**
+ * @return static
+ */
+ abstract public function replace(string $from, string $to): self;
- abstract public function replaceMatches(string $fromRegexp, string|callable $to): static;
+ /**
+ * @param string|callable $to
+ *
+ * @return static
+ */
+ abstract public function replaceMatches(string $fromRegexp, $to): self;
- abstract public function reverse(): static;
+ /**
+ * @return static
+ */
+ abstract public function reverse(): self;
- abstract public function slice(int $start = 0, int $length = null): static;
+ /**
+ * @return static
+ */
+ abstract public function slice(int $start = 0, int $length = null): self;
- abstract public function snake(): static;
+ /**
+ * @return static
+ */
+ abstract public function snake(): self;
- abstract public function splice(string $replacement, int $start = 0, int $length = null): static;
+ /**
+ * @return static
+ */
+ abstract public function splice(string $replacement, int $start = 0, int $length = null): self;
/**
* @return static[]
@@ -455,7 +509,7 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
$lastError = preg_last_error();
foreach (get_defined_constants(true)['pcre'] as $k => $v) {
- if ($lastError === $v && str_ends_with($k, '_ERROR')) {
+ if ($lastError === $v && '_ERROR' === substr($k, -6)) {
throw new RuntimeException('Splitting failed with '.$k.'.');
}
}
@@ -486,9 +540,9 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
/**
* @param string|string[] $prefix
*/
- public function startsWith(string|iterable $prefix): bool
+ public function startsWith($prefix): bool
{
- if (\is_string($prefix)) {
+ if (!\is_array($prefix) && !$prefix instanceof \Traversable) {
throw new \TypeError(sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class));
}
@@ -501,7 +555,10 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return false;
}
- abstract public function title(bool $allWords = false): static;
+ /**
+ * @return static
+ */
+ abstract public function title(bool $allWords = false): self;
public function toByteString(string $toEncoding = null): ByteString
{
@@ -549,16 +606,24 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return new UnicodeString($this->string);
}
- abstract public function trim(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): static;
+ /**
+ * @return static
+ */
+ abstract public function trim(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): self;
- abstract public function trimEnd(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): static;
+ /**
+ * @return static
+ */
+ abstract public function trimEnd(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): self;
/**
* @param string|string[] $prefix
+ *
+ * @return static
*/
- public function trimPrefix($prefix): static
+ public function trimPrefix($prefix): self
{
- if (\is_array($prefix) || $prefix instanceof \Traversable) { // don't use is_iterable(), it's slow
+ if (\is_array($prefix) || $prefix instanceof \Traversable) {
foreach ($prefix as $s) {
$t = $this->trimPrefix($s);
@@ -585,14 +650,19 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return $str;
}
- abstract public function trimStart(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): static;
+ /**
+ * @return static
+ */
+ abstract public function trimStart(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): self;
/**
* @param string|string[] $suffix
+ *
+ * @return static
*/
- public function trimSuffix($suffix): static
+ public function trimSuffix($suffix): self
{
- if (\is_array($suffix) || $suffix instanceof \Traversable) { // don't use is_iterable(), it's slow
+ if (\is_array($suffix) || $suffix instanceof \Traversable) {
foreach ($suffix as $s) {
$t = $this->trimSuffix($s);
@@ -619,7 +689,10 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return $str;
}
- public function truncate(int $length, string $ellipsis = '', bool $cut = true): static
+ /**
+ * @return static
+ */
+ public function truncate(int $length, string $ellipsis = '', bool $cut = true): self
{
$stringLength = $this->length();
@@ -646,14 +719,20 @@ abstract class AbstractString implements \Stringable, \JsonSerializable
return $ellipsisLength ? $str->trimEnd()->append($ellipsis) : $str;
}
- abstract public function upper(): static;
+ /**
+ * @return static
+ */
+ abstract public function upper(): self;
/**
* Returns the printable length on a terminal.
*/
abstract public function width(bool $ignoreAnsiDecoration = true): int;
- public function wordwrap(int $width = 75, string $break = "\n", bool $cut = false): static
+ /**
+ * @return static
+ */
+ public function wordwrap(int $width = 75, string $break = "\n", bool $cut = false): self
{
$lines = '' !== $break ? $this->split($break) : [clone $this];
$chars = [];
diff --git a/vendor/symfony/string/AbstractUnicodeString.php b/vendor/symfony/string/AbstractUnicodeString.php
index 68c59e34..1bc6f88f 100644
--- a/vendor/symfony/string/AbstractUnicodeString.php
+++ b/vendor/symfony/string/AbstractUnicodeString.php
@@ -52,7 +52,10 @@ abstract class AbstractUnicodeString extends AbstractString
private static $tableZero;
private static $tableWide;
- public static function fromCodePoints(int ...$codes): static
+ /**
+ * @return static
+ */
+ public static function fromCodePoints(int ...$codes): self
{
$string = '';
@@ -156,7 +159,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function camel(): static
+ public function camel(): parent
{
$str = clone $this;
$str->string = str_replace(' ', '', preg_replace_callback('/\b.(?![A-Z]{2,})/u', static function ($m) use (&$i) {
@@ -186,11 +189,11 @@ abstract class AbstractUnicodeString extends AbstractString
return $codePoints;
}
- public function folded(bool $compat = true): static
+ public function folded(bool $compat = true): parent
{
$str = clone $this;
- if (!$compat || !\defined('Normalizer::NFKC_CF')) {
+ if (!$compat || \PHP_VERSION_ID < 70300 || !\defined('Normalizer::NFKC_CF')) {
$str->string = normalizer_normalize($str->string, $compat ? \Normalizer::NFKC : \Normalizer::NFC);
$str->string = mb_strtolower(str_replace(self::FOLD_FROM, self::FOLD_TO, $this->string), 'UTF-8');
} else {
@@ -200,7 +203,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function join(array $strings, string $lastGlue = null): static
+ public function join(array $strings, string $lastGlue = null): parent
{
$str = clone $this;
@@ -214,7 +217,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function lower(): static
+ public function lower(): parent
{
$str = clone $this;
$str->string = mb_strtolower(str_replace('İ', 'i̇', $str->string), 'UTF-8');
@@ -237,7 +240,7 @@ abstract class AbstractUnicodeString extends AbstractString
$lastError = preg_last_error();
foreach (get_defined_constants(true)['pcre'] as $k => $v) {
- if ($lastError === $v && str_ends_with($k, '_ERROR')) {
+ if ($lastError === $v && '_ERROR' === substr($k, -6)) {
throw new RuntimeException('Matching failed with '.$k.'.');
}
}
@@ -251,7 +254,10 @@ abstract class AbstractUnicodeString extends AbstractString
return $matches;
}
- public function normalize(int $form = self::NFC): static
+ /**
+ * @return static
+ */
+ public function normalize(int $form = self::NFC): self
{
if (!\in_array($form, [self::NFC, self::NFD, self::NFKC, self::NFKD])) {
throw new InvalidArgumentException('Unsupported normalization form.');
@@ -263,7 +269,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function padBoth(int $length, string $padStr = ' '): static
+ public function padBoth(int $length, string $padStr = ' '): parent
{
if ('' === $padStr || !preg_match('//u', $padStr)) {
throw new InvalidArgumentException('Invalid UTF-8 string.');
@@ -275,7 +281,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $this->pad($length, $pad, \STR_PAD_BOTH);
}
- public function padEnd(int $length, string $padStr = ' '): static
+ public function padEnd(int $length, string $padStr = ' '): parent
{
if ('' === $padStr || !preg_match('//u', $padStr)) {
throw new InvalidArgumentException('Invalid UTF-8 string.');
@@ -287,7 +293,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $this->pad($length, $pad, \STR_PAD_RIGHT);
}
- public function padStart(int $length, string $padStr = ' '): static
+ public function padStart(int $length, string $padStr = ' '): parent
{
if ('' === $padStr || !preg_match('//u', $padStr)) {
throw new InvalidArgumentException('Invalid UTF-8 string.');
@@ -299,13 +305,17 @@ abstract class AbstractUnicodeString extends AbstractString
return $this->pad($length, $pad, \STR_PAD_LEFT);
}
- public function replaceMatches(string $fromRegexp, string|callable $to): static
+ public function replaceMatches(string $fromRegexp, $to): parent
{
if ($this->ignoreCase) {
$fromRegexp .= 'i';
}
if (\is_array($to) || $to instanceof \Closure) {
+ if (!\is_callable($to)) {
+ throw new \TypeError(sprintf('Argument 2 passed to "%s::replaceMatches()" must be callable, array given.', static::class));
+ }
+
$replace = 'preg_replace_callback';
$to = static function (array $m) use ($to): string {
$to = $to($m);
@@ -329,7 +339,7 @@ abstract class AbstractUnicodeString extends AbstractString
$lastError = preg_last_error();
foreach (get_defined_constants(true)['pcre'] as $k => $v) {
- if ($lastError === $v && str_ends_with($k, '_ERROR')) {
+ if ($lastError === $v && '_ERROR' === substr($k, -6)) {
throw new RuntimeException('Matching failed with '.$k.'.');
}
}
@@ -346,7 +356,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function reverse(): static
+ public function reverse(): parent
{
$str = clone $this;
$str->string = implode('', array_reverse(preg_split('/(\X)/u', $str->string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY)));
@@ -354,7 +364,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function snake(): static
+ public function snake(): parent
{
$str = $this->camel();
$str->string = mb_strtolower(preg_replace(['/(\p{Lu}+)(\p{Lu}\p{Ll})/u', '/([\p{Ll}0-9])(\p{Lu})/u'], '\1_\2', $str->string), 'UTF-8');
@@ -362,7 +372,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function title(bool $allWords = false): static
+ public function title(bool $allWords = false): parent
{
$str = clone $this;
@@ -375,7 +385,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function trim(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): static
+ public function trim(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): parent
{
if (" \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}" !== $chars && !preg_match('//u', $chars)) {
throw new InvalidArgumentException('Invalid UTF-8 chars.');
@@ -388,7 +398,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function trimEnd(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): static
+ public function trimEnd(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): parent
{
if (" \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}" !== $chars && !preg_match('//u', $chars)) {
throw new InvalidArgumentException('Invalid UTF-8 chars.');
@@ -401,7 +411,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function trimPrefix($prefix): static
+ public function trimPrefix($prefix): parent
{
if (!$this->ignoreCase) {
return parent::trimPrefix($prefix);
@@ -421,7 +431,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function trimStart(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): static
+ public function trimStart(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): parent
{
if (" \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}" !== $chars && !preg_match('//u', $chars)) {
throw new InvalidArgumentException('Invalid UTF-8 chars.');
@@ -434,7 +444,7 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function trimSuffix($suffix): static
+ public function trimSuffix($suffix): parent
{
if (!$this->ignoreCase) {
return parent::trimSuffix($suffix);
@@ -454,11 +464,15 @@ abstract class AbstractUnicodeString extends AbstractString
return $str;
}
- public function upper(): static
+ public function upper(): parent
{
$str = clone $this;
$str->string = mb_strtoupper($str->string, 'UTF-8');
+ if (\PHP_VERSION_ID < 70300) {
+ $str->string = str_replace(self::UPPER_FROM, self::UPPER_TO, $str->string);
+ }
+
return $str;
}
@@ -467,7 +481,7 @@ abstract class AbstractUnicodeString extends AbstractString
$width = 0;
$s = str_replace(["\x00", "\x05", "\x07"], '', $this->string);
- if (str_contains($s, "\r")) {
+ if (false !== strpos($s, "\r")) {
$s = str_replace(["\r\n", "\r"], "\n", $s);
}
@@ -494,7 +508,10 @@ abstract class AbstractUnicodeString extends AbstractString
return $width;
}
- private function pad(int $len, self $pad, int $type): static
+ /**
+ * @return static
+ */
+ private function pad(int $len, self $pad, int $type): parent
{
$sLen = $this->length();
diff --git a/vendor/symfony/string/ByteString.php b/vendor/symfony/string/ByteString.php
index 1f8a76ea..626d8c1b 100644
--- a/vendor/symfony/string/ByteString.php
+++ b/vendor/symfony/string/ByteString.php
@@ -48,7 +48,7 @@ class ByteString extends AbstractString
throw new InvalidArgumentException(sprintf('A strictly positive length is expected, "%d" given.', $length));
}
- $alphabet ??= self::ALPHABET_ALPHANUMERIC;
+ $alphabet = $alphabet ?? self::ALPHABET_ALPHANUMERIC;
$alphabetSize = \strlen($alphabet);
$bits = (int) ceil(log($alphabetSize, 2.0));
if ($bits <= 0 || $bits > 56) {
@@ -92,7 +92,7 @@ class ByteString extends AbstractString
return '' === $str ? [] : [\ord($str)];
}
- public function append(string ...$suffix): static
+ public function append(string ...$suffix): parent
{
$str = clone $this;
$str->string .= 1 >= \count($suffix) ? ($suffix[0] ?? '') : implode('', $suffix);
@@ -100,7 +100,7 @@ class ByteString extends AbstractString
return $str;
}
- public function camel(): static
+ public function camel(): parent
{
$str = clone $this;
@@ -132,23 +132,27 @@ class ByteString extends AbstractString
return $chunks;
}
- public function endsWith(string|iterable|AbstractString $suffix): bool
+ public function endsWith($suffix): bool
{
- if ($suffix instanceof AbstractString) {
+ if ($suffix instanceof parent) {
$suffix = $suffix->string;
- } elseif (!\is_string($suffix)) {
+ } elseif (\is_array($suffix) || $suffix instanceof \Traversable) {
return parent::endsWith($suffix);
+ } else {
+ $suffix = (string) $suffix;
}
return '' !== $suffix && \strlen($this->string) >= \strlen($suffix) && 0 === substr_compare($this->string, $suffix, -\strlen($suffix), null, $this->ignoreCase);
}
- public function equalsTo(string|iterable|AbstractString $string): bool
+ public function equalsTo($string): bool
{
- if ($string instanceof AbstractString) {
+ if ($string instanceof parent) {
$string = $string->string;
- } elseif (!\is_string($string)) {
+ } elseif (\is_array($string) || $string instanceof \Traversable) {
return parent::equalsTo($string);
+ } else {
+ $string = (string) $string;
}
if ('' !== $string && $this->ignoreCase) {
@@ -158,7 +162,7 @@ class ByteString extends AbstractString
return $string === $this->string;
}
- public function folded(): static
+ public function folded(): parent
{
$str = clone $this;
$str->string = strtolower($str->string);
@@ -166,12 +170,14 @@ class ByteString extends AbstractString
return $str;
}
- public function indexOf(string|iterable|AbstractString $needle, int $offset = 0): ?int
+ public function indexOf($needle, int $offset = 0): ?int
{
- if ($needle instanceof AbstractString) {
+ if ($needle instanceof parent) {
$needle = $needle->string;
- } elseif (!\is_string($needle)) {
+ } elseif (\is_array($needle) || $needle instanceof \Traversable) {
return parent::indexOf($needle, $offset);
+ } else {
+ $needle = (string) $needle;
}
if ('' === $needle) {
@@ -183,12 +189,14 @@ class ByteString extends AbstractString
return false === $i ? null : $i;
}
- public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
+ public function indexOfLast($needle, int $offset = 0): ?int
{
- if ($needle instanceof AbstractString) {
+ if ($needle instanceof parent) {
$needle = $needle->string;
- } elseif (!\is_string($needle)) {
+ } elseif (\is_array($needle) || $needle instanceof \Traversable) {
return parent::indexOfLast($needle, $offset);
+ } else {
+ $needle = (string) $needle;
}
if ('' === $needle) {
@@ -205,7 +213,7 @@ class ByteString extends AbstractString
return '' === $this->string || preg_match('//u', $this->string);
}
- public function join(array $strings, string $lastGlue = null): static
+ public function join(array $strings, string $lastGlue = null): parent
{
$str = clone $this;
@@ -220,7 +228,7 @@ class ByteString extends AbstractString
return \strlen($this->string);
}
- public function lower(): static
+ public function lower(): parent
{
$str = clone $this;
$str->string = strtolower($str->string);
@@ -243,7 +251,7 @@ class ByteString extends AbstractString
$lastError = preg_last_error();
foreach (get_defined_constants(true)['pcre'] as $k => $v) {
- if ($lastError === $v && str_ends_with($k, '_ERROR')) {
+ if ($lastError === $v && '_ERROR' === substr($k, -6)) {
throw new RuntimeException('Matching failed with '.$k.'.');
}
}
@@ -257,7 +265,7 @@ class ByteString extends AbstractString
return $matches;
}
- public function padBoth(int $length, string $padStr = ' '): static
+ public function padBoth(int $length, string $padStr = ' '): parent
{
$str = clone $this;
$str->string = str_pad($this->string, $length, $padStr, \STR_PAD_BOTH);
@@ -265,7 +273,7 @@ class ByteString extends AbstractString
return $str;
}
- public function padEnd(int $length, string $padStr = ' '): static
+ public function padEnd(int $length, string $padStr = ' '): parent
{
$str = clone $this;
$str->string = str_pad($this->string, $length, $padStr, \STR_PAD_RIGHT);
@@ -273,7 +281,7 @@ class ByteString extends AbstractString
return $str;
}
- public function padStart(int $length, string $padStr = ' '): static
+ public function padStart(int $length, string $padStr = ' '): parent
{
$str = clone $this;
$str->string = str_pad($this->string, $length, $padStr, \STR_PAD_LEFT);
@@ -281,7 +289,7 @@ class ByteString extends AbstractString
return $str;
}
- public function prepend(string ...$prefix): static
+ public function prepend(string ...$prefix): parent
{
$str = clone $this;
$str->string = (1 >= \count($prefix) ? ($prefix[0] ?? '') : implode('', $prefix)).$str->string;
@@ -289,7 +297,7 @@ class ByteString extends AbstractString
return $str;
}
- public function replace(string $from, string $to): static
+ public function replace(string $from, string $to): parent
{
$str = clone $this;
@@ -300,13 +308,21 @@ class ByteString extends AbstractString
return $str;
}
- public function replaceMatches(string $fromRegexp, string|callable $to): static
+ public function replaceMatches(string $fromRegexp, $to): parent
{
if ($this->ignoreCase) {
$fromRegexp .= 'i';
}
- $replace = \is_array($to) || $to instanceof \Closure ? 'preg_replace_callback' : 'preg_replace';
+ if (\is_array($to)) {
+ if (!\is_callable($to)) {
+ throw new \TypeError(sprintf('Argument 2 passed to "%s::replaceMatches()" must be callable, array given.', static::class));
+ }
+
+ $replace = 'preg_replace_callback';
+ } else {
+ $replace = $to instanceof \Closure ? 'preg_replace_callback' : 'preg_replace';
+ }
set_error_handler(static function ($t, $m) { throw new InvalidArgumentException($m); });
@@ -315,7 +331,7 @@ class ByteString extends AbstractString
$lastError = preg_last_error();
foreach (get_defined_constants(true)['pcre'] as $k => $v) {
- if ($lastError === $v && str_ends_with($k, '_ERROR')) {
+ if ($lastError === $v && '_ERROR' === substr($k, -6)) {
throw new RuntimeException('Matching failed with '.$k.'.');
}
}
@@ -332,7 +348,7 @@ class ByteString extends AbstractString
return $str;
}
- public function reverse(): static
+ public function reverse(): parent
{
$str = clone $this;
$str->string = strrev($str->string);
@@ -340,7 +356,7 @@ class ByteString extends AbstractString
return $str;
}
- public function slice(int $start = 0, int $length = null): static
+ public function slice(int $start = 0, int $length = null): parent
{
$str = clone $this;
$str->string = (string) substr($this->string, $start, $length ?? \PHP_INT_MAX);
@@ -348,7 +364,7 @@ class ByteString extends AbstractString
return $str;
}
- public function snake(): static
+ public function snake(): parent
{
$str = $this->camel();
$str->string = strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], '\1_\2', $str->string));
@@ -356,7 +372,7 @@ class ByteString extends AbstractString
return $str;
}
- public function splice(string $replacement, int $start = 0, int $length = null): static
+ public function splice(string $replacement, int $start = 0, int $length = null): parent
{
$str = clone $this;
$str->string = substr_replace($this->string, $replacement, $start, $length ?? \PHP_INT_MAX);
@@ -366,7 +382,7 @@ class ByteString extends AbstractString
public function split(string $delimiter, int $limit = null, int $flags = null): array
{
- if (1 > $limit ??= \PHP_INT_MAX) {
+ if (1 > $limit = $limit ?? \PHP_INT_MAX) {
throw new InvalidArgumentException('Split limit must be a positive integer.');
}
@@ -391,9 +407,9 @@ class ByteString extends AbstractString
return $chunks;
}
- public function startsWith(string|iterable|AbstractString $prefix): bool
+ public function startsWith($prefix): bool
{
- if ($prefix instanceof AbstractString) {
+ if ($prefix instanceof parent) {
$prefix = $prefix->string;
} elseif (!\is_string($prefix)) {
return parent::startsWith($prefix);
@@ -402,7 +418,7 @@ class ByteString extends AbstractString
return '' !== $prefix && 0 === ($this->ignoreCase ? strncasecmp($this->string, $prefix, \strlen($prefix)) : strncmp($this->string, $prefix, \strlen($prefix)));
}
- public function title(bool $allWords = false): static
+ public function title(bool $allWords = false): parent
{
$str = clone $this;
$str->string = $allWords ? ucwords($str->string) : ucfirst($str->string);
@@ -452,7 +468,7 @@ class ByteString extends AbstractString
return $u;
}
- public function trim(string $chars = " \t\n\r\0\x0B\x0C"): static
+ public function trim(string $chars = " \t\n\r\0\x0B\x0C"): parent
{
$str = clone $this;
$str->string = trim($str->string, $chars);
@@ -460,7 +476,7 @@ class ByteString extends AbstractString
return $str;
}
- public function trimEnd(string $chars = " \t\n\r\0\x0B\x0C"): static
+ public function trimEnd(string $chars = " \t\n\r\0\x0B\x0C"): parent
{
$str = clone $this;
$str->string = rtrim($str->string, $chars);
@@ -468,7 +484,7 @@ class ByteString extends AbstractString
return $str;
}
- public function trimStart(string $chars = " \t\n\r\0\x0B\x0C"): static
+ public function trimStart(string $chars = " \t\n\r\0\x0B\x0C"): parent
{
$str = clone $this;
$str->string = ltrim($str->string, $chars);
@@ -476,7 +492,7 @@ class ByteString extends AbstractString
return $str;
}
- public function upper(): static
+ public function upper(): parent
{
$str = clone $this;
$str->string = strtoupper($str->string);
diff --git a/vendor/symfony/string/CodePointString.php b/vendor/symfony/string/CodePointString.php
index f5c900fb..8ab92094 100644
--- a/vendor/symfony/string/CodePointString.php
+++ b/vendor/symfony/string/CodePointString.php
@@ -33,7 +33,7 @@ class CodePointString extends AbstractUnicodeString
$this->string = $string;
}
- public function append(string ...$suffix): static
+ public function append(string ...$suffix): AbstractString
{
$str = clone $this;
$str->string .= 1 >= \count($suffix) ? ($suffix[0] ?? '') : implode('', $suffix);
@@ -80,12 +80,14 @@ class CodePointString extends AbstractUnicodeString
return '' === $str->string ? [] : [mb_ord($str->string, 'UTF-8')];
}
- public function endsWith(string|iterable|AbstractString $suffix): bool
+ public function endsWith($suffix): bool
{
if ($suffix instanceof AbstractString) {
$suffix = $suffix->string;
- } elseif (!\is_string($suffix)) {
+ } elseif (\is_array($suffix) || $suffix instanceof \Traversable) {
return parent::endsWith($suffix);
+ } else {
+ $suffix = (string) $suffix;
}
if ('' === $suffix || !preg_match('//u', $suffix)) {
@@ -99,12 +101,14 @@ class CodePointString extends AbstractUnicodeString
return \strlen($this->string) >= \strlen($suffix) && 0 === substr_compare($this->string, $suffix, -\strlen($suffix));
}
- public function equalsTo(string|iterable|AbstractString $string): bool
+ public function equalsTo($string): bool
{
if ($string instanceof AbstractString) {
$string = $string->string;
- } elseif (!\is_string($string)) {
+ } elseif (\is_array($string) || $string instanceof \Traversable) {
return parent::equalsTo($string);
+ } else {
+ $string = (string) $string;
}
if ('' !== $string && $this->ignoreCase) {
@@ -114,12 +118,14 @@ class CodePointString extends AbstractUnicodeString
return $string === $this->string;
}
- public function indexOf(string|iterable|AbstractString $needle, int $offset = 0): ?int
+ public function indexOf($needle, int $offset = 0): ?int
{
if ($needle instanceof AbstractString) {
$needle = $needle->string;
- } elseif (!\is_string($needle)) {
+ } elseif (\is_array($needle) || $needle instanceof \Traversable) {
return parent::indexOf($needle, $offset);
+ } else {
+ $needle = (string) $needle;
}
if ('' === $needle) {
@@ -131,12 +137,14 @@ class CodePointString extends AbstractUnicodeString
return false === $i ? null : $i;
}
- public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
+ public function indexOfLast($needle, int $offset = 0): ?int
{
if ($needle instanceof AbstractString) {
$needle = $needle->string;
- } elseif (!\is_string($needle)) {
+ } elseif (\is_array($needle) || $needle instanceof \Traversable) {
return parent::indexOfLast($needle, $offset);
+ } else {
+ $needle = (string) $needle;
}
if ('' === $needle) {
@@ -153,7 +161,7 @@ class CodePointString extends AbstractUnicodeString
return mb_strlen($this->string, 'UTF-8');
}
- public function prepend(string ...$prefix): static
+ public function prepend(string ...$prefix): AbstractString
{
$str = clone $this;
$str->string = (1 >= \count($prefix) ? ($prefix[0] ?? '') : implode('', $prefix)).$this->string;
@@ -165,7 +173,7 @@ class CodePointString extends AbstractUnicodeString
return $str;
}
- public function replace(string $from, string $to): static
+ public function replace(string $from, string $to): AbstractString
{
$str = clone $this;
@@ -186,7 +194,7 @@ class CodePointString extends AbstractUnicodeString
return $str;
}
- public function slice(int $start = 0, int $length = null): static
+ public function slice(int $start = 0, int $length = null): AbstractString
{
$str = clone $this;
$str->string = mb_substr($this->string, $start, $length, 'UTF-8');
@@ -194,7 +202,7 @@ class CodePointString extends AbstractUnicodeString
return $str;
}
- public function splice(string $replacement, int $start = 0, int $length = null): static
+ public function splice(string $replacement, int $start = 0, int $length = null): AbstractString
{
if (!preg_match('//u', $replacement)) {
throw new InvalidArgumentException('Invalid UTF-8 string.');
@@ -210,7 +218,7 @@ class CodePointString extends AbstractUnicodeString
public function split(string $delimiter, int $limit = null, int $flags = null): array
{
- if (1 > $limit ??= \PHP_INT_MAX) {
+ if (1 > $limit = $limit ?? \PHP_INT_MAX) {
throw new InvalidArgumentException('Split limit must be a positive integer.');
}
@@ -239,12 +247,14 @@ class CodePointString extends AbstractUnicodeString
return $chunks;
}
- public function startsWith(string|iterable|AbstractString $prefix): bool
+ public function startsWith($prefix): bool
{
if ($prefix instanceof AbstractString) {
$prefix = $prefix->string;
- } elseif (!\is_string($prefix)) {
+ } elseif (\is_array($prefix) || $prefix instanceof \Traversable) {
return parent::startsWith($prefix);
+ } else {
+ $prefix = (string) $prefix;
}
if ('' === $prefix || !preg_match('//u', $prefix)) {
diff --git a/vendor/symfony/string/Inflector/EnglishInflector.php b/vendor/symfony/string/Inflector/EnglishInflector.php
index d9cc8e3d..9f2fac67 100644
--- a/vendor/symfony/string/Inflector/EnglishInflector.php
+++ b/vendor/symfony/string/Inflector/EnglishInflector.php
@@ -384,7 +384,7 @@ final class EnglishInflector implements InflectorInterface
if ($j === $suffixLength) {
// Is there any character preceding the suffix in the plural string?
if ($j < $pluralLength) {
- $nextIsVocal = str_contains('aeiou', $lowerPluralRev[$j]);
+ $nextIsVocal = false !== strpos('aeiou', $lowerPluralRev[$j]);
if (!$map[2] && $nextIsVocal) {
// suffix may not succeed a vocal but next char is one
@@ -464,7 +464,7 @@ final class EnglishInflector implements InflectorInterface
if ($j === $suffixLength) {
// Is there any character preceding the suffix in the plural string?
if ($j < $singularLength) {
- $nextIsVocal = str_contains('aeiou', $lowerSingularRev[$j]);
+ $nextIsVocal = false !== strpos('aeiou', $lowerSingularRev[$j]);
if (!$map[2] && $nextIsVocal) {
// suffix may not succeed a vocal but next char is one
diff --git a/vendor/symfony/string/LazyString.php b/vendor/symfony/string/LazyString.php
index 84fa7bf0..3b10595f 100644
--- a/vendor/symfony/string/LazyString.php
+++ b/vendor/symfony/string/LazyString.php
@@ -18,15 +18,17 @@ namespace Symfony\Component\String;
*/
class LazyString implements \Stringable, \JsonSerializable
{
- private \Closure|string $value;
+ private $value;
/**
* @param callable|array $callback A callable or a [Closure, method] lazy-callable
+ *
+ * @return static
*/
- public static function fromCallable(callable|array $callback, mixed ...$arguments): static
+ public static function fromCallable($callback, ...$arguments): self
{
- if (\is_array($callback) && !\is_callable($callback) && !(($callback[0] ?? null) instanceof \Closure || 2 < \count($callback))) {
- throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a callable or a [Closure, method] lazy-callable, "%s" given.', __METHOD__, '['.implode(', ', array_map('get_debug_type', $callback)).']'));
+ if (!\is_callable($callback) && !(\is_array($callback) && isset($callback[0]) && $callback[0] instanceof \Closure && 2 >= \count($callback))) {
+ throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a callable or a [Closure, method] lazy-callable, "%s" given.', __METHOD__, get_debug_type($callback)));
}
$lazyString = new static();
@@ -47,8 +49,17 @@ class LazyString implements \Stringable, \JsonSerializable
return $lazyString;
}
- public static function fromStringable(string|int|float|bool|\Stringable $value): static
+ /**
+ * @param string|int|float|bool|\Stringable $value
+ *
+ * @return static
+ */
+ public static function fromStringable($value): self
{
+ if (!self::isStringable($value)) {
+ throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a scalar or a stringable object, "%s" given.', __METHOD__, get_debug_type($value)));
+ }
+
if (\is_object($value)) {
return static::fromCallable([$value, '__toString']);
}
@@ -62,22 +73,27 @@ class LazyString implements \Stringable, \JsonSerializable
/**
* Tells whether the provided value can be cast to string.
*/
- final public static function isStringable(mixed $value): bool
+ final public static function isStringable($value): bool
{
- return \is_string($value) || $value instanceof \Stringable || \is_scalar($value);
+ return \is_string($value) || $value instanceof self || (\is_object($value) ? method_exists($value, '__toString') : \is_scalar($value));
}
/**
* Casts scalars and stringable objects to strings.
*
+ * @param object|string|int|float|bool $value
+ *
* @throws \TypeError When the provided value is not stringable
*/
- final public static function resolve(\Stringable|string|int|float|bool $value): string
+ final public static function resolve($value): string
{
return $value;
}
- public function __toString(): string
+ /**
+ * @return string
+ */
+ public function __toString()
{
if (\is_string($this->value)) {
return $this->value;
@@ -95,6 +111,11 @@ class LazyString implements \Stringable, \JsonSerializable
$e = new \TypeError(sprintf('Return value of %s() passed to %s::fromCallable() must be of the type string, %s returned.', $callback, static::class, $type));
}
+ if (\PHP_VERSION_ID < 70400) {
+ // leverage the ErrorHandler component with graceful fallback when it's not available
+ return trigger_error($e, \E_USER_ERROR);
+ }
+
throw $e;
}
}
@@ -127,7 +148,7 @@ class LazyString implements \Stringable, \JsonSerializable
} elseif ($callback instanceof \Closure) {
$r = new \ReflectionFunction($callback);
- if (str_contains($r->name, '{closure}') || !$class = $r->getClosureScopeClass()) {
+ if (false !== strpos($r->name, '{closure}') || !$class = $r->getClosureScopeClass()) {
return $r->name;
}
diff --git a/vendor/symfony/string/Resources/functions.php b/vendor/symfony/string/Resources/functions.php
index 7a970400..c950894f 100644
--- a/vendor/symfony/string/Resources/functions.php
+++ b/vendor/symfony/string/Resources/functions.php
@@ -31,7 +31,7 @@ if (!\function_exists(s::class)) {
*/
function s(?string $string = ''): AbstractString
{
- $string ??= '';
+ $string = $string ?? '';
return preg_match('//u', $string) ? new UnicodeString($string) : new ByteString($string);
}
diff --git a/vendor/symfony/string/Slugger/AsciiSlugger.php b/vendor/symfony/string/Slugger/AsciiSlugger.php
index d32e3051..5aecfeb5 100644
--- a/vendor/symfony/string/Slugger/AsciiSlugger.php
+++ b/vendor/symfony/string/Slugger/AsciiSlugger.php
@@ -54,8 +54,8 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface
'zh' => 'Han-Latin',
];
- private ?string $defaultLocale;
- private \Closure|array $symbolsMap = [
+ private $defaultLocale;
+ private $symbolsMap = [
'en' => ['@' => 'at', '&' => 'and'],
];
@@ -64,10 +64,17 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface
*
* @var \Transliterator[]
*/
- private array $transliterators = [];
+ private $transliterators = [];
- public function __construct(string $defaultLocale = null, array|\Closure $symbolsMap = null)
+ /**
+ * @param array|\Closure|null $symbolsMap
+ */
+ public function __construct(string $defaultLocale = null, $symbolsMap = null)
{
+ if (null !== $symbolsMap && !\is_array($symbolsMap) && !$symbolsMap instanceof \Closure) {
+ throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be array, Closure or null, "%s" given.', __METHOD__, \gettype($symbolsMap)));
+ }
+
$this->defaultLocale = $defaultLocale;
$this->symbolsMap = $symbolsMap ?? $this->symbolsMap;
}
@@ -75,7 +82,7 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface
/**
* {@inheritdoc}
*/
- public function setLocale(string $locale)
+ public function setLocale($locale)
{
$this->defaultLocale = $locale;
}
@@ -83,7 +90,7 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface
/**
* {@inheritdoc}
*/
- public function getLocale(): string
+ public function getLocale()
{
return $this->defaultLocale;
}
@@ -93,10 +100,10 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface
*/
public function slug(string $string, string $separator = '-', string $locale = null): AbstractUnicodeString
{
- $locale ??= $this->defaultLocale;
+ $locale = $locale ?? $this->defaultLocale;
$transliterator = [];
- if ($locale && ('de' === $locale || str_starts_with($locale, 'de_'))) {
+ if ($locale && ('de' === $locale || 0 === strpos($locale, 'de_'))) {
// Use the shortcut for German in UnicodeString::ascii() if possible (faster and no requirement on intl)
$transliterator = ['de-ASCII'];
} elseif (\function_exists('transliterator_transliterate') && $locale) {
diff --git a/vendor/symfony/string/UnicodeString.php b/vendor/symfony/string/UnicodeString.php
index a64c6a9d..9b906c6f 100644
--- a/vendor/symfony/string/UnicodeString.php
+++ b/vendor/symfony/string/UnicodeString.php
@@ -41,7 +41,7 @@ class UnicodeString extends AbstractUnicodeString
}
}
- public function append(string ...$suffix): static
+ public function append(string ...$suffix): AbstractString
{
$str = clone $this;
$str->string = $this->string.(1 >= \count($suffix) ? ($suffix[0] ?? '') : implode('', $suffix));
@@ -82,12 +82,14 @@ class UnicodeString extends AbstractUnicodeString
return $chunks;
}
- public function endsWith(string|iterable|AbstractString $suffix): bool
+ public function endsWith($suffix): bool
{
if ($suffix instanceof AbstractString) {
$suffix = $suffix->string;
- } elseif (!\is_string($suffix)) {
+ } elseif (\is_array($suffix) || $suffix instanceof \Traversable) {
return parent::endsWith($suffix);
+ } else {
+ $suffix = (string) $suffix;
}
$form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC;
@@ -104,12 +106,14 @@ class UnicodeString extends AbstractUnicodeString
return $suffix === grapheme_extract($this->string, \strlen($suffix), \GRAPHEME_EXTR_MAXBYTES, \strlen($this->string) - \strlen($suffix));
}
- public function equalsTo(string|iterable|AbstractString $string): bool
+ public function equalsTo($string): bool
{
if ($string instanceof AbstractString) {
$string = $string->string;
- } elseif (!\is_string($string)) {
+ } elseif (\is_array($string) || $string instanceof \Traversable) {
return parent::equalsTo($string);
+ } else {
+ $string = (string) $string;
}
$form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC;
@@ -122,12 +126,14 @@ class UnicodeString extends AbstractUnicodeString
return $string === $this->string;
}
- public function indexOf(string|iterable|AbstractString $needle, int $offset = 0): ?int
+ public function indexOf($needle, int $offset = 0): ?int
{
if ($needle instanceof AbstractString) {
$needle = $needle->string;
- } elseif (!\is_string($needle)) {
+ } elseif (\is_array($needle) || $needle instanceof \Traversable) {
return parent::indexOf($needle, $offset);
+ } else {
+ $needle = (string) $needle;
}
$form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC;
@@ -139,19 +145,21 @@ class UnicodeString extends AbstractUnicodeString
try {
$i = $this->ignoreCase ? grapheme_stripos($this->string, $needle, $offset) : grapheme_strpos($this->string, $needle, $offset);
- } catch (\ValueError) {
+ } catch (\ValueError $e) {
return null;
}
return false === $i ? null : $i;
}
- public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
+ public function indexOfLast($needle, int $offset = 0): ?int
{
if ($needle instanceof AbstractString) {
$needle = $needle->string;
- } elseif (!\is_string($needle)) {
+ } elseif (\is_array($needle) || $needle instanceof \Traversable) {
return parent::indexOfLast($needle, $offset);
+ } else {
+ $needle = (string) $needle;
}
$form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC;
@@ -176,7 +184,7 @@ class UnicodeString extends AbstractUnicodeString
return false === $i ? null : $i;
}
- public function join(array $strings, string $lastGlue = null): static
+ public function join(array $strings, string $lastGlue = null): AbstractString
{
$str = parent::join($strings, $lastGlue);
normalizer_is_normalized($str->string) ?: $str->string = normalizer_normalize($str->string);
@@ -189,7 +197,10 @@ class UnicodeString extends AbstractUnicodeString
return grapheme_strlen($this->string);
}
- public function normalize(int $form = self::NFC): static
+ /**
+ * @return static
+ */
+ public function normalize(int $form = self::NFC): parent
{
$str = clone $this;
@@ -205,7 +216,7 @@ class UnicodeString extends AbstractUnicodeString
return $str;
}
- public function prepend(string ...$prefix): static
+ public function prepend(string ...$prefix): AbstractString
{
$str = clone $this;
$str->string = (1 >= \count($prefix) ? ($prefix[0] ?? '') : implode('', $prefix)).$this->string;
@@ -218,7 +229,7 @@ class UnicodeString extends AbstractUnicodeString
return $str;
}
- public function replace(string $from, string $to): static
+ public function replace(string $from, string $to): AbstractString
{
$str = clone $this;
normalizer_is_normalized($from) ?: $from = normalizer_normalize($from);
@@ -245,7 +256,7 @@ class UnicodeString extends AbstractUnicodeString
return $str;
}
- public function replaceMatches(string $fromRegexp, string|callable $to): static
+ public function replaceMatches(string $fromRegexp, $to): AbstractString
{
$str = parent::replaceMatches($fromRegexp, $to);
normalizer_is_normalized($str->string) ?: $str->string = normalizer_normalize($str->string);
@@ -253,19 +264,25 @@ class UnicodeString extends AbstractUnicodeString
return $str;
}
- public function slice(int $start = 0, int $length = null): static
+ public function slice(int $start = 0, int $length = null): AbstractString
{
$str = clone $this;
+ if (\PHP_VERSION_ID < 80000 && 0 > $start && grapheme_strlen($this->string) < -$start) {
+ $start = 0;
+ }
$str->string = (string) grapheme_substr($this->string, $start, $length ?? 2147483647);
return $str;
}
- public function splice(string $replacement, int $start = 0, int $length = null): static
+ public function splice(string $replacement, int $start = 0, int $length = null): AbstractString
{
$str = clone $this;
+ if (\PHP_VERSION_ID < 80000 && 0 > $start && grapheme_strlen($this->string) < -$start) {
+ $start = 0;
+ }
$start = $start ? \strlen(grapheme_substr($this->string, 0, $start)) : 0;
$length = $length ? \strlen(grapheme_substr($this->string, $start, $length ?? 2147483647)) : $length;
$str->string = substr_replace($this->string, $replacement, $start, $length ?? 2147483647);
@@ -280,7 +297,7 @@ class UnicodeString extends AbstractUnicodeString
public function split(string $delimiter, int $limit = null, int $flags = null): array
{
- if (1 > $limit ??= 2147483647) {
+ if (1 > $limit = $limit ?? 2147483647) {
throw new InvalidArgumentException('Split limit must be a positive integer.');
}
@@ -316,12 +333,14 @@ class UnicodeString extends AbstractUnicodeString
return $chunks;
}
- public function startsWith(string|iterable|AbstractString $prefix): bool
+ public function startsWith($prefix): bool
{
if ($prefix instanceof AbstractString) {
$prefix = $prefix->string;
- } elseif (!\is_string($prefix)) {
+ } elseif (\is_array($prefix) || $prefix instanceof \Traversable) {
return parent::startsWith($prefix);
+ } else {
+ $prefix = (string) $prefix;
}
$form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC;
diff --git a/vendor/symfony/string/composer.json b/vendor/symfony/string/composer.json
index 5e4febb5..2b88fd52 100644
--- a/vendor/symfony/string/composer.json
+++ b/vendor/symfony/string/composer.json
@@ -16,20 +16,21 @@
}
],
"require": {
- "php": ">=8.1",
+ "php": ">=7.2.5",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0"
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": ">=3.0"
},
"autoload": {
"psr-4": { "Symfony\\Component\\String\\": "" },
diff --git a/vendor/symfony/translation-contracts/LocaleAwareInterface.php b/vendor/symfony/translation-contracts/LocaleAwareInterface.php
index 6923b977..693f92ba 100644
--- a/vendor/symfony/translation-contracts/LocaleAwareInterface.php
+++ b/vendor/symfony/translation-contracts/LocaleAwareInterface.php
@@ -16,12 +16,16 @@ interface LocaleAwareInterface
/**
* Sets the current locale.
*
+ * @param string $locale The locale
+ *
* @throws \InvalidArgumentException If the locale contains invalid characters
*/
public function setLocale(string $locale);
/**
* Returns the current locale.
+ *
+ * @return string
*/
- public function getLocale(): string;
+ public function getLocale();
}
diff --git a/vendor/symfony/translation-contracts/Test/TranslatorTest.php b/vendor/symfony/translation-contracts/Test/TranslatorTest.php
index 4e5999df..a3e9b20a 100644
--- a/vendor/symfony/translation-contracts/Test/TranslatorTest.php
+++ b/vendor/symfony/translation-contracts/Test/TranslatorTest.php
@@ -43,7 +43,10 @@ class TranslatorTest extends TestCase
\Locale::setDefault($this->defaultLocale);
}
- public function getTranslator(): TranslatorInterface
+ /**
+ * @return TranslatorInterface
+ */
+ public function getTranslator()
{
return new class() implements TranslatorInterface {
use TranslatorTrait;
@@ -314,8 +317,10 @@ class TranslatorTest extends TestCase
* This array should contain all currently known langcodes.
*
* As it is impossible to have this ever complete we should try as hard as possible to have it almost complete.
+ *
+ * @return array
*/
- public function successLangcodes(): array
+ public function successLangcodes()
{
return [
['1', ['ay', 'bo', 'cgg', 'dz', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky']],
@@ -334,7 +339,7 @@ class TranslatorTest extends TestCase
*
* @return array with nplural together with langcodes
*/
- public function failingLangcodes(): array
+ public function failingLangcodes()
{
return [
['1', ['fa']],
@@ -348,10 +353,11 @@ class TranslatorTest extends TestCase
/**
* We validate only on the plural coverage. Thus the real rules is not tested.
*
- * @param string $nplural Plural expected
- * @param array $matrix Containing langcodes and their plural index values
+ * @param string $nplural Plural expected
+ * @param array $matrix Containing langcodes and their plural index values
+ * @param bool $expectSuccess
*/
- protected function validateMatrix(string $nplural, array $matrix, bool $expectSuccess = true)
+ protected function validateMatrix($nplural, $matrix, $expectSuccess = true)
{
foreach ($matrix as $langCode => $data) {
$indexes = array_flip($data);
diff --git a/vendor/symfony/translation-contracts/TranslatorInterface.php b/vendor/symfony/translation-contracts/TranslatorInterface.php
index 018db07e..77b7a9c5 100644
--- a/vendor/symfony/translation-contracts/TranslatorInterface.php
+++ b/vendor/symfony/translation-contracts/TranslatorInterface.php
@@ -13,6 +13,8 @@ namespace Symfony\Contracts\Translation;
/**
* @author Fabien Potencier